|
2 | 2 |
|
3 | 3 | import errno |
4 | 4 | import getopt |
5 | | -import imp |
| 5 | +import importlib |
6 | 6 | import re |
7 | 7 | import sys |
8 | 8 | import time |
@@ -2015,38 +2015,10 @@ def usage(): |
2015 | 2015 | print("Usage: parse_xsd [-i <module:as>] xsd.file > module.py") |
2016 | 2016 |
|
2017 | 2017 |
|
2018 | | -def recursive_find_module(name, path=None): |
2019 | | - parts = name.split(".") |
2020 | | - |
2021 | | - mod_a = None |
2022 | | - for part in parts: |
2023 | | - # print("$$", part, path) |
2024 | | - try: |
2025 | | - (fil, pathname, desc) = imp.find_module(part, path) |
2026 | | - except ImportError: |
2027 | | - raise |
2028 | | - |
2029 | | - mod_a = imp.load_module(name, fil, pathname, desc) |
2030 | | - sys.modules[name] = mod_a |
2031 | | - path = mod_a.__path__ |
2032 | | - |
2033 | | - return mod_a |
2034 | | - |
2035 | | - |
2036 | 2018 | def get_mod(name, path=None): |
2037 | | - try: |
2038 | | - mod_a = sys.modules[name] |
2039 | | - if not isinstance(mod_a, types.ModuleType): |
2040 | | - raise KeyError |
2041 | | - except KeyError: |
2042 | | - try: |
2043 | | - (fil, pathname, desc) = imp.find_module(name, path) |
2044 | | - mod_a = imp.load_module(name, fil, pathname, desc) |
2045 | | - except ImportError: |
2046 | | - if "." in name: |
2047 | | - mod_a = recursive_find_module(name, path) |
2048 | | - else: |
2049 | | - raise |
| 2019 | + mod_a = sys.modules.get(name) |
| 2020 | + if not mod_a or not isinstance(mod_a, types.ModuleType): |
| 2021 | + mod_a = importlib.import_module(name, path) |
2050 | 2022 | sys.modules[name] = mod_a |
2051 | 2023 | return mod_a |
2052 | 2024 |
|
|
0 commit comments