Changes in python-stdnum

changes from 1.10 to 1.11

  • Add modules for the following number formats:
    • DNI (Documento Nacional de Identidad, Argentinian national identity nr.)
    • VNR, SVNR, VSNR (Versicherungsnummer, Austrian social security number)
    • NI (Número de identidad, Cuban identity card numbers)
    • AMKA (Αριθμός Μητρώου Κοινωνικής Ασφάλισης, Greek social security number)
    • Asmens kodas (Lithuanian, personal numbers)
    • MAC address (Media Access Control address)
    • IDNO (Moldavian company identification number)
    • CURP (Clave Única de Registro de Población, Mexican personal ID)
    • Fødselsnummer (Norwegian birth number, the national identity number) (thanks Ilya Vihtinsky)
    • New Zealand bank account number
    • Personnummer (Swedish personal identity number) (thanks Ilya Vihtinsky)
  • Code style improvements
  • Change Dominican Republic DGII check URL to HTTPS (thanks Gustavo Valverde)
  • Support Ecuadorian Cedula and RUC of foreigners (thanks Christopher Ormaza)
  • Add format() function for Argentinian CUIT number (thanks Mario Puntin)
  • Support passing formatted numbers to all get_birth_date() and similar functions
  • Handle Dominican Republic DGII lookup returning multiple entities (thanks Andrés R)

changes from 1.9 to 1.10

  • Add modules for the following number formats:
    • Bitcoin address
    • ISO 11649 (Structured Creditor Reference)
    • ID number (Mauritian national identifier)
    • Norwegian IBAN (International Bank Account Number)
    • Konto nr. (Norwegian bank account number)
  • Fix a bug in handling of Mexican tax numbers
  • Improve Spanish CIF and NIF validation
  • Update Dominican Republic NCF numbers online check
  • Improve Unicode conversion for bytestrings
  • Improvements to some corner cases in IBAN validation
  • Documentation improvements
  • Add stdnum.ru.vat as an alias for stdnum.ru.inn

changes from 1.8.1 to 1.9

  • Add modules for the following number formats:
    • Postleitzahl (Austrian postal code)
    • Abgabenkontonummer (Austrian tax identification number)
    • Belgian IBAN (International Bank Account Number)
    • Handelsregisternummer (German company register number)
    • St.-Nr. (Steuernummer, German tax number)
    • FIGI (Financial Instrument Global Identifier)
    • Montenegro IBAN (International Bank Account Number)
  • Have documentation rebuilt reproducibly (thanks Chris Lamb)
  • Allow configuring the SOAP request timeout
  • Support spaces in ISO 9362 (SWIFT) BIC codes
  • Add check_dgii() to stdnum.do.cedula module
  • Add validation for “individual” part of hetu (thanks Esa Halsti)
  • Support new style of Dominican Republic NCF numbers
  • Fix issue when using PySimpleSOAP for DGII lookups
  • Fix an issue in splitting certain IMSI values
  • Support building a universal wheel
  • Documentation and code style improvements

changes from 1.8 to 1.8.1

  • Fix a packaging issue in the long description

changes from 1.7 to 1.8

  • Add modules for the following number formats:
    • NCF (Números de Comprobante Fiscal, Dominican Republic receipt number)
    • Euro banknote serial numbers
    • CAS RN (Chemical Abstracts Service Registry Number)
    • Aadhaar (Indian digital resident personal identity number) (thanks Srikanth Lakshmanan)
    • PAN (Permanent Account Number, Indian income tax identifier) (thanks Srikanth Lakshmanan)
  • Add functions for using the Dominican Republic DGII web service to validate and search for RNC and NCF numbers
  • Add/update whitelists for Dominican Republic RNC and Cedula
  • Support zeep as preferred SOAP library (suds and pysimplesoap are tried as fallback)
  • Rename stdnum.iso9362 to stdnum.bic (iso9362 is deprecated but still available for compatibility)
  • Add tests for web services (not normally run to avoid unnecessary load)
  • Fixes and improvement to the sample online validation service

Development of the NCF format validation and DGII web service validation was funded by iterativo | http://iterativo.do

changes from 1.6 to 1.7

  • Add modules for the following number formats:
    • BN (Canadian Business Number)
    • SIN (Canadian Social Insurance Number)
    • IdNr (Steuerliche Identifikationsnummer, German personal tax number) (thanks Mohammed Salman of Holvi)
    • Registrikood (Estonian organisation registration code) (thanks Mohammed Salman of Holvi)
    • Veronumero (Finnish individual tax number) (thanks Mohammed Salman of Holvi)
    • UPN (English Unique Pupil Number)
  • Fix a bug in the Czech DIČ check digit calculation
  • Fix conversion of 9 digit ISBN to ISBN13
  • Fix a bug in the Damm is_valid() function
  • More validation of 13-digit ISBN values
  • More validation of ISMN values
  • Various code and test improvements (100% branch coverage now)
  • Documentation improvements

changes from 1.5 to 1.6

  • Add modules for the following number formats:
    • CBU (Clave Bancaria Uniforme, Argentine bank account number) (thanks Luciano Rossi)
    • EIC (European Energy Identification Code)
    • NACE (classification for businesses in the European Union)
    • LEI (Legal Entity Identifier)
    • n° TVA (taxe sur la valeur ajoutée, Monacan VAT number)
    • PIB (Poreski Identifikacioni Broj, Serbian tax identification number)
  • Add online check example that finds valid formats for a given number
  • Fix support for Ñ in Spanish Referencia Catastral
  • Updates to U.S. Employer Identification Number (thanks Greg Kuwaye)
  • Various minor improvements

changes from 1.4 to 1.5

  • Add modules for the following number formats:
    • ABN (Australian Business Number)
    • ACN (Australian Company Number)
    • TFN (Australian Tax File Number)
    • CCC (Código Cuenta Corriente, Spanish Bank Account Code)
    • CUPS (Código Unificado de Punto de Suministro, Supply Point Unified Code)
    • Spanish IBAN (International Bank Account Number)
    • Referencia Catastral (Spanish real estate property id)
  • The IBAN module now support validating the country-specific part
  • The Belgian VAT number is now also referenced as businessid
  • Add a Tox configuration file

changes from 1.3 to 1.4

  • Add modules for the following number formats:
    • NIF (Numéro d’Immatriculation Fiscale, French tax identification number) provided by Dimitri Papadopoulos
    • NIR (French personal identification number) provided by Dimitri Papadopoulos
    • SIRET (a French company establishment identification number) provided by Yoann Aubineau
    • NHS (United Kingdom National Health Service patient identifier)
    • T.C. Kimlik No. (Turkish personal identification number)
  • Add an implementation of the Damm algorithm
  • Ensure data files are properly closed
  • Documentation improvements
  • Extend test suite
  • A number of minor bug fixes and improvements

changes from 1.2 to 1.3

  • Fix ISO 6346 check digit calculation (thanks Ronald Paloschi)
  • Fix problem with check_vies_approx() (thanks Lionel Elie Mamane)
  • Fix problem with SOAP client when using suds
  • Include documentation that was previously on the Trac wiki

changes from 1.1 to 1.2

  • Add modules for the following number formats:
    • Austrian Company Register Numbers
    • CNPJ (Cadastro Nacional da Pessoa Jurídica, Brazillian company identifier)
    • UID (Unternehmens-Identifikationsnummer, Swiss business identifier)
    • VAT, MWST, TVA, IVA, TPV (Mehrwertsteuernummer, the Swiss VAT number)
    • CUSIP number (financial security identification number)
    • Wertpapierkennnummer (German securities identification code)
    • Isikukood (Estonian Personcal ID number)
    • Finnish Association Identifier
    • Y-tunnus (Finnish business identifier)
    • SEDOL number (Stock Exchange Daily Official List number)
    • IMO number (International Maritime Organization number)
    • ISIN (International Securities Identification Number)
    • RFC (Registro Federal de Contribuyentes, Mexican tax number)
    • PESEL (Polish national identification number)
    • REGON (Rejestr Gospodarki Narodowej, Polish register of economic units)
    • ИНН (Идентификационный номер налогоплательщика, Russian tax identifier)
  • Add an alternate VIES check (check_vies_approx()) that includes a proof (certificate) that the check was performed
  • Fall back to pysimplesoap if suds is unavailable
  • Test and code quality improvements

