MCPcopy Index your code
hub / github.com/RustPython/RustPython / ModuleFinder

Class ModuleFinder

Lib/modulefinder.py:119–605  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers 1

testFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected