Skip to content

Instantly share code, notes, and snippets.

@laurent-laporte-pro
Created January 22, 2023 15:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laurent-laporte-pro/bd5400581f96dfc1f5caf185c35a793c to your computer and use it in GitHub Desktop.
Save laurent-laporte-pro/bd5400581f96dfc1f5caf185c35a793c to your computer and use it in GitHub Desktop.
Find imports that are not part of the standard Python library (for `install_requires`)
import ast
import os
from typing import Set
STD_LIB = {
# fmt :off
'__future__', '__main__', '_abc', '_ast', '_asyncio', '_bisect', '_blake2', '_bootlocale', '_bz2', '_codecs',
'_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections',
'_collections_abc', '_compat_pickle', '_compression', '_contextvars', '_crypt', '_csv', '_ctypes',
'_ctypes_test', '_curses', '_curses_panel', '_datetime', '_dbm', '_decimal', '_dummy_thread', '_elementtree',
'_frozen_importlib', '_frozen_importlib_external', '_functools', '_gdbm', '_hashlib', '_heapq', '_imp',
'_io', '_json', '_locale', '_lsprof', '_lzma', '_markupbase', '_md5', '_multibytecodec', '_multiprocessing',
'_opcode', '_operator', '_osx_support', '_pickle', '_posixshmem', '_posixsubprocess', '_py_abc',
'_pydecimal', '_pyio', '_queue', '_random', '_sha1', '_sha256', '_sha3', '_sha512', '_signal',
'_sitebuiltins', '_socket', '_sqlite3', '_sre', '_ssl', '_stat', '_statistics', '_string', '_strptime',
'_struct', '_symtable', '_testbuffer', '_testcapi', '_testimportmultiple', '_testinternalcapi',
'_testmultiphase', '_thread', '_threading_local', '_tkinter', '_tracemalloc', '_uuid', '_warnings',
'_weakref', '_weakrefset', '_xxsubinterpreters', '_xxtestfuzz', 'abc', 'aifc', 'antigravity', 'argparse',
'array', 'ast', 'asynchat', 'asyncio', 'asyncio.__main__', 'asyncio.base_events', 'asyncio.base_futures',
'asyncio.base_subprocess', 'asyncio.base_tasks', 'asyncio.constants', 'asyncio.coroutines', 'asyncio.events',
'asyncio.exceptions', 'asyncio.format_helpers', 'asyncio.futures', 'asyncio.locks', 'asyncio.log',
'asyncio.proactor_events', 'asyncio.protocols', 'asyncio.queues', 'asyncio.runners',
'asyncio.selector_events', 'asyncio.sslproto', 'asyncio.staggered', 'asyncio.streams', 'asyncio.subprocess',
'asyncio.tasks', 'asyncio.transports', 'asyncio.trsock', 'asyncio.unix_events', 'asyncio.windows_events',
'asyncio.windows_utils', 'asyncore', 'atexit', 'audioop', 'base64', 'bdb', 'binascii', 'binhex', 'bisect',
'builtins', 'bz2', 'cProfile', 'calendar', 'cgi', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs',
'codeop', 'collections', 'collections.abc', 'colorsys', 'compileall', 'concurrent', 'concurrent.futures',
'concurrent.futures._base', 'concurrent.futures.process', 'concurrent.futures.thread', 'configparser',
'contextlib', 'contextvars', 'copy', 'copyreg', 'crypt', 'csv', 'ctypes', 'ctypes._aix', 'ctypes._endian',
'ctypes.macholib', 'ctypes.macholib.dyld', 'ctypes.macholib.dylib', 'ctypes.macholib.framework',
'ctypes.test', 'ctypes.test.__main__', 'ctypes.test.test_anon', 'ctypes.test.test_array_in_pointer',
'ctypes.test.test_arrays', 'ctypes.test.test_as_parameter', 'ctypes.test.test_bitfields',
'ctypes.test.test_buffers', 'ctypes.test.test_bytes', 'ctypes.test.test_byteswap',
'ctypes.test.test_callbacks', 'ctypes.test.test_cast', 'ctypes.test.test_cfuncs',
'ctypes.test.test_checkretval', 'ctypes.test.test_delattr', 'ctypes.test.test_errno',
'ctypes.test.test_find', 'ctypes.test.test_frombuffer', 'ctypes.test.test_funcptr',
'ctypes.test.test_functions', 'ctypes.test.test_incomplete', 'ctypes.test.test_init',
'ctypes.test.test_internals', 'ctypes.test.test_keeprefs', 'ctypes.test.test_libc',
'ctypes.test.test_loading', 'ctypes.test.test_macholib', 'ctypes.test.test_memfunctions',
'ctypes.test.test_numbers', 'ctypes.test.test_objects', 'ctypes.test.test_parameters',
'ctypes.test.test_pep3118', 'ctypes.test.test_pickling', 'ctypes.test.test_pointers',
'ctypes.test.test_prototypes', 'ctypes.test.test_python_api', 'ctypes.test.test_random_things',
'ctypes.test.test_refcounts', 'ctypes.test.test_repr', 'ctypes.test.test_returnfuncptrs',
'ctypes.test.test_simplesubclasses', 'ctypes.test.test_sizes', 'ctypes.test.test_slicing',
'ctypes.test.test_stringptr', 'ctypes.test.test_strings', 'ctypes.test.test_struct_fields',
'ctypes.test.test_structures', 'ctypes.test.test_unaligned_structures', 'ctypes.test.test_unicode',
'ctypes.test.test_values', 'ctypes.test.test_varsize_struct', 'ctypes.test.test_win32',
'ctypes.test.test_wintypes', 'ctypes.util', 'ctypes.wintypes', 'curses', 'curses.ascii', 'curses.has_key',
'curses.panel', 'curses.textpad', 'dataclasses', 'datetime', 'dbm', 'dbm.dumb', 'dbm.gnu', 'dbm.ndbm',
'decimal', 'difflib', 'dis', 'distutils', 'distutils._msvccompiler', 'distutils.archive_util',
'distutils.bcppcompiler', 'distutils.ccompiler', 'distutils.cmd', 'distutils.command',
'distutils.command.bdist', 'distutils.command.bdist_dumb', 'distutils.command.bdist_msi',
'distutils.command.bdist_packager', 'distutils.command.bdist_rpm', 'distutils.command.bdist_wininst',
'distutils.command.build', 'distutils.command.build_clib', 'distutils.command.build_ext',
'distutils.command.build_py', 'distutils.command.build_scripts', 'distutils.command.check',
'distutils.command.clean', 'distutils.command.config', 'distutils.command.install',
'distutils.command.install_data', 'distutils.command.install_egg_info', 'distutils.command.install_headers',
'distutils.command.install_lib', 'distutils.command.install_scripts', 'distutils.command.register',
'distutils.command.sdist', 'distutils.command.upload', 'distutils.config', 'distutils.core',
'distutils.cygwinccompiler', 'distutils.debug', 'distutils.dep_util', 'distutils.dir_util', 'distutils.dist',
'distutils.errors', 'distutils.extension', 'distutils.fancy_getopt', 'distutils.file_util',
'distutils.filelist', 'distutils.log', 'distutils.msvc9compiler', 'distutils.msvccompiler',
'distutils.spawn', 'distutils.sysconfig', 'distutils.tests', 'distutils.tests.support',
'distutils.tests.test_archive_util', 'distutils.tests.test_bdist', 'distutils.tests.test_bdist_dumb',
'distutils.tests.test_bdist_msi', 'distutils.tests.test_bdist_rpm', 'distutils.tests.test_bdist_wininst',
'distutils.tests.test_build', 'distutils.tests.test_build_clib', 'distutils.tests.test_build_ext',
'distutils.tests.test_build_py', 'distutils.tests.test_build_scripts', 'distutils.tests.test_check',
'distutils.tests.test_clean', 'distutils.tests.test_cmd', 'distutils.tests.test_config',
'distutils.tests.test_config_cmd', 'distutils.tests.test_core', 'distutils.tests.test_cygwinccompiler',
'distutils.tests.test_dep_util', 'distutils.tests.test_dir_util', 'distutils.tests.test_dist',
'distutils.tests.test_extension', 'distutils.tests.test_file_util', 'distutils.tests.test_filelist',
'distutils.tests.test_install', 'distutils.tests.test_install_data', 'distutils.tests.test_install_headers',
'distutils.tests.test_install_lib', 'distutils.tests.test_install_scripts', 'distutils.tests.test_log',
'distutils.tests.test_msvc9compiler', 'distutils.tests.test_msvccompiler', 'distutils.tests.test_register',
'distutils.tests.test_sdist', 'distutils.tests.test_spawn', 'distutils.tests.test_sysconfig',
'distutils.tests.test_text_file', 'distutils.tests.test_unixccompiler', 'distutils.tests.test_upload',
'distutils.tests.test_util', 'distutils.tests.test_version', 'distutils.tests.test_versionpredicate',
'distutils.text_file', 'distutils.unixccompiler', 'distutils.util', 'distutils.version',
'distutils.versionpredicate', 'doctest', 'dummy_threading', 'email', 'email._encoded_words',
'email._header_value_parser', 'email._parseaddr', 'email._policybase', 'email.base64mime', 'email.charset',
'email.contentmanager', 'email.encoders', 'email.errors', 'email.feedparser', 'email.generator',
'email.header', 'email.headerregistry', 'email.iterators', 'email.message', 'email.mime',
'email.mime.application', 'email.mime.audio', 'email.mime.base', 'email.mime.image', 'email.mime.message',
'email.mime.multipart', 'email.mime.nonmultipart', 'email.mime.text', 'email.parser', 'email.policy',
'email.quoprimime', 'email.utils', 'encodings', 'encodings.aliases', 'encodings.ascii',
'encodings.base64_codec', 'encodings.big5', 'encodings.big5hkscs', 'encodings.bz2_codec',
'encodings.charmap', 'encodings.cp037', 'encodings.cp1006', 'encodings.cp1026', 'encodings.cp1125',
'encodings.cp1140', 'encodings.cp1250', 'encodings.cp1251', 'encodings.cp1252', 'encodings.cp1253',
'encodings.cp1254', 'encodings.cp1255', 'encodings.cp1256', 'encodings.cp1257', 'encodings.cp1258',
'encodings.cp273', 'encodings.cp424', 'encodings.cp437', 'encodings.cp500', 'encodings.cp720',
'encodings.cp737', 'encodings.cp775', 'encodings.cp850', 'encodings.cp852', 'encodings.cp855',
'encodings.cp856', 'encodings.cp857', 'encodings.cp858', 'encodings.cp860', 'encodings.cp861',
'encodings.cp862', 'encodings.cp863', 'encodings.cp864', 'encodings.cp865', 'encodings.cp866',
'encodings.cp869', 'encodings.cp874', 'encodings.cp875', 'encodings.cp932', 'encodings.cp949',
'encodings.cp950', 'encodings.euc_jis_2004', 'encodings.euc_jisx0213', 'encodings.euc_jp',
'encodings.euc_kr', 'encodings.gb18030', 'encodings.gb2312', 'encodings.gbk', 'encodings.hex_codec',
'encodings.hp_roman8', 'encodings.hz', 'encodings.idna', 'encodings.iso2022_jp', 'encodings.iso2022_jp_1',
'encodings.iso2022_jp_2', 'encodings.iso2022_jp_2004', 'encodings.iso2022_jp_3', 'encodings.iso2022_jp_ext',
'encodings.iso2022_kr', 'encodings.iso8859_1', 'encodings.iso8859_10', 'encodings.iso8859_11',
'encodings.iso8859_13', 'encodings.iso8859_14', 'encodings.iso8859_15', 'encodings.iso8859_16',
'encodings.iso8859_2', 'encodings.iso8859_3', 'encodings.iso8859_4', 'encodings.iso8859_5',
'encodings.iso8859_6', 'encodings.iso8859_7', 'encodings.iso8859_8', 'encodings.iso8859_9',
'encodings.johab', 'encodings.koi8_r', 'encodings.koi8_t', 'encodings.koi8_u', 'encodings.kz1048',
'encodings.latin_1', 'encodings.mac_arabic', 'encodings.mac_centeuro', 'encodings.mac_croatian',
'encodings.mac_cyrillic', 'encodings.mac_farsi', 'encodings.mac_greek', 'encodings.mac_iceland',
'encodings.mac_latin2', 'encodings.mac_roman', 'encodings.mac_romanian', 'encodings.mac_turkish',
'encodings.mbcs', 'encodings.oem', 'encodings.palmos', 'encodings.ptcp154', 'encodings.punycode',
'encodings.quopri_codec', 'encodings.raw_unicode_escape', 'encodings.rot_13', 'encodings.shift_jis',
'encodings.shift_jis_2004', 'encodings.shift_jisx0213', 'encodings.tis_620', 'encodings.undefined',
'encodings.unicode_escape', 'encodings.utf_16', 'encodings.utf_16_be', 'encodings.utf_16_le',
'encodings.utf_32', 'encodings.utf_32_be', 'encodings.utf_32_le', 'encodings.utf_7', 'encodings.utf_8',
'encodings.utf_8_sig', 'encodings.uu_codec', 'encodings.zlib_codec', 'ensurepip', 'ensurepip.__main__',
'ensurepip._uninstall', 'enum', 'errno', 'faulthandler', 'fcntl', 'filecmp', 'fileinput', 'fnmatch',
'formatter', 'fractions', 'ftplib', 'functools', 'gc', 'genericpath', 'getopt', 'getpass', 'gettext', 'glob',
'grp', 'gzip', 'hashlib', 'heapq', 'hmac', 'html', 'html.entities', 'html.parser', 'http', 'http.client',
'http.cookiejar', 'http.cookies', 'http.server', 'idlelib', 'idlelib.__main__', 'idlelib.autocomplete',
'idlelib.autocomplete_w', 'idlelib.autoexpand', 'idlelib.browser', 'idlelib.calltip', 'idlelib.calltip_w',
'idlelib.codecontext', 'idlelib.colorizer', 'idlelib.config', 'idlelib.config_key', 'idlelib.configdialog',
'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.delegator',
'idlelib.dynoption', 'idlelib.editor', 'idlelib.filelist', 'idlelib.format', 'idlelib.grep', 'idlelib.help',
'idlelib.help_about', 'idlelib.history', 'idlelib.hyperparser', 'idlelib.idle', 'idlelib.idle_test',
'idlelib.idle_test.htest', 'idlelib.idle_test.mock_idle', 'idlelib.idle_test.mock_tk',
'idlelib.idle_test.template', 'idlelib.idle_test.test_autocomplete', 'idlelib.idle_test.test_autocomplete_w',
'idlelib.idle_test.test_autoexpand', 'idlelib.idle_test.test_browser', 'idlelib.idle_test.test_calltip',
'idlelib.idle_test.test_calltip_w', 'idlelib.idle_test.test_codecontext', 'idlelib.idle_test.test_colorizer',
'idlelib.idle_test.test_config', 'idlelib.idle_test.test_config_key', 'idlelib.idle_test.test_configdialog',
'idlelib.idle_test.test_debugger', 'idlelib.idle_test.test_debugger_r', 'idlelib.idle_test.test_debugobj',
'idlelib.idle_test.test_debugobj_r', 'idlelib.idle_test.test_delegator', 'idlelib.idle_test.test_editmenu',
'idlelib.idle_test.test_editor', 'idlelib.idle_test.test_filelist', 'idlelib.idle_test.test_format',
'idlelib.idle_test.test_grep', 'idlelib.idle_test.test_help', 'idlelib.idle_test.test_help_about',
'idlelib.idle_test.test_history', 'idlelib.idle_test.test_hyperparser', 'idlelib.idle_test.test_iomenu',
'idlelib.idle_test.test_macosx', 'idlelib.idle_test.test_mainmenu', 'idlelib.idle_test.test_multicall',
'idlelib.idle_test.test_outwin', 'idlelib.idle_test.test_parenmatch', 'idlelib.idle_test.test_pathbrowser',
'idlelib.idle_test.test_percolator', 'idlelib.idle_test.test_pyparse', 'idlelib.idle_test.test_pyshell',
'idlelib.idle_test.test_query', 'idlelib.idle_test.test_redirector', 'idlelib.idle_test.test_replace',
'idlelib.idle_test.test_rpc', 'idlelib.idle_test.test_run', 'idlelib.idle_test.test_runscript',
'idlelib.idle_test.test_scrolledlist', 'idlelib.idle_test.test_search', 'idlelib.idle_test.test_searchbase',
'idlelib.idle_test.test_searchengine', 'idlelib.idle_test.test_sidebar', 'idlelib.idle_test.test_squeezer',
'idlelib.idle_test.test_stackviewer', 'idlelib.idle_test.test_statusbar', 'idlelib.idle_test.test_text',
'idlelib.idle_test.test_textview', 'idlelib.idle_test.test_tooltip', 'idlelib.idle_test.test_tree',
'idlelib.idle_test.test_undo', 'idlelib.idle_test.test_warning', 'idlelib.idle_test.test_window',
'idlelib.idle_test.test_zoomheight', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.mainmenu',
'idlelib.multicall', 'idlelib.outwin', 'idlelib.parenmatch', 'idlelib.pathbrowser', 'idlelib.percolator',
'idlelib.pyparse', 'idlelib.pyshell', 'idlelib.query', 'idlelib.redirector', 'idlelib.replace',
'idlelib.rpc', 'idlelib.run', 'idlelib.runscript', 'idlelib.scrolledlist', 'idlelib.search',
'idlelib.searchbase', 'idlelib.searchengine', 'idlelib.sidebar', 'idlelib.squeezer', 'idlelib.stackviewer',
'idlelib.statusbar', 'idlelib.textview', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.undo', 'idlelib.window',
'idlelib.zoomheight', 'idlelib.zzdummy', 'imaplib', 'imghdr', 'imp', 'importlib', 'importlib._bootstrap',
'importlib._bootstrap_external', 'importlib.abc', 'importlib.machinery', 'importlib.metadata',
'importlib.resources', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'json', 'json.decoder',
'json.encoder', 'json.scanner', 'json.tool', 'keyword', 'lib2to3', 'lib2to3.__main__', 'lib2to3.btm_matcher',
'lib2to3.btm_utils', 'lib2to3.fixer_base', 'lib2to3.fixer_util', 'lib2to3.fixes', 'lib2to3.fixes.fix_apply',
'lib2to3.fixes.fix_asserts', 'lib2to3.fixes.fix_basestring', 'lib2to3.fixes.fix_buffer',
'lib2to3.fixes.fix_dict', 'lib2to3.fixes.fix_except', 'lib2to3.fixes.fix_exec', 'lib2to3.fixes.fix_execfile',
'lib2to3.fixes.fix_exitfunc', 'lib2to3.fixes.fix_filter', 'lib2to3.fixes.fix_funcattrs',
'lib2to3.fixes.fix_future', 'lib2to3.fixes.fix_getcwdu', 'lib2to3.fixes.fix_has_key',
'lib2to3.fixes.fix_idioms', 'lib2to3.fixes.fix_import', 'lib2to3.fixes.fix_imports',
'lib2to3.fixes.fix_imports2', 'lib2to3.fixes.fix_input', 'lib2to3.fixes.fix_intern',
'lib2to3.fixes.fix_isinstance', 'lib2to3.fixes.fix_itertools', 'lib2to3.fixes.fix_itertools_imports',
'lib2to3.fixes.fix_long', 'lib2to3.fixes.fix_map', 'lib2to3.fixes.fix_metaclass',
'lib2to3.fixes.fix_methodattrs', 'lib2to3.fixes.fix_ne', 'lib2to3.fixes.fix_next',
'lib2to3.fixes.fix_nonzero', 'lib2to3.fixes.fix_numliterals', 'lib2to3.fixes.fix_operator',
'lib2to3.fixes.fix_paren', 'lib2to3.fixes.fix_print', 'lib2to3.fixes.fix_raise',
'lib2to3.fixes.fix_raw_input', 'lib2to3.fixes.fix_reduce', 'lib2to3.fixes.fix_reload',
'lib2to3.fixes.fix_renames', 'lib2to3.fixes.fix_repr', 'lib2to3.fixes.fix_set_literal',
'lib2to3.fixes.fix_standarderror', 'lib2to3.fixes.fix_sys_exc', 'lib2to3.fixes.fix_throw',
'lib2to3.fixes.fix_tuple_params', 'lib2to3.fixes.fix_types', 'lib2to3.fixes.fix_unicode',
'lib2to3.fixes.fix_urllib', 'lib2to3.fixes.fix_ws_comma', 'lib2to3.fixes.fix_xrange',
'lib2to3.fixes.fix_xreadlines', 'lib2to3.fixes.fix_zip', 'lib2to3.main', 'lib2to3.patcomp', 'lib2to3.pgen2',
'lib2to3.pgen2.conv', 'lib2to3.pgen2.driver', 'lib2to3.pgen2.grammar', 'lib2to3.pgen2.literals',
'lib2to3.pgen2.parse', 'lib2to3.pgen2.pgen', 'lib2to3.pgen2.token', 'lib2to3.pgen2.tokenize',
'lib2to3.pygram', 'lib2to3.pytree', 'lib2to3.refactor', 'lib2to3.tests', 'lib2to3.tests.__main__',
'lib2to3.tests.data.bom', 'lib2to3.tests.data.crlf', 'lib2to3.tests.data.different_encoding',
'lib2to3.tests.data.false_encoding', 'lib2to3.tests.data.fixers.bad_order',
'lib2to3.tests.data.fixers.myfixes', 'lib2to3.tests.data.fixers.myfixes.fix_explicit',
'lib2to3.tests.data.fixers.myfixes.fix_first', 'lib2to3.tests.data.fixers.myfixes.fix_last',
'lib2to3.tests.data.fixers.myfixes.fix_parrot', 'lib2to3.tests.data.fixers.myfixes.fix_preorder',
'lib2to3.tests.data.fixers.no_fixer_cls', 'lib2to3.tests.data.fixers.parrot_example',
'lib2to3.tests.data.infinite_recursion', 'lib2to3.tests.data.py2_test_grammar',
'lib2to3.tests.data.py3_test_grammar', 'lib2to3.tests.pytree_idempotency', 'lib2to3.tests.support',
'lib2to3.tests.test_all_fixers', 'lib2to3.tests.test_fixers', 'lib2to3.tests.test_main',
'lib2to3.tests.test_parser', 'lib2to3.tests.test_pytree', 'lib2to3.tests.test_refactor',
'lib2to3.tests.test_util', 'linecache', 'locale', 'logging', 'logging.config', 'logging.handlers', 'lzma',
'mailbox', 'mailcap', 'marshal', 'math', 'mimetypes', 'mmap', 'modulefinder', 'msilib', 'msvcrt',
'multiprocessing', 'multiprocessing.connection', 'multiprocessing.context', 'multiprocessing.dummy',
'multiprocessing.dummy.connection', 'multiprocessing.forkserver', 'multiprocessing.heap',
'multiprocessing.managers', 'multiprocessing.pool', 'multiprocessing.popen_fork',
'multiprocessing.popen_forkserver', 'multiprocessing.popen_spawn_posix', 'multiprocessing.popen_spawn_win32',
'multiprocessing.process', 'multiprocessing.queues', 'multiprocessing.reduction',
'multiprocessing.resource_sharer', 'multiprocessing.resource_tracker', 'multiprocessing.shared_memory',
'multiprocessing.sharedctypes', 'multiprocessing.spawn', 'multiprocessing.synchronize',
'multiprocessing.util', 'netrc', 'nis', 'nntplib', 'ntpath', 'nturl2path', 'numbers', 'opcode', 'operator',
'optparse', 'os', 'os.path', 'ossaudiodev', 'parser', 'pathlib', 'pdb', 'pickle', 'pickletools', 'pipes',
'pkgutil', 'platform', 'plistlib', 'poplib', 'posix', 'posixpath', 'pprint', 'profile', 'pstats', 'pty',
'pwd', 'py_compile', 'pyclbr', 'pydoc', 'pydoc_data', 'pydoc_data.topics', 'pyexpat', 'queue', 'quopri',
'random', 're', 'readline', 'reprlib', 'resource', 'rlcompleter', 'runpy', 'sched', 'secrets', 'select',
'selectors', 'shelve', 'shlex', 'shutil', 'signal', 'site', 'smtpd', 'smtplib', 'sndhdr', 'socket',
'socketserver', 'spwd', 'sqlite3', 'sqlite3.dbapi2', 'sqlite3.dump', 'sqlite3.test', 'sqlite3.test.backup',
'sqlite3.test.dbapi', 'sqlite3.test.dump', 'sqlite3.test.factory', 'sqlite3.test.hooks',
'sqlite3.test.regression', 'sqlite3.test.transactions', 'sqlite3.test.types', 'sqlite3.test.userfunctions',
'sre_compile', 'sre_constants', 'sre_parse', 'ssl', 'stat', 'statistics', 'string', 'stringprep', 'struct',
'subprocess', 'sunau', 'symbol', 'symtable', 'sys', 'sysconfig', 'syslog', 'tabnanny', 'tarfile',
'telnetlib', 'tempfile', 'termios', 'test', 'test.__main__', 'test._test_multiprocessing', 'test.ann_module',
'test.ann_module2', 'test.ann_module3', 'test.audiotests', 'test.autotest', 'test.bad_coding',
'test.bad_coding2', 'test.bad_getattr', 'test.bad_getattr2', 'test.bad_getattr3', 'test.badsyntax_3131',
'test.badsyntax_future10', 'test.badsyntax_future3', 'test.badsyntax_future4', 'test.badsyntax_future5',
'test.badsyntax_future6', 'test.badsyntax_future7', 'test.badsyntax_future8', 'test.badsyntax_future9',
'test.badsyntax_pep3120', 'test.bisect_cmd', 'test.bytecode_helper', 'test.coding20731', 'test.curses_tests',
'test.dataclass_module_1', 'test.dataclass_module_1_str', 'test.dataclass_module_2',
'test.dataclass_module_2_str', 'test.datetimetester', 'test.dis_module', 'test.doctest_aliases',
'test.double_const', 'test.dtracedata.call_stack', 'test.dtracedata.gc', 'test.dtracedata.instance',
'test.dtracedata.line', 'test.eintrdata.eintr_tester', 'test.encoded_modules',
'test.encoded_modules.module_iso_8859_1', 'test.encoded_modules.module_koi8_r', 'test.final_a',
'test.final_b', 'test.fork_wait', 'test.future_test1', 'test.future_test2', 'test.gdb_sample',
'test.good_getattr', 'test.imp_dummy', 'test.inspect_fodder', 'test.inspect_fodder2', 'test.libregrtest',
'test.libregrtest.cmdline', 'test.libregrtest.main', 'test.libregrtest.pgo', 'test.libregrtest.refleak',
'test.libregrtest.runtest', 'test.libregrtest.runtest_mp', 'test.libregrtest.save_env',
'test.libregrtest.setup', 'test.libregrtest.utils', 'test.libregrtest.win_utils', 'test.list_tests',
'test.lock_tests', 'test.make_ssl_certs', 'test.mapping_tests', 'test.memory_watchdog', 'test.mock_socket',
'test.mod_generics_cache', 'test.mp_fork_bomb', 'test.mp_preload', 'test.multibytecodec_support',
'test.outstanding_bugs', 'test.pickletester', 'test.profilee', 'test.pyclbr_input', 'test.pydoc_mod',
'test.pydocfodder', 'test.pythoninfo', 'test.re_tests', 'test.regrtest', 'test.relimport', 'test.reperf',
'test.sample_doctest', 'test.sample_doctest_no_docstrings', 'test.sample_doctest_no_doctests',
'test.seq_tests', 'test.signalinterproctester', 'test.sortperf', 'test.ssl_servers', 'test.ssltests',
'test.string_tests', 'test.subprocessdata.fd_status', 'test.subprocessdata.input_reader',
'test.subprocessdata.qcat', 'test.subprocessdata.qgrep', 'test.subprocessdata.sigchild_ignore',
'test.support', 'test.support.script_helper', 'test.support.testresult', 'test.test___all__',
'test.test___future__', 'test.test__locale', 'test.test__opcode', 'test.test__osx_support',
'test.test__xxsubinterpreters', 'test.test_abc', 'test.test_abstract_numbers', 'test.test_aifc',
'test.test_argparse', 'test.test_array', 'test.test_asdl_parser', 'test.test_ast', 'test.test_asyncgen',
'test.test_asynchat', 'test.test_asyncio', 'test.test_asyncio.__main__', 'test.test_asyncio.echo',
'test.test_asyncio.echo2', 'test.test_asyncio.echo3', 'test.test_asyncio.functional',
'test.test_asyncio.test_base_events', 'test.test_asyncio.test_buffered_proto',
'test.test_asyncio.test_context', 'test.test_asyncio.test_events', 'test.test_asyncio.test_futures',
'test.test_asyncio.test_locks', 'test.test_asyncio.test_pep492', 'test.test_asyncio.test_proactor_events',
'test.test_asyncio.test_protocols', 'test.test_asyncio.test_queues', 'test.test_asyncio.test_runners',
'test.test_asyncio.test_selector_events', 'test.test_asyncio.test_sendfile', 'test.test_asyncio.test_server',
'test.test_asyncio.test_sock_lowlevel', 'test.test_asyncio.test_sslproto', 'test.test_asyncio.test_streams',
'test.test_asyncio.test_subprocess', 'test.test_asyncio.test_tasks', 'test.test_asyncio.test_transports',
'test.test_asyncio.test_unix_events', 'test.test_asyncio.test_windows_events',
'test.test_asyncio.test_windows_utils', 'test.test_asyncio.utils', 'test.test_asyncore', 'test.test_atexit',
'test.test_audioop', 'test.test_audit', 'test.test_augassign', 'test.test_base64', 'test.test_baseexception',
'test.test_bdb', 'test.test_bigaddrspace', 'test.test_bigmem', 'test.test_binascii', 'test.test_binhex',
'test.test_binop', 'test.test_bisect', 'test.test_bool', 'test.test_buffer', 'test.test_bufio',
'test.test_builtin', 'test.test_bytes', 'test.test_bz2', 'test.test_c_locale_coercion', 'test.test_calendar',
'test.test_call', 'test.test_capi', 'test.test_cgi', 'test.test_cgitb', 'test.test_charmapcodec',
'test.test_class', 'test.test_clinic', 'test.test_cmath', 'test.test_cmd', 'test.test_cmd_line',
'test.test_cmd_line_script', 'test.test_code', 'test.test_code_module', 'test.test_codeccallbacks',
'test.test_codecencodings_cn', 'test.test_codecencodings_hk', 'test.test_codecencodings_iso2022',
'test.test_codecencodings_jp', 'test.test_codecencodings_kr', 'test.test_codecencodings_tw',
'test.test_codecmaps_cn', 'test.test_codecmaps_hk', 'test.test_codecmaps_jp', 'test.test_codecmaps_kr',
'test.test_codecmaps_tw', 'test.test_codecs', 'test.test_codeop', 'test.test_collections',
'test.test_colorsys', 'test.test_compare', 'test.test_compile', 'test.test_compileall', 'test.test_complex',
'test.test_concurrent_futures', 'test.test_configparser', 'test.test_contains', 'test.test_context',
'test.test_contextlib', 'test.test_contextlib_async', 'test.test_copy', 'test.test_copyreg',
'test.test_coroutines', 'test.test_cprofile', 'test.test_crashers', 'test.test_crypt', 'test.test_csv',
'test.test_ctypes', 'test.test_curses', 'test.test_dataclasses', 'test.test_datetime', 'test.test_dbm',
'test.test_dbm_dumb', 'test.test_dbm_gnu', 'test.test_dbm_ndbm', 'test.test_decimal', 'test.test_decorators',
'test.test_defaultdict', 'test.test_deque', 'test.test_descr', 'test.test_descrtut', 'test.test_devpoll',
'test.test_dict', 'test.test_dict_version', 'test.test_dictcomps', 'test.test_dictviews',
'test.test_difflib', 'test.test_dis', 'test.test_distutils', 'test.test_doctest', 'test.test_doctest2',
'test.test_docxmlrpc', 'test.test_dtrace', 'test.test_dummy_thread', 'test.test_dummy_threading',
'test.test_dynamic', 'test.test_dynamicclassattribute', 'test.test_eintr', 'test.test_email',
'test.test_email.__main__', 'test.test_email.test__encoded_words',
'test.test_email.test__header_value_parser', 'test.test_email.test_asian_codecs',
'test.test_email.test_contentmanager', 'test.test_email.test_defect_handling', 'test.test_email.test_email',
'test.test_email.test_generator', 'test.test_email.test_headerregistry', 'test.test_email.test_inversion',
'test.test_email.test_message', 'test.test_email.test_parser', 'test.test_email.test_pickleable',
'test.test_email.test_policy', 'test.test_email.test_utils', 'test.test_email.torture_test',
'test.test_embed', 'test.test_ensurepip', 'test.test_enum', 'test.test_enumerate', 'test.test_eof',
'test.test_epoll', 'test.test_errno', 'test.test_exception_hierarchy', 'test.test_exception_variations',
'test.test_exceptions', 'test.test_extcall', 'test.test_faulthandler', 'test.test_fcntl', 'test.test_file',
'test.test_file_eintr', 'test.test_filecmp', 'test.test_fileinput', 'test.test_fileio',
'test.test_finalization', 'test.test_float', 'test.test_flufl', 'test.test_fnmatch', 'test.test_fork1',
'test.test_format', 'test.test_fractions', 'test.test_frame', 'test.test_frozen', 'test.test_fstring',
'test.test_ftplib', 'test.test_funcattrs', 'test.test_functools', 'test.test_future', 'test.test_future3',
'test.test_future4', 'test.test_future5', 'test.test_gc', 'test.test_gdb', 'test.test_generator_stop',
'test.test_generators', 'test.test_genericclass', 'test.test_genericpath', 'test.test_genexps',
'test.test_getargs2', 'test.test_getopt', 'test.test_getpass', 'test.test_gettext', 'test.test_glob',
'test.test_global', 'test.test_grammar', 'test.test_grp', 'test.test_gzip', 'test.test_hash',
'test.test_hashlib', 'test.test_heapq', 'test.test_hmac', 'test.test_html', 'test.test_htmlparser',
'test.test_http_cookiejar', 'test.test_http_cookies', 'test.test_httplib', 'test.test_httpservers',
'test.test_idle', 'test.test_imaplib', 'test.test_imghdr', 'test.test_imp', 'test.test_import',
'test.test_import.__main__', 'test.test_import.data.circular_imports.basic',
'test.test_import.data.circular_imports.basic2', 'test.test_import.data.circular_imports.binding',
'test.test_import.data.circular_imports.binding2', 'test.test_import.data.circular_imports.from_cycle1',
'test.test_import.data.circular_imports.from_cycle2', 'test.test_import.data.circular_imports.indirect',
'test.test_import.data.circular_imports.rebinding', 'test.test_import.data.circular_imports.rebinding2',
'test.test_import.data.circular_imports.source', 'test.test_import.data.circular_imports.subpackage',
'test.test_import.data.circular_imports.subpkg.subpackage2',
'test.test_import.data.circular_imports.subpkg.util', 'test.test_import.data.circular_imports.use',
'test.test_import.data.circular_imports.util', 'test.test_import.data.package',
'test.test_import.data.package.submodule', 'test.test_import.data.package2.submodule1',
'test.test_import.data.package2.submodule2', 'test.test_importlib', 'test.test_importlib.__main__',
'test.test_importlib.abc', 'test.test_importlib.builtin', 'test.test_importlib.builtin.__main__',
'test.test_importlib.builtin.test_finder', 'test.test_importlib.builtin.test_loader',
'test.test_importlib.data', 'test.test_importlib.data01', 'test.test_importlib.data01.subdirectory',
'test.test_importlib.data02', 'test.test_importlib.data02.one', 'test.test_importlib.data02.two',
'test.test_importlib.data03', 'test.test_importlib.data03.namespace.portion1',
'test.test_importlib.data03.namespace.portion2', 'test.test_importlib.extension',
'test.test_importlib.extension.__main__', 'test.test_importlib.extension.test_case_sensitivity',
'test.test_importlib.extension.test_finder', 'test.test_importlib.extension.test_loader',
'test.test_importlib.extension.test_path_hook', 'test.test_importlib.fixtures', 'test.test_importlib.frozen',
'test.test_importlib.frozen.__main__', 'test.test_importlib.frozen.test_finder',
'test.test_importlib.frozen.test_loader', 'test.test_importlib.import_',
'test.test_importlib.import_.__main__', 'test.test_importlib.import_.test___loader__',
'test.test_importlib.import_.test___package__', 'test.test_importlib.import_.test_api',
'test.test_importlib.import_.test_caching', 'test.test_importlib.import_.test_fromlist',
'test.test_importlib.import_.test_meta_path', 'test.test_importlib.import_.test_packages',
'test.test_importlib.import_.test_path', 'test.test_importlib.import_.test_relative_imports',
'test.test_importlib.namespace_pkgs.both_portions.foo.one',
'test.test_importlib.namespace_pkgs.both_portions.foo.two',
'test.test_importlib.namespace_pkgs.module_and_namespace_package.a_test',
'test.test_importlib.namespace_pkgs.not_a_namespace_pkg.foo',
'test.test_importlib.namespace_pkgs.not_a_namespace_pkg.foo.one',
'test.test_importlib.namespace_pkgs.portion1.foo.one', 'test.test_importlib.namespace_pkgs.portion2.foo.two',
'test.test_importlib.namespace_pkgs.project1.parent.child.one',
'test.test_importlib.namespace_pkgs.project2.parent.child.two',
'test.test_importlib.namespace_pkgs.project3.parent.child.three', 'test.test_importlib.source',
'test.test_importlib.source.__main__', 'test.test_importlib.source.test_case_sensitivity',
'test.test_importlib.source.test_file_loader', 'test.test_importlib.source.test_finder',
'test.test_importlib.source.test_path_hook', 'test.test_importlib.source.test_source_encoding',
'test.test_importlib.test_abc', 'test.test_importlib.test_api', 'test.test_importlib.test_lazy',
'test.test_importlib.test_locks', 'test.test_importlib.test_main', 'test.test_importlib.test_metadata_api',
'test.test_importlib.test_namespace_pkgs', 'test.test_importlib.test_open', 'test.test_importlib.test_path',
'test.test_importlib.test_read', 'test.test_importlib.test_resource', 'test.test_importlib.test_spec',
'test.test_importlib.test_util', 'test.test_importlib.test_windows', 'test.test_importlib.test_zip',
'test.test_importlib.util', 'test.test_importlib.zipdata01', 'test.test_importlib.zipdata02',
'test.test_index', 'test.test_inspect', 'test.test_int', 'test.test_int_literal', 'test.test_io',
'test.test_ioctl', 'test.test_ipaddress', 'test.test_isinstance', 'test.test_iter', 'test.test_iterlen',
'test.test_itertools', 'test.test_json', 'test.test_json.__main__', 'test.test_json.test_decode',
'test.test_json.test_default', 'test.test_json.test_dump', 'test.test_json.test_encode_basestring_ascii',
'test.test_json.test_enum', 'test.test_json.test_fail', 'test.test_json.test_float',
'test.test_json.test_indent', 'test.test_json.test_pass1', 'test.test_json.test_pass2',
'test.test_json.test_pass3', 'test.test_json.test_recursion', 'test.test_json.test_scanstring',
'test.test_json.test_separators', 'test.test_json.test_speedups', 'test.test_json.test_tool',
'test.test_json.test_unicode', 'test.test_keyword', 'test.test_keywordonlyarg', 'test.test_kqueue',
'test.test_largefile', 'test.test_lib2to3', 'test.test_linecache', 'test.test_list', 'test.test_listcomps',
'test.test_lltrace', 'test.test_locale', 'test.test_logging', 'test.test_long', 'test.test_longexp',
'test.test_lzma', 'test.test_mailbox', 'test.test_mailcap', 'test.test_marshal', 'test.test_math',
'test.test_memoryio', 'test.test_memoryview', 'test.test_metaclass', 'test.test_mimetypes',
'test.test_minidom', 'test.test_mmap', 'test.test_module', 'test.test_modulefinder', 'test.test_msilib',
'test.test_multibytecodec', 'test.test_multiprocessing_fork', 'test.test_multiprocessing_forkserver',
'test.test_multiprocessing_main_handling', 'test.test_multiprocessing_spawn', 'test.test_named_expressions',
'test.test_netrc', 'test.test_nis', 'test.test_nntplib', 'test.test_normalization', 'test.test_ntpath',
'test.test_numeric_tower', 'test.test_opcodes', 'test.test_openpty', 'test.test_operator',
'test.test_optparse', 'test.test_ordered_dict', 'test.test_os', 'test.test_ossaudiodev', 'test.test_osx_env',
'test.test_parser', 'test.test_pathlib', 'test.test_pdb', 'test.test_peepholer', 'test.test_pickle',
'test.test_picklebuffer', 'test.test_pickletools', 'test.test_pipes', 'test.test_pkg', 'test.test_pkgimport',
'test.test_pkgutil', 'test.test_platform', 'test.test_plistlib', 'test.test_poll', 'test.test_popen',
'test.test_poplib', 'test.test_positional_only_arg', 'test.test_posix', 'test.test_posixpath',
'test.test_pow', 'test.test_pprint', 'test.test_print', 'test.test_profile', 'test.test_property',
'test.test_pstats', 'test.test_pty', 'test.test_pulldom', 'test.test_pwd', 'test.test_py_compile',
'test.test_pyclbr', 'test.test_pydoc', 'test.test_pyexpat', 'test.test_queue', 'test.test_quopri',
'test.test_raise', 'test.test_random', 'test.test_range', 'test.test_re', 'test.test_readline',
'test.test_regrtest', 'test.test_repl', 'test.test_reprlib', 'test.test_resource', 'test.test_richcmp',
'test.test_rlcompleter', 'test.test_robotparser', 'test.test_runpy', 'test.test_sax', 'test.test_sched',
'test.test_scope', 'test.test_script_helper', 'test.test_secrets', 'test.test_select', 'test.test_selectors',
'test.test_set', 'test.test_setcomps', 'test.test_shelve', 'test.test_shlex', 'test.test_shutil',
'test.test_signal', 'test.test_site', 'test.test_slice', 'test.test_smtpd', 'test.test_smtplib',
'test.test_smtpnet', 'test.test_sndhdr', 'test.test_socket', 'test.test_socketserver', 'test.test_sort',
'test.test_source_encoding', 'test.test_spwd', 'test.test_sqlite', 'test.test_ssl', 'test.test_startfile',
'test.test_stat', 'test.test_statistics', 'test.test_strftime', 'test.test_string',
'test.test_string_literals', 'test.test_stringprep', 'test.test_strptime', 'test.test_strtod',
'test.test_struct', 'test.test_structmembers', 'test.test_structseq', 'test.test_subclassinit',
'test.test_subprocess', 'test.test_sunau', 'test.test_sundry', 'test.test_super', 'test.test_support',
'test.test_symbol', 'test.test_symtable', 'test.test_syntax', 'test.test_sys', 'test.test_sys_setprofile',
'test.test_sys_settrace', 'test.test_sysconfig', 'test.test_syslog', 'test.test_tabnanny',
'test.test_tarfile', 'test.test_tcl', 'test.test_telnetlib', 'test.test_tempfile', 'test.test_textwrap',
'test.test_thread', 'test.test_threaded_import', 'test.test_threadedtempfile', 'test.test_threading',
'test.test_threading_local', 'test.test_threadsignals', 'test.test_time', 'test.test_timeit',
'test.test_timeout', 'test.test_tix', 'test.test_tk', 'test.test_tokenize', 'test.test_tools',
'test.test_tools.__main__', 'test.test_tools.test_fixcid', 'test.test_tools.test_gprof2html',
'test.test_tools.test_i18n', 'test.test_tools.test_lll', 'test.test_tools.test_md5sum',
'test.test_tools.test_pathfix', 'test.test_tools.test_pdeps', 'test.test_tools.test_pindent',
'test.test_tools.test_reindent', 'test.test_tools.test_sundry', 'test.test_tools.test_unparse',
'test.test_trace', 'test.test_traceback', 'test.test_tracemalloc', 'test.test_ttk_guionly',
'test.test_ttk_textonly', 'test.test_tuple', 'test.test_turtle', 'test.test_type_comments',
'test.test_typechecks', 'test.test_types', 'test.test_typing', 'test.test_ucn', 'test.test_unary',
'test.test_unicode', 'test.test_unicode_file', 'test.test_unicode_file_functions',
'test.test_unicode_identifiers', 'test.test_unicodedata', 'test.test_unittest', 'test.test_univnewlines',
'test.test_unpack', 'test.test_unpack_ex', 'test.test_urllib', 'test.test_urllib2',
'test.test_urllib2_localnet', 'test.test_urllib2net', 'test.test_urllib_response', 'test.test_urllibnet',
'test.test_urlparse', 'test.test_userdict', 'test.test_userlist', 'test.test_userstring',
'test.test_utf8_mode', 'test.test_utf8source', 'test.test_uu', 'test.test_uuid', 'test.test_venv',
'test.test_wait3', 'test.test_wait4', 'test.test_warnings', 'test.test_warnings.__main__',
'test.test_warnings.data.import_warning', 'test.test_warnings.data.stacklevel', 'test.test_wave',
'test.test_weakref', 'test.test_weakset', 'test.test_webbrowser', 'test.test_winconsoleio',
'test.test_winreg', 'test.test_winsound', 'test.test_with', 'test.test_wsgiref', 'test.test_xdrlib',
'test.test_xml_dom_minicompat', 'test.test_xml_etree', 'test.test_xml_etree_c', 'test.test_xmlrpc',
'test.test_xmlrpc_net', 'test.test_xxtestfuzz', 'test.test_yield_from', 'test.test_zipapp',
'test.test_zipfile', 'test.test_zipfile64', 'test.test_zipimport', 'test.test_zipimport_support',
'test.test_zlib', 'test.testcodec', 'test.tf_inherit_check', 'test.threaded_import_hangers',
'test.time_hashlib', 'test.tracedmodules', 'test.tracedmodules.testmod', 'test.win_console_handler',
'test.xmltests', 'test.ziptestdata.testdata_module_inside_zip', 'textwrap', 'this', 'threading', 'time',
'timeit', 'tkinter', 'tkinter.__main__', 'tkinter.colorchooser', 'tkinter.commondialog', 'tkinter.constants',
'tkinter.dialog', 'tkinter.dnd', 'tkinter.filedialog', 'tkinter.font', 'tkinter.messagebox',
'tkinter.scrolledtext', 'tkinter.simpledialog', 'tkinter.test', 'tkinter.test.runtktests',
'tkinter.test.support', 'tkinter.test.test_tkinter', 'tkinter.test.test_tkinter.test_font',
'tkinter.test.test_tkinter.test_geometry_managers', 'tkinter.test.test_tkinter.test_images',
'tkinter.test.test_tkinter.test_loadtk', 'tkinter.test.test_tkinter.test_misc',
'tkinter.test.test_tkinter.test_text', 'tkinter.test.test_tkinter.test_variables',
'tkinter.test.test_tkinter.test_widgets', 'tkinter.test.test_ttk', 'tkinter.test.test_ttk.test_extensions',
'tkinter.test.test_ttk.test_functions', 'tkinter.test.test_ttk.test_style',
'tkinter.test.test_ttk.test_widgets', 'tkinter.test.widget_tests', 'tkinter.tix', 'tkinter.ttk', 'token',
'tokenize', 'trace', 'traceback', 'tracemalloc', 'tty', 'turtle', 'turtledemo', 'turtledemo.__main__',
'turtledemo.bytedesign', 'turtledemo.chaos', 'turtledemo.clock', 'turtledemo.colormixer',
'turtledemo.forest', 'turtledemo.fractalcurves', 'turtledemo.lindenmayer', 'turtledemo.minimal_hanoi',
'turtledemo.nim', 'turtledemo.paint', 'turtledemo.peace', 'turtledemo.penrose', 'turtledemo.planet_and_moon',
'turtledemo.rosette', 'turtledemo.round_dance', 'turtledemo.sorting_animate', 'turtledemo.tree',
'turtledemo.two_canvases', 'turtledemo.yinyang', 'types', 'typing', 'typing.io', 'typing.re', 'unicodedata',
'unittest', 'unittest.__main__', 'unittest.async_case', 'unittest.case', 'unittest.loader', 'unittest.main',
'unittest.mock', 'unittest.result', 'unittest.runner', 'unittest.signals', 'unittest.suite', 'unittest.test',
'unittest.test.__main__', 'unittest.test._test_warnings', 'unittest.test.dummy', 'unittest.test.support',
'unittest.test.test_assertions', 'unittest.test.test_async_case', 'unittest.test.test_break',
'unittest.test.test_case', 'unittest.test.test_discovery', 'unittest.test.test_functiontestcase',
'unittest.test.test_loader', 'unittest.test.test_program', 'unittest.test.test_result',
'unittest.test.test_runner', 'unittest.test.test_setups', 'unittest.test.test_skipping',
'unittest.test.test_suite', 'unittest.test.testmock', 'unittest.test.testmock.__main__',
'unittest.test.testmock.support', 'unittest.test.testmock.testasync', 'unittest.test.testmock.testcallable',
'unittest.test.testmock.testhelpers', 'unittest.test.testmock.testmagicmethods',
'unittest.test.testmock.testmock', 'unittest.test.testmock.testpatch', 'unittest.test.testmock.testsealable',
'unittest.test.testmock.testsentinel', 'unittest.test.testmock.testwith', 'unittest.util', 'urllib',
'urllib.error', 'urllib.parse', 'urllib.request', 'urllib.response', 'urllib.robotparser', 'uu', 'uuid',
'venv', 'venv.__main__', 'warnings', 'wave', 'weakref', 'webbrowser', 'winreg', 'winsound', 'wsgiref',
'wsgiref.handlers', 'wsgiref.headers', 'wsgiref.simple_server', 'wsgiref.util', 'wsgiref.validate', 'xdrlib',
'xml', 'xml.dom', 'xml.dom.NodeFilter', 'xml.dom.domreg', 'xml.dom.expatbuilder', 'xml.dom.minicompat',
'xml.dom.minidom', 'xml.dom.pulldom', 'xml.dom.xmlbuilder', 'xml.etree', 'xml.etree.ElementInclude',
'xml.etree.ElementPath', 'xml.etree.ElementTree', 'xml.etree.cElementTree', 'xml.parsers',
'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'xml.sax', 'xml.sax._exceptions',
'xml.sax.expatreader', 'xml.sax.handler', 'xml.sax.saxutils', 'xml.sax.xmlreader', 'xmlrpc', 'xmlrpc.client',
'xmlrpc.server', 'xxlimited', 'xxsubtype', 'zipapp', 'zipfile', 'zipimport', 'zlib',
# fmt: on
}
def find_non_std_imports(directory: str) -> Set[str]:
non_std_imports = set()
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.py'):
with open(os.path.join(root, file)) as f:
src = f.read()
try:
tree = ast.parse(src)
for node in ast.walk(tree):
if isinstance(node, ast.Import):
for name in node.names:
if name.name not in STD_LIB:
non_std_imports.add(name.name)
elif isinstance(node, ast.ImportFrom):
if node.module not in STD_LIB:
non_std_imports.add(node.module)
except SyntaxError:
pass
return non_std_imports
if __name__ == '__main__':
for i in sorted(find_non_std_imports("antareslauncher")):
print(i)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment