v2.2.0
A rename plus about thirty parsing fixes.
The nameparser.config word lists are renamed to match the Lexicon they feed — PREFIXES → PARTICLES, BOUND_FIRST_NAMES → BOUND_GIVEN_NAMES, FIRST_NAME_TITLES → GIVEN_NAME_TITLES, SUFFIX_NOT_ACRONYMS → SUFFIX_WORDS, and NON_FIRST_NAME_PREFIXES → NON_GIVEN_NAME_PARTICLES — and are now frozen. Every 1.x name still imports with a DeprecationWarning until 3.0. The rename itself changes no parse.
The fixes cluster around surname particles, largely what a declared name_order means for Latin-script names; then maiden-name clauses, Arabic bound given names, and credentials after a comma.
Breaking: TITLES.add("dean") now raises AttributeError. Build a private Constants (c = Constants(); c.titles.add("dean"); HumanName(name, constants=c)) or a Lexicon (Parser(lexicon=Lexicon.default().add(titles={"dean"}))) instead. See the migration guide.
Full release notes: https://nameparser.readthedocs.io/en/latest/release_log.html