X Tutup
Skip to content

More accurate test dependencies#7261

Merged
youknowone merged 1 commit intoRustPython:mainfrom
ShaharNaveh:deps-more-accurate
Feb 28, 2026
Merged

More accurate test dependencies#7261
youknowone merged 1 commit intoRustPython:mainfrom
ShaharNaveh:deps-more-accurate

Conversation

@ShaharNaveh
Copy link
Contributor

@ShaharNaveh ShaharNaveh commented Feb 28, 2026

  • [no deps] struct (20 dependents) | 2026-01-21
    • test_struct (7 TODO)
  • [no deps] stat (14 dependents) | 2026-02-14
    • test_stat
  • [no deps] keyword (7 dependents) | 2024-06-21
    • test_keyword
  • [no deps] reprlib (7 dependents) | 2026-01-21
    • test_reprlib (2 TODO)
  • [no deps] __future__ (6 dependents) | 2024-04-23
    • test_future_stmt (8 TODO)
  • [no deps] annotationlib (6 dependents) | 2026-02-24
    • test_annotationlib
  • [no deps] token (5 dependents) | 2026-01-22
  • [no deps] bisect (5 dependents) | 2023-12-24
    • test_bisect
  • [no deps] tty (2 dependents) | 2026-01-05
    • test_tty (2 TODO)
  • [no deps] stringprep (1 dependents) | 2019-12-21
    • test_stringprep
  • [no deps] __hello__ | 2023-02-25
  • [no deps] __phello__ | 2023-02-25
  • [no deps] colorsys | 2025-04-21
    • test_colorsys
  • [no deps] this | 2019-06-22
  • [0/8 deps] os (85 dependents) | 2026-02-03
    • test_os (2 TODO)
    • test_popen
  • [0/4 deps] re (59 dependents) | 2026-01-20
    • test_re (14 TODO)
  • [0/2 deps] types (40 dependents) | 2026-02-18
    • test_types (10 TODO)
  • [0/9 deps] collections (37 dependents) | 2026-02-14 Δ61
    • test_collections (3 TODO)
    • test_deque (3 TODO)
    • test_defaultdict (1 TODO)
    • test_ordered_dict (8 TODO)
  • [0/9 deps] argparse (29 dependents) | 2026-02-07
    • test_argparse
  • [0/4 deps] socket (17 dependents) | 2026-02-01
    • test_socket (16 TODO)
  • [0/2 deps] enum (16 dependents) | 2026-02-15
    • test_enum (4 TODO)
  • [0/4 deps] weakref (16 dependents) | 2026-01-30
    • test_weakref (20 TODO)
    • test_weakset
  • [0/2 deps] abc (15 dependents) | 2025-06-29
    • test_abc (1 TODO)
  • [0/3 deps] copy (14 dependents) | 2026-02-10
    • test_copy
  • [0/1 deps] operator (14 dependents) | 2026-01-23
    • test_operator
  • [0/2 deps] getopt (10 dependents) | 2026-02-08
    • test_getopt
  • [0/3 deps] base64 (10 dependents) | 2026-01-19
    • test_base64
  • [0/3 deps] _colorize (9 dependents) | 2026-01-17
    • test__colorize
  • [0/9 deps] pickle (9 dependents) | 2026-02-05 Δ8
    • test_pickle (21 TODO)
    • test_picklebuffer (12 TODO)
    • test_pickletools (8 TODO)
  • [0/4 deps] posixpath (9 dependents) | 2026-02-13
    • test_posixpath
  • [0/1 deps] textwrap (8 dependents) | 2026-01-30
    • test_textwrap
  • [0/4 deps] fnmatch (8 dependents) | 2026-02-13
    • test_fnmatch
  • [0/2 deps] codecs (8 dependents) | 2026-01-31
    • test_codecs (12 TODO)
    • test_codeccallbacks (9 TODO)
    • test_codecencodings_cn (4 TODO)
    • test_codecencodings_hk (1 TODO)
    • test_codecencodings_iso2022 (5 TODO)
    • test_codecencodings_jp (7 TODO)
    • test_codecencodings_kr (3 TODO)
    • test_codecencodings_tw (1 TODO)
    • test_codecmaps_cn (3 TODO)
    • test_codecmaps_hk (1 TODO)
    • test_codecmaps_jp (6 TODO)
    • test_codecmaps_kr (3 TODO)
    • test_codecmaps_tw (3 TODO)
    • test_charmapcodec
    • test_multibytecodec (untracked)
  • [0/12 deps] pathlib (8 dependents) | 2026-02-13
    • test_pathlib
  • [0/6 deps] locale (7 dependents) | 2025-08-20 Δ11
    • test_locale
    • test__locale
  • [0/8 deps] random (7 dependents) | 2024-11-11 Δ149
    • test_random
  • [0/2 deps] copyreg (6 dependents) | 2026-01-24
    • test_copyreg
  • [0/1 deps] signal (6 dependents) | 2024-04-26
    • test_signal (1 TODO)
  • [0/9 deps] dataclasses (6 dependents) | 2026-02-08
    • test_dataclasses (10 TODO)
  • [0/2 deps] bz2 (6 dependents) | 2026-01-19
    • test_bz2 (1 TODO)
  • [0/1 deps] heapq (5 dependents) | 2026-01-18
    • test_heapq
  • [0/4 deps] json (5 dependents) | 2026-01-18 Δ14
    • test_json (14 TODO)
  • [0/9 deps] webbrowser (4 dependents) | 2025-04-21 Δ49
    • test_webbrowser
  • [0/8 deps] glob (4 dependents) | 2026-02-13
    • test_glob
  • [0/6 deps] socketserver (4 dependents) | 2026-01-03
    • test_socketserver (1 TODO)
  • [0/3 deps] code (4 dependents) | 2026-02-01
    • test_code (11 TODO)
    • test_code_module (3 TODO)
  • [0/2 deps] hmac (4 dependents) | 2026-02-15
    • test_hmac (14 TODO)
  • [0/2 deps] lzma (4 dependents) | 2026-01-19
    • test_lzma (13 TODO)
  • [0/6 deps] gzip (4 dependents) | 2026-01-19
    • test_gzip
  • [0/2 deps] codeop (3 dependents) | 2026-02-07
    • test_codeop (4 TODO)
  • [0/1 deps] numbers (3 dependents) | 2025-09-11
    • test_abstract_numbers
  • [0/1 deps] contextvars (3 dependents) | 2026-01-18
  • [0/3 deps] ntpath (3 dependents) | 2026-01-25
    • test_ntpath
  • [0/4 deps] rlcompleter (3 dependents) | 2025-07-17
    • test_rlcompleter (1 TODO)
  • [0/6 deps] compression (3 dependents) | 2026-01-19
  • [0/17 deps] zipfile (3 dependents) | 2026-02-24
    • test_zipfile (15 TODO)
    • test_zipfile64
  • [0/2 deps] genericpath (2 dependents) | 2025-08-04
    • test_genericpath
  • [0/1 deps] _ios_support (2 dependents) | 2025-03-10
  • [0/2 deps] html (2 dependents) | 2026-02-15
    • test_html
    • test_htmlparser
  • [0/3 deps] optparse (2 dependents) | 2026-01-30
    • test_optparse
  • [0/10 deps] bdb (2 dependents) | 2025-12-30 Δ271
    • test_bdb (9 TODO)
  • [0/1 deps] cmd (2 dependents) | 2026-01-24
    • test_cmd
  • [0/2 deps] quopri (2 dependents) | 2026-01-24
    • test_quopri
  • [0/2 deps] site (2 dependents) | 2026-01-17 Δ29
    • test_site (4 TODO)
  • [0/7 deps] plistlib (2 dependents) | 2026-01-04 Δ2
    • test_plistlib (6 TODO)
  • [0/4 deps] mimetypes (2 dependents) | 2026-01-21
    • test_mimetypes
  • [0/6 deps] pstats (2 dependents)
    • test_pstats (untracked)
  • [0/4 deps] py_compile (2 dependents) | 2026-01-30
    • test_py_compile (3 TODO)
  • [0/7 deps] encodings (2 dependents) | 2026-02-06
  • [0/2 deps] ipaddress (1 dependents) | 2026-01-18
    • test_ipaddress
  • [0/3 deps] csv (1 dependents) | 2026-02-18
    • test_csv (27 TODO)
  • [0/2 deps] netrc (1 dependents) | 2025-08-20
    • test_netrc
  • [0/4 deps] filecmp (1 dependents) | 2026-01-03
    • test_filecmp
  • [0/5 deps] fractions (1 dependents) | 2026-01-30
    • test_fractions (2 TODO)
  • [0/1 deps] opcode (1 dependents) | 2026-02-27 Δ382
    • test__opcode (2 TODO)
    • test_opcodes
  • [0/2 deps] pyclbr (1 dependents) | 2025-07-25
    • test_pyclbr (2 TODO)
  • [0/7 deps] dbm (1 dependents) | 2026-01-01
    • test_dbm (2 TODO)
    • test_dbm_dumb
    • test_dbm_gnu (untracked)
    • test_dbm_ndbm (untracked)
    • test_dbm_sqlite3
  • [0/4 deps] getpass (1 dependents) | 2026-02-08
    • test_getpass
  • [0/5 deps] sqlite3 (1 dependents) | 2026-01-19
    • test_sqlite3 (78 TODO)
  • [0/13 deps] tarfile (1 dependents) | 2026-02-27
    • test_tarfile
  • [0/2 deps] zipimport (1 dependents) | 2026-01-24
    • test_zipimport (2 TODO)
    • test_zipimport_support (untracked)
  • [0/1 deps] graphlib | 2026-01-18
    • test_graphlib
  • [0/1 deps] _apple_support | 2025-03-10
  • [0/7 deps] fileinput | 2025-04-30
    • test_fileinput
  • [0/2 deps] nturl2path | 2026-01-25
    • test_nturl2path
  • [0/7 deps] zipapp | 2025-08-06 Δ14
    • test_zipapp
  • [0/2 deps] _android_support | 2025-10-22 Δ7
  • [0/3 deps] symtable | 2026-01-30
    • test_symtable (17 TODO)
  • [0/2 deps] pty | 2026-01-05 Δ51
    • test_pty (4 TODO)
  • [0/4 deps] modulefinder
    • test_modulefinder (untracked)
  • [0/5 deps] timeit | 2026-02-01
    • test_timeit
  • [0/7 deps] tomllib | 2026-02-08
    • test_tomllib
  • [0/1 deps] curses
    • test_curses (untracked)
  • [0/13 deps] xmlrpc | 2026-02-14
    • test_xmlrpc (5 TODO)
    • test_docxmlrpc
  • [1/8 deps] warnings (58 dependents) | 2026-01-18
    • test_warnings (12 TODO)
  • [1/7 deps] io (56 dependents) | 2026-02-13
    • test_io (21 TODO)
    • test_bufio
    • test_fileio (1 TODO)
    • test_memoryio (28 TODO)
  • [1/10 deps] functools (37 dependents) | 2026-01-20
    • test_functools (9 TODO)
  • [1/6 deps] contextlib (25 dependents) | 2025-08-01
    • test_contextlib (2 TODO)
    • test_contextlib_async (2 TODO)
  • [1/8 deps] threading (21 dependents) | 2026-01-18
    • test_threading (18 TODO)
    • test_threadedtempfile
    • test_threading_local (3 TODO)
  • [1/11 deps] traceback (20 dependents) | 2026-02-06
    • test_traceback (34 TODO)
  • [1/9 deps] subprocess (15 dependents) | 2026-02-28
    • test_subprocess (4 TODO)
  • [1/10 deps] shutil (13 dependents) | 2026-02-15
    • test_shutil
  • [1/2 deps] linecache (12 dependents) | 2026-02-09
    • test_linecache
  • [1/7 deps] tokenize (11 dependents) | 2022-08-09 Δ357
    • test_tokenize (2 TODO)
  • [1/8 deps] datetime (11 dependents) | 2026-02-24
    • test_datetime
    • test_strptime (untracked)
  • [1/8 deps] tempfile (10 dependents) | 2026-01-04 Δ26
    • test_tempfile (1 TODO)
  • [1/11 deps] typing (10 dependents) | 2026-02-11
    • test_typing (4 TODO)
    • test_type_aliases
    • test_type_annotations (1 TODO)
    • test_type_params (6 TODO)
    • test_genericalias
  • [1/7 deps] ssl (8 dependents) | 2025-10-28 Δ4
    • test_ssl (21 TODO)
  • [1/7 deps] ast (7 dependents) | 2026-02-02
    • test_ast (54 TODO)
    • test_unparse
    • test_type_comments (15 TODO)
  • [1/6 deps] calendar (7 dependents) | 2026-01-17
    • test_calendar
  • [1/2 deps] selectors (6 dependents) | 2025-07-20
    • test_selectors
  • [1/1 deps] hashlib (6 dependents) | 2026-02-14
    • test_hashlib (7 TODO)
  • [1/2 deps] string (5 dependents) | 2026-01-17
    • test_string
    • test_userstring
  • [1/4 deps] runpy (5 dependents) | 2025-09-11
    • test_runpy (2 TODO)
  • [1/4 deps] difflib (4 dependents) | 2026-02-08
    • test_difflib
  • [1/5 deps] pprint (4 dependents) | 2026-02-06
    • test_pprint
  • [1/4 deps] queue (4 dependents) | 2026-02-04
    • test_queue
  • [1/2 deps] shlex (4 dependents) | 2026-02-02
    • test_shlex (4 TODO)
  • [1/7 deps] pkgutil (4 dependents) | 2026-01-04 Δ57
    • test_pkgutil (1 TODO)
  • [1/7 deps] gettext (3 dependents) | 2026-01-30
    • test_gettext (7 TODO)
  • [1/6 deps] configparser (2 dependents) | 2026-02-07
    • test_configparser
  • [1/3 deps] secrets (1 dependents) | 2025-07-17
    • test_secrets
  • [1/4 deps] ftplib (1 dependents) | 2026-02-02
    • test_ftplib (4 TODO)
  • [1/3 deps] tabnanny (1 dependents) | 2026-02-02
    • test_tabnanny (5 TODO)
  • [1/4 deps] tracemalloc (1 dependents)
    • test_tracemalloc (untracked)
  • [1/5 deps] profile (1 dependents)
    • test_profile (untracked)
    • test_cprofile (untracked)
  • [1/8 deps] smtplib (1 dependents) | 2025-12-19 Δ11
    • test_smtplib
    • test_smtpnet
  • [1/2 deps] antigravity | 2023-02-28
  • [1/6 deps] pickletools | 2026-02-06
  • [1/3 deps] shelve | 2026-01-01
    • test_shelve
  • [1/4 deps] poplib
    • test_poplib (untracked)
  • [1/3 deps] sched | 2025-04-21
    • test_sched
  • [1/4 deps] wave | 2026-02-13
    • test_wave
  • [1/9 deps] compileall | 2026-02-25
    • test_compileall (2 TODO)
  • [1/9 deps] mailbox | 2026-02-14
    • test_mailbox
  • [1/10 deps] xml | 2026-02-27
    • test_xml_etree (61 TODO)
    • test_xml_etree_c
    • test_minidom (25 TODO)
    • test_pulldom (4 TODO)
    • test_pyexpat (29 TODO)
    • test_sax (39 TODO)
    • test_xml_dom_minicompat
    • test_xml_dom_xmlbuilder
  • [2/18 deps] inspect (19 dependents) | 2026-02-07
    • test_inspect (46 TODO)
  • [2/12 deps] sysconfig (6 dependents) | 2025-10-22 Δ265
    • test_sysconfig (8 TODO)
    • test__osx_support
  • [2/9 deps] ctypes (6 dependents) | 2026-02-18
    • test_ctypes (11 TODO)
    • test_stable_abi_ctypes
  • [2/5 deps] dis (5 dependents) | 2026-01-26
    • test_dis (42 TODO)
  • [2/12 deps] platform (5 dependents) | 2026-01-04 Δ124
    • test_platform
  • [2/6 deps] decimal (3 dependents) | 2026-01-30
    • test_decimal (1 TODO)
  • [2/17 deps] email (3 dependents) | 2026-01-17 Δ238
    • test_email (12 TODO)
  • [2/9 deps] tkinter (2 dependents) | 2025-04-06 Δ279
    • test_tkinter (untracked)
    • test_ttk (untracked)
    • test_ttk_textonly (untracked)
    • test_tcl (untracked)
    • test_idle (untracked)
  • [2/10 deps] uuid (1 dependents) | 2026-02-02
    • test_uuid
  • [2/8 deps] statistics (1 dependents) | 2026-02-11
    • test_statistics (1 TODO)
  • [2/9 deps] ensurepip | 2026-01-17
    • test_ensurepip
  • [2/8 deps] venv | 2026-01-17 Δ29
    • test_venv (4 TODO)
  • [2/12 deps] imaplib | 2026-02-01
    • test_imaplib (1 TODO)
  • [2/6 deps] cProfile
  • [2/12 deps] turtle
    • test_turtle (untracked)
  • [2/10 deps] wsgiref | 2026-01-03 Δ7
    • test_wsgiref (1 TODO)
  • [2/24 deps] http | 2026-02-27
    • test_httplib (2 TODO)
    • test_http_cookiejar
    • test_http_cookies
    • test_httpservers (1 TODO)
  • [3/14 deps] doctest (1 dependents) | 2026-02-11
    • test_doctest (9 TODO)
  • [3/12 deps] trace (1 dependents) | 2025-07-25 Δ15
    • test_trace (14 TODO)
  • [3/13 deps] zoneinfo | 2025-09-07 Δ24
    • test_zoneinfo (3 TODO)
  • [4/21 deps] logging (7 dependents) | 2025-07-20 Δ77
    • test_logging (5 TODO)
  • [4/23 deps] unittest (2 dependents) | 2026-01-18 Δ102
    • test_unittest (15 TODO)
  • [4/20 deps] urllib (1 dependents) | 2026-02-13
    • test_urllib
    • test_urllib2
    • test_urllib2_localnet
    • test_urllib2net
    • test_urllibnet
    • test_urlparse
    • test_urllib_response
    • test_robotparser
  • [4/11 deps] concurrent | 2026-01-09 Δ1012
    • test_concurrent_futures (18 TODO)
    • test_interpreters (untracked)
    • test__interpreters (untracked)
    • test__interpchannels (untracked)
    • test_crossinterp (untracked)
  • [5/23 deps] importlib (7 dependents) | 2026-02-05
    • test_importlib (16 TODO)
  • [5/29 deps] multiprocessing (2 dependents) | 2026-02-04 Δ314
    • test_multiprocessing_fork (35 TODO)
    • test_multiprocessing_forkserver (10 TODO)
    • test_multiprocessing_spawn (13 TODO)
    • test_multiprocessing_main_handling
  • [5/35 deps] pdb (1 dependents) | 2026-02-11 Δ2601
    • test_pdb (untracked)
  • [6/20 deps] pydoc (4 dependents) | 2026-02-13
    • test_pydoc (36 TODO)
  • [6/32 deps] asyncio (2 dependents) | 2026-02-02 Δ26
    • test_asyncio (38 TODO)
  • [7/35 deps] _pyrepl | 2025-04-11 Δ2534
  • [10/43 deps] idlelib

Standalone Tests

  • test_atexit (1 TODO)
    • _test_atexit (7 TODO)
  • test_eintr
    • _test_eintr (6 TODO)
  • _test_embed_structseq (untracked)
  • _test_gc_fast_cycles (untracked)
  • _test_monitoring_shutdown (untracked)
  • _test_multiprocessing (15 TODO)
  • _test_venv_multiprocessing
  • test___all__
  • test_android
  • test_apple
  • test_array (55 TODO)
  • test_asdl_parser (untracked)
  • test_asyncgen (4 TODO)
  • test_audit
  • test_augassign
  • test_exceptions (25 TODO)
    • test_baseexception
    • test_except_star (1 TODO)
    • test_exception_group (3 TODO)
    • test_exception_hierarchy (2 TODO)
    • test_exception_variations
  • test_bigaddrspace
  • test_bigmem (4 TODO)
  • test_binascii (1 TODO)
  • test_binop
  • test_bool
  • test_buffer (11 TODO)
  • test_build_details (untracked)
  • test_builtin (25 TODO)
  • test_bytes (17 TODO)
  • test_c_locale_coercion
  • test_call (1 TODO)
  • test_capi (untracked)
  • test_cext (untracked)
  • test_class (15 TODO)
    • test_genericclass
    • test_subclassinit
  • test_clinic (untracked)
  • test_cmath
  • test_cmd_line (24 TODO)
  • test_cmd_line_script (15 TODO)
  • test_compare
  • test_compile (31 TODO)
    • test_compiler_assemble
    • test_compiler_codegen
    • test_peepholer (31 TODO)
  • test_complex (2 TODO)
  • test_contains (1 TODO)
  • test_context (6 TODO)
  • test_coroutines (19 TODO)
  • test_cppext (untracked)
  • test_decorators (1 TODO)
  • test_descr (47 TODO)
    • test_descrtut (3 TODO)
  • test_devpoll
  • test_dict (6 TODO)
    • test_dictcomps (1 TODO)
    • test_dictviews (2 TODO)
    • test_userdict
  • test_dtrace (8 TODO)
  • test_dynamic (1 TODO)
  • test_dynamicclassattribute
  • test_embed (untracked)
  • test_enumerate
  • test_eof (6 TODO)
  • test_epoll
  • test_errno
  • test_extcall (8 TODO)
  • test_external_inspection (untracked)
  • test_faulthandler (4 TODO)
  • test_fcntl
    • test_ioctl
  • test_file
    • test_largefile
  • test_file_eintr (1 TODO)
  • test_fileutils (untracked)
  • test_finalization (untracked)
  • test_float (6 TODO)
    • test_strtod (6 TODO)
  • test_flufl (4 TODO)
  • test_fork1 (1 TODO)
  • test_format (5 TODO)
  • test_frame (untracked)
  • test_free_threading (untracked)
  • test_frozen
  • test_str (16 TODO)
    • test_fstring (19 TODO)
    • test_string_literals (5 TODO)
  • test_funcattrs (6 TODO)
  • test_gc
  • test_gdb (untracked)
  • test_generated_cases (untracked)
  • test_generators (12 TODO)
    • test_genexps (untracked)
    • test_generator_stop (untracked)
    • test_yield_from (6 TODO)
  • test_getpath (untracked)
  • test_global (3 TODO)
  • test_grammar (18 TODO)
  • test_grp
  • test_hash (4 TODO)
  • test_import (3 TODO)
  • test_index
  • test_int (7 TODO)
    • test_long (4 TODO)
    • test_int_literal
  • test_isinstance
  • test_iter (1 TODO)
  • test_iterlen
  • test_itertools (6 TODO)
  • test_keywordonlyarg
  • test_kqueue
  • test_launcher
  • test_list (5 TODO)
    • test_listcomps (1 TODO)
    • test_userlist (1 TODO)
  • test_lltrace (untracked)
  • test_longexp
  • test_marshal (21 TODO)
  • test_math
    • test_math_property
  • test_memoryview (9 TODO)
  • test_metaclass (10 TODO)
  • test_mmap (2 TODO)
  • test_module (4 TODO)
  • test_monitoring (13 TODO)
  • test_msvcrt
  • test_named_expressions (12 TODO)
  • test_numeric_tower
  • test_opcache
  • test_openpty
  • test_optimizer (untracked)
  • test_osx_env
  • test_patma (20 TODO)
  • test_peg_generator (untracked)
  • test_pep646_syntax (12 TODO)
  • test_perf_profiler (untracked)
  • test_perfmaps (untracked)
  • test_pkg
  • test_select (3 TODO)
    • test_poll (1 TODO)
  • test_positional_only_arg (4 TODO)
  • test_posix (4 TODO)
  • test_pow
  • test_print (6 TODO)
  • test_property
  • test_pwd
  • test_pyrepl (untracked)
    • test_repl
  • test_raise
  • test_range (1 TODO)
  • test_readline (untracked)
  • test_regrtest (10 TODO)
  • test_remote_pdb (untracked)
  • test_resource (2 TODO)
  • test_richcmp
  • test_scope (1 TODO)
  • test_support (3 TODO)
    • test_script_helper
  • test_set (5 TODO)
  • test_setcomps
  • test_slice (1 TODO)
  • test_sort (2 TODO)
  • test_source_encoding (untracked)
  • test_startfile (untracked)
  • test_time
    • test_strftime
  • test_structseq
  • test_sundry
  • test_super (4 TODO)
  • test_syntax (25 TODO)
  • test_sys (8 TODO)
    • test_syslog (2 TODO)
    • test_sys_setprofile (14 TODO)
    • test_sys_settrace (52 TODO)
  • test_termios (15 TODO)
  • test_thread
    • test_thread_local_bytecode (untracked)
    • test_threadsignals
  • test_timeout
  • test_tools
  • test_tstring (4 TODO)
  • test_tuple (1 TODO)
  • test_type_cache (untracked)
  • test_typechecks
  • test_unicodedata (9 TODO)
    • test_unicode_file
    • test_unicode_file_functions
    • test_unicode_identifiers (1 TODO)
    • test_ucn (3 TODO)
  • test_unary
  • test_univnewlines
  • test_unpack (1 TODO)
    • test_unpack_ex (11 TODO)
  • test_utf8_mode (6 TODO)
  • test_utf8source (2 TODO)
  • test_wait3
  • test_wait4
  • test_winapi
  • test_winconsoleio
  • test_winreg
  • test_winsound
  • test_with (1 TODO)
  • test_wmi
  • test_xpickle (untracked)
  • test_xxlimited (untracked)
  • test_xxtestfuzz (untracked)
  • test_zlib (2 TODO)
  • test_zstd

Untracked Files

  • site-packages/README.txt

Original Files

  • PSF-LICENSE
  • README.md
  • _dummy_os.py
  • _dummy_thread.py
  • _pycodecs.py
  • dummy_threading.py

Summary by CodeRabbit

  • New Features

    • Extended test detection to recognize more naming patterns beyond conventional prefixes
    • Improved library-to-test mapping for non-standard test module naming conventions
  • Refactoring

    • Optimized internal utilities and updated type annotations for enhanced code clarity

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 28, 2026

📝 Walkthrough

Walkthrough

This PR refactors test discovery and dependency resolution in the library update scripts. Changes include broadening test name matching patterns, updating type annotations to return frozensets, simplifying string manipulation using removeprefix/removesuffix, and expanding heuristics for deriving library names from test names.

Changes

Cohort / File(s) Summary
Test Discovery Enhancement
scripts/update_lib/cmd_todo.py
Broadened get_all_tests filtering to match any item containing "test" (not just prefix-based). Enhanced compute_test_todo_list suffix-stripping logic to handle additional patterns like "datetimetester" → "datetime" and "xmltests" → "xml" for improved test-to-library name mapping.
Dependency Resolution Refactoring
scripts/update_lib/deps.py
Updated type annotations for parse_test_imports and parse_lib_imports to return frozenset[str]. Refactored helper functions using removeprefix and removesuffix for cleaner string manipulation. Simplified ImportVisitor.lib_imports to single-line expression. Minor reordering of codecs-related test dependency entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

skip:ci

Suggested reviewers

  • moreal
  • youknowone

Poem

🐰 A bundle of tests now dances with grace,
With broader patterns they find their place,
Frozensets gleam, prefixes fade,
Dependencies mapped, the heuristics remade!
Scripts spring to life, cleaner and bright! ✨

🚥 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 'More accurate test dependencies' directly describes the main changes in both modified files, which focus on improving test dependency tracking and extraction logic.
Docstring Coverage ✅ Passed Docstring coverage is 81.82% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@ShaharNaveh ShaharNaveh marked this pull request as ready for review February 28, 2026 11:40
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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
scripts/update_lib/deps.py (1)

119-136: ⚠️ Potential issue | 🔴 Critical

frozenset return type breaks .discard() calls on result; causes AttributeError at runtime.

parse_lib_imports() and parse_test_imports() are annotated to return frozenset[str], but callers immediately call .discard() on the returned object (lines 1425, 1437). Since frozenset does not have a .discard() method, this raises AttributeError when parsing succeeds.

Additionally, the early-return statements (lines 132, 122) return set() instead of frozenset(), creating a type mismatch with the declared return type.

Fix: (1) Change early returns to frozenset(), (2) wrap parse_lib_imports() calls with set() at call sites that mutate the result:

imports = set(parse_lib_imports(content))
imports.discard(entry.stem)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@scripts/update_lib/deps.py` around lines 119 - 136, parse_lib_imports and
parse_test_imports are annotated to return frozenset but currently return
mutable set() on the early path and callers call .discard() on the result,
causing AttributeError; fix by making the functions consistently return
frozenset on the early-return path (replace set() with frozenset()) and do not
change the return type at the function level, and update call sites that need to
mutate the result (places that call .discard() on
parse_lib_imports/parse_test_imports results) to wrap the returned frozenset in
set(...) before mutating (e.g., imports = set(parse_lib_imports(content))); keep
references to ImportVisitor, parse_lib_imports, and parse_test_imports so you
can locate the code to change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@scripts/update_lib/deps.py`:
- Around line 119-136: parse_lib_imports and parse_test_imports are annotated to
return frozenset but currently return mutable set() on the early path and
callers call .discard() on the result, causing AttributeError; fix by making the
functions consistently return frozenset on the early-return path (replace set()
with frozenset()) and do not change the return type at the function level, and
update call sites that need to mutate the result (places that call .discard() on
parse_lib_imports/parse_test_imports results) to wrap the returned frozenset in
set(...) before mutating (e.g., imports = set(parse_lib_imports(content))); keep
references to ImportVisitor, parse_lib_imports, and parse_test_imports so you
can locate the code to change.

ℹ️ Review info

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5c726e1 and 1e77e9f.

📒 Files selected for processing (2)
  • scripts/update_lib/cmd_todo.py
  • scripts/update_lib/deps.py

@youknowone youknowone merged commit f3cf86c into RustPython:main Feb 28, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

X Tutup