cpython/Lib
Miss Islington (bot) 591c4ffdd9
[3.15] gh-149995: Update typing.py docstrings and documentation (GH-149996) (#150215)
gh-149995: Update typing.py docstrings and documentation (GH-149996)

Some of these docstrings read as if they were written when typing.py was
first written, and things have evolved since then.

A few motivations:
- Call protocols protocols instead of ABCs. They are also ABCs, but the fact
  they are protocols is more relevant to typing.
- Avoid recommending direct use of .__annotations__ and steer users to
  annotationlib instead.
- For TypedDict, mention NotRequired before total=False since it is more
  general and probably more frequently useful.
- For overloads, mention runtime use first instead of stub use. I think early on
  there was talk of allowing overload only in stubs, but it is now heavily used at
  runtime too and that's more likely to be relevant to users.
(cherry picked from commit f159419ae2)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2026-05-22 06:41:43 +00:00
..
__phello__
_pyrepl gh-130472: Use fancycompleter in import completions (#148188) 2026-05-05 01:36:43 +00:00
asyncio [3.15] gh-149694: Fix missing docstring on asyncio.iscoroutinefunction (#149696) 2026-05-12 22:52:36 +05:30
collections gh-147957: pop items from UserDict in LIFO order (gh-147958) 2026-04-14 23:29:41 -05:00
compression gh-132983: Split `_zstd_set_c_parameters` (#133921) 2025-05-28 14:45:08 +00:00
concurrent Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
ctypes gh-148675: Add Zd/Zf formats to array, ctypes, memoryview, struct (#148676) 2026-05-04 16:14:23 +02:00
curses gh-146153: Use frozendict in pure python fallback for curses.has_key (#146154) 2026-03-21 14:06:07 +01:00
dbm Fix typo: 'exept' -> 'except' in Lib/dbm/dumb.py (GH-144060) 2026-01-20 08:50:34 +02:00
email [3.15] gh-128110: Fix rfc2047 whitespace handling in email parser address headers (GH-130749) (#149787) 2026-05-13 16:26:42 -04:00
encodings [3.15] gh-149801: Add IANA registered names and aliases with leading zeros (GH-149804) (GH-149870) 2026-05-15 15:08:15 +03:00
ensurepip gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
html gh-140875: Fix handling of unclosed charrefs before EOF in HTMLParser (GH-140904) 2025-11-19 13:55:10 +02:00
http [3.15] gh-149144: Use decodeURIComponent() for UTF-8 support in js_output() (GH-149157) (GH-149846) 2026-05-15 00:38:11 +02:00
idlelib gh-139551: add support for BaseExceptionGroup in IDLE (GH-139563) 2026-04-12 10:06:41 -07:00
importlib GH-83065: Fix import deadlock by implementing hierarchical module locking (GH-137196) 2026-04-28 01:06:23 -07:00
json [3.15] gh-146061: Clarify indent=None in json docs (GH-146095) (GH-149667) 2026-05-11 11:44:11 +00:00
logging gh-145650: Add logging.{Formatter,Filter}.__repr__ (GH-145652) 2026-03-26 12:41:14 +00:00
multiprocessing gh-137335: remove a mktemp use in multiprocessing.connection to avoid security scanner noise (GH-148578) 2026-04-14 23:31:58 +00:00
pathlib [3.15] gh-86533: Restore os.makedirs() ability to apply *mode* recursively (GH-150011) (#150036) 2026-05-18 22:10:01 -07:00
profiling [3.15] gh-150034: Print JSONL filename when profiling finishes (GH-150035) (#150151) 2026-05-20 12:00:49 +00:00
pydoc_data Python 3.15.0b1 2026-05-07 16:26:31 +03:00
re gh-86519: Add prefixmatch APIs to the re module (GH-31137) 2026-02-15 17:43:39 -08:00
site-packages
sqlite3 gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
string GH-132661: Add `string.templatelib.convert()` (#135217) 2025-07-15 11:56:42 +02:00
sysconfig gh-146541: Allow building the Android testbed for 32-bit targets (#146542) 2026-04-04 11:27:27 +08:00
test [3.15] gh-149819: fix .pth and .start file processing in subprocess when inheriting PYTHONPATH (GH-150177) (#150202) 2026-05-21 15:31:41 -07:00
tkinter gh-47655: Add support for user data and detail of Tk events to tkinter (GH-7142) 2026-02-25 10:34:00 +02:00
tomllib [3.15] Update mypy to 2.1.0 (GH-149709) (#149711) 2026-05-12 09:09:52 +00:00
turtledemo gh-137586: Open external osascript program with absolute path (GH-137584) 2026-04-06 09:42:10 -07:00
unittest gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
urllib gh-138907: Support RFC 9309 in robotparser (GH-138908) 2026-05-04 18:03:11 +00:00
venv [3.15] gh-149701: Fully silence potential hash -r error (GH-149702) (GH-149757) 2026-05-13 10:28:27 +01:00
wsgiref gh-144370: Disallow usage of control characters in status in wsgiref.handlers for security (#144371) 2026-03-06 13:22:21 +01:00
xml [3.15] gh-139489: Add is_valid_text to xml.__all__ (GH-149641) (#149652) 2026-05-10 21:11:04 +00:00
xmlrpc gh-136839: Refactor simple dict.update calls (#136811) 2025-07-19 10:12:10 -07:00
zipfile [3.15] gh-134261: ZipFile - Don't rely on local time for reproducible builds & tests (GH-134264) (#150137) 2026-05-20 19:49:13 +00:00
zoneinfo gh-145883: Fix two heap-buffer-overflows in _zoneinfo (#145885) 2026-04-04 13:29:17 +01:00
__future__.py
__hello__.py
_aix_support.py
_android_support.py gh-144415: Android testbed fixes (#142912) 2026-02-03 16:37:34 +08:00
_apple_support.py
_ast_unparse.py gh-143055: Fix crash in AST unparser when unparsing dict comprehension unpacking (#145556) 2026-03-09 10:37:23 -07:00
_collections_abc.py gh-141510, PEP 814: Add built-in frozendict type (#144757) 2026-02-17 10:54:41 +01:00
_colorize.py gh-148352: Add more colour to calendar CLI output (#148354) 2026-05-04 15:14:57 +03:00
_compat_pickle.py gh-142349: Implement PEP 810 - Explicit lazy imports (#142351) 2026-02-12 00:15:33 +00:00
_ios_support.py
_markupbase.py
_opcode_metadata.py GH-143732: SEND specialization (GH-148963) 2026-05-05 15:19:16 +01:00
_osx_support.py gh-136677: Introduce executable specific linker flags to configure (#137296) 2026-02-24 22:52:02 +00:00
_py_abc.py
_py_warnings.py gh-143231: Add the module attribute to warnings.WarningMessage (GH-149298) 2026-05-03 09:35:47 +00:00
_pydatetime.py gh-97517: Add documentation links to datetime strftime/strptime docstrings (#138559) 2025-09-15 19:50:46 +01:00
_pydecimal.py gh-76007: Deprecate __version__ attribute in decimal (#140302) 2025-10-26 12:01:04 +01:00
_pyio.py gh-143602: Fix duplicate buffer exports in io.BytesIO.write (#143629) 2026-01-15 16:08:55 +01:00
_pylong.py
_sitebuiltins.py gh-145035: Allows removing the _pyrepl module to completely disable the modern REPL (GH-145159) 2026-03-10 14:58:32 +01:00
_strptime.py GH-70647: Remove support for %d (and deprecate for %e) without year in strptime() (GH-144570) 2026-04-14 17:15:27 -07:00
_threading_local.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
_weakrefset.py
abc.py
annotationlib.py gh-148680: Replace internal names with type_reprs of objects in string representations of ForwardRef (#148682) 2026-04-23 06:22:20 -07:00
antigravity.py
argparse.py [3.15] gh-149614 - Restore deepcopiability of argparse.ArgumentParser… (#149693) 2026-05-11 18:25:40 +00:00
ast.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
base64.py [3.15] gh-134837: Correct and improve base85 documentation for base64 and binascii modules (GH-145843) (GH-149742) 2026-05-12 20:25:28 +00:00
bdb.py gh-136057: Allow step and next to step over for loops (#136160) 2025-11-16 13:57:07 -08:00
bisect.py
bz2.py gh-132983: Introduce compression package and move _compression module (GH-133018) 2025-04-27 14:41:30 -07:00
calendar.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
cmd.py gh-133363: Fix Cmd completion for lines beginning with ! (#133364) 2025-05-03 22:50:37 -04:00
code.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
codecs.py gh-52876: Implement missing parameter in codecs.StreamReaderWriter functions (#136498) 2025-07-10 17:42:14 +02:00
codeop.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
colorsys.py
compileall.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
configparser.py gh-148370: prevent quadratic behavior in configparser.ParsingError.combine (#148452) 2026-04-14 00:32:54 +02:00
contextlib.py gh-125862: Keep ContextDecorator open across generator/coroutine execution (GH-136212) 2026-04-28 05:26:38 +00:00
contextvars.py
copy.py gh-141510: Fix copy.deepcopy() for recursive frozendict (#145027) 2026-02-21 15:30:40 +00:00
copyreg.py gh-132882: Fix copying of unions with members that do not support __or__ (#132883) 2025-04-24 16:49:09 +00:00
cProfile.py Remove unused imports (#142320) 2025-12-06 11:27:31 +00:00
csv.py gh-137627: Make csv.Sniffer.sniff() delimiter detection 1.6x faster (#137628) 2025-10-23 15:28:29 +03:00
dataclasses.py gh-149321: Fix stdlib imports with lazy imports disabled (#149338) 2026-05-04 19:03:21 +01:00
datetime.py
decimal.py gh-76007: Deprecate __version__ attribute in decimal (#140302) 2025-10-26 12:01:04 +01:00
difflib.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
dis.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
doctest.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
enum.py gh-140806: add docs for enum.bin function (#140807) 2026-01-12 13:34:18 +02:00
filecmp.py
fileinput.py
fnmatch.py gh-133306: Use \z instead of \Z in fnmatch.translate() and glob.translate() (GH-133338) 2025-05-03 17:58:21 +03:00
fractions.py gh-87790: support thousands separators for formatting fractional part of Fraction (#132204) 2025-07-07 11:16:31 +03:00
ftplib.py [3.15] gh-87451: Apply CVE-2021-4189 PASV fix to ftplib.ftpcp() (GH-149648) (#149792) 2026-05-15 10:50:45 +00:00
functools.py [3.15] gh-149083: Convert _initial_missing for pure py reduce to sentinel (GH-149536) (#149592) 2026-05-09 08:27:29 +00:00
genericpath.py gh-74453: Deprecate os.path.commonprefix (#144436) 2026-02-05 22:37:05 +02:00
getopt.py
getpass.py gh-138577: Fix keyboard shortcuts in getpass with echo_char (#141597) 2026-03-30 11:11:13 +02:00
gettext.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
glob.py gh-144835: Added missing explanations for some parameters in glob and iglob. (#144836) 2026-03-02 08:56:28 -03:00
graphlib.py GH-143948: Explain graphlib's cycle-finding code (#143950) 2026-01-20 19:28:48 -06:00
gzip.py [3.15] gh-149945: Fix potential OOM for gzip with large header (GH-149979) (GH-150093) 2026-05-19 20:38:47 +00:00
hashlib.py gh-136565: use SHA-256 for hashlib.__doc__ example instead of MD5 (#138157) 2025-08-26 10:38:53 +00:00
heapq.py Indexing is more straight-forward (and faster) than unpacking (gh-145154) 2026-02-23 12:31:35 -06:00
hmac.py gh-142451: correctly copy HMAC attributes in HMAC.copy() (#142510) 2025-12-14 09:45:36 +01:00
imaplib.py gh-142307: deprecate legacy support for altering IMAP4.file (#142335) 2026-05-06 17:41:26 +03:00
inspect.py [3.15] gh-149083: use sentinel to fix _functools.reduce() signature (GH-149591) (#149653) 2026-05-10 23:32:35 +00:00
io.py gh-132952: Speed up startup by importing _io instead of io (#132957) 2025-04-28 08:38:56 -07:00
ipaddress.py gh-141497: Make ipaddress.IP{v4,v6}Network.hosts() always returning an iterator (GH-141547) 2025-11-17 19:29:06 +02:00
keyword.py gh-142349: Implement PEP 810 - Explicit lazy imports (#142351) 2026-02-12 00:15:33 +00:00
linecache.py gh-122255: Synchronize warnings in C and Python implementations of the warnings module (GH-122824) 2025-11-14 16:49:28 +02:00
locale.py gh-123853: Update locale.windows_locale (GH-123901) 2026-04-20 11:47:37 +03:00
lzma.py gh-132983: Introduce compression package and move _compression module (GH-133018) 2025-04-27 14:41:30 -07:00
mailbox.py bpo-32234: Allow mailbox instances as context managers (GH-4770) 2026-02-16 14:14:26 +01:00
mimetypes.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
modulefinder.py gh-84530: fix namespace package support in modulefinder (#29196) 2025-12-09 15:50:50 +00:00
netrc.py gh-139633: Run netrc file permission check only once per parse (GH-139634) 2026-03-30 22:05:18 +03:00
ntpath.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
nturl2path.py
numbers.py gh-122450: Expand documentation for `Rational and Fraction` (#136800) 2025-08-04 02:15:59 +00:00
opcode.py gh-148871: extend and improve LOAD_COMMON_CONSTANT (GH-148971) 2026-05-02 19:59:51 +01:00
operator.py
optparse.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
os.py [3.15] gh-86533: Restore os.makedirs() ability to apply *mode* recursively (GH-150011) (#150036) 2026-05-18 22:10:01 -07:00
pdb.py gh-148615: Handle -- separator in pdb argument parsing (#148624) 2026-05-05 21:22:58 -07:00
pickle.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pickletools.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pkgutil.py gh-148641: Implement PEP 829 - startup configuration files (#149109) 2026-05-03 17:17:29 +00:00
platform.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
plistlib.py gh-141510: Support frozendict in plistlib (#145590) 2026-03-31 15:45:23 +03:00
poplib.py gh-143923: Reject control characters in POP3 commands 2026-01-20 20:46:32 +00:00
posixpath.py gh-74453: Deprecate os.path.commonprefix (#144436) 2026-02-05 22:37:05 +02:00
pprint.py gh-149189: Modern defaults for pprint (#149190) 2026-05-05 15:04:05 +03:00
profile.py GH-65961: Stop setting __cached__ on modules (GH-142165) 2025-12-11 11:44:46 -08:00
pstats.py gh-140137: Handle empty collections in profiling.sampling (#140154) 2025-10-15 14:59:12 +01:00
pty.py
py_compile.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
pyclbr.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
pydoc.py [3.15] gh-142349: Add help("lazy") support (GH-149886) (#149889) 2026-05-15 16:57:59 +00:00
queue.py Fix Queue.shutdown docs for condition to unblock a join (gh-137088) 2025-07-25 07:56:28 -06:00
quopri.py
random.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
reprlib.py gh-135487: fix reprlib.Repr.repr_int when given very large integers (#135506) 2025-06-24 11:09:46 +00:00
rlcompleter.py [3.15] gh-112821: Fix rlcompleter failures on objects with descriptors (GH-149577) (#149656) 2026-05-11 12:07:50 -04:00
runpy.py gh-149117: Set ImportError.name on errors from runpy.run_module/run_path (gh-149159) 2026-05-02 12:27:23 +10:00
sched.py
secrets.py
selectors.py
shelve.py Drop three unused imports (#141875) 2025-11-23 16:33:05 +00:00
shlex.py gh-138804: Check type in shlex.quote (GH-138809) 2025-09-12 14:26:21 -04:00
shutil.py gh-146581: Fix vulnerability in shutil.unpack_archive() for ZIP files on Windows (GH-146591) 2026-04-27 21:43:15 +03:00
signal.py
site.py [3.15] gh-149819: fix .pth and .start file processing in subprocess when inheriting PYTHONPATH (GH-150177) (#150202) 2026-05-21 15:31:41 -07:00
smtplib.py gh-70039: smtplib: store the server name in ._host in .connect() (#115259) 2026-04-08 17:46:25 -04:00
socket.py gh-148599: Update WSA socket error codes (#148033) 2026-05-06 19:52:23 +02:00
socketserver.py gh-76007: Deprecate __version__ attribute (#138675) 2025-09-29 12:03:23 +03:00
ssl.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
stat.py gh-144050: Fix stat.filemode pure Python file type detection (GH-144059) 2026-01-20 14:05:42 +02:00
statistics.py statistics: Fix geometric_mean() error message for negative inputs (#149246) 2026-05-01 22:54:24 -05:00
stringprep.py
struct.py
subprocess.py gh-47798: Refactor the POSIX subprocess.Popen._communicate selector loop into helpers (GH-149032) 2026-04-27 00:40:20 +00:00
symtable.py gh-141510: Use frozendict in the stdlib (#144909) 2026-03-06 10:25:09 +01:00
tabnanny.py gh-76007: Deprecate __version__ attribute (#138675) 2025-09-29 12:03:23 +03:00
tarfile.py [3.15] gh-107398: Fix tarfile stream mode exception when process the file with the gzip extra field (GH-126304) (GH-150199) 2026-05-21 20:02:10 +00:00
tempfile.py gh-66305: Fix a hang on Windows in the tempfile module (GH-144672) 2026-02-24 13:05:06 +02:00
textwrap.py gh-139065: Fix trailing space before long word in textwrap (GH-139070) 2025-10-10 16:29:18 +03:00
this.py
threading.py gh-124397: Add free-threading support for iterators. (gh-148894) 2026-05-01 16:31:00 -05:00
timeit.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
token.py gh-131507: Add support for syntax highlighting in PyREPL (GH-133247) 2025-05-02 20:22:31 +02:00
tokenize.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
trace.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
traceback.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
tracemalloc.py
tty.py
turtle.py Fix pyflakes warnings: variable is assigned to but never used (#142294) 2025-12-08 14:00:31 +01:00
types.py gh-142349: Implement PEP 810 - Explicit lazy imports (#142351) 2026-02-12 00:15:33 +00:00
typing.py [3.15] gh-149995: Update typing.py docstrings and documentation (GH-149996) (#150215) 2026-05-22 06:41:43 +00:00
uuid.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
warnings.py gh-128384: Use a context variable for warnings.catch_warnings (gh-130010) 2025-04-09 16:18:54 -07:00
wave.py gh-117716: Fix wave RIFF padding for data chunks (GH-145237) 2026-04-15 14:21:43 +02:00
weakref.py gh-124748: Fix handling kwargs in WeakKeyDictionary.update() (#124783) 2026-02-18 13:17:08 +00:00
webbrowser.py gh-137586: Replace 'osascript' with 'open' on macOS in webbrowser (#146439) 2026-05-06 16:56:17 +03:00
zipapp.py gh-142389: Add backticks to stdlib argparse help to display in colour (#149384) 2026-05-04 22:23:18 +00:00
zipimport.py gh-135801: Add the module parameter to compile() etc (GH-139652) 2025-11-13 13:21:32 +02:00