MCPcopy Create free account
hub / github.com/bpython/bpython / ImportFinder

Class ImportFinder

bpython/curtsiesfrontend/repl.py:278–297  ·  view source on GitHub ↗

Wrapper for finders in sys.meta_path to wrap all loaders with ImportLoader.

Source from the content-addressed store, hash-verified

276
277
278class ImportFinder:
279 """Wrapper for finders in sys.meta_path to wrap all loaders with ImportLoader."""
280
281 def __init__(self, watcher, finder):
282 self.watcher = watcher
283 self.finder = finder
284
285 def __getattr__(self, name):
286 if name == "find_spec" and hasattr(self.finder, name):
287 return self._find_spec
288 return getattr(self.finder, name)
289
290 def _find_spec(self, fullname, path, target=None):
291 # Attempt to find the spec
292 spec = self.finder.find_spec(fullname, path, target)
293 if spec is not None:
294 if getattr(spec, "loader", None) is not None:
295 # Patch the loader to enable reloading
296 spec.loader = ImportLoader(self.watcher, spec.loader)
297 return spec
298
299
300def _process_ps(ps, default_ps: str):

Callers 1

__enter__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected