Skip to content

Conversation

@youknowone
Copy link
Member

@youknowone youknowone commented Jan 24, 2026

also tracking untracked files considered in #6775
cc @terryluan12

$ python scripts/update_lib todo
- [x] [no deps] types (38 dependents)
  - [ ] test_types (10 TODO)
- [x] [no deps] stat (14 dependents)
  - [ ] test_stat
- [x] [no deps] operator (13 dependents)
  - [ ] test_operator (3 TODO)
- [ ] [no deps] codecs (8 dependents)
  - [ ] test_codecs (98 TODO)
- [ ] [no deps] ast (6 dependents)
  - [ ] test_ast (104 TODO)
- [x] [no deps] string (5 dependents)
  - [ ] test_string
- [ ] [no deps] hashlib (2 dependents)
  - [ ] test_hashlib (10 TODO)
- [ ] [no deps] hmac (2 dependents)
  - [ ] test_hmac (18 TODO)
- [ ] [no deps] timeit
  - [ ] test_timeit
- [ ] [no deps] zipimport
  - [ ] test_zipimport (2 TODO)
- [ ] [0/3 deps] os (72 dependents)
  - [ ] test_os (18 TODO)
- [ ] [0/4 deps] collections (31 dependents)
  - [x] test_collections (3 TODO)
- [x] [0/1 deps] warnings (22 dependents)
  - [ ] test_warnings (40 TODO)
- [ ] [0/1 deps] enum (16 dependents)
  - [ ] test_enum (15 TODO)
- [x] [0/1 deps] abc (13 dependents)
  - [ ] test_abc (1 TODO)
- [ ] [0/2 deps] weakref (13 dependents)
  - [ ] test_weakref (28 TODO)
- [ ] [0/1 deps] datetime (12 dependents)
  - [ ] test_datetime
- [x] [0/1 deps] base64 (8 dependents)
  - [ ] test_base64
- [ ] [0/1 deps] textwrap (6 dependents)
  - [ ] test_textwrap
- [ ] [0/2 deps] codeop (3 dependents)
  - [ ] test_codeop (5 TODO)
- [ ] [0/2 deps] html (2 dependents)
  - [x] test_html
- [ ] [0/3 deps] decimal (2 dependents)
  - [ ] test_decimal (2 TODO)
- [ ] [0/4 deps] fractions (1 dependents)
  - [ ] test_fractions (1 TODO)
- [ ] [0/1 deps] opcode (1 dependents)
- [ ] [0/1 deps] nturl2path
  - [ ] test_nturl2path
- [x] [0/4 deps] rlcompleter
  - [ ] test_rlcompleter (1 TODO)
- [x] [1/3 deps] re (41 dependents)
  - [ ] test_re (19 TODO)
- [x] [1/5 deps] functools (32 dependents)
  - [ ] test_functools (11 TODO)
- [x] [1/2 deps] threading (17 dependents)
  - [ ] test_threading (20 TODO)
- [ ] [1/3 deps] copy (9 dependents)
  - [ ] test_copy
- [ ] [1/3 deps] posixpath (6 dependents)
  - [x] test_posixpath (4 TODO)
- [ ] [1/4 deps] random (6 dependents)
  - [ ] test_random
- [x] [1/1 deps] signal (5 dependents)
  - [ ] test_signal (3 TODO)
- [x] [1/6 deps] typing (5 dependents)
  - [ ] test_typing (21 TODO)
- [ ] [1/4 deps] queue (4 dependents)
  - [ ] test_queue
- [ ] [1/4 deps] json (4 dependents)
  - [ ] test_json (18 TODO)
- [ ] [1/2 deps] gettext (3 dependents)
  - [ ] test_gettext (7 TODO)
- [ ] [1/1 deps] shlex (3 dependents)
  - [ ] test_shlex (4 TODO)
- [ ] [1/8 deps] dataclasses (3 dependents)
  - [ ] test_dataclasses (10 TODO)
- [ ] [1/3 deps] difflib (2 dependents)
  - [ ] test_difflib
- [x] [1/2 deps] genericpath (2 dependents)
  - [ ] test_genericpath (1 TODO)
- [ ] [1/3 deps] locale (2 dependents)
  - [ ] test_locale
- [ ] [1/2 deps] ntpath (1 dependents)
  - [ ] test_ntpath
- [x] [1/1 deps] pyclbr (1 dependents)
  - [ ] test_pyclbr (3 TODO)
- [ ] [1/1 deps] profile (1 dependents)
  - [ ] test_profile
- [ ] [1/3 deps] site (1 dependents)
  - [ ] test_site (5 TODO)
- [ ] [1/6 deps] tomllib
  - [ ] test_tomllib
- [ ] [1/2 deps] csv
  - [ ] test_csv (27 TODO)
- [x] [1/2 deps] fileinput
  - [ ] test_fileinput (1 TODO)
- [ ] [1/1 deps] ftplib
  - [x] test_ftplib (4 TODO)
- [ ] [1/1 deps] optparse
  - [ ] test_optparse
- [ ] [1/2 deps] poplib
  - [ ] test_poplib
- [ ] [1/2 deps] pty
  - [ ] test_pty (4 TODO)
- [ ] [1/2 deps] wave
  - [ ] test_wave
- [ ] [1/1 deps] curses
  - [ ] test_curses
- [ ] [2/5 deps] io (48 dependents)
  - [ ] test_io (60 TODO)
- [x] [2/6 deps] contextlib (19 dependents)
  - [ ] test_contextlib (5 TODO)
- [ ] [2/7 deps] pickle (8 dependents)
  - [ ] test_pickle (26 TODO)
- [ ] [2/4 deps] fnmatch (7 dependents)
  - [ ] test_fnmatch
- [ ] [2/4 deps] sysconfig (6 dependents)
  - [ ] test_sysconfig (8 TODO)
- [x] [2/4 deps] annotationlib (3 dependents)
  - [ ] test_annotationlib
- [ ] [2/2 deps] code (3 dependents)
  - [ ] test_code (11 TODO)
- [ ] [2/4 deps] platform (3 dependents)
  - [ ] test_platform
- [ ] [2/3 deps] pprint (2 dependents)
  - [ ] test_pprint
- [ ] [2/7 deps] glob (2 dependents)
  - [ ] test_glob
- [x] [2/2 deps] runpy (2 dependents)
  - [ ] test_runpy (3 TODO)
- [ ] [2/2 deps] tabnanny (1 dependents)
  - [ ] test_tabnanny (6 TODO)
- [ ] [2/6 deps] encodings (1 dependents)
- [ ] [2/2 deps] getopt
  - [ ] test_getopt
- [ ] [2/3 deps] getpass
  - [ ] test_getpass
- [ ] [2/2 deps] imaplib
  - [ ] test_imaplib
- [ ] [2/2 deps] symtable
  - [ ] test_symtable (17 TODO)
- [ ] [2/2 deps] uuid
  - [ ] test_uuid
- [ ] [2/2 deps] cProfile
- [ ] [2/4 deps] tracemalloc
  - [ ] test_tracemalloc
- [ ] [2/6 deps] wsgiref
  - [ ] test_wsgiref (1 TODO)
- [ ] [3/3 deps] socket (13 dependents)
  - [ ] test_socket (12 TODO)
- [ ] [3/4 deps] shutil (9 dependents)
  - [ ] test_shutil
- [ ] [3/8 deps] subprocess (7 dependents)
  - [ ] test_subprocess (10 TODO)
- [ ] [3/6 deps] tokenize (7 dependents)
  - [ ] test_tokenize (2 TODO)
- [ ] [3/4 deps] dis (4 dependents)
  - [ ] test_dis (53 TODO)
- [x] [3/5 deps] socketserver (4 dependents)
  - [ ] test_socketserver (1 TODO)
- [ ] [3/6 deps] bdb (2 dependents)
  - [ ] test_bdb (33 TODO)
- [ ] [3/4 deps] pkgutil (2 dependents)
  - [ ] test_pkgutil (1 TODO)
- [ ] [3/6 deps] configparser (1 dependents)
  - [ ] test_configparser (1 TODO)
- [ ] [3/3 deps] py_compile (1 dependents)
  - [ ] test_py_compile (2 TODO)
- [x] [3/4 deps] sqlite3 (1 dependents)
  - [ ] test_sqlite3 (82 TODO)
- [ ] [3/5 deps] pickletools
  - [ ] test_pickletools (8 TODO)
- [ ] [3/6 deps] compileall
  - [ ] test_compileall (3 TODO)
- [ ] [3/5 deps] pstats
  - [ ] test_pstats
- [ ] [3/3 deps] modulefinder
  - [ ] test_modulefinder
- [ ] [4/9 deps] traceback (12 dependents)
  - [ ] test_traceback (71 TODO)
- [ ] [4/6 deps] tkinter (3 dependents)
  - [ ] test_tkinter
- [ ] [4/5 deps] webbrowser (2 dependents)
  - [ ] test_webbrowser
- [ ] [4/8 deps] ctypes (1 dependents)
  - [ ] test_ctypes (14 TODO)
- [ ] [4/6 deps] zipapp
  - [ ] test_zipapp
- [ ] [4/6 deps] ssl
  - [ ] test_ssl (21 TODO)
- [ ] [4/8 deps] statistics
  - [ ] test_statistics (1 TODO)
- [ ] [4/7 deps] tarfile
  - [ ] test_tarfile (4 TODO)
- [x] [4/7 deps] dbm
  - [ ] test_dbm
- [ ] [5/8 deps] tempfile (7 dependents)
  - [ ] test_tempfile (1 TODO)
