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
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
from collections.abc import Sequence
|
|
2
2
|
from typing import Any, cast
|
|
3
3
|
|
|
4
|
+
from pydantic import TypeAdapter
|
|
4
5
|
from rich.console import Console
|
|
5
6
|
|
|
6
|
-
from cognite_toolkit._cdf_tk.client.
|
|
7
|
-
from cognite_toolkit._cdf_tk.client.
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.cdf_client.responses import QueryResponse
|
|
8
|
+
from cognite_toolkit._cdf_tk.client.http_client import (
|
|
9
|
+
HTTPClient,
|
|
10
|
+
ItemsRequest2,
|
|
11
|
+
RequestMessage2,
|
|
12
|
+
)
|
|
13
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.infield import (
|
|
8
14
|
DataExplorationConfig,
|
|
9
15
|
InFieldCDMLocationConfig,
|
|
10
16
|
InfieldLocationConfig,
|
|
11
17
|
)
|
|
12
|
-
from cognite_toolkit._cdf_tk.client.
|
|
18
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import (
|
|
13
19
|
InstanceResponseItem,
|
|
14
20
|
InstanceResult,
|
|
15
|
-
|
|
21
|
+
TypedNodeIdentifier,
|
|
16
22
|
)
|
|
17
23
|
from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning
|
|
18
|
-
from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, ItemsRequest, SimpleBodyRequest
|
|
19
24
|
|
|
20
25
|
|
|
21
26
|
class InfieldConfigAPI:
|
|
@@ -40,34 +45,34 @@ class InfieldConfigAPI:
|
|
|
40
45
|
else [item.as_request_item(), item.data_exploration_config.as_request_item()]
|
|
41
46
|
for item in items
|
|
42
47
|
)
|
|
43
|
-
responses = self._http_client.
|
|
44
|
-
|
|
48
|
+
responses = self._http_client.request_items_retries(
|
|
49
|
+
ItemsRequest2(
|
|
45
50
|
endpoint_url=self._config.create_api_url(self.ENDPOINT),
|
|
46
51
|
method="POST",
|
|
47
52
|
items=[item for sublist in request_items for item in sublist],
|
|
48
53
|
)
|
|
49
54
|
)
|
|
50
55
|
responses.raise_for_status()
|
|
51
|
-
return
|
|
56
|
+
return TypeAdapter(list[InstanceResult]).validate_python(responses.get_items())
|
|
52
57
|
|
|
53
|
-
def retrieve(self, items: Sequence[
|
|
58
|
+
def retrieve(self, items: Sequence[TypedNodeIdentifier]) -> list[InfieldLocationConfig]:
|
|
54
59
|
if len(items) > 100:
|
|
55
60
|
raise ValueError("Cannot retrieve more than 100 InfieldLocationConfig items at once.")
|
|
56
61
|
if not items:
|
|
57
62
|
return []
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
response = self._http_client.request_single_retries(
|
|
64
|
+
RequestMessage2(
|
|
60
65
|
# We use the query endpoint to be able to retrieve linked DataExplorationConfig items
|
|
61
66
|
endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/query"),
|
|
62
67
|
method="POST",
|
|
63
68
|
body_content=self._retrieve_query(items),
|
|
64
69
|
)
|
|
65
70
|
)
|
|
66
|
-
|
|
67
|
-
parsed_response = QueryResponse[InstanceResponseItem].model_validate(
|
|
71
|
+
success = response.get_success_or_raise()
|
|
72
|
+
parsed_response = QueryResponse[InstanceResponseItem].model_validate(success.body_json)
|
|
68
73
|
return self._parse_retrieve_response(parsed_response)
|
|
69
74
|
|
|
70
|
-
def delete(self, items: Sequence[InfieldLocationConfig]) -> list[
|
|
75
|
+
def delete(self, items: Sequence[InfieldLocationConfig]) -> list[TypedNodeIdentifier]:
|
|
71
76
|
if len(items) > 500:
|
|
72
77
|
raise ValueError("Cannot delete more than 500 InfieldLocationConfig items at once.")
|
|
73
78
|
|
|
@@ -77,18 +82,18 @@ class InfieldConfigAPI:
|
|
|
77
82
|
else [item.as_id(), item.data_exploration_config.as_id()]
|
|
78
83
|
for item in items
|
|
79
84
|
)
|
|
80
|
-
responses = self._http_client.
|
|
81
|
-
|
|
85
|
+
responses = self._http_client.request_items_retries(
|
|
86
|
+
ItemsRequest2(
|
|
82
87
|
endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/delete"),
|
|
83
88
|
method="POST",
|
|
84
89
|
items=[identifier for sublist in identifiers for identifier in sublist],
|
|
85
90
|
)
|
|
86
91
|
)
|
|
87
92
|
responses.raise_for_status()
|
|
88
|
-
return
|
|
93
|
+
return TypeAdapter(list[TypedNodeIdentifier]).validate_python(responses.get_items())
|
|
89
94
|
|
|
90
95
|
@classmethod
|
|
91
|
-
def _retrieve_query(cls, items: Sequence[
|
|
96
|
+
def _retrieve_query(cls, items: Sequence[TypedNodeIdentifier]) -> dict[str, Any]:
|
|
92
97
|
return {
|
|
93
98
|
"with": {
|
|
94
99
|
cls.LOCATION_REF: {
|
|
@@ -168,49 +173,49 @@ class InFieldCDMConfigAPI:
|
|
|
168
173
|
raise ValueError("Cannot apply more than 500 InFieldCDMLocationConfig items at once.")
|
|
169
174
|
|
|
170
175
|
request_items = [item.as_request_item() for item in items]
|
|
171
|
-
|
|
172
|
-
|
|
176
|
+
results = self._http_client.request_items_retries(
|
|
177
|
+
ItemsRequest2(
|
|
173
178
|
endpoint_url=self._config.create_api_url(self.ENDPOINT),
|
|
174
179
|
method="POST",
|
|
175
|
-
items=request_items,
|
|
180
|
+
items=request_items,
|
|
176
181
|
)
|
|
177
182
|
)
|
|
178
|
-
|
|
179
|
-
return
|
|
183
|
+
results.raise_for_status()
|
|
184
|
+
return TypeAdapter(list[InstanceResult]).validate_python(results.get_items())
|
|
180
185
|
|
|
181
|
-
def retrieve(self, items: Sequence[
|
|
186
|
+
def retrieve(self, items: Sequence[TypedNodeIdentifier]) -> list[InFieldCDMLocationConfig]:
|
|
182
187
|
if len(items) > 100:
|
|
183
188
|
raise ValueError("Cannot retrieve more than 100 InFieldCDMLocationConfig items at once.")
|
|
184
189
|
if not items:
|
|
185
190
|
return []
|
|
186
|
-
|
|
187
|
-
|
|
191
|
+
result = self._http_client.request_single_retries(
|
|
192
|
+
RequestMessage2(
|
|
188
193
|
endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/query"),
|
|
189
194
|
method="POST",
|
|
190
195
|
body_content=self._retrieve_query(items),
|
|
191
196
|
)
|
|
192
197
|
)
|
|
193
|
-
|
|
194
|
-
parsed_response = QueryResponse[InstanceResponseItem].model_validate(
|
|
198
|
+
success = result.get_success_or_raise()
|
|
199
|
+
parsed_response = QueryResponse[InstanceResponseItem].model_validate(success.body_json)
|
|
195
200
|
return self._parse_retrieve_response(parsed_response)
|
|
196
201
|
|
|
197
|
-
def delete(self, items: Sequence[InFieldCDMLocationConfig]) -> list[
|
|
202
|
+
def delete(self, items: Sequence[InFieldCDMLocationConfig]) -> list[TypedNodeIdentifier]:
|
|
198
203
|
if len(items) > 500:
|
|
199
204
|
raise ValueError("Cannot delete more than 500 InFieldCDMLocationConfig items at once.")
|
|
200
205
|
|
|
201
|
-
identifiers
|
|
202
|
-
responses = self._http_client.
|
|
203
|
-
|
|
206
|
+
identifiers = [item.as_id() for item in items]
|
|
207
|
+
responses = self._http_client.request_items_retries(
|
|
208
|
+
ItemsRequest2(
|
|
204
209
|
endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/delete"),
|
|
205
210
|
method="POST",
|
|
206
|
-
items=identifiers,
|
|
211
|
+
items=identifiers,
|
|
207
212
|
)
|
|
208
213
|
)
|
|
209
214
|
responses.raise_for_status()
|
|
210
|
-
return
|
|
215
|
+
return TypeAdapter(list[TypedNodeIdentifier]).validate_python(responses.get_items())
|
|
211
216
|
|
|
212
217
|
@classmethod
|
|
213
|
-
def _retrieve_query(cls, items: Sequence[
|
|
218
|
+
def _retrieve_query(cls, items: Sequence[TypedNodeIdentifier]) -> dict[str, Any]:
|
|
214
219
|
return {
|
|
215
220
|
"with": {
|
|
216
221
|
cls.LOCATION_REF: {
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
from collections.abc import Iterable, Sequence
|
|
2
|
+
from typing import Any, Literal
|
|
3
|
+
|
|
4
|
+
from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
|
|
5
|
+
from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
|
|
6
|
+
from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.request_classes.filters import InstanceFilter
|
|
8
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.data_modeling import (
|
|
9
|
+
InstanceRequest,
|
|
10
|
+
InstanceResponse,
|
|
11
|
+
ViewReference,
|
|
12
|
+
)
|
|
13
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import TypedInstanceIdentifier
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class InstancesAPI(CDFResourceAPI[TypedInstanceIdentifier, InstanceRequest, InstanceResponse]):
|
|
17
|
+
def __init__(self, http_client: HTTPClient) -> None:
|
|
18
|
+
super().__init__(
|
|
19
|
+
http_client=http_client,
|
|
20
|
+
method_endpoint_map={
|
|
21
|
+
"upsert": Endpoint(method="POST", path="/models/instances", item_limit=1000),
|
|
22
|
+
"retrieve": Endpoint(method="POST", path="/models/instances/byids", item_limit=1000),
|
|
23
|
+
"delete": Endpoint(method="POST", path="/models/instances/delete", item_limit=1000),
|
|
24
|
+
"list": Endpoint(method="POST", path="/models/instances/list", item_limit=1000),
|
|
25
|
+
},
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
def _validate_page_response(
|
|
29
|
+
self, response: SuccessResponse2 | ItemsSuccessResponse2
|
|
30
|
+
) -> PagedResponse[InstanceResponse]:
|
|
31
|
+
return PagedResponse[InstanceResponse].model_validate_json(response.body)
|
|
32
|
+
|
|
33
|
+
def _validate_response(self, response: SuccessResponse2) -> ResponseItems[TypedInstanceIdentifier]:
|
|
34
|
+
return ResponseItems[TypedInstanceIdentifier].model_validate_json(response.body)
|
|
35
|
+
|
|
36
|
+
def create(self, items: Sequence[InstanceRequest]) -> list[InstanceResponse]:
|
|
37
|
+
"""Create instances in CDF.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
items: List of InstanceRequest objects to create.
|
|
41
|
+
Returns:
|
|
42
|
+
List of created InstanceResponse objects.
|
|
43
|
+
"""
|
|
44
|
+
return self._request_item_response(items, "upsert")
|
|
45
|
+
|
|
46
|
+
def retrieve(
|
|
47
|
+
self, items: Sequence[TypedInstanceIdentifier], source: ViewReference | None = None
|
|
48
|
+
) -> list[InstanceResponse]:
|
|
49
|
+
"""Retrieve instances from CDF.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
items: List of ExternalId objects to retrieve.
|
|
53
|
+
source: Optional ViewReference to specify the source view for the instances.
|
|
54
|
+
Returns:
|
|
55
|
+
List of retrieved InstanceResponse objects.
|
|
56
|
+
"""
|
|
57
|
+
return self._request_item_response(
|
|
58
|
+
items, method="retrieve", extra_body={"sources": [{"source": source.dump()}]} if source else None
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
def delete(self, items: Sequence[TypedInstanceIdentifier]) -> list[TypedInstanceIdentifier]:
|
|
62
|
+
"""Delete instances from CDF.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
items: List of TypedInstanceIdentifier objects to delete.
|
|
66
|
+
"""
|
|
67
|
+
response_items: list[TypedInstanceIdentifier] = []
|
|
68
|
+
for response in self._chunk_requests(items, "delete", self._serialize_items):
|
|
69
|
+
response_items.extend(self._validate_response(response).items)
|
|
70
|
+
return response_items
|
|
71
|
+
|
|
72
|
+
@staticmethod
|
|
73
|
+
def _create_sort_body(instance_type: Literal["node", "edge"] | None) -> list[dict]:
|
|
74
|
+
"""We sort by space and externalId to get a stable sort order.
|
|
75
|
+
|
|
76
|
+
This is also more performant than sorting by using the default sort, which will sort on
|
|
77
|
+
internal CDF IDs. This will be slow if you have deleted a lot of instances, as they will be counted.
|
|
78
|
+
By sorting on space and externalId, we avoid this issue.
|
|
79
|
+
"""
|
|
80
|
+
instance_type = instance_type or "node"
|
|
81
|
+
return [
|
|
82
|
+
{
|
|
83
|
+
"property": [instance_type, "space"],
|
|
84
|
+
"direction": "ascending",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"property": [instance_type, "externalId"],
|
|
88
|
+
"direction": "ascending",
|
|
89
|
+
},
|
|
90
|
+
]
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def _create_body(cls, filter: InstanceFilter | None) -> dict[str, Any]:
|
|
94
|
+
return {
|
|
95
|
+
**(filter.model_dump(exclude_none=True) if filter else {}),
|
|
96
|
+
"sort": cls._create_sort_body(filter.instance_type if filter else "node"),
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
def paginate(
|
|
100
|
+
self,
|
|
101
|
+
filter: InstanceFilter | None = None,
|
|
102
|
+
limit: int = 100,
|
|
103
|
+
cursor: str | None = None,
|
|
104
|
+
) -> PagedResponse[InstanceResponse]:
|
|
105
|
+
"""Iterate over all instances in CDF.
|
|
106
|
+
|
|
107
|
+
Args:
|
|
108
|
+
filter: InstanceFilter to filter instances.
|
|
109
|
+
limit: Maximum number of items to return.
|
|
110
|
+
cursor: Cursor for pagination.
|
|
111
|
+
|
|
112
|
+
Returns:
|
|
113
|
+
PagedResponse of InstanceResponse objects.
|
|
114
|
+
"""
|
|
115
|
+
return self._paginate(
|
|
116
|
+
cursor=cursor,
|
|
117
|
+
limit=limit,
|
|
118
|
+
body=self._create_body(filter),
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
def iterate(self, filter: InstanceFilter | None = None, limit: int = 100) -> Iterable[list[InstanceResponse]]:
|
|
122
|
+
"""Iterate over all instances in CDF.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
filter: InstanceFilter to filter instances.
|
|
126
|
+
limit: Maximum number of items to return per page.
|
|
127
|
+
|
|
128
|
+
Returns:
|
|
129
|
+
Iterable of lists of InstanceResponse objects.
|
|
130
|
+
"""
|
|
131
|
+
return self._iterate(limit=limit, body=self._create_body(filter))
|
|
132
|
+
|
|
133
|
+
def list(self, filter: InstanceFilter | None = None, limit: int | None = 100) -> list[InstanceResponse]:
|
|
134
|
+
"""List all instances in CDF.
|
|
135
|
+
|
|
136
|
+
Returns:
|
|
137
|
+
List of InstanceResponse objects.
|
|
138
|
+
"""
|
|
139
|
+
return self._list(limit=limit, body=self._create_body(filter))
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
from collections.abc import Iterable, Sequence
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
|
|
5
|
+
from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
|
|
6
|
+
from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
|
|
8
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
|
|
9
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.label import LabelRequest, LabelResponse
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class LabelsAPI(CDFResourceAPI[ExternalId, LabelRequest, LabelResponse]):
|
|
13
|
+
def __init__(self, http_client: HTTPClient) -> None:
|
|
14
|
+
super().__init__(
|
|
15
|
+
http_client=http_client,
|
|
16
|
+
method_endpoint_map={
|
|
17
|
+
"create": Endpoint(method="POST", path="/labels", item_limit=1000),
|
|
18
|
+
"retrieve": Endpoint(method="POST", path="/labels/byids", item_limit=1000),
|
|
19
|
+
"delete": Endpoint(method="POST", path="/labels/delete", item_limit=1000),
|
|
20
|
+
"list": Endpoint(method="POST", path="/labels/list", item_limit=1000),
|
|
21
|
+
},
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
def _validate_page_response(
|
|
25
|
+
self, response: SuccessResponse2 | ItemsSuccessResponse2
|
|
26
|
+
) -> PagedResponse[LabelResponse]:
|
|
27
|
+
return PagedResponse[LabelResponse].model_validate_json(response.body)
|
|
28
|
+
|
|
29
|
+
def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
|
|
30
|
+
return ResponseItems[ExternalId].model_validate_json(response.body)
|
|
31
|
+
|
|
32
|
+
def create(self, items: Sequence[LabelRequest]) -> list[LabelResponse]:
|
|
33
|
+
"""Create labels in CDF.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
items: List of LabelRequest objects to create.
|
|
37
|
+
Returns:
|
|
38
|
+
List of created LabelResponse objects.
|
|
39
|
+
"""
|
|
40
|
+
return self._request_item_response(items, "create")
|
|
41
|
+
|
|
42
|
+
def retrieve(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False) -> list[LabelResponse]:
|
|
43
|
+
"""Retrieve labels from CDF.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
items: List of ExternalId objects to retrieve.
|
|
47
|
+
ignore_unknown_ids: Whether to ignore unknown IDs.
|
|
48
|
+
Returns:
|
|
49
|
+
List of retrieved LabelResponse objects.
|
|
50
|
+
"""
|
|
51
|
+
return self._request_item_response(
|
|
52
|
+
items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
def delete(self, items: Sequence[ExternalId]) -> None:
|
|
56
|
+
"""Delete labels from CDF.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
items: List of ExternalId objects to delete.
|
|
60
|
+
"""
|
|
61
|
+
self._request_no_response(items, "delete")
|
|
62
|
+
|
|
63
|
+
def paginate(
|
|
64
|
+
self,
|
|
65
|
+
filter: ClassicFilter | None = None,
|
|
66
|
+
name: str | None = None,
|
|
67
|
+
limit: int = 100,
|
|
68
|
+
cursor: str | None = None,
|
|
69
|
+
) -> PagedResponse[LabelResponse]:
|
|
70
|
+
"""Iterate over all labels in CDF.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
filter: Filter by data set IDs.
|
|
74
|
+
name: Filter by label name (prefix match).
|
|
75
|
+
limit: Maximum number of items to return.
|
|
76
|
+
cursor: Cursor for pagination.
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
PagedResponse of LabelResponse objects.
|
|
80
|
+
"""
|
|
81
|
+
body: dict[str, Any] = filter.dump() if filter else {}
|
|
82
|
+
if name:
|
|
83
|
+
body["name"] = name
|
|
84
|
+
|
|
85
|
+
return self._paginate(
|
|
86
|
+
cursor=cursor,
|
|
87
|
+
limit=limit,
|
|
88
|
+
body=body,
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
def iterate(
|
|
92
|
+
self,
|
|
93
|
+
filter: ClassicFilter | None = None,
|
|
94
|
+
name: str | None = None,
|
|
95
|
+
limit: int = 100,
|
|
96
|
+
) -> Iterable[list[LabelResponse]]:
|
|
97
|
+
"""Iterate over all labels in CDF.
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
filter: Filter by data set IDs.
|
|
101
|
+
name: Filter by label name (prefix match).
|
|
102
|
+
limit: Maximum number of items to return per page.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
Iterable of lists of LabelResponse objects.
|
|
106
|
+
"""
|
|
107
|
+
body: dict[str, Any] = filter.dump() if filter else {}
|
|
108
|
+
if name:
|
|
109
|
+
body["name"] = name
|
|
110
|
+
|
|
111
|
+
return self._iterate(
|
|
112
|
+
limit=limit,
|
|
113
|
+
body=body,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
def list(
|
|
117
|
+
self,
|
|
118
|
+
limit: int | None = 100,
|
|
119
|
+
) -> list[LabelResponse]:
|
|
120
|
+
"""List all labels in CDF.
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
List of LabelResponse objects.
|
|
124
|
+
"""
|
|
125
|
+
return self._list(limit=limit)
|
|
@@ -15,7 +15,8 @@ from cognite.client.data_classes.filters import Filter
|
|
|
15
15
|
from cognite.client.exceptions import CogniteDuplicatedError
|
|
16
16
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
17
17
|
|
|
18
|
-
from cognite_toolkit._cdf_tk.client.
|
|
18
|
+
from cognite_toolkit._cdf_tk.client.api.legacy.extended_data_modeling import ExtendedInstancesAPI
|
|
19
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.canvas import (
|
|
19
20
|
ANNOTATION_EDGE_TYPE,
|
|
20
21
|
CANVAS_INSTANCE_SPACE,
|
|
21
22
|
CONTAINER_REFERENCE_EDGE_TYPE,
|
|
@@ -29,11 +30,9 @@ from cognite_toolkit._cdf_tk.client.data_classes.canvas import (
|
|
|
29
30
|
IndustrialCanvas,
|
|
30
31
|
IndustrialCanvasApply,
|
|
31
32
|
)
|
|
32
|
-
from cognite_toolkit._cdf_tk.client.
|
|
33
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.instances import InstancesApplyResultList
|
|
33
34
|
from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
|
|
34
35
|
|
|
35
|
-
from .extended_data_modeling import ExtendedInstancesAPI
|
|
36
|
-
|
|
37
36
|
|
|
38
37
|
class CanvasAPI:
|
|
39
38
|
def __init__(self, instance_api: ExtendedInstancesAPI) -> None:
|
|
@@ -84,7 +83,7 @@ class IndustrialCanvasAPI:
|
|
|
84
83
|
def create(self, canvas: IndustrialCanvasApply) -> InstancesApplyResultList:
|
|
85
84
|
instance_ids = canvas.as_instance_ids()
|
|
86
85
|
existing = self._instance_api.retrieve(
|
|
87
|
-
[node for node in instance_ids if isinstance(node, NodeId)],
|
|
86
|
+
nodes=[node for node in instance_ids if isinstance(node, NodeId)],
|
|
88
87
|
edges=[edge for edge in instance_ids if isinstance(edge, EdgeId)],
|
|
89
88
|
)
|
|
90
89
|
if existing.nodes or existing.edges:
|
|
@@ -134,6 +133,9 @@ class IndustrialCanvasAPI:
|
|
|
134
133
|
|
|
135
134
|
@classmethod
|
|
136
135
|
def _retrieve_query(cls, external_id: str) -> query.Query:
|
|
136
|
+
# The limit for canvas components must be high enough to cover all annotations/references in a canvas.
|
|
137
|
+
# Using 1000 as a safe upper bound (same as _APPLY_LIMIT).
|
|
138
|
+
query_limit = 1000
|
|
137
139
|
return query.Query(
|
|
138
140
|
with_={
|
|
139
141
|
"canvas": query.NodeResultSetExpression(
|
|
@@ -143,18 +145,21 @@ class IndustrialCanvasAPI:
|
|
|
143
145
|
"solutionTags": query.NodeResultSetExpression(
|
|
144
146
|
from_="canvas",
|
|
145
147
|
through=Canvas.get_source().as_property_ref("solutionTags"),
|
|
148
|
+
limit=query_limit,
|
|
146
149
|
),
|
|
147
150
|
"annotationEdges": query.EdgeResultSetExpression(
|
|
148
151
|
from_="canvas",
|
|
149
152
|
filter=filters.Equals(["edge", "type"], ANNOTATION_EDGE_TYPE.dump()),
|
|
150
153
|
node_filter=filters.HasData(views=[CanvasAnnotation.get_source()]),
|
|
151
154
|
direction="outwards",
|
|
155
|
+
limit=query_limit,
|
|
152
156
|
),
|
|
153
157
|
"containerReferenceEdges": query.EdgeResultSetExpression(
|
|
154
158
|
from_="canvas",
|
|
155
159
|
filter=filters.Equals(["edge", "type"], CONTAINER_REFERENCE_EDGE_TYPE.dump()),
|
|
156
160
|
node_filter=filters.HasData(views=[ContainerReference.get_source()]),
|
|
157
161
|
direction="outwards",
|
|
162
|
+
limit=query_limit,
|
|
158
163
|
),
|
|
159
164
|
"fdmInstanceContainerReferenceEdges": query.EdgeResultSetExpression(
|
|
160
165
|
from_="canvas",
|
|
@@ -164,11 +169,14 @@ class IndustrialCanvasAPI:
|
|
|
164
169
|
),
|
|
165
170
|
node_filter=filters.HasData(views=[FdmInstanceContainerReference.get_source()]),
|
|
166
171
|
direction="outwards",
|
|
172
|
+
limit=query_limit,
|
|
173
|
+
),
|
|
174
|
+
"annotations": query.NodeResultSetExpression(from_="annotationEdges", limit=query_limit),
|
|
175
|
+
"containerReferences": query.NodeResultSetExpression(
|
|
176
|
+
from_="containerReferenceEdges", limit=query_limit
|
|
167
177
|
),
|
|
168
|
-
"annotations": query.NodeResultSetExpression(from_="annotationEdges"),
|
|
169
|
-
"containerReferences": query.NodeResultSetExpression(from_="containerReferenceEdges"),
|
|
170
178
|
"fdmInstanceContainerReferences": query.NodeResultSetExpression(
|
|
171
|
-
from_="fdmInstanceContainerReferenceEdges"
|
|
179
|
+
from_="fdmInstanceContainerReferenceEdges", limit=query_limit
|
|
172
180
|
),
|
|
173
181
|
},
|
|
174
182
|
select={
|
|
@@ -6,7 +6,7 @@ from cognite.client._api_client import APIClient
|
|
|
6
6
|
from cognite.client.utils._identifier import IdentifierSequence
|
|
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.charts import (
|
|
10
10
|
Chart,
|
|
11
11
|
ChartList,
|
|
12
12
|
ChartWrite,
|
cognite_toolkit/_cdf_tk/client/api/{extended_data_modeling.py → legacy/extended_data_modeling.py}
RENAMED
|
@@ -16,7 +16,7 @@ from cognite.client.utils._concurrency import execute_tasks
|
|
|
16
16
|
from requests import Response
|
|
17
17
|
|
|
18
18
|
from cognite_toolkit._cdf_tk.client._constants import DATA_MODELING_MAX_DELETE_WORKERS, DATA_MODELING_MAX_WRITE_WORKERS
|
|
19
|
-
from cognite_toolkit._cdf_tk.client.
|
|
19
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.instances import InstancesApplyResultList
|
|
20
20
|
from cognite_toolkit._cdf_tk.client.utils._concurrency import ToolkitConcurrencySettings
|
|
21
21
|
from cognite_toolkit._cdf_tk.client.utils._http_client import ToolkitRetryTracker
|
|
22
22
|
|
|
@@ -9,11 +9,11 @@ from cognite.client.utils._concurrency import execute_tasks
|
|
|
9
9
|
from cognite.client.utils._identifier import IdentifierSequence
|
|
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.extended_filemetadata import (
|
|
13
13
|
ExtendedFileMetadata,
|
|
14
14
|
ExtendedFileMetadataList,
|
|
15
15
|
)
|
|
16
|
-
from cognite_toolkit._cdf_tk.client.
|
|
16
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.pending_instances_ids import PendingInstanceId
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class ExtendedFileMetadataAPI(FilesAPI):
|
|
@@ -6,8 +6,8 @@ from cognite.client.utils.useful_types import SequenceNotStr
|
|
|
6
6
|
from rich.console import Console
|
|
7
7
|
|
|
8
8
|
from cognite_toolkit._cdf_tk.client.config import ToolkitClientConfig
|
|
9
|
+
from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, RequestMessage2
|
|
9
10
|
from cognite_toolkit._cdf_tk.utils.collection import chunker
|
|
10
|
-
from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, SimpleBodyRequest
|
|
11
11
|
from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
|
|
12
12
|
|
|
13
13
|
|
|
@@ -34,21 +34,20 @@ class ExtendedFunctionsAPI(FunctionsAPI):
|
|
|
34
34
|
|
|
35
35
|
Args:
|
|
36
36
|
function (FunctionWrite): The function to create.
|
|
37
|
-
console (Console | None): The rich console to use for printing warnings.
|
|
38
37
|
|
|
39
38
|
Returns:
|
|
40
39
|
Function: The created function object.
|
|
41
40
|
"""
|
|
42
|
-
result = self._toolkit_http_client.
|
|
43
|
-
message=
|
|
41
|
+
result = self._toolkit_http_client.request_single_retries(
|
|
42
|
+
message=RequestMessage2(
|
|
44
43
|
endpoint_url=self._toolkit_config.create_api_url("/functions"),
|
|
45
44
|
method="POST",
|
|
46
45
|
body_content={"items": [function.dump(camel_case=True)]},
|
|
47
46
|
)
|
|
48
47
|
)
|
|
49
|
-
result.
|
|
48
|
+
success = result.get_success_or_raise()
|
|
50
49
|
# We assume the API response is one item on a successful creation
|
|
51
|
-
return Function._load(
|
|
50
|
+
return Function._load(success.body_json["items"][0], cognite_client=self._cognite_client)
|
|
52
51
|
|
|
53
52
|
def delete_with_429_retry(self, external_id: SequenceNotStr[str], ignore_unknown_ids: bool = False) -> None:
|
|
54
53
|
"""Delete one or more functions with retry handling for 429 Too Many Requests responses.
|
|
@@ -70,11 +69,12 @@ class ExtendedFunctionsAPI(FunctionsAPI):
|
|
|
70
69
|
}
|
|
71
70
|
if ignore_unknown_ids:
|
|
72
71
|
body_content["ignoreUnknownIds"] = True
|
|
73
|
-
self._toolkit_http_client.
|
|
74
|
-
message=
|
|
72
|
+
result = self._toolkit_http_client.request_single_retries(
|
|
73
|
+
message=RequestMessage2(
|
|
75
74
|
endpoint_url=self._toolkit_config.create_api_url("/functions/delete"),
|
|
76
75
|
method="POST",
|
|
77
76
|
body_content=body_content,
|
|
78
77
|
)
|
|
79
|
-
)
|
|
78
|
+
)
|
|
79
|
+
result.get_success_or_raise()
|
|
80
80
|
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from cognite.client._api.raw import RawAPI
|
|
2
2
|
|
|
3
|
-
from cognite_toolkit._cdf_tk.client.
|
|
3
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawProfileResults, RawTable
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class ExtendedRawAPI(RawAPI):
|
|
@@ -13,8 +13,11 @@ from cognite.client.utils._identifier import IdentifierSequence
|
|
|
13
13
|
from cognite.client.utils._validation import prepare_filter_sort, process_asset_subtree_ids, process_data_set_ids
|
|
14
14
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
15
15
|
|
|
16
|
-
from cognite_toolkit._cdf_tk.client.
|
|
17
|
-
|
|
16
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.extended_timeseries import (
|
|
17
|
+
ExtendedTimeSeries,
|
|
18
|
+
ExtendedTimeSeriesList,
|
|
19
|
+
)
|
|
20
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.pending_instances_ids import PendingInstanceId
|
|
18
21
|
|
|
19
22
|
|
|
20
23
|
class ExtendedTimeSeriesAPI(TimeSeriesAPI):
|