1#!/usr/bin/env python3
2import os
3import sys
4import tempfile
5
6
7def run_command(cmd):
8    print('Running %r:' % (cmd))
9    os.system(cmd)
10    print('------')
11
12
13def run():
14    _path = os.getcwd()
15    os.chdir(tempfile.gettempdir())
16    print('------')
17    print('os.name=%r' % (os.name))
18    print('------')
19    print('sys.platform=%r' % (sys.platform))
20    print('------')
21    print('sys.version:')
22    print(sys.version)
23    print('------')
24    print('sys.prefix:')
25    print(sys.prefix)
26    print('------')
27    print('sys.path=%r' % (':'.join(sys.path)))
28    print('------')
29
30    try:
31        import numpy
32        has_newnumpy = 1
33    except ImportError:
34        print('Failed to import new numpy:', sys.exc_info()[1])
35        has_newnumpy = 0
36
37    try:
38        from numpy.f2py import f2py2e
39        has_f2py2e = 1
40    except ImportError:
41        print('Failed to import f2py2e:', sys.exc_info()[1])
42        has_f2py2e = 0
43
44    try:
45        import numpy.distutils
46        has_numpy_distutils = 2
47    except ImportError:
48        try:
49            import numpy_distutils
50            has_numpy_distutils = 1
51        except ImportError:
52            print('Failed to import numpy_distutils:', sys.exc_info()[1])
53            has_numpy_distutils = 0
54
55    if has_newnumpy:
56        try:
57            print('Found new numpy version %r in %s' %
58                  (numpy.__version__, numpy.__file__))
59        except Exception as msg:
60            print('error:', msg)
61            print('------')
62
63    if has_f2py2e:
64        try:
65            print('Found f2py2e version %r in %s' %
66                  (f2py2e.__version__.version, f2py2e.__file__))
67        except Exception as msg:
68            print('error:', msg)
69            print('------')
70
71    if has_numpy_distutils:
72        try:
73            if has_numpy_distutils == 2:
74                print('Found numpy.distutils version %r in %r' % (
75                    numpy.distutils.__version__,
76                    numpy.distutils.__file__))
77            else:
78                print('Found numpy_distutils version %r in %r' % (
79                    numpy_distutils.numpy_distutils_version.numpy_distutils_version,
80                    numpy_distutils.__file__))
81            print('------')
82        except Exception as msg:
83            print('error:', msg)
84            print('------')
85        try:
86            if has_numpy_distutils == 1:
87                print(
88                    'Importing numpy_distutils.command.build_flib ...', end=' ')
89                import numpy_distutils.command.build_flib as build_flib
90                print('ok')
91                print('------')
92                try:
93                    print(
94                        'Checking availability of supported Fortran compilers:')
95                    for compiler_class in build_flib.all_compilers:
96                        compiler_class(verbose=1).is_available()
97                        print('------')
98                except Exception as msg:
99                    print('error:', msg)
100                    print('------')
101        except Exception as msg:
102            print(
103                'error:', msg, '(ignore it, build_flib is obsolute for numpy.distutils 0.2.2 and up)')
104            print('------')
105        try:
106            if has_numpy_distutils == 2:
107                print('Importing numpy.distutils.fcompiler ...', end=' ')
108                import numpy.distutils.fcompiler as fcompiler
109            else:
110                print('Importing numpy_distutils.fcompiler ...', end=' ')
111                import numpy_distutils.fcompiler as fcompiler
112            print('ok')
113            print('------')
114            try:
115                print('Checking availability of supported Fortran compilers:')
116                fcompiler.show_fcompilers()
117                print('------')
118            except Exception as msg:
119                print('error:', msg)
120                print('------')
121        except Exception as msg:
122            print('error:', msg)
123            print('------')
124        try:
125            if has_numpy_distutils == 2:
126                print('Importing numpy.distutils.cpuinfo ...', end=' ')
127                from numpy.distutils.cpuinfo import cpuinfo
128                print('ok')
129                print('------')
130            else:
131                try:
132                    print(
133                        'Importing numpy_distutils.command.cpuinfo ...', end=' ')
134                    from numpy_distutils.command.cpuinfo import cpuinfo
135                    print('ok')
136                    print('------')
137                except Exception as msg:
138                    print('error:', msg, '(ignore it)')
139                    print('Importing numpy_distutils.cpuinfo ...', end=' ')
140                    from numpy_distutils.cpuinfo import cpuinfo
141                    print('ok')
142                    print('------')
143            cpu = cpuinfo()
144            print('CPU information:', end=' ')
145            for name in dir(cpuinfo):
146                if name[0] == '_' and name[1] != '_' and getattr(cpu, name[1:])():
147                    print(name[1:], end=' ')
148            print('------')
149        except Exception as msg:
150            print('error:', msg)
151            print('------')
152    os.chdir(_path)
153if __name__ == "__main__":
154    run()
155