跳转到主要内容

处理标准化数字和代码的Python模块

项目描述

python-stdnum

一个Python模块,用于解析、验证和重新格式化不同格式的标准化数字和代码。它包含大量数字格式。

基本上,任何具有某些验证机制或某些常见格式的数字或代码都有资格包含在这个库中。

https://arthurdejong.org/python-stdnum/

支持的格式

目前此软件包支持以下格式

  • NRT (Andorra税务登记号)
  • NIPT, NUIS (阿尔巴尼亚税务登记号)
  • CBU (阿根廷银行账户号)
  • CUIT (阿根廷税务识别号)
  • DNI (阿根廷国家身份证号)
  • 奥地利公司登记号
  • 邮编(奥地利邮政编码)
  • 税务识别号(奥地利税务识别号)
  • UID(增值税识别号,奥地利增值税号)
  • VNR、SVNR、VSNR(保险号,奥地利社会保险号)
  • ABN(澳大利亚商业编号)
  • ACN(澳大利亚公司编号)
  • TFN(澳大利亚税务文件号)
  • BIS(比利时BIS编号)
  • 比利时IBAN(国际银行账户号码)
  • NN、NISS、RRN(比利时国民编号)
  • BTW、TVA、NWSt、企业编号(比利时企业编号)
  • EGN(ЕГН,Единен граждански номер,保加利亚个人身份代码)
  • PNF(ЛНЧ,Личен номер на чужденец,保加利亚外国人编号)
  • VAT(Идентификационен номер по ДДС,保加利亚增值税号)
  • BIC(ISO 9362商业标识代码)
  • 比特币地址
  • CNPJ(巴西法人登记证,巴西公司标识符)
  • CPF(巴西个人登记证,巴西国民标识符)
  • УНП、UNP(Учетный номер плательщика,白俄罗斯增值税号)
  • BC PHN(不列颠哥伦比亚省个人健康号码)
  • BN(加拿大商业编号)
  • SIN(加拿大社会保险号)
  • CAS RN(化学文摘服务注册号)
  • CFI(ISO 10962金融工具分类)
  • ESR、ISR、QR引用(瑞士付款单据上的参考号)
  • 瑞士社会保险号码("Sozialversicherungsnummer")
  • UID(Unternehmens-Identifikationsnummer,瑞士商业标识符)
  • VAT、MWST、TVA、IVA、TPV(增值税号码,瑞士增值税号)
  • RUT(Rol Único Tributario,智利国民税收号码)
  • RIC No.(中国居民身份证号码)
  • USCC(统一社会信用代码,中国税号)
  • NIT(Identificación Tributaria,哥伦比亚身份代码)
  • CPF(Cédula de Persona Física,哥斯达黎加自然人身份证号码)
  • CPJ(Cédula de Persona Jurídica,哥斯达黎加税号)
  • CR(Cédula de Residencia,哥斯达黎加外国人身份证号码)
  • NI(Número de identidad,古巴身份证号码)
  • CUSIP号码(金融安全识别号)
  • Αριθμός Εγγραφής Φ.Π.Α.(塞浦路斯增值税号)
  • 捷克银行账户号码
  • DIČ(Daňové identifikační číslo,捷克增值税号)
  • RČ(Rodné číslo,捷克出生号码)
  • Handelsregisternummer(德国公司登记号)
  • IdNr(Steuerliche Identifikationsnummer,德国个人所得税号)
  • St.-Nr.(Steuernummer,德国税号)
  • Ust ID Nr.(Umsatzsteur Identifikationnummer,德国增值税号)
  • Wertpapierkennnummer(德国证券识别代码)
  • CPR(personnummer,丹麦公民号码)
  • CVR(Momsregistreringsnummer,丹麦增值税号)
  • Cedula(多米尼加共和国国民身份证号码)
  • NCF(Números de Comprobante Fiscal,多米尼加共和国收据号码)
  • RNC(Registro Nacional del Contribuyente,多米尼加共和国税号)
  • NIF,有时N.I.F.(Numéro d'Identification Fiscale,阿尔及利亚税号)
  • EAN(国际商品编号)
  • CI(Cédula de identidad,厄瓜多尔个人身份代码)
  • RUC(Registro Único de Contribuyentes,厄瓜多尔公司税号)
  • Isikukood(爱沙尼亚个人身份证号码)
  • KMKR(Käibemaksukohuslase,爱沙尼亚增值税号)
  • Registrikood(爱沙尼亚组织注册代码)
  • 税务登记号(الرقم الضريبي,埃及税号)
  • CCC(Código Cuenta Corriente,西班牙银行账户代码)
  • CIF(Código de Identificación Fiscal,西班牙公司税号)
  • CUPS(Código Unificado de Punto de Suministro,西班牙计量点号码)
  • DNI(Documento Nacional de Identidad,西班牙个人身份代码)
  • 西班牙IBAN(国际银行账户号码)
  • NIE(Número de Identificación de Extranjero,西班牙外国人号码)
  • NIF(Número de Identificación Fiscal,西班牙增值税号)
  • 邮编(西班牙邮政编码)
  • Referencia Catastral(西班牙房地产物业标识符)
  • 债权人SEPA标识符(AT-02)
  • 欧元纸币序列号
  • EC编号(欧洲共同体编号)
  • EIC(欧洲能源标识代码)
  • NACE(欧盟企业分类)
  • OSS(欧盟电子商务增值税——一站式商店)
  • VAT(欧盟增值税号)
  • ALV号码(增值税号,芬兰增值税号)
  • 芬兰协会标识符
  • HETU(个人识别号,芬兰个人身份证号)
  • 税务号码(芬兰个人税务号)
  • Y号码(芬兰企业标识符)
  • FIGI(金融工具全球标识符)
  • V号码(Vinnutal,法罗群岛税务号)
  • NIF(Numéro d'Immatriculation Fiscale,法国税务识别号)
  • NIR(法国个人识别号)
  • SIREN(法国公司识别号)
  • SIRET(法国公司注册识别号)
  • n° TVA(taxe sur la valeur ajoutée,法国增值税号)
  • NHS(英国国家医疗服务体系患者标识符)
  • SEDOL号码(证券交易所每日官方名单号)
  • UPN(English Unique Pupil Number,英国独特学生号)
  • UTR(英国唯一纳税人参考号)
  • VAT(英国(及马恩岛)增值税登记号)
  • TIN(Taxpayer Identification Number,加纳税务号)
  • NIFp(Numéro d'Identification Fiscale Permanent,几内亚税务号)
  • AMKA(Αριθμός Μητρώου Κοινωνικής Ασφάλισης,希腊社会保障号)
  • FPA,ΦΠΑ,ΑΦΜ(Αριθμός Φορολογικού Μητρώου,希腊增值税号)
  • GRid(全球发布标识符)
  • GS1-128(用于在Code 128条形码中编码产品信息的标准)
  • NIT(Número de Identificación Tributaria,危地马拉税务号)
  • OIB(Osobni identifikacijski broj,克罗地亚识别号)
  • ANUM(Közösségi adószám,匈牙利增值税号)
  • IBAN(国际银行账户号)
  • NPWP(Nomor Pokok Wajib Pajak,印度尼西亚增值税号)
  • PPS No(Personal Public Service Number,爱尔兰个人号)
  • VAT(爱尔兰税务参考号)
  • 公司编号(以色列公司号)
  • 身份证号(以色列身份证号)
  • IMEI(国际移动设备身份码)
  • IMO号码(国际海事组织号)
  • IMSI(国际移动用户身份码)
  • Aadhaar(印度个人身份号码)
  • EPIC(Electoral Photo Identity Card,印度选民ID)
  • GSTIN(货物及服务税识别号,印度增值税号)
  • PAN(永久账户号码,印度所得税识别号)
  • VID(印度个人虚拟身份号码)
  • Kennitala(冰岛个人和组织身份代码)
  • VSK号码(Virðisaukaskattsnúmer,冰岛增值税号)
  • ISAN(国际标准视听号)
  • ISBN(国际标准书号)
  • ISIL(国际图书馆标准标识符)
  • ISIN(国际证券识别号)
  • ISMN(国际标准音乐号)
  • ISO 11649(结构化债权人参考号)
  • ISO 6346(集装箱标识的国际标准)
  • ISRC(国际标准录音代码)
  • ISSN(国际标准连续出版物号)
  • AIC(意大利药品识别码)
  • Codice Fiscale(意大利个人税务码)
  • Partita IVA(意大利增值税号)
  • CN(法人番号,日本法人号)
  • PIN(Personal Identification Number,肯尼亚税务号)
  • BRN(사업자 등록 번호,韩国企业注册号)
  • RRN(韩国居民登记号)
  • LEI(法人实体标识符)
  • PEID(列支敦士登个人和实体税务码)
  • Asmens kodas(立陶宛,个人号)
  • PVM(Pridėtinės vertės mokestis mokėtojo kodas,立陶宛增值税号)
  • TVA(taxe sur la valeur ajoutée,卢森堡增值税号)
  • PVN(Pievienotās vērtības nodokļa,拉脱维亚增值税号)
  • ICE(Identifiant Commun de l’Entreprise,摩洛哥税务号)
  • MAC地址(媒体访问控制地址)
  • n° TVA(taxe sur la valeur ajoutée,摩纳哥增值税号)
  • IDNO(摩尔多瓦公司识别号)
  • 黑山IBAN(国际银行账户号)
  • PIB(Poreski Identifikacioni Broj,黑山税务号)
  • MEID(移动设备标识符)
  • ЕДБ(Едниствен Даночен Број,北马其顿税务号)
  • VAT(马耳他增值税号)
  • ID号码(毛里求斯国家标识符)
  • CURP(Clave Única de Registro de Población,墨西哥个人ID)
  • RFC(墨西哥联邦纳税人登记号)
  • NRIC No.(马来西亚国民注册身份卡号码)
  • BRIN号码(荷兰学校识别号码)
  • BSN(Burgerservicenummer,荷兰公民身份号码)
  • Btw-identificatienummer(Omzetbelastingnummer,荷兰增值税号码)
  • Onderwijsnummer(荷兰学生身份号码)
  • Postcode(荷兰邮政编码)
  • Fødselsnummer(挪威出生号码,国家身份证号码)
  • 挪威IBAN(国际银行账户号码)
  • Konto nr.(挪威银行账户号码)
  • MVA(Merverdiavgift,挪威增值税号码)
  • Orgnr(Organisasjonsnummer,挪威组织号码)
  • 新西兰银行账户号码
  • IRD号码(新西兰国内税务局(Te Tari Tāke)号码)
  • CUI(Cédula Única de Identidad,秘鲁身份号码)
  • RUC(Registro Único de Contribuyentes,秘鲁公司税号)
  • CNIC号码(巴基斯坦计算机化国民身份卡号码)
  • NIP(Numer Identyfikacji Podatkowej,波兰增值税号码)
  • PESEL(波兰国民识别号码)
  • REGON(Rejestr Gospodarki Narodowej,波兰经济单位登记册)
  • CC(Número de Cartão de Cidadão,葡萄牙身份证号码)
  • NIF(Número de identificação fiscal,葡萄牙增值税号码)
  • RUC号码(Registro Único de Contribuyentes,巴拉圭税号)
  • CF(Cod de înregistrare în scopuri de TVA,罗马尼亚增值税号码)
  • CNP(Cod Numeric Personal,罗马尼亚数字个人代码)
  • CUI或CIF(Codul Unic de Înregistrare,罗马尼亚公司标识符)
  • ONRC(Ordine din Registrul Comerţului,罗马尼亚贸易登记标识符)
  • PIB(Poreski Identifikacioni Broj,塞尔维亚税务识别号码)
  • ИНН(Идентификационный номер налогоплательщика,俄罗斯税务标识符)
  • Orgnr(Organisationsnummer,瑞典公司号码)
  • Personnummer(瑞典个人身份证号码)
  • Postcode(瑞典邮政编码)
  • VAT(Moms,Mervärdesskatt,瑞典增值税号码)
  • UEN(新加坡唯一实体号码)
  • ID za DDV(Davčna številka,斯洛文尼亚增值税号码)
  • Enotna matična številka občana(唯一主公民号码)
  • Matična številka poslovnega registra(公司注册号码)
  • IČ DPH(IČ pre daň z pridanej hodnoty,斯洛伐克增值税号码)
  • RČ(Rodné číslo,斯洛伐克出生号码)
  • COE(Codice operatore economico,圣马力诺国家税号)
  • NIT(Número de Identificación Tributaria,萨尔瓦多税号)
  • MOA(泰国备忘录协会号码)
  • PIN(泰国个人识别号码)
  • TIN(泰国纳税人识别号码)
  • MF(Matricule Fiscal,突尼斯税号)
  • T.C. Kimlik No.(土耳其个人识别号码)
  • VKN(Vergi Kimlik Numarası,土耳其税务识别号码)
  • UBN(統一編號,台湾税号)
  • ЄДРПОУ,EDRPOU(乌克兰企业和组织标识符)
  • РНОКПП,RNTRC(乌克兰个人纳税人登记号)
  • ATIN(美国领养纳税人识别号码)
  • EIN(美国雇主识别号码)
  • ITIN(美国个人纳税人识别号码)
  • PTIN(美国税务准备人识别号码)
  • RTN(路由运输号码)
  • SSN(美国社会保障号码)
  • TIN(美国纳税人识别号码)
  • RUT(Registro Único Tributario,乌拉圭税号)
  • VATIN(国际增值税识别号码)
  • RIF(Registro de Identificación Fiscal,委内瑞拉增值税号码)
  • MST(Mã số thuế,越南税号)
  • ID号码(南非身份证件号码)
  • TIN(南非税务识别号码)

此外,还有多种通用校验位算法可供使用

  • Verhoeff算法
  • Damm算法
  • Luhn和Luhn mod N算法
  • 本库描述了ISO/IEC 7064: Mod 11, 2, Mod 37, 2, Mod 97, 10, Mod 11, 10和Mod 37, 36中的一些算法

基本上,任何具有某种验证机制或某种常见格式的数字或代码都适用于包含在本库中。

这些模块通常不提供关于指定数字的含义和使用背景信息,只提供解析和处理函数。

接口

所有模块都实现一个公共接口。例如,对于ISBN验证

>>> from stdnum import isbn
>>> isbn.validate('978-9024538270')
'9789024538270'
>>> isbn.validate('978-9024538271')
Traceback (most recent call last):
    ...
InvalidChecksum: ...

这些模块大多数实现以下功能

  • validate() 验证传入的数字的正确性,并返回数字的紧凑表示形式;无效的数字将被stdnum.exceptions模块中的一个异常拒绝
  • compact() 返回数字或代码的紧凑表示形式;此函数通常不进行验证,但对于明显错误的数字可能会引发异常
  • format() 返回数字的推荐格式的格式化版本;此函数通常期望传入有效的数字或代码

除了上述功能外,模块可能还会添加额外的解析、验证或转换函数。

要求

模块不应需要任何外部Python模块,且应为纯Python。这些模块是在Python 2.7和3.6上开发和测试的,但也可能与较旧的Python版本兼容。

版权

版权 (C) 2010-2024 Arthur de Jong和其他人

本库是免费软件;您可以在自由软件基金会的GNU较小通用公共许可证的条款下重新分发和/或修改它;许可证版本2.1或(根据您的选择)许可证的任何后续版本。

本库的发布是为了希望它是有用的,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU较小通用公共许可证。

您应该已经收到了一份GNU较小通用公共许可证副本;如果没有,请写信给自由软件基金会,51 Franklin Street,第五层,波士顿,MA 02110-1301 USA

反馈和错误报告

如果您对python-stdnum有任何问题,希望报告错误或请求添加格式,请将电子邮件发送到python-stdnum-users@lists.arthurdejong.org。补丁和代码贡献非常受欢迎。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

python-stdnum-1.20.tar.gz (1.2 MB 查看哈希值)

上传时间: 源代码

构建的发行版

python_stdnum-1.20-py2.py3-none-any.whl (1.1 MB 查看哈希值)

上传时间: Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面