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-apiAdded
- Sync and async clients:
ClientandAsyncClienton 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, pluscircularity_hub.all_items(). They work with bothforandasync for. - Typed models:
- frozen dataclasses and
strenums; - a
Fieldsdict with typed accessors for the tenant-specific records; - fully typed (
py.typed, mypy strict).
- frozen dataclasses and
- Errors:
APIError(withis_not_found,is_feature_inactive, …),NetworkErrorandDecodeError, all deriving fromSeventhingsError. - 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=Nonedisables it). - Room/location
patchreturnsNonewhen 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.