* Align collections and testing libraries with Python 3.15
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 #9189 regex/dataclasses/typing prerequisite; this dependency avoids eager typing.ByteString deprecation during unittest warning tests.
Assisted-by: OpenAI Codex: model version unavailable
* Synchronize regression runner with doctest subtest reporting
Refresh the canonical test_regrtest consumer and its direct runner/pythoninfo closure through scripts/update_lib at CPython d220409a13b77de7a6c30abe16ea90db01528edc. Preserve both existing expected-failure markers. This aligns the runner test with doctest reporting two failed examples and one skipped example.
Assisted-by: OpenAI Codex: model version unavailable
* Honor close unraisable and deallocator messages
A failed close lookup on a yield-from target is unraisable.
Ignored GeneratorExit from finalize gets a traceback and the
closing-generator err_msg. __del__ uses the deallocator message.
Assisted-by: Grok:grok-4.6
* address review: claim, ag_running, frame steal
Keep the running claim through close() cleanup. ag_running
reads running_async. aclose ignore-yield does not mark the
generator closed. Steal the frame slot before uniqueness
and expose it with try_to_owned.
Assisted-by: Grok:grok-4.6
* Honor wrapper docs, yield assign, throw context
method-wrapper exposes the slot __doc__. Parenthesized yield
assignment uses the invalid-target messages. throw() restores
without overwriting __context__, then chains only from the
generator's own exc_info slot.
Assisted-by: Grok:grok-4.6
* Remove passing expectedFailure markers
method-wrapper docs, deallocator messages, and help pager
output now match, so drop the leftover markers.
Assisted-by: Grok:grok-4.6
* Honor wrapper signatures and assignment diagnostics
Slot docs include text signatures. method-wrapper compares and
hashes by identity. Keyword genexp and if/while assignment use
the invalid-target messages.
Assisted-by: Grok:grok-4.6
* address review: aclose, unraisable, frame publish
aclose ignore-yield does not close the generator. Format
unraisable object is None. close() leaves traceback to the
caller; finalize attaches the generator frame. Publish the
iframe before the lock-free slot.
Assisted-by: Grok:grok-4.6
* Honor member descriptors and wrapper annotations
Assisted-by: Grok:grok-4.6
* address review: getitem, bool doc, if assign
Assisted-by: Grok:grok-4.6
* Honor eval-mode assignment invalid syntax
Assisted-by: Grok:grok-4.6
* Supply getset and member docs from rustpython-doc
Assisted-by: Grok:grok-4.6
* Enable rustls SSL on WASI targets
Compile the rustls _ssl module for WASI and stub
socket waits plus the native certificate store.
Assisted-by: Grok:grok-4.6
* Add browser TLS _ssl in rustpython-wasm
Register rustls _ssl and a MemoryBIO-oriented _socket
from rustpython-wasm. Use rustls-rustcrypto because
ring cannot compile for wasm32-unknown-unknown.
Assisted-by: Grok:grok-4.6
* Define SSL protocol and cert constants as enums
Keep OpenSSL bitmask defines as integer constants.
Assisted-by: Grok:grok-4.6
* Ignore rustls deps cargo-shear cannot see
The rustpython-wasm _ssl sources are compiled through
a symlink, so shear does not count their crate uses.
Assisted-by: Grok:grok-4.6
* Replace wasm ssl symlink with a BIO module
Drop the stdlib ssl.rs link and keep a rustpython-wasm
_ssl that only covers MemoryBIO wrap_bio TLS.
Assisted-by: Grok:grok-4.6
* Update codeop from v3.14.3
* Fix traceback, syntax errors, and exception handling
- Improve unclosed bracket detection with "'(' was never closed" message
- Fix IndentationError location to point to end of line
- Implement frame.clear() with proper checks for executing/suspended frames
- Fix exception context chaining for propagated exceptions
- Add traceback.__dir__() and prevent tb_next deletion
- Fix subscript operation source range restoration in compiler
- Change "duplicate parameter" to "duplicate argument" error message
- Refactor duplicate code in asyncgenerator.rs and frame.rs
---------
Co-authored-by: CPython Developers <>
Assisted-by: Codex:gpt-6
This patch does not cover all cases of `test_contextlib.py`
`bytecode::Instruction::SetupWith` and `BeforeAsyncWith`
raise a TypeError instead of an AttributeError.
Co-authored-by: Jeong YunWon <69878+youknowone@users.noreply.github.com>