Skip to content

Apply suffix_delimiter only at suffix-consumption sites#206

Merged
derek73 merged 2 commits into
masterfrom
fix/suffix-delimiter-consumption-site
Jul 4, 2026
Merged

Apply suffix_delimiter only at suffix-consumption sites#206
derek73 merged 2 commits into
masterfrom
fix/suffix-delimiter-consumption-site

Conversation

@derek73

@derek73 derek73 commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • suffix_delimiter previously split every post-comma segment unconditionally, before the parser decided which segment was actually a suffix group. This let it leak into first/middle-name segments in inverted format (e.g. "Doe, Mary - Kate, RN"), a case that was documented in Constants.suffix_delimiter's docstring as a known limitation.
  • Moved the delimiter split to the three places that actually consume a segment as suffixes: the suffix-comma vs. lastname-comma format detection (are_suffixes_after_comma), and the two suffix_list += parts[...] consumption points (suffix-comma branch's parts[1:], lastname-comma branch's parts[2:]).
  • The detection check now expands parts[1] on the delimiter to correctly recognize delimiter-joined suffixes (e.g. "RN - CRNA") while never expanding a segment that turns out to be a name.
  • Updated the docstring and replaced test_suffix_delimiter_inverted_format_known_limitation with test_suffix_delimiter_inverted_format_not_misparsed, asserting the corrected parse instead of just documenting the bug.

Test plan

  • pytest tests/test_suffixes.py -k suffix_delimiter -v — all 20 pass
  • Full suite: pytest -q — 1242 passed, 4 skipped, 22 xfailed, no regressions

derek73 added 2 commits July 4, 2026 02:36
Previously the delimiter split ran unconditionally on every post-comma
segment before the parser had decided which segment is actually a
suffix group. That let it leak into first/middle-name segments in
inverted format (e.g. "Doe, Mary - Kate, RN"), which was documented as
a known limitation.

Move the split to the three places that actually treat a segment as
suffixes: the suffix-comma vs. lastname-comma format detection, and
the two suffix_list += parts[...] consumption points. The detection
check now expands parts[1] to correctly recognize delimiter-joined
suffixes (e.g. "RN - CRNA") without ever expanding a segment that
turns out to be a name.
…ents

- Lock in hn.middle for the "Doe, Mary - Kate, RN" case so the stray
  hyphen artifact (a pre-existing tokenization quirk, reproducible
  without suffix_delimiter set) can't silently drift.
- Add coverage for the parts[1:] loop expanding more than one comma
  segment, for a multi-word token on one side of the delimiter in the
  detection check, and for delimiter no-op parity with the no-delimiter
  baseline when the format isn't detected as suffix-comma.
- Note in expand_suffix_delimiter's docstring that it's a no-op without
  a configured delimiter, and comment why detection needs the
  delimiter-expanded view of parts[1].
@derek73 derek73 self-assigned this Jul 4, 2026
@derek73 derek73 added this to the v1.3.0 milestone Jul 4, 2026
@derek73 derek73 merged commit b64a44f into master Jul 4, 2026
8 checks passed
@derek73 derek73 deleted the fix/suffix-delimiter-consumption-site branch July 4, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant