Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion tilebox-datasets/tilebox/datasets/aio/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions tilebox-datasets/tilebox/datasets/data/datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,20 +202,23 @@ 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":
return cls(
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:
return 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,
)


Expand Down
4 changes: 3 additions & 1 deletion tilebox-datasets/tilebox/datasets/sync/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading