lists.arthurdejong.org
RSS feed

python-stdnum branch master updated. 2.2

[Date Prev][Date Next] [Thread Prev][Thread Next]

python-stdnum branch master updated. 2.2



This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-stdnum".

The branch, master has been updated
       via  52d316200c347b4f3d2b61a77ce746f3d28a3815 (commit)
      from  e7e900ae801d7bd45860bddf13d7bd93c90ad9cf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://arthurdejong.org/git/python-stdnum/commit/?id=52d316200c347b4f3d2b61a77ce746f3d28a3815

commit 52d316200c347b4f3d2b61a77ce746f3d28a3815
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Jan 4 20:28:56 2026 +0100

    Get files ready for 2.2 release

diff --git a/ChangeLog b/ChangeLog
index a93f5e6..a546b74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,240 @@
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [e7e900a] .github/workflows/test.yml, setup.py, tox.ini: Add
+         support for Python 3.14
+
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [97d8cae] stdnum/sn/ninea.py: URL escape the underscore because
+         it confuses Sphinx
+
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [6070c60] stdnum/at/postleitzahl.dat, stdnum/be/banks.dat,
+         stdnum/cn/loc.dat, stdnum/cz/banks.dat, stdnum/gs1_ai.dat,
+         stdnum/iban.dat, stdnum/imsi.dat, stdnum/isbn.dat, stdnum/isil.dat,
+         stdnum/nz/banks.dat, stdnum/oui.dat: Update database files
+
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [a7fd300] update/at_postleitzahl.py, update/be_banks.py,
+         update/cfi.py, update/cn_loc.py, update/cz_banks.py,
+         update/do_whitelists.py, update/gs1_ai.py, update/iban.py,
+         update/imsi.py, update/isbn.py, update/isil.py, update/nz_banks.py:
+         Consistently pass a user agent for update scripts
+
+         The scourge of AI bots is forcing more and more sites to block
+         bots that don't set particular user agents.
+
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [e7afc61] update/be_banks.py: Update download URL of Belgian
+         bank numbers
+
+         This also changes the handling to prefer the English name over
+         other names and handles another variant of not-applicable values.
+
+2026-01-04  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [d332ee1] stdnum/sn/ninea.py, tests/test_sn_ninea.doctest:
+         Add check digit validation to Senegal NINEA
+
+2023-02-12  Leandro Regueiro <leandro.regueiro@gmail.com>
+
+       * [dd22123] stdnum/sn/__init__.py, stdnum/sn/ninea.py,
+         tests/test_sn_ninea.doctest: Add support for Senegal TIN
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/395
+         Closes https://github.com/arthurdejong/python-stdnum/issues/357
+
+2026-01-03  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [d3ec3bd] stdnum/br/cnpj.py: Support new format for Brazilian CNPJ
+
+         The new format allows letters as well as numbers to identify
+         companies.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/484
+
+2025-02-27  dotbit1 <68584562+dotbit1@users.noreply.github.com>
+
+       * [cd94bf1] stdnum/ro/onrc.py, tests/test_ro_onrc.doctest: Support
+         the new Romanian ONRC format
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/465
+
+2026-01-03  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [293136b] stdnum/lv/pvn.py: Support Latvian personal codes issued
+         after 2017
+
+         These numbers no longer embed a birth date in the format.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/486
+
+2023-12-08  Cédric Krier <ced@b2ck.com>
+
+       * [a906a1e] stdnum/eu/excise.py, stdnum/fr/__init__.py,
+         stdnum/fr/accise.py, tests/test_fr_accise.doctest: Add accise -
+         the French number for excise
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/424
+
+2023-12-08  Cédric Krier <ced@b2ck.com>
+
+       * [1a254d9] stdnum/eu/excise.py, tests/test_eu_excise.doctest:
+         Add European Excise Number
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/424
+
+2025-09-28  Cédric Krier <ced@b2ck.com>
+
+       * [d534b3c] stdnum/be/ogm_vcs.py: Add Belgian OGM-VCS
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/487
+
+2025-10-14  KathrinM <k.mallot@right-basedonscience.de>
+
+       * [2cf475c] stdnum/eu/nace.py, stdnum/eu/nace20.dat,
+         stdnum/eu/nace21.dat, tests/test_eu_nace.doctest: Add support
+         for nace revision 2.1
+
+         This makes revision 2.1 the default but still allows validating
+         against version 2.0 using the revision argument.
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/490
+
+2025-12-19  Tuukka Tolvanen <ttolvanen@holvi.com>
+
+       * [acda255] stdnum/de/leitweg.py, tests/test_de_leitweg.doctest:
+         Add DE Leitweg-ID
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/491
+
+2025-12-16  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [c7a7fd1] .github/workflows/test.yml: Run flake8 with Python 3.13
+
+         Python version 3.14 no longer works.
+
+2025-10-26  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [7a9b852] stdnum/ro/cnp.py: Mark more Romanian CNP county codes
+         as valid
+
+         According to
+         
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)
+         70 is used to represent any registration, regardless of county
+         but while multiple documents claim 80-83 are also valid it is
+         unclear what they represent.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/489
+
+2025-10-26  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [7ca9b6c] stdnum/be/vat.py, tests/test_be_vat.doctest: Validate
+         first digit of Belgian VAT number
+
+         Thanks to antonio-ginestar find pointing this out.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/488
+
+2022-09-17  Leandro Regueiro <leandro.regueiro@gmail.com>
+
+       * [a1fdd5d] stdnum/az/__init__.py, stdnum/az/voen.py,
+         tests/test_az_voen.doctest: Add support for Azerbaijan TIN
+
+         Thanks to Adam Handke for finding the weights for the check
+         digit algorithm.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/200
+         CLoses https://github.com/arthurdejong/python-stdnum/pull/329
+
+2025-08-08  Fabien MICHEL <fmichel@adista.fr>
+
+       * [e741318] stdnum/fr/rcs.py, tests/test_fr_rcs.doctest: Add French
+         RCS number
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/481
+
+2025-08-08  Fabien MICHEL <fmichel@adista.fr>
+
+       * [ca80cc4] stdnum/fr/siren.py: Add fr.siren.format() function
+
+2025-08-08  Fabien MICHEL <fmichel@adista.fr>
+
+       * [b3a42a1] stdnum/fr/tva.py, tests/test_fr_tva.doctest: Add
+         fr.tva.to_siren() function
+
+         The function can convert a French VAT number to a SIREN.
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/480
+
+2025-08-14  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [843bbec] stdnum/bic.py, tests/test_bic.doctest: Add validation
+         of country code in BIC
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/482
+
+2025-06-05  Joni Saarinen <joni.saarinen@onebyte.fi>
+
+       * [deb0db1] stdnum/ee/__init__.py: Add personal id and business
+         id alias for Estonia
+
+         Closes https://github.com/arthurdejong/python-stdnum/pull/476
+
+2025-05-10  Luca <luca.sicu02@gmail.com>
+
+       * [1773a91] stdnum/mz/__init__.py, stdnum/mz/nuit.py,
+         tests/test_mz_nuit.doctest: Add support for Mozambique TIN
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/360
+         Closes https://github.com/arthurdejong/python-stdnum/pull/392
+         Closes https://github.com/arthurdejong/python-stdnum/pull/473
+
+2025-06-01  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [5ef6ade] stdnum/numdb.py: Use broader type ignore for
+         pkg_resources import
+
+         Apparently mypy changed for classifying the problem from
+         import-untyped to import-not-found.
+
+2025-05-25  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [0e64cf6] stdnum/cn/loc.dat, stdnum/cn/ric.py,
+         tests/test_cn_ric.doctest, update/cn_loc.py: Download Chinise
+         location codes from Wikipedia
+
+         The list on GitHub is missing historical information and also
+         appears to no longer be updated. This changes the birth place
+         lookup to take the birth year into account to determine whether
+         a county was assigned at the time.
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/442
+
+2025-05-18  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [210b9ce] stdnum/gs1_128.py, stdnum/gs1_ai.dat,
+         tests/test_gs1_128.doctest, update/gs1_ai.py: Fix handling of
+         decimals in Application Identifiers
+
+         This fixes the handling of GS1-128 Application Identifiers with
+         decimal types. Previously, with some 4 digit decimal application
+         identifiers the number of decimals were incorrectly considered
+         part of the value instead of the application identifier.
+
+         For example (310)5033333 is not correct but it should be evaluated
+         as (3105)033333 (application identifier 3105 and value 0.33333).
+
+         Closes https://github.com/arthurdejong/python-stdnum/issues/471
+
+2025-05-17  Arthur de Jong <arthur@arthurdejong.org>
+
+       * [d66998e] ChangeLog, NEWS, stdnum/__init__.py: Get files ready
+         for 2.1 release
+
 2025-05-17  Arthur de Jong <arthur@arthurdejong.org>
 
        * [a753ebf] stdnum/at/postleitzahl.dat, stdnum/cn/loc.dat,
