def import_(self, root, module): loader_details = [ (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES, True), (machinery.SourcelessFileLoader, machinery.BYTECODE_SUFFIXES, True) ] finder = machinery.FileFinder(root, *loader_details) return finder.find_module(module)
def test_invalidate_caches(self): # invalidate_caches() should reset the mtime. finder = machinery.FileFinder( '', (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES)) finder._path_mtime = 42 finder.invalidate_caches() self.assertEqual(finder._path_mtime, -1)
def find_module(self): good_name = ext_util.NAME bad_name = good_name.upper() assert good_name != bad_name finder = machinery.FileFinder( ext_util.PATH, (machinery.ExtensionFileLoader, machinery.EXTENSION_SUFFIXES)) return finder.find_module(bad_name)
def find(self, path): finder = machinery.FileFinder(path, (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES, True), (machinery.SourcelessFileLoader, machinery.BYTECODE_SUFFIXES, True)) return finder.find_module(self.name)
def test_empty_string_for_dir(self): # The empty string from sys.path means to search in the cwd. finder = machinery.FileFinder( '', (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES)) with open('mod.py', 'w') as file: file.write("# test file for importlib") try: loader = finder.find_module('mod') self.assertTrue(hasattr(loader, 'load_module')) finally: os.unlink('mod.py')
def test_multiphase2(self): import sys from importlib import machinery, util module = self.import_module(name=self.name, use_imp=True) finder = machinery.FileFinder(None) spec = util.find_spec(self.name) assert spec assert module.__name__ == self.name #assert module.__file__ == spec.origin assert module.__package__ == '' raises(AttributeError, 'module.__path__') assert module is sys.modules[self.name] assert isinstance(module.__loader__, machinery.ExtensionFileLoader)
def get_finder(self, root): loader_details = [ (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES), (machinery.SourcelessFileLoader, machinery.BYTECODE_SUFFIXES) ] return machinery.FileFinder(root, *loader_details)
def find_module(self, fullname): importer = machinery.FileFinder(util.PATH, (machinery.ExtensionFileLoader, machinery.EXTENSION_SUFFIXES)) return importer.find_module(fullname)
def loadPythonCExtensionFromFile(library_file_name: str, module_name: str): importer = machinery.FileFinder( os.path.dirname(os.path.abspath(library_file_name)), (machinery.ExtensionFileLoader, machinery.EXTENSION_SUFFIXES)) module = importer.find_module(module_name).load_module(module_name) return module