- [ ] [5/10 deps] pathlib (7 dependents)
  - [ ] test_pathlib (2 TODO)
- [ ] [5/10 deps] zipfile (2 dependents)
  - [ ] test_zipfile (16 TODO)
- [x] [5/7 deps] plistlib (1 dependents)
  - [ ] test_plistlib (7 TODO)
- [ ] [5/5 deps] turtledemo (1 dependents)
- [ ] [5/10 deps] zoneinfo
  - [ ] test_zoneinfo (4 TODO)
- [x] [5/9 deps] mailbox
  - [ ] test_mailbox
- [ ] [5/7 deps] smtplib
  - [x] test_smtplib (2 TODO)
- [ ] [6/7 deps] venv
  - [ ] test_venv (4 TODO)
- [ ] [6/10 deps] trace
  - [ ] test_trace (20 TODO)
- [ ] [6/9 deps] xml
- [x] [7/16 deps] inspect (13 dependents)
  - [ ] test_inspect (56 TODO)
- [ ] [7/14 deps] logging (4 dependents)
  - [ ] test_logging (9 TODO)
- [ ] [7/15 deps] email (3 dependents)
  - [ ] test_email (12 TODO)
- [ ] [7/10 deps] turtle (1 dependents)
  - [ ] test_turtle
- [ ] [7/16 deps] urllib (1 dependents)
  - [ ] test_urllib
- [ ] [7/13 deps] doctest
  - [ ] test_doctest (13 TODO)
- [ ] [7/12 deps] xmlrpc
  - [ ] test_xmlrpc (5 TODO)
- [ ] [8/11 deps] concurrent
- [ ] [9/16 deps] http
- [ ] [10/20 deps] importlib (3 dependents)
  - [ ] test_importlib (29 TODO)
- [ ] [10/16 deps] pydoc (1 dependents)
  - [ ] test_pydoc
- [ ] [12/23 deps] unittest (2 dependents)
  - [ ] test_unittest (15 TODO)
- [ ] [12/26 deps] multiprocessing (1 dependents)
- [ ] [13/29 deps] asyncio (2 dependents)
  - [ ] test_asyncio
- [ ] [16/30 deps] pdb (1 dependents)
  - [ ] test_pdb
- [ ] [22/39 deps] idlelib

## Standalone Tests
- [ ] test___all__ (1 TODO)
- [ ] test__interpchannels
- [ ] test__interpreters
- [ ] test__locale
- [ ] test__osx_support
- [ ] test_abstract_numbers
- [ ] test_android
- [ ] test_apple
- [ ] test_array (5 TODO)
- [ ] test_asdl_parser
- [ ] test_asyncgen (1 TODO)
- [ ] test_atexit
- [ ] test_audit
- [ ] test_baseexception
- [ ] test_bigmem (5 TODO)
- [ ] test_binascii (1 TODO)
- [ ] test_binop
- [ ] test_bool
- [ ] test_buffer
- [ ] test_bufio (2 TODO)
- [ ] test_build_details
- [ ] test_builtin (18 TODO)
- [ ] test_bytes (17 TODO)
- [ ] test_c_locale_coercion (1 TODO)
- [ ] test_call (1 TODO)
- [ ] test_capi
- [ ] test_cext
- [ ] test_charmapcodec
- [ ] test_class (14 TODO)
- [ ] test_clinic
- [ ] test_cmd_line (24 TODO)
- [ ] test_cmd_line_script (17 TODO)
- [ ] test_code_module (6 TODO)
- [ ] test_codeccallbacks (11 TODO)
- [ ] test_codecencodings_cn
- [ ] test_codecencodings_hk
- [ ] test_codecencodings_iso2022
- [ ] test_codecencodings_jp
- [ ] test_codecencodings_kr
- [ ] test_codecencodings_tw
- [ ] test_codecmaps_cn
- [ ] test_codecmaps_hk
- [ ] test_codecmaps_jp
- [ ] test_codecmaps_kr
- [ ] test_codecmaps_tw
- [ ] test_compile (26 TODO)
- [ ] test_compiler_assemble
- [ ] test_compiler_codegen
- [ ] test_complex (2 TODO)
- [ ] test_concurrent_futures (18 TODO)
- [ ] test_contains
- [ ] test_context (6 TODO)
- [ ] test_contextlib_async (5 TODO)
- [ ] test_coroutines
- [ ] test_cppext
- [ ] test_cprofile
- [ ] test_crossinterp
- [ ] test_dbm_gnu
- [ ] test_dbm_ndbm
- [ ] test_decorators (1 TODO)
- [ ] test_deque (3 TODO)
- [ ] test_descr (44 TODO)
- [ ] test_descrtut (1 TODO)
- [ ] test_dict (4 TODO)
- [ ] test_dictcomps (1 TODO)
- [ ] test_dictviews (2 TODO)
- [ ] test_docxmlrpc (7 TODO)
- [ ] test_dtrace (8 TODO)
- [ ] test_dynamic (1 TODO)
- [ ] test_dynamicclassattribute
- [ ] test_embed
- [ ] test_errno
- [ ] test_except_star (1 TODO)
- [ ] test_exception_group (2 TODO)
- [ ] test_exception_hierarchy (2 TODO)
- [ ] test_exception_variations (1 TODO)
- [ ] test_exceptions (29 TODO)
- [ ] test_extcall
- [ ] test_external_inspection
- [ ] test_faulthandler (30 TODO)
- [ ] test_fcntl
- [ ] test_file
- [ ] test_file_eintr (1 TODO)
- [ ] test_fileio
- [ ] test_fileutils
- [ ] test_finalization
- [ ] test_float (5 TODO)
- [ ] test_flufl
- [ ] test_fork1
- [ ] test_format (5 TODO)
- [ ] test_frame
- [ ] test_free_threading
- [ ] test_frozen
- [ ] test_fstring (29 TODO)
- [ ] test_funcattrs (6 TODO)
- [ ] test_future_stmt (6 TODO)
- [ ] test_gc
- [ ] test_gdb
- [ ] test_generated_cases
- [ ] test_generator_stop
- [ ] test_generators (6 TODO)
- [ ] test_genericalias (5 TODO)
- [ ] test_genericclass (1 TODO)
- [ ] test_genexps
- [ ] test_getpath
- [ ] test_global (3 TODO)
- [ ] test_grammar (19 TODO)
- [ ] test_hash (4 TODO)
- [ ] test_htmlparser
- [ ] test_http_cookiejar
- [ ] test_http_cookies
- [ ] test_httplib
- [ ] test_httpservers (13 TODO)
- [ ] test_idle
- [ ] test_import (22 TODO)
- [ ] test_int (6 TODO)
- [ ] test_interpreters
- [ ] test_ioctl
- [ ] test_isinstance
- [ ] test_iter (1 TODO)
- [ ] test_itertools (27 TODO)
- [ ] test_largefile
- [ ] test_launcher
- [ ] test_list (5 TODO)
- [ ] test_listcomps (2 TODO)
- [ ] test_lltrace
- [ ] test_long (4 TODO)
- [ ] test_marshal (21 TODO)
- [ ] test_memoryio (26 TODO)
- [ ] test_memoryview (6 TODO)
- [ ] test_metaclass
- [ ] test_minidom
- [ ] test_mmap (3 TODO)
- [ ] test_module (4 TODO)
- [ ] test_monitoring
- [ ] test_msvcrt
- [ ] test_multibytecodec
- [ ] test_multiprocessing_fork (79 TODO)
- [ ] test_multiprocessing_forkserver (38 TODO)
- [ ] test_multiprocessing_spawn (34 TODO)
- [ ] test_named_expressions (18 TODO)
- [ ] test_opcache
- [ ] test_opcodes
- [ ] test_optimizer
- [ ] test_ordered_dict (4 TODO)
- [ ] test_osx_env
- [ ] test_patma (20 TODO)
- [ ] test_peepholer (33 TODO)
- [ ] test_peg_generator
- [ ] test_pep646_syntax
- [ ] test_perf_profiler
- [ ] test_perfmaps
- [ ] test_picklebuffer (12 TODO)
- [ ] test_pkg
- [ ] test_poll (1 TODO)
- [ ] test_popen
- [ ] test_positional_only_arg (6 TODO)
- [ ] test_posix (8 TODO)
- [ ] test_print (7 TODO)
- [ ] test_property
- [ ] test_pulldom (4 TODO)
- [ ] test_pyexpat (28 TODO)
- [ ] test_pyrepl
- [ ] test_raise (1 TODO)
- [ ] test_range (1 TODO)
- [ ] test_readline
- [ ] test_remote_pdb
- [ ] test_repl
- [ ] test_resource (2 TODO)
- [ ] test_richcmp
- [ ] test_robotparser (1 TODO)
- [ ] test_sax
- [ ] test_scope (1 TODO)
- [ ] test_script_helper (4 TODO)
- [ ] test_select
- [ ] test_set (5 TODO)
- [ ] test_sort (2 TODO)
- [ ] test_source_encoding
- [ ] test_stable_abi_ctypes
- [ ] test_startfile
- [ ] test_str (18 TODO)
- [ ] test_strftime
- [ ] test_string_literals (5 TODO)
- [ ] test_strptime
- [ ] test_strtod (6 TODO)
- [ ] test_structseq
- [ ] test_subclassinit
- [ ] test_sundry
- [ ] test_super (4 TODO)
- [ ] test_support (4 TODO)
- [ ] test_syntax (27 TODO)
- [ ] test_sys (17 TODO)
- [ ] test_sys_setprofile (22 TODO)
- [ ] test_sys_settrace (85 TODO)
- [ ] test_syslog (2 TODO)
- [ ] test_tcl
- [ ] test_termios
- [ ] test_thread
- [ ] test_thread_local_bytecode
- [ ] test_threadedtempfile
- [ ] test_threading_local (3 TODO)
- [ ] test_threadsignals
- [ ] test_time (18 TODO)
- [ ] test_timeout
- [ ] test_tools
- [ ] test_tstring
- [ ] test_ttk
- [ ] test_ttk_textonly
- [ ] test_tuple (1 TODO)
- [ ] test_type_aliases
- [ ] test_type_annotations
- [ ] test_type_cache
- [ ] test_type_comments (16 TODO)
- [ ] test_type_params
- [ ] test_unicode_file_functions
- [ ] test_unicode_identifiers (1 TODO)
- [ ] test_unicodedata (18 TODO)
- [ ] test_unpack
- [ ] test_unpack_ex
- [ ] test_unparse
- [ ] test_urllib2
- [ ] test_urllib2_localnet (19 TODO)
- [ ] test_urllib2net
- [ ] test_urllibnet
- [ ] test_urlparse (1 TODO)
- [ ] test_userdict
- [ ] test_userlist
- [ ] test_utf8_mode (6 TODO)
- [ ] test_utf8source (2 TODO)
- [ ] test_weakset (2 TODO)
- [ ] test_winapi
- [ ] test_winconsoleio
- [ ] test_winsound
- [ ] test_with (1 TODO)
- [ ] test_wmi
- [ ] test_xml_etree (126 TODO)
- [ ] test_xml_etree_c
- [ ] test_xxlimited
- [ ] test_xxtestfuzz
- [ ] test_yield_from (10 TODO)
- [ ] test_zipimport_support