diff --git a/NEWS b/NEWS
index 5e0f4aa..8eb60b3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,38 @@
+changes from 2.1 to 2.2
+-----------------------
+
+* Add modules for the following number formats:
+
+  - VÖEN (Vergi ödəyicisinin eyniləşdirmə nömrəsi, Azerbaijan tax number)
+    (thanks Leandro Regueiro)
+  - Belgian OGM-VCS
+    (thanks Cédric Krier)
+  - Leitweg-ID, a buyer reference or routing identifier for electronic invoices
+    (thanks Tuukka Tolvanen)
+  - European Excise Number (thanks Cédric Krier)
+  - n° d'accise (French number to identify taxpayers of excise taxes)
+    (thanks Cédric Krier)
+  - RCS (French trade registration number for commercial companies)
+    (thanks Fabien MICHEL)
+  - NUIT (Número Único de Identificação Tributaria, Mozambique tax number)
+    (thanks Luca and Leandro Regueiro)
+  - NINEA (Numéro d'Identification Nationale des Entreprises et Associations, 
Senegal tax number)
+    (thanks Leandro Regueiro)
+
+* Fix handling of decimals in Application Identifiers (thanks zipus)
+* Update list of valid Chinese counties (thanks 电子旅人 and Luca)
+* Mark more Romanian CNP county codes as valid (thanks luella-s)
+* Support Latvian personal codes issued after 2017 (thanks José Luis López 
Pino)
+* Provide aliases for Estonian numbers (thanks Joni Saarinen)
+* Add validation of country code in BIC (thanks Luuk Gubbels)
+* Add function to convert a French VAT number into a SIREN (thanks Fabien 
MICHEL)
+* Add a function to format a French SIREN (thanks Fabien MICHEL)
+* Add extra validation of Belgian VAT numbers (thanks Antonio Ginestar)
+* Add support for nace revision 2.1 (thanks KathrinM)
+* Support the new Romanian ONRC format (thanks dotbit1)
+* Support new format for Brazilian CNPJ (thanks Cloves Oliveira)
+
+
 changes from 2.0 to 2.1
 -----------------------
 