changes from 1.0 to 1.1

  • Add number formats based on the implementation in the vatnumber module:
    • NIPT (Numri i Identifikimit për Personin e Tatueshëm, Albanian VAT number)
    • CUIT (Código Único de Identificación Tributaria, Argentinian tax number)
    • RUT (Rol Único Tributario, Chilean national tax number)
    • NIT (Número De Identificación Tributaria, Colombian identity code)
    • COE (Codice operatore economico, San Marino national tax number)
  • Add modules for the following number formats:
    • Cedula (Dominican Republic national identification number)
    • RNC (Registro Nacional del Contribuyente, Dominican Republic tax number)
    • Kennitala (Icelandic personal and organisation identity code, provided by Tuomas Toivonen)
    • VSK number (Virðisaukaskattsnúmer, Icelandic VAT number, provided by Tuomas Toivonen)
    • ISO 9362 (Business identifier codes, provided by Tony Bajan)
    • MVA (Merverdiavgift, Norwegian VAT number, provided by Tuomas Toivonen)
    • Orgnr (Organisasjonsnummer, Norwegian organisation number, provided by Tuomas Toivonen)
    • Orgnr (Organisationsnummer, Swedish company number, provided by Tomas Thor Jonsson)
  • Add Croatia to list of EU VAT numbers
  • Update getcnloc script
  • Various small fixes and additional tests for existing modules

changes from 0.9 to 1.0

  • Add modules for the following number formats:
    • Swiss social security number (“Sozialversicherungsnummer”)
    • RIC No. (Chinese Resident Identity Card Number)
    • CI (Cédula de identidad, Ecuadorian personal identity code)
    • RUC (Registro Único de Contribuyentes, Ecuadorian company tax number)
    • SEPA Identifier of the Creditor (AT-02)
    • ISO 6346 (International standard for container identification)
    • Codice Fiscale (Italian tax code for individuals)
    • RTN (Routing transport number)
  • Add support for 2013 extension of Irish PPS Numbers
  • Update getisbn script
  • Update getmybp URLs for Malaysian code lists
  • Various other minor improvements

changes from 0.8.1 to 0.9

  • Add modules for the following number formats:
    • Brin number (Dutch number for schools)
    • Postcode (Dutch postal code)
    • ATIN (U.S. Adoption Taxpayer Identification Number)
    • EIN (U.S. Employer Identification Number)
    • ITIN (U.S. Individual Taxpayer Identification Number)
    • PTIN (U.S. Preparer Tax Identification Number)
    • TIN (U.S. Taxpayer Identification Number)
  • Try to replace Unicode characters with similar-looking ASCII characters
  • Update getimsi script (thanks eneq123)
  • Update getiban script
  • Add proxy support to the stdnum.eu.vat.check_vies() function (thanks Cédric Krier)
  • Support newer United Kingdom VAT numbers

changes from 0.8 to 0.8.1

  • Include some files that were missing from the source tarball

changes from 0.7 to 0.8

  • Add modules for the following number formats:
    • NRIC No. (Malaysian National Registration Identity Card Number)
  • All modules now provide a validate() function that throws an exception that contains more information on the failure reason
  • Documentation improvements
  • Remove add_check_digit parameter from GRid’s format() function
  • Improvements to the tests
  • Re-add Python3 support (now tested with Python 2.7, 3.2 and 3.3)