## Untracked Files
- _ast_unparse.py
- _pyrepl/_module_completer.py
- _pyrepl/base_eventqueue.py
- _pyrepl/terminfo.py
- _pyrepl/windows_eventqueue.py
- site-packages/README.txt

$ python scripts/update_lib todo --verbose --done
- [x] [no deps] types (38 dependents)
  - [ ] test_types (10 TODO)
  dependents: annotationlib, asyncio, concurrent, contextlib, copy, csv, ctypes, dataclasses, difflib, dis, email, enum, filecmp, fileinput, functools, graphlib, http, idlelib, importlib, inspect, logging, mailbox, multiprocessing, pdb, pickle, pprint, queue, subprocess, sysconfig, tempfile, tkinter, tomllib, turtle, typing, unittest, urllib, venv, wsgiref
- [x] [no deps] struct (16 dependents)
  - [x] test_struct (4 TODO)
  dependents: asyncio, base64, compileall, ctypes, dbm, gzip, idlelib, logging, multiprocessing, pickle, pickletools, plistlib, tarfile, wave, zipfile, zoneinfo
  native: _struct
- [x] [no deps] stat (14 dependents)
  - [ ] test_stat
  dependents: asyncio, filecmp, genericpath, glob, io, os, pathlib, pdb, posixpath, shutil, site, tarfile, zipapp, zipfile
- [x] [no deps] operator (13 dependents)
  - [ ] test_operator (3 TODO)
  dependents: collections, datetime, email, fractions, functools, gettext, glob, importlib, inspect, pathlib, random, statistics, typing
  native: builtins
- [x] [no deps] linecache (8 dependents)
  - [x] test_linecache
  dependents: asyncio, doctest, idlelib, inspect, pdb, trace, traceback, tracemalloc
- [ ] [no deps] codecs (8 dependents)
  - [ ] test_codecs (98 TODO)
  dependents: encodings, io, json, pickle, pickletools, plistlib, tokenize, xml
  native: builtins, sys
- [x] [no deps] keyword (7 dependents)
  - [x] test_keyword
  dependents: annotationlib, collections, dataclasses, idlelib, inspect, rlcompleter, traceback
- [x] [no deps] copyreg (6 dependents)
  - [x] test_copyreg
  dependents: copy, idlelib, multiprocessing, pickle, re, typing
- [ ] [no deps] ast (6 dependents)
  - [ ] test_ast (104 TODO)
  dependents: annotationlib, asyncio, dbm, inspect, pyclbr, pydoc
  native: _ast
- [x] [no deps] reprlib (6 dependents)
  - [x] test_reprlib (4 TODO)
  dependents: asyncio, collections, dataclasses, functools, idlelib, pydoc
  native: _thread, builtins, itertools
- [x] [no deps] bisect (5 dependents)
  - [x] test_bisect
  dependents: multiprocessing, random, statistics, urllib, zoneinfo
- [x] [no deps] string (5 dependents)
  - [ ] test_string
  dependents: email, http, idlelib, logging, urllib
  native: _string
- [x] [no deps] heapq (4 dependents)
  - [x] test_heapq
  dependents: asyncio, difflib, queue, sched
- [x] [no deps] token (4 dependents)
  dependents: inspect, pdb, tokenize, trace
- [ ] [no deps] hashlib (2 dependents)
  - [ ] test_hashlib (10 TODO)
  dependents: antigravity, urllib
- [ ] [no deps] hmac (2 dependents)
  - [ ] test_hmac (18 TODO)
  dependents: secrets, smtplib
- [x] [no deps] quopri (2 dependents)
  - [x] test_quopri
  dependents: email, encodings
- [x] [no deps] mimetypes (1 dependents)
  - [x] test_mimetypes
  dependents: http
- [x] [no deps] cmd (1 dependents)
  - [x] test_cmd
  dependents: pdb
  native: sys
- [x] [no deps] stringprep (1 dependents)
  - [x] test_stringprep
  dependents: encodings
  native: unicodedata
- [x] [no deps] tty (1 dependents)
  - [x] test_tty (2 TODO)
  dependents: pty
  native: termios
- [x] [no deps] colorsys
  - [x] test_colorsys
- [x] [no deps] this
- [x] [no deps] pydoc_data
  native: system.
- [ ] [no deps] timeit
  - [ ] test_timeit
  native: gc, itertools, sys, time
- [ ] [no deps] zipimport
  - [ ] test_zipimport (2 TODO)
  native: _frozen_importlib, _frozen_importlib_external, _imp, _io, marshal, sys, time
- [ ] [0/3 deps] os (72 dependents)
  - [ ] test_os (18 TODO)
  dependents: argparse, asyncio, bdb, bz2, compileall, compression, concurrent, configparser, contextlib, ctypes, curses, dbm, doctest, email, ensurepip, filecmp, fnmatch, genericpath, getopt, getpass, gettext, glob, gzip, http, idlelib, importlib, inspect, io, logging, lzma, mailbox, modulefinder, multiprocessing, netrc, ntpath, pathlib, pdb, pkgutil, platform, plistlib, posixpath, pstats, pty, py_compile, pydoc, random, runpy, shutil, site, socket, socketserver, ssl, subprocess, sysconfig, tabnanny, tarfile, tempfile, threading, tkinter, trace, turtle, turtledemo, unittest, urllib, uuid, venv, webbrowser, xml, xmlrpc, zipapp, zipfile, zoneinfo
  python: _collections_abc, abc, stat
  native: os.path, sys
- [ ] [0/4 deps] collections (31 dependents)
  - [x] test_collections (3 TODO)
  dependents: asyncio, concurrent, configparser, contextlib, difflib, dis, doctest, email, functools, idlelib, importlib, inspect, multiprocessing, pkgutil, platform, pprint, pydoc, queue, sched, selectors, shutil, ssl, statistics, tkinter, tokenize, typing, unittest, urllib, wave, xml, zoneinfo
  python: _collections_abc, keyword, operator, reprlib
  native: _weakref, itertools, sys
- [x] [0/1 deps] warnings (22 dependents)
  - [ ] test_warnings (40 TODO)
  dependents: asyncio, codeop, ctypes, idlelib, importlib, mailbox, multiprocessing, nturl2path, pdb, pydoc, rlcompleter, sre_compile, sre_constants, sre_parse, ssl, subprocess, tempfile, traceback, unittest, urllib, wsgiref, xml
  python: _py_warnings
  native: _contextvars, _thread, sys
- [ ] [0/1 deps] enum (16 dependents)
  - [ ] test_enum (15 TODO)
  dependents: annotationlib, asyncio, calendar, compression, http, inspect, plistlib, pstats, py_compile, re, signal, socket, ssl, symtable, tkinter, uuid
  python: types
  native: builtins, sys
- [x] [0/1 deps] abc (13 dependents)
  - [ ] test_abc (1 TODO)
  dependents: contextlib, dataclasses, email, functools, importlib, inspect, io, multiprocessing, numbers, os, pathlib, selectors, typing
  python: _weakrefset
- [ ] [0/2 deps] weakref (13 dependents)
  - [ ] test_weakref (28 TODO)
  dependents: asyncio, bdb, concurrent, copy, gzip, inspect, multiprocessing, pdb, symtable, tempfile, unittest, xml, zoneinfo
  python: _collections_abc, _weakrefset
  native: _weakref, itertools, sys
- [ ] [0/1 deps] datetime (12 dependents)
  - [ ] test_datetime
  dependents: calendar, email, http, imaplib, plistlib, smtplib, sqlite3, tomllib, turtle, turtledemo, xmlrpc, zoneinfo
  python: operator
  native: math, sys, time
- [x] [0/1 deps] base64 (8 dependents)
  - [ ] test_base64
  dependents: email, encodings, multiprocessing, secrets, smtplib, ssl, urllib, xmlrpc
  python: struct
  native: binascii
- [ ] [0/1 deps] textwrap (6 dependents)
  - [ ] test_textwrap
  dependents: idlelib, importlib, pdb, pydoc, sqlite3, traceback
  python: re