diff --git a/README.md b/README.md
index e09a984..908d40c 100644
--- a/README.md
+++ b/README.md
@@ -28,10 +28,12 @@ Currently this package supports the following formats:
  * ABN (Australian Business Number)
  * ACN (Australian Company Number)
  * TFN (Australian Tax File Number)
+ * VÖEN (Vergi ödəyicisinin eyniləşdirmə nömrəsi, Azerbaijan tax number)
  * BIS (Belgian BIS number)
  * eID Number (Belgian electronic Identity Card Number)
  * Belgian IBAN (International Bank Account Number)
  * NN, NISS, RRN (Belgian national number)
+ * Belgian OGM-VCS
  * SSN, INSZ, NISS (Belgian social security number)
  * BTW, TVA, NWSt, ondernemingsnummer (Belgian enterprise number)
  * EGN (ЕГН, Единен граждански номер, Bulgarian personal identity codes)
@@ -66,6 +68,7 @@ Currently this package supports the following formats:
  * RČ (Rodné číslo, the Czech birth number)
  * Handelsregisternummer (German company register number)
  * IdNr (Steuerliche Identifikationsnummer, German personal tax number)
+ * Leitweg-ID, a buyer reference or routing identifier for electronic invoices
  * St.-Nr. (Steuernummer, German tax number)
  * Ust ID Nr. (Umsatzsteur Identifikationnummer, German VAT number)
  * Wertpapierkennnummer (German securities identification code)
@@ -96,6 +99,7 @@ Currently this package supports the following formats:
  * Euro banknote serial numbers
  * EC Number (European Community number)
  * EIC (European Energy Identification Code)
