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

Method determine_parent

Lib/modulefinder.py:178–211  ·  view source on GitHub ↗
(self, caller, level=-1)

Source from the content-addressed store, hash-verified

176 return None
177
178 def determine_parent(self, caller, level=-1):
179 self.msgin(4, "determine_parent", caller, level)
180 if not caller or level == 0:
181 self.msgout(4, "determine_parent -> None")
182 return None
183 pname = caller.__name__
184 if level >= 1: # relative import
185 if caller.__path__:
186 level -= 1
187 if level == 0:
188 parent = self.modules[pname]
189 assert parent is caller
190 self.msgout(4, "determine_parent ->", parent)
191 return parent
192 if pname.count(".") < level:
193 raise ImportError("relative importpath too deep")
194 pname = ".".join(pname.split(".")[:-level])
195 parent = self.modules[pname]
196 self.msgout(4, "determine_parent ->", parent)
197 return parent
198 if caller.__path__:
199 parent = self.modules[pname]
200 assert caller is parent
201 self.msgout(4, "determine_parent ->", parent)
202 return parent
203 if '.' in pname:
204 i = pname.rfind('.')
205 pname = pname[:i]
206 parent = self.modules[pname]
207 assert parent.__name__ == pname
208 self.msgout(4, "determine_parent ->", parent)
209 return parent
210 self.msgout(4, "determine_parent -> None")
211 return None
212
213 def find_head_package(self, parent, name):
214 self.msgin(4, "find_head_package", parent, name)

Callers 2

import_hookMethod · 0.95
scan_codeMethod · 0.95

Calls 6

msginMethod · 0.95
msgoutMethod · 0.95
countMethod · 0.45
joinMethod · 0.45
splitMethod · 0.45
rfindMethod · 0.45

Tested by

no test coverage detected