- [ ] [0/2 deps] codeop (3 dependents)
  - [ ] test_codeop (5 TODO)
  dependents: code, pdb, traceback
  python: __future__, warnings
- [x] [0/1 deps] numbers (3 dependents)
  dependents: decimal, fractions, statistics
  python: abc
- [x] [0/1 deps] contextvars (3 dependents)
  dependents: asyncio, decimal, unittest
  python: _collections_abc
  native: _contextvars
- [ ] [0/2 deps] html (2 dependents)
  - [x] test_html
  dependents: http, xmlrpc
  python: _markupbase, re
  native: html.entities
- [ ] [0/3 deps] decimal (2 dependents)
  - [ ] test_decimal (2 TODO)
  dependents: statistics, xmlrpc
  python: contextvars, numbers, re
  native: math, sys
- [x] [0/1 deps] ipaddress (1 dependents)
  - [x] test_ipaddress
  dependents: urllib
  python: functools
- [ ] [0/4 deps] fractions (1 dependents)
  - [ ] test_fractions (1 TODO)
  dependents: statistics
  python: functools, numbers, operator, re
  native: math, sys
- [ ] [0/1 deps] opcode (1 dependents)
  dependents: dis
  python: _opcode_metadata
  native: _opcode, builtins
- [x] [0/1 deps] graphlib
  - [x] test_graphlib
  python: types
- [ ] [0/1 deps] nturl2path
  - [ ] test_nturl2path
  python: warnings
- [x] [0/2 deps] sre_compile
  python: re, warnings
- [x] [0/2 deps] sre_constants
  python: re, warnings
- [x] [0/2 deps] sre_parse
  python: re, warnings
- [x] [0/4 deps] rlcompleter
  - [ ] test_rlcompleter (1 TODO)
  python: inspect, keyword, re, warnings
  native: __main__, atexit, builtins
- [x] [1/3 deps] re (41 dependents)
  - [ ] test_re (19 TODO)
  dependents: argparse, configparser, ctypes, dataclasses, decimal, doctest, email, fnmatch, fractions, glob, html, http, idlelib, importlib, inspect, json, logging, pdb, pickletools, platform, plistlib, poplib, pstats, pydoc, rlcompleter, smtplib, sre_compile, sre_constants, sre_parse, tarfile, textwrap, tkinter, tokenize, tomllib, unittest, urllib, wsgiref, xml, xmlrpc, zipfile, zoneinfo
  python: copyreg, enum, functools
  native: _sre
- [x] [1/5 deps] functools (32 dependents)
  - [ ] test_functools (11 TODO)
  dependents: asyncio, compileall, concurrent, configparser, contextlib, doctest, email, fnmatch, fractions, glob, idlelib, importlib, inspect, ipaddress, locale, logging, multiprocessing, pickle, pkgutil, platform, pstats, re, statistics, tempfile, tokenize, tomllib, tracemalloc, typing, unittest, urllib, xmlrpc, zoneinfo
  python: abc, collections, operator, reprlib, types
  native: _thread
- [x] [1/2 deps] threading (17 dependents)
  - [ ] test_threading (20 TODO)
  dependents: asyncio, bdb, concurrent, http, idlelib, logging, multiprocessing, pdb, queue, sched, socketserver, subprocess, sysconfig, trace, unittest, webbrowser, zipfile
  python: _weakrefset, os
  native: _contextvars, _thread, itertools, sys, time
- [ ] [1/3 deps] copy (9 dependents)
  - [ ] test_copy
  dependents: dataclasses, email, http, logging, mailbox, smtplib, tarfile, turtle, xml
  python: copyreg, types, weakref
- [ ] [1/3 deps] posixpath (6 dependents)
  - [x] test_posixpath (4 TODO)
  dependents: fnmatch, http, importlib, pathlib, wsgiref, zipfile
  python: genericpath, os, stat
  native: errno, sys
- [ ] [1/4 deps] random (6 dependents)
  - [ ] test_random
  dependents: email, secrets, statistics, tempfile, turtle, turtledemo
  python: _collections_abc, bisect, operator, os
  native: _random, itertools, math
- [x] [1/1 deps] signal (5 dependents)
  - [ ] test_signal (3 TODO)
  dependents: asyncio, multiprocessing, pdb, subprocess, unittest
  python: enum
  native: _signal
- [x] [1/6 deps] typing (5 dependents)
  - [ ] test_typing (21 TODO)
  dependents: importlib, pathlib, pdb, tomllib, wsgiref
  python: abc, collections, copyreg, functools, operator, types
  native: _typing, collections.abc, sys
- [ ] [1/4 deps] queue (4 dependents)
  - [ ] test_queue
  dependents: concurrent, idlelib, logging, multiprocessing
  python: collections, heapq, threading, types
  native: time
- [ ] [1/4 deps] json (4 dependents)
  - [ ] test_json (18 TODO)
  dependents: importlib, multiprocessing, pdb, sysconfig
  python: _colorize, argparse, codecs, re
  native: json.tool, sys
- [x] [1/2 deps] selectors (4 dependents)
  - [x] test_selectors
  dependents: asyncio, multiprocessing, pdb, socketserver
  python: abc, collections
  native: collections.abc, math, select, sys
- [ ] [1/2 deps] gettext (3 dependents)
  - [ ] test_gettext (7 TODO)
  dependents: argparse, getopt, optparse
  python: operator, os
  native: sys
- [ ] [1/1 deps] shlex (3 dependents)
  - [ ] test_shlex (4 TODO)
  dependents: idlelib, venv, webbrowser
  python: io
  native: sys
- [ ] [1/8 deps] dataclasses (3 dependents)
  - [ ] test_dataclasses (10 TODO)
  dependents: asyncio, pstats, unittest
  python: abc, annotationlib, copy, inspect, keyword, re, reprlib, types
  native: itertools, sys
- [ ] [1/3 deps] difflib (2 dependents)
  - [ ] test_difflib
  dependents: doctest, unittest
  python: collections, heapq, types
- [x] [1/2 deps] genericpath (2 dependents)
  - [ ] test_genericpath (1 TODO)
  dependents: ntpath, posixpath
  python: os, stat
- [ ] [1/3 deps] locale (2 dependents)
  - [ ] test_locale
  dependents: calendar, subprocess
  python: _collections_abc, encodings, functools
  native: builtins, encodings.aliases, sys
- [x] [1/3 deps] filecmp (1 dependents)
  - [x] test_filecmp
  dependents: compileall
  python: os, stat, types
  native: itertools
- [ ] [1/2 deps] ntpath (1 dependents)
  - [ ] test_ntpath
  dependents: pathlib
  python: genericpath, os
  native: sys
- [x] [1/1 deps] pyclbr (1 dependents)
  - [ ] test_pyclbr (3 TODO)
  dependents: idlelib
  python: ast
  native: importlib.util, sys
- [ ] [1/1 deps] profile (1 dependents)
  - [ ] test_profile
  dependents: cProfile
  python: io
  native: importlib.machinery, marshal, sys, time
- [ ] [1/3 deps] site (1 dependents)
  - [ ] test_site (5 TODO)
  dependents: asyncio
  python: _sitebuiltins, os, stat
  native: _io, builtins, errno, sys
- [x] [1/1 deps] netrc
  - [x] test_netrc
  python: os
- [ ] [1/6 deps] tomllib
  - [ ] test_tomllib
  python: __future__, datetime, functools, re, types, typing
- [ ] [1/2 deps] csv
  - [ ] test_csv (27 TODO)
  python: io, types
  native: _csv
- [x] [1/2 deps] fileinput
  - [ ] test_fileinput (1 TODO)
  python: io, types
  native: sys
- [ ] [1/1 deps] ftplib
  - [x] test_ftplib (4 TODO)
  python: socket
  native: sys
- [ ] [1/1 deps] optparse
  - [ ] test_optparse
  python: gettext
  native: sys
- [ ] [1/2 deps] poplib
  - [ ] test_poplib
  python: re, socket
  native: errno, sys
- [ ] [1/2 deps] pty
  - [ ] test_pty (4 TODO)
  python: os, tty
  native: select, sys
- [x] [1/3 deps] sched
  - [x] test_sched
  python: collections, heapq, threading
  native: itertools, time
- [ ] [1/2 deps] wave
  - [ ] test_wave
  python: collections, struct
  native: builtins, sys
- [ ] [1/1 deps] curses
  - [ ] test_curses
  python: os
  native: _curses, _curses_panel, curses.ascii, sys
- [ ] [2/5 deps] io (48 dependents)
  - [ ] test_io (60 TODO)
  dependents: asyncio, bz2, cProfile, compression, configparser, csv, dbm, dis, doctest, email, encodings, fileinput, getpass, gzip, http, idlelib, imaplib, importlib, logging, lzma, mailbox, modulefinder, multiprocessing, pathlib, pdb, pickle, pickletools, plistlib, pprint, profile, pydoc, runpy, shelve, shlex, smtplib, socket, socketserver, subprocess, tarfile, tempfile, tokenize, trace, traceback, unittest, urllib, xml, xmlrpc, zipfile
  python: _collections_abc, abc, codecs, os, stat
  native: _io, _thread, errno, sys
- [x] [2/6 deps] contextlib (19 dependents)
  - [ ] test_contextlib (5 TODO)
  dependents: asyncio, bdb, configparser, dbm, ensurepip, getpass, glob, idlelib, importlib, mailbox, pdb, subprocess, traceback, turtle, unittest, urllib, xml, zipapp, zipfile
  python: _collections_abc, abc, collections, functools, os, types
  native: sys
