Releases: VTvito/cdse-client
Releases · VTvito/cdse-client
v0.4.0
[0.4.0] - 2026-02-12
Fixed
search_by_pointbuffer correction: Longitude buffer now accounts for latitude usingcos(lat)correction, matchinggeocoding.pybehavior. Previously, searches at high latitudes produced overly wide bounding boxes.download_allskip_existing: Theskip_existingparameter was dead code — never passed todownload(). Now correctly forwarded in both sequential and parallel download paths.- Inline
import json: Movedimport jsonfrom insideCatalog._odata_to_product()to module-level imports. - README
bbox_from_city: Replaced non-existentbbox_from_citywith the actual function nameget_city_bboxin the Quick Start example.
Changed
- Bearer session auto-refresh:
OAuth2Auth.get_bearer_session()now returns a_BearerSessionthat automatically refreshes the token before each request when expired. Long-running downloads no longer fail due to token expiry. - Retry with exponential backoff:
Downloadernow retries on transient HTTP errors (429, 502, 503, 504) and connection errors, with exponential backoff (up to 3 attempts). Configurable viamax_retriesparameter. - Explicit timeouts: All HTTP requests in
CatalogandDownloadernow have explicittimeout=60(configurable in Downloader viatimeoutparameter). Previously some requests had no timeout. - Logging replaces print(): All
print()calls in library modules (downloader.py,async_client.py,processing.py) replaced withlogging.getLogger(__name__). CLI (cli.py) retainsprint()as intended for user-facing output. - Async client token refresh:
CDSEClientAsyncnow tracks token expiration and re-authenticates automatically when the token expires. - Async client progress bars:
CDSEClientAsync.download()now shows per-filetqdmprogress bars;download_all()shows an overall progress bar.
Removed
blackfrom dev dependencies: Redundant withruff format. The[tool.black]config section has also been removed.mkdocsfrom[all]extra: Documentation dependencies now only in[docs]extra.pip install cdse-client[all]installs only runtime extras (geo, dataframe, async, processing).
v0.3.3
Improved README and added examples
Full Changelog: v0.3.2...v0.3.3
v0.3.2
cdse-client v0.3.2
Bug fixes, documentation updates, and technical improvements over v0.3.0.
Fixes
-
CI
- Fixed Python 3.9 compatibility in development dependencies
- Added
processing,geo,dataframe, andasyncextras to docs build somkdocstringscan import all modules - Removed tag trigger from docs workflow to avoid GitHub Pages environment protection issues
-
Tests
- Added skip markers for geocoding tests when
geopyis not installed - Updated
test_processing.pyto usepytest.importorskipfornumpy
- Added skip markers for geocoding tests when
Documentation
- Added
.envsetup instructions alongside environment variables - Added
.env.exampletemplate file - Enabled GitHub Pages auto-enablement in docs workflow
New Content
Processing module (now tracked in git)
- 969 lines of production-ready processing utilities
- Band extraction, cropping, stacking
- NDVI calculation
- RGB preview generation
- Full test coverage (202 tests)
📄 Full Changelog
v0.3.0
- Added sentinelsat‑compatible exports:
to_dataframe(),to_geojson(),to_geodataframe() - Added quicklook download helpers:
download_quicklook()anddownload_all_quicklooks() - Improved CLI with enhanced search/download, GeoJSON footprint export, and parallel downloads
- Added PEP 561 typing marker (
py.typed) and general packaging improvements - Updated documentation (MkDocs) and CI workflows for docs, testing, and PyPI publishing
- Added legal updates: new disclaimer and SECURITY policy