Note: This library is based on the latest IATA ONE Record ontology (working draft)
ONE Record is a standard for data sharing and creates a single record view of the shipment. This standard defines a common data model for the data that is shared via standardized and secured web API. (Source: IATA - ONE Record)
- Python version 3.9+
Install, upgrade and uninstall ONE Record with Python with these commands::
$ pip install onerecord
$ pip install --upgrade onerecord
$ pip uninstall onerecord
from onerecord.models.cargo import Piece
from onerecord.client import ONERecordClient
piece = Piece(**{'company_identifier': 'cgnbeerbrewery',
'goods_description': 'six pack of Koelsch beer',
'gross_weight': {'unit': 'KGM', 'value': 3.922}})
piece.goods_description
#> 'six pack of Koelsch beer'
print(piece.json(exclude_none=True, by_alias=True))
#> {"@type": "https://onerecord.iata.org/Piece", "https://onerecord.iata.org/LogisticsObject#companyIdentifier": "cgnbeerbrewery", "https://onerecord.iata.org/Piece#goodsDescription": "six pack of Koelsch beer", "https://onerecord.iata.org/Piece#grossWeight": {"@type": "https://onerecord.iata.org/Value", "https://onerecord.iata.org/Value#unit": "KGM", "https://onerecord.iata.org/Value#value": 3.922}}
print(type(piece))
#> <class 'onerecord.models.cargo.Piece'>
print(type(piece.gross_weight))
#> <class 'onerecord.models.cargo.Value'>
client = ONERecordClient(host="localhost", port=8080, company_identifier="cgnbeerbrewery")
piece = client.create_logistics_object(piece)
print(piece.id)
#> http://localhost:8080/companies/cgnbeerbrewery/los/piece-1067358949
ONE Record with Python | IATA Data Model Ontology | IATA API Ontology | IATA API Spec |
---|---|---|---|
v0.2.0 | v2.0.0 | v1.1 | v1.1 |
... | ... | ... | ... |
... | ... | ... | ... |
This ONE Record with Python distribution is tested on Python 3.9 and 3.10.
The dependencies are:
- pydantic: Data validation using Python type hints (https://pydantic-docs.helpmanual.io)
- requests: HTTP for Humans (https://requests.readthedocs.io)