Skip to content

Releases: VTvito/cdse-client

v0.4.0

13 Feb 14:58

Choose a tag to compare

[0.4.0] - 2026-02-12

Fixed

  • search_by_point buffer correction: Longitude buffer now accounts for latitude using cos(lat) correction, matching geocoding.py behavior. Previously, searches at high latitudes produced overly wide bounding boxes.
  • download_all skip_existing: The skip_existing parameter was dead code — never passed to download(). Now correctly forwarded in both sequential and parallel download paths.
  • Inline import json: Moved import json from inside Catalog._odata_to_product() to module-level imports.
  • README bbox_from_city: Replaced non-existent bbox_from_city with the actual function name get_city_bbox in the Quick Start example.

Changed

  • Bearer session auto-refresh: OAuth2Auth.get_bearer_session() now returns a _BearerSession that automatically refreshes the token before each request when expired. Long-running downloads no longer fail due to token expiry.
  • Retry with exponential backoff: Downloader now retries on transient HTTP errors (429, 502, 503, 504) and connection errors, with exponential backoff (up to 3 attempts). Configurable via max_retries parameter.
  • Explicit timeouts: All HTTP requests in Catalog and Downloader now have explicit timeout=60 (configurable in Downloader via timeout parameter). Previously some requests had no timeout.
  • Logging replaces print(): All print() calls in library modules (downloader.py, async_client.py, processing.py) replaced with logging.getLogger(__name__). CLI (cli.py) retains print() as intended for user-facing output.
  • Async client token refresh: CDSEClientAsync now tracks token expiration and re-authenticates automatically when the token expires.
  • Async client progress bars: CDSEClientAsync.download() now shows per-file tqdm progress bars; download_all() shows an overall progress bar.

Removed

  • black from dev dependencies: Redundant with ruff format. The [tool.black] config section has also been removed.
  • mkdocs from [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

12 Jan 15:23

Choose a tag to compare

Improved README and added examples

Full Changelog: v0.3.2...v0.3.3

v0.3.2

12 Jan 14:43

Choose a tag to compare

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, and async extras to docs build so mkdocstrings can import all modules
    • Removed tag trigger from docs workflow to avoid GitHub Pages environment protection issues
  • Tests

    • Added skip markers for geocoding tests when geopy is not installed
    • Updated test_processing.py to use pytest.importorskip for numpy

Documentation

  • Added .env setup instructions alongside environment variables
  • Added .env.example template 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...v0.3.2

v0.3.0

12 Jan 13:41

Choose a tag to compare

  • Added sentinelsat‑compatible exports: to_dataframe(), to_geojson(), to_geodataframe()
  • Added quicklook download helpers: download_quicklook() and download_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