Repository navigation
Align collections and testing libraries with Python 3.15 - #9192
youknowdot wants to merge 1 commit into
Conversation
Refresh twelve production modules and canonical tests through scripts/update_lib at CPython d220409a13b77de7a6c30abe16ea90db01528edc. Preserve existing RustPython unittest helpers and test guards. Accept frozendict in native defaultdict and OrderedDict union slots, matching upstream PyAnyDict_Check without changing constructors, factories, or update order. Validated as a local stack on the exact RustPython#9189 regex/dataclasses/typing prerequisite; this dependency avoids eager typing.ByteString deprecation during unittest warning tests. Assisted-by: OpenAI Codex: model version unavailable
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. Comment |
📦 Library DependenciesThe following Lib/ modules were modified. Here are their dependencies: :4: SyntaxWarning: invalid decimal literal dependencies:
dependent tests: (402 tests)
[x] lib: cpython/Lib/collections dependencies:
dependent tests: (344 tests)
[x] lib: cpython/Lib/difflib.py dependencies:
dependent tests: (247 tests)
[x] lib: cpython/Lib/contextlib.py dependencies:
dependent tests: (82 tests)
[x] lib: cpython/Lib/doctest.py dependencies:
dependent tests: (36 tests)
Legend:
|
Summary
Split the connected collections/testing-library update out of #8954, following the landed #9189 dependency.
_collections_abc,collections,contextlib,difflib,doctest, and seven connectedunittestfiles from CPython 3.15.0d220409a13b77de7a6c30abe16ea90db01528edc.unittest.__init__helpers and existing test markers; unchanged unittest siblings already match the pin.frozendictin defaultdict/OrderedDict union operand checks through the existingPyAnyDictabstraction, matching CPython'sdefdict_or/odict_or. Factory retention, constructors, subclass construction and update order are unchanged.This is 28 files: 12 production Python files (11 substantive modules plus the runner lazy-import companion), 13 Python test files, one fixture and two Rust files. Python updates use
scripts/update_lib; its_copy_singlefunction selects exact production files because the CLI expands Python submodule paths to entire packages. Tests use the updater's migration path. No manual Lib edits, new skips, duplicate snippets or CI workflows. The removed doctest checker injection was inactive: the old file contained no EXPECTED_FAILURE options, and its checker otherwise delegated unchanged.The dependency order is
_collections_abc→collections→contextlib/difflib→unittest.util→case/_log→suite→loader→main→doctest, with the runner companion included. #9189 supplies the matching lazy ByteString handling in typing; without it, the old eager alias emits an extra warning in unittest's subprocess test.Validation
Candidate
e3d65138is based on maine7e3dfd6. Its 28-file patch is byte-identical to the previously validated39d9e5a8; all 47 files changed by intervening main merges are disjoint and retained. Earlier results remain attributed to the earlier base. Fresh current-base checks:-D warnings.Source/dependency/toolchain and protected-worktree audits passed. unittest/doctest
-Esubprocesses generated 85/135 bytecode-cache files; the raw full-tree audits correctly reported those additions. Only hash-verified new caches were quarantined, then separate clean audits passed. Workspace/CAPI tests similarly generated 52/7 caches, with preserved raw statuses and separate clean post-quarantine audits. Raw logs and statuses are retained.Local coverage boundaries
Local unittest coverage externally excludes
test.test_unittest.test_async_case.*andtest.test_unittest.testmock.testasync.*; re excludes*ReTests.test_regression_gh94675, under the existing local socket boundary. These are selected-suite passes, not unfiltered passes. No test-source skip was added. Standard hosted CI complements these omissions.test_contextlib_asyncdirectly steps coroutines without creating an event loop. Default test resources remain in effect.AI assistance
This is maintainer-requested Python 3.15 maintenance work. OpenAI Codex assisted with dependency analysis, canonical updater execution, the two native operand checks, automated test execution and this description. The model version is unavailable. Commits include the Assisted-by trailer. The validation above describes automated checks, not a claim of additional manual human testing.