Repository navigation
Renunciate honorifics (Swami, Guru, Baba) put the monastic name in last #346
Description
swami, guru and baba ship in TITLES but not in FIRST_NAME_TITLES, so a title plus one name resolves that name to last:
>>> from nameparser import parse
>>> n = parse("Swami Vivekananda")
>>> n.title, n.given, n.family
('Swami', '', 'Vivekananda')Vivekananda is not a family name. He was born Narendranath Datta and took the monastic name on renunciation — as a monk he has no surname at all. The same holds for Guru Nanak and Baba Ramdev.
Structurally this is the Sister Mary class, classed the opposite way:
Sister Mary -> title='Sister' given='Mary' family='' ✅
Swami Vivekananda -> title='Swami' given='' family='Vivekananda' ❌
FIRST_NAME_TITLES already holds sister, brother, father, mother, pope, sir, king, master — titles addressed to a personal name rather than a family name. Renunciate honorifics belong there on the same reasoning, and with a stronger justification than most: renunciation does not merely make the personal name the polite form of address, it abolishes the family name outright, so family='' is the correct output rather than a degraded one.
Proposal
Add to FIRST_NAME_TITLES (all already in TITLES):
| entry | example | why |
|---|---|---|
swami |
Swami Vivekananda | monastic name replaces the birth name |
guru |
Guru Nanak | Nanak is the personal name |
baba |
Baba Ramdev | monastic name |
lama |
Lama Zopa | Tibetan Buddhist religious name |
venerable |
Venerable Ananda | Buddhist monastic name |
lama and venerable are the same class and I am reasonably but not equally confident in them — worth a second opinion before they go in. The first three are the clear cases.
Deliberately not included
rabbi and imam are in TITLES and not in FIRST_NAME_TITLES, which is correct and should stay: rabbis and imams have surnames, and Rabbi Cohen / Imam Khomeini resolve to family today, which is right. The distinction is not "religious title" — it is whether the tradition retains a family name.
Verified at 2.1.0
| input | today | with proposal |
|---|---|---|
Swami Vivekananda |
family=Vivekananda ❌ |
given=Vivekananda, family='' ✅ |
Guru Nanak |
family=Nanak ❌ |
given=Nanak ✅ |
Baba Ramdev |
family=Ramdev ❌ |
given=Ramdev ✅ |
Lama Zopa |
family=Zopa ❌ |
given=Zopa ✅ |
Venerable Ananda |
family=Ananda ❌ |
given=Ananda ✅ |
Rabbi Cohen |
family=Cohen ✅ |
unchanged ✅ |
Imam Khomeini |
family=Khomeini ✅ |
unchanged ✅ |
Swami Vivekananda Saraswati |
given=Vivekananda, family=Saraswati ✅ |
unchanged ✅ |
Guru Gobind Singh |
given=Gobind, family=Singh ✅ |
unchanged ✅ |
The rule fires only on title plus ONE name (_post_rules rule 1), so multi-token names are untouched.
Note on scope
This is a classification call about vocabulary that already ships, not a claim about a script the parser never covered — unlike #343 and #344. It is filed as a bug on that basis, but relabel if the current behavior reads as an acceptable default rather than a defect.
Related: #344 proposes the Devanagari spellings स्वामी/गुरु/बाबा in the same class, and #343 defers the Bengali গুরু/বাবা to #344 so the class is decided once. Whatever is settled here should match.
Activity
docs(rules): topic-review amendments from the Indic session (primary …
docs(rules): topic-review amendments from the July-arc session (prima…
derek73 commentedon Sep 7, 2026
Shipped in 2.3.0 via #513.
swami,guru,babaandlamamoved from the TITLES-only block intoGIVEN_NAME_TITLES, with Devanagari (स्वामी,गुरु,बाबा,संत) and Bengali (স্বামী,শ্রীল,গুরু,বাবা) renunciate sets beside them — three overlapping lists, not one list in three scripts.Swami Vivekanandareads givenVivekanandawith an empty family;Guru Nanak,Baba RamdevandLama Zopamove the same way, and those four are the only corpus names that move. Two name words behind the title are unchanged (Swami Vivekananda Saraswatikeeps familySaraswati), and that boundary is pinned.Things worth recording here rather than in the code:
venerablewas considered and left in TITLES only. It is not a Declined or an Excluded entry: the traditions split on surname retention (Buddhist monastics drop the family name, Anglican archdeacons and Catholic candidates keep it), so neither answer is right for the single-name case, and TITLES has no ambiguous subset to say "sometimes" with.Lexicon.default().add(given_name_titles={"venerable"})is the per-caller answer.rabbiandimamstay out because they address by TITLE (Rabbi Cohen), which fails the addressing criterion; the surname-retention criterion agrees.Rabbi Cohenis pinned as the control.Guru Dutt, whose given name is Guru: family went fromDuttto empty.guruwas already a title, so the swallow predates this change; the promotion is what moved the name between fields. Accepted as the pre-existing cost ofgurubeing a title at all, and pinned by a row.Rinpocheshipped as a trailing suffix word (Lama Zopa Rinpoche→ titleLama, givenZopa, suffixRinpoche).Guru Rinpochealone reads titleGuru, givenRinpoche— the existing bare-suffix fallback, not new behavior. The Tibetan prefix titles (Tulku, Khenpo, Geshe, Kyabje, Jetsun) are ShouldTulku Urgyenfold likeLama Zopadoes? (Tibetan prefix titles: Tulku, Khenpo, Geshe, Kyabje, Jetsun) #514.The line citation in this issue (
titles.py:769) was stale before the change and was not edited; the entries are now in theGIVEN_NAME_TITLESliteral at the top ofnameparser/config/titles.py. Rationale: theindic-honorificsentry ofdocs/design/decisions.md.fix(titles): prince and princess join the given-name titles
fix(titles): swami, guru, baba, lama join the given-name titles
feat(suffixes): spaced trailing honorifics, Indic and Tibetan
docs(design+release): Indic honorific vocabulary, recorded