|
|
"""List of Python standard library modules. |
|
|
|
|
|
Sadly, there is no reliable way to tell whether a module is part of the |
|
|
standard library except by comparing to a canonical list. |
|
|
|
|
|
This is taken from https://github.com/PyCQA/isort/tree/develop/isort/stdlibs, |
|
|
which itself is sourced from the Python documentation. |
|
|
""" |
|
|
|
|
|
import sys |
|
|
|
|
|
|
|
|
def is_stdlib_module(module: str) -> bool: |
|
|
base_module = module.partition(".")[0] |
|
|
return base_module in _get_stdlib_modules() |
|
|
|
|
|
|
|
|
def _get_stdlib_modules(): |
|
|
if sys.version_info.major == 3: |
|
|
if sys.version_info.minor == 6: |
|
|
return stdlib3_6 |
|
|
if sys.version_info.minor == 7: |
|
|
return stdlib3_7 |
|
|
if sys.version_info.minor == 8: |
|
|
return stdlib3_8 |
|
|
if sys.version_info.minor == 9: |
|
|
return stdlib3_9 |
|
|
if sys.version_info.minor >= 10: |
|
|
return sys.stdlib_module_names |
|
|
elif sys.version_info.major > 3: |
|
|
return sys.stdlib_module_names |
|
|
|
|
|
raise RuntimeError(f"Unsupported Python version: {sys.version_info}") |
|
|
|
|
|
|
|
|
stdlib3_6 = { |
|
|
"_dummy_thread", |
|
|
"_thread", |
|
|
"abc", |
|
|
"aifc", |
|
|
"argparse", |
|
|
"array", |
|
|
"ast", |
|
|
"asynchat", |
|
|
"asyncio", |
|
|
"asyncore", |
|
|
"atexit", |
|
|
"audioop", |
|
|
"base64", |
|
|
"bdb", |
|
|
"binascii", |
|
|
"binhex", |
|
|
"bisect", |
|
|
"builtins", |
|
|
"bz2", |
|
|
"cProfile", |
|
|
"calendar", |
|
|
"cgi", |
|
|
"cgitb", |
|
|
"chunk", |
|
|
"cmath", |
|
|
"cmd", |
|
|
"code", |
|
|
"codecs", |
|
|
"codeop", |
|
|
"collections", |
|
|
"colorsys", |
|
|
"compileall", |
|
|
"concurrent", |
|
|
"configparser", |
|
|
"contextlib", |
|
|
"copy", |
|
|
"copyreg", |
|
|
"crypt", |
|
|
"csv", |
|
|
"ctypes", |
|
|
"curses", |
|
|
"datetime", |
|
|
"dbm", |
|
|
"decimal", |
|
|
"difflib", |
|
|
"dis", |
|
|
"distutils", |
|
|
"doctest", |
|
|
"dummy_threading", |
|
|
"email", |
|
|
"encodings", |
|
|
"ensurepip", |
|
|
"enum", |
|
|
"errno", |
|
|
"faulthandler", |
|
|
"fcntl", |
|
|
"filecmp", |
|
|
"fileinput", |
|
|
"fnmatch", |
|
|
"formatter", |
|
|
"fpectl", |
|
|
"fractions", |
|
|
"ftplib", |
|
|
"functools", |
|
|
"gc", |
|
|
"getopt", |
|
|
"getpass", |
|
|
"gettext", |
|
|
"glob", |
|
|
"grp", |
|
|
"gzip", |
|
|
"hashlib", |
|
|
"heapq", |
|
|
"hmac", |
|
|
"html", |
|
|
"http", |
|
|
"imaplib", |
|
|
"imghdr", |
|
|
"imp", |
|
|
"importlib", |
|
|
"inspect", |
|
|
"io", |
|
|
"ipaddress", |
|
|
"itertools", |
|
|
"json", |
|
|
"keyword", |
|
|
"lib2to3", |
|
|
"linecache", |
|
|
"locale", |
|
|
"logging", |
|
|
"lzma", |
|
|
"macpath", |
|
|
"mailbox", |
|
|
"mailcap", |
|
|
"marshal", |
|
|
"math", |
|
|
"mimetypes", |
|
|
"mmap", |
|
|
"modulefinder", |
|
|
"msilib", |
|
|
"msvcrt", |
|
|
"multiprocessing", |
|
|
"netrc", |
|
|
"nis", |
|
|
"nntplib", |
|
|
"ntpath", |
|
|
"numbers", |
|
|
"operator", |
|
|
"optparse", |
|
|
"os", |
|
|
"ossaudiodev", |
|
|
"parser", |
|
|
"pathlib", |
|
|
"pdb", |
|
|
"pickle", |
|
|
"pickletools", |
|
|
"pipes", |
|
|
"pkgutil", |
|
|
"platform", |
|
|
"plistlib", |
|
|
"poplib", |
|
|
"posix", |
|
|
"posixpath", |
|
|
"pprint", |
|
|
"profile", |
|
|
"pstats", |
|
|
"pty", |
|
|
"pwd", |
|
|
"py_compile", |
|
|
"pyclbr", |
|
|
"pydoc", |
|
|
"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", |
|
|
"sre", |
|
|
"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", |
|
|
"textwrap", |
|
|
"threading", |
|
|
"time", |
|
|
"timeit", |
|
|
"tkinter", |
|
|
"token", |
|
|
"tokenize", |
|
|
"trace", |
|
|
"traceback", |
|
|
"tracemalloc", |
|
|
"tty", |
|
|
"turtle", |
|
|
"turtledemo", |
|
|
"types", |
|
|
"typing", |
|
|
"unicodedata", |
|
|
"unittest", |
|
|
"urllib", |
|
|
"uu", |
|
|
"uuid", |
|
|
"venv", |
|
|
"warnings", |
|
|
"wave", |
|
|
"weakref", |
|
|
"webbrowser", |
|
|
"winreg", |
|
|
"winsound", |
|
|
"wsgiref", |
|
|
"xdrlib", |
|
|
"xml", |
|
|
"xmlrpc", |
|
|
"zipapp", |
|
|
"zipfile", |
|
|
"zipimport", |
|
|
"zlib", |
|
|
} |
|
|
|
|
|
stdlib3_7 = { |
|
|
"_dummy_thread", |
|
|
"_thread", |
|
|
"abc", |
|
|
"aifc", |
|
|
"argparse", |
|
|
"array", |
|
|
"ast", |
|
|
"asynchat", |
|
|
"asyncio", |
|
|
"asyncore", |
|
|
"atexit", |
|
|
"audioop", |
|
|
"base64", |
|
|
"bdb", |
|
|
"binascii", |
|
|
"binhex", |
|
|
"bisect", |
|
|
"builtins", |
|
|
"bz2", |
|
|
"cProfile", |
|
|
"calendar", |
|
|
"cgi", |
|
|
"cgitb", |
|
|
"chunk", |
|
|
"cmath", |
|
|
"cmd", |
|
|
"code", |
|
|
"codecs", |
|
|
"codeop", |
|
|
"collections", |
|
|
"colorsys", |
|
|
"compileall", |
|
|
"concurrent", |
|
|
"configparser", |
|
|
"contextlib", |
|
|
"contextvars", |
|
|
"copy", |
|
|
"copyreg", |
|
|
"crypt", |
|
|
"csv", |
|
|
"ctypes", |
|
|
"curses", |
|
|
"dataclasses", |
|
|
"datetime", |
|
|
"dbm", |
|
|
"decimal", |
|
|
"difflib", |
|
|
"dis", |
|
|
"distutils", |
|
|
"doctest", |
|
|
"dummy_threading", |
|
|
"email", |
|
|
"encodings", |
|
|
"ensurepip", |
|
|
"enum", |
|
|
"errno", |
|
|
"faulthandler", |
|
|
"fcntl", |
|
|
"filecmp", |
|
|
"fileinput", |
|
|
"fnmatch", |
|
|
"formatter", |
|
|
"fractions", |
|
|
"ftplib", |
|
|
"functools", |
|
|
"gc", |
|
|
"getopt", |
|
|
"getpass", |
|
|
"gettext", |
|
|
"glob", |
|
|
"grp", |
|
|
"gzip", |
|
|
"hashlib", |
|
|
"heapq", |
|
|
"hmac", |
|
|
"html", |
|
|
"http", |
|
|
"imaplib", |
|
|
"imghdr", |
|
|
"imp", |
|
|
"importlib", |
|
|
"inspect", |
|
|
"io", |
|
|
"ipaddress", |
|
|
"itertools", |
|
|
"json", |
|
|
"keyword", |
|
|
"lib2to3", |
|
|
"linecache", |
|
|
"locale", |
|
|
"logging", |
|
|
"lzma", |
|
|
"macpath", |
|
|
"mailbox", |
|
|
"mailcap", |
|
|
"marshal", |
|
|
"math", |
|
|
"mimetypes", |
|
|
"mmap", |
|
|
"modulefinder", |
|
|
"msilib", |
|
|
"msvcrt", |
|
|
"multiprocessing", |
|
|
"netrc", |
|
|
"nis", |
|
|
"nntplib", |
|
|
"ntpath", |
|
|
"numbers", |
|
|
"operator", |
|
|
"optparse", |
|
|
"os", |
|
|
"ossaudiodev", |
|
|
"parser", |
|
|
"pathlib", |
|
|
"pdb", |
|
|
"pickle", |
|
|
"pickletools", |
|
|
"pipes", |
|
|
"pkgutil", |
|
|
"platform", |
|
|
"plistlib", |
|
|
"poplib", |
|
|
"posix", |
|
|
"posixpath", |
|
|
"pprint", |
|
|
"profile", |
|
|
"pstats", |
|
|
"pty", |
|
|
"pwd", |
|
|
"py_compile", |
|
|
"pyclbr", |
|
|
"pydoc", |
|
|
"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", |
|
|
"sre", |
|
|
"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", |
|
|
"textwrap", |
|
|
"threading", |
|
|
"time", |
|
|
"timeit", |
|
|
"tkinter", |
|
|
"token", |
|
|
"tokenize", |
|
|
"trace", |
|
|
"traceback", |
|
|
"tracemalloc", |
|
|
"tty", |
|
|
"turtle", |
|
|
"turtledemo", |
|
|
"types", |
|
|
"typing", |
|
|
"unicodedata", |
|
|
"unittest", |
|
|
"urllib", |
|
|
"uu", |
|
|
"uuid", |
|
|
"venv", |
|
|
"warnings", |
|
|
"wave", |
|
|
"weakref", |
|
|
"webbrowser", |
|
|
"winreg", |
|
|
"winsound", |
|
|
"wsgiref", |
|
|
"xdrlib", |
|
|
"xml", |
|
|
"xmlrpc", |
|
|
"zipapp", |
|
|
"zipfile", |
|
|
"zipimport", |
|
|
"zlib", |
|
|
} |
|
|
|
|
|
stdlib3_8 = { |
|
|
"_dummy_thread", |
|
|
"_thread", |
|
|
"abc", |
|
|
"aifc", |
|
|
"argparse", |
|
|
"array", |
|
|
"ast", |
|
|
"asynchat", |
|
|
"asyncio", |
|
|
"asyncore", |
|
|
"atexit", |
|
|
"audioop", |
|
|
"base64", |
|
|
"bdb", |
|
|
"binascii", |
|
|
"binhex", |
|
|
"bisect", |
|
|
"builtins", |
|
|
"bz2", |
|
|
"cProfile", |
|
|
"calendar", |
|
|
"cgi", |
|
|
"cgitb", |
|
|
"chunk", |
|
|
"cmath", |
|
|
"cmd", |
|
|
"code", |
|
|
"codecs", |
|
|
"codeop", |
|
|
"collections", |
|
|
"colorsys", |
|
|
"compileall", |
|
|
"concurrent", |
|
|
"configparser", |
|
|
"contextlib", |
|
|
"contextvars", |
|
|
"copy", |
|
|
"copyreg", |
|
|
"crypt", |
|
|
"csv", |
|
|
"ctypes", |
|
|
"curses", |
|
|
"dataclasses", |
|
|
"datetime", |
|
|
"dbm", |
|
|
"decimal", |
|
|
"difflib", |
|
|
"dis", |
|
|
"distutils", |
|
|
"doctest", |
|
|
"dummy_threading", |
|
|
"email", |
|
|
"encodings", |
|
|
"ensurepip", |
|
|
"enum", |
|
|
"errno", |
|
|
"faulthandler", |
|
|
"fcntl", |
|
|
"filecmp", |
|
|
"fileinput", |
|
|
"fnmatch", |
|
|
"formatter", |
|
|
"fractions", |
|
|
"ftplib", |
|
|
"functools", |
|
|
"gc", |
|
|
"getopt", |
|
|
"getpass", |
|
|
"gettext", |
|
|
"glob", |
|
|
"grp", |
|
|
"gzip", |
|
|
"hashlib", |
|
|
"heapq", |
|
|
"hmac", |
|
|
"html", |
|
|
"http", |
|
|
"imaplib", |
|
|
"imghdr", |
|
|
"imp", |
|
|
"importlib", |
|
|
"inspect", |
|
|
"io", |
|
|
"ipaddress", |
|
|
"itertools", |
|
|
"json", |
|
|
"keyword", |
|
|
"lib2to3", |
|
|
"linecache", |
|
|
"locale", |
|
|
"logging", |
|
|
"lzma", |
|
|
"mailbox", |
|
|
"mailcap", |
|
|
"marshal", |
|
|
"math", |
|
|
"mimetypes", |
|
|
"mmap", |
|
|
"modulefinder", |
|
|
"msilib", |
|
|
"msvcrt", |
|
|
"multiprocessing", |
|
|
"netrc", |
|
|
"nis", |
|
|
"nntplib", |
|
|
"ntpath", |
|
|
"numbers", |
|
|
"operator", |
|
|
"optparse", |
|
|
"os", |
|
|
"ossaudiodev", |
|
|
"parser", |
|
|
"pathlib", |
|
|
"pdb", |
|
|
"pickle", |
|
|
"pickletools", |
|
|
"pipes", |
|
|
"pkgutil", |
|
|
"platform", |
|
|
"plistlib", |
|
|
"poplib", |
|
|
"posix", |
|
|
"posixpath", |
|
|
"pprint", |
|
|
"profile", |
|
|
"pstats", |
|
|
"pty", |
|
|
"pwd", |
|
|
"py_compile", |
|
|
"pyclbr", |
|
|
"pydoc", |
|
|
"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", |
|
|
"sre", |
|
|
"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", |
|
|
"textwrap", |
|
|
"threading", |
|
|
"time", |
|
|
"timeit", |
|
|
"tkinter", |
|
|
"token", |
|
|
"tokenize", |
|
|
"trace", |
|
|
"traceback", |
|
|
"tracemalloc", |
|
|
"tty", |
|
|
"turtle", |
|
|
"turtledemo", |
|
|
"types", |
|
|
"typing", |
|
|
"unicodedata", |
|
|
"unittest", |
|
|
"urllib", |
|
|
"uu", |
|
|
"uuid", |
|
|
"venv", |
|
|
"warnings", |
|
|
"wave", |
|
|
"weakref", |
|
|
"webbrowser", |
|
|
"winreg", |
|
|
"winsound", |
|
|
"wsgiref", |
|
|
"xdrlib", |
|
|
"xml", |
|
|
"xmlrpc", |
|
|
"zipapp", |
|
|
"zipfile", |
|
|
"zipimport", |
|
|
"zlib", |
|
|
} |
|
|
|
|
|
stdlib3_9 = { |
|
|
"_thread", |
|
|
"abc", |
|
|
"aifc", |
|
|
"argparse", |
|
|
"array", |
|
|
"ast", |
|
|
"asynchat", |
|
|
"asyncio", |
|
|
"asyncore", |
|
|
"atexit", |
|
|
"audioop", |
|
|
"base64", |
|
|
"bdb", |
|
|
"binascii", |
|
|
"binhex", |
|
|
"bisect", |
|
|
"builtins", |
|
|
"bz2", |
|
|
"cProfile", |
|
|
"calendar", |
|
|
"cgi", |
|
|
"cgitb", |
|
|
"chunk", |
|
|
"cmath", |
|
|
"cmd", |
|
|
"code", |
|
|
"codecs", |
|
|
"codeop", |
|
|
"collections", |
|
|
"colorsys", |
|
|
"compileall", |
|
|
"concurrent", |
|
|
"configparser", |
|
|
"contextlib", |
|
|
"contextvars", |
|
|
"copy", |
|
|
"copyreg", |
|
|
"crypt", |
|
|
"csv", |
|
|
"ctypes", |
|
|
"curses", |
|
|
"dataclasses", |
|
|
"datetime", |
|
|
"dbm", |
|
|
"decimal", |
|
|
"difflib", |
|
|
"dis", |
|
|
"distutils", |
|
|
"doctest", |
|
|
"email", |
|
|
"encodings", |
|
|
"ensurepip", |
|
|
"enum", |
|
|
"errno", |
|
|
"faulthandler", |
|
|
"fcntl", |
|
|
"filecmp", |
|
|
"fileinput", |
|
|
"fnmatch", |
|
|
"formatter", |
|
|
"fractions", |
|
|
"ftplib", |
|
|
"functools", |
|
|
"gc", |
|
|
"getopt", |
|
|
"getpass", |
|
|
"gettext", |
|
|
"glob", |
|
|
"graphlib", |
|
|
"grp", |
|
|
"gzip", |
|
|
"hashlib", |
|
|
"heapq", |
|
|
"hmac", |
|
|
"html", |
|
|
"http", |
|
|
"imaplib", |
|
|
"imghdr", |
|
|
"imp", |
|
|
"importlib", |
|
|
"inspect", |
|
|
"io", |
|
|
"ipaddress", |
|
|
"itertools", |
|
|
"json", |
|
|
"keyword", |
|
|
"lib2to3", |
|
|
"linecache", |
|
|
"locale", |
|
|
"logging", |
|
|
"lzma", |
|
|
"mailbox", |
|
|
"mailcap", |
|
|
"marshal", |
|
|
"math", |
|
|
"mimetypes", |
|
|
"mmap", |
|
|
"modulefinder", |
|
|
"msilib", |
|
|
"msvcrt", |
|
|
"multiprocessing", |
|
|
"netrc", |
|
|
"nis", |
|
|
"nntplib", |
|
|
"ntpath", |
|
|
"numbers", |
|
|
"operator", |
|
|
"optparse", |
|
|
"os", |
|
|
"ossaudiodev", |
|
|
"parser", |
|
|
"pathlib", |
|
|
"pdb", |
|
|
"pickle", |
|
|
"pickletools", |
|
|
"pipes", |
|
|
"pkgutil", |
|
|
"platform", |
|
|
"plistlib", |
|
|
"poplib", |
|
|
"posix", |
|
|
"posixpath", |
|
|
"pprint", |
|
|
"profile", |
|
|
"pstats", |
|
|
"pty", |
|
|
"pwd", |
|
|
"py_compile", |
|
|
"pyclbr", |
|
|
"pydoc", |
|
|
"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", |
|
|
"sre", |
|
|
"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", |
|
|
"textwrap", |
|
|
"threading", |
|
|
"time", |
|
|
"timeit", |
|
|
"tkinter", |
|
|
"token", |
|
|
"tokenize", |
|
|
"trace", |
|
|
"traceback", |
|
|
"tracemalloc", |
|
|
"tty", |
|
|
"turtle", |
|
|
"turtledemo", |
|
|
"types", |
|
|
"typing", |
|
|
"unicodedata", |
|
|
"unittest", |
|
|
"urllib", |
|
|
"uu", |
|
|
"uuid", |
|
|
"venv", |
|
|
"warnings", |
|
|
"wave", |
|
|
"weakref", |
|
|
"webbrowser", |
|
|
"winreg", |
|
|
"winsound", |
|
|
"wsgiref", |
|
|
"xdrlib", |
|
|
"xml", |
|
|
"xmlrpc", |
|
|
"zipapp", |
|
|
"zipfile", |
|
|
"zipimport", |
|
|
"zlib", |
|
|
"zoneinfo", |
|
|
} |
|
|
|