|
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