+ * European Excise Number
  * NACE (classification for businesses in the European Union)
  * OSS (European VAT on e-Commerce - One Stop Shop)
  * VAT (European Union VAT number)
@@ -106,8 +110,10 @@ Currently this package supports the following formats:
  * Y-tunnus (Finnish business identifier)
  * FIGI (Financial Instrument Global Identifier)
  * V-number (Vinnutal, Faroe Islands tax number)
+ * n° d'accise (French number to identify taxpayers of excise taxes)
  * NIF (Numéro d'Immatriculation Fiscale, French tax identification number)
  * NIR (French personal identification number)
+ * RCS (French trade registration number for commercial companies)
  * SIREN (a French company identification number)
  * SIRET (a French company establishment identification number)
  * n° TVA (taxe sur la valeur ajoutée, French VAT number)
@@ -179,6 +185,7 @@ Currently this package supports the following formats:
  * CURP (Clave Única de Registro de Población, Mexican personal ID)
  * RFC (Registro Federal de Contribuyentes, Mexican tax number)
  * NRIC No. (Malaysian National Registration Identity Card Number)
+ * NUIT (Número Único de Identificação Tributaria, Mozambique tax number)
  * BRIN number (the Dutch school identification number)
  * BSN (Burgerservicenummer, the Dutch citizen identification number)
  * Btw-identificatienummer (Omzetbelastingnummer, the Dutch VAT number)
@@ -219,6 +226,7 @@ Currently this package supports the following formats:
  * IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number)
  * RČ (Rodné číslo, the Slovak birth number)
  * COE (Codice operatore economico, San Marino national tax number)
+ * NINEA (Numéro d'Identification Nationale des Entreprises et Associations, 
Senegal tax number)
  * NIT (Número de Identificación Tributaria, El Salvador tax number)
  * MOA (Thailand Memorandum of Association Number)
  * PIN (Thailand Personal Identification Number)
