v14.0.0¶
Performance — Pydantic v2 Deserialisation¶
- Replaced the internal
parsing_helpersdeserialisation engine with Pydantic v2. All SDK models are nowpydantic.BaseModelsubclasses. - Parsing time for large queries reduced by ~70% (from ~27% to ~14% of total wall time on a full
VoyageCondensedfetch). - Effective throughput improved from ~40 req/min to ~150 req/min on the condensed voyages endpoint.
Performance — HTTP Connection Reuse¶
Connectionnow uses a persistentrequests.Sessionfor all API calls, eliminating per-request TLS handshake overhead.- Throughput on the first benchmark query improved from ~26 req/min to ~40 req/min; combined with the parsing improvements the sustained rate reaches ~155 req/min.
Connectionnow supportsclose()and can be used as a context manager. Callconnection.close()when you are done, or usewith Connection(...) as connection:to ensure the underlying session is released.
# Option A — explicit close
connection = Connection()
# ... use APIs ...
connection.close()
# Option B — context manager
with Connection() as connection:
# ... use APIs ...
Breaking Changes¶
- Minimum Python version raised from 3.7 to 3.8. Python 3.7 reached end-of-life in June 2023 and is no longer supported.
pydantic>=2.0is now a required dependency. All SDK models are now PydanticBaseModelsubclasses. If your project pinspydantic<2, you will need to upgrade.
Installation and Upgrade Notes¶
Update your package with: pip install signal-ocean -U