MCPcopy Index your code
hub / github.com/python/cpython / ModuleFinder

Class ModuleFinder

Lib/modulefinder.py:124–614  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

testFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…