cognite-toolkit 0.6.100__py3-none-any.whl → 0.6.102__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.
Files changed (28) hide show
  1. cognite_toolkit/_cdf_tk/apps/_landing_app.py +32 -4
  2. cognite_toolkit/_cdf_tk/cdf_toml.py +20 -1
  3. cognite_toolkit/_cdf_tk/client/api/migration.py +109 -1
  4. cognite_toolkit/_cdf_tk/client/data_classes/migration.py +2 -2
  5. cognite_toolkit/_cdf_tk/commands/_changes.py +3 -6
  6. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +18 -39
  7. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +56 -21
  8. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +102 -8
  9. cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +9 -4
  10. cognite_toolkit/_cdf_tk/commands/_questionary_style.py +16 -0
  11. cognite_toolkit/_cdf_tk/commands/_upload.py +47 -0
  12. cognite_toolkit/_cdf_tk/commands/auth.py +2 -1
  13. cognite_toolkit/_cdf_tk/commands/init.py +225 -3
  14. cognite_toolkit/_cdf_tk/commands/modules.py +18 -42
  15. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +151 -7
  16. cognite_toolkit/_cdf_tk/storageio/__init__.py +2 -2
  17. cognite_toolkit/_cdf_tk/storageio/_annotations.py +2 -2
  18. cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +9 -3
  19. cognite_toolkit/_cdf_tk/utils/useful_types.py +6 -2
  20. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  21. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  22. cognite_toolkit/_resources/cdf.toml +1 -1
  23. cognite_toolkit/_version.py +1 -1
  24. {cognite_toolkit-0.6.100.dist-info → cognite_toolkit-0.6.102.dist-info}/METADATA +1 -1
  25. {cognite_toolkit-0.6.100.dist-info → cognite_toolkit-0.6.102.dist-info}/RECORD +28 -27
  26. {cognite_toolkit-0.6.100.dist-info → cognite_toolkit-0.6.102.dist-info}/WHEEL +0 -0
  27. {cognite_toolkit-0.6.100.dist-info → cognite_toolkit-0.6.102.dist-info}/entry_points.txt +0 -0
  28. {cognite_toolkit-0.6.100.dist-info → cognite_toolkit-0.6.102.dist-info}/licenses/LICENSE +0 -0
@@ -40,6 +40,7 @@ from cognite.client.data_classes.data_modeling import (
40
40
  DataModelApply,
41
41
  DataModelApplyList,
42
42
  DataModelList,
43
+ DirectRelation,
43
44
  Edge,
44
45
  EdgeApply,
45
46
  EdgeApplyList,
@@ -51,6 +52,7 @@ from cognite.client.data_classes.data_modeling import (
51
52
  NodeApplyList,
52
53
  NodeApplyResultList,
53
54
  NodeList,
55
+ RequiresConstraint,
54
56
  Space,
55
57
  SpaceApply,
56
58
  SpaceApplyList,
@@ -261,6 +263,16 @@ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container
261
263
  yaml_cls = ContainerYAML
262
264
  _doc_url = "Containers/operation/ApplyContainers"
263
265
 
266
+ def __init__(
267
+ self,
268
+ client: ToolkitClient,
269
+ build_dir: Path | None,
270
+ console: Console | None = None,
271
+ topological_sort_implements: bool = False,
272
+ ) -> None:
273
+ super().__init__(client, build_dir, console)
274
+ self._container_by_id: dict[ContainerId, Container] = {}
275
+
264
276
  @property
265
277
  def display_name(self) -> str:
266
278
  return "containers"
@@ -427,6 +439,71 @@ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container
427
439
  ):
428
440
  yield instances.as_ids()
429
441
 
442
+ def _lookup_containers(self, container_ids: Sequence[ContainerId]) -> dict[ContainerId, Container]:
443
+ ids_to_lookup = [container_id for container_id in container_ids if container_id not in self._container_by_id]
444
+ if ids_to_lookup:
445
+ retrieved_containers = self.client.data_modeling.containers.retrieve(ids_to_lookup)
446
+ for container in retrieved_containers:
447
+ self._container_by_id[container.as_id()] = container
448
+ if missing_container_ids := set(container_ids) - set(self._container_by_id.keys()):
449
+ MediumSeverityWarning(
450
+ f"Containers {missing_container_ids} not found or you don't have permission to access them."
451
+ ).print_warning(console=self.console)
452
+ return {
453
+ container_id: self._container_by_id[container_id]
454
+ for container_id in container_ids
455
+ if container_id in self._container_by_id
456
+ }
457
+
458
+ def _find_direct_container_dependencies(
459
+ self, container_ids: Sequence[ContainerId]
460
+ ) -> dict[ContainerId, set[ContainerId]]:
461
+ containers_by_id = self._lookup_containers(container_ids)
462
+ container_dependencies: dict[ContainerId, set[ContainerId]] = defaultdict(set)
463
+ for container_id, container in containers_by_id.items():
464
+ for constraint in container.constraints.values():
465
+ if not isinstance(constraint, RequiresConstraint):
466
+ continue
467
+ container_dependencies[container_id].add(constraint.require)
468
+ for property in container.properties.values():
469
+ if not isinstance(property.type, DirectRelation) or property.type.container is None:
470
+ continue
471
+ container_dependencies[container_id].add(property.type.container)
472
+ return container_dependencies
473
+
474
+ def _propagate_indirect_container_dependencies(
475
+ self, container_dependencies_by_id: dict[ContainerId, set[ContainerId]], dependants: Sequence[ContainerId]
476
+ ) -> dict[ContainerId, set[ContainerId]]:
477
+ """Propagate indirect container dependencies using a recursive approach.
478
+
479
+ Args:
480
+ container_dependencies_by_id: Mapping of container IDs to their direct dependencies
481
+ dependants: Chain of dependant containers to propagate dependencies to
482
+
483
+ Returns:
484
+ Updated dictionary mapping each container ID to all its direct and indirect dependencies
485
+ """
486
+ current_container_id = dependants[0]
487
+ dependencies_to_propagate: set[ContainerId] = set()
488
+ for container_dependency in container_dependencies_by_id[current_container_id]:
489
+ if container_dependency in container_dependencies_by_id:
490
+ # If already processed, propagate its dependencies to current container instead of revisiting it
491
+ dependencies_to_propagate.update(container_dependencies_by_id[container_dependency])
492
+ continue
493
+ self._propagate_indirect_container_dependencies(
494
+ container_dependencies_by_id, [container_dependency, *dependants]
495
+ )
496
+ container_dependencies_by_id[current_container_id].update(dependencies_to_propagate)
497
+ return container_dependencies_by_id
498
+
499
+ def _find_direct_and_indirect_container_dependencies(
500
+ self, container_ids: Sequence[ContainerId]
501
+ ) -> dict[ContainerId, set[ContainerId]]:
502
+ container_dependencies_by_id = self._find_direct_container_dependencies(container_ids)
503
+ for container_id in list(container_dependencies_by_id.keys()):
504
+ self._propagate_indirect_container_dependencies(container_dependencies_by_id, [container_id])
505
+ return container_dependencies_by_id
506
+
430
507
  @staticmethod
431
508
  def _chunker(seq: Sequence, size: int) -> Iterable[Sequence]:
432
509
  return (seq[pos : pos + size] for pos in range(0, len(seq), size))
@@ -558,7 +635,9 @@ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
558
635
  # We sort the implements in topological order to ensure that the child view get the order grandparent,
559
636
  # parent, such that the parent's source is used.
560
637
  try:
561
- dumped["implements"] = [view_id.dump() for view_id in self.topological_sort(resource.implements)]
638
+ dumped["implements"] = [
639
+ view_id.dump() for view_id in self.topological_sort_implements(resource.implements)
640
+ ]
562
641
  except ToolkitCycleError as e:
563
642
  warning = MediumSeverityWarning(f"Failed to sort implements for view {resource.as_id()}: {e}")
564
643
  warning.print_warning(console=self.console)
@@ -691,14 +770,31 @@ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
691
770
  readonly_properties.add(property_identifier)
692
771
  return readonly_properties
693
772
 
694
- def topological_sort(self, view_ids: list[ViewId]) -> list[ViewId]:
773
+ def _build_view_implements_dependencies(
774
+ self, view_by_ids: dict[ViewId, View], include: set[ViewId] | None = None
775
+ ) -> dict[ViewId, set[ViewId]]:
776
+ """Build a dependency graph based on view implements relationships.
777
+
778
+ Args:
779
+ view_by_ids: Mapping of view IDs to View objects
780
+ include: Optional set of view IDs to include in the dependencies, if None, all views are included.
781
+
782
+ Returns:
783
+ Dictionary mapping each view ID to the set of view IDs it depends on (implements)
784
+ """
785
+ dependencies: dict[ViewId, set[ViewId]] = {}
786
+ for view_id, view in view_by_ids.items():
787
+ dependencies[view_id] = set()
788
+ for implemented_view_id in view.implements or []:
789
+ if include is None or implemented_view_id in include:
790
+ dependencies[view_id].add(implemented_view_id)
791
+ return dependencies
792
+
793
+ def topological_sort_implements(self, view_ids: list[ViewId]) -> list[ViewId]:
695
794
  """Sorts the views in topological order based on their implements and through properties."""
696
795
  view_by_ids = self._lookup_views(view_ids)
697
- parents_by_child: dict[ViewId, set[ViewId]] = {}
698
- for child, view in view_by_ids.items():
699
- parents_by_child[child] = set()
700
- for parent in view.implements or []:
701
- parents_by_child[child].add(parent)
796
+ parents_by_child = self._build_view_implements_dependencies(view_by_ids)
797
+
702
798
  try:
703
799
  sorted_views = list(TopologicalSorter(parents_by_child).static_order())
704
800
  except CycleError as e:
@@ -708,6 +804,54 @@ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
708
804
 
709
805
  return sorted_views
710
806
 
807
+ def topological_sort_container_constraints(self, view_ids: list[ViewId]) -> list[ViewId]:
808
+ """Sorts the views in topological order based on their container constraints."""
809
+
810
+ view_by_ids = self._lookup_views(view_ids)
811
+ if missing_view_ids := set(view_ids) - set(view_by_ids.keys()):
812
+ MediumSeverityWarning(
813
+ f"Views {missing_view_ids} not found or you don't have permission to access them, skipping dependency check."
814
+ ).print_warning(console=self.console)
815
+ return view_ids
816
+
817
+ view_to_containers: dict[ViewId, set[ContainerId]] = {}
818
+ container_to_views: defaultdict[ContainerId, set[ViewId]] = defaultdict(set)
819
+ for view_id, view in view_by_ids.items():
820
+ view_to_containers[view_id] = view.referenced_containers()
821
+ for container_id in view_to_containers[view_id]:
822
+ container_to_views[container_id].add(view_id)
823
+
824
+ container_crud = ContainerCRUD.create_loader(self.client)
825
+ container_dependencies_by_id = container_crud._find_direct_and_indirect_container_dependencies(
826
+ list(container_to_views.keys())
827
+ )
828
+
829
+ # First, add view dependencies based on implements relationships
830
+ view_dependencies = self._build_view_implements_dependencies(view_by_ids, set(view_to_containers.keys()))
831
+
832
+ # Then, add view dependencies based on mapped container constraints
833
+ for view_id, mapped_containers in view_to_containers.items():
834
+ for container_id in mapped_containers:
835
+ # Get all containers this container depends on
836
+ if container_id not in container_dependencies_by_id:
837
+ continue
838
+ for required_container in container_dependencies_by_id[container_id]:
839
+ if required_container not in container_to_views:
840
+ continue
841
+ # If this view already implements the required container, the requirement is self-satisfied
842
+ # and we don't need to depend on other views that also implement it (they are peers).
843
+ if required_container in mapped_containers:
844
+ continue
845
+ # This view doesn't implement the required container, so depend on all views that do
846
+ view_dependencies[view_id].update(container_to_views[required_container])
847
+ try:
848
+ sorted_views = list(TopologicalSorter(view_dependencies).static_order())
849
+ except CycleError as e:
850
+ raise ToolkitCycleError(
851
+ f"Failed to sort views topologically. This likely due to a cycle in implements. {e.args[1]}"
852
+ )
853
+ return sorted_views
854
+
711
855
 
712
856
  @final
713
857
  class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataModelApplyList, DataModelList]):
@@ -3,7 +3,7 @@ from pathlib import Path
3
3
  from cognite_toolkit._cdf_tk.utils._auxiliary import get_concrete_subclasses
4
4
  from cognite_toolkit._cdf_tk.utils.fileio import COMPRESSION_BY_SUFFIX
5
5
 
6
- from ._annotations import FileAnnotationIO
6
+ from ._annotations import AnnotationIO
7
7
  from ._applications import CanvasIO, ChartIO
8
8
  from ._asset_centric import (
9
9
  AssetIO,
@@ -53,6 +53,7 @@ def are_same_kind(kind: str, kind_or_path: str | Path, /) -> bool:
53
53
 
54
54
 
55
55
  __all__ = [
56
+ "AnnotationIO",
56
57
  "AssetIO",
57
58
  "BaseAssetCentricIO",
58
59
  "CanvasIO",
@@ -60,7 +61,6 @@ __all__ = [
60
61
  "ConfigurableStorageIO",
61
62
  "DatapointsIO",
62
63
  "EventIO",
63
- "FileAnnotationIO",
64
64
  "FileMetadataIO",
65
65
  "HierarchyIO",
66
66
  "InstanceIO",
@@ -11,7 +11,7 @@ from ._base import Page, StorageIO
11
11
  from .selectors import AssetCentricSelector
12
12
 
13
13
 
14
- class FileAnnotationIO(StorageIO[AssetCentricSelector, Annotation]):
14
+ class AnnotationIO(StorageIO[AssetCentricSelector, Annotation]):
15
15
  SUPPORTED_DOWNLOAD_FORMATS = frozenset({".ndjson"})
16
16
  SUPPORTED_COMPRESSIONS = frozenset({".gz"})
17
17
  CHUNK_SIZE = 1000
@@ -23,7 +23,7 @@ class FileAnnotationIO(StorageIO[AssetCentricSelector, Annotation]):
23
23
  project = item._cognite_client.config.project
24
24
  return f"INTERNAL_ID_project_{project}_{item.id!s}"
25
25
 
26
- def stream_data(self, selector: AssetCentricSelector, limit: int | None = None) -> Iterable[Page]:
26
+ def stream_data(self, selector: AssetCentricSelector, limit: int | None = None) -> Iterable[Page[Annotation]]:
27
27
  total = 0
28
28
  for file_chunk in FileMetadataIO(self.client).stream_data(selector, None):
29
29
  # Todo Support pagination. This is missing in the SDK.
@@ -20,7 +20,13 @@ from dateutil import parser
20
20
  from cognite_toolkit._cdf_tk.constants import CDF_UNIT_SPACE
21
21
  from cognite_toolkit._cdf_tk.exceptions import ToolkitNotSupported
22
22
  from cognite_toolkit._cdf_tk.utils._auxiliary import get_concrete_subclasses
23
- from cognite_toolkit._cdf_tk.utils.useful_types import AssetCentricType, DataType, JsonVal, PythonTypes
23
+ from cognite_toolkit._cdf_tk.utils.useful_types import (
24
+ AssetCentricType,
25
+ AssetCentricTypeExtended,
26
+ DataType,
27
+ JsonVal,
28
+ PythonTypes,
29
+ )
24
30
 
25
31
  from .collection import humanize_collection
26
32
 
@@ -35,7 +41,7 @@ def asset_centric_convert_to_primary_property(
35
41
  type_: PropertyType,
36
42
  nullable: bool,
37
43
  destination_container_property: tuple[ContainerId, str],
38
- source_property: tuple[AssetCentricType, str],
44
+ source_property: tuple[AssetCentricTypeExtended, str],
39
45
  direct_relation_lookup: Mapping[str | int, DirectRelationReference] | None = None,
40
46
  ) -> PropertyValueWrite:
41
47
  if (source_property, destination_container_property) in SPECIAL_CONVERTER_BY_SOURCE_DESTINATION:
@@ -574,7 +580,7 @@ CONVERTER_BY_DTYPE: Mapping[str, type[_ValueConverter]] = {
574
580
  for cls_ in _ValueConverter.__subclasses__()
575
581
  }
576
582
  SPECIAL_CONVERTER_BY_SOURCE_DESTINATION: Mapping[
577
- tuple[tuple[AssetCentricType, str], tuple[ContainerId, str]],
583
+ tuple[tuple[AssetCentricTypeExtended, str], tuple[ContainerId, str]],
578
584
  type[_SpecialCaseConverter],
579
585
  ] = {
580
586
  (subclass.source_property, subclass.destination_container_property): subclass
@@ -8,10 +8,13 @@ from cognite.client.data_classes._base import CogniteObject, WriteableCogniteRes
8
8
  JsonVal: TypeAlias = None | str | int | float | bool | dict[str, "JsonVal"] | list["JsonVal"]
9
9
 
10
10
  AssetCentricDestinationType: TypeAlias = Literal["assets", "files", "events", "timeseries", "sequences"]
11
- AssetCentricType: TypeAlias = Literal["asset", "file", "event", "timeseries", "sequence", "fileAnnotation"]
11
+ AssetCentricType: TypeAlias = Literal["asset", "file", "event", "timeseries", "sequence"]
12
+ AssetCentricTypeExtended: TypeAlias = Literal["asset", "file", "event", "timeseries", "sequence", "annotation"]
12
13
  AssetCentricResource: TypeAlias = Asset | FileMetadata | Event | TimeSeries
13
14
  AssetCentricResourceExtended: TypeAlias = Asset | FileMetadata | Event | TimeSeries | Annotation
14
- AssetCentricKind: TypeAlias = Literal["Assets", "Events", "TimeSeries", "FileMetadata", "FileAnnotations"]
15
+ AssetCentricKind: TypeAlias = Literal["Assets", "Events", "TimeSeries", "FileMetadata"]
16
+ AssetCentricKindExtended: TypeAlias = Literal["Assets", "Events", "TimeSeries", "FileMetadata", "Annotations"]
17
+
15
18
 
16
19
  DataType: TypeAlias = Literal["string", "integer", "float", "boolean", "json", "date", "timestamp", "epoch"]
17
20
  PythonTypes: TypeAlias = str | int | float | bool | datetime | date | dict[str, Any] | list[Any]
@@ -25,3 +28,4 @@ PrimitiveType: TypeAlias = str | int | float | bool
25
28
 
26
29
  T_WriteCogniteResource = TypeVar("T_WriteCogniteResource", bound=CogniteObject)
27
30
  T_AssetCentricResource = TypeVar("T_AssetCentricResource", bound=AssetCentricResource)
31
+ T_AssetCentricResourceExtended = TypeVar("T_AssetCentricResourceExtended", bound=AssetCentricResourceExtended)
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.6.100
15
+ image: cognite/toolkit:0.6.102
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.6.100
13
+ image: cognite/toolkit:0.6.102
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.6.100"
7
+ version = "0.6.102"
8
8
 
9
9
  [alpha_flags]
10
10
  external-libraries = true
@@ -1 +1 @@
1
- __version__ = "0.6.100"
1
+ __version__ = "0.6.102"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.6.100
3
+ Version: 0.6.102
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,8 +1,8 @@
1
1
  cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cognite_toolkit/_cdf.py,sha256=0abeQr1Tfk4lkGaoXyrnFC28wDSlR_8UGrh10noGduQ,6085
3
- cognite_toolkit/_version.py,sha256=ekvOvO7R8u7LJae-lLU38Td7TUQhHP94nO7w9IGZPxk,24
3
+ cognite_toolkit/_version.py,sha256=eVj7WO8TgxNIfEDss7VOsib9ytOpdsLTL-UvbareyhY,24
4
4
  cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=IjmzNVLxsOV6tsMDgmJmXsy-LQru-8IEQdFzGW5DxVk,8117
5
+ cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=VSWV9h44HusWIaKpWgjrOMrc3hDoPTTXBXlp6-NOrIM,9079
6
6
  cognite_toolkit/_cdf_tk/constants.py,sha256=Z0nsRXBrqVUgalMa7MZFiwPp26KUfaHqX2h89Daox-M,6936
7
7
  cognite_toolkit/_cdf_tk/exceptions.py,sha256=xG0jMwi5A20nvPvyo6sCyz_cyKycynPyIzpYiGR4gcU,6064
8
8
  cognite_toolkit/_cdf_tk/feature_flags.py,sha256=XMIZIOjPCdnH42SupUOETf_0d11TgKPZSfjCKnLoDJo,3017
@@ -18,7 +18,7 @@ cognite_toolkit/_cdf_tk/apps/_data_app.py,sha256=rFnTcUBAuoFcTQCjxwqZGG0HjUMGdYT
18
18
  cognite_toolkit/_cdf_tk/apps/_dev_app.py,sha256=q8DBr4BAK33AwsHW3gAWZWSjSaQRuCisqPbsBjmYSxk,589
19
19
  cognite_toolkit/_cdf_tk/apps/_download_app.py,sha256=faAuhFYn7eQ_uzP3BNmnXeaeeoyZR1JvRZx2ATKrsao,16691
20
20
  cognite_toolkit/_cdf_tk/apps/_dump_app.py,sha256=Ec0aEqbKwCkxni09i06rfY31qZUyOVwbbvo7MHh4cf8,39056
21
- cognite_toolkit/_cdf_tk/apps/_landing_app.py,sha256=tV8hpqxLm2YgqB-TWieheK7ucN-JhQVtN13V3Zth6Os,386
21
+ cognite_toolkit/_cdf_tk/apps/_landing_app.py,sha256=HxzSln3fJXs5NzulfQGUMropXcwMobUYpyePrCrQTQs,1502
22
22
  cognite_toolkit/_cdf_tk/apps/_migrate_app.py,sha256=xkXo1h3eQ14D5uQ0qQdq01etS1FV_fg6ZnvxMt8H-os,30580
23
23
  cognite_toolkit/_cdf_tk/apps/_modules_app.py,sha256=95_H2zccRJl2mWn0oQ5mjCaEDnG63sPKOkB81IgWcIk,7637
24
24
  cognite_toolkit/_cdf_tk/apps/_profile_app.py,sha256=vSRJW54bEvIul8_4rOqyOYA7ztXx7TFOvZRZWZTxMbg,7007
@@ -54,7 +54,7 @@ cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py,sha256=m66cqbx4oCtjv
54
54
  cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=yt1Y-I20aK9dFd9CB50XfinaCR09Ny7SER1H9g2c2Ck,7247
55
55
  cognite_toolkit/_cdf_tk/client/api/location_filters.py,sha256=TIbomUbpUNDxOON_a3pwBmCBdltxL1jMQBXKcIjRx44,3759
56
56
  cognite_toolkit/_cdf_tk/client/api/lookup.py,sha256=c-cvtgfGGGYyk8ROcJu44qlo1ocqbk0o1zafCql79fU,17652
57
- cognite_toolkit/_cdf_tk/client/api/migration.py,sha256=eIKcUAXHblL0vL9UzyZgifnL4bW2N4TUt613hTTFf1w,15156
57
+ cognite_toolkit/_cdf_tk/client/api/migration.py,sha256=cuB42cbdRIMBWJH71tgJrxCymfDR9KVCJ6VxQmLm6n4,20378
58
58
  cognite_toolkit/_cdf_tk/client/api/project.py,sha256=Hj0uDCLyPofG-T4626EdeoRRtBaovhU-SMAQ7VWJ1M4,1063
59
59
  cognite_toolkit/_cdf_tk/client/api/search.py,sha256=L4cDPip7pJVP7bEgAiSOjqINIHg8AULNBtR29G5khEQ,612
60
60
  cognite_toolkit/_cdf_tk/client/api/search_config.py,sha256=31rPCSOnzfiLv8FKU6F3tF9ZesEV8moSlbnkFPNh13g,1824
@@ -88,7 +88,7 @@ cognite_toolkit/_cdf_tk/client/data_classes/infield.py,sha256=MK-iD704Xw5VbLcr-M
88
88
  cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py,sha256=dCgCYqvQHiuFhe8CRb1_lYderkVHoHWki1vcf07F8tw,4929
89
89
  cognite_toolkit/_cdf_tk/client/data_classes/instances.py,sha256=aGV3XtBGwG1ELks3kqFkScO-MGC5zvcSZtYXOVWL2BE,2501
90
90
  cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py,sha256=IgHU7Hto0Zz3Bk_QW17JC3vUw0yN1oaTeJ3ZPKOGFAE,12112
91
- cognite_toolkit/_cdf_tk/client/data_classes/migration.py,sha256=1TIi3GrZ9ztURLq-v5kfObJJwtzjpqalForWscHHD0s,18230
91
+ cognite_toolkit/_cdf_tk/client/data_classes/migration.py,sha256=DSxa5anY8YAWgm94j_adLP1xGTfR8hdrYL000ZqqF84,18264
92
92
  cognite_toolkit/_cdf_tk/client/data_classes/pending_instances_ids.py,sha256=W99jhHMLzW_0TvZoaeeaeWXljN9GjuXPoFO-SRjsd-s,1888
93
93
  cognite_toolkit/_cdf_tk/client/data_classes/project.py,sha256=y0rcIZvoTf5b3LPgz9ufUU2UTkDTyzz-HmNgH6cXRNA,1226
94
94
  cognite_toolkit/_cdf_tk/client/data_classes/raw.py,sha256=CfFqUKP9_b3yg_1br6fwpkZsmGbMmbj5_D3P6HwoIvQ,14708
@@ -102,15 +102,16 @@ cognite_toolkit/_cdf_tk/client/utils/_concurrency.py,sha256=3GtQbKDaosyKHEt-KzxK
102
102
  cognite_toolkit/_cdf_tk/client/utils/_http_client.py,sha256=oXNKrIaizG4WiSAhL_kSCHAuL4aaaEhCU4pOJGxh6Xs,483
103
103
  cognite_toolkit/_cdf_tk/commands/__init__.py,sha256=OJYtHiERtUBXm3cjUTyPVaYIMVQpu9HJv1QNGPL-AIQ,1418
104
104
  cognite_toolkit/_cdf_tk/commands/_base.py,sha256=1gl8Y-yqfedRMfdbwM3iPTIUIZriX1UvC1deLsJSJwM,2667
105
- cognite_toolkit/_cdf_tk/commands/_changes.py,sha256=DIwuiRpDhWBDpsW3R3yqj0eWLAE3c_kPbmCaUkxjFuo,24852
105
+ cognite_toolkit/_cdf_tk/commands/_changes.py,sha256=fvw2C5N2BVf-7MUpiB1FkDVCJ0xIy4lfDyFgpWaLPeo,24651
106
106
  cognite_toolkit/_cdf_tk/commands/_cli_commands.py,sha256=TK6U_rm6VZT_V941kTyHMoulWgJzbDC8YIIQDPJ5x3w,1011
107
107
  cognite_toolkit/_cdf_tk/commands/_download.py,sha256=OBKPM_HGGA1i32th1SAgkQM_81CUFvm39kGqBuOeeTs,6816
108
108
  cognite_toolkit/_cdf_tk/commands/_profile.py,sha256=_4iX3AHAI6eLmRVUlWXCSvVHx1BZW2yDr_i2i9ECg6U,43120
109
109
  cognite_toolkit/_cdf_tk/commands/_purge.py,sha256=RadQHsmkPez3fZ5HCP9b82o2_fBx8P_-bTo7prkvWXU,32525
110
- cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=zupxW2wWBNL1n1fRyDShchU78FDvAxhIy4T9LM9isrM,12196
110
+ cognite_toolkit/_cdf_tk/commands/_questionary_style.py,sha256=h-w7fZKkGls3TrzIGBKjsZSGoXJJIYchgD1StfA40r8,806
111
+ cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=ZK9h6RlA-p348x64HMOY-Dnff4rdxDgCNQFDIV_fthY,14427
111
112
  cognite_toolkit/_cdf_tk/commands/_utils.py,sha256=UxMJW5QYKts4om5n6x2Tq2ihvfO9gWjhQKeqZNFTlKg,402
112
113
  cognite_toolkit/_cdf_tk/commands/_virtual_env.py,sha256=GFAid4hplixmj9_HkcXqU5yCLj-fTXm4cloGD6U2swY,2180
113
- cognite_toolkit/_cdf_tk/commands/auth.py,sha256=N6JgtF0_Qoh-xM8VlBb_IK1n0Lo5I7bIkIHmXm1l7ug,31638
114
+ cognite_toolkit/_cdf_tk/commands/auth.py,sha256=PLjfxfJJKaqux1eB2fycIRlwwSMCbM3qxWDnFX-blJU,31720
114
115
  cognite_toolkit/_cdf_tk/commands/build_cmd.py,sha256=k2_BhmTJRXuB640-g4hFsN2tD58b-aujk6kFn400qsc,30516
115
116
  cognite_toolkit/_cdf_tk/commands/clean.py,sha256=KDcUn1MEpvk_K7WqQPBiZcIlGV61JVG6D0DcYUXj7BM,16567
116
117
  cognite_toolkit/_cdf_tk/commands/collect.py,sha256=zBMKhhvjOpuASMnwP0eeHRI02tANcvFEZgv0CQO1ECc,627
@@ -118,24 +119,24 @@ cognite_toolkit/_cdf_tk/commands/deploy.py,sha256=R185y7oFr3yhh10RSPE81dpYX346gh
118
119
  cognite_toolkit/_cdf_tk/commands/dump_data.py,sha256=8l4M2kqV4DjiV5js5s7EbFVNxV0Np4ld8ogw19vaJp0,21804
119
120
  cognite_toolkit/_cdf_tk/commands/dump_resource.py,sha256=ylAFST3GgkWT1Qa-JIzmQXbrQgNCB1UrptrBf3WsyvY,39658
120
121
  cognite_toolkit/_cdf_tk/commands/featureflag.py,sha256=lgLMwuNIwFjvvKn1sNMunkq4VTwdNqXtrZfdGFTrNcI,968
121
- cognite_toolkit/_cdf_tk/commands/init.py,sha256=OuAVPI_tAJrwFO81EwzKXAA8m6ne44wXsJ0KZyKwPAE,239
122
- cognite_toolkit/_cdf_tk/commands/modules.py,sha256=gR4pLje6tSiWeW0glto0pb7BhlLee4jOv6YBNFsL_0g,42537
122
+ cognite_toolkit/_cdf_tk/commands/init.py,sha256=55FlBxrRlSkkAkIkdFtHjnV3Z3qniE_Zw-XhYJAIwpI,9171
123
+ cognite_toolkit/_cdf_tk/commands/modules.py,sha256=hw5riBMfv9ohXSxV88BfOzcsCTrqrayD1PHMxatLr94,41091
123
124
  cognite_toolkit/_cdf_tk/commands/pull.py,sha256=ktPXHW3f0HpmqCxeMhH8Ac52dAuQqAum3VBmLWJwQSM,39246
124
125
  cognite_toolkit/_cdf_tk/commands/repo.py,sha256=MNy8MWphTklIZHvQOROCweq8_SYxGv6BaqnLpkFFnuk,3845
125
126
  cognite_toolkit/_cdf_tk/commands/run.py,sha256=JyX9jLEQej9eRrHVCCNlw4GuF80qETSol3-T5CCofgw,37331
126
127
  cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py,sha256=i5ldcTah59K0E4fH5gHTV0GRvtDCEvVses9WQzn9Lno,226
127
128
  cognite_toolkit/_cdf_tk/commands/_migrate/canvas.py,sha256=R-z0yfOFcJZj-zRLhN-7z_-SLxqzSmONMgrbzNF9dGs,8843
128
129
  cognite_toolkit/_cdf_tk/commands/_migrate/command.py,sha256=059GfizsxZzsO7CJP3uEtyvfbeKt2F5eYnvq9GvHxNE,14212
129
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py,sha256=ElsZeZNRPkxBm2VdTe0nCvyq75qfGLOLFY54fCuaxFY,14333
130
+ cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py,sha256=9hoKY_SNeVwxmQI7C1SRIvSaK5LNWEi7mpM8dPpjCFI,13524
130
131
  cognite_toolkit/_cdf_tk/commands/_migrate/creators.py,sha256=FTu7w3G8KyPY8pagG3KdPpOmpLcjehaAg2auEy6iM7A,9605
131
- cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py,sha256=S5MWfkaYAHfV6rc6RA4KR7WRETdcAKdpe6s4ZdwB0F0,8562
132
+ cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py,sha256=vOdvDPVibAbqLQt8hg7pmdHN1Fd6JUoyOZ-fCzfeEH8,9925
132
133
  cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=7m9uj_W11iokGmbWD979z5UK5KwOYv7L9HiY5PcpIN4,6231
133
134
  cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py,sha256=i1eUsNX6Dueol9STIEwyksBnBsWUk13O8qHIjW964pM,7860
134
135
  cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py,sha256=KkSq_4R6hQ15ccG-jHy7vVgPwC5IDd5OaXZLvz5mIZs,5547
135
136
  cognite_toolkit/_cdf_tk/commands/_migrate/issues.py,sha256=lWSnuS3CfRDbA7i1g12gJ2reJnQcLmZWxHDK19-Wxkk,5772
136
- cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py,sha256=obtdne1XqzOhlWuw2QnFs7vub5_FTaYOf086INB5d4I,9813
137
+ cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py,sha256=xKjm2OKxfwjQ2DFrrLPFydQhzUjJJ20rDTdaFrkzan8,14372
137
138
  cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py,sha256=RfqaNoso5CyBwc-p6ckwcYqBfZXKhdJgdGIyd0TATaI,2635
138
- cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py,sha256=CYle1Gz69HHnKF4onTIFxrpiOoDApvVK01SFuQuHzP0,2130
139
+ cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py,sha256=N1H_-rBpPUD6pbrlcofn1uEK1bA694EUXEe1zIXeqyo,2489
139
140
  cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=6MKywbjaSWIVfgrvbumKdPyUVtUti5o3JveLjiiYD0o,6185
140
141
  cognite_toolkit/_cdf_tk/cruds/_base_cruds.py,sha256=3ExMHowKi9jV-EwfKL1jfeSfQLM59z8jZAGq_wJb5Jc,20088
141
142
  cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=PacTXdXaw0sf38tM6_DgNXVYdZXf_J90ZUeLk5v2VRg,9071
@@ -146,7 +147,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=iGG2_btpEqip3o6OKpc
146
147
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=7RdiWvh6MLI1lLmt3gcqDQj61xbwREhsvoyjFuJn2F0,26402
147
148
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256=KrL7bj8q5q18mGB2V-NDkW5U5nfseZOyorXiUbp2uLw,6100
148
149
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=iXn9iAtwA8mhH-7j9GF-MlLomTcaw3GhEbFY28Wx0iA,9927
149
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=ZmhfUn-h1UNI1iq1u5193cVOY4J6sbnwX1-h73rI4Gs,57999
150
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=kA9urLWU65fqskvdSpjJEluvuWzUcCVhWCWoho68OJY,65642
150
151
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=zv36HPO9goRmU3NM_i1wOvWQEdsgpQTI4bcAl-eis1g,18232
151
152
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=SnQMbxiZ3SSYkTLXQ_vIu2HVf_WyD1jplNRJuoeOUfA,16723
152
153
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=F3n2FOWAPder4z3OTYs81VB-6C6r3oUzJsHvigdhaD0,15500
@@ -236,8 +237,8 @@ cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py,sha256=
236
237
  cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py,sha256=XmDqJ0pAxe_vAP0Dhktba1f9o2zg_ORCJ3Hz8cyJMrk,899
237
238
  cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py,sha256=dbc9HT-bc2Qt15hHoR63SM7pg321BhNuTNjI7HHCwSA,468
238
239
  cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py,sha256=j77z7CzCMiMj8r94BdUKCum9EuZRUjaSlUAy9K9DL_Q,942
239
- cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=b2xSTgJ5RQ-YWvROWqGJXmt9taa_b6bajNxoiJ-686c,2442
240
- cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=wAMkgM-IpgXuY7_1KbtiTv8VdA555ywKjntD_boOBPk,4647
240
+ cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=SSMV-W_uqMwS9I0xazBfAyNRqKWlAuLlABropMBEa50,2434
241
+ cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=N5z2umaPwBo3OKIyGhNx2geRTBYhAeG3YhCAYm2hyao,4655
241
242
  cognite_toolkit/_cdf_tk/storageio/_applications.py,sha256=bhyG1d2_9duPkX-otC2brVcpChvdXSPkYhBHS5T_72g,4343
242
243
  cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=DbTvIneN8Hw3ByhdH1kXkS7Gw68oXEWtIqlZGZgLMg0,33704
243
244
  cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=6f4akYlaOp8t22ecb8ZEt1rcBU58oD-iPm8UdwLdPuE,11716
@@ -267,7 +268,7 @@ cognite_toolkit/_cdf_tk/utils/cicd.py,sha256=74XQKpm6IHvCbxv-66ouc0MfSdW3RhH9kBS
267
268
  cognite_toolkit/_cdf_tk/utils/cli_args.py,sha256=gBtj2wpoO3UUKIQacm_bhU8Bq3yoJVXsoe7toVpl5Gs,1309
268
269
  cognite_toolkit/_cdf_tk/utils/collection.py,sha256=YfT7GrLR0RwUiH_jKKp9rBskbiDBM4KmMGEUuGVGSM0,3394
269
270
  cognite_toolkit/_cdf_tk/utils/diff_list.py,sha256=PiXL6IvXT_iep53p3RbJEWLMvt7j_nDVcx-dU8P66Iw,2188
270
- cognite_toolkit/_cdf_tk/utils/dtype_conversion.py,sha256=sZf0D7F-E0IzwV418RFxEdzRTPMsomJMq9duGzX6pFc,23423
271
+ cognite_toolkit/_cdf_tk/utils/dtype_conversion.py,sha256=HRguV7h13w-wm6CaMRRmQsSRavqwYFnF_QiiQPIu-Y4,23490
271
272
  cognite_toolkit/_cdf_tk/utils/file.py,sha256=0OYQgRRmursxHDW7-QJf-qcnzyc7IZsiKSiX8aYmPA0,17763
272
273
  cognite_toolkit/_cdf_tk/utils/graphql_parser.py,sha256=2i2wDjg_Uw3hJ-pHtPK8hczIuCj5atrK8HZbgWJB-Pk,11532
273
274
  cognite_toolkit/_cdf_tk/utils/hashing.py,sha256=3NyNfljyYNTqAyAFBd6XlyWaj43jRzENxIuPdOY6nqo,2116
@@ -281,7 +282,7 @@ cognite_toolkit/_cdf_tk/utils/sql_parser.py,sha256=jernu2amPQ54cQZ4vFZm1gEhFZfGc
281
282
  cognite_toolkit/_cdf_tk/utils/table_writers.py,sha256=6BS_CMsIY5WE2O9u693Q4b0b-0E3-nlTuQ7NXk9OzX4,17870
282
283
  cognite_toolkit/_cdf_tk/utils/text.py,sha256=1-LQMo633_hEhNhishQo7Buj-7np5Pe4qKk0TQofMzE,3906
283
284
  cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py,sha256=NbRHcZvWpF9xHP5OkOMGFpxrPNbi0Q3Eea6PUNbGlt4,3426
284
- cognite_toolkit/_cdf_tk/utils/useful_types.py,sha256=HfjZBQbvScSNYBpDMYvGb412fjwxz88W8zgW0EJYlfs,1574
285
+ cognite_toolkit/_cdf_tk/utils/useful_types.py,sha256=oK88W6G_aK3hebORSQKZjWrq7jG-pO2lkLWSWYMlngM,1872
285
286
  cognite_toolkit/_cdf_tk/utils/validate_access.py,sha256=1puswcpgEDNCwdk91dhLqCBSu_aaUAd3Hsw21d-YVFs,21955
286
287
  cognite_toolkit/_cdf_tk/utils/fileio/__init__.py,sha256=ts5kYu_1Ks7xjnM6pIrVUrZe0nkYI6euYXeE4ox34xk,1199
287
288
  cognite_toolkit/_cdf_tk/utils/fileio/_base.py,sha256=MpWaD3lR9vrJ-kGzTiDOtChXhvFD7-xrP-Pzp7vjnLY,756
@@ -298,13 +299,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
298
299
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
299
300
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
300
301
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
301
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=ZSjCLtq-YGfXLGlYDhMoTprko1TS0GUgyVHfI-XKZU0,668
302
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=JEhWmIWt5epdl2W0tYzs36zf4vuLKGRvZi8VUIhbtos,2431
303
- cognite_toolkit/_resources/cdf.toml,sha256=lXzqzzipk6tF1QZs0EGuStsZtZ6XtnvdRqajdYyiFj0,488
302
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=ZNtXMpZfGA1PJhUjLHaqa05bU7rSboqBnjJ4jRZx9_4,668
303
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=qV42l3Zd4d6-MOoqfumy1OrcO4rHBh4FNq05lhkxEBE,2431
304
+ cognite_toolkit/_resources/cdf.toml,sha256=fN4eYvs14rEM4LqslgzANHrLr43XMgXt7Qt2D9kfN3E,488
304
305
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
305
306
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
306
- cognite_toolkit-0.6.100.dist-info/METADATA,sha256=xADLp5iATIpAXC7tjua-hh1yFmaTMRIsGS3FEML3hq8,4502
307
- cognite_toolkit-0.6.100.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
308
- cognite_toolkit-0.6.100.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
309
- cognite_toolkit-0.6.100.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
310
- cognite_toolkit-0.6.100.dist-info/RECORD,,
307
+ cognite_toolkit-0.6.102.dist-info/METADATA,sha256=6DikUK1mstVYjmjJ05PS00S3VUPn2SLMPtcoTnMOLo8,4502
308
+ cognite_toolkit-0.6.102.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
309
+ cognite_toolkit-0.6.102.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
310
+ cognite_toolkit-0.6.102.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
311
+ cognite_toolkit-0.6.102.dist-info/RECORD,,