tesote-sdk
Official Python SDK for the equipo.tesote.com API.
- Zero runtime dependencies. Uses only the Python standard library.
- Min runtime: Python 3.9.
- Versioned clients side-by-side:
V1Client,V2Client.
Install
pip install tesote-sdk
Usage
from tesote_sdk import V2Client
client = V2Client(api_key="sk_live_...")
for account in client.accounts.list():
print(account["id"])
Mix versions in the same process when you need to:
from tesote_sdk import V1Client, V2Client
legacy = V1Client(api_key="sk_live_...")
new = V2Client(api_key="sk_live_...")
Auth
Single scheme: bearer API key. Pass it at construction. The SDK never persists the key, never logs it, and redacts it to Bearer <last4> in logs and error summaries.
V*Client(api_key="") raises ConfigError synchronously.
Errors
Every error inherits from TesoteError and carries: error_code, message, http_status, request_id, error_id, retry_after, response_body, request_summary, attempts. __cause__ is preserved when wrapping a lower-level exception.
Catch the narrowest type:
from tesote_sdk import RateLimitExceededError, V2Client
try:
V2Client(api_key=key).accounts.list()
except RateLimitExceededError as e:
print(f"slow down for {e.retry_after}s (req {e.request_id})")
Full hierarchy: see docs/architecture/errors.md in the monorepo.
Transport features
Configured at the client; resource modules never reimplement them:
| Concern | Default |
|---|---|
| Retries | 3 attempts, exp backoff + jitter, base 250ms, cap 8s, retry on 429/502/503/504 + network errors |
| Timeouts | connect 5s, read 30s |
| Idempotency | auto Idempotency-Key UUIDv4 on POST/PUT/PATCH/DELETE |
| Rate limits | client.last_rate_limit after every request |
| Cache | opt-in TTL LRU via cache_ttl= per call; pluggable CacheBackend |
| Logging | optional callback, Authorization always redacted |
Polling model (v1, v2)
The platform is poll-based. Use accounts.sync(...) (v2) to trigger a refresh, then poll accounts.get(...) until the data settles.
Versioning
- API versions (
v1,v2) ship side-by-side and never get removed. - SDK semver is independent. Tag releases as
python-vX.Y.Z.
See CHANGELOG.md.
Development
cd packages/python
pip install -e .[test]
ruff check .
mypy src
pytest
License
MIT.
Metadata
Release files for tesote-sdk 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tesote_sdk-0.2.0.tar.gz | 22.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tesote_sdk-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 52.6 kB
Release files / tesote_sdk-0.2.0.tar.gz
| Download URL | tesote_sdk-0.2.0.tar.gz |
|---|---|
| Size | 22.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e59375a8aacd992d2a2c0ea390e58f73e6da8a6a245260fd8251c8f11693447c
|
|
BLAKE2b-256 checksum How to use checksums |
7e74ef9928a1887b02f0d5df48f6f3d79c877944478675145cbb3ae9fd15f602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.
Transparency logRelease files / tesote_sdk-0.2.0-py3-none-any.whl
| Download URL | tesote_sdk-0.2.0-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2748fa298a308b7680623115a8f84af9385fba124b94f74e909c039bb5cde695
|
|
BLAKE2b-256 checksum How to use checksums |
6420ff81d06625d580b4aad35d0db28242cfb9239e5bea23398ed288455301b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.
Transparency log