- [ ] [2/7 deps] pickle (8 dependents)
  - [ ] test_pickle (26 TODO)
  dependents: concurrent, idlelib, logging, multiprocessing, pickletools, shelve, trace, tracemalloc
  python: _compat_pickle, codecs, copyreg, functools, io, struct, types
  native: itertools, sys
- [ ] [2/4 deps] fnmatch (7 dependents)
  - [ ] test_fnmatch
  dependents: bdb, glob, idlelib, shutil, tkinter, tracemalloc, unittest
  python: functools, os, posixpath, re
  native: itertools
- [ ] [2/4 deps] sysconfig (6 dependents)
  - [ ] test_sysconfig (8 TODO)
  dependents: ctypes, ensurepip, pydoc, trace, venv, zoneinfo
  python: json, os, threading, types
  native: os.path, sys
- [x] [2/3 deps] argparse (5 dependents)
  - [x] test_argparse
  dependents: asyncio, ensurepip, json, sqlite3, unittest
  python: gettext, os, re
  native: sys
- [x] [2/4 deps] annotationlib (3 dependents)
  - [ ] test_annotationlib
  dependents: dataclasses, inspect, pydoc
  python: ast, enum, keyword, types
  native: builtins, sys
- [ ] [2/2 deps] code (3 dependents)
  - [ ] test_code (11 TODO)
  dependents: idlelib, pdb, sqlite3
  python: codeop, traceback
  native: builtins, sys
- [ ] [2/4 deps] platform (3 dependents)
  - [ ] test_platform
  dependents: idlelib, pydoc, wsgiref
  python: collections, functools, os, re
  native: itertools, sys
- [ ] [2/3 deps] pprint (2 dependents)
  - [ ] test_pprint
  dependents: pdb, unittest
  python: collections, io, types
  native: sys
- [ ] [2/7 deps] glob (2 dependents)
  - [ ] test_glob
  dependents: pathlib, pdb
  python: contextlib, fnmatch, functools, operator, os, re, stat
  native: itertools, sys
- [x] [2/2 deps] bz2 (2 dependents)
  - [x] test_bz2 (2 TODO)
  dependents: compression, encodings
  python: io, os
  native: _bz2, builtins, compression._common
- [x] [2/2 deps] runpy (2 dependents)
  - [ ] test_runpy (3 TODO)
  dependents: ensurepip, multiprocessing
  python: io, os
  native: importlib.machinery, importlib.util, sys
- [x] [2/3 deps] secrets (1 dependents)
  - [x] test_secrets
  dependents: multiprocessing
  python: base64, hmac, random
- [ ] [2/2 deps] tabnanny (1 dependents)
  - [ ] test_tabnanny (6 TODO)
  dependents: idlelib
  python: os, tokenize
  native: sys
- [x] [2/2 deps] lzma (1 dependents)
  - [x] test_lzma (51 TODO)
  dependents: compression
  python: io, os
  native: _lzma, builtins, compression._common
- [ ] [2/6 deps] encodings (1 dependents)
  dependents: locale
  python: base64, bz2, codecs, io, quopri, stringprep
  native: _codecs_cn, _codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr, _codecs_tw, _multibytecodec, binascii, sys, unicodedata, zlib
- [x] [2/2 deps] antigravity
  python: hashlib, webbrowser
- [ ] [2/2 deps] getopt
  - [ ] test_getopt
  python: gettext, os
- [ ] [2/3 deps] getpass
  - [ ] test_getpass
  python: contextlib, io, os
  native: sys
- [ ] [2/2 deps] imaplib
  - [ ] test_imaplib
  python: datetime, io
  native: binascii
- [x] [2/2 deps] shelve
  - [x] test_shelve
  python: io, pickle
  native: collections.abc
- [ ] [2/2 deps] symtable
  - [ ] test_symtable (17 TODO)
  python: enum, weakref
  native: _symtable
- [ ] [2/2 deps] uuid
  - [ ] test_uuid
  python: enum, os
  native: sys, time
- [ ] [2/2 deps] cProfile
  python: io, profile
  native: _lsprof, importlib.machinery, importlib.util
- [ ] [2/4 deps] tracemalloc
  - [ ] test_tracemalloc
  python: fnmatch, functools, linecache, pickle
  native: _tracemalloc, collections.abc, os.path
- [ ] [2/6 deps] wsgiref
  - [ ] test_wsgiref (1 TODO)
  python: platform, posixpath, re, types, typing, warnings
  native: collections.abc, http.server, sys, urllib.parse, wsgiref.handlers
- [ ] [3/3 deps] socket (13 dependents)
  - [ ] test_socket (12 TODO)
  dependents: asyncio, ftplib, http, idlelib, logging, mailbox, multiprocessing, pdb, poplib, smtplib, socketserver, ssl, urllib
  python: enum, io, os
  native: _socket, sys
- [ ] [3/4 deps] shutil (9 dependents)
  - [ ] test_shutil
  dependents: ctypes, ensurepip, http, tarfile, tempfile, venv, webbrowser, zipapp, zipfile
  python: collections, fnmatch, os, stat
  native: errno, sys
- [ ] [3/8 deps] subprocess (7 dependents)
  - [ ] test_subprocess (10 TODO)
  dependents: asyncio, ctypes, ensurepip, idlelib, multiprocessing, venv, webbrowser
  python: contextlib, io, locale, os, signal, threading, types, warnings
  native: builtins, errno, sys, time
- [ ] [3/6 deps] tokenize (7 dependents)
  - [ ] test_tokenize (2 TODO)
  dependents: idlelib, inspect, pdb, pydoc, tabnanny, trace, traceback
  python: codecs, collections, functools, io, re, token
  native: _tokenize, builtins, itertools, sys
- [ ] [3/4 deps] dis (4 dependents)
  - [ ] test_dis (53 TODO)
  dependents: inspect, modulefinder, pdb, trace
  python: collections, io, opcode, types
  native: _opcode, sys
- [x] [3/5 deps] socketserver (4 dependents)
  - [ ] test_socketserver (1 TODO)
  dependents: http, idlelib, logging, xmlrpc
  python: io, os, selectors, socket, threading
  native: sys, time
- [x] [3/3 deps] calendar (3 dependents)
  - [x] test_calendar
  dependents: http, mailbox, zoneinfo
  python: datetime, enum, locale
  native: itertools, sys
- [ ] [3/6 deps] bdb (2 dependents)
  - [ ] test_bdb (33 TODO)
  dependents: idlelib, pdb
  python: contextlib, fnmatch, inspect, os, threading, weakref
  native: sys
- [ ] [3/4 deps] pkgutil (2 dependents)
  - [ ] test_pkgutil (1 TODO)
  dependents: pydoc, unittest
  python: collections, functools, importlib, os
  native: importlib.machinery, importlib.util, os.path, sys
- [ ] [3/6 deps] configparser (1 dependents)
  - [ ] test_configparser (1 TODO)
  dependents: idlelib
  python: collections, contextlib, functools, io, os, re
  native: collections.abc, itertools, sys
- [x] [3/4 deps] gzip (1 dependents)
  - [x] test_gzip (1 TODO)
  dependents: compression
  python: io, os, struct, weakref
  native: builtins, compression._common, sys, time, zlib
- [ ] [3/3 deps] py_compile (1 dependents)
  - [ ] test_py_compile (2 TODO)
  dependents: compileall
  python: enum, os, traceback
  native: importlib._bootstrap_external, importlib.machinery, importlib.util, os.path, sys
- [x] [3/4 deps] sqlite3 (1 dependents)
  - [ ] test_sqlite3 (82 TODO)
  dependents: dbm
  python: argparse, code, datetime, textwrap
  native: _sqlite3, collections.abc, sqlite3.dbapi2, sys, time
- [ ] [3/5 deps] pickletools
  - [ ] test_pickletools (8 TODO)
  python: codecs, io, pickle, re, struct
  native: sys
- [ ] [3/6 deps] compileall
  - [ ] test_compileall (3 TODO)
  python: filecmp, functools, os, pathlib, py_compile, struct
  native: importlib.util, sys
- [ ] [3/5 deps] pstats
  - [ ] test_pstats
  python: dataclasses, enum, functools, os, re
  native: marshal, sys, time
- [ ] [3/3 deps] modulefinder
  - [ ] test_modulefinder
  python: dis, io, os
  native: importlib._bootstrap_external, importlib.machinery, marshal, sys
- [x] [3/6 deps] compression
  python: bz2, enum, gzip, io, lzma, os
  native: _zstd, compression._common, compression.zstd._zstdfile, sys, zlib
- [ ] [4/9 deps] traceback (12 dependents)
  - [ ] test_traceback (71 TODO)
  dependents: asyncio, code, concurrent, doctest, idlelib, logging, multiprocessing, pdb, py_compile, pydoc, unittest, xmlrpc
  python: _colorize, codeop, contextlib, io, keyword, linecache, textwrap, tokenize, warnings
  native: collections.abc, itertools, sys
- [ ] [4/6 deps] tkinter (3 dependents)
  - [ ] test_tkinter
  dependents: idlelib, turtle, turtledemo
  python: collections, enum, fnmatch, os, re, types
  native: _tkinter, itertools, sys, tkinter.commondialog, tkinter.constants, tkinter.dialog, tkinter.simpledialog
- [ ] [4/5 deps] webbrowser (2 dependents)
  - [ ] test_webbrowser
  dependents: antigravity, idlelib
  python: os, shlex, shutil, subprocess, threading
  native: sys
