Cache all the FCompiler classes found in modules in the numpy.distutils.fcompiler package.
()
| 773 | fcompiler_aliases = None |
| 774 | |
| 775 | def load_all_fcompiler_classes(): |
| 776 | """Cache all the FCompiler classes found in modules in the |
| 777 | numpy.distutils.fcompiler package. |
| 778 | """ |
| 779 | from glob import glob |
| 780 | global fcompiler_class, fcompiler_aliases |
| 781 | if fcompiler_class is not None: |
| 782 | return |
| 783 | pys = os.path.join(os.path.dirname(__file__), '*.py') |
| 784 | fcompiler_class = {} |
| 785 | fcompiler_aliases = {} |
| 786 | for fname in glob(pys): |
| 787 | module_name, ext = os.path.splitext(os.path.basename(fname)) |
| 788 | module_name = 'numpy.distutils.fcompiler.' + module_name |
| 789 | __import__ (module_name) |
| 790 | module = sys.modules[module_name] |
| 791 | if hasattr(module, 'compilers'): |
| 792 | for cname in module.compilers: |
| 793 | klass = getattr(module, cname) |
| 794 | desc = (klass.compiler_type, klass, klass.description) |
| 795 | fcompiler_class[klass.compiler_type] = desc |
| 796 | for alias in klass.compiler_aliases: |
| 797 | if alias in fcompiler_aliases: |
| 798 | raise ValueError("alias %r defined for both %s and %s" |
| 799 | % (alias, klass.__name__, |
| 800 | fcompiler_aliases[alias][1].__name__)) |
| 801 | fcompiler_aliases[alias] = desc |
| 802 | |
| 803 | def _find_existing_fcompiler(compiler_types, |
| 804 | osname=None, platform=None, |
no test coverage detected