def addImportedModule(imported_module): key = ( Utils.relpath(imported_module.getFilename()), imported_module.getFullName() ) if key in imported_modules: assert imported_module is imported_modules[key], key else: Plugins.onModuleDiscovered(imported_module) imported_modules[key] = imported_module imported_by_name[imported_module.getFullName()] = imported_module # We don't expect that to happen. assert not imported_module.isMainModule()
def addImportedModule(imported_module): module_filename = relpath(imported_module.getFilename()) if os.path.basename(module_filename) == "__init__.py": module_filename = os.path.dirname(module_filename) key = (module_filename, imported_module.getFullName()) if key in imported_modules: assert imported_module is imported_modules[key], key else: Plugins.onModuleDiscovered(imported_module) imported_modules[key] = imported_module imported_by_name[imported_module.getFullName()] = imported_module # We don't expect that to happen. assert not imported_module.isMainModule()
def addImportedModule(imported_module): module_filename = relpath(imported_module.getFilename()) if os.path.basename(module_filename) == "__init__.py": module_filename = os.path.dirname(module_filename) key = (module_filename, imported_module.getFullName()) if key in imported_modules: assert imported_module is imported_modules[key], key else: Plugins.onModuleDiscovered(imported_module) imported_modules[key] = imported_module imported_by_name[imported_module.getFullName()] = imported_module # We don't expect that to happen. assert not imported_module.isMainModule()
def buildModuleTree(filename, package, is_top, is_main): module, source_ref, source_filename = decideModuleTree( filename=filename, package=package, is_top=is_top, is_main=is_main, is_shlib=False, ) if is_top: ModuleRegistry.addRootModule(module) OutputDirectories.setMainModule(module) # Detect to be frozen modules if any, so we can consider to not recurse # to them. if Options.isStandaloneMode(): detectEarlyImports() # If there is source code associated (not the case for namespace packages of # Python3.3 or higher, then read it. if source_filename is not None: source_code = readSourceCodeFromFilename( module_name=module.getFullName(), source_filename=source_filename ) if is_main: checkPythonVersionFromCode(source_code) # Read source code. createModuleTree( module=module, source_ref=source_ref, source_code=source_code, is_main=is_main, ) # Main modules do not get added to the import cache, but plugins get to see it. if module.isMainModule(): Plugins.onModuleDiscovered(module) else: addImportedModule(imported_module=module) return module
def buildMainModuleTree(filename, is_main): # Detect to be frozen modules if any, so we can consider to not follow # to them. Plugins.onBeforeCodeParsing() if is_main: # TODO: Doesn't work for deeply nested packages at all. if Options.hasPythonFlagPackageMode(): module_name = ModuleName(os.path.basename(filename) + ".__main__") else: module_name = ModuleName("__main__") else: module_name = Importing.getModuleNameAndKindFromFilename(filename)[0] module, _added = buildModule( module_name=module_name, module_filename=filename, source_code=None, is_top=True, is_main=is_main, is_extension=False, is_fake=False, hide_syntax_error=False, ) if is_main and Options.isStandaloneMode(): module.setEarlyModules(detectEarlyImports()) # Main modules do not get added to the import cache, but plugins get to see it. if module.isMainModule(): Plugins.onModuleDiscovered(module) else: addImportedModule(imported_module=module) return module