- [ ] [4/8 deps] ctypes (1 dependents)
  - [ ] test_ctypes (14 TODO)
  dependents: multiprocessing
  python: os, re, shutil, struct, subprocess, sysconfig, types, warnings
  native: _ctypes, ctypes._endian, ctypes.macholib.dylib, ctypes.macholib.framework, itertools, sys
- [ ] [4/6 deps] zipapp
  - [ ] test_zipapp
  python: contextlib, os, pathlib, shutil, stat, zipfile
  native: sys
- [ ] [4/6 deps] ssl
  - [ ] test_ssl (21 TODO)
  python: base64, collections, enum, os, socket, warnings
  native: _ssl, errno, sys
- [ ] [4/8 deps] statistics
  - [ ] test_statistics (1 TODO)
  python: bisect, collections, decimal, fractions, functools, numbers, operator, random
  native: itertools, math, sys
- [ ] [4/7 deps] tarfile
  - [ ] test_tarfile (4 TODO)
  python: copy, io, os, re, shutil, stat, struct
  native: builtins, sys, time
- [x] [4/7 deps] dbm
  - [ ] test_dbm
  python: ast, contextlib, io, os, pathlib, sqlite3, struct
  native: _dbm, _gdbm, collections.abc, sys
- [ ] [5/8 deps] tempfile (7 dependents)
  - [ ] test_tempfile (1 TODO)
  dependents: asyncio, ensurepip, idlelib, importlib, multiprocessing, pdb, urllib
  python: functools, io, os, random, shutil, types, warnings, weakref
  native: _thread, errno, sys
- [ ] [5/10 deps] pathlib (7 dependents)
  - [ ] test_pathlib (2 TODO)
  dependents: compileall, dbm, ensurepip, importlib, turtle, zipapp, zipfile
  python: _collections_abc, abc, glob, io, ntpath, operator, os, posixpath, stat, typing
  native: errno, itertools, pathlib._os, sys
- [ ] [5/10 deps] zipfile (2 dependents)
  - [ ] test_zipfile (16 TODO)
  dependents: importlib, zipapp
  python: contextlib, io, os, pathlib, posixpath, re, shutil, stat, struct, threading
  native: binascii, importlib.util, itertools, sys, time
- [x] [5/7 deps] plistlib (1 dependents)
  - [ ] test_plistlib (7 TODO)
  dependents: idlelib
  python: codecs, datetime, enum, io, os, re, struct
  native: binascii, itertools, xml.parsers.expat
- [ ] [5/5 deps] turtledemo (1 dependents)
  dependents: turtle
  python: datetime, os, random, tkinter, turtle
  native: idlelib.colorizer, idlelib.percolator, idlelib.textview, math, sys, time
- [ ] [5/10 deps] zoneinfo
  - [ ] test_zoneinfo (4 TODO)
  python: bisect, calendar, collections, datetime, functools, os, re, struct, sysconfig, weakref
- [x] [5/9 deps] mailbox
  - [ ] test_mailbox
  python: calendar, contextlib, copy, email, io, os, socket, types, warnings
  native: email.generator, email.message, errno, time
- [ ] [5/7 deps] smtplib
  - [x] test_smtplib (2 TODO)
  python: base64, copy, datetime, hmac, io, re, socket
  native: email.base64mime, email.generator, email.message, email.utils, sys
- [ ] [6/7 deps] venv
  - [ ] test_venv (4 TODO)
  python: logging, os, shlex, shutil, subprocess, sysconfig, types
  native: sys
- [ ] [6/10 deps] trace
  - [ ] test_trace (20 TODO)
  python: dis, inspect, io, linecache, os, pickle, sysconfig, threading, token, tokenize
  native: gc, sys, time
- [ ] [6/9 deps] xml
  python: codecs, collections, contextlib, copy, io, os, re, warnings, weakref
  native: collections.abc, pyexpat, sys, urllib.parse, xml.dom, xml.dom.NodeFilter, xml.dom.minicompat, xml.dom.minidom, xml.dom.xmlbuilder, xml.etree.ElementTree, xml.parsers, xml.sax, xml.sax._exceptions, xml.sax.handler
- [x] [7/16 deps] inspect (13 dependents)
  - [ ] test_inspect (56 TODO)
  dependents: asyncio, bdb, dataclasses, doctest, idlelib, importlib, pdb, pydoc, rlcompleter, trace, turtle, unittest, xmlrpc
  python: abc, annotationlib, ast, collections, dis, enum, functools, keyword, linecache, operator, os, re, token, tokenize, types, weakref
  native: builtins, collections.abc, importlib.machinery, itertools, sys
- [ ] [7/14 deps] logging (4 dependents)
  - [ ] test_logging (9 TODO)
  dependents: asyncio, concurrent, unittest, venv
  python: copy, functools, io, os, pickle, queue, re, socket, socketserver, string, struct, threading, traceback, types
  native: atexit, errno, logging.handlers, sys, time
- [ ] [7/15 deps] email (3 dependents)
  - [ ] test_email (12 TODO)
  dependents: importlib, mailbox, urllib
  python: abc, base64, collections, copy, datetime, functools, io, operator, os, quopri, random, re, string, types, urllib
  native: binascii, email._encoded_words, email._parseaddr, email._policybase, email.base64mime, email.charset, email.contentmanager, email.encoders, email.errors, email.feedparser, email.headerregistry, email.message, email.mime.base, email.mime.nonmultipart, email.policy, email.quoprimime, email.utils, sys, time, urllib.parse
- [ ] [7/10 deps] turtle (1 dependents)
  - [ ] test_turtle
  dependents: turtledemo
  python: contextlib, copy, datetime, inspect, os, pathlib, random, tkinter, turtledemo, types
  native: idlelib.colorizer, idlelib.percolator, idlelib.textview, math, os.path, sys, time
- [ ] [7/16 deps] urllib (1 dependents)
  - [ ] test_urllib
  dependents: email
  python: base64, bisect, collections, contextlib, email, functools, hashlib, io, ipaddress, os, re, socket, string, tempfile, types, warnings
  native: http.client, math, sys, time, urllib.error, urllib.parse, urllib.request, urllib.response
- [ ] [7/13 deps] doctest
  - [ ] test_doctest (13 TODO)
  python: __future__, _colorize, collections, difflib, functools, inspect, io, linecache, os, pdb, re, traceback, unittest
  native: sys
- [x] [7/10 deps] ensurepip
  - [x] test_ensurepip
  python: argparse, contextlib, importlib, os, pathlib, runpy, shutil, subprocess, sysconfig, tempfile
  native: sys
- [ ] [7/12 deps] xmlrpc
  - [ ] test_xmlrpc (5 TODO)
  python: base64, datetime, decimal, functools, html, inspect, io, os, pydoc, re, socketserver, traceback
  native: errno, http.client, http.server, sys, time, urllib.parse, xml.parsers, xmlrpc.client
- [ ] [8/11 deps] concurrent
  python: collections, functools, logging, multiprocessing, os, pickle, queue, threading, traceback, types, weakref
  native: _interpqueues, _interpreters, concurrent.futures, concurrent.futures._base, itertools, multiprocessing.connection, multiprocessing.queues, sys, time
- [ ] [9/16 deps] http
  python: calendar, copy, datetime, enum, html, io, mimetypes, os, posixpath, re, shutil, socket, socketserver, string, threading, types
  native: collections.abc, email.message, email.parser, email.utils, errno, http.client, itertools, select, sys, time, urllib.parse
- [ ] [10/20 deps] importlib (3 dependents)
  - [ ] test_importlib (29 TODO)
  dependents: ensurepip, idlelib, pkgutil
  python: __future__, abc, collections, contextlib, email, functools, inspect, io, json, operator, os, pathlib, posixpath, re, tempfile, textwrap, types, typing, warnings, zipfile
  native: _imp, _io, _warnings, collections.abc, email.message, importlib.abc, itertools, marshal, sys
- [ ] [10/16 deps] pydoc (1 dependents)
  - [ ] test_pydoc
  dependents: xmlrpc
  python: __future__, annotationlib, ast, collections, inspect, io, os, pkgutil, platform, re, reprlib, sysconfig, textwrap, tokenize, traceback, warnings
  native: _pyrepl.pager, builtins, importlib._bootstrap, importlib._bootstrap_external, importlib.machinery, importlib.util, sys, system., time, urllib.parse
- [ ] [12/23 deps] unittest (2 dependents)
  - [ ] test_unittest (15 TODO)
  dependents: doctest, idlelib
  python: _colorize, argparse, asyncio, collections, contextlib, contextvars, dataclasses, difflib, fnmatch, functools, inspect, io, logging, os, pkgutil, pprint, re, signal, threading, traceback, types, warnings, weakref
  native: builtins, os.path, sys, time, unittest.util
- [ ] [12/26 deps] multiprocessing (1 dependents)
  dependents: concurrent
  python: _weakrefset, abc, base64, bisect, collections, copyreg, ctypes, functools, io, json, os, pickle, queue, runpy, secrets, selectors, signal, socket, struct, subprocess, tempfile, threading, traceback, types, warnings, weakref
  native: _multiprocessing, _winapi, array, atexit, collections.abc, errno, itertools, mmap, msvcrt, sys, time
- [ ] [13/29 deps] asyncio (2 dependents)
  - [ ] test_asyncio
  dependents: pdb, unittest
  python: _colorize, argparse, ast, collections, contextlib, contextvars, dataclasses, enum, functools, heapq, inspect, io, linecache, logging, os, reprlib, selectors, signal, site, socket, stat, struct, subprocess, tempfile, threading, traceback, types, warnings, weakref
  native: _overlapped, _pyrepl.console, _remote_debugging, _winapi, asyncio.tools, collections.abc, concurrent.futures, errno, itertools, math, msvcrt, sys, time
