Repository navigation
Add locales.NE, the first language pack: a choice of ne (3.0, 3d) - #955
Merged
Merged
Conversation
A choice of `ne` turns on `given` readings of श्री, guru and गुरु, written `default = false` in ne.toml, so each is a title only inside a title phrase (rules/H9): `Guru Prasad Sharma` reads given `Guru` under the pack, title `Guru` by default. The default's compile does not move; only the reading index gains the three rows. locales.NE is nothing but its choice and declares no DEVIATES: the registry contract in tests/v2/test_locales.py derives a vocabulary pack's surface from changed_words and refuses a hand-written one there. local_corpora.py alike takes --languages for the pair measure, and cldr_agreement.py scores NE on CLDR's ne file and Wikidata's ne-np stratum (unchanged, 15/24 and 10/10). Measured on nepal-candidates: 211 pairs now read alike, 4 now apart; the decisions entry records the moves, the CLDR hi/kok/mr cost and the open period-joined सु.श्री. case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d review) The gate ors the surface derived from a pack's languages into every pack's predicate, so a hand DEVIATES declares only what a fragment or a patch beside a choice changes. snapshot.py and alike --languages say they read the choice alone. The docs and the release bullet say ne's words are name words placed by position (family under a family-first order), the warning excepts a choice pack, and the decisions entry's open item records that period_joined_vocab moves both ways (सु.श्री. costs, श्री.राम gains). The guru note counts 43 names moved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…m (3d review 2) FAMILY_FIRST reads given राम, FAMILY_FIRST_GIVEN_LAST given थापा. A hand copy of a choice's words is no longer needed beside a patch, but nothing refuses one; a pure choice pack must not define DEVIATES at all (hasattr, so DEVIATES = None is refused too). The warning's aside no longer swallows "cannot tell whose name it is looking at". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73
added a commit
that referenced
this pull request
Oct 30, 2026
Squashed for the rebase onto #955: the pack commit and its two review rounds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73
added a commit
that referenced
this pull request
Oct 30, 2026
Squashed for the rebase onto #955: the pack commit and its two review rounds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73
added a commit
that referenced
this pull request
Oct 30, 2026
Squashed for the rebase onto #955: the pack commit and its two review rounds. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 31, 2026
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.
Sub-phase 3d of #753's work order: the first language pack, and the pattern 3e–3h copy where a pack is a choice alone.
What changes
nameparser/vocab/ne.tomlgainsgiven = { default = false, note = … }readings onश्री,guruandगुरु. They go inne.tomlbecause a chosen tag selects its own file and its ancestors' only (3b), andnehas none. The title readings stay where they were. A name reading never prefers, so underneeach word holds both readings and derivesTITLES_AMBIGUOUS, a title only inside a title phrase (rules/H9, the title phrase).locales.NE=Locale(code="ne", lexicon=Lexicon.empty(), languages=frozenset({"ne"})), registered inlocales/__init__.py. It declares noDEVIATES.tests/v2/test_locales.py's_deviates(code)ors the surface derived from_reading_index.changed_wordsinto the predicate of every pack withlanguages. A handDEVIATEStherefore needs to declare only what a fragment or patch beside a choice changes. Nothing refuses one that restates the choice's words.DEVIATESattribute (evenNone) on a pack that is nothing but a choice, and requires one of every other pack. The rotators cover each word in each script, at the head, behind a listed title and after a family comma.local_corpora.py alike --languages: the pair measure under a choice, against the default's flags (the tree's own or--base's), assnapshot.py --languagesdoes. It re-keys every keptalikebase once (_parsejoins_ALIKE_CODE).cldr_agreement.pymaps CLDR'snefile and Wikidata'sne-npstratum to NE.cldr_agreement_locales.jsongains NE's rows, and neither score moves.hi.toml: not touched. Itsश्रीnote (agivenreading there would make the title one only inside a title phrase) stays true of the default. 3e can edit it freely.The default does not move
build.py --checkpasses,_compiled.pyis unchanged, and_index.pygains three rows.tests/v2/test_snapshot.pypasses with no re-record.Under a family-first order
The words are name words placed by position. Under a family-first order they land in the family name:
श्री राम बहादुर थापाgives familyश्री, with givenरामunderFAMILY_FIRSTand givenथापा(middleराम बहादुर) underFAMILY_FIRST_GIVEN_LAST. The docs and the release bullet say so.What
nemoves (2026-10-30, on40675146plus this change)snapshot.py --languages ne): 6 entries.hi,kokandmrrenderings opening with the salutationश्री(CLDR titleश्री). They lose the title, the cost the user docs state: use the pack for Nepali data.Guru Gobind SinghandGuru Nanakread givenGuru.nestays 15/24 and Wikidatane-np10/10, both ways. Neither file holds one of the words.snapshot.py --local nepal-candidates --base <checkout> --languages ne): 296 names move. In every one the word leaves the title for the given name: 209श्री, 42Guru, 41गुरु, 1GURU, 1श्री., 2सु.श्री.local_corpora.py alike nepal-candidates --languages ne): 125,833 → 126,040 of 126,981 read alike, with 211 now alike and 4 now apart.श्री, which the romanization writes as a name word (Shree 191, Shri 6, Sri 2).श्रीasMr.. The fourth is the open defect below.Open
ne, in both directions.period_joined_vocabmakes a token a title when ANY chunk is intitles, andश्रीhas moved totitles_ambiguous.सु.श्री.(Sushri, written with its periods): 2 nepal-candidates names read given.श्री.राम थापा, which reads givenश्री.रामinstead of title.TITLES_AMBIGUOUSword, and its grid should hold both shapes.Recorded in decisions/vocabulary-model's 2026-10-30 phase 3d entry and decisions/deviates-registry. The RFC status line is updated.
Checks
uv run pytest: 33,000 passed, on 3.11 and on 3.15 (-n 4; the default-n autohit an xdist INTERNALERROR at load ~100).build.py --check,sphinx-build -b doctestandpython -m doctest README.rstare clean.pytest -n0 -m serial: 42 passed at load ~30. Earlier runs at load 50 to 100 failed a different set of wall-clock ratios each time, and so did master at40675146.🤖 Generated with Claude Code