changes from 0.6 to 0.7

  • Add modules for the following number formats:
    • Onderwijsnummer (Dutch school number)
    • BTW-nummer (Omzetbelastingnummer, the Dutch VAT number)
    • HETU (Finnish personal identity code) as provided by Jussi Judin (#5)
    • RČ (Rodné číslo, the Czech and Slovak birth numbers)
    • SIREN (a French company identification number)
    • FPA, ΦΠΑ (Foros Prostithemenis Aksias, the Greek VAT number)
    • Ust ID Nr. (Umsatzsteur Identifikationnummer, the German VAT number)
    • BTW, TVA, NWSt (Belgian VAT number)
    • DNI (Documento nacional de identidad, Spanish personal identity codes)
    • NIE (Número de Identificación de Extranjeros, Spanish foreigner number)
    • CIF (Certificado de Identificación Fiscal, Spanish company tax number)
    • NIF (Número de Identificación Fiscal, Spanish VAT number)
    • PVN (Pievienotās vērtības nodokļa, Latvian VAT number)
    • CVR (Momsregistreringsnummer, Danish VAT number)
    • TVA (taxe sur la valeur ajoutée, Luxembourgian VAT number)
    • CNP (Cod Numeric Personal, Romanian Numerical Personal Code)
    • CF (Cod de înregistrare în scopuri de TVA, Romanian VAT number)
    • Partita IVA (Italian VAT number)
    • Αριθμός Εγγραφής Φ.Π.Α. (Cypriot VAT number)
    • UID (Umsatzsteuer-Identifikationsnummer, Austrian VAT number)
    • NIF (Número de identificação fiscal, Portuguese VAT number)
    • IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number)
    • ALV nro (Arvonlisäveronumero, Finnish VAT number)
    • DIČ (Daňové identifikační číslo, Czech VAT number)
    • ANUM (Közösségi adószám, Hungarian VAT number)
    • VAT (Irish VAT number)
    • KMKR (Käibemaksukohuslase, Estonian VAT number)
    • PVM (Pridėtinės vertės mokestis mokėtojo kodas, Lithuanian VAT number)
    • n° TVA (taxe sur la valeur ajoutée, French VAT number)
    • VAT (Maltese VAT number)
    • NIP (Numer Identyfikacji Podatkowej, Polish VAT number)
    • ID za DDV (Davčna številka, Slovenian VAT number)
    • VAT (Moms, Mervärdesskatt, Swedish VAT number)
    • VAT (United Kingdom (and Isle of Man) VAT registration number)
    • EGN (ЕГН, Единен граждански номер, Bulgarian personal identity codes)
    • PNF (ЛНЧ, Личен номер на чужденец, Bulgarian number of a foreigner)
    • VAT (Идентификационен номер по ДДС, Bulgarian VAT number)
    • VAT (European Union VAT number)
    • OIB (Osobni identifikacijski broj, Croatian identification number)
    • PPS No (Personal Public Service Number, Irish personal number)
    • CPR (personnummer, the Danish citizen number)
  • Additional tests for robustness and use introspection to test all modules
  • Some code refactoring with the introduction of an internal utility module
  • Improvements to the docstring documentation
  • Generate API documentation using Sphinx

changes from 0.5 to 0.6

  • Fix a problem with handling an ISBN13 with a valid check digit but with an unknown bookland prefix
  • Add an IMSI (International Mobile Subscriber Identity) module
  • Implement a conversion function from ISBN13 to ISBN10
  • Implement an ismn.ismn_type() function
  • Implement an imei.split() function that splits the number into a TAC, serial number and checksum or software version
  • Source code layout changes to better follow PEP8

changes from 0.4 to 0.5

  • Add modules for the following number formats:
    • EAN (International Article Number)
  • Refactoring to use the EAN check digit code for ISBN and ISMN checks
  • Implement a conversion function from ISSN to EAN
  • Support Python3 with the same codebase
  • Python 2.5 compatibility improvement

changes from 0.3 to 0.4

  • Add modules for the following number formats:
    • CPF (Cadastro de Pessoas Físicas, the Brazillian national identification number)
    • IBAN (International Bank Account Number)
    • ISIL (International Standard Identifier for Libraries and Related Organizations)
    • SSN (U.S. Social Security Number)
  • Implement an internal module to store and handle hierarchically organised data structures efficiently
  • Regional-specific numbers are now in ISO 3166 packages (the BSN module is now in stdnum.nl.bsn)
  • ISBN module functions now have a convert flag to convert to ISBN-13 on the fly

changes from 0.2 to 0.3

  • Add modules for the following number formats:
    • ISMN (International Standard Music Number)
    • ISAN (International Standard Audiovisual Number)
    • IMEI (International Mobile Equipment Identity)
    • MEID (Mobile Equipment Identifier)
    • GRid (Global Release Identifier)
  • Add modules for handling the following check digit algorithms:
    • the Verhoeff algorithm
    • the Luhn and Luhn mod N algorithms
    • some algorithms described in ISO/IEC 7064: Mod 11, 2, Mod 37, 2, Mod 97, 10, Mod 11, 10 and Mod 37, 36
  • Added more unit tests

changes from 0.1 to 0.2

  • Rename validate() function to is_valid() for all modules
  • Handle wrong types passed to is_valid() more gracefully
  • Add more tests and fix some minor bugs