- [ ] [16/30 deps] pdb (1 dependents)
  - [ ] test_pdb
  dependents: doctest
  python: _colorize, asyncio, bdb, cmd, code, codeop, contextlib, dis, glob, inspect, io, json, linecache, os, pprint, re, selectors, signal, socket, stat, tempfile, textwrap, threading, token, tokenize, traceback, types, typing, warnings, weakref
  native: _pyrepl.utils, atexit, builtins, itertools, sys
- [ ] [22/39 deps] idlelib
  python: bdb, code, collections, configparser, contextlib, copyreg, fnmatch, functools, importlib, inspect, io, keyword, linecache, os, pickle, platform, plistlib, pyclbr, queue, re, reprlib, shlex, socket, socketserver, string, struct, subprocess, tabnanny, tempfile, test, textwrap, threading, tkinter, tokenize, traceback, types, unittest, warnings, webbrowser
  native: __main__, _thread, _tkinter, builtins, html.parser, idlelib.autocomplete, idlelib.autocomplete_w, idlelib.autoexpand, idlelib.browser, idlelib.codecontext, idlelib.colorizer, idlelib.config, idlelib.config_key, idlelib.configdialog, idlelib.debugobj, idlelib.delegator, idlelib.dynoption, idlelib.editor, idlelib.filelist, idlelib.format, idlelib.help, idlelib.history, idlelib.hyperparser, idlelib.idle_test.mock_idle, idlelib.idle_test.mock_tk, idlelib.idle_test.tkinter_testing_utils, idlelib.multicall, idlelib.outwin, idlelib.parenmatch, idlelib.percolator, idlelib.pyshell, idlelib.query, idlelib.redirector, idlelib.replace, idlelib.run, idlelib.scrolledlist, idlelib.searchbase, idlelib.searchengine, idlelib.sidebar, idlelib.squeezer, idlelib.textview, idlelib.tooltip, idlelib.tree, idlelib.undo, idlelib.util, idlelib.window, importlib.abc, importlib.machinery, importlib.util, itertools, marshal, module, os.path, select, sys, test.support, time, tkinter.constants, tkinter.font, tkinter.messagebox, tkinter.simpledialog, tkinter.ttk, unittest.mock

## Standalone Tests
- [ ] test___all__ (1 TODO)
- [x] test__colorize
- [ ] test__interpchannels
- [ ] test__interpreters
- [ ] test__locale
- [x] test__opcode (2 TODO)
- [ ] test__osx_support
- [ ] test_abstract_numbers
- [ ] test_android
- [ ] test_apple
- [ ] test_array (5 TODO)
- [ ] test_asdl_parser
- [ ] test_asyncgen (1 TODO)
- [ ] test_atexit
- [ ] test_audit
- [x] test_augassign
- [ ] test_baseexception
- [x] test_bigaddrspace
- [ ] test_bigmem (5 TODO)
- [ ] test_binascii (1 TODO)
- [ ] test_binop
- [ ] test_bool
- [ ] test_buffer
- [ ] test_bufio (2 TODO)
- [ ] test_build_details
- [ ] test_builtin (18 TODO)
- [ ] test_bytes (17 TODO)
- [ ] test_c_locale_coercion (1 TODO)
- [ ] test_call (1 TODO)
- [ ] test_capi
- [ ] test_cext
- [ ] test_charmapcodec
- [ ] test_class (14 TODO)
- [ ] test_clinic
- [x] test_cmath
- [ ] test_cmd_line (24 TODO)
- [ ] test_cmd_line_script (17 TODO)
- [ ] test_code_module (6 TODO)
- [ ] test_codeccallbacks (11 TODO)
- [ ] test_codecencodings_cn
- [ ] test_codecencodings_hk
- [ ] test_codecencodings_iso2022
- [ ] test_codecencodings_jp
- [ ] test_codecencodings_kr
- [ ] test_codecencodings_tw
- [ ] test_codecmaps_cn
- [ ] test_codecmaps_hk
- [ ] test_codecmaps_jp
- [ ] test_codecmaps_kr
- [ ] test_codecmaps_tw
- [x] test_compare
- [ ] test_compile (26 TODO)
- [ ] test_compiler_assemble
- [ ] test_compiler_codegen
- [ ] test_complex (2 TODO)
- [ ] test_concurrent_futures (18 TODO)
- [ ] test_contains
- [ ] test_context (6 TODO)
- [ ] test_contextlib_async (5 TODO)
- [ ] test_coroutines
- [ ] test_cppext
- [ ] test_cprofile
- [ ] test_crossinterp
- [x] test_dbm_dumb
- [ ] test_dbm_gnu
- [ ] test_dbm_ndbm
- [x] test_dbm_sqlite3
- [ ] test_decorators (1 TODO)
- [x] test_defaultdict
- [ ] test_deque (3 TODO)
- [ ] test_descr (44 TODO)
- [ ] test_descrtut (1 TODO)
- [x] test_devpoll
- [ ] test_dict (4 TODO)
- [ ] test_dictcomps (1 TODO)
- [ ] test_dictviews (2 TODO)
- [ ] test_docxmlrpc (7 TODO)
- [ ] test_dtrace (8 TODO)
- [ ] test_dynamic (1 TODO)
- [ ] test_dynamicclassattribute
- [x] test_eintr
- [ ] test_embed
- [x] test_enumerate
- [x] test_eof (6 TODO)
- [x] test_epoll
- [ ] test_errno
- [ ] test_except_star (1 TODO)
- [ ] test_exception_group (2 TODO)
- [ ] test_exception_hierarchy (2 TODO)
- [ ] test_exception_variations (1 TODO)
- [ ] test_exceptions (29 TODO)
- [ ] test_extcall
- [ ] test_external_inspection
- [ ] test_faulthandler (30 TODO)
- [ ] test_fcntl
- [ ] test_file
- [ ] test_file_eintr (1 TODO)
- [ ] test_fileio
- [ ] test_fileutils
- [ ] test_finalization
- [ ] test_float (5 TODO)
- [ ] test_flufl
- [ ] test_fork1
- [ ] test_format (5 TODO)
- [ ] test_frame
- [ ] test_free_threading
- [ ] test_frozen
- [ ] test_fstring (29 TODO)
- [ ] test_funcattrs (6 TODO)
- [ ] test_future_stmt (6 TODO)
- [ ] test_gc
- [ ] test_gdb
- [ ] test_generated_cases
- [ ] test_generator_stop
- [ ] test_generators (6 TODO)
- [ ] test_genericalias (5 TODO)
- [ ] test_genericclass (1 TODO)
- [ ] test_genexps
- [ ] test_getpath
- [ ] test_global (3 TODO)
- [ ] test_grammar (19 TODO)
- [x] test_grp
- [ ] test_hash (4 TODO)
- [ ] test_htmlparser
- [ ] test_http_cookiejar
- [ ] test_http_cookies
- [ ] test_httplib
- [ ] test_httpservers (13 TODO)
- [ ] test_idle
- [ ] test_import (22 TODO)
- [x] test_index
- [ ] test_int (6 TODO)
- [x] test_int_literal
- [ ] test_interpreters
- [ ] test_ioctl
- [ ] test_isinstance
- [ ] test_iter (1 TODO)
- [x] test_iterlen
- [ ] test_itertools (27 TODO)
- [x] test_keywordonlyarg (1 TODO)
- [x] test_kqueue
- [ ] test_largefile
- [ ] test_launcher
- [ ] test_list (5 TODO)
- [ ] test_listcomps (2 TODO)
- [ ] test_lltrace
- [ ] test_long (4 TODO)
- [x] test_longexp
- [ ] test_marshal (21 TODO)
- [x] test_math
- [x] test_math_property
- [ ] test_memoryio (26 TODO)
- [ ] test_memoryview (6 TODO)
- [ ] test_metaclass
- [ ] test_minidom
- [ ] test_mmap (3 TODO)
- [ ] test_module (4 TODO)
- [ ] test_monitoring
- [ ] test_msvcrt
- [ ] test_multibytecodec
- [ ] test_multiprocessing_fork (79 TODO)
- [ ] test_multiprocessing_forkserver (38 TODO)
- [x] test_multiprocessing_main_handling
- [ ] test_multiprocessing_spawn (34 TODO)
- [ ] test_named_expressions (18 TODO)
- [x] test_numeric_tower
- [ ] test_opcache
- [ ] test_opcodes
- [x] test_openpty
- [ ] test_optimizer
- [ ] test_ordered_dict (4 TODO)
- [ ] test_osx_env
- [ ] test_patma (20 TODO)
- [ ] test_peepholer (33 TODO)
- [ ] test_peg_generator
- [ ] test_pep646_syntax
- [ ] test_perf_profiler
- [ ] test_perfmaps
- [ ] test_picklebuffer (12 TODO)
- [ ] test_pkg
- [ ] test_poll (1 TODO)
- [ ] test_popen
- [ ] test_positional_only_arg (6 TODO)
- [ ] test_posix (8 TODO)
- [x] test_pow
- [ ] test_print (7 TODO)
- [ ] test_property
- [ ] test_pulldom (4 TODO)
- [x] test_pwd
- [ ] test_pyexpat (28 TODO)
- [ ] test_pyrepl
- [ ] test_raise (1 TODO)
- [ ] test_range (1 TODO)
- [ ] test_readline
- [x] test_regrtest (11 TODO)
- [ ] test_remote_pdb
- [ ] test_repl
- [ ] test_resource (2 TODO)
- [ ] test_richcmp
- [ ] test_robotparser (1 TODO)
- [ ] test_sax
- [ ] test_scope (1 TODO)
- [ ] test_script_helper (4 TODO)
- [ ] test_select
- [ ] test_set (5 TODO)
- [x] test_setcomps (1 TODO)
- [x] test_slice (1 TODO)
- [x] test_smtpnet
- [ ] test_sort (2 TODO)
- [ ] test_source_encoding
- [ ] test_stable_abi_ctypes
- [ ] test_startfile
- [ ] test_str (18 TODO)
- [ ] test_strftime
- [ ] test_string_literals (5 TODO)
- [ ] test_strptime
- [ ] test_strtod (6 TODO)
- [ ] test_structseq
- [ ] test_subclassinit
- [ ] test_sundry
- [ ] test_super (4 TODO)
- [ ] test_support (4 TODO)
- [ ] test_syntax (27 TODO)
- [ ] test_sys (17 TODO)
- [ ] test_sys_setprofile (22 TODO)
- [ ] test_sys_settrace (85 TODO)
- [ ] test_syslog (2 TODO)
- [ ] test_tcl
- [ ] test_termios
- [ ] test_thread
- [ ] test_thread_local_bytecode
- [ ] test_threadedtempfile
- [ ] test_threading_local (3 TODO)
- [ ] test_threadsignals
- [ ] test_time (18 TODO)
- [ ] test_timeout
- [ ] test_tools
- [ ] test_tstring
- [ ] test_ttk
- [ ] test_ttk_textonly
- [ ] test_tuple (1 TODO)
- [ ] test_type_aliases
- [ ] test_type_annotations
- [ ] test_type_cache
- [ ] test_type_comments (16 TODO)
- [ ] test_type_params
- [x] test_typechecks
- [x] test_ucn (4 TODO)
- [x] test_unary
- [x] test_unicode_file
- [ ] test_unicode_file_functions
- [ ] test_unicode_identifiers (1 TODO)
- [ ] test_unicodedata (18 TODO)
- [x] test_univnewlines
- [ ] test_unpack
- [ ] test_unpack_ex
- [ ] test_unparse
- [ ] test_urllib2
- [ ] test_urllib2_localnet (19 TODO)
- [ ] test_urllib2net
- [x] test_urllib_response
- [ ] test_urllibnet
- [ ] test_urlparse (1 TODO)
- [ ] test_userdict
- [ ] test_userlist
- [x] test_userstring
- [ ] test_utf8_mode (6 TODO)
- [ ] test_utf8source (2 TODO)
- [x] test_wait3
- [x] test_wait4
- [ ] test_weakset (2 TODO)
- [ ] test_winapi
- [ ] test_winconsoleio
- [x] test_winreg
- [ ] test_winsound
- [ ] test_with (1 TODO)
- [ ] test_wmi
- [x] test_xml_dom_minicompat
- [x] test_xml_dom_xmlbuilder
- [ ] test_xml_etree (126 TODO)
- [ ] test_xml_etree_c
- [ ] test_xxlimited
- [ ] test_xxtestfuzz
- [ ] test_yield_from (10 TODO)
- [x] test_zipfile64
- [ ] test_zipimport_support
- [x] test_zlib (2 TODO)
- [x] test_zstd

