Skip to content

Commit 024fe65

Browse files
committed
set default metadata when using load_result, to avoid client vs backend inconsistencies
1 parent 4c1a5b0 commit 024fe65

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

openeo/rest/connection.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from openeo.internal.jupyter import VisualDict, VisualList
2424
from openeo.internal.processes.builder import ProcessBuilderBase
2525
from openeo.internal.warnings import legacy_alias, deprecated
26-
from openeo.metadata import CollectionMetadata
26+
from openeo.metadata import CollectionMetadata, SpatialDimension, TemporalDimension, BandDimension, Band
2727
from openeo.rest import OpenEoClientException, OpenEoApiError, OpenEoRestError
2828
from openeo.rest.auth.auth import NullAuth, BearerAuth, BasicBearerAuth, OidcBearerAuth, OidcRefreshInfo
2929
from openeo.rest.auth.config import RefreshTokenStore, AuthConfig
@@ -1035,15 +1035,18 @@ def load_result(
10351035
if self._api_version.below("1.0.0"):
10361036
raise OpenEoClientException(
10371037
"This method requires support for at least version 1.0.0 in the openEO backend.")
1038-
return self.datacube_from_process(
1039-
process_id="load_result",
1040-
id=id,
1041-
**dict_no_none(
1042-
spatial_extent=spatial_extent,
1043-
temporal_extent=temporal_extent and DataCube._get_temporal_extent(temporal_extent),
1044-
bands=bands
1045-
)
1046-
)
1038+
metadata = CollectionMetadata({}, dimensions=[
1039+
SpatialDimension(name="x", extent=[]),
1040+
SpatialDimension(name="y", extent=[]),
1041+
TemporalDimension(name='t', extent=[]),
1042+
BandDimension(name="bands", bands=[Band("unknown")]),
1043+
])
1044+
cube = self.datacube_from_process(process_id="load_result", id=id,
1045+
**dict_no_none(spatial_extent=spatial_extent,
1046+
temporal_extent=temporal_extent and DataCube._get_temporal_extent(
1047+
temporal_extent), bands=bands))
1048+
cube.metadata = metadata
1049+
return cube
10471050

10481051
def load_ml_model(self, id: Union[str, BatchJob]) -> "MlModel":
10491052
"""

tests/rest/test_connection.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,6 +1761,9 @@ def test_load_result(requests_mock):
17611761
requests_mock.get(API_URL, json={"api_version": "1.0.0"})
17621762
con = Connection(API_URL)
17631763
cube = con.load_result("j0bi6")
1764+
assert cube.metadata.has_band_dimension()
1765+
assert cube.metadata.has_temporal_dimension()
1766+
assert len(cube.metadata.spatial_dimensions)==2
17641767
assert cube.flat_graph() == {
17651768
"loadresult1": {"process_id": "load_result", "arguments": {"id": "j0bi6"}, "result": True}
17661769
}

0 commit comments

Comments
 (0)