You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs(conventions): Method._missing_ folds case against RFC 9110 §9.1, and registry-protocol.rst records neither the fold nor the get/constructor split #2552
From the 2026-11-01 conventions audit, re-verified on 73add05a3. registry-protocol.rst, "RFC-Directed Case Sensitivity": a case fold has to cite the RFC or IANA registry that makes the values case-insensitive, else it is a defect. The Method row says get does not fold (#896); the note on a fold outside any get names only esp._resolve.
Method._missing_ in pcapkit/const/http/method.py upper-cases value and matches member names, then values: Method('get') is Method.GET, while Method.get('get') returns an unregistered member named GET with value 'get'. RFC 9110 §9.1 makes the method token case-sensitive.
Stale wording on the same page: Method.get "catches it in order to mint". It returns _unregistered_member(...), which grows neither lookup table, and mint-criterion.rst defines minting as extend_enum.
Probe: git show origin/main:pcapkit/const/http/method.py | grep -n "value.upper()".
Decision needed: does the constructor fold stay?
Keep it: record the get/constructor split on the page with its basis, and correct the docstring's attribution.
Blocked: this edits registry-protocol.rst, which #2521 also edits, so it unblocks when #2521 merges. It then joins #2551, #2553, #2556 and #2565 in one worker.
Unblocked: #2521 merged, so registry-protocol.rst is free. Dispatched together with the page's other queued fixes (#2551, #2552, #2553, #2556, #2565) as one worker and one PR.
Activity
JarryShaw commentedon Nov 1, 2026
Take 1. I remember Method should be case-insensitive. And we have to replace dashes with underscores for Python's naming conventions.
JarryShaw commentedon Nov 1, 2026
Owner chose 1, paraphrased:
Method's constructor fold stays.Method('baseline-control')isBASELINE_CONTROL, per fix(const): Method('baseline-control') mints an unregistered member, not BASELINE_CONTROL #2284 and fix(const): find hyphenated HTTP methods by value in Method._missing_ (#2284) #2351).Blocked: this edits registry-protocol.rst, which #2521 also edits, so it unblocks when #2521 merges. It then joins #2551, #2553, #2556 and #2565 in one worker.
JarryShaw commentedon Nov 1, 2026
Unblocked: #2521 merged, so registry-protocol.rst is free. Dispatched together with the page's other queued fixes (#2551, #2552, #2553, #2556, #2565) as one worker and one PR.