diff --git a/CHANGELOG.md b/CHANGELOG.md index e81e2c7..d7d7dbd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.63.2] - 2026-10-04 + +### Fixed + +- `tilebox-datasets`: Display the dataset kind in sync and async dataset clients instead of always showing + "Timeseries Dataset". Preserve the kind returned by the API; use "Dataset" when the kind is unspecified. + +## [0.63.1] - 2026-10-03 + ### Fixed - `tilebox-workflows`: Restore `GoogleStorageCache` support for Google SDK bucket objects, preserving their @@ -575,7 +584,9 @@ the first client that does not cache data (since it's already on the local file - Released under the [MIT](https://opensource.org/license/mit) license. - Released packages: `tilebox-datasets`, `tilebox-workflows`, `tilebox-storage`, `tilebox-grpc` -[Unreleased]: https://github.com/tilebox/tilebox-python/compare/v0.63.0...HEAD +[Unreleased]: https://github.com/tilebox/tilebox-python/compare/v0.63.2...HEAD +[0.63.2]: https://github.com/tilebox/tilebox-python/compare/v0.63.1...v0.63.2 +[0.63.1]: https://github.com/tilebox/tilebox-python/compare/v0.63.0...v0.63.1 [0.63.0]: https://github.com/tilebox/tilebox-python/compare/v0.62.0...v0.63.0 [0.61.0]: https://github.com/tilebox/tilebox-python/compare/v0.60.0...v0.61.0 [0.60.0]: https://github.com/tilebox/tilebox-python/compare/v0.59.0...v0.60.0 diff --git a/tilebox-datasets/tilebox/datasets/aio/dataset.py b/tilebox-datasets/tilebox/datasets/aio/dataset.py index 6037d94..6de23fd 100644 --- a/tilebox-datasets/tilebox/datasets/aio/dataset.py +++ b/tilebox-datasets/tilebox/datasets/aio/dataset.py @@ -262,7 +262,9 @@ async def _collection_ids( return collection_ids def __repr__(self) -> str: - return f"{self.name} [Timeseries Dataset]: {self._dataset.summary}" + kind = self._dataset.type.kind + label = f"{kind.name.title()} Dataset" if kind else "Dataset" + return f"{self.name} [{label}]: {self._dataset.summary}" # always ingest / delete in batches, to avoid timeout issues for very large datasets diff --git a/tilebox-datasets/tilebox/datasets/data/datasets.py b/tilebox-datasets/tilebox/datasets/data/datasets.py index e63181d..6aaa7a8 100644 --- a/tilebox-datasets/tilebox/datasets/data/datasets.py +++ b/tilebox-datasets/tilebox/datasets/data/datasets.py @@ -202,6 +202,7 @@ class AnnotatedType: descriptor_set: FileDescriptorSet type_url: str field_annotations: list[FieldAnnotation] + kind: DatasetKind | None = None @classmethod def from_message(cls, annotated_type: dataset_type_pb2.AnnotatedType) -> "AnnotatedType": @@ -209,6 +210,7 @@ def from_message(cls, annotated_type: dataset_type_pb2.AnnotatedType) -> "Annota descriptor_set=annotated_type.descriptor_set, type_url=annotated_type.type_url, field_annotations=[FieldAnnotation.from_message(a) for a in annotated_type.field_annotations], + kind=_dataset_kind_int_to_enum.get(annotated_type.kind), ) def to_message(self) -> dataset_type_pb2.AnnotatedType: @@ -216,6 +218,7 @@ def to_message(self) -> dataset_type_pb2.AnnotatedType: descriptor_set=self.descriptor_set, type_url=self.type_url, field_annotations=[a.to_message() for a in self.field_annotations], + kind=self.kind.value if self.kind else dataset_type_pb2.DATASET_KIND_UNSPECIFIED, ) diff --git a/tilebox-datasets/tilebox/datasets/sync/dataset.py b/tilebox-datasets/tilebox/datasets/sync/dataset.py index 40eab29..92713be 100644 --- a/tilebox-datasets/tilebox/datasets/sync/dataset.py +++ b/tilebox-datasets/tilebox/datasets/sync/dataset.py @@ -263,7 +263,9 @@ def _collection_ids( return collection_ids def __repr__(self) -> str: - return f"{self.name} [Timeseries Dataset]: {self._dataset.summary}" + kind = self._dataset.type.kind + label = f"{kind.name.title()} Dataset" if kind else "Dataset" + return f"{self.name} [{label}]: {self._dataset.summary}" # always ingest / delete in batches, to avoid timeout issues for very large datasets