Repository navigation
Release 1.20.0 #632
AngusHsu
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Validity changes
Xas value 10,rejecting it when the weighted sum has remainder 0 modulo 11 and accepting it when the remainder is 1. Numeric
check-digit behavior is unchanged; remainder 0 still accepts
0.after the local current date now return
Falsefromvalidate()andNonefromparse(). Today's date remainsaccepted, and checksum computation and parsed fields for past dates are unchanged.
Changed
coverage from a shields.io endpoint JSON that CI publishes to the
badgesbranch on pushes tomain, usingGITHUB_TOKENwith no repository secrets or external service. Pull request CI and the 97% floor are unchanged.triggers to
pushandpull_request, the coverage checkout does not persist credentials, and badge publicationskips stale main commits after checking the remote head. The endpoint JSON, coverage metric and floor are unchanged.
ruff format(ruff 0.16.10, 120 columns; Markdown is left alone) and CI checks them withruff format --check..git-blame-ignore-revslists the reformat commit, sogit blameskips it. Code and behaviour are unchanged. Thisalso settles the quote style of the README example tests
(#561).
Other fixes
checksum()returnsFalseorNonefor non-string input instead of raising or computing a value. HKG and TUR computed checksumsnow return
Optional[str]. All string-input behavior, including malformed strings, is unchanged.normalize_id()andformat_id()uppercase ASCII letters only, leaving non-ASCII letters (including lowercase Greek letters) unchanged instead of
folding lookalikes or expanding ligatures into ASCII. Helper outputs change; country validation is unchanged.
V/v/X/xhistoricallyindicated voter/nonvoter status, not citizenship.
OldNationalID.parse()keeps thecitizenshipkey but returnsNoneinstead of citizen/resident status, with typeOptional[Citizenship]. Validation, checksum, conversion andother parsed fields are unchanged.
Documentation
lint and formatting checks. CI contract tests tolerate extra formatter exclusions and reordered jobs while
retaining readable failures for missing checks. Clarify checksum-group coverage, line wrapping and the first
trusted release wording; CI policy and library behaviour are unchanged.
AGENTS.mdnow says that every line of a reflowed paragraph counts as changed, and that only URLs are exempt: otherlong string literals and citations are wrapped. Code and behaviour are unchanged.
check character(s) and covers a
checksum()that returns a derived value (the tax file number's remainder): the groupstays over the check character, and the class needs the named exemption in
TestComputedChecksumGroups. The BGR13-digit test comment now names digits 9 to 12. Code and behaviour are unchanged.
shapes, not fixed letter prefixes, ID validity or every accepted separator variant. Tests check accepted mask
representatives directly against each class's regexp as well as its validator. Metadata and helper outputs are
unchanged.
RELEASE.mddates the closureof #327 (2026-10-12) and says that releases since 1.16.0 have
run the updated workflow runtimes, with 1.18.0 the first trusted publication. The procedure is unchanged.
This discussion was created from the release Release 1.20.0.
All reactions