Repository navigation
Derive the two name-clash markers from name readings (#752) - #883
Merged
Merged
Conversation
Phase 2a. SUFFIX_ACRONYMS_AMBIGUOUS is now the words with an acronym suffix reading and a given or family reading, and the particles outside NON_GIVEN_NAME_PARTICLES the words with a particle reading and a given reading, wherever in the files the readings sit (build check 11). The 44 flagged words that lacked one get a name reading, 49 in all, with counts from tools/name_usage.py (2026-10-25); eight particles that no source counts carry a required note instead. ld's given count moves into its credential note, so it stays unmarked. The build refuses may_be_name and may_be_given = true, naming the reading to write, and still requires may_be_given = false on a particle whose word has no given reading. may_be_initial stays a property. No compiled set moves: _compiled.py rebuilds byte for byte, and the snapshot, every agreement record, the ctgov, fec and tse local snapshots and psc-individuals' agreement all match. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ved-markers-b6b331 # Conflicts: # docs/design/decisions/vocabulary-model.md # docs/design/vocabulary-model-rfc.md
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #883 +/- ##
=======================================
Coverage 99.07% 99.07%
=======================================
Files 47 47
Lines 4781 4781
=======================================
Hits 4737 4737
Misses 44 44 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 2a of #752: the two vocabulary markers that record a clash with a name are now derived from name readings instead of written as flags. No compiled set moves:
nameparser/config/_compiled.pyrebuilds byte for byte.What changes
tools/vocab/build.py, new build check 11):SUFFIX_ACRONYMS_AMBIGUOUSis now the words with an acronym suffix reading and agivenorfamilyreading.NON_GIVEN_NAME_PARTICLESare the words with a particle reading and agivenreading.tools/name_usage.pytaken 2026-10-25: the seven flagged credentials that lacked one (ba,do,ed,jd,lac,ma,meng) and the 38 flagged particles other thanbonanddí(dois in both lists). The flags came off 97 readings.notesaying why. Eight particles have no count in any source (aen,bat,binte,freiherr,freiherrin,thoe,ua,vande).ldstays unmarked. Its given count moved into its credential reading's note, soldstays unmarked. Writing it as a given reading would markld: measured on this branch, that moves 3 ctgov and 5 FEC names (no PSC record writes it).may_be_name(either value) andmay_be_given = true, and the message names the reading to write instead. A particle whose word has no given reading must still statemay_be_given = false, and writingfalsebeside a given reading is refused. Check 9 now asks for a given reading.may_be_initialstays a property on the connective reading. It is not derived.Neutrality, measured against 632685c
The branch is merged with master at b581482 (2.6.0 and #881). Master's code changes since 632685c are docstrings only, and
_compiled.pystill equals master's, so these hold on the merged tree; the suite and the committed snapshot were re-run on it.build.py --check: current, and_compiled.pyis unchanged in the diff.snapshot.py: matches.cldr_agreement.py: all seven records match (CLDR, GND, Wikidata, conventions, Wikidata native, both locale views).snapshot.py --local, with the baselines recorded from a master checkout with--tree: ctgov-officials, fec-individuals and tse-donors all match.local_agreement.py psc-individuals: matches the record.build.py, and the rows the old check already refused still pass there.Docs
nameparser/vocab/README.md: a Derived markers section,may_be_givenas a "stated" property, count-less name readings, and the adding-a-word step.decisions/vocabulary-model: a dated 2026-10-25 entry recording how 2a carried out the design entry, and its Standing lines. The Describe each word by its readings: per-word TOML vocabulary compiled to today's sets (phase 1) #737 and Classify the particles in und.toml by language and kind #749 entries are marked superseded in part.decisions/ma-doanddecisions/vocabulary-exclusions(Standing and reference lines), a correction indecisions/C8(puttingsa's credential back now marks it), and the RFC'sdoexample, phase 1 flags line and phase table.Checks
uv run pytest,-n0 -m serial,--python 3.15sphinx-build -b doctest🤖 Generated with Claude Code