Skip to main content

Itella SmartPost API wrapper for humans 📦

Project description

aiosmartpost - Itella SmartPost API wrapper for humans 📦

WORK IN PROGRESS! NOT READY FOR PRODUCTION USE

Official SmartPost API Docs

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


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.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

aiosmartpost-0.3.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file aiosmartpost-0.3.2.tar.gz.

File metadata

  • Download URL: aiosmartpost-0.3.2.tar.gz
  • Upload date:
  • Size: 8.5 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

Hashes for aiosmartpost-0.3.2.tar.gz
Algorithm Hash digest
SHA256 17712310bc63a36b10b6510a9a54e06bc8b6896e7132e68e92e72fac27425558
MD5 c3df0916924face69deaa2e69bda7de4
BLAKE2b-256 b6df0954a5139439ea9cf00111be25777e092defa78b0cf7a3429aed71f46f7e

See more details on using hashes here.

File details

Details for the file aiosmartpost-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: aiosmartpost-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 9.9 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

Hashes for aiosmartpost-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 29e05f19e1b2fd53b9620e11ff34729f6da509bf7ed2adb1c0cb365ecc769f89
MD5 f96c59924dfee85c2985c1b7d41519f2
BLAKE2b-256 8d74c5627eda8d31abb31014104bf04a6089a46f65d8c53b6a1fb92fc4746f14

See more details on using hashes here.

Supported by

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