Skip to content

Commit af9cd1a

Browse files
committed
Fixup CubeMetadata.__repr__ for the empty case too
ref Open-EO/openeo-python-driver#428
1 parent d35e3f8 commit af9cd1a

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

openeo/metadata.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,10 @@ class CubeMetadata:
260260

261261
def __init__(self, dimensions: Optional[List[Dimension]] = None):
262262
# Original collection metadata (actual cube metadata might be altered through processes)
263-
self._dimensions = dimensions or []
263+
# TODO: for `self._dimensions` we use `None` here to indicate an unknown/unspecified dimension set,
264+
# but most usage actually assumes it is a list that can be iterated over.
265+
# Can we handle this more consistently and less error-prone?
266+
self._dimensions: Union[List[Dimension], None] = dimensions
264267
self._band_dimension = None
265268
self._temporal_dimension = None
266269

@@ -300,6 +303,9 @@ def _clone_and_update(self, dimensions: Optional[List[Dimension]] = None, **kwar
300303
return cls(dimensions=dimensions, **kwargs)
301304

302305
def dimension_names(self) -> List[str]:
306+
if self._dimensions is None:
307+
# TODO: better solution for unknown dimensions?
308+
return ["unknown"]
303309
return list(d.name for d in self._dimensions)
304310

305311
def assert_valid_dimension(self, dimension: str) -> str:

tests/test_metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ def test_metadata_resample_cube_spatial_preserve_non_spatial():
11801180

11811181
def test_cube_metadata_repr_empty():
11821182
metadata = CubeMetadata()
1183-
assert repr(metadata) == "CubeMetadata(dimension_names=[])"
1183+
assert repr(metadata) == "CubeMetadata(dimension_names=['unknown'])"
11841184

11851185

11861186
def test_cube_metadata_repr_with_bands():

0 commit comments

Comments
 (0)