@@ -296,7 +304,7 @@ Python. The modules are developed and tested with Python 3 
versions (see `setup.
 Copyright
 ---------
 
-Copyright (C) 2010-2025 Arthur de Jong and others
+Copyright (C) 2010-2026 Arthur de Jong and others
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
diff --git a/docs/conf.py b/docs/conf.py
index 70e6774..d37c1cb 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -39,7 +39,7 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'python-stdnum'
-copyright = u'2013-2025, Arthur de Jong'
+copyright = u'2013-2026, Arthur de Jong'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
diff --git a/docs/index.rst b/docs/index.rst
index a543b39..7cb0b70 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -126,10 +126,12 @@ Available formats
    au.abn
    au.acn
    au.tfn
+   az.voen
    be.bis
    be.eid
    be.iban
    be.nn
+   be.ogm_vcs
    be.ssn
    be.vat
    bg.egn
@@ -164,6 +166,7 @@ Available formats
    cz.rc
    de.handelsregisternummer
    de.idnr
+   de.leitweg
    de.stnr
    de.vat
    de.wkn
@@ -194,6 +197,7 @@ Available formats
    eu.banknote
    eu.ecnumber
    eu.eic
+   eu.excise
    eu.nace
    eu.oss
    eu.vat
@@ -204,8 +208,10 @@ Available formats
    fi.ytunnus
    figi
    fo.vn
+   fr.accise
    fr.nif
    fr.nir
+   fr.rcs
    fr.siren
    fr.siret
    fr.tva
@@ -277,6 +283,7 @@ Available formats
    mx.curp
    mx.rfc
    my.nric
+   mz.nuit
    nl.brin
    nl.bsn
    nl.btw
@@ -317,6 +324,7 @@ Available formats
    sk.dph
    sk.rc
    sm.coe
+   sn.ninea
    sv.nit
    th.moa
    th.pin
diff --git a/docs/stdnum.az.voen.rst b/docs/stdnum.az.voen.rst
new file mode 100644
index 0000000..8c303dd
--- /dev/null
+++ b/docs/stdnum.az.voen.rst
@@ -0,0 +1,5 @@
+stdnum.az.voen
+==============
+
+.. automodule:: stdnum.az.voen
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.be.ogm_vcs.rst b/docs/stdnum.be.ogm_vcs.rst
new file mode 100644
index 0000000..efb1854
--- /dev/null
+++ b/docs/stdnum.be.ogm_vcs.rst
@@ -0,0 +1,5 @@
+stdnum.be.ogm_vcs
+=================
+
+.. automodule:: stdnum.be.ogm_vcs
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.de.leitweg.rst b/docs/stdnum.de.leitweg.rst
new file mode 100644
index 0000000..747e101
--- /dev/null
+++ b/docs/stdnum.de.leitweg.rst
@@ -0,0 +1,5 @@
+stdnum.de.leitweg
+=================
+
+.. automodule:: stdnum.de.leitweg
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.eu.excise.rst b/docs/stdnum.eu.excise.rst
new file mode 100644
index 0000000..0bfc38f
--- /dev/null
+++ b/docs/stdnum.eu.excise.rst
@@ -0,0 +1,5 @@
+stdnum.eu.excise
+================
+
+.. automodule:: stdnum.eu.excise
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.fr.accise.rst b/docs/stdnum.fr.accise.rst
new file mode 100644
index 0000000..3c5b93d
--- /dev/null
+++ b/docs/stdnum.fr.accise.rst
@@ -0,0 +1,5 @@
+stdnum.fr.accise
+================
+
+.. automodule:: stdnum.fr.accise
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.fr.rcs.rst b/docs/stdnum.fr.rcs.rst
new file mode 100644
index 0000000..a77f27b
--- /dev/null
+++ b/docs/stdnum.fr.rcs.rst
@@ -0,0 +1,5 @@
+stdnum.fr.rcs
+=============
+
+.. automodule:: stdnum.fr.rcs
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.mz.nuit.rst b/docs/stdnum.mz.nuit.rst
new file mode 100644
index 0000000..8fd5d05
--- /dev/null
+++ b/docs/stdnum.mz.nuit.rst
@@ -0,0 +1,5 @@
+stdnum.mz.nuit
+==============
+
+.. automodule:: stdnum.mz.nuit
+   :members:
\ No newline at end of file
diff --git a/docs/stdnum.sn.ninea.rst b/docs/stdnum.sn.ninea.rst
new file mode 100644
index 0000000..087fd3b
--- /dev/null
+++ b/docs/stdnum.sn.ninea.rst
@@ -0,0 +1,5 @@
+stdnum.sn.ninea
+===============
+
+.. automodule:: stdnum.sn.ninea
+   :members:
\ No newline at end of file
diff --git a/stdnum/__init__.py b/stdnum/__init__.py
index de70ddc..fc5e06a 100644
--- a/stdnum/__init__.py
+++ b/stdnum/__init__.py
@@ -1,7 +1,7 @@
 # __init__.py - main module
 # coding: utf-8
 #
-# Copyright (C) 2010-2025 Arthur de Jong
+# Copyright (C) 2010-2026 Arthur de Jong
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -45,4 +45,4 @@ from stdnum.util import get_cc_module
 __all__ = ('get_cc_module', '__version__')
 
 # the version number of the library
-__version__ = '2.1'
+__version__ = '2.2'

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                  | 237 +++++++++++++++++++++++++++++++++++++++++++++
 NEWS                       |  35 +++++++
 README.md                  |  10 +-
 docs/conf.py               |   2 +-
 docs/index.rst             |   8 ++
 docs/stdnum.az.voen.rst    |   5 +
 docs/stdnum.be.ogm_vcs.rst |   5 +
 docs/stdnum.de.leitweg.rst |   5 +
 docs/stdnum.eu.excise.rst  |   5 +
 docs/stdnum.fr.accise.rst  |   5 +
 docs/stdnum.fr.rcs.rst     |   5 +
 docs/stdnum.mz.nuit.rst    |   5 +
 docs/stdnum.sn.ninea.rst   |   5 +
 stdnum/__init__.py         |   4 +-
 14 files changed, 332 insertions(+), 4 deletions(-)
 create mode 100644 docs/stdnum.az.voen.rst
 create mode 100644 docs/stdnum.be.ogm_vcs.rst
 create mode 100644 docs/stdnum.de.leitweg.rst
 create mode 100644 docs/stdnum.eu.excise.rst
 create mode 100644 docs/stdnum.fr.accise.rst
 create mode 100644 docs/stdnum.fr.rcs.rst
 create mode 100644 docs/stdnum.mz.nuit.rst
 create mode 100644 docs/stdnum.sn.ninea.rst


hooks/post-receive
-- 
python-stdnum