Skip to content

Should one table hold each role's matching rules? (six places decide how the family role compares today) #1260

Open

Description

@derek73

nameparser/_match.py decides each role's behavior in six places:

  • _GROUP (which vocabulary links a role reads)
  • _NOT_TRIED_INTO (where an alternative reading may go)
  • _ACROSS (cross-role pairs)
  • the branch chain in _compare_role
  • the bases= argument that turns on particles-aside and part-of-other for the family role
  • the keys' hard-coded "family" / "given"

A change to one role's rule has to be made in step across them. A single per-role table (group, comparator, one-side outcome, whether an empty side conflicts, cross roles, key words) would hold it in one place.

No outcome would move: the change is a refactor, checkable with the matching oracle staying byte-identical. Raised by the simplify pass of #1221. A candidate for the 3.1 release simplify pass.

Activity

  1. added this to the 3.1 milestone on Nov 9, 2026
  2. self-assigned this
    on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions