Skip to content

v1.4.0

Latest

Choose a tag to compare

@hra42 hra42 released this 27 Sep 22:43
2e9d0e1

What’s Changed

First release of the Python SDK for the seventhings Customer API. It has feature parity with the Go and PHP SDKs at v1.4.0.

pip install seventhings-customer-api

Added

  • Sync and async clients: Client and AsyncClient on httpx, which is the only runtime dependency. Both share one request/decoding layer, and the sync client is generated from the async source.
  • Full API coverage: auth (password, refresh token, SSO auth code, revoke), ping, objects (including barcode lookup, archive/unarchive, file attachments), rooms, locations, users, persons (including create-user), files, tasks, rental cases, field definitions (including mandatory-field helpers), Circularity Hub items and orders, PDF reports, and change history for objects, rooms, locations, persons, tasks and rental cases.
  • Pagination iterators: all() on objects, rooms, locations, rentals, users and persons, plus circularity_hub.all_items(). They work with both for and async for.
  • Typed models:
    • frozen dataclasses and str enums;
    • a Fields dict with typed accessors for the tenant-specific records;
    • fully typed (py.typed, mypy strict).
  • Errors: APIError (with is_not_found, is_feature_inactive, …), NetworkError and DecodeError, all deriving from SeventhingsError.
  • Examples and docs: a live end-to-end demo in examples/demo/, plus a README covering every module.

Differences from the Go SDK

  • The client has a default 30-second timeout (timeout=None disables it).
  • Room/location patch returns None when the API answers with an empty body, instead of failing.
  • Enum values unknown to this SDK version are kept as plain strings instead of raising.

Verification

  • 447 unit tests, each run against both the sync and the async client, pass on Python 3.10–3.14. They also pass locally on 3.15.0rc2.
  • The live integration suite (ported from Go) passed 41 tests with 2 skips; the skipped Circularity Hub item and order tests need hub items on the instance. The demo completed end to end on 3.14 and 3.15rc2.
  • The package is published to PyPI through trusted publishing, with digital attestations.