## Untracked Files
- _ast_unparse.py
- _pyrepl/_module_completer.py
- _pyrepl/base_eventqueue.py
- _pyrepl/terminfo.py
- _pyrepl/windows_eventqueue.py
- site-packages/README.txt

Summary by CodeRabbit

  • New Features

    • Discover and analyze test modules and determine test staleness
    • Produce unified reports that combine library and test status
  • Enhancements

    • Include test metadata in todo formatting and lists
    • Prioritize and compute test-aware todo items for clearer triage and reporting

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 24, 2026

Warning

Rate limit exceeded

@youknowone has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 25 minutes and 57 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

Adds test-awareness to scripts/update_lib/show_todo.py: discovers CPython test modules, computes test TODOs while ignoring "TODO: RUSTPYTHON" markers, determines test staleness, and formats combined library+test todo output via a new format_all_todo entry point.

Changes

Cohort / File(s) Change Summary
Test discovery & public API
scripts/update_lib/show_todo.py
Added public functions: get_all_tests, get_untracked_files, is_test_up_to_date, compute_test_todo_list, count_test_todos, format_test_todo_list, format_all_todo. Extended format_todo_list signature to accept test_by_lib.
Test diff & comparison helpers
scripts/update_lib/show_todo.py
Introduced private helpers: _filter_rustpython_todo, _count_rustpython_todo, _compare_file_ignoring_todo, _compare_dir_ignoring_todo. Implemented logic to compare files/dirs while ignoring "TODO: RUSTPYTHON" lines and to count/aggregate test TODOs.
Integration & formatting changes
scripts/update_lib/show_todo.py
Added format_test_todo_list and format_all_todo to merge test metadata with library entries; updated show_todo to call format_all_todo. Many helpers made private; public signatures extended.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • moreal
  • ShaharNaveh

Poem

🐰 I hopped through tests and files today,

Ignoring rusty TODOs along the way,
I counted, compared, and marked what’s new,
Merged tests with libs in a tidy view,
Hop hop—todo lists gleam like dew.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'update_lib todo also shows test todo' clearly and specifically describes the main change: extending the todo command to include test TODO output alongside library TODO output.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

Code has been automatically formatted

The code in this PR has been formatted using:

  • ruff format
    Please pull the latest changes before pushing again:
git pull origin todo

@youknowone youknowone marked this pull request as ready for review January 24, 2026 03:38
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@scripts/update_lib/show_todo.py`:
- Around line 253-256: The docstring and implementation disagree on the scoring
values; update the logic that assigns the variable score in this module so it
matches the docstring: set score = 0 when the corresponding lib is up-to-date,
set score = 1 when the corresponding lib exists but is NOT up-to-date, and set
score = -1 when there is no corresponding lib (ensure any places that check or
return score use these values consistently, e.g., the score assignment sites and
any functions that consume score).
🧹 Nitpick comments (1)
scripts/update_lib/show_todo.py (1)

408-419: Redundant is_up_to_date calls double the file comparison work.

compute_todo_list internally calls is_up_to_date for each module (see line 45 in existing code). Then lines 413-414 iterate over all modules calling is_up_to_date again. This duplicates potentially expensive file comparison operations.

Consider extracting lib_status from lib_todo results instead:

♻️ Proposed refactor
     # Compute lib todo
     lib_todo = compute_todo_list(cpython_prefix, lib_prefix, include_done)

-    # Build lib status map for test scoring
-    lib_status = {}
-    for name in get_all_modules(cpython_prefix):
-        lib_status[name] = is_up_to_date(name, cpython_prefix, lib_prefix)
+    # Build lib status map from lib_todo results to avoid redundant is_up_to_date calls
+    # Note: compute_todo_list already called is_up_to_date for each module
+    lib_status = {item["name"]: item["up_to_date"] for item in lib_todo}
+    # If include_done=False, lib_todo only has non-up-to-date items; need full status
+    if not include_done:
+        from update_lib.deps import is_up_to_date
+        for name in get_all_modules(cpython_prefix):
+            if name not in lib_status:
+                lib_status[name] = True  # Not in lib_todo means it's up-to-date

Alternatively, refactor compute_todo_list to return the full status map alongside the filtered results.

Comment on lines +253 to +256
Scoring:
- If corresponding lib is up-to-date: score = 0 (ready)
- If corresponding lib is NOT up-to-date: score = 1 (wait for lib)
- If no corresponding lib: score = -1 (independent)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Docstring does not match implementation.

The docstring states scores of 0, 1, and -1, but the implementation uses 0, 2, and 1:

  • score = 0: lib is up-to-date (matches)
  • score = 2: lib NOT up-to-date (docstring says 1)
  • score = 1: no corresponding lib (docstring says -1)
📝 Proposed fix
     """Compute prioritized list of tests to update.

     Scoring:
-        - If corresponding lib is up-to-date: score = 0 (ready)
-        - If corresponding lib is NOT up-to-date: score = 1 (wait for lib)
-        - If no corresponding lib: score = -1 (independent)
+        - If corresponding lib is up-to-date: score = 0 (ready to update)
+        - If no corresponding lib: score = 1 (independent test)
+        - If corresponding lib is NOT up-to-date: score = 2 (wait for lib first)

     Returns:
         List of dicts with test info, sorted by priority
     """
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Scoring:
- If corresponding lib is up-to-date: score = 0 (ready)
- If corresponding lib is NOT up-to-date: score = 1 (wait for lib)
- If no corresponding lib: score = -1 (independent)
Scoring:
- If corresponding lib is up-to-date: score = 0 (ready to update)
- If no corresponding lib: score = 1 (independent test)
- If corresponding lib is NOT up-to-date: score = 2 (wait for lib first)
🤖 Prompt for AI Agents
In `@scripts/update_lib/show_todo.py` around lines 253 - 256, The docstring and
implementation disagree on the scoring values; update the logic that assigns the
variable score in this module so it matches the docstring: set score = 0 when
the corresponding lib is up-to-date, set score = 1 when the corresponding lib
exists but is NOT up-to-date, and set score = -1 when there is no corresponding
lib (ensure any places that check or return score use these values consistently,
e.g., the score assignment sites and any functions that consume score).

@youknowone youknowone added the skip:ci Skip running the ci label Jan 24, 2026
@youknowone youknowone merged commit 691d281 into RustPython:main Jan 24, 2026
9 checks passed
@youknowone youknowone deleted the todo branch January 24, 2026 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip:ci Skip running the ci

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant