◐ Shell
clean mode source ↗

bpo-28556: Various updates to typing (#28) by Mariatta · Pull Request #78 · python/cpython

 various updates from upstream python/typing repo:

- Added typing.Counter and typing.ChainMap generics
- More flexible typing.NamedTuple
- Improved generic ABC caching
- More tests
- Bugfixes
- Other updates

* Add Misc/NEWS entry

* Add issue number

(cherry picked from commit b692dc8)

gvanrossum

akruis pushed a commit to akruis/cpython that referenced this pull request

Sep 9, 2017

@ghost ghost mentioned this pull request

Sep 24, 2017

jaraco pushed a commit that referenced this pull request

Dec 2, 2022

jaraco added a commit to jaraco/cpython that referenced this pull request

Feb 17, 2023

oraluben pushed a commit to oraluben/cpython that referenced this pull request

Jul 24, 2023

lysnikolaou referenced this pull request in lysnikolaou/cpython

May 4, 2024
…racters

Various fixes to handle wide characters correctly

This was referenced

Feb 11, 2025

SonicField added a commit to SonicField/cpython that referenced this pull request

Apr 22, 2026
Per pythia python#78 python#2 [chat L1986] orphan-bridge risk + supervisor [chat L1990]
authorization (option b) + theologian [chat L1991] volunteer + landing.

Adds a 5-line comment block above the bridge function that names the
PartialConversion artifact origin + the trigger condition for
reabsorbing the bridge into a full emitAnyCall C body.

Comment text:
  PARTIAL CONVERSION ARTIFACT — emitAnyCall await-tail extracted while
  emitAnyCall opcode-switch + 3 INVOKE_* sub-methods (emitInvokeFunction,
  emitInvokeNative, emitInvokeMethod) remain C++. REABSORB WHEN: Tier 6
  INVOKE_* family fully converts to C; then emitAnyCall fully converts and
  this bridge can inline back into the full C body.

Addresses pythia python#78 python#2 'orphan-bridge if Tier 6 INVOKE_* defers' concern
by anchoring the reabsorb-trigger in source (not just chat history),
ensuring future readers can locate the architectural decision context
without scrollback.

Authorship: theologian (volunteered + drafted); generalist (committed
per role boundary — theologian = design/advisory, generalist = commits).

Authorization chain:
  - pythia python#78 python#2 surfaced bridge orphan-risk: chat L1986
  - supervisor authorized option (b) source-comment: chat L1990
  - theologian volunteered + drafted comment: chat L1991, L1995

SonicField added a commit to SonicField/cpython that referenced this pull request

Apr 22, 2026
Per pythia python#79 python#3 [chat L2032] + supervisor [chat L2034] assignment:
the brace-counted scan methodology that produced 100/123 = 81.3%
Tier 5 close ratio existed only in chat history (D-1776880902). Anyone
re-grepping in two weeks reproduces the same /144-class lapse.

This script anchors the methodology in repo:
  - Brace-balanced extraction of HIRBuilder::emit* method definitions
    (multi-line signatures + any return type + balanced { } body)
  - Categorization: stub (≤8 body lines + has hir_builder_emit_*_c call) /
    partial (>8 body lines + has C call) / pure C++ (no C call)
  - Output: counts + exhaustive pure-C++ + partial method lists

Reference values verified at HEAD a642405 (post-Tier-5-close, push 62):
  TOTAL: 123
  STUBS: 93
  PARTIAL: 7
  PURE C++: 23
  RATIO: 100/123 = 81.3%

Closes pythia python#79 python#3 'methodology not committed to repo' substance.
Anyone running scripts/count_emit_methods.sh reproduces the canonical
baseline without needing chat-search or external memory.

Origin lessons embedded in script header:
  - /144 propagated 2026-04-21 (commit 7783df7) → 2026-04-22 Tier 5 close
  - Real denominator at HEAD a642405 was 123 (pythia python#78 python#1 catch)
  - Methodology lives in repo, not chat

Authorization chain:
  - pythia python#79 python#3 surfaced gap: chat L2032
  - supervisor python#3 assignment: chat L2034