Skip to main content

Pydantic Identifiers

Project description

Pydentic

Pydentic is a thin wrapper over python-stdnum to facilitate the use of its extensive collection of validators and formatters in Pydantic models.

pip install pydentic

Features

Automatic validation and formatting.

from pydentic.strings import Iban
from pydantic import BaseModel

class User(BaseModel):
    name: str
    iban: Iban

user = User(name='John Doe', iban='es1000750080110600658108')
print(user)

#> name='John Doe' iban='ES10 0075 0080 1106 0065 8108'
# note the extra last character
user = User(name='John Doe', iban='es1000750080110600658108Ñ')

# raises
...
pydantic.error_wrappers.ValidationError: 1 validation error for User
iban
  es1000750080110600658108Ñ (type=value_error.format; error=invalid literal for int() with base 36: 'Ñ')

Title and description in the JSON Schema.

{
  "title": "User",
  "type": "object",
  "properties": {
    "name": {
      "title": "Name",
      "type": "string"
    },
    "iban": {
      "title": "IBAN",
      "description": "International Bank Account Number",
      "type": "string"
    }
  },
  "required": ["user", "iban"]
}

The classes Isan, Isbn, and Issn include a urn property that, not surprisingly, returns their URN.

from pydentic.strings import Isbn
from pydantic import BaseModel

class Book(BaseModel):
    author: str
    title: str
    isbn: Isbn

book = Book(author='D. Hofstadter', title='GEB', isbn='978-0-465-02656-2')
print(book.isbn.urn)

#> urn:isbn:9780465026562

Identifiers

The list below contains some available international identifiers. There are around 200 more identifiers included (see the python-stdnum docs for the complete list.)

identifier spec description
BIC ISO 9362 Business Identifier Code
BIC-Code ISO 6346 International standard for container identification
Bitcoin address
CAS RN Chemical Abstracts Service Registry Number
CUSIP number financial security identification number
EAN International Article Number
FIGI OMG FIGI Financial Instrument Global Identifier
GRid Global Release Identifier
GS1-128 GS-1 (product information) using Code 128 barcodes
IBAN ISO 13616 International Bank Account Number
IMEI International Mobile Equipment Identity
IMO number International Maritime Organization number
IMSI International Mobile Subscriber Identity
ISAN ISO 15706 International Standard Audiovisual Number
ISBN ISO 2108 International Standard Book Number
ISIL ISO 15511 International Standard Identifier for Libraries
ISIN ISO 6166 International Securities Identification Number
ISMN ISO 10957 International Standard Music Number for notated music
ISSN ISO 3297 International Standard Serial Number
LEI ISO 17442 Legal Entity Identifier
MAC address Media Access Control address
MEID Mobile Equipment Identifier
ISO 11649 Structured Creditor Reference

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydentic-0.0.1.dev3.tar.gz (7.0 kB view hashes)

Uploaded Source

Built Distribution

pydentic-0.0.1.dev3-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page