cognite-toolkit 0.7.30__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.py +5 -6
- cognite_toolkit/_cdf_tk/apps/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/apps/_core_app.py +7 -1
- cognite_toolkit/_cdf_tk/apps/_download_app.py +2 -2
- cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
- cognite_toolkit/_cdf_tk/apps/_import_app.py +41 -0
- cognite_toolkit/_cdf_tk/apps/_migrate_app.py +183 -8
- 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 +44 -12
- 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 +40 -35
- 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/{canvas.py → legacy/canvas.py} +16 -8
- cognite_toolkit/_cdf_tk/client/api/{charts.py → legacy/charts.py} +1 -1
- cognite_toolkit/_cdf_tk/client/api/{extended_data_modeling.py → legacy/extended_data_modeling.py} +1 -1
- cognite_toolkit/_cdf_tk/client/api/{extended_files.py → legacy/extended_files.py} +2 -2
- cognite_toolkit/_cdf_tk/client/api/{extended_functions.py → legacy/extended_functions.py} +9 -9
- cognite_toolkit/_cdf_tk/client/api/{extended_raw.py → legacy/extended_raw.py} +1 -1
- cognite_toolkit/_cdf_tk/client/api/{extended_timeseries.py → legacy/extended_timeseries.py} +5 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +112 -0
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/__init__.py +8 -0
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/capabilities.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/data_postprocessing.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/frames.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/locations.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/maps.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/robots.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +53 -0
- cognite_toolkit/_cdf_tk/client/api/location_filters.py +140 -75
- cognite_toolkit/_cdf_tk/client/api/migration.py +2 -3
- cognite_toolkit/_cdf_tk/client/api/project.py +9 -8
- 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.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/search_config.py +83 -31
- 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 +68 -56
- cognite_toolkit/_cdf_tk/client/api/three_d.py +385 -34
- 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 +30 -0
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_client.py +26 -16
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_data_classes.py +18 -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/{utils → client}/http_client/_tracker.py +5 -2
- 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/__init__.py +0 -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 +53 -14
- 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 +54 -17
- cognite_toolkit/_cdf_tk/commands/__init__.py +1 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/command.py +103 -108
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +29 -16
- cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +38 -6
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +262 -36
- cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +1 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +39 -38
- cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +227 -8
- cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_purge.py +14 -16
- 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/__init__.py +0 -0
- 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 +228 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/build_parameters.py +71 -0
- 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 +34 -25
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +50 -59
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +14 -2
- 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 +49 -14
- 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/_module_toml.py +1 -0
- 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 +173 -5
- 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 +65 -56
- 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/storageio/selectors/__init__.py +10 -1
- cognite_toolkit/_cdf_tk/storageio/selectors/_three_d.py +34 -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 +53 -4
- 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/_cdf_tk/validation.py +4 -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.30.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.30.dist-info → cognite_toolkit-0.7.51.dist-info}/WHEEL +2 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/__init__.py +0 -3
- cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -17
- cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -87
- cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -47
- cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -41
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +0 -187
- cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -4
- cognite_toolkit-0.7.30.dist-info/RECORD +0 -316
- /cognite_toolkit/_cdf_tk/client/{data_classes → api/legacy}/__init__.py +0 -0
- /cognite_toolkit/_cdf_tk/client/api/{dml.py → legacy/dml.py} +0 -0
- /cognite_toolkit/_cdf_tk/client/api/{fixed_transformations.py → legacy/fixed_transformations.py} +0 -0
- /cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/api.py +0 -0
- /cognite_toolkit/_cdf_tk/client/api/{robotics → legacy/robotics}/utlis.py +0 -0
- /cognite_toolkit/_cdf_tk/{prototypes/commands → client/request_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/_cdf_tk/{prototypes/commands/import_.py → commands/_import_cmd.py} +0 -0
- {cognite_toolkit-0.7.30.dist-info → cognite_toolkit-0.7.51.dist-info}/entry_points.txt +0 -0
|
@@ -8,17 +8,18 @@ from cognite.client.data_classes.data_modeling import NodeApplyResultList, NodeI
|
|
|
8
8
|
from cognite.client.exceptions import CogniteAPIError
|
|
9
9
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
10
10
|
|
|
11
|
-
from cognite_toolkit._cdf_tk.client.
|
|
12
|
-
|
|
13
|
-
APMConfigList,
|
|
14
|
-
APMConfigWrite,
|
|
15
|
-
)
|
|
16
|
-
from cognite_toolkit._cdf_tk.client.data_classes.infield import (
|
|
11
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
|
|
12
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.infield import (
|
|
17
13
|
InFieldCDMLocationConfig,
|
|
18
14
|
InfieldLocationConfig,
|
|
19
15
|
InfieldLocationConfigList,
|
|
20
16
|
)
|
|
21
|
-
from cognite_toolkit._cdf_tk.client.
|
|
17
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import InstanceResult, TypedNodeIdentifier
|
|
18
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.apm_config_v1 import (
|
|
19
|
+
APMConfig,
|
|
20
|
+
APMConfigList,
|
|
21
|
+
APMConfigWrite,
|
|
22
|
+
)
|
|
22
23
|
from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING
|
|
23
24
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
24
25
|
from cognite_toolkit._cdf_tk.resource_classes import (
|
|
@@ -139,7 +140,7 @@ class InfieldV1CRUD(ResourceCRUD[str, APMConfigWrite, APMConfig]):
|
|
|
139
140
|
yield SpaceCRUD, customer_data_space_id
|
|
140
141
|
for config in cls._get_root_location_configurations(item) or []:
|
|
141
142
|
if isinstance(asset_external_id := config.get("assetExternalId"), str):
|
|
142
|
-
yield AssetCRUD, asset_external_id
|
|
143
|
+
yield AssetCRUD, ExternalId(external_id=asset_external_id)
|
|
143
144
|
if isinstance(data_set_external_id := config.get("dataSetExternalId"), str):
|
|
144
145
|
yield DataSetsCRUD, data_set_external_id
|
|
145
146
|
if isinstance(app_data_instance_space := config.get("appDataInstanceSpace"), str):
|
|
@@ -162,7 +163,7 @@ class InfieldV1CRUD(ResourceCRUD[str, APMConfigWrite, APMConfig]):
|
|
|
162
163
|
yield DataSetsCRUD, data_set_external_id
|
|
163
164
|
for asset_external_id in filter_.get("assetSubtreeExternalIds", []):
|
|
164
165
|
if isinstance(asset_external_id, str):
|
|
165
|
-
yield AssetCRUD, asset_external_id
|
|
166
|
+
yield AssetCRUD, ExternalId(external_id=asset_external_id)
|
|
166
167
|
if app_data_instance_space := filter_.get("appDataInstanceSpace"):
|
|
167
168
|
if isinstance(app_data_instance_space, str):
|
|
168
169
|
yield SpaceCRUD, app_data_instance_space
|
|
@@ -246,7 +247,7 @@ class InfieldV1CRUD(ResourceCRUD[str, APMConfigWrite, APMConfig]):
|
|
|
246
247
|
|
|
247
248
|
|
|
248
249
|
@final
|
|
249
|
-
class InFieldLocationConfigCRUD(ResourceCRUD[
|
|
250
|
+
class InFieldLocationConfigCRUD(ResourceCRUD[TypedNodeIdentifier, InfieldLocationConfig, InfieldLocationConfig]):
|
|
250
251
|
folder_name = "cdf_applications"
|
|
251
252
|
resource_cls = InfieldLocationConfig
|
|
252
253
|
resource_write_cls = InfieldLocationConfig
|
|
@@ -260,14 +261,17 @@ class InFieldLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InfieldLocationConf
|
|
|
260
261
|
return "infield location configs"
|
|
261
262
|
|
|
262
263
|
@classmethod
|
|
263
|
-
def get_id(cls, item: InfieldLocationConfig | dict) ->
|
|
264
|
+
def get_id(cls, item: InfieldLocationConfig | dict) -> TypedNodeIdentifier:
|
|
264
265
|
if isinstance(item, dict):
|
|
265
|
-
return
|
|
266
|
-
return
|
|
266
|
+
return TypedNodeIdentifier(space=item["space"], external_id=item["externalId"])
|
|
267
|
+
return TypedNodeIdentifier(space=item.space, external_id=item.external_id)
|
|
267
268
|
|
|
268
269
|
@classmethod
|
|
269
|
-
def dump_id(cls, id:
|
|
270
|
-
return
|
|
270
|
+
def dump_id(cls, id: TypedNodeIdentifier) -> dict[str, Any]:
|
|
271
|
+
return {
|
|
272
|
+
"space": id.space,
|
|
273
|
+
"externalId": id.external_id,
|
|
274
|
+
}
|
|
271
275
|
|
|
272
276
|
@classmethod
|
|
273
277
|
def get_required_capability(
|
|
@@ -308,13 +312,13 @@ class InFieldLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InfieldLocationConf
|
|
|
308
312
|
# as we only want to count the infield location configs here.
|
|
309
313
|
return [res for res in created if res.as_id() in config_ids]
|
|
310
314
|
|
|
311
|
-
def retrieve(self, ids: SequenceNotStr[
|
|
315
|
+
def retrieve(self, ids: SequenceNotStr[TypedNodeIdentifier]) -> InfieldLocationConfigList:
|
|
312
316
|
return InfieldLocationConfigList(self.client.infield.config.retrieve(list(ids)))
|
|
313
317
|
|
|
314
318
|
def update(self, items: Sequence[InfieldLocationConfig]) -> Sized:
|
|
315
319
|
return self.create(items)
|
|
316
320
|
|
|
317
|
-
def delete(self, ids: SequenceNotStr[
|
|
321
|
+
def delete(self, ids: SequenceNotStr[TypedNodeIdentifier]) -> int:
|
|
318
322
|
# We must retrieve the full resource to get hte DataExplorationConfig linked resource deleted as well.
|
|
319
323
|
retrieved = self.retrieve(list(ids))
|
|
320
324
|
# Then, we pass the entire resource to the delete method, which will delete both the InfieldLocationConfig
|
|
@@ -345,7 +349,9 @@ class InFieldLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InfieldLocationConf
|
|
|
345
349
|
|
|
346
350
|
|
|
347
351
|
@final
|
|
348
|
-
class InFieldCDMLocationConfigCRUD(
|
|
352
|
+
class InFieldCDMLocationConfigCRUD(
|
|
353
|
+
ResourceCRUD[TypedNodeIdentifier, InFieldCDMLocationConfig, InFieldCDMLocationConfig]
|
|
354
|
+
):
|
|
349
355
|
folder_name = "cdf_applications"
|
|
350
356
|
resource_cls = InFieldCDMLocationConfig
|
|
351
357
|
resource_write_cls = InFieldCDMLocationConfig
|
|
@@ -359,14 +365,17 @@ class InFieldCDMLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InFieldCDMLocati
|
|
|
359
365
|
return "infield CDM location configs"
|
|
360
366
|
|
|
361
367
|
@classmethod
|
|
362
|
-
def get_id(cls, item: InFieldCDMLocationConfig | dict) ->
|
|
368
|
+
def get_id(cls, item: InFieldCDMLocationConfig | dict) -> TypedNodeIdentifier:
|
|
363
369
|
if isinstance(item, dict):
|
|
364
|
-
return
|
|
365
|
-
return
|
|
370
|
+
return TypedNodeIdentifier(space=item["space"], external_id=item["externalId"])
|
|
371
|
+
return TypedNodeIdentifier(space=item.space, external_id=item.external_id)
|
|
366
372
|
|
|
367
373
|
@classmethod
|
|
368
|
-
def dump_id(cls, id:
|
|
369
|
-
return
|
|
374
|
+
def dump_id(cls, id: TypedNodeIdentifier) -> dict[str, Any]:
|
|
375
|
+
return {
|
|
376
|
+
"space": id.space,
|
|
377
|
+
"externalId": id.external_id,
|
|
378
|
+
}
|
|
370
379
|
|
|
371
380
|
@classmethod
|
|
372
381
|
def get_required_capability(
|
|
@@ -397,13 +406,13 @@ class InFieldCDMLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InFieldCDMLocati
|
|
|
397
406
|
def create(self, items: Sequence[InFieldCDMLocationConfig]) -> list[InstanceResult]:
|
|
398
407
|
return self.client.infield.cdm_config.apply(items)
|
|
399
408
|
|
|
400
|
-
def retrieve(self, ids: SequenceNotStr[
|
|
409
|
+
def retrieve(self, ids: SequenceNotStr[TypedNodeIdentifier]) -> list[InFieldCDMLocationConfig]:
|
|
401
410
|
return self.client.infield.cdm_config.retrieve(list(ids))
|
|
402
411
|
|
|
403
412
|
def update(self, items: Sequence[InFieldCDMLocationConfig]) -> Sized:
|
|
404
413
|
return self.create(items)
|
|
405
414
|
|
|
406
|
-
def delete(self, ids: SequenceNotStr[
|
|
415
|
+
def delete(self, ids: SequenceNotStr[TypedNodeIdentifier]) -> int:
|
|
407
416
|
# We must retrieve the full resource to delete it.
|
|
408
417
|
retrieved = self.retrieve(list(ids))
|
|
409
418
|
_ = self.client.infield.cdm_config.delete(retrieved)
|
|
@@ -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
|
|
|
@@ -22,6 +22,7 @@ from cognite.client.data_classes.capabilities import (
|
|
|
22
22
|
FunctionsAcl,
|
|
23
23
|
SessionsAcl,
|
|
24
24
|
)
|
|
25
|
+
from cognite.client.data_classes.data_modeling import NodeId
|
|
25
26
|
from cognite.client.data_classes.data_modeling.cdm.v1 import CogniteFileApply
|
|
26
27
|
from cognite.client.data_classes.functions import HANDLER_FILE_NAME
|
|
27
28
|
from cognite.client.exceptions import CogniteAPIError
|
|
@@ -30,7 +31,7 @@ from rich import print
|
|
|
30
31
|
from rich.console import Console
|
|
31
32
|
|
|
32
33
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
33
|
-
from cognite_toolkit._cdf_tk.client.
|
|
34
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.functions import FunctionScheduleID
|
|
34
35
|
from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
|
|
35
36
|
from cognite_toolkit._cdf_tk.exceptions import (
|
|
36
37
|
ResourceCreationError,
|
|
@@ -406,7 +407,18 @@ class FunctionCRUD(ResourceCRUD[str, FunctionWrite, Function]):
|
|
|
406
407
|
|
|
407
408
|
self.client.functions.delete_with_429_retry(external_id=ids, ignore_unknown_ids=True)
|
|
408
409
|
file_ids = {func.file_id for func in functions if func.file_id}
|
|
409
|
-
self.client.files.
|
|
410
|
+
files = self.client.files.retrieve_multiple(list(file_ids), ignore_unknown_ids=True)
|
|
411
|
+
dm_file_nodes: set[NodeId] = set()
|
|
412
|
+
classic_file_ids: set[int] = set()
|
|
413
|
+
for file in files:
|
|
414
|
+
if file.instance_id is not None:
|
|
415
|
+
dm_file_nodes.add(file.instance_id)
|
|
416
|
+
else:
|
|
417
|
+
classic_file_ids.add(file.id)
|
|
418
|
+
if classic_file_ids:
|
|
419
|
+
self.client.files.delete(id=list(classic_file_ids), ignore_unknown_ids=True)
|
|
420
|
+
if dm_file_nodes:
|
|
421
|
+
self.client.data_modeling.instances.delete(list(dm_file_nodes))
|
|
410
422
|
return len(ids)
|
|
411
423
|
|
|
412
424
|
def _iterate(
|
|
@@ -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
|