tilebox-datasets 0.37.1__tar.gz → 0.39.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/PKG-INFO +1 -1
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/pyproject.toml +1 -1
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/aio/client.py +4 -4
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/aio/dataset.py +23 -13
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/aio/pagination.py +1 -3
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/client.py +1 -1
- tilebox_datasets-0.39.0/tilebox/datasets/data/__init__.py +28 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/data/collection.py +3 -3
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/data/data_access.py +6 -6
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/data/datapoint.py +7 -74
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/data/datasets.py +2 -2
- tilebox_datasets-0.39.0/tilebox/datasets/data/time_interval.py +18 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/data/timeseries.py +6 -6
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/collections_pb2.py +49 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/collections_pb2.pyi +20 -7
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/collections_pb2_grpc.py +45 -2
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/core_pb2.py +79 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/core_pb2.pyi +16 -50
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/data_access_pb2.py +65 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/data_access_pb2.pyi +18 -16
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/data_access_pb2_grpc.py +2 -2
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/data_ingestion_pb2.py +49 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/data_ingestion_pb2.pyi +11 -10
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/data_ingestion_pb2_grpc.py +1 -1
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/dataset_type_pb2.py +53 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/dataset_type_pb2.pyi +6 -5
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/datasets_pb2.py +62 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/datasets_pb2.pyi +21 -8
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/datasets_pb2_grpc.py +45 -2
- tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1/timeseries_pb2.py +42 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/timeseries_pb2.pyi +9 -8
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/well_known_types_pb2.py +2 -2
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/message_pool.py +1 -1
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/progress.py +1 -1
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/protobuf_conversion/field_types.py +2 -2
- tilebox_datasets-0.39.0/tilebox/datasets/query/__init__.py +8 -0
- tilebox_datasets-0.39.0/tilebox/datasets/query/id_interval.py +72 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/data → tilebox_datasets-0.39.0/tilebox/datasets/query}/pagination.py +5 -5
- {tilebox_datasets-0.37.1/tilebox/datasets/data → tilebox_datasets-0.39.0/tilebox/datasets/query}/time_interval.py +11 -4
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/service.py +26 -20
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/sync/client.py +4 -4
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/sync/dataset.py +22 -8
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/sync/pagination.py +1 -3
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/id_pb2.py +37 -0
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/id_pb2.pyi +11 -0
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/id_pb2_grpc.py +3 -0
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/query_pb2.py +47 -0
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/query_pb2.pyi +39 -0
- tilebox_datasets-0.39.0/tilebox/datasets/tilebox/v1/query_pb2_grpc.py +3 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/data → tilebox_datasets-0.39.0/tilebox/datasets}/uuid.py +8 -7
- tilebox_datasets-0.37.1/tilebox/datasets/data/__init__.py +0 -16
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/collections_pb2.py +0 -44
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/core_pb2.py +0 -73
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/data_access_pb2.py +0 -57
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/data_ingestion_pb2.py +0 -48
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/dataset_type_pb2.py +0 -52
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/datasets_pb2.py +0 -55
- tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1/timeseries_pb2.py +0 -41
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/.gitignore +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/README.md +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/__init__.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/aio/__init__.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/aio/timeseries.py +0 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/core_pb2_grpc.py +0 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/dataset_type_pb2_grpc.py +0 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/timeseries_pb2_grpc.py +0 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/well_known_types_pb2.pyi +0 -0
- {tilebox_datasets-0.37.1/tilebox/datasets/datasetsv1 → tilebox_datasets-0.39.0/tilebox/datasets/datasets/v1}/well_known_types_pb2_grpc.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/group.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/protobuf_conversion/__init__.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/protobuf_conversion/protobuf_xarray.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/protobuf_conversion/to_protobuf.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/sync/__init__.py +0 -0
- {tilebox_datasets-0.37.1 → tilebox_datasets-0.39.0}/tilebox/datasets/sync/timeseries.py +0 -0
|
@@ -5,10 +5,10 @@ from _tilebox.grpc.aio.error import with_pythonic_errors
|
|
|
5
5
|
from tilebox.datasets.aio.dataset import DatasetClient
|
|
6
6
|
from tilebox.datasets.client import Client as BaseClient
|
|
7
7
|
from tilebox.datasets.client import token_from_env
|
|
8
|
-
from tilebox.datasets.
|
|
9
|
-
from tilebox.datasets.
|
|
10
|
-
from tilebox.datasets.
|
|
11
|
-
from tilebox.datasets.
|
|
8
|
+
from tilebox.datasets.datasets.v1.collections_pb2_grpc import CollectionServiceStub
|
|
9
|
+
from tilebox.datasets.datasets.v1.data_access_pb2_grpc import DataAccessServiceStub
|
|
10
|
+
from tilebox.datasets.datasets.v1.data_ingestion_pb2_grpc import DataIngestionServiceStub
|
|
11
|
+
from tilebox.datasets.datasets.v1.datasets_pb2_grpc import DatasetServiceStub
|
|
12
12
|
from tilebox.datasets.group import Group
|
|
13
13
|
from tilebox.datasets.service import TileboxDatasetService
|
|
14
14
|
|
|
@@ -11,18 +11,11 @@ from _tilebox.grpc.aio.pagination import Pagination as PaginationProtocol
|
|
|
11
11
|
from _tilebox.grpc.aio.pagination import paginated_request
|
|
12
12
|
from _tilebox.grpc.aio.producer_consumer import async_producer_consumer
|
|
13
13
|
from _tilebox.grpc.error import ArgumentError, NotFoundError
|
|
14
|
-
from tilebox.datasets.aio.pagination import
|
|
15
|
-
with_progressbar,
|
|
16
|
-
with_time_progress_callback,
|
|
17
|
-
with_time_progressbar,
|
|
18
|
-
)
|
|
14
|
+
from tilebox.datasets.aio.pagination import with_progressbar, with_time_progress_callback, with_time_progressbar
|
|
19
15
|
from tilebox.datasets.data.collection import CollectionInfo
|
|
20
16
|
from tilebox.datasets.data.data_access import QueryFilters, SpatialFilter, SpatialFilterLike
|
|
21
|
-
from tilebox.datasets.data.datapoint import
|
|
17
|
+
from tilebox.datasets.data.datapoint import QueryResultPage
|
|
22
18
|
from tilebox.datasets.data.datasets import Dataset
|
|
23
|
-
from tilebox.datasets.data.pagination import Pagination
|
|
24
|
-
from tilebox.datasets.data.time_interval import TimeInterval, TimeIntervalLike
|
|
25
|
-
from tilebox.datasets.data.uuid import as_uuid
|
|
26
19
|
from tilebox.datasets.message_pool import get_message_type
|
|
27
20
|
from tilebox.datasets.progress import ProgressCallback
|
|
28
21
|
from tilebox.datasets.protobuf_conversion.protobuf_xarray import MessageToXarrayConverter
|
|
@@ -33,7 +26,11 @@ from tilebox.datasets.protobuf_conversion.to_protobuf import (
|
|
|
33
26
|
marshal_messages,
|
|
34
27
|
to_messages,
|
|
35
28
|
)
|
|
29
|
+
from tilebox.datasets.query.id_interval import IDInterval, IDIntervalLike
|
|
30
|
+
from tilebox.datasets.query.pagination import Pagination
|
|
31
|
+
from tilebox.datasets.query.time_interval import TimeInterval, TimeIntervalLike
|
|
36
32
|
from tilebox.datasets.service import TileboxDatasetService
|
|
33
|
+
from tilebox.datasets.uuid import as_uuid
|
|
37
34
|
|
|
38
35
|
# allow private member access: we allow it here because we want to make as much private as possible so that we can
|
|
39
36
|
# minimize the publicly facing API (which allows us to change internals later, and also limits to auto-completion)
|
|
@@ -127,6 +124,21 @@ class DatasetClient:
|
|
|
127
124
|
|
|
128
125
|
return CollectionClient(self, info)
|
|
129
126
|
|
|
127
|
+
async def delete_collection(self, collection: "str | UUID | CollectionClient") -> None:
|
|
128
|
+
"""Delete a collection.
|
|
129
|
+
|
|
130
|
+
Args:
|
|
131
|
+
collection: The collection to delete or a collection name or a collection id.
|
|
132
|
+
"""
|
|
133
|
+
if isinstance(collection, CollectionClient):
|
|
134
|
+
collection_id = collection._collection.id
|
|
135
|
+
elif isinstance(collection, UUID):
|
|
136
|
+
collection_id = collection
|
|
137
|
+
else: # str
|
|
138
|
+
collection_id = (await self.collection(collection))._collection.id
|
|
139
|
+
|
|
140
|
+
await self._service.delete_collection(self._dataset.id, collection_id)
|
|
141
|
+
|
|
130
142
|
def __repr__(self) -> str:
|
|
131
143
|
return f"{self.name} [Timeseries Dataset]: {self._dataset.summary}"
|
|
132
144
|
|
|
@@ -225,7 +237,7 @@ class CollectionClient:
|
|
|
225
237
|
|
|
226
238
|
async def _find_interval(
|
|
227
239
|
self,
|
|
228
|
-
datapoint_id_interval:
|
|
240
|
+
datapoint_id_interval: IDIntervalLike,
|
|
229
241
|
end_inclusive: bool = True,
|
|
230
242
|
*,
|
|
231
243
|
skip_data: bool = False,
|
|
@@ -244,9 +256,7 @@ class CollectionClient:
|
|
|
244
256
|
Returns:
|
|
245
257
|
The datapoints in the given interval as an xarray dataset
|
|
246
258
|
"""
|
|
247
|
-
filters = QueryFilters(
|
|
248
|
-
temporal_extent=DatapointInterval.parse(datapoint_id_interval, end_inclusive=end_inclusive)
|
|
249
|
-
)
|
|
259
|
+
filters = QueryFilters(temporal_extent=IDInterval.parse(datapoint_id_interval, end_inclusive=end_inclusive))
|
|
250
260
|
|
|
251
261
|
async def request(page: PaginationProtocol) -> QueryResultPage:
|
|
252
262
|
query_page = Pagination(page.limit, page.starting_after)
|
|
@@ -5,11 +5,9 @@ from typing import TypeVar
|
|
|
5
5
|
|
|
6
6
|
from tqdm.auto import tqdm
|
|
7
7
|
|
|
8
|
-
from tilebox.datasets.data import (
|
|
9
|
-
TimeInterval,
|
|
10
|
-
)
|
|
11
8
|
from tilebox.datasets.data.datapoint import QueryResultPage
|
|
12
9
|
from tilebox.datasets.progress import ProgressCallback, TimeIntervalProgressBar
|
|
10
|
+
from tilebox.datasets.query.time_interval import TimeInterval
|
|
13
11
|
|
|
14
12
|
ResultPage = TypeVar("ResultPage", bound=QueryResultPage)
|
|
15
13
|
|
|
@@ -8,10 +8,10 @@ from promise import Promise
|
|
|
8
8
|
|
|
9
9
|
from _tilebox.grpc.channel import parse_channel_info
|
|
10
10
|
from tilebox.datasets.data.datasets import Dataset, DatasetGroup, ListDatasetsResponse
|
|
11
|
-
from tilebox.datasets.data.uuid import as_uuid
|
|
12
11
|
from tilebox.datasets.group import Group
|
|
13
12
|
from tilebox.datasets.message_pool import register_once
|
|
14
13
|
from tilebox.datasets.service import TileboxDatasetService
|
|
14
|
+
from tilebox.datasets.uuid import as_uuid
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class TimeseriesDatasetLike(Protocol):
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# for backwards compatibility, we can remove this hack in the future
|
|
2
|
+
|
|
3
|
+
from warnings import warn
|
|
4
|
+
|
|
5
|
+
from tilebox.datasets.query.time_interval import TimeInterval as _TimeInterval
|
|
6
|
+
from tilebox.datasets.query.time_interval import TimeIntervalLike
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TimeInterval(_TimeInterval):
|
|
10
|
+
def __post_init__(self) -> None:
|
|
11
|
+
warn(
|
|
12
|
+
"The TimeInterval class has been deprecated, import from tilebox.datasets.query instead.",
|
|
13
|
+
DeprecationWarning,
|
|
14
|
+
stacklevel=2,
|
|
15
|
+
)
|
|
16
|
+
super().__post_init__()
|
|
17
|
+
|
|
18
|
+
@classmethod
|
|
19
|
+
def parse(cls, arg: TimeIntervalLike) -> "_TimeInterval":
|
|
20
|
+
warn(
|
|
21
|
+
"The TimeInterval class has been deprecated, import from tilebox.datasets.query instead.",
|
|
22
|
+
DeprecationWarning,
|
|
23
|
+
stacklevel=2,
|
|
24
|
+
)
|
|
25
|
+
return super().parse(arg)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
__all__ = ["TimeInterval"]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
from uuid import UUID
|
|
3
3
|
|
|
4
|
-
from tilebox.datasets.
|
|
5
|
-
from tilebox.datasets.
|
|
6
|
-
from tilebox.datasets.
|
|
4
|
+
from tilebox.datasets.datasets.v1 import core_pb2
|
|
5
|
+
from tilebox.datasets.query.time_interval import TimeInterval
|
|
6
|
+
from tilebox.datasets.uuid import uuid_message_to_uuid, uuid_to_uuid_message
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@dataclass
|
|
@@ -7,9 +7,9 @@ from shapely import Geometry, from_wkb, to_wkb
|
|
|
7
7
|
# from python 3.11 onwards this is available as typing.NotRequired:
|
|
8
8
|
from typing_extensions import NotRequired
|
|
9
9
|
|
|
10
|
-
from tilebox.datasets.
|
|
11
|
-
from tilebox.datasets.
|
|
12
|
-
from tilebox.datasets.
|
|
10
|
+
from tilebox.datasets.datasets.v1 import data_access_pb2, well_known_types_pb2
|
|
11
|
+
from tilebox.datasets.query.id_interval import IDInterval
|
|
12
|
+
from tilebox.datasets.query.time_interval import TimeInterval
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class SpatialFilterMode(Enum):
|
|
@@ -104,16 +104,16 @@ class SpatialFilter:
|
|
|
104
104
|
|
|
105
105
|
@dataclass(frozen=True)
|
|
106
106
|
class QueryFilters:
|
|
107
|
-
temporal_extent: TimeInterval |
|
|
107
|
+
temporal_extent: TimeInterval | IDInterval
|
|
108
108
|
spatial_extent: SpatialFilter | None = None
|
|
109
109
|
|
|
110
110
|
@classmethod
|
|
111
111
|
def from_message(cls, filters: data_access_pb2.QueryFilters) -> "QueryFilters":
|
|
112
|
-
temporal_extent: TimeInterval |
|
|
112
|
+
temporal_extent: TimeInterval | IDInterval | None = None
|
|
113
113
|
if filters.HasField("time_interval"):
|
|
114
114
|
temporal_extent = TimeInterval.from_message(filters.time_interval)
|
|
115
115
|
if filters.HasField("datapoint_interval"):
|
|
116
|
-
temporal_extent =
|
|
116
|
+
temporal_extent = IDInterval.from_message(filters.datapoint_interval)
|
|
117
117
|
|
|
118
118
|
if temporal_extent is None:
|
|
119
119
|
raise ValueError("Invalid filter: time or datapoint interval must be set")
|
|
@@ -1,81 +1,14 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from datetime import datetime
|
|
3
|
-
from typing import Any
|
|
3
|
+
from typing import Any
|
|
4
4
|
from uuid import UUID
|
|
5
5
|
|
|
6
|
-
from tilebox.datasets.
|
|
7
|
-
from tilebox.datasets.data.time_interval import timestamp_to_datetime
|
|
8
|
-
from tilebox.datasets.data.uuid import uuid_message_to_uuid, uuid_to_uuid_message
|
|
9
|
-
from tilebox.datasets.datasetsv1 import core_pb2, data_access_pb2, data_ingestion_pb2
|
|
6
|
+
from tilebox.datasets.datasets.v1 import core_pb2, data_access_pb2, data_ingestion_pb2
|
|
10
7
|
from tilebox.datasets.message_pool import get_message_type
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@dataclass(frozen=True)
|
|
16
|
-
class DatapointInterval:
|
|
17
|
-
start_id: UUID
|
|
18
|
-
end_id: UUID
|
|
19
|
-
start_exclusive: bool
|
|
20
|
-
end_inclusive: bool
|
|
21
|
-
|
|
22
|
-
@classmethod
|
|
23
|
-
def from_message(cls, interval: core_pb2.DatapointInterval) -> "DatapointInterval":
|
|
24
|
-
return cls(
|
|
25
|
-
start_id=uuid_message_to_uuid(interval.start_id),
|
|
26
|
-
end_id=uuid_message_to_uuid(interval.end_id),
|
|
27
|
-
start_exclusive=interval.start_exclusive,
|
|
28
|
-
end_inclusive=interval.end_inclusive,
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
def to_message(self) -> core_pb2.DatapointInterval:
|
|
32
|
-
return core_pb2.DatapointInterval(
|
|
33
|
-
start_id=uuid_to_uuid_message(self.start_id),
|
|
34
|
-
end_id=uuid_to_uuid_message(self.end_id),
|
|
35
|
-
start_exclusive=self.start_exclusive,
|
|
36
|
-
end_inclusive=self.end_inclusive,
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
@classmethod
|
|
40
|
-
def parse(
|
|
41
|
-
cls, arg: DatapointIntervalLike, start_exclusive: bool = False, end_inclusive: bool = True
|
|
42
|
-
) -> "DatapointInterval":
|
|
43
|
-
"""
|
|
44
|
-
Convert a variety of input types to a DatapointInterval.
|
|
45
|
-
|
|
46
|
-
Supported input types:
|
|
47
|
-
- DatapointInterval: Return the input as is
|
|
48
|
-
- tuple of two UUIDs: Return an DatapointInterval with start and end id set to the given values
|
|
49
|
-
- tuple of two strings: Return an DatapointInterval with start and end id set to the UUIDs parsed from the given strings
|
|
50
|
-
|
|
51
|
-
Args:
|
|
52
|
-
arg: The input to convert
|
|
53
|
-
start_exclusive: Whether the start id is exclusive
|
|
54
|
-
end_inclusive: Whether the end id is inclusive
|
|
55
|
-
|
|
56
|
-
Returns:
|
|
57
|
-
DatapointInterval: The parsed ID interval
|
|
58
|
-
"""
|
|
59
|
-
|
|
60
|
-
match arg:
|
|
61
|
-
case DatapointInterval(_, _, _, _):
|
|
62
|
-
return arg
|
|
63
|
-
case (UUID(), UUID()):
|
|
64
|
-
start, end = arg
|
|
65
|
-
return DatapointInterval(
|
|
66
|
-
start_id=start,
|
|
67
|
-
end_id=end,
|
|
68
|
-
start_exclusive=start_exclusive,
|
|
69
|
-
end_inclusive=end_inclusive,
|
|
70
|
-
)
|
|
71
|
-
case (str(), str()):
|
|
72
|
-
start, end = arg
|
|
73
|
-
return DatapointInterval(
|
|
74
|
-
start_id=UUID(start),
|
|
75
|
-
end_id=UUID(end),
|
|
76
|
-
start_exclusive=start_exclusive,
|
|
77
|
-
end_inclusive=end_inclusive,
|
|
78
|
-
)
|
|
8
|
+
from tilebox.datasets.query.pagination import Pagination
|
|
9
|
+
from tilebox.datasets.query.time_interval import timestamp_to_datetime
|
|
10
|
+
from tilebox.datasets.tilebox.v1 import id_pb2
|
|
11
|
+
from tilebox.datasets.uuid import uuid_message_to_uuid
|
|
79
12
|
|
|
80
13
|
|
|
81
14
|
@dataclass(frozen=True)
|
|
@@ -173,5 +106,5 @@ class IngestResponse:
|
|
|
173
106
|
return data_ingestion_pb2.IngestResponse(
|
|
174
107
|
num_created=self.num_created,
|
|
175
108
|
num_existing=self.num_existing,
|
|
176
|
-
datapoint_ids=[
|
|
109
|
+
datapoint_ids=[id_pb2.ID(uuid=datapoint_id.bytes) for datapoint_id in self.datapoint_ids],
|
|
177
110
|
)
|
|
@@ -3,8 +3,8 @@ from uuid import UUID
|
|
|
3
3
|
|
|
4
4
|
from google.protobuf.descriptor_pb2 import FileDescriptorSet
|
|
5
5
|
|
|
6
|
-
from tilebox.datasets.
|
|
7
|
-
from tilebox.datasets.
|
|
6
|
+
from tilebox.datasets.datasets.v1 import core_pb2, dataset_type_pb2, datasets_pb2
|
|
7
|
+
from tilebox.datasets.uuid import uuid_message_to_optional_uuid, uuid_message_to_uuid, uuid_to_uuid_message
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
@dataclass(frozen=True)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# kept for backwards compatibility, we can remove this whole file in the future
|
|
2
|
+
|
|
3
|
+
from warnings import warn
|
|
4
|
+
|
|
5
|
+
from tilebox.datasets.query.time_interval import (
|
|
6
|
+
TimeInterval,
|
|
7
|
+
TimeIntervalLike,
|
|
8
|
+
datetime_to_timestamp,
|
|
9
|
+
timestamp_to_datetime,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
warn(
|
|
13
|
+
"The time_interval module has been deprecated, import from tilebox.datasets.query instead.",
|
|
14
|
+
DeprecationWarning,
|
|
15
|
+
stacklevel=2,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
__all__ = ["TimeInterval", "TimeIntervalLike", "datetime_to_timestamp", "timestamp_to_datetime"]
|
|
@@ -2,10 +2,10 @@ from dataclasses import dataclass
|
|
|
2
2
|
from datetime import timedelta
|
|
3
3
|
from uuid import UUID
|
|
4
4
|
|
|
5
|
-
from tilebox.datasets.
|
|
6
|
-
from tilebox.datasets.
|
|
7
|
-
from tilebox.datasets.
|
|
8
|
-
from tilebox.datasets.
|
|
5
|
+
from tilebox.datasets.datasets.v1 import timeseries_pb2
|
|
6
|
+
from tilebox.datasets.query.id_interval import IDInterval
|
|
7
|
+
from tilebox.datasets.query.time_interval import TimeInterval, duration_to_timedelta, timedelta_to_duration
|
|
8
|
+
from tilebox.datasets.uuid import uuid_message_to_uuid, uuid_to_uuid_message
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
@dataclass
|
|
@@ -13,7 +13,7 @@ class TimeseriesDatasetChunk:
|
|
|
13
13
|
dataset_id: UUID
|
|
14
14
|
collection_id: UUID
|
|
15
15
|
time_interval: TimeInterval | None
|
|
16
|
-
datapoint_interval:
|
|
16
|
+
datapoint_interval: IDInterval | None
|
|
17
17
|
branch_factor: int
|
|
18
18
|
chunk_size: int
|
|
19
19
|
datapoints_per_365_days: int
|
|
@@ -28,7 +28,7 @@ class TimeseriesDatasetChunk:
|
|
|
28
28
|
and chunk.datapoint_interval.start_id.uuid
|
|
29
29
|
and chunk.datapoint_interval.end_id.uuid
|
|
30
30
|
):
|
|
31
|
-
datapoint_interval =
|
|
31
|
+
datapoint_interval = IDInterval.from_message(chunk.datapoint_interval)
|
|
32
32
|
|
|
33
33
|
time_interval = None
|
|
34
34
|
if chunk.time_interval and chunk.time_interval.start_time and chunk.time_interval.end_time:
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: datasets/v1/collections.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'datasets/v1/collections.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from tilebox.datasets.datasets.v1 import core_pb2 as datasets_dot_v1_dot_core__pb2
|
|
26
|
+
from tilebox.datasets.tilebox.v1 import id_pb2 as tilebox_dot_v1_dot_id__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x64\x61tasets/v1/collections.proto\x12\x0b\x64\x61tasets.v1\x1a\x16\x64\x61tasets/v1/core.proto\x1a\x13tilebox/v1/id.proto\"\\\n\x17\x43reateCollectionRequest\x12-\n\ndataset_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDR\tdatasetId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\"\xc0\x01\n\x1aGetCollectionByNameRequest\x12\'\n\x0f\x63ollection_name\x18\x01 \x01(\tR\x0e\x63ollectionName\x12+\n\x11with_availability\x18\x02 \x01(\x08R\x10withAvailability\x12\x1d\n\nwith_count\x18\x03 \x01(\x08R\twithCount\x12-\n\ndataset_id\x18\x04 \x01(\x0b\x32\x0e.tilebox.v1.IDR\tdatasetId\"}\n\x17\x44\x65leteCollectionRequest\x12\x33\n\rcollection_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x0c\x63ollectionId\x12-\n\ndataset_id\x18\x02 \x01(\x0b\x32\x0e.tilebox.v1.IDR\tdatasetId\"\x1a\n\x18\x44\x65leteCollectionResponse\"\x93\x01\n\x16ListCollectionsRequest\x12-\n\ndataset_id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDR\tdatasetId\x12+\n\x11with_availability\x18\x02 \x01(\x08R\x10withAvailability\x12\x1d\n\nwith_count\x18\x03 \x01(\x08R\twithCount2\x86\x03\n\x11\x43ollectionService\x12W\n\x10\x43reateCollection\x12$.datasets.v1.CreateCollectionRequest\x1a\x1b.datasets.v1.CollectionInfo\"\x00\x12]\n\x13GetCollectionByName\x12\'.datasets.v1.GetCollectionByNameRequest\x1a\x1b.datasets.v1.CollectionInfo\"\x00\x12\x61\n\x10\x44\x65leteCollection\x12$.datasets.v1.DeleteCollectionRequest\x1a%.datasets.v1.DeleteCollectionResponse\"\x00\x12V\n\x0fListCollections\x12#.datasets.v1.ListCollectionsRequest\x1a\x1c.datasets.v1.CollectionInfos\"\x00\x42u\n\x0f\x63om.datasets.v1B\x10\x43ollectionsProtoP\x01\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tasets.V1\xca\x02\x0b\x44\x61tasets\\V1\xe2\x02\x17\x44\x61tasets\\V1\\GPBMetadata\xea\x02\x0c\x44\x61tasets::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'datasets.v1.collections_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\017com.datasets.v1B\020CollectionsProtoP\001\242\002\003DXX\252\002\013Datasets.V1\312\002\013Datasets\\V1\342\002\027Datasets\\V1\\GPBMetadata\352\002\014Datasets::V1\222\003\002\010\002'
|
|
37
|
+
_globals['_CREATECOLLECTIONREQUEST']._serialized_start=91
|
|
38
|
+
_globals['_CREATECOLLECTIONREQUEST']._serialized_end=183
|
|
39
|
+
_globals['_GETCOLLECTIONBYNAMEREQUEST']._serialized_start=186
|
|
40
|
+
_globals['_GETCOLLECTIONBYNAMEREQUEST']._serialized_end=378
|
|
41
|
+
_globals['_DELETECOLLECTIONREQUEST']._serialized_start=380
|
|
42
|
+
_globals['_DELETECOLLECTIONREQUEST']._serialized_end=505
|
|
43
|
+
_globals['_DELETECOLLECTIONRESPONSE']._serialized_start=507
|
|
44
|
+
_globals['_DELETECOLLECTIONRESPONSE']._serialized_end=533
|
|
45
|
+
_globals['_LISTCOLLECTIONSREQUEST']._serialized_start=536
|
|
46
|
+
_globals['_LISTCOLLECTIONSREQUEST']._serialized_end=683
|
|
47
|
+
_globals['_COLLECTIONSERVICE']._serialized_start=686
|
|
48
|
+
_globals['_COLLECTIONSERVICE']._serialized_end=1076
|
|
49
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
from tilebox.datasets.
|
|
1
|
+
from tilebox.datasets.datasets.v1 import core_pb2 as _core_pb2
|
|
2
|
+
from tilebox.datasets.tilebox.v1 import id_pb2 as _id_pb2
|
|
2
3
|
from google.protobuf import descriptor as _descriptor
|
|
3
4
|
from google.protobuf import message as _message
|
|
4
5
|
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
@@ -9,9 +10,9 @@ class CreateCollectionRequest(_message.Message):
|
|
|
9
10
|
__slots__ = ("dataset_id", "name")
|
|
10
11
|
DATASET_ID_FIELD_NUMBER: _ClassVar[int]
|
|
11
12
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
12
|
-
dataset_id:
|
|
13
|
+
dataset_id: _id_pb2.ID
|
|
13
14
|
name: str
|
|
14
|
-
def __init__(self, dataset_id: _Optional[_Union[
|
|
15
|
+
def __init__(self, dataset_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., name: _Optional[str] = ...) -> None: ...
|
|
15
16
|
|
|
16
17
|
class GetCollectionByNameRequest(_message.Message):
|
|
17
18
|
__slots__ = ("collection_name", "with_availability", "with_count", "dataset_id")
|
|
@@ -22,15 +23,27 @@ class GetCollectionByNameRequest(_message.Message):
|
|
|
22
23
|
collection_name: str
|
|
23
24
|
with_availability: bool
|
|
24
25
|
with_count: bool
|
|
25
|
-
dataset_id:
|
|
26
|
-
def __init__(self, collection_name: _Optional[str] = ..., with_availability: bool = ..., with_count: bool = ..., dataset_id: _Optional[_Union[
|
|
26
|
+
dataset_id: _id_pb2.ID
|
|
27
|
+
def __init__(self, collection_name: _Optional[str] = ..., with_availability: bool = ..., with_count: bool = ..., dataset_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
|
|
28
|
+
|
|
29
|
+
class DeleteCollectionRequest(_message.Message):
|
|
30
|
+
__slots__ = ("collection_id", "dataset_id")
|
|
31
|
+
COLLECTION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
+
DATASET_ID_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
+
collection_id: _id_pb2.ID
|
|
34
|
+
dataset_id: _id_pb2.ID
|
|
35
|
+
def __init__(self, collection_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., dataset_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ...) -> None: ...
|
|
36
|
+
|
|
37
|
+
class DeleteCollectionResponse(_message.Message):
|
|
38
|
+
__slots__ = ()
|
|
39
|
+
def __init__(self) -> None: ...
|
|
27
40
|
|
|
28
41
|
class ListCollectionsRequest(_message.Message):
|
|
29
42
|
__slots__ = ("dataset_id", "with_availability", "with_count")
|
|
30
43
|
DATASET_ID_FIELD_NUMBER: _ClassVar[int]
|
|
31
44
|
WITH_AVAILABILITY_FIELD_NUMBER: _ClassVar[int]
|
|
32
45
|
WITH_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
33
|
-
dataset_id:
|
|
46
|
+
dataset_id: _id_pb2.ID
|
|
34
47
|
with_availability: bool
|
|
35
48
|
with_count: bool
|
|
36
|
-
def __init__(self, dataset_id: _Optional[_Union[
|
|
49
|
+
def __init__(self, dataset_id: _Optional[_Union[_id_pb2.ID, _Mapping]] = ..., with_availability: bool = ..., with_count: bool = ...) -> None: ...
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
4
|
|
|
5
|
-
from tilebox.datasets.
|
|
6
|
-
from tilebox.datasets.
|
|
5
|
+
from tilebox.datasets.datasets.v1 import collections_pb2 as datasets_dot_v1_dot_collections__pb2
|
|
6
|
+
from tilebox.datasets.datasets.v1 import core_pb2 as datasets_dot_v1_dot_core__pb2
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class CollectionServiceStub(object):
|
|
@@ -26,6 +26,11 @@ class CollectionServiceStub(object):
|
|
|
26
26
|
request_serializer=datasets_dot_v1_dot_collections__pb2.GetCollectionByNameRequest.SerializeToString,
|
|
27
27
|
response_deserializer=datasets_dot_v1_dot_core__pb2.CollectionInfo.FromString,
|
|
28
28
|
_registered_method=True)
|
|
29
|
+
self.DeleteCollection = channel.unary_unary(
|
|
30
|
+
'/datasets.v1.CollectionService/DeleteCollection',
|
|
31
|
+
request_serializer=datasets_dot_v1_dot_collections__pb2.DeleteCollectionRequest.SerializeToString,
|
|
32
|
+
response_deserializer=datasets_dot_v1_dot_collections__pb2.DeleteCollectionResponse.FromString,
|
|
33
|
+
_registered_method=True)
|
|
29
34
|
self.ListCollections = channel.unary_unary(
|
|
30
35
|
'/datasets.v1.CollectionService/ListCollections',
|
|
31
36
|
request_serializer=datasets_dot_v1_dot_collections__pb2.ListCollectionsRequest.SerializeToString,
|
|
@@ -49,6 +54,12 @@ class CollectionServiceServicer(object):
|
|
|
49
54
|
context.set_details('Method not implemented!')
|
|
50
55
|
raise NotImplementedError('Method not implemented!')
|
|
51
56
|
|
|
57
|
+
def DeleteCollection(self, request, context):
|
|
58
|
+
"""Missing associated documentation comment in .proto file."""
|
|
59
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
60
|
+
context.set_details('Method not implemented!')
|
|
61
|
+
raise NotImplementedError('Method not implemented!')
|
|
62
|
+
|
|
52
63
|
def ListCollections(self, request, context):
|
|
53
64
|
"""Missing associated documentation comment in .proto file."""
|
|
54
65
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
@@ -68,6 +79,11 @@ def add_CollectionServiceServicer_to_server(servicer, server):
|
|
|
68
79
|
request_deserializer=datasets_dot_v1_dot_collections__pb2.GetCollectionByNameRequest.FromString,
|
|
69
80
|
response_serializer=datasets_dot_v1_dot_core__pb2.CollectionInfo.SerializeToString,
|
|
70
81
|
),
|
|
82
|
+
'DeleteCollection': grpc.unary_unary_rpc_method_handler(
|
|
83
|
+
servicer.DeleteCollection,
|
|
84
|
+
request_deserializer=datasets_dot_v1_dot_collections__pb2.DeleteCollectionRequest.FromString,
|
|
85
|
+
response_serializer=datasets_dot_v1_dot_collections__pb2.DeleteCollectionResponse.SerializeToString,
|
|
86
|
+
),
|
|
71
87
|
'ListCollections': grpc.unary_unary_rpc_method_handler(
|
|
72
88
|
servicer.ListCollections,
|
|
73
89
|
request_deserializer=datasets_dot_v1_dot_collections__pb2.ListCollectionsRequest.FromString,
|
|
@@ -139,6 +155,33 @@ class CollectionService(object):
|
|
|
139
155
|
metadata,
|
|
140
156
|
_registered_method=True)
|
|
141
157
|
|
|
158
|
+
@staticmethod
|
|
159
|
+
def DeleteCollection(request,
|
|
160
|
+
target,
|
|
161
|
+
options=(),
|
|
162
|
+
channel_credentials=None,
|
|
163
|
+
call_credentials=None,
|
|
164
|
+
insecure=False,
|
|
165
|
+
compression=None,
|
|
166
|
+
wait_for_ready=None,
|
|
167
|
+
timeout=None,
|
|
168
|
+
metadata=None):
|
|
169
|
+
return grpc.experimental.unary_unary(
|
|
170
|
+
request,
|
|
171
|
+
target,
|
|
172
|
+
'/datasets.v1.CollectionService/DeleteCollection',
|
|
173
|
+
datasets_dot_v1_dot_collections__pb2.DeleteCollectionRequest.SerializeToString,
|
|
174
|
+
datasets_dot_v1_dot_collections__pb2.DeleteCollectionResponse.FromString,
|
|
175
|
+
options,
|
|
176
|
+
channel_credentials,
|
|
177
|
+
insecure,
|
|
178
|
+
call_credentials,
|
|
179
|
+
compression,
|
|
180
|
+
wait_for_ready,
|
|
181
|
+
timeout,
|
|
182
|
+
metadata,
|
|
183
|
+
_registered_method=True)
|
|
184
|
+
|
|
142
185
|
@staticmethod
|
|
143
186
|
def ListCollections(request,
|
|
144
187
|
target,
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: datasets/v1/core.proto
|
|
5
|
+
# Protobuf Python Version: 5.29.3
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
29,
|
|
16
|
+
3,
|
|
17
|
+
'',
|
|
18
|
+
'datasets/v1/core.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from tilebox.datasets.datasets.v1 import dataset_type_pb2 as datasets_dot_v1_dot_dataset__type__pb2
|
|
26
|
+
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
|
27
|
+
from tilebox.datasets.tilebox.v1 import id_pb2 as tilebox_dot_v1_dot_id__pb2
|
|
28
|
+
from tilebox.datasets.tilebox.v1 import query_pb2 as tilebox_dot_v1_dot_query__pb2
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x64\x61tasets/v1/core.proto\x12\x0b\x64\x61tasets.v1\x1a\x1e\x64\x61tasets/v1/dataset_type.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13tilebox/v1/id.proto\x1a\x16tilebox/v1/query.proto\"]\n\x10LegacyPagination\x12\x1b\n\x05limit\x18\x01 \x01(\x03\x42\x05\xaa\x01\x02\x08\x01R\x05limit\x12,\n\x0estarting_after\x18\x02 \x01(\tB\x05\xaa\x01\x02\x08\x01R\rstartingAfter\"6\n\x03\x41ny\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x01(\x0cR\x05value\">\n\x0bRepeatedAny\x12\x19\n\x08type_url\x18\x01 \x01(\tR\x07typeUrl\x12\x14\n\x05value\x18\x02 \x03(\x0cR\x05value\"\xa8\x01\n\x11\x44\x61tapointMetadata\x12\x39\n\nevent_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\teventTime\x12\x41\n\x0eingestion_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ringestionTime\x12\x15\n\x02id\x18\x03 \x01(\tB\x05\xaa\x01\x02\x08\x01R\x02id\"n\n\nDatapoints\x12\x32\n\x04meta\x18\x01 \x03(\x0b\x32\x1e.datasets.v1.DatapointMetadataR\x04meta\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.datasets.v1.RepeatedAnyR\x04\x64\x61ta\"\xb4\x01\n\rDatapointPage\x12\x32\n\x04meta\x18\x01 \x03(\x0b\x32\x1e.datasets.v1.DatapointMetadataR\x04meta\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.datasets.v1.RepeatedAnyR\x04\x64\x61ta\x12\x41\n\tnext_page\x18\x03 \x01(\x0b\x32\x1d.datasets.v1.LegacyPaginationB\x05\xaa\x01\x02\x08\x01R\x08nextPage\"e\n\tDatapoint\x12\x32\n\x04meta\x18\x01 \x01(\x0b\x32\x1e.datasets.v1.DatapointMetadataR\x04meta\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x10.datasets.v1.AnyR\x04\x64\x61ta\"]\n\nCollection\x12\x1b\n\tlegacy_id\x18\x01 \x01(\tR\x08legacyId\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1e\n\x02id\x18\x03 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x02id\"\xab\x01\n\x0e\x43ollectionInfo\x12\x37\n\ncollection\x18\x01 \x01(\x0b\x32\x17.datasets.v1.CollectionR\ncollection\x12\x43\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x18.tilebox.v1.TimeIntervalB\x05\xaa\x01\x02\x08\x01R\x0c\x61vailability\x12\x1b\n\x05\x63ount\x18\x03 \x01(\x04\x42\x05\xaa\x01\x02\x08\x01R\x05\x63ount\"B\n\x0f\x43ollectionInfos\x12/\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x1b.datasets.v1.CollectionInfoR\x04\x64\x61ta\"\xb9\x03\n\x07\x44\x61taset\x12\x1e\n\x02id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x02id\x12)\n\x08group_id\x18\x02 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x07groupId\x12.\n\x04type\x18\x03 \x01(\x0b\x32\x1a.datasets.v1.AnnotatedTypeR\x04type\x12\x1b\n\tcode_name\x18\x04 \x01(\tR\x08\x63odeName\x12\x12\n\x04name\x18\x05 \x01(\tR\x04name\x12\x18\n\x07summary\x18\x06 \x01(\tR\x07summary\x12\x12\n\x04icon\x18\x07 \x01(\tR\x04icon\x12 \n\x0b\x64\x65scription\x18\x08 \x01(\tR\x0b\x64\x65scription\x12@\n\x0bpermissions\x18\n \x03(\x0e\x32\x1e.datasets.v1.DatasetPermissionR\x0bpermissions\x12\x37\n\nvisibility\x18\x0b \x01(\x0e\x32\x17.datasets.v1.VisibilityR\nvisibility\x12\x12\n\x04slug\x18\x0c \x01(\tR\x04slug\x12#\n\rtype_editable\x18\r \x01(\x08R\x0ctypeEditable\"\xa0\x01\n\x0c\x44\x61tasetGroup\x12\x1e\n\x02id\x18\x01 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x02id\x12+\n\tparent_id\x18\x02 \x01(\x0b\x32\x0e.tilebox.v1.IDR\x08parentId\x12\x1b\n\tcode_name\x18\x03 \x01(\tR\x08\x63odeName\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12\x12\n\x04icon\x18\x05 \x01(\tR\x04icon*\x9b\x01\n\x11\x44\x61tasetPermission\x12\"\n\x1e\x44\x41TASET_PERMISSION_UNSPECIFIED\x10\x00\x12\"\n\x1e\x44\x41TASET_PERMISSION_ACCESS_DATA\x10\x01\x12!\n\x1d\x44\x41TASET_PERMISSION_WRITE_DATA\x10\x02\x12\x1b\n\x17\x44\x41TASET_PERMISSION_EDIT\x10\x03*v\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x1d\n\x19VISIBILITY_SHARED_WITH_ME\x10\x02\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x03\x42n\n\x0f\x63om.datasets.v1B\tCoreProtoP\x01\xa2\x02\x03\x44XX\xaa\x02\x0b\x44\x61tasets.V1\xca\x02\x0b\x44\x61tasets\\V1\xe2\x02\x17\x44\x61tasets\\V1\\GPBMetadata\xea\x02\x0c\x44\x61tasets::V1\x92\x03\x02\x08\x02\x62\x08\x65\x64itionsp\xe8\x07')
|
|
32
|
+
|
|
33
|
+
_globals = globals()
|
|
34
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
35
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'datasets.v1.core_pb2', _globals)
|
|
36
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
37
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
38
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\017com.datasets.v1B\tCoreProtoP\001\242\002\003DXX\252\002\013Datasets.V1\312\002\013Datasets\\V1\342\002\027Datasets\\V1\\GPBMetadata\352\002\014Datasets::V1\222\003\002\010\002'
|
|
39
|
+
_globals['_LEGACYPAGINATION'].fields_by_name['limit']._loaded_options = None
|
|
40
|
+
_globals['_LEGACYPAGINATION'].fields_by_name['limit']._serialized_options = b'\252\001\002\010\001'
|
|
41
|
+
_globals['_LEGACYPAGINATION'].fields_by_name['starting_after']._loaded_options = None
|
|
42
|
+
_globals['_LEGACYPAGINATION'].fields_by_name['starting_after']._serialized_options = b'\252\001\002\010\001'
|
|
43
|
+
_globals['_DATAPOINTMETADATA'].fields_by_name['id']._loaded_options = None
|
|
44
|
+
_globals['_DATAPOINTMETADATA'].fields_by_name['id']._serialized_options = b'\252\001\002\010\001'
|
|
45
|
+
_globals['_DATAPOINTPAGE'].fields_by_name['next_page']._loaded_options = None
|
|
46
|
+
_globals['_DATAPOINTPAGE'].fields_by_name['next_page']._serialized_options = b'\252\001\002\010\001'
|
|
47
|
+
_globals['_COLLECTIONINFO'].fields_by_name['availability']._loaded_options = None
|
|
48
|
+
_globals['_COLLECTIONINFO'].fields_by_name['availability']._serialized_options = b'\252\001\002\010\001'
|
|
49
|
+
_globals['_COLLECTIONINFO'].fields_by_name['count']._loaded_options = None
|
|
50
|
+
_globals['_COLLECTIONINFO'].fields_by_name['count']._serialized_options = b'\252\001\002\010\001'
|
|
51
|
+
_globals['_DATASETPERMISSION']._serialized_start=1878
|
|
52
|
+
_globals['_DATASETPERMISSION']._serialized_end=2033
|
|
53
|
+
_globals['_VISIBILITY']._serialized_start=2035
|
|
54
|
+
_globals['_VISIBILITY']._serialized_end=2153
|
|
55
|
+
_globals['_LEGACYPAGINATION']._serialized_start=149
|
|
56
|
+
_globals['_LEGACYPAGINATION']._serialized_end=242
|
|
57
|
+
_globals['_ANY']._serialized_start=244
|
|
58
|
+
_globals['_ANY']._serialized_end=298
|
|
59
|
+
_globals['_REPEATEDANY']._serialized_start=300
|
|
60
|
+
_globals['_REPEATEDANY']._serialized_end=362
|
|
61
|
+
_globals['_DATAPOINTMETADATA']._serialized_start=365
|
|
62
|
+
_globals['_DATAPOINTMETADATA']._serialized_end=533
|
|
63
|
+
_globals['_DATAPOINTS']._serialized_start=535
|
|
64
|
+
_globals['_DATAPOINTS']._serialized_end=645
|
|
65
|
+
_globals['_DATAPOINTPAGE']._serialized_start=648
|
|
66
|
+
_globals['_DATAPOINTPAGE']._serialized_end=828
|
|
67
|
+
_globals['_DATAPOINT']._serialized_start=830
|
|
68
|
+
_globals['_DATAPOINT']._serialized_end=931
|
|
69
|
+
_globals['_COLLECTION']._serialized_start=933
|
|
70
|
+
_globals['_COLLECTION']._serialized_end=1026
|
|
71
|
+
_globals['_COLLECTIONINFO']._serialized_start=1029
|
|
72
|
+
_globals['_COLLECTIONINFO']._serialized_end=1200
|
|
73
|
+
_globals['_COLLECTIONINFOS']._serialized_start=1202
|
|
74
|
+
_globals['_COLLECTIONINFOS']._serialized_end=1268
|
|
75
|
+
_globals['_DATASET']._serialized_start=1271
|
|
76
|
+
_globals['_DATASET']._serialized_end=1712
|
|
77
|
+
_globals['_DATASETGROUP']._serialized_start=1715
|
|
78
|
+
_globals['_DATASETGROUP']._serialized_end=1875
|
|
79
|
+
# @@protoc_insertion_point(module_scope)
|