cognite-toolkit 0.7.39__py3-none-any.whl → 0.7.51__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/_cdf_tk/apps/_download_app.py +1 -1
- cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
- cognite_toolkit/_cdf_tk/apps/_migrate_app.py +6 -6
- cognite_toolkit/_cdf_tk/builders/_function.py +81 -9
- cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
- cognite_toolkit/_cdf_tk/client/_resource_base.py +187 -0
- cognite_toolkit/_cdf_tk/client/_toolkit_client.py +37 -5
- cognite_toolkit/_cdf_tk/client/api/agents.py +107 -0
- cognite_toolkit/_cdf_tk/client/api/annotations.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/assets.py +130 -0
- cognite_toolkit/_cdf_tk/client/api/containers.py +132 -0
- cognite_toolkit/_cdf_tk/client/api/data_models.py +137 -0
- cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
- cognite_toolkit/_cdf_tk/client/api/events.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
- cognite_toolkit/_cdf_tk/client/api/filemetadata.py +176 -0
- cognite_toolkit/_cdf_tk/client/api/function_schedules.py +115 -0
- cognite_toolkit/_cdf_tk/client/api/functions.py +113 -0
- cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +167 -0
- cognite_toolkit/_cdf_tk/client/api/groups.py +121 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
- cognite_toolkit/_cdf_tk/client/api/infield.py +8 -8
- cognite_toolkit/_cdf_tk/client/api/instances.py +139 -0
- cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
- cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +3 -3
- cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/location_filters.py +177 -0
- cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/project.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/raw.py +204 -0
- cognite_toolkit/_cdf_tk/client/api/relationships.py +133 -0
- cognite_toolkit/_cdf_tk/client/api/robotics.py +19 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_capabilities.py +127 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_data_postprocessing.py +138 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_frames.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_locations.py +127 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_maps.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_robots.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/search_config.py +101 -0
- cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
- cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
- cognite_toolkit/_cdf_tk/client/api/simulator_models.py +154 -0
- cognite_toolkit/_cdf_tk/client/api/simulators.py +8 -0
- cognite_toolkit/_cdf_tk/client/api/spaces.py +117 -0
- cognite_toolkit/_cdf_tk/client/api/streams.py +65 -57
- cognite_toolkit/_cdf_tk/client/api/three_d.py +300 -283
- cognite_toolkit/_cdf_tk/client/api/timeseries.py +137 -0
- cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
- cognite_toolkit/_cdf_tk/client/api/views.py +139 -0
- cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
- cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
- cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py +10 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/api.py +358 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/responses.py +38 -0
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/__init__.py +9 -7
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_client.py +23 -14
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_data_classes.py +12 -2
- cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +151 -0
- cognite_toolkit/_cdf_tk/client/http_client/_exception.py +13 -0
- cognite_toolkit/_cdf_tk/client/http_client/_item_classes.py +118 -0
- cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
- cognite_toolkit/_cdf_tk/client/request_classes/filters.py +113 -0
- cognite_toolkit/_cdf_tk/client/request_classes/graphql.py +28 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/agent.py +130 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/annotation.py +79 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/apm_config.py +128 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/asset.py +47 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +1 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/cognite_file.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/__init__.py +168 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_constraints.py +37 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_container.py +50 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_model.py +73 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_types.py +116 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_indexes.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_instance.py +154 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_references.py +86 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_space.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view.py +143 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view_property.py +152 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/dataset.py +35 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/event.py +40 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/extraction_pipeline.py +59 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/filemetadata.py +52 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +65 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_destination.py +34 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_job.py +134 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_mapping.py +72 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/__init__.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_auth.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_base.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_certificate.py +20 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_eventhub.py +31 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_kafka.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_mqtt.py +36 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_rest.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/identifiers.py +59 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +1 -1
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +35 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/label.py +27 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +48 -15
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +84 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/raw.py +44 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/resource_view_mapping.py +38 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +65 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +58 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/search_config.py +54 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/securitycategory.py +24 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/sequence.py +45 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/simulator_model.py +50 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +9 -26
- cognite_toolkit/_cdf_tk/client/resource_classes/three_d.py +135 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/timeseries.py +52 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/transformation.py +140 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow.py +27 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow_trigger.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow_version.py +155 -0
- cognite_toolkit/_cdf_tk/client/testing.py +31 -2
- cognite_toolkit/_cdf_tk/commands/_migrate/command.py +103 -108
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +22 -15
- cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +11 -10
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +148 -57
- cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +22 -39
- cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +29 -27
- cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_purge.py +8 -8
- cognite_toolkit/_cdf_tk/commands/_upload.py +1 -1
- cognite_toolkit/_cdf_tk/commands/build_cmd.py +12 -2
- cognite_toolkit/_cdf_tk/commands/build_v2/_module_parser.py +138 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/_modules_parser.py +163 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +83 -96
- cognite_toolkit/_cdf_tk/commands/build_v2/{build_input.py → build_parameters.py} +8 -22
- cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_modules.py +27 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_resource.py +22 -0
- cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
- cognite_toolkit/_cdf_tk/commands/pull.py +97 -2
- cognite_toolkit/_cdf_tk/commands/run.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/__init__.py +16 -6
- cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +9 -5
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +6 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +70 -89
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +14 -7
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +50 -59
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +4 -3
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +5 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +15 -31
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +42 -47
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
- cognite_toolkit/_cdf_tk/data_classes/__init__.py +3 -0
- cognite_toolkit/_cdf_tk/data_classes/_issues.py +36 -0
- cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +2 -1
- cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +4 -0
- cognite_toolkit/_cdf_tk/feature_flags.py +8 -0
- cognite_toolkit/_cdf_tk/resource_classes/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
- cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
- cognite_toolkit/_cdf_tk/resource_classes/simulator_model.py +17 -0
- cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +13 -4
- cognite_toolkit/_cdf_tk/storageio/_applications.py +53 -15
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +117 -107
- cognite_toolkit/_cdf_tk/storageio/_base.py +3 -1
- cognite_toolkit/_cdf_tk/storageio/_datapoints.py +7 -7
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +64 -54
- cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
- cognite_toolkit/_cdf_tk/storageio/_raw.py +1 -1
- cognite_toolkit/_cdf_tk/storageio/logger.py +162 -0
- cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +20 -0
- cognite_toolkit/_cdf_tk/utils/__init__.py +11 -1
- cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
- cognite_toolkit/_cdf_tk/utils/interactive_select.py +8 -6
- cognite_toolkit/_cdf_tk/utils/modules.py +7 -0
- cognite_toolkit/_cdf_tk/utils/pip_validator.py +96 -0
- cognite_toolkit/_cdf_tk/utils/useful_types.py +4 -7
- cognite_toolkit/_cdf_tk/utils/useful_types2.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/_resources/cdf.toml +1 -1
- cognite_toolkit/_version.py +1 -1
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/METADATA +13 -3
- cognite_toolkit-0.7.51.dist-info/RECORD +445 -0
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/WHEEL +2 -2
- cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -30
- cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -67
- cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -112
- cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +0 -27
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +0 -247
- cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -4
- cognite_toolkit-0.7.39.dist-info/RECORD +0 -322
- /cognite_toolkit/_cdf_tk/{utils → client}/http_client/_tracker.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/entry_points.txt +0 -0
|
@@ -15,13 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
from collections.abc import Hashable, Iterable, Sequence
|
|
17
17
|
from datetime import date, datetime
|
|
18
|
-
from typing import Any,
|
|
18
|
+
from typing import Any, final
|
|
19
19
|
|
|
20
|
-
from cognite.client.data_classes import (
|
|
21
|
-
FileMetadata,
|
|
22
|
-
FileMetadataList,
|
|
23
|
-
FileMetadataWrite,
|
|
24
|
-
)
|
|
25
20
|
from cognite.client.data_classes.capabilities import (
|
|
26
21
|
Capability,
|
|
27
22
|
DataModelInstancesAcl,
|
|
@@ -31,9 +26,11 @@ from cognite.client.data_classes.data_modeling import NodeApplyResultList, NodeI
|
|
|
31
26
|
from cognite.client.exceptions import CogniteAPIError
|
|
32
27
|
from cognite.client.utils._time import convert_data_modelling_timestamp
|
|
33
28
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
34
|
-
from rich import print
|
|
35
29
|
|
|
36
|
-
from cognite_toolkit._cdf_tk.client.
|
|
30
|
+
from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
|
|
31
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
|
|
32
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
|
|
33
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.extendable_cognite_file import (
|
|
37
34
|
ExtendableCogniteFile,
|
|
38
35
|
ExtendableCogniteFileApply,
|
|
39
36
|
ExtendableCogniteFileList,
|
|
@@ -55,11 +52,11 @@ from .datamodel import SpaceCRUD, ViewCRUD
|
|
|
55
52
|
|
|
56
53
|
|
|
57
54
|
@final
|
|
58
|
-
class FileMetadataCRUD(ResourceContainerCRUD[
|
|
55
|
+
class FileMetadataCRUD(ResourceContainerCRUD[ExternalId, FileMetadataRequest, FileMetadataResponse]):
|
|
59
56
|
item_name = "file contents"
|
|
60
57
|
folder_name = "files"
|
|
61
|
-
resource_cls =
|
|
62
|
-
resource_write_cls =
|
|
58
|
+
resource_cls = FileMetadataResponse
|
|
59
|
+
resource_write_cls = FileMetadataRequest
|
|
63
60
|
yaml_cls = FileMetadataYAML
|
|
64
61
|
kind = "FileMetadata"
|
|
65
62
|
dependencies = frozenset({DataSetsCRUD, GroupAllScopedCRUD, LabelCRUD, AssetCRUD})
|
|
@@ -72,7 +69,7 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
|
|
|
72
69
|
|
|
73
70
|
@classmethod
|
|
74
71
|
def get_required_capability(
|
|
75
|
-
cls, items: Sequence[
|
|
72
|
+
cls, items: Sequence[FileMetadataRequest] | None, read_only: bool
|
|
76
73
|
) -> Capability | list[Capability]:
|
|
77
74
|
if not items and items is not None:
|
|
78
75
|
return []
|
|
@@ -87,22 +84,22 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
|
|
|
87
84
|
return FilesAcl(actions, scope)
|
|
88
85
|
|
|
89
86
|
@classmethod
|
|
90
|
-
def get_id(cls, item:
|
|
87
|
+
def get_id(cls, item: FileMetadataRequest | FileMetadataResponse | dict) -> ExternalId:
|
|
91
88
|
if isinstance(item, dict):
|
|
92
|
-
return item["externalId"]
|
|
89
|
+
return ExternalId(external_id=item["externalId"])
|
|
93
90
|
if item.external_id is None:
|
|
94
91
|
raise ToolkitRequiredValueError("FileMetadata must have external_id set.")
|
|
95
|
-
return item.external_id
|
|
92
|
+
return ExternalId(external_id=item.external_id)
|
|
96
93
|
|
|
97
94
|
@classmethod
|
|
98
|
-
def get_internal_id(cls, item:
|
|
95
|
+
def get_internal_id(cls, item: FileMetadataResponse | dict) -> int:
|
|
99
96
|
if isinstance(item, dict):
|
|
100
97
|
return item["id"]
|
|
101
98
|
return item.id
|
|
102
99
|
|
|
103
100
|
@classmethod
|
|
104
|
-
def dump_id(cls, id:
|
|
105
|
-
return
|
|
101
|
+
def dump_id(cls, id: ExternalId) -> dict[str, Any]:
|
|
102
|
+
return id.dump()
|
|
106
103
|
|
|
107
104
|
@classmethod
|
|
108
105
|
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
@@ -118,71 +115,65 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
|
|
|
118
115
|
elif isinstance(label, str):
|
|
119
116
|
yield LabelCRUD, label
|
|
120
117
|
for asset_external_id in item.get("assetExternalIds", []):
|
|
121
|
-
yield AssetCRUD, asset_external_id
|
|
118
|
+
yield AssetCRUD, ExternalId(external_id=asset_external_id)
|
|
122
119
|
|
|
123
|
-
def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) ->
|
|
124
|
-
if resource.
|
|
125
|
-
ds_external_id = resource.pop("dataSetExternalId")
|
|
120
|
+
def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> FileMetadataRequest:
|
|
121
|
+
if ds_external_id := resource.pop("dataSetExternalId", None):
|
|
126
122
|
resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
|
|
127
123
|
if security_categories_names := resource.pop("securityCategoryNames", []):
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
124
|
+
resource["securityCategories"] = self.client.lookup.security_categories.id(
|
|
125
|
+
security_categories_names, is_dry_run
|
|
126
|
+
)
|
|
127
|
+
if asset_external_ids := resource.pop("assetExternalIds", None):
|
|
128
|
+
resource["assetIds"] = self.client.lookup.assets.id(asset_external_ids, is_dry_run)
|
|
129
|
+
return FileMetadataRequest.model_validate(resource)
|
|
130
|
+
|
|
131
|
+
def dump_resource(self, resource: FileMetadataResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
132
|
+
dumped = resource.as_request_resource().dump()
|
|
133
|
+
if data_set_id := dumped.pop("dataSetId", None):
|
|
134
|
+
dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
|
|
138
135
|
if security_categories := dumped.pop("securityCategories", []):
|
|
139
136
|
dumped["securityCategoryNames"] = self.client.lookup.security_categories.external_id(security_categories)
|
|
140
137
|
if asset_ids := dumped.pop("assetIds", []):
|
|
141
138
|
dumped["assetExternalIds"] = self.client.lookup.assets.external_id(asset_ids)
|
|
142
139
|
return dumped
|
|
143
140
|
|
|
144
|
-
def create(self, items: Sequence[
|
|
145
|
-
|
|
146
|
-
for meta in items:
|
|
147
|
-
try:
|
|
148
|
-
created.append(self.client.files.create(meta))
|
|
149
|
-
except CogniteAPIError as e:
|
|
150
|
-
if e.code == 409:
|
|
151
|
-
print(f" [bold yellow]WARNING:[/] File {meta.external_id} already exists, skipping upload.")
|
|
152
|
-
return created
|
|
141
|
+
def create(self, items: Sequence[FileMetadataRequest]) -> list[FileMetadataResponse]:
|
|
142
|
+
return self.client.tool.filemetadata.create(items, overwrite=True)
|
|
153
143
|
|
|
154
|
-
def retrieve(self, ids: SequenceNotStr[
|
|
155
|
-
return self.client.
|
|
144
|
+
def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[FileMetadataResponse]:
|
|
145
|
+
return self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True)
|
|
156
146
|
|
|
157
|
-
def update(self, items: Sequence[
|
|
158
|
-
return self.client.
|
|
147
|
+
def update(self, items: Sequence[FileMetadataRequest]) -> list[FileMetadataResponse]:
|
|
148
|
+
return self.client.tool.filemetadata.update(items, mode="replace")
|
|
159
149
|
|
|
160
|
-
def delete(self, ids:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
150
|
+
def delete(self, ids: SequenceNotStr[InternalOrExternalId]) -> int:
|
|
151
|
+
if not ids:
|
|
152
|
+
return 0
|
|
153
|
+
self.client.tool.filemetadata.delete(list(ids), ignore_unknown_ids=True)
|
|
154
|
+
return len(ids)
|
|
164
155
|
|
|
165
156
|
def _iterate(
|
|
166
157
|
self,
|
|
167
158
|
data_set_external_id: str | None = None,
|
|
168
159
|
space: str | None = None,
|
|
169
160
|
parent_ids: list[Hashable] | None = None,
|
|
170
|
-
) -> Iterable[
|
|
171
|
-
|
|
161
|
+
) -> Iterable[FileMetadataResponse]:
|
|
162
|
+
filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
|
|
163
|
+
for files in self.client.tool.filemetadata.iterate(filter=filter_, limit=None):
|
|
164
|
+
yield from files
|
|
172
165
|
|
|
173
|
-
def count(self, ids: SequenceNotStr[
|
|
166
|
+
def count(self, ids: SequenceNotStr[ExternalId]) -> int:
|
|
174
167
|
return sum(
|
|
175
|
-
1
|
|
176
|
-
for meta in self.client.files.retrieve_multiple(external_ids=list(ids), ignore_unknown_ids=True)
|
|
177
|
-
if meta.uploaded
|
|
168
|
+
1 for meta in self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True) if meta.uploaded
|
|
178
169
|
)
|
|
179
170
|
|
|
180
|
-
def drop_data(self, ids: SequenceNotStr[
|
|
181
|
-
existing = self.client.
|
|
171
|
+
def drop_data(self, ids: SequenceNotStr[ExternalId]) -> int:
|
|
172
|
+
existing = self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True)
|
|
182
173
|
# File and FileMetadata is tightly coupled, so we need to delete the metadata and recreate it
|
|
183
174
|
# without the source set to delete the file.
|
|
184
|
-
deleted_files = self.delete(
|
|
185
|
-
self.create(
|
|
175
|
+
deleted_files = self.delete([meta.as_id() for meta in existing])
|
|
176
|
+
self.create([meta.as_request_resource() for meta in existing])
|
|
186
177
|
return deleted_files
|
|
187
178
|
|
|
188
179
|
|
|
@@ -31,7 +31,7 @@ from rich import print
|
|
|
31
31
|
from rich.console import Console
|
|
32
32
|
|
|
33
33
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
34
|
-
from cognite_toolkit._cdf_tk.client.
|
|
34
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.functions import FunctionScheduleID
|
|
35
35
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
36
36
|
from cognite_toolkit._cdf_tk.exceptions import (
|
|
37
37
|
ResourceCreationError,
|
|
@@ -14,7 +14,7 @@ from packaging.requirements import Requirement
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
|
|
16
16
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
17
|
-
from cognite_toolkit._cdf_tk.client.
|
|
17
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.streamlit_ import (
|
|
18
18
|
Streamlit,
|
|
19
19
|
StreamlitList,
|
|
20
20
|
StreamlitWrite,
|
|
@@ -7,7 +7,8 @@ from cognite.client.data_classes.capabilities import Capability, LocationFilters
|
|
|
7
7
|
from cognite.client.data_classes.data_modeling import DataModelId, ViewId
|
|
8
8
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
9
9
|
|
|
10
|
-
from cognite_toolkit._cdf_tk.client.
|
|
10
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
|
|
11
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.location_filters import (
|
|
11
12
|
LocationFilter,
|
|
12
13
|
LocationFilterList,
|
|
13
14
|
LocationFilterWrite,
|
|
@@ -239,14 +240,14 @@ class LocationFilterCRUD(ResourceCRUD[str, LocationFilterWrite, LocationFilter])
|
|
|
239
240
|
yield DataSetsCRUD, data_set_external_id
|
|
240
241
|
for asset in asset_centric.get("assetSubtreeIds", []):
|
|
241
242
|
if "externalId" in asset:
|
|
242
|
-
yield AssetCRUD, asset["externalId"]
|
|
243
|
+
yield AssetCRUD, ExternalId(external_id=asset["externalId"])
|
|
243
244
|
for subfilter_name in cls.subfilter_names:
|
|
244
245
|
subfilter = asset_centric.get(subfilter_name, {})
|
|
245
246
|
for data_set_external_id in subfilter.get("dataSetExternalIds", []):
|
|
246
247
|
yield DataSetsCRUD, data_set_external_id
|
|
247
248
|
for asset in subfilter.get("assetSubtreeIds", []):
|
|
248
249
|
if "externalId" in asset:
|
|
249
|
-
yield AssetCRUD, asset["externalId"]
|
|
250
|
+
yield AssetCRUD, ExternalId(external_id=asset["externalId"])
|
|
250
251
|
for view in item.get("views", []):
|
|
251
252
|
if in_dict(["space", "externalId", "version"], view):
|
|
252
253
|
yield ViewCRUD, ViewId(view["space"], view["externalId"], view["version"])
|
|
@@ -6,7 +6,7 @@ from cognite.client.data_classes.capabilities import Capability
|
|
|
6
6
|
from cognite.client.data_classes.data_modeling import NodeList, ViewId
|
|
7
7
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
8
8
|
|
|
9
|
-
from cognite_toolkit._cdf_tk.client.
|
|
9
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.migration import (
|
|
10
10
|
ResourceViewMapping,
|
|
11
11
|
ResourceViewMappingApply,
|
|
12
12
|
)
|
|
@@ -29,7 +29,12 @@ from rich import print
|
|
|
29
29
|
from rich.console import Console
|
|
30
30
|
|
|
31
31
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
32
|
-
from cognite_toolkit._cdf_tk.client.
|
|
32
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import (
|
|
33
|
+
RawDatabase,
|
|
34
|
+
RawDatabaseList,
|
|
35
|
+
RawTable,
|
|
36
|
+
RawTableList,
|
|
37
|
+
)
|
|
33
38
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceContainerCRUD, ResourceCRUD
|
|
34
39
|
from cognite_toolkit._cdf_tk.resource_classes import DatabaseYAML, TableYAML
|
|
35
40
|
|
|
@@ -11,6 +11,7 @@ from cognite.client.data_classes.capabilities import Capability
|
|
|
11
11
|
from cognite.client.exceptions import CogniteAPIError, CogniteNotFoundError
|
|
12
12
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
13
13
|
|
|
14
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
|
|
14
15
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
15
16
|
from cognite_toolkit._cdf_tk.resource_classes import RelationshipYAML
|
|
16
17
|
|
|
@@ -123,15 +124,15 @@ class RelationshipCRUD(ResourceCRUD[str, RelationshipWrite, Relationship]):
|
|
|
123
124
|
if isinstance(id_value, str) and isinstance(type_value, str):
|
|
124
125
|
type_value = type_value.strip().casefold()
|
|
125
126
|
if type_value == "asset":
|
|
126
|
-
yield AssetCRUD, id_value
|
|
127
|
+
yield AssetCRUD, ExternalId(external_id=id_value)
|
|
127
128
|
elif type_value == "sequence":
|
|
128
129
|
yield SequenceCRUD, id_value
|
|
129
130
|
elif type_value == "timeseries":
|
|
130
|
-
yield TimeSeriesCRUD, id_value
|
|
131
|
+
yield TimeSeriesCRUD, ExternalId(external_id=id_value)
|
|
131
132
|
elif type_value == "file":
|
|
132
|
-
yield FileMetadataCRUD, id_value
|
|
133
|
+
yield FileMetadataCRUD, ExternalId(external_id=id_value)
|
|
133
134
|
elif type_value == "event":
|
|
134
|
-
yield EventCRUD, id_value
|
|
135
|
+
yield EventCRUD, ExternalId(external_id=id_value)
|
|
135
136
|
|
|
136
137
|
def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> RelationshipWrite:
|
|
137
138
|
if ds_external_id := resource.pop("dataSetExternalId", None):
|
|
@@ -9,7 +9,7 @@ from cognite.client.data_classes.capabilities import Capability
|
|
|
9
9
|
from cognite.client.exceptions import CogniteAPIError
|
|
10
10
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
11
11
|
|
|
12
|
-
from cognite_toolkit._cdf_tk.client.
|
|
12
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.robotics import (
|
|
13
13
|
DataPostProcessing,
|
|
14
14
|
DataPostProcessingList,
|
|
15
15
|
DataPostProcessingWrite,
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
from collections.abc import Hashable, Iterable, Sequence
|
|
2
|
+
from typing import Any, final
|
|
3
|
+
|
|
4
|
+
from cognite.client.data_classes.capabilities import Capability
|
|
5
|
+
from cognite.client.utils.useful_types import SequenceNotStr
|
|
6
|
+
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
|
|
8
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.simulator_model import (
|
|
9
|
+
SimulatorModelRequest,
|
|
10
|
+
SimulatorModelResponse,
|
|
11
|
+
)
|
|
12
|
+
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
13
|
+
from cognite_toolkit._cdf_tk.resource_classes import SimulatorModelYAML
|
|
14
|
+
|
|
15
|
+
from .data_organization import DataSetsCRUD
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@final
|
|
19
|
+
class SimulatorModelCRUD(ResourceCRUD[ExternalId, SimulatorModelRequest, SimulatorModelResponse]):
|
|
20
|
+
folder_name = "simulators"
|
|
21
|
+
resource_cls = SimulatorModelResponse
|
|
22
|
+
resource_write_cls = SimulatorModelRequest
|
|
23
|
+
yaml_cls = SimulatorModelYAML
|
|
24
|
+
kind = "SimulatorModel"
|
|
25
|
+
dependencies = frozenset({DataSetsCRUD})
|
|
26
|
+
_doc_url = "Simulator-Models/operation/create_simulator_model_simulators_models_post"
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def display_name(self) -> str:
|
|
30
|
+
return "simulator models"
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def get_id(cls, item: SimulatorModelRequest | SimulatorModelResponse | dict) -> ExternalId:
|
|
34
|
+
if isinstance(item, dict):
|
|
35
|
+
return ExternalId(external_id=item["externalId"])
|
|
36
|
+
if not item.external_id:
|
|
37
|
+
raise KeyError("SimulatorModel must have external_id")
|
|
38
|
+
return ExternalId(external_id=item.external_id)
|
|
39
|
+
|
|
40
|
+
@classmethod
|
|
41
|
+
def get_internal_id(cls, item: SimulatorModelResponse | dict) -> int:
|
|
42
|
+
if isinstance(item, dict):
|
|
43
|
+
return item["id"]
|
|
44
|
+
if not item.id:
|
|
45
|
+
raise KeyError("SimulatorModel must have id")
|
|
46
|
+
return item.id
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def dump_id(cls, id: ExternalId) -> dict[str, Any]:
|
|
50
|
+
return id.dump()
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def get_required_capability(
|
|
54
|
+
cls, items: Sequence[SimulatorModelRequest] | None, read_only: bool
|
|
55
|
+
) -> Capability | list[Capability]:
|
|
56
|
+
# Simulator ACLs is not yet implemented in the PySDK, which means
|
|
57
|
+
# that we cannot check for specific capabilities.
|
|
58
|
+
return []
|
|
59
|
+
|
|
60
|
+
def create(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
|
|
61
|
+
return self.client.tool.simulators.models.create(items)
|
|
62
|
+
|
|
63
|
+
def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[SimulatorModelResponse]:
|
|
64
|
+
return self.client.tool.simulators.models.retrieve(list(ids), ignore_unknown_ids=True)
|
|
65
|
+
|
|
66
|
+
def update(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
|
|
67
|
+
return self.client.tool.simulators.models.update(items, mode="replace")
|
|
68
|
+
|
|
69
|
+
def delete(self, ids: SequenceNotStr[ExternalId | InternalOrExternalId]) -> int:
|
|
70
|
+
if not ids:
|
|
71
|
+
return 0
|
|
72
|
+
self.client.tool.simulators.models.delete(list(ids))
|
|
73
|
+
return len(ids)
|
|
74
|
+
|
|
75
|
+
def _iterate(
|
|
76
|
+
self,
|
|
77
|
+
data_set_external_id: str | None = None,
|
|
78
|
+
space: str | None = None,
|
|
79
|
+
parent_ids: list[Hashable] | None = None,
|
|
80
|
+
) -> Iterable[SimulatorModelResponse]:
|
|
81
|
+
# Note: The SimulatorModelsAPI doesn't support data_set_external_id filtering directly,
|
|
82
|
+
# so we iterate and filter in memory if needed.
|
|
83
|
+
cursor: str | None = None
|
|
84
|
+
data_set_id: int | None = None
|
|
85
|
+
if data_set_external_id:
|
|
86
|
+
data_set_id = self.client.lookup.data_sets.id(data_set_external_id, is_dry_run=False)
|
|
87
|
+
while True:
|
|
88
|
+
page = self.client.tool.simulators.models.paginate(
|
|
89
|
+
limit=1000,
|
|
90
|
+
cursor=cursor,
|
|
91
|
+
)
|
|
92
|
+
if data_set_id:
|
|
93
|
+
# Filter by data_set_external_id in memory
|
|
94
|
+
for item in page.items:
|
|
95
|
+
if item.data_set_id == data_set_id:
|
|
96
|
+
yield item
|
|
97
|
+
else:
|
|
98
|
+
yield from page.items
|
|
99
|
+
if not page.next_cursor or not page.items:
|
|
100
|
+
break
|
|
101
|
+
cursor = page.next_cursor
|
|
102
|
+
|
|
103
|
+
@classmethod
|
|
104
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
105
|
+
"""Returns all items that this item requires.
|
|
106
|
+
|
|
107
|
+
For example, a SimulatorModel requires a DataSet, so this method would return the
|
|
108
|
+
DataSetsCRUD and identifier of that dataset.
|
|
109
|
+
"""
|
|
110
|
+
if "dataSetExternalId" in item:
|
|
111
|
+
yield DataSetsCRUD, item["dataSetExternalId"]
|
|
112
|
+
|
|
113
|
+
def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> SimulatorModelRequest:
|
|
114
|
+
if ds_external_id := resource.pop("dataSetExternalId", None):
|
|
115
|
+
resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
|
|
116
|
+
return SimulatorModelRequest.model_validate(resource)
|
|
117
|
+
|
|
118
|
+
def dump_resource(self, resource: SimulatorModelResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
119
|
+
dumped = resource.as_request_resource().dump()
|
|
120
|
+
if data_set_id := dumped.pop("dataSetId", None):
|
|
121
|
+
dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
|
|
122
|
+
return dumped
|
|
@@ -4,20 +4,19 @@ from typing import Any, final
|
|
|
4
4
|
from cognite.client.data_classes.capabilities import Capability, StreamsAcl
|
|
5
5
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
6
6
|
|
|
7
|
-
from cognite_toolkit._cdf_tk.client.
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
|
|
8
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.streams import (
|
|
8
9
|
StreamRequest,
|
|
9
10
|
StreamResponse,
|
|
10
|
-
StreamResponseList,
|
|
11
11
|
)
|
|
12
12
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
13
13
|
from cognite_toolkit._cdf_tk.resource_classes import StreamYAML
|
|
14
|
-
from cognite_toolkit._cdf_tk.utils.http_client import ToolkitAPIError
|
|
15
14
|
|
|
16
15
|
from .datamodel import ContainerCRUD
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
@final
|
|
20
|
-
class StreamCRUD(ResourceCRUD[
|
|
19
|
+
class StreamCRUD(ResourceCRUD[ExternalId, StreamRequest, StreamResponse]):
|
|
21
20
|
folder_name = "streams"
|
|
22
21
|
resource_cls = StreamResponse
|
|
23
22
|
resource_write_cls = StreamRequest
|
|
@@ -32,14 +31,14 @@ class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse]):
|
|
|
32
31
|
return "streams"
|
|
33
32
|
|
|
34
33
|
@classmethod
|
|
35
|
-
def get_id(cls, item: StreamRequest | StreamResponse | dict) ->
|
|
34
|
+
def get_id(cls, item: StreamRequest | StreamResponse | dict) -> ExternalId:
|
|
36
35
|
if isinstance(item, dict):
|
|
37
|
-
return item["externalId"]
|
|
38
|
-
return item.external_id
|
|
36
|
+
return ExternalId(external_id=item["externalId"])
|
|
37
|
+
return ExternalId(external_id=item.external_id)
|
|
39
38
|
|
|
40
39
|
@classmethod
|
|
41
|
-
def dump_id(cls, id:
|
|
42
|
-
return
|
|
40
|
+
def dump_id(cls, id: ExternalId) -> dict[str, Any]:
|
|
41
|
+
return id.dump()
|
|
43
42
|
|
|
44
43
|
@classmethod
|
|
45
44
|
def get_required_capability(
|
|
@@ -55,30 +54,15 @@ class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse]):
|
|
|
55
54
|
)
|
|
56
55
|
return StreamsAcl(actions, StreamsAcl.Scope.All())
|
|
57
56
|
|
|
58
|
-
def create(self, items: Sequence[StreamRequest]) ->
|
|
59
|
-
|
|
60
|
-
return StreamResponseList(created)
|
|
57
|
+
def create(self, items: Sequence[StreamRequest]) -> list[StreamResponse]:
|
|
58
|
+
return self.client.streams.create(items)
|
|
61
59
|
|
|
62
|
-
def retrieve(self, ids: SequenceNotStr[
|
|
63
|
-
|
|
64
|
-
for _id in ids:
|
|
65
|
-
try:
|
|
66
|
-
_resp = self.client.streams.retrieve(_id)
|
|
67
|
-
except ToolkitAPIError:
|
|
68
|
-
continue
|
|
69
|
-
if _resp is not None:
|
|
70
|
-
retrieved.append(_resp)
|
|
71
|
-
return StreamResponseList(retrieved)
|
|
60
|
+
def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[StreamResponse]:
|
|
61
|
+
return self.client.streams.retrieve(list(ids), ignore_unknown_ids=True)
|
|
72
62
|
|
|
73
|
-
def delete(self, ids: SequenceNotStr[
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
try:
|
|
77
|
-
self.client.streams.delete(_id)
|
|
78
|
-
except ToolkitAPIError:
|
|
79
|
-
continue
|
|
80
|
-
count += 1
|
|
81
|
-
return count
|
|
63
|
+
def delete(self, ids: SequenceNotStr[ExternalId]) -> int:
|
|
64
|
+
self.client.streams.delete(list(ids), ignore_unknown_ids=True)
|
|
65
|
+
return len(ids)
|
|
82
66
|
|
|
83
67
|
def _iterate(
|
|
84
68
|
self,
|