MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / ModuleFinder

Class ModuleFinder

tools/python-3.11.9-amd64/Lib/modulefinder.py:114–600  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

112 return s
113
114class ModuleFinder:
115
116 def __init__(self, path=None, debug=0, excludes=None, replace_paths=None):
117 if path is None:
118 path = sys.path
119 self.path = path
120 self.modules = {}
121 self.badmodules = {}
122 self.debug = debug
123 self.indent = 0
124 self.excludes = excludes if excludes is not None else []
125 self.replace_paths = replace_paths if replace_paths is not None else []
126 self.processed_paths = [] # Used in debugging only
127
128 def msg(self, level, str, *args):
129 if level <= self.debug:
130 for i in range(self.indent):
131 print(" ", end=' ')
132 print(str, end=' ')
133 for arg in args:
134 print(repr(arg), end=' ')
135 print()
136
137 def msgin(self, *args):
138 level = args[0]
139 if level <= self.debug:
140 self.indent = self.indent + 1
141 self.msg(*args)
142
143 def msgout(self, *args):
144 level = args[0]
145 if level <= self.debug:
146 self.indent = self.indent - 1
147 self.msg(*args)
148
149 def run_script(self, pathname):
150 self.msg(2, "run_script", pathname)
151 with io.open_code(pathname) as fp:
152 stuff = ("", "rb", _PY_SOURCE)
153 self.load_module('__main__', fp, pathname, stuff)
154
155 def load_file(self, pathname):
156 dir, name = os.path.split(pathname)
157 name, ext = os.path.splitext(name)
158 with io.open_code(pathname) as fp:
159 stuff = (ext, "rb", _PY_SOURCE)
160 self.load_module(name, fp, pathname, stuff)
161
162 def import_hook(self, name, caller=None, fromlist=None, level=-1):
163 self.msg(3, "import_hook", name, caller, fromlist, level)
164 parent = self.determine_parent(caller, level=level)
165 q, tail = self.find_head_package(parent, name)
166 m = self.load_tail(q, tail)
167 if not fromlist:
168 return q
169 if m.__path__:
170 self.ensure_fromlist(m, fromlist)
171 return None

Callers 1

testFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected