cognite-toolkit 0.7.8__py3-none-any.whl → 0.7.10__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.
@@ -262,7 +262,7 @@ class UploadCommand(ToolkitCommand):
262
262
  self, selector: Selector, data_file: Path, client: ToolkitClient
263
263
  ) -> UploadableStorageIO | None:
264
264
  try:
265
- io_cls = get_upload_io(type(selector))
265
+ io_cls = get_upload_io(selector)
266
266
  except ValueError as e:
267
267
  self.warn(HighSeverityWarning(f"Could not find StorageIO for selector {selector}: {e}"))
268
268
  return None
@@ -32,12 +32,12 @@ STORAGE_IO_CLASSES = get_concrete_subclasses(StorageIO) # type: ignore[type-abs
32
32
  UPLOAD_IO_CLASSES = get_concrete_subclasses(UploadableStorageIO) # type: ignore[type-abstract]
33
33
 
34
34
 
35
- def get_upload_io(selector_cls: type[DataSelector]) -> type[UploadableStorageIO]:
35
+ def get_upload_io(selector: DataSelector) -> type[UploadableStorageIO]:
36
36
  """Get the appropriate UploadableStorageIO class based on the type of the provided selector."""
37
37
  for cls in UPLOAD_IO_CLASSES:
38
- if issubclass(selector_cls, cls.BASE_SELECTOR):
38
+ if isinstance(selector, cls.BASE_SELECTOR) and selector.kind == cls.KIND:
39
39
  return cls
40
- raise ValueError(f"No UploadableStorageIO found for selector of type {selector_cls.__name__}")
40
+ raise ValueError(f"No UploadableStorageIO found for selector of type {type(selector).__name__}")
41
41
 
42
42
 
43
43
  __all__ = [
@@ -1,4 +1,5 @@
1
1
  from collections.abc import Iterable, Sequence
2
+ from itertools import chain
2
3
  from uuid import uuid4
3
4
 
4
5
  from cognite.client.data_classes import Row, RowWrite
@@ -6,6 +7,8 @@ from cognite.client.data_classes import Row, RowWrite
6
7
  from cognite_toolkit._cdf_tk.cruds import RawDatabaseCRUD, RawTableCRUD
7
8
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
8
9
  from cognite_toolkit._cdf_tk.utils import sanitize_filename
10
+ from cognite_toolkit._cdf_tk.utils.collection import chunker
11
+ from cognite_toolkit._cdf_tk.utils.fileio import MultiFileReader
9
12
  from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, HTTPMessage, ItemsRequest
10
13
  from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
11
14
 
@@ -96,3 +99,26 @@ class RawIO(
96
99
  if selector is not None and selector.key is not None and selector.key in row:
97
100
  key = str(row.pop(selector.key))
98
101
  return RowWrite(key=key, columns=row)
102
+
103
+ @classmethod
104
+ def read_chunks(
105
+ cls, reader: MultiFileReader, selector: RawTableSelector
106
+ ) -> Iterable[list[tuple[str, dict[str, JsonVal]]]]:
107
+ if not reader.is_table or selector.key is None:
108
+ yield from super().read_chunks(reader, selector)
109
+ return
110
+ data_name = "row" if reader.is_table else "line"
111
+ # Validate that the key exists in all files
112
+ for input_file in sorted(reader.input_files, key=reader._part_no):
113
+ iterable = reader.reader_class(input_file).read_chunks()
114
+ try:
115
+ first = next(iterable)
116
+ except StopIteration:
117
+ continue
118
+ if selector.key not in first:
119
+ raise ToolkitValueError(
120
+ f"Column '{selector.key}' not found in file {input_file.as_posix()!r}. Please ensure the specified column exists."
121
+ )
122
+ full_iterator = chain([first], iterable)
123
+ line_numbered_iterator = ((f"{data_name} {i}", row) for i, row in enumerate(full_iterator, start=1))
124
+ yield from chunker(line_numbered_iterator, cls.CHUNK_SIZE)
@@ -52,7 +52,7 @@ TimeSeriesColumn = Annotated[
52
52
 
53
53
  class DataPointsFileSelector(DataSelector):
54
54
  type: Literal["datapointsFile"] = "datapointsFile"
55
- kind: Literal["datapoints"] = "datapoints"
55
+ kind: Literal["Datapoints"] = "Datapoints"
56
56
 
57
57
  timestamp_column: str
58
58
  columns: tuple[TimeSeriesColumn, ...]
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.8
15
+ image: cognite/toolkit:0.7.10
16
16
  env:
17
17
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
18
18
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -10,7 +10,7 @@ jobs:
10
10
  environment: dev
11
11
  name: Deploy Dry Run
12
12
  container:
13
- image: cognite/toolkit:0.7.8
13
+ image: cognite/toolkit:0.7.10
14
14
  env:
15
15
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
16
16
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -4,7 +4,7 @@ default_env = "<DEFAULT_ENV_PLACEHOLDER>"
4
4
  [modules]
5
5
  # This is the version of the modules. It should not be changed manually.
6
6
  # It will be updated by the 'cdf modules upgrade' command.
7
- version = "0.7.8"
7
+ version = "0.7.10"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.8"
1
+ __version__ = "0.7.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.8
3
+ Version: 0.7.10
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,6 +1,6 @@
1
1
  cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cognite_toolkit/_cdf.py,sha256=PzDig6dgbDX5VL88AeijQuTeYb2SS_yvenw9gr4fnxY,5794
3
- cognite_toolkit/_version.py,sha256=uC8wB9mRblQ0jUBAOUyCQLUQJ39MC2xybVLB_8ZsevU,22
3
+ cognite_toolkit/_version.py,sha256=-wENBv06wDArd9jlfvr1fdogsjPVMgMwskP7VuEz-2A,23
4
4
  cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=VSWV9h44HusWIaKpWgjrOMrc3hDoPTTXBXlp6-NOrIM,9079
6
6
  cognite_toolkit/_cdf_tk/constants.py,sha256=TplKm2J9pGRHq7nAnLI0caTMHetS04OIz3hfq-jvGzo,7236
@@ -110,7 +110,7 @@ cognite_toolkit/_cdf_tk/commands/_download.py,sha256=gOUjsu-YaiIyKGd5kZDW-1lsgY7
110
110
  cognite_toolkit/_cdf_tk/commands/_profile.py,sha256=_4iX3AHAI6eLmRVUlWXCSvVHx1BZW2yDr_i2i9ECg6U,43120
111
111
  cognite_toolkit/_cdf_tk/commands/_purge.py,sha256=RadQHsmkPez3fZ5HCP9b82o2_fBx8P_-bTo7prkvWXU,32525
112
112
  cognite_toolkit/_cdf_tk/commands/_questionary_style.py,sha256=h-w7fZKkGls3TrzIGBKjsZSGoXJJIYchgD1StfA40r8,806
113
- cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=J3Ts50AFP0DmIuGjgnVh-WxiZSLDQJQKRIjqBPGngqU,13362
113
+ cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=QrbmZ6PNkj1qZV_1FzwbRfpOZqbQNtKLV3wr2aJrIpQ,13356
114
114
  cognite_toolkit/_cdf_tk/commands/_utils.py,sha256=UxMJW5QYKts4om5n6x2Tq2ihvfO9gWjhQKeqZNFTlKg,402
115
115
  cognite_toolkit/_cdf_tk/commands/_virtual_env.py,sha256=GFAid4hplixmj9_HkcXqU5yCLj-fTXm4cloGD6U2swY,2180
116
116
  cognite_toolkit/_cdf_tk/commands/auth.py,sha256=TD6X3CKFNhDHoIv2b2uI2nKBHgQljLntp9vZffdA-jc,31384
@@ -240,7 +240,7 @@ cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py,sha256=
240
240
  cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py,sha256=XmDqJ0pAxe_vAP0Dhktba1f9o2zg_ORCJ3Hz8cyJMrk,899
241
241
  cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py,sha256=dbc9HT-bc2Qt15hHoR63SM7pg321BhNuTNjI7HHCwSA,468
242
242
  cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py,sha256=j77z7CzCMiMj8r94BdUKCum9EuZRUjaSlUAy9K9DL_Q,942
243
- cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=RurC7UaL_T36VyuVx4kJKUkUtp8bCJFA5qXkDc4JexE,1902
243
+ cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=h5Wr4i7zNIgsslrsRJxmp7ls4bNRKl0uZzQ7GLRMP7g,1920
244
244
  cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=JI_g18_Y9S7pbc9gm6dZMyo3Z-bCndJXF9C2lOva0bQ,4848
245
245
  cognite_toolkit/_cdf_tk/storageio/_applications.py,sha256=vena8BW7erki6i-hGdcdiOmDbMU3P9M_Kn_5dPG6Yzw,16084
246
246
  cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=GZZSQ8NLCP8tSQKOc8BUb2NCZAvw_BoCVcA1Og7vnIs,30821
@@ -249,13 +249,13 @@ cognite_toolkit/_cdf_tk/storageio/_data_classes.py,sha256=s3TH04BJ1q7rXndRhEbVME
249
249
  cognite_toolkit/_cdf_tk/storageio/_datapoints.py,sha256=AGTQm9CBRbu1oXbBh0X7UGzFrHnlWZExqNvAohT0hM0,8641
250
250
  cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=g8HDDHbBPBcb3g6Zp-vHc8uvNZYrZXWs5G0jq_eOc4w,10884
251
251
  cognite_toolkit/_cdf_tk/storageio/_instances.py,sha256=t9fNpHnT6kCk8LDoPj3qZXmHpyDbPF5BZ6pI8ziTyFw,10810
252
- cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=5WjAFiVR0KKRhMqCy1IRy1TQFWj86D7nGu5WSFNLp6U,3869
252
+ cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=pgZN5MbqDwMZl9Ow1KouDJUO2Ngga8_b6hwv7H31SVQ,5161
253
253
  cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py,sha256=ELUCirQmhDR52PVIhLRd_2M1DWYURwL44U6WiN9_hEA,2225
254
254
  cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py,sha256=7Iv_ccVX6Vzt3ZLFZ0Er3hN92iEsFTm9wgF-yermOWE,1467
255
255
  cognite_toolkit/_cdf_tk/storageio/selectors/_base.py,sha256=hjFkbmNGsK3QIW-jnJV_8YNmvVROERxzG82qIZhU7SM,3065
256
256
  cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py,sha256=E9S-wr-JUqRosI_2cSCfR0tF8MdIFTrMxDItuWRcuO4,597
257
257
  cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py,sha256=lQHuNtF3i6SEIMPAlziMm0QlqRcvZJ7MKIug6HMTDrs,1012
258
- cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py,sha256=EHVkWJYJ_HCs2i4Ur6Fj98UwuDvf67u0HOzrJXAHNt0,1719
258
+ cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py,sha256=tMdSa-xj_Mf94SwGE8E1I4l_UpioK9OvE8vA8SbBeqY,1719
259
259
  cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py,sha256=J_lP04QsvqCOIiw_u2rGMqIa_7obIxCaFkC70ukUjpI,3628
260
260
  cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py,sha256=NCFSJrAw52bNX6UTfOali8PvNjlqHnvxzL0hYBr7ZmA,4934
261
261
  cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py,sha256=sZq9C4G9DMe3S46_usKet0FphQ6ow7cWM_PfXrEAakk,503
@@ -303,13 +303,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
303
303
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
304
304
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
305
305
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
306
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=L55NhSDSUlxT5pZbTRphvOlO0MvCiuWXkNsGq4q7Bn4,666
307
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=9i3QNPhYewexcukRhRUaXIFh8Xgd4k8XxTiFWKxyD64,2429
308
- cognite_toolkit/_resources/cdf.toml,sha256=TN3TRIdZo6zfKthRLj0JW7VatUQ_pLeKUktmm2zl_1E,474
306
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=HoR1NKHXJPSuzs_zygB2SYCq0tHq3eKZpjCDj4FTvKc,667
307
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=aViVvWfUQs2dpOok3Wrg62RlK2qwaUR8ZFRrcX65D0o,2430
308
+ cognite_toolkit/_resources/cdf.toml,sha256=xhlS9TxtNKDaB95lhVa7P2wCHF5vo1pdmS3cy8JKFPo,475
309
309
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
310
310
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
311
- cognite_toolkit-0.7.8.dist-info/METADATA,sha256=LCh--Lkkr8NwKHeApUv_HfSm_9p2e1wuMQnMmP76zYQ,4500
312
- cognite_toolkit-0.7.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
- cognite_toolkit-0.7.8.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
- cognite_toolkit-0.7.8.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
- cognite_toolkit-0.7.8.dist-info/RECORD,,
311
+ cognite_toolkit-0.7.10.dist-info/METADATA,sha256=_-vMvCX-iPB15IkS8nEaKbuiJjBUMudKsNYHnWPkorI,4501
312
+ cognite_toolkit-0.7.10.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
+ cognite_toolkit-0.7.10.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
+ cognite_toolkit-0.7.10.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
+ cognite_toolkit-0.7.10.dist-info/RECORD,,