def detectEarlyImports(): if Options.freezeAllStdlib(): stdlib_modules = set() # Scan the standard library paths (multiple in case of virtualenv. for stdlib_dir in getStandardLibraryPaths(): for module_name in scanStandardLibraryPath(stdlib_dir): stdlib_modules.add(module_name) import_code = "imports = " + repr(sorted(stdlib_modules)) + '\n'\ "for imp in imports:\n" \ " try:\n" \ " __import__(imp)\n" \ " except ImportError:\n" \ " pass\n" else: # TODO: Should recursively include all of encodings module. import_code = "import encodings.utf_8;import encodings.ascii;import encodings.idna;" if Utils.getOS() == "Windows": import_code += "import encodings.mbcs;import encodings.cp437;" # String method hex depends on it. if Utils.python_version < 300: import_code += "import encodings.hex_codec;" import_code += "import locale;" result = _detectImports(import_code, False) debug("Finished detecting early imports.") return result
def detectEarlyImports(): if Options.freezeAllStdlib(): stdlib_modules = set() # Scan the standard library paths (multiple in case of virtualenv. for stdlib_dir in getStandardLibraryPaths(): for module_name in scanStandardLibraryPath(stdlib_dir): stdlib_modules.add(module_name) import_code = 'imports = ' + repr(sorted(stdlib_modules)) + '\n'\ 'for imp in imports:\n' \ ' try:\n' \ ' __import__(imp)\n' \ ' except ImportError:\n' \ ' pass\n' else: # TODO: Should recursively include all of encodings module. import_code = "import encodings.utf_8;import encodings.ascii;import encodings.idna;" if Utils.getOS() == "Windows": import_code += "import encodings.mbcs;import encodings.cp437;" # String method hex depends on it. if Utils.python_version < 300: import_code += "import encodings.hex_codec;" import_code += "import locale;" result = _detectImports(import_code, False) debug("Finished detecting early imports.") return result
def detectEarlyImports(): if Options.freezeAllStdlib(): stdlib_modules = [] stdlib_dir = os.path.dirname(os.__file__) ignore_modules = [ "__main__.py", "__init__.py", "antigravity.py", ] if os.name != "nt": ignore_modules.append("wintypes.py") ignore_modules.append("cp65001.py") for root, dirs, filenames in os.walk(stdlib_dir): import_path = root[len(stdlib_dir):].strip('/\\') if import_path == '': if 'site-packages' in dirs: dirs.remove('site-packages') if 'dist-packages' in dirs: dirs.remove('dist-packages') if 'test' in dirs: dirs.remove('test') if 'idlelib' in dirs: dirs.remove('idlelib') if 'turtledemo' in dirs: dirs.remove('turtledemo') if import_path in ('tkinter', 'importlib'): if 'test' in dirs: dirs.remove('test') for filename in filenames: if filename.endswith('.py') and filename not in ignore_modules: module_name = filename[:-3] if import_path == '': stdlib_modules.append(module_name) else: stdlib_modules.append(import_path + '.' + module_name) if Utils.python_version >= 300: if '__pycache__' in dirs: dirs.remove('__pycache__') for dir in dirs: if import_path == '': stdlib_modules.append(dir) else: stdlib_modules.append(import_path + '.' + dir) import_code = 'imports = ' + repr(sorted(stdlib_modules)) + '\n'\ 'for imp in imports:\n' \ ' try:\n' \ ' __import__(imp)\n' \ ' except ImportError:\n' \ ' pass\n' else: # TODO: Should recursively include all of encodings module. import_code = "import encodings.utf_8;import encodings.ascii;" if Utils.getOS() == "Windows": import_code += "import encodings.mbcs;import encodings.cp437;" # String method hex depends on it. if Utils.python_version < 300: import_code += "import encodings.hex_codec;" import_code += "import locale;" result = _detectImports(import_code, False) debug("Finished detecting early imports.") return result