With Policy(extra_suffix_delimiters=(" - ",)), a delimiter core that a connective join swallows is never dropped, so it survives in the suffix text:
>>> p = Parser(policy=Policy(extra_suffix_delimiters=(" - ",)))
>>> p.parse("Smith, John, Puig - i Soler").suffix
'Puig - i Soler' # written without the core: 'Puig i Soler'
>>> p.parse("Smith, John, PhD née Puig Dr. i - y Soler").suffix
'PhD i - y Soler'
>>> p.parse("Smith, John, PhD - and MD").suffix
'PhD - and MD' # an ordinary connective takes the core as a neighbour
#538 made a GENERATIONAL link (i) read past a core (rules.md#P3's separator sentence), so a link beside a core with a credential or nothing beyond it stays a lone suffix word and the core is dropped (PhD - i Soler → PhD, i Soler). Where the link joins across the core, or the core sits inside a connective run, or the connective is an ordinary one (and), the core is merged into the joined piece and the #206 drop — which removes a LONE core — never sees it.
Reach. Default-unreachable: extra_suffix_delimiters is empty unless a caller declares it.
The question. Should the join skip a declared core (the separator dropped wherever it stands, as PhD - MD → PhD, MD), or should a core end the run it stands in (so Puig - i Soler reads two entries)? And should an ordinary connective read past a core as the generational link now does?
Related: #538, #206, #397.
With
Policy(extra_suffix_delimiters=(" - ",)), a delimiter core that a connective join swallows is never dropped, so it survives in the suffix text:#538 made a GENERATIONAL link (
i) read past a core (rules.md#P3's separator sentence), so a link beside a core with a credential or nothing beyond it stays a lone suffix word and the core is dropped (PhD - i Soler→PhD, i Soler). Where the link joins across the core, or the core sits inside a connective run, or the connective is an ordinary one (and), the core is merged into the joined piece and the #206 drop — which removes a LONE core — never sees it.Reach. Default-unreachable:
extra_suffix_delimitersis empty unless a caller declares it.The question. Should the join skip a declared core (the separator dropped wherever it stands, as
PhD - MD→PhD, MD), or should a core end the run it stands in (soPuig - i Solerreads two entries)? And should an ordinary connective read past a core as the generational link now does?Related: #538, #206, #397.