Skip to content

October PR sweep for 26.3.0 - #609

Merged
mahmoud merged 21 commits into
masterfrom
pr-sweep-oct26
Oct 25, 2026
Merged

mahmoud merged 21 commits into
masterfrom
pr-sweep-oct26

Conversation

@mahmoud

@mahmoud mahmoud commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

October PR sweep for 26.3.0: re-implements 94 fixes from #484–#604 (including folded author-closed #507, #514, #518, #528, #571, #580) in one commit per module, plus a CHANGELOG 26.3.0 section. The source PRs will be closed with a pointer here after this lands; this list is the credit record.

New API (minor bump): iterutils.chunked_filter (#491), isoparse timezone suffixes (#594), wraps(expected=[(name, default, kwonly)]) (#522), BarrelList.sort(key, reverse) (#550), BarrelList.index(start, stop) (#592).

Behavior changes: cached() now honors its documented scoped=True default, so functions sharing one cache no longer read each other's entries (#498); bytes2human picks the unit after rounding, so 1048575 renders as 1M (#525); parse_timedelta raises on non-empty unparseable text (#548).

Not folded: #486, #515, #521, #533, #547, #564, #578, #582, #583, #587, #595, #597, #603 (#514 is folded with #549) (reasons in each PR's close comment).

Changes

Verification

  • Full local suite including doctests: 771 passed on CPython 3.14.7 and 3.9, 770 + 1 skip on 3.8 (baseline 678). No local 3.7; every module and test file parses with ast.parse(..., feature_version=(3, 7)), and posonly test functions are built via exec with a 3.8 skip, like the existing ones.
  • Every module still imports standalone (the docs conf.py imports them that way), and the Sphinx build succeeds with only pre-existing warnings.
  • Every commit on the branch passes the full suite on its own (checked in a scratch worktree).
  • Each new regression test fails against master (4e5faa3) and passes here; tests that were pinning buggy behavior (test_unscoped_cached_dec, the bytes2human 1024.0K case, the namedtuple remap TODO) were updated.
  • Ran the plan's behavior checks (pickle/copy/compare on BarrelList, IndexedSet/complement identities over a small universe, OMD/QueryParamDict mirrors, cache scoping, SpooledStringIO positions, reverse_iter_lines on bytes and text, isoparse offsets, URL navigation, remap namedtuples, and more): all hold.
  • uv build --sdist now includes docs/.

…ate, support metaclasses, fix suppressed raise (#560, #559, #505, #584)
…tail, z plurals, multi-member gunzip, MultiReplace flags, bytes2human (#492, #501, #571, #586, #576, #567, #508, #525)
…d keep IPv6 in navigate, reclassify re-registered schemes (#499, #588, #589, #489, #574)
…ize, falsey keys, key-once untyped_sorted, negative maxsplit, fractional backoff; add chunked_filter (#585, #569, #563, #554, #552, #502, #496, #491)
…micSaver cleanup, root-home shrinkuser, non-identifier names; include docs in sdist (#484, #518, #485, #539, #504, #573, #557)
Workstream-Session-Id: 01a1743e-7af6-7000-999f-e3695b3279ef
Workstream-Plan-Id: 2026-10-25-7167a83d96
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