Skip to main content

Python SDK for Datalogics shipping API

Project description

datalogic-sdk

Python SDK for the Datalogics shipping API.

Documentation

The OpenAPI file documents the vendor HTTP endpoint, not the Python SDK itself. It is included as a reference for API tooling, contract review, mock servers, or future code generation. The SDK does not load it at runtime.

Installation

From this repository:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install .

This project currently has no third-party runtime dependencies. The requirements.txt file is intentionally empty except for a comment.

If you only want to run from a checkout without installing:

PYTHONPATH=src python -m unittest discover -s tests

Development

Install the SDK and dev tooling inside a virtual environment:

make install

Available commands:

make format
make lint
make typecheck
make test
make package
make release

make package builds the source distribution and wheel into dist/. make release increments the latest vX.Y.Z tag by one patch version, updates pyproject.toml, runs verification, commits the version bump, creates an annotated tag, pushes the branch, and pushes the tag.

CI/CD

GitHub Actions workflows live in .github/workflows/.

  • ci.yml runs on pushes to main, pull requests to main, and manual dispatch. It installs the package with dev tooling, then runs lint, typecheck, tests, and package build across Python 3.9 through 3.13.
  • release.yml runs on tags matching v* and manual dispatch. It runs the same checks, builds dist/, uploads the distribution files as a workflow artifact, creates a GitHub Release for tag builds, and publishes to PyPI through Trusted Publishing.
  • PyPI publishing does not use a stored API token. Configure a pending trusted publisher in PyPI with these values:
    • PyPI project name: datalogic-sdk
    • Owner: yair-ros
    • Repository name: datalogic-sdk
    • Workflow name: release.yml
    • Environment name: pypi

To create a GitHub Release and trigger PyPI publishing:

make release

If your virtual environment is not activated, pass the interpreter explicitly:

make release PYTHON=.venv/bin/python

Usage

from datalogic_sdk import DatalogicClient, Order, Origin, ShippingDetails

client = DatalogicClient("YOUR_AUTHENTICATION_TOKEN")

response = client.create_shipping(
    order=Order(
        id=123,
        number="ORD-123",
        shipping=ShippingDetails(
            street="Herzl",
            city="Tel Aviv",
            first_name="Dana",
            last_name="Cohen",
            postcode="6100000",
            house="10",
            apartment="3",
            phone="0501234567",
            # Use n_code only when the customer chose a pickup location.
            n_code="PICKUP_LOCATION_ID",
        ),
        comment="Leave at reception",
    ),
    origin=Origin(
        contract="1234",
        company_name="Acme Ltd",
        city="Jerusalem",
        street="Jaffa",
        house="1",
        phone="021234567",
        email="ops@example.com",
    ),
)

print(response.status_code)
print(response.data)

Validation

The SDK validates the request before sending it:

  • token is required.
  • order.id and order.number are required.
  • Required shipping fields: street, city, first_name, last_name, house, phone.
  • Optional shipping fields: postcode, apartment, n_code.
  • origin.contract must be exactly 4 characters.
  • Required origin fields: company_name, city, street, house, phone, email.

Error Handling

from datalogic_sdk import (
    DatalogicAPIError,
    DatalogicClient,
    DatalogicValidationError,
    Order,
    Origin,
    ShippingDetails,
)

client = DatalogicClient("YOUR_AUTHENTICATION_TOKEN")
order = Order(
    id=123,
    number="ORD-123",
    shipping=ShippingDetails(
        street="Herzl",
        city="Tel Aviv",
        first_name="Dana",
        last_name="Cohen",
        house="10",
        phone="0501234567",
    ),
)
origin = Origin(
    contract="1234",
    company_name="Acme Ltd",
    city="Jerusalem",
    street="Jaffa",
    house="1",
    phone="021234567",
    email="ops@example.com",
)

try:
    response = client.create_shipping(order=order, origin=origin)
except DatalogicValidationError as exc:
    print(f"Invalid request: {exc}")
except DatalogicAPIError as exc:
    print(f"API error {exc.status_code}: {exc.response_body}")

Endpoint

By default the client calls:

https://connect.datalogics.co.il/rest/w_create_shipping

You can override the base URL for testing:

from datalogic_sdk import DatalogicClient

client = DatalogicClient("token", base_url="https://example.test")

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

datalogic_sdk-0.1.1.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datalogic_sdk-0.1.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file datalogic_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: datalogic_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datalogic_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d9fdaff7ce8d315e69cdb4072664bef79a460cbbdce829ac1af53f0a0836d7ac
MD5 140c6bfd9d31b932ebe7e379b89b9f3a
BLAKE2b-256 bf903617e2aca05cc63def5bcc9d29d266e7e8d6d52738215f98db3a064b1046

See more details on using hashes here.

Provenance

The following attestation bundles were made for datalogic_sdk-0.1.1.tar.gz:

Publisher: release.yml on yair-ros/datalogic-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file datalogic_sdk-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: datalogic_sdk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datalogic_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8b391d3357528210e8f68d11595e79ce6ce6de7a1bd2c97471cdf96cc33d692d
MD5 e4c258d0becea82611e0c97a529951c3
BLAKE2b-256 76115726ad576d3f1079897365b48e74603b37d6bc75b38b439d56ed31a343c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for datalogic_sdk-0.1.1-py3-none-any.whl:

Publisher: release.yml on yair-ros/datalogic-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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