Itella SmartPost API wrapper for humans 📦
Project description
aiosmartpost - Itella SmartPost API wrapper for humans 📦
WORK IN PROGRESS! NOT READY FOR PRODUCTION USE
This solution:
- has both async and sync API
- has 100% type-annotated code
- is tested in real-world project in Estonia
Quickstart
Examples use async version of Client
, but you can use import below instead and remove await
keywords:
from smartpost.sync import Client
Fetch list of available Estonian destinations:
>>> from smartpost import Client
>>> client = Client("user", "pass") # credentials can be omitted in this case
>>> await client.get_ee_terminals()
[Destination(place_id=101, name='Viljandi Männimäe Selver', ...), ...]
Add new shipment order and get A5 PDF with label for it:
>>> from smartpost import Client
>>> from smartpost.errors import ShipmentOrderError
>>> from smartpost.models import Recipient, EETerminalDestination, ShipmentOrder
>>> client = Client("user", "pass")
>>> recipient = Recipient("John Doe", "+37255555555", "john.doe@example.com")
>>> terminal = EETerminalDestination(102)
>>> order_id = 547
>>> order = ShipmentOrder(recipient, terminal, reference=str(order_id))
>>> try:
>>> orders_info = await client.add_shipment_orders([order])
>>> except ShipmentOrderError as exc:
>>> print("Failed to add shipment order:")
>>> for error_details in exc.errors:
>>> print(f"Order #{error_details['reference']} error: {str(error_details)}")
>>>
>>> orders_info
[OrderInfo(barcode='XXXXXXXXXXXXXXXX', reference=None, sender=None, doorcode=None)]
>>> pdf_bytes = await client.get_labels_pdf("A5", [orders_info[0].barcode])
>>> with open("/tmp/test.pdf", "wb") as file:
... file.write(pdf_bytes)
...
57226
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiosmartpost-0.3.0.tar.gz
(7.6 kB
view details)
Built Distribution
File details
Details for the file aiosmartpost-0.3.0.tar.gz
.
File metadata
- Download URL: aiosmartpost-0.3.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a87698ae8d2502370061515312f3f741e9b97a9ff03716c6beb765b817b27c3 |
|
MD5 | 03d8534859cf3b20998f92ab48fcddd3 |
|
BLAKE2b-256 | 064efb8453e8433c5218133d70ab7c2761f796ad91a69807f5c5d211d85425d1 |
File details
Details for the file aiosmartpost-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: aiosmartpost-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 810e94a76a1593a3d1bd9ac8fac39400bcb7476f145363cf7117cbc4ef93b4bd |
|
MD5 | 34dbfb1da7d385616de5e8cd8cbd09db |
|
BLAKE2b-256 | 83797227ea20e901de625f83601c5540e36451575408e41133127e6183571ae9 |