Skip to content

Commit 52d3162

Browse files
committed
Get files ready for 2.2 release
1 parent e7e900a commit 52d3162

14 files changed

+332
-4
lines changed

ChangeLog

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,240 @@
1+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
2+
3+
* [e7e900a] .github/workflows/test.yml, setup.py, tox.ini: Add
4+
support for Python 3.14
5+
6+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
7+
8+
* [97d8cae] stdnum/sn/ninea.py: URL escape the underscore because
9+
it confuses Sphinx
10+
11+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
12+
13+
* [6070c60] stdnum/at/postleitzahl.dat, stdnum/be/banks.dat,
14+
stdnum/cn/loc.dat, stdnum/cz/banks.dat, stdnum/gs1_ai.dat,
15+
stdnum/iban.dat, stdnum/imsi.dat, stdnum/isbn.dat, stdnum/isil.dat,
16+
stdnum/nz/banks.dat, stdnum/oui.dat: Update database files
17+
18+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
19+
20+
* [a7fd300] update/at_postleitzahl.py, update/be_banks.py,
21+
update/cfi.py, update/cn_loc.py, update/cz_banks.py,
22+
update/do_whitelists.py, update/gs1_ai.py, update/iban.py,
23+
update/imsi.py, update/isbn.py, update/isil.py, update/nz_banks.py:
24+
Consistently pass a user agent for update scripts
25+
26+
The scourge of AI bots is forcing more and more sites to block
27+
bots that don't set particular user agents.
28+
29+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
30+
31+
* [e7afc61] update/be_banks.py: Update download URL of Belgian
32+
bank numbers
33+
34+
This also changes the handling to prefer the English name over
35+
other names and handles another variant of not-applicable values.
36+
37+
2026-01-04 Arthur de Jong <arthur@arthurdejong.org>
38+
39+
* [d332ee1] stdnum/sn/ninea.py, tests/test_sn_ninea.doctest:
40+
Add check digit validation to Senegal NINEA
41+
42+
2023-02-12 Leandro Regueiro <leandro.regueiro@gmail.com>
43+
44+
* [dd22123] stdnum/sn/__init__.py, stdnum/sn/ninea.py,
45+
tests/test_sn_ninea.doctest: Add support for Senegal TIN
46+
47+
Closes https://github.com/arthurdejong/python-stdnum/pull/395
48+
Closes https://github.com/arthurdejong/python-stdnum/issues/357
49+
50+
2026-01-03 Arthur de Jong <arthur@arthurdejong.org>
51+
52+
* [d3ec3bd] stdnum/br/cnpj.py: Support new format for Brazilian CNPJ
53+
54+
The new format allows letters as well as numbers to identify
55+
companies.
56+
57+
Closes https://github.com/arthurdejong/python-stdnum/issues/484
58+
59+
2025-02-27 dotbit1 <68584562+dotbit1@users.noreply.github.com>
60+
61+
* [cd94bf1] stdnum/ro/onrc.py, tests/test_ro_onrc.doctest: Support
62+
the new Romanian ONRC format
63+
64+
Closes https://github.com/arthurdejong/python-stdnum/pull/465
65+
66+
2026-01-03 Arthur de Jong <arthur@arthurdejong.org>
67+
68+
* [293136b] stdnum/lv/pvn.py: Support Latvian personal codes issued
69+
after 2017
70+
71+
These numbers no longer embed a birth date in the format.
72+
73+
Closes https://github.com/arthurdejong/python-stdnum/issues/486
74+
75+
2023-12-08 Cédric Krier <ced@b2ck.com>
76+
77+
* [a906a1e] stdnum/eu/excise.py, stdnum/fr/__init__.py,
78+
stdnum/fr/accise.py, tests/test_fr_accise.doctest: Add accise -
79+
the French number for excise
80+
81+
Closes https://github.com/arthurdejong/python-stdnum/pull/424
82+
83+
2023-12-08 Cédric Krier <ced@b2ck.com>
84+
85+
* [1a254d9] stdnum/eu/excise.py, tests/test_eu_excise.doctest:
86+
Add European Excise Number
87+
88+
Closes https://github.com/arthurdejong/python-stdnum/pull/424
89+
90+
2025-09-28 Cédric Krier <ced@b2ck.com>
91+
92+
* [d534b3c] stdnum/be/ogm_vcs.py: Add Belgian OGM-VCS
93+
94+
Closes https://github.com/arthurdejong/python-stdnum/pull/487
95+
96+
2025-10-14 KathrinM <k.mallot@right-basedonscience.de>
97+
98+
* [2cf475c] stdnum/eu/nace.py, stdnum/eu/nace20.dat,
99+
stdnum/eu/nace21.dat, tests/test_eu_nace.doctest: Add support
100+
for nace revision 2.1
101+
102+
This makes revision 2.1 the default but still allows validating
103+
against version 2.0 using the revision argument.
104+
105+
Closes https://github.com/arthurdejong/python-stdnum/pull/490
106+
107+
2025-12-19 Tuukka Tolvanen <ttolvanen@holvi.com>
108+
109+
* [acda255] stdnum/de/leitweg.py, tests/test_de_leitweg.doctest:
110+
Add DE Leitweg-ID
111+
112+
Closes https://github.com/arthurdejong/python-stdnum/pull/491
113+
114+
2025-12-16 Arthur de Jong <arthur@arthurdejong.org>
115+
116+
* [c7a7fd1] .github/workflows/test.yml: Run flake8 with Python 3.13
117+
118+
Python version 3.14 no longer works.
119+
120+
2025-10-26 Arthur de Jong <arthur@arthurdejong.org>
121+
122+
* [7a9b852] stdnum/ro/cnp.py: Mark more Romanian CNP county codes
123+
as valid
124+
125+
According to
126+
https://ro.wikipedia.org/wiki/Carte_de_identitate_rom%C3%A2neasc%C4%83#Seriile_c%C4%83r%C8%9Bilor_de_identitate_(%C3%AEn_modelele_emise_%C3%AEnainte_de_2021)
127+
70 is used to represent any registration, regardless of county
128+
but while multiple documents claim 80-83 are also valid it is
129+
unclear what they represent.
130+
131+
Closes https://github.com/arthurdejong/python-stdnum/issues/489
132+
133+
2025-10-26 Arthur de Jong <arthur@arthurdejong.org>
134+
135+
* [7ca9b6c] stdnum/be/vat.py, tests/test_be_vat.doctest: Validate
136+
first digit of Belgian VAT number
137+
138+
Thanks to antonio-ginestar find pointing this out.
139+
140+
Closes https://github.com/arthurdejong/python-stdnum/issues/488
141+
142+
2022-09-17 Leandro Regueiro <leandro.regueiro@gmail.com>
143+
144+
* [a1fdd5d] stdnum/az/__init__.py, stdnum/az/voen.py,
145+
tests/test_az_voen.doctest: Add support for Azerbaijan TIN
146+
147+
Thanks to Adam Handke for finding the weights for the check
148+
digit algorithm.
149+
150+
Closes https://github.com/arthurdejong/python-stdnum/issues/200
151+
CLoses https://github.com/arthurdejong/python-stdnum/pull/329
152+
153+
2025-08-08 Fabien MICHEL <fmichel@adista.fr>
154+
155+
* [e741318] stdnum/fr/rcs.py, tests/test_fr_rcs.doctest: Add French
156+
RCS number
157+
158+
Closes https://github.com/arthurdejong/python-stdnum/pull/481
159+
160+
2025-08-08 Fabien MICHEL <fmichel@adista.fr>
161+
162+
* [ca80cc4] stdnum/fr/siren.py: Add fr.siren.format() function
163+
164+
2025-08-08 Fabien MICHEL <fmichel@adista.fr>
165+
166+
* [b3a42a1] stdnum/fr/tva.py, tests/test_fr_tva.doctest: Add
167+
fr.tva.to_siren() function
168+
169+
The function can convert a French VAT number to a SIREN.
170+
171+
Closes https://github.com/arthurdejong/python-stdnum/pull/480
172+
173+
2025-08-14 Arthur de Jong <arthur@arthurdejong.org>
174+
175+
* [843bbec] stdnum/bic.py, tests/test_bic.doctest: Add validation
176+
of country code in BIC
177+
178+
Closes https://github.com/arthurdejong/python-stdnum/issues/482
179+
180+
2025-06-05 Joni Saarinen <joni.saarinen@onebyte.fi>
181+
182+
* [deb0db1] stdnum/ee/__init__.py: Add personal id and business
183+
id alias for Estonia
184+
185+
Closes https://github.com/arthurdejong/python-stdnum/pull/476
186+
187+
2025-05-10 Luca <luca.sicu02@gmail.com>
188+
189+
* [1773a91] stdnum/mz/__init__.py, stdnum/mz/nuit.py,
190+
tests/test_mz_nuit.doctest: Add support for Mozambique TIN
191+
192+
Closes https://github.com/arthurdejong/python-stdnum/issues/360
193+
Closes https://github.com/arthurdejong/python-stdnum/pull/392
194+
Closes https://github.com/arthurdejong/python-stdnum/pull/473
195+
196+
2025-06-01 Arthur de Jong <arthur@arthurdejong.org>
197+
198+
* [5ef6ade] stdnum/numdb.py: Use broader type ignore for
199+
pkg_resources import
200+
201+
Apparently mypy changed for classifying the problem from
202+
import-untyped to import-not-found.
203+
204+
2025-05-25 Arthur de Jong <arthur@arthurdejong.org>
205+
206+
* [0e64cf6] stdnum/cn/loc.dat, stdnum/cn/ric.py,
207+
tests/test_cn_ric.doctest, update/cn_loc.py: Download Chinise
208+
location codes from Wikipedia
209+
210+
The list on GitHub is missing historical information and also
211+
appears to no longer be updated. This changes the birth place
212+
lookup to take the birth year into account to determine whether
213+
a county was assigned at the time.
214+
215+
Closes https://github.com/arthurdejong/python-stdnum/issues/442
216+
217+
2025-05-18 Arthur de Jong <arthur@arthurdejong.org>
218+
219+
* [210b9ce] stdnum/gs1_128.py, stdnum/gs1_ai.dat,
220+
tests/test_gs1_128.doctest, update/gs1_ai.py: Fix handling of
221+
decimals in Application Identifiers
222+
223+
This fixes the handling of GS1-128 Application Identifiers with
224+
decimal types. Previously, with some 4 digit decimal application
225+
identifiers the number of decimals were incorrectly considered
226+
part of the value instead of the application identifier.
227+
228+
For example (310)5033333 is not correct but it should be evaluated
229+
as (3105)033333 (application identifier 3105 and value 0.33333).
230+
231+
Closes https://github.com/arthurdejong/python-stdnum/issues/471
232+
233+
2025-05-17 Arthur de Jong <arthur@arthurdejong.org>
234+
235+
* [d66998e] ChangeLog, NEWS, stdnum/__init__.py: Get files ready
236+
for 2.1 release
237+
1238
2025-05-17 Arthur de Jong <arthur@arthurdejong.org>
2239

3240
* [a753ebf] stdnum/at/postleitzahl.dat, stdnum/cn/loc.dat,

NEWS

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
changes from 2.1 to 2.2
2+
-----------------------
3+
4+
* Add modules for the following number formats:
5+
6+
- VÖEN (Vergi ödəyicisinin eyniləşdirmə nömrəsi, Azerbaijan tax number)
7+
(thanks Leandro Regueiro)
8+
- Belgian OGM-VCS
9+
(thanks Cédric Krier)
10+
- Leitweg-ID, a buyer reference or routing identifier for electronic invoices
11+
(thanks Tuukka Tolvanen)
12+
- European Excise Number (thanks Cédric Krier)
13+
- n° d'accise (French number to identify taxpayers of excise taxes)
14+
(thanks Cédric Krier)
15+
- RCS (French trade registration number for commercial companies)
16+
(thanks Fabien MICHEL)
17+
- NUIT (Número Único de Identificação Tributaria, Mozambique tax number)
18+
(thanks Luca and Leandro Regueiro)
19+
- NINEA (Numéro d'Identification Nationale des Entreprises et Associations, Senegal tax number)
20+
(thanks Leandro Regueiro)
21+
22+
* Fix handling of decimals in Application Identifiers (thanks zipus)
23+
* Update list of valid Chinese counties (thanks 电子旅人 and Luca)
24+
* Mark more Romanian CNP county codes as valid (thanks luella-s)
25+
* Support Latvian personal codes issued after 2017 (thanks José Luis López Pino)
26+
* Provide aliases for Estonian numbers (thanks Joni Saarinen)
27+
* Add validation of country code in BIC (thanks Luuk Gubbels)
28+
* Add function to convert a French VAT number into a SIREN (thanks Fabien MICHEL)
29+
* Add a function to format a French SIREN (thanks Fabien MICHEL)
30+
* Add extra validation of Belgian VAT numbers (thanks Antonio Ginestar)
31+
* Add support for nace revision 2.1 (thanks KathrinM)
32+
* Support the new Romanian ONRC format (thanks dotbit1)
33+
* Support new format for Brazilian CNPJ (thanks Cloves Oliveira)
34+
35+
136
changes from 2.0 to 2.1
237
-----------------------
338

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ Currently this package supports the following formats:
2828
* ABN (Australian Business Number)
2929
* ACN (Australian Company Number)
3030
* TFN (Australian Tax File Number)
31+
* VÖEN (Vergi ödəyicisinin eyniləşdirmə nömrəsi, Azerbaijan tax number)
3132
* BIS (Belgian BIS number)
3233
* eID Number (Belgian electronic Identity Card Number)
3334
* Belgian IBAN (International Bank Account Number)
3435
* NN, NISS, RRN (Belgian national number)
36+
* Belgian OGM-VCS
3537
* SSN, INSZ, NISS (Belgian social security number)
3638
* BTW, TVA, NWSt, ondernemingsnummer (Belgian enterprise number)
3739
* EGN (ЕГН, Единен граждански номер, Bulgarian personal identity codes)
@@ -66,6 +68,7 @@ Currently this package supports the following formats:
6668
* RČ (Rodné číslo, the Czech birth number)
6769
* Handelsregisternummer (German company register number)
6870
* IdNr (Steuerliche Identifikationsnummer, German personal tax number)
71+
* Leitweg-ID, a buyer reference or routing identifier for electronic invoices
6972
* St.-Nr. (Steuernummer, German tax number)
7073
* Ust ID Nr. (Umsatzsteur Identifikationnummer, German VAT number)
7174
* Wertpapierkennnummer (German securities identification code)
@@ -96,6 +99,7 @@ Currently this package supports the following formats:
9699
* Euro banknote serial numbers
97100
* EC Number (European Community number)
98101
* EIC (European Energy Identification Code)
102+
* European Excise Number
99103
* NACE (classification for businesses in the European Union)
100104
* OSS (European VAT on e-Commerce - One Stop Shop)
101105
* VAT (European Union VAT number)
@@ -106,8 +110,10 @@ Currently this package supports the following formats:
106110
* Y-tunnus (Finnish business identifier)
107111
* FIGI (Financial Instrument Global Identifier)
108112
* V-number (Vinnutal, Faroe Islands tax number)
113+
* n° d'accise (French number to identify taxpayers of excise taxes)
109114
* NIF (Numéro d'Immatriculation Fiscale, French tax identification number)
110115
* NIR (French personal identification number)
116+
* RCS (French trade registration number for commercial companies)
111117
* SIREN (a French company identification number)
112118
* SIRET (a French company establishment identification number)
113119
* n° TVA (taxe sur la valeur ajoutée, French VAT number)
@@ -179,6 +185,7 @@ Currently this package supports the following formats:
179185
* CURP (Clave Única de Registro de Población, Mexican personal ID)
180186
* RFC (Registro Federal de Contribuyentes, Mexican tax number)
181187
* NRIC No. (Malaysian National Registration Identity Card Number)
188+
* NUIT (Número Único de Identificação Tributaria, Mozambique tax number)
182189
* BRIN number (the Dutch school identification number)
183190
* BSN (Burgerservicenummer, the Dutch citizen identification number)
184191
* Btw-identificatienummer (Omzetbelastingnummer, the Dutch VAT number)
@@ -219,6 +226,7 @@ Currently this package supports the following formats:
219226
* IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number)
220227
* RČ (Rodné číslo, the Slovak birth number)
221228
* COE (Codice operatore economico, San Marino national tax number)
229+
* NINEA (Numéro d'Identification Nationale des Entreprises et Associations, Senegal tax number)
222230
* NIT (Número de Identificación Tributaria, El Salvador tax number)
223231
* MOA (Thailand Memorandum of Association Number)
224232
* PIN (Thailand Personal Identification Number)
@@ -296,7 +304,7 @@ Python. The modules are developed and tested with Python 3 versions (see `setup.
296304
Copyright
297305
---------
298306

299-
Copyright (C) 2010-2025 Arthur de Jong and others
307+
Copyright (C) 2010-2026 Arthur de Jong and others
300308

301309
This library is free software; you can redistribute it and/or
302310
modify it under the terms of the GNU Lesser General Public

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
# General information about the project.
4141
project = u'python-stdnum'
42-
copyright = u'2013-2025, Arthur de Jong'
42+
copyright = u'2013-2026, Arthur de Jong'
4343

4444
# The version info for the project you're documenting, acts as replacement for
4545
# |version| and |release|, also used in various other places throughout the

0 commit comments

Comments
 (0)