cognite-toolkit 0.5.60__py3-none-any.whl → 0.5.61__py3-none-any.whl
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.
- cognite_toolkit/_builtin_modules/cdf.toml +1 -1
- cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +11 -0
- cognite_toolkit/_cdf_tk/utils/aggregators.py +159 -20
- cognite_toolkit/_cdf_tk/utils/sql_parser.py +14 -0
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
- cognite_toolkit/_version.py +1 -1
- {cognite_toolkit-0.5.60.dist-info → cognite_toolkit-0.5.61.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.5.60.dist-info → cognite_toolkit-0.5.61.dist-info}/RECORD +12 -12
- {cognite_toolkit-0.5.60.dist-info → cognite_toolkit-0.5.61.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.5.60.dist-info → cognite_toolkit-0.5.61.dist-info}/entry_points.txt +0 -0
- {cognite_toolkit-0.5.60.dist-info → cognite_toolkit-0.5.61.dist-info}/licenses/LICENSE +0 -0
@@ -48,6 +48,11 @@ class AllScope(Scope):
|
|
48
48
|
_scope_name = "all"
|
49
49
|
|
50
50
|
|
51
|
+
class AppConfigScope(Scope):
|
52
|
+
_scope_name = "appScope"
|
53
|
+
apps: list[Literal["SEARCH"]]
|
54
|
+
|
55
|
+
|
51
56
|
class CurrentUserScope(Scope):
|
52
57
|
_scope_name = "currentuserscope"
|
53
58
|
|
@@ -175,6 +180,12 @@ class AnnotationsAcl(Capability):
|
|
175
180
|
scope: AllScope
|
176
181
|
|
177
182
|
|
183
|
+
class AppConfigAcl(Capability):
|
184
|
+
_capability_name = "appConfigAcl"
|
185
|
+
actions: list[Literal["READ", "WRITE"]]
|
186
|
+
scope: AllScope | AppConfigScope
|
187
|
+
|
188
|
+
|
178
189
|
class AssetsAcl(Capability):
|
179
190
|
_capability_name = "assetsAcl"
|
180
191
|
actions: list[Literal["READ", "WRITE"]]
|
@@ -1,5 +1,20 @@
|
|
1
1
|
from abc import ABC, abstractmethod
|
2
|
-
from typing import ClassVar, Literal
|
2
|
+
from typing import ClassVar, Generic, Literal, TypeVar
|
3
|
+
|
4
|
+
from cognite.client.data_classes import (
|
5
|
+
AssetFilter,
|
6
|
+
EventFilter,
|
7
|
+
FileMetadataFilter,
|
8
|
+
SequenceFilter,
|
9
|
+
TimeSeriesFilter,
|
10
|
+
Transformation,
|
11
|
+
filters,
|
12
|
+
)
|
13
|
+
from cognite.client.data_classes.assets import AssetProperty
|
14
|
+
from cognite.client.data_classes.documents import SourceFileProperty
|
15
|
+
from cognite.client.data_classes.events import EventProperty
|
16
|
+
from cognite.client.data_classes.sequences import SequenceProperty
|
17
|
+
from cognite.client.data_classes.time_series import TimeSeriesProperty
|
3
18
|
|
4
19
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
5
20
|
from cognite_toolkit._cdf_tk.utils.cdf import (
|
@@ -8,6 +23,13 @@ from cognite_toolkit._cdf_tk.utils.cdf import (
|
|
8
23
|
metadata_key_counts,
|
9
24
|
relationship_aggregate_count,
|
10
25
|
)
|
26
|
+
from cognite_toolkit._cdf_tk.utils.sql_parser import SQLParser
|
27
|
+
|
28
|
+
T_CogniteFilter = TypeVar(
|
29
|
+
"T_CogniteFilter",
|
30
|
+
bound=AssetFilter | EventFilter | FileMetadataFilter | TimeSeriesFilter | SequenceFilter,
|
31
|
+
contravariant=True,
|
32
|
+
)
|
11
33
|
|
12
34
|
|
13
35
|
class AssetCentricAggregator(ABC):
|
@@ -22,7 +44,7 @@ class AssetCentricAggregator(ABC):
|
|
22
44
|
raise NotImplementedError()
|
23
45
|
|
24
46
|
@abstractmethod
|
25
|
-
def count(self) -> int:
|
47
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
26
48
|
raise NotImplementedError
|
27
49
|
|
28
50
|
def transformation_count(self) -> int:
|
@@ -33,8 +55,57 @@ class AssetCentricAggregator(ABC):
|
|
33
55
|
transformation_count += len(chunk)
|
34
56
|
return transformation_count
|
35
57
|
|
58
|
+
@abstractmethod
|
59
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
60
|
+
"""Returns a list of data sets used by the resource."""
|
61
|
+
raise NotImplementedError
|
62
|
+
|
63
|
+
def used_transformations(self, data_set_external_ids: list[str]) -> list[Transformation]:
|
64
|
+
"""Returns a list of transformations used by the resource."""
|
65
|
+
data_set_ids = self.client.lookup.data_sets.id(data_set_external_ids, allow_empty=True)
|
66
|
+
found_transformations: list[Transformation] = []
|
67
|
+
for destination in self._transformation_destination:
|
68
|
+
for chunk in self.client.transformations(chunk_size=1000, destination_type=destination, limit=None):
|
69
|
+
for transformation in chunk:
|
70
|
+
if SQLParser(transformation.query or "", operation="profiling").is_using_data_set(
|
71
|
+
data_set_ids, data_set_external_ids
|
72
|
+
):
|
73
|
+
found_transformations.append(transformation)
|
74
|
+
return found_transformations
|
75
|
+
|
76
|
+
@staticmethod
|
77
|
+
def _to_unique_int_list(results: list) -> list[int]:
|
78
|
+
"""Converts a list of results to a unique list of integers.
|
79
|
+
|
80
|
+
This method does the following:
|
81
|
+
* Converts each item in the results to an integer, if possible.
|
82
|
+
* Filters out None.
|
83
|
+
* Removes duplicates
|
84
|
+
|
85
|
+
This is used as the aggregation results are inconsistently implemented for the different resources,
|
86
|
+
when aggregating dataSetIds, Sequences, TimeSeries, and Files return a list of strings, while
|
87
|
+
Assets and Events return a list of integers. In addition, the files aggregation can return
|
88
|
+
duplicated values.
|
89
|
+
"""
|
90
|
+
seen: set[int] = set()
|
91
|
+
ids: list[int] = []
|
92
|
+
for id_ in results:
|
93
|
+
if isinstance(id_, int) and id_ not in seen:
|
94
|
+
ids.append(id_)
|
95
|
+
seen.add(id_)
|
96
|
+
try:
|
97
|
+
int_id = int(id_) # type: ignore[arg-type]
|
98
|
+
except (ValueError, TypeError):
|
99
|
+
continue
|
100
|
+
if int_id not in seen:
|
101
|
+
ids.append(int_id)
|
102
|
+
seen.add(int_id)
|
103
|
+
return ids
|
104
|
+
|
105
|
+
|
106
|
+
class MetadataAggregator(AssetCentricAggregator, ABC, Generic[T_CogniteFilter]):
|
107
|
+
filter_cls: type[T_CogniteFilter]
|
36
108
|
|
37
|
-
class MetadataAggregator(AssetCentricAggregator, ABC):
|
38
109
|
def __init__(
|
39
110
|
self, client: ToolkitClient, resource_name: Literal["assets", "events", "files", "timeseries", "sequences"]
|
40
111
|
) -> None:
|
@@ -44,14 +115,27 @@ class MetadataAggregator(AssetCentricAggregator, ABC):
|
|
44
115
|
def metadata_key_count(self) -> int:
|
45
116
|
return len(metadata_key_counts(self.client, self.resource_name))
|
46
117
|
|
118
|
+
@classmethod
|
119
|
+
def create_filter(
|
120
|
+
cls, hierarchy: str | None = None, data_set_external_id: str | None = None
|
121
|
+
) -> T_CogniteFilter | None:
|
122
|
+
"""Creates a filter for the resource based on hierarchy and data set external ID."""
|
123
|
+
if hierarchy is None and data_set_external_id is None:
|
124
|
+
return None
|
125
|
+
return cls.filter_cls(
|
126
|
+
asset_subtree_ids=[{"externalId": hierarchy}] if hierarchy is not None else None,
|
127
|
+
data_set_ids=[{"externalId": data_set_external_id}] if data_set_external_id is not None else None,
|
128
|
+
)
|
129
|
+
|
47
130
|
|
48
|
-
class LabelAggregator(MetadataAggregator, ABC):
|
131
|
+
class LabelAggregator(MetadataAggregator, ABC, Generic[T_CogniteFilter]):
|
49
132
|
def label_count(self) -> int:
|
50
133
|
return len(label_count(self.client, self.resource_name))
|
51
134
|
|
52
135
|
|
53
|
-
class AssetAggregator(LabelAggregator):
|
136
|
+
class AssetAggregator(LabelAggregator[AssetFilter]):
|
54
137
|
_transformation_destination = ("assets", "asset_hierarchy")
|
138
|
+
filter_cls = AssetFilter
|
55
139
|
|
56
140
|
def __init__(self, client: ToolkitClient) -> None:
|
57
141
|
super().__init__(client, "assets")
|
@@ -60,12 +144,20 @@ class AssetAggregator(LabelAggregator):
|
|
60
144
|
def display_name(self) -> str:
|
61
145
|
return "Assets"
|
62
146
|
|
63
|
-
def count(self) -> int:
|
64
|
-
return self.client.assets.aggregate_count()
|
147
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
148
|
+
return self.client.assets.aggregate_count(filter=self.create_filter(hierarchy, data_set_external_id))
|
65
149
|
|
150
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
151
|
+
"""Returns a list of data sets used by the resource."""
|
152
|
+
results = self.client.assets.aggregate_unique_values(
|
153
|
+
AssetProperty.data_set_id, filter=self.create_filter(hierarchy)
|
154
|
+
)
|
155
|
+
return self.client.lookup.data_sets.external_id([id_ for id_ in results.unique if isinstance(id_, int)])
|
66
156
|
|
67
|
-
|
157
|
+
|
158
|
+
class EventAggregator(MetadataAggregator[EventFilter]):
|
68
159
|
_transformation_destination = ("events",)
|
160
|
+
filter_cls = EventFilter
|
69
161
|
|
70
162
|
def __init__(self, client: ToolkitClient) -> None:
|
71
163
|
super().__init__(client, "events")
|
@@ -74,12 +166,20 @@ class EventAggregator(MetadataAggregator):
|
|
74
166
|
def display_name(self) -> str:
|
75
167
|
return "Events"
|
76
168
|
|
77
|
-
def count(self) -> int:
|
78
|
-
return self.client.events.aggregate_count()
|
169
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
170
|
+
return self.client.events.aggregate_count(filter=self.create_filter(hierarchy, data_set_external_id))
|
171
|
+
|
172
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
173
|
+
"""Returns a list of data sets used by the resource."""
|
174
|
+
results = self.client.events.aggregate_unique_values(
|
175
|
+
property=EventProperty.data_set_id, filter=self.create_filter(hierarchy)
|
176
|
+
)
|
177
|
+
return self.client.lookup.data_sets.external_id([id_ for id_ in results.unique if isinstance(id_, int)])
|
79
178
|
|
80
179
|
|
81
|
-
class FileAggregator(LabelAggregator):
|
180
|
+
class FileAggregator(LabelAggregator[FileMetadataFilter]):
|
82
181
|
_transformation_destination = ("files",)
|
182
|
+
filter_cls = FileMetadataFilter
|
83
183
|
|
84
184
|
def __init__(self, client: ToolkitClient) -> None:
|
85
185
|
super().__init__(client, "files")
|
@@ -88,16 +188,28 @@ class FileAggregator(LabelAggregator):
|
|
88
188
|
def display_name(self) -> str:
|
89
189
|
return "Files"
|
90
190
|
|
91
|
-
def count(self) -> int:
|
92
|
-
response = self.client.files.aggregate()
|
191
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
192
|
+
response = self.client.files.aggregate(filter=self.create_filter(hierarchy, data_set_external_id))
|
93
193
|
if response:
|
94
194
|
return response[0].count
|
95
195
|
else:
|
96
196
|
return 0
|
97
197
|
|
198
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
199
|
+
"""Returns a list of data sets used by the resource."""
|
200
|
+
filter_: filters.Filter | None = None
|
201
|
+
if hierarchy is not None:
|
202
|
+
filter_ = filters.InAssetSubtree("assetExternalIds", [hierarchy])
|
203
|
+
results = self.client.documents.aggregate_unique_values(
|
204
|
+
property=SourceFileProperty.data_set_id, filter=filter_, limit=1000
|
205
|
+
)
|
206
|
+
ids = self._to_unique_int_list(results.unique)
|
207
|
+
return self.client.lookup.data_sets.external_id(list(ids))
|
208
|
+
|
98
209
|
|
99
|
-
class TimeSeriesAggregator(MetadataAggregator):
|
210
|
+
class TimeSeriesAggregator(MetadataAggregator[TimeSeriesFilter]):
|
100
211
|
_transformation_destination = ("timeseries",)
|
212
|
+
filter_cls = TimeSeriesFilter
|
101
213
|
|
102
214
|
def __init__(self, client: ToolkitClient) -> None:
|
103
215
|
super().__init__(client, "timeseries")
|
@@ -106,12 +218,21 @@ class TimeSeriesAggregator(MetadataAggregator):
|
|
106
218
|
def display_name(self) -> str:
|
107
219
|
return "TimeSeries"
|
108
220
|
|
109
|
-
def count(self) -> int:
|
110
|
-
return self.client.time_series.aggregate_count()
|
221
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
222
|
+
return self.client.time_series.aggregate_count(filter=self.create_filter(hierarchy, data_set_external_id))
|
223
|
+
|
224
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
225
|
+
"""Returns a list of data sets used by the resource."""
|
226
|
+
results = self.client.time_series.aggregate_unique_values(
|
227
|
+
property=TimeSeriesProperty.data_set_id, filter=self.create_filter(hierarchy)
|
228
|
+
)
|
229
|
+
ids = self._to_unique_int_list(results.unique)
|
230
|
+
return self.client.lookup.data_sets.external_id(ids)
|
111
231
|
|
112
232
|
|
113
233
|
class SequenceAggregator(MetadataAggregator):
|
114
234
|
_transformation_destination = ("sequences",)
|
235
|
+
filter_cls = SequenceFilter
|
115
236
|
|
116
237
|
def __init__(self, client: ToolkitClient) -> None:
|
117
238
|
super().__init__(client, "sequences")
|
@@ -120,8 +241,16 @@ class SequenceAggregator(MetadataAggregator):
|
|
120
241
|
def display_name(self) -> str:
|
121
242
|
return "Sequences"
|
122
243
|
|
123
|
-
def count(self) -> int:
|
124
|
-
return self.client.sequences.aggregate_count()
|
244
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
245
|
+
return self.client.sequences.aggregate_count(filter=self.create_filter(hierarchy, data_set_external_id))
|
246
|
+
|
247
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
248
|
+
"""Returns a list of data sets used by the resource."""
|
249
|
+
results = self.client.sequences.aggregate_unique_values(
|
250
|
+
property=SequenceProperty.data_set_id, filter=self.create_filter(hierarchy)
|
251
|
+
)
|
252
|
+
ids = self._to_unique_int_list(results.unique)
|
253
|
+
return self.client.lookup.data_sets.external_id(ids)
|
125
254
|
|
126
255
|
|
127
256
|
class RelationshipAggregator(AssetCentricAggregator):
|
@@ -131,10 +260,15 @@ class RelationshipAggregator(AssetCentricAggregator):
|
|
131
260
|
def display_name(self) -> str:
|
132
261
|
return "Relationships"
|
133
262
|
|
134
|
-
def count(self) -> int:
|
263
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
264
|
+
if hierarchy is not None or data_set_external_id is not None:
|
265
|
+
raise NotImplementedError()
|
135
266
|
results = relationship_aggregate_count(self.client)
|
136
267
|
return sum(result.count for result in results)
|
137
268
|
|
269
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
270
|
+
raise NotImplementedError()
|
271
|
+
|
138
272
|
|
139
273
|
class LabelCountAggregator(AssetCentricAggregator):
|
140
274
|
_transformation_destination = ("labels",)
|
@@ -143,5 +277,10 @@ class LabelCountAggregator(AssetCentricAggregator):
|
|
143
277
|
def display_name(self) -> str:
|
144
278
|
return "Labels"
|
145
279
|
|
146
|
-
def count(self) -> int:
|
280
|
+
def count(self, hierarchy: str | None = None, data_set_external_id: str | None = None) -> int:
|
281
|
+
if hierarchy is not None or data_set_external_id is not None:
|
282
|
+
raise NotImplementedError()
|
147
283
|
return label_aggregate_count(self.client)
|
284
|
+
|
285
|
+
def used_data_sets(self, hierarchy: str | None = None) -> list[str]:
|
286
|
+
raise NotImplementedError()
|
@@ -45,6 +45,20 @@ class SQLParser:
|
|
45
45
|
self.parse()
|
46
46
|
return self._destination_columns
|
47
47
|
|
48
|
+
def is_using_data_set(
|
49
|
+
self, data_set_ids: list[int] | None = None, data_set_external_ids: list[str] | None = None
|
50
|
+
) -> bool:
|
51
|
+
"""Check if the SQL query uses any of the provided data set IDs or external IDs."""
|
52
|
+
for data_set_id in data_set_ids or []:
|
53
|
+
if f"{data_set_id} " in self.query:
|
54
|
+
return True
|
55
|
+
for data_set_external_id in data_set_external_ids or []:
|
56
|
+
if f'dataset_id("{data_set_external_id}")' in self.query:
|
57
|
+
return True
|
58
|
+
elif f"dataset_id('{data_set_external_id}')" in self.query:
|
59
|
+
return True
|
60
|
+
return False
|
61
|
+
|
48
62
|
def parse(self) -> None:
|
49
63
|
"""Parse the SQL query and extract table names."""
|
50
64
|
import sqlparse
|
cognite_toolkit/_version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.5.
|
1
|
+
__version__ = "0.5.61"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cognite_toolkit
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.61
|
4
4
|
Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
|
5
5
|
Project-URL: Homepage, https://docs.cognite.com/cdf/deploy/cdf_toolkit/
|
6
6
|
Project-URL: Changelog, https://github.com/cognitedata/toolkit/releases
|
@@ -1,9 +1,9 @@
|
|
1
1
|
cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
2
|
cognite_toolkit/_cdf.py,sha256=WWMslI-y2VbIYDMH19wnINebGwlOvAeYr-qkPRC1f68,5834
|
3
|
-
cognite_toolkit/_version.py,sha256=
|
3
|
+
cognite_toolkit/_version.py,sha256=2fDfDeXzFJgUAfD2DlfwQKyQL5RXhYlGGenxGvZPy-Q,23
|
4
4
|
cognite_toolkit/_builtin_modules/README.md,sha256=roU3G05E6ogP5yhw4hdIvVDKV831zCh2pzt9BVddtBg,307
|
5
5
|
cognite_toolkit/_builtin_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
cognite_toolkit/_builtin_modules/cdf.toml,sha256=
|
6
|
+
cognite_toolkit/_builtin_modules/cdf.toml,sha256=7yvMb-WFWVEQdhExQScNNPHvwkUqPQIqjuLFA8ELywc,273
|
7
7
|
cognite_toolkit/_builtin_modules/package.toml,sha256=RdY44Sxvh6sUtAkgp1dHID1mtqkOTzP_rbZL2Q27fYw,1147
|
8
8
|
cognite_toolkit/_builtin_modules/bootcamp/README.md,sha256=iTVqoy3PLpC-xPi5pbuMIAEHILBSfWTGLexwa1AltpY,211
|
9
9
|
cognite_toolkit/_builtin_modules/bootcamp/default.config.yaml,sha256=MqYTcRiz03bow4LT8E3jumnd_BsqC5SvjgYOVVkHGE0,93
|
@@ -649,7 +649,7 @@ cognite_toolkit/_cdf_tk/prototypes/commands/import_.py,sha256=a27HF7TWiYZNX4PnV0
|
|
649
649
|
cognite_toolkit/_cdf_tk/resource_classes/__init__.py,sha256=UxxQ3H3jAFFSyJahlyAIdtkCaLhE9ki1kJ9ZlU3UGEk,1639
|
650
650
|
cognite_toolkit/_cdf_tk/resource_classes/asset.py,sha256=bFneWvGrEO0QsCJfSjfVDnJtIp9YCYIU7LYESldUSMs,1179
|
651
651
|
cognite_toolkit/_cdf_tk/resource_classes/base.py,sha256=nbAWSBkV-GL0co5UNMXvYMIw_-qhJ8uoXy9wz6KmI-w,723
|
652
|
-
cognite_toolkit/_cdf_tk/resource_classes/capabilities.py,sha256=
|
652
|
+
cognite_toolkit/_cdf_tk/resource_classes/capabilities.py,sha256=Lx8X3Ma06hJfcNGkfA8FN6mf_TMxtlNqxSRc2xzXoic,14279
|
653
653
|
cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py,sha256=rOi7pJA19jE9bWyBSHsK7aoblfiOcLoLZT5toI2UjEw,11442
|
654
654
|
cognite_toolkit/_cdf_tk/resource_classes/containers.py,sha256=-b_96LpBSjkKsUVZbdajy69gcDk-Pr-rvSa8R5zcpU8,3643
|
655
655
|
cognite_toolkit/_cdf_tk/resource_classes/dataset.py,sha256=kCEQUswgTgtb8fdd9mMg50MuY34zjDmdh4ZUmxu2A74,816
|
@@ -673,7 +673,7 @@ cognite_toolkit/_cdf_tk/tk_warnings/base.py,sha256=RMtJ_0iE1xfbTKkvWLkAo5AgscjkN
|
|
673
673
|
cognite_toolkit/_cdf_tk/tk_warnings/fileread.py,sha256=9xE8i8F_HhrRaQi6IGcE240j4TRZQzrOd7gMByjsXEk,8924
|
674
674
|
cognite_toolkit/_cdf_tk/tk_warnings/other.py,sha256=fhqhzkLRpnBjGerxic9KsQCQyRfD6p7g6hFGNyQkN5c,5275
|
675
675
|
cognite_toolkit/_cdf_tk/utils/__init__.py,sha256=FmaKeh-7yRTTzFrto03eeB8prQ9SRvHco7xk7w0X3MA,1425
|
676
|
-
cognite_toolkit/_cdf_tk/utils/aggregators.py,sha256=
|
676
|
+
cognite_toolkit/_cdf_tk/utils/aggregators.py,sha256=hr097jloKrEo1alBpnrQ-LGzgg2c7fi-AEOTh0JVF_Y,11398
|
677
677
|
cognite_toolkit/_cdf_tk/utils/auth.py,sha256=O_VuLXS8xYdjBeTATIHWht7KtemmhZIfxUrzgqCdrMQ,23106
|
678
678
|
cognite_toolkit/_cdf_tk/utils/cdf.py,sha256=AbnNp9yeyrvBnPBuTH2_bKIkrA9xFjLRaxoUJFHZ05E,13119
|
679
679
|
cognite_toolkit/_cdf_tk/utils/cicd.py,sha256=74XQKpm6IHvCbxv-66ouc0MfSdW3RhH9kBSJtjeYdv4,535
|
@@ -687,7 +687,7 @@ cognite_toolkit/_cdf_tk/utils/modules.py,sha256=9LLjMtowJWn8KRO3OU12VXGb5q2psrob
|
|
687
687
|
cognite_toolkit/_cdf_tk/utils/producer_worker.py,sha256=v5G1GR2Q7LhkxVTxW8mxe5YQC5o0KBJ-p8nFueyh_ro,8014
|
688
688
|
cognite_toolkit/_cdf_tk/utils/repository.py,sha256=voQLZ6NiNvdAFxqeWHbvzDLsLHl6spjQBihiLyCsGW8,4104
|
689
689
|
cognite_toolkit/_cdf_tk/utils/sentry_utils.py,sha256=YWQdsePeFpT214-T-tZ8kEsUyC84gj8pgks42_BDJuU,575
|
690
|
-
cognite_toolkit/_cdf_tk/utils/sql_parser.py,sha256=
|
690
|
+
cognite_toolkit/_cdf_tk/utils/sql_parser.py,sha256=jvdieuYi1Buzb8UssuiHYW4yNxFmIrVYQhXQWsAu5qU,6055
|
691
691
|
cognite_toolkit/_cdf_tk/utils/table_writers.py,sha256=wEBVlfCFv5bLLy836UiXQubwSxo8kUlSFZeQxnHrTX4,17932
|
692
692
|
cognite_toolkit/_cdf_tk/utils/tarjan.py,sha256=mr3gMzlrkDadn1v7u7-Uzao81KKiM3xfXlZ185HL__A,1359
|
693
693
|
cognite_toolkit/_repo_files/.env.tmpl,sha256=UmgKZVvIp-OzD8oOcYuwb_6c7vSJsqkLhuFaiVgK7RI,972
|
@@ -695,12 +695,12 @@ cognite_toolkit/_repo_files/.gitignore,sha256=3exydcQPCJTldGFJoZy1RPHc1horbAprAo
|
|
695
695
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
|
696
696
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=KVBxW8urCRDtVlJ6HN-kYmw0NCpW6c4lD-nlxz9tZsQ,692
|
697
697
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=Cp4KYraeWPjP8SnnEIbJoJnjmrRUwc982DPjOOzy2iM,722
|
698
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=
|
699
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256
|
698
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=hmFBWsDfhKKOMtypRrYzsPz6uWZMvXkNwL5NBTqFK0U,667
|
699
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=-z_SCqC4MGAMS7x-671A3dDtBVxglLOqSNTdJp9DPQY,2430
|
700
700
|
cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
|
701
701
|
cognite_toolkit/demo/_base.py,sha256=63nWYI_MHU5EuPwEX_inEAQxxiD5P6k8IAmlgl4CxpE,8082
|
702
|
-
cognite_toolkit-0.5.
|
703
|
-
cognite_toolkit-0.5.
|
704
|
-
cognite_toolkit-0.5.
|
705
|
-
cognite_toolkit-0.5.
|
706
|
-
cognite_toolkit-0.5.
|
702
|
+
cognite_toolkit-0.5.61.dist-info/METADATA,sha256=ftb50hXIWOi388QW7jdEkVE8eYkAIDfsTFO7j1yQDbM,4409
|
703
|
+
cognite_toolkit-0.5.61.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
704
|
+
cognite_toolkit-0.5.61.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
|
705
|
+
cognite_toolkit-0.5.61.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
|
706
|
+
cognite_toolkit-0.5.61.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|