* Take re pos/endpos as signed integers
Negative values clamp to 0, and values beyond Py_ssize_t raise
OverflowError.
Assisted-by: Claude Code:claude-opus-5-5
* Port the remaining runtime fixes from #7993
- bytearray: keep the buffer exported while converting the needle of
find/count/index/rfind/rindex/__contains__/split/rsplit and the hex
separator, so resizing from there raises BufferError
- str(): report non-str encoding/errors as "str() argument 'X' must be
str, not T", and check argument counts and name/position duplicates
for keyword calls
- _json.scanstring: take end as a signed integer and raise ValueError
when it is out of bounds
- lzma: reject filter specs with keys the filter does not take
- mmap: raise ValueError when growing a shared anonymous mapping on
Linux/NetBSD
- _sqlite3: check that the backup progress argument is callable
- Remove the expectedFailure markers of the tests these fix
Assisted-by: Claude Code:claude-opus-5-5
* Reject arguments given by name and position in FuncArgs::bind_for
bind_for reports a keyword that fills a parameter already given by
position before other binding errors, using the parameter list of the
FromArgs type. getargs shares the message, str() drops its own check,
and blake2b/blake2s name themselves in binding errors.
Assisted-by: Claude Code:claude-opus-5-5
---------
Co-authored-by: James David Clarke <james@jamesdavidclarke.com>
* Unskip passing flaky CPython tests
Remove RUSTPYTHON skip overlays after Linux release repeats passed
for enum, threading, logging, subprocess, socket, int, re, strtod,
and regrtest cases.
Assisted-by: Grok:4.6
* Fix fork-child SIGSEGV and yield-from throw args
Forget JoinHandle of threads that did not survive fork instead
of dropping them. Zero-reinit the import lock and condvars in
the child rather than unlock/notify. Resume the world if
os.fork() fails.
Call a yield-from subiterator throw() without None fillers so
a 1-arg throw stays 1-arg.
Drop the stale Windows expectedFailure on logging queue config
and unskip test_reinit_tls_after_fork plus the asyncio
local_addr family test.
Assisted-by: Grok:4.6
* Restore import lock depth after fork; add WASI clock info
Zeroing IMP_LOCK in the child discarded its recursion count, so
imp.release_lock() raised and test_fork1 exited 1. Re-acquire the
saved depth, then drop the extra pre-fork hold.
Expose time.get_clock_info on WASI via clock_getres so test_int
Stopwatch can run.
Unskip lock_tests test_acquire_contended and test_thread_leak.
Assisted-by: Grok:4.6
* Honor chmod follow_symlinks=False via fchmodat
Linux chmod followed the symlink, so dangling links raised
FileNotFoundError instead of NotImplementedError. Use fchmodat
with AT_SYMLINK_NOFOLLOW and map ENOTSUP to NotImplementedError.
Unskip httpservers truncated Content-Length (CPython already
skips as root) and tempfile symlink-mode cleanup on Linux.
Assisted-by: Grok:4.6
* Unskip httplib local bad-hostname HTTPS test
The skip was leftover. With default ssl-rustls the test passes
under -W error on Linux.
Assisted-by: Grok:4.6
* Fix list cmp deadlock, wasm digit overflow, REPL prompt
Do not hold list/deque locks across item comparison callbacks.
Compute int-to-str digit bounds in u64 so the check cannot wrap
on wasm32. Snapshot set contents when list.extend copies a set.
For a non-TTY stdin, write the REPL prompt to stderr and read
lines from stdin. Flush stdout/stderr after each interactive
command. Set sys.ps1/ps2 to ">>> " and "... ".
Unskip list mutation compares, asyncio all_tasks race, importlib
deadlock/parallel/circular-import tests, and REPL stdout flush.
Assisted-by: Grok:4.6
* Avoid unnecessary u64 cast in int-to-str digit check
bits() is already u64, so `bits as u64` fails clippy
unnecessary_cast under -Dwarnings.
Assisted-by: Grok:4.6
Changed type.rs to add notes to original exceptions instead of
wrapping them in RuntimeError, following PEP 678 (gh-77757).
This allows enum.py's exception handling to work correctly when
super().__new__() is misused in Enum subclasses, enabling the
proper TypeError to propagate instead of being hidden behind
a RuntimeError wrapper.
Fixes test_bad_new_super test case.
* Downgraded skips in tests
* Fixed failing tests
* Fixed test_ftplib + test_socket + test_ssl + test_threaded_import failures
* Removed comments about which tests are run in which environment
* Addressed PR comments
* Annotated skips on failing tests
* Removed unneeded tests
* Removed unneeded sys import from test_ftplib
* Added annotation to test_ftplib
* Readded skipIf to test_cleanup_with_symlink_modes with a more general ENV_POLLUTING_TESTS_WINDOWS
* Addressed PR comments
* Made changes to minimize diff in PR
* Apply suggestion from @youknowone
---------
Co-authored-by: Jeong, YunWon <69878+youknowone@users.noreply.github.com>
* bump to 3.13.1
* fix some tests
* strip left whitespace from doc
* remove specific difflib test that was causing issues
* fix test_enum
Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
At 'enum.py' 223 line, there is the code to check `member_type` contains
some methods. But it was fixed to find attribute from base types, in
https://github.com/RustPython/RustPython/pull/2932. So it seems
appeared.
```
if not any(m in member_type.__dict__ for m in methods):
```