Skip to content

Releases: Open-EO/openeo-python-client

openEO Python Client v0.40.0

14 Apr 16:50
Compare
Choose a tag to compare

Added

  • sar_backscatter: try to retrieve coefficient options from backend (#693)
  • Improve error message when OIDC provider is unavailable (#751)
  • Added on_response_headers argument to DataCube.download() and related to handle (e.g. print) the response headers (#560)

Changed

  • When the bands provided to Connection.load_stac(..., bands=[...]) do not fully match the bands the client extracted from the STAC metadata, a warning will be triggered, but the provided band names will still be used during the client-side preparation of the process graph. This is a pragmatic approach to bridge the gap between differing interpretations of band detection in STAC. Note that this might produce process graphs that are technically invalid and might not work on other backends or future versions of the backend you currently use. It is recommended to consult with the provider of the STAC metadata and openEO backend on the correct and future-proof band names. (#752)

Fixed

  • STACAPIJobDatabase.get_by_status() now always returns a pandas.DataFrame with an index compatible with MultiBackendJobManager. (#707)

openEO Python Client v0.39.1

26 Feb 14:14
Compare
Choose a tag to compare

Fixed

  • Fix legacy usage pattern to append export_workspace to save_result with generic process() helper method (#742)

openEO Python Client v0.39.0

25 Feb 17:04
Compare
Choose a tag to compare

Added

Changed

  • DataCube.save_result() (and related methods) now return a SaveResult/StacResource object instead of another DataCube object to be more in line with the official save_result specification (#402, #720)
  • Deprecate BatchJob.run_synchronous in favor of BatchJob.start_and_wait (#570).

Fixed

  • Fix incompatibility problem when combining load_stac and resample_spatial (#737)

openEO Python Client v0.38.0

12 Feb 08:46
Compare
Choose a tag to compare

Added

Changed

  • Improved tracking of metadata changes with resample_spatial and resample_cube_spatial (#690)
  • Move ComparableVersion to openeo.utils.version (related to #611)
  • Deprecate openeo.rest.rest_capabilities.RESTCapabilities and introduce replacement openeo.rest.capabilities.OpenEoCapabilities (#611, #610)
  • MultiBackendJobManager: start new jobs before downloading the results of finished jobs to use time more efficiently (#633)

Removed

  • Remove unnecessary base class openeo.capabilities.Capabilities #611

Fixed

  • CsvJobDatabase: workaround GeoPandas issue (on Python>3.9) when there is a column named "crs" (#714)

openEO Python Client v0.37.0

21 Jan 14:46
Compare
Choose a tag to compare

Added

  • Added show_error_logs argument to cube.execute_batch()/job.start_and_wait()/... to toggle the automatic printing of error logs on failure (#505)
  • Added Connection.web_editor() to build link to the openEO backend in the openEO Web Editor
  • Add support for log_level in create_job() and execute_job() (#704)
  • Add initial support for "geometry" dimension type in CubeMetadata (#705)
  • Add support for parameterized bands argument in load_stac()
  • Argument spatial_extent in load_collection()/load_stac(): add support for Shapely objects, loading GeoJSON from a local path and loading geometry from GeoJSON/GeoParquet URL. (#678)

Changed

  • Raise exception when providing empty bands array to load_collection/load_stac (#424, Open-EO/openeo-processes#372)
  • Start showing deprecation warnings on usage of GeoJSON "GeometryCollection" (in filter_spatial, aggregate_spatial, chunk_polygon, mask_polygon). Use a GeoJSON FeatureCollection instead. (#706, Open-EO/openeo-processes#389)
  • The context parameter is now used in execute_local_udf (#556

Fixed

  • Clear capabilities cache on login (#254)

openEO Python Client v0.36.0

10 Dec 15:47
Compare
Choose a tag to compare

Added

  • Automatically use load_url when providing a URL as geometries to DataCube.aggregate_spatial(), DataCube.mask_polygon(), etc. (#104, #457)
  • Allow specifying limit when listing batch jobs with Connection.list_jobs() (#677)
  • Add additional and job_options arguments to Connection.download(), Datacube.download() and related (#681)

Changed

  • MultiBackendJobManager: costs has been added as a column in tracking databases ([#588])
  • When passing a path/string as geometry to DataCube.aggregate_spatial(), DataCube.mask_polygon(), etc.:
    this is not translated automatically anymore to deprecated, non-standard read_vector usage.
    Instead, if it is a local GeoJSON file, the GeoJSON data will be loaded directly client-side.
    (#104, #457)
  • Move read() method from general JobDatabaseInterface to more specific FullDataFrameJobDatabase (#680)
  • Align additional and job_options arguments in Connection.create_job(), DataCube.create_job() and related.
    Also, follow official spec more closely. (#683, Open-EO/openeo-api#276)

Fixed

  • load_stac: use fallback temporal dimension when no "cube:dimensions" in STAC Collection (#666)
  • Fix usage of Parameter.spatial_extent() with load_collection and filter_bbox (#676)

openEO Python Client v0.35.0

19 Nov 13:21
Compare
Choose a tag to compare

Added

  • Added MultiResult helper class to build process graphs with multiple result nodes (#391)

Fixed

  • MultiBackendJobManager: Fix issue with duplicate job starting across multiple backends (#654)
  • MultiBackendJobManager: Fix encoding issue of job metadata in on_job_done (#657)
  • MultiBackendJobManager: Avoid SettingWithCopyWarning (#641)
  • Avoid creating empty file if asset download request failed.
  • MultiBackendJobManager: avoid dtype loading mistakes in CsvJobDatabase on empty columns (#656)
  • MultiBackendJobManager: restore logging of job status histogram during run_jobs (#655)

openEO Python Client v0.34.0

31 Oct 13:49
Compare
Choose a tag to compare

Removed

  • Drop support for Python 3.7 (#578)

Fixed

  • Fixed broken support for title and description job properties in execute_batch() (#652)

openEO Python Client v0.33.0

18 Oct 07:16
Compare
Choose a tag to compare

Added

  • Added DataCube.load_stac() to also support creating a load_stac based cube without a connection (#638)
  • MultiBackendJobManager: Added initialize_from_df(df) (to CsvJobDatabase and ParquetJobDatabase) to initialize (and persist) the job database from a given DataFrame.
    Also added create_job_db() factory to easily create a job database from a given dataframe and its type guessed from filename extension.
    (#635)
  • MultiBackendJobManager.run_jobs() now returns a dictionary with counters/stats about various events during the full run of the job manager (#645)
  • Added (experimental) ProcessBasedJobCreator to be used as start_job callable with MultiBackendJobManager to create multiple jobs from a single parameterized process (e.g. a UDP or remote process definition) (#604)

Fixed

  • When using DataCube.load_collection() without a connection, it is not necessary anymore to also explicitly set fetch_metadata=False (#638)

openEO Python Client v0.32.0

27 Sep 12:52
Compare
Choose a tag to compare

Added

  • load_stac/metadata_from_stac: add support for extracting actual temporal dimension metadata (#567)
  • MultiBackendJobManager: add cancel_running_job_after option to automatically cancel jobs that are running for too long (#590)
  • Added openeo.api.process.Parameter helper to easily create a "spatial_extent" UDP parameter
  • Wrap OIDC token request failure in more descriptive OidcException (related to #624)
  • Added auto_add_save_result option (on by default) to disable automatic addition of save_result node on download/create_job/execute_batch (#513)
  • Add support for apply_vectorcube UDF signature in run_udf_code ([Open-EO/openeo-geopyspark-driver#881]Open-EO/openeo-geopyspark-driver#811)
  • MultiBackendJobManager: add API to the update loop in a separate thread, allowing controlled interruption.

Changed

  • MultiBackendJobManager: changed job metadata storage API, to enable working with large databases
  • DataCube.apply_polygon(): rename polygons argument to geometries, but keep support for legacy polygons for now (#592, #511)
  • Disallow ambiguous single string argument in DataCube.filter_temporal() (#628)
  • Automatic adding of save_result from download() or create_job(): inspect whole process graph for pre-existing save_result nodes (related to #623, #401, #583)
  • Disallow ambiguity of combining explicit save_result nodes and implicit save_result addition from download()/create_job() calls with format (related to #623, #401, #583)

Fixed

  • apply_dimension with a target_dimension argument was not correctly adjusting datacube metadata on the client side, causing a mismatch.
  • Preserve non-spatial dimension metadata in aggregate_spatial (#612)