cognite-toolkit 0.5.44__py3-none-any.whl → 0.7.34__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 +24 -26
- cognite_toolkit/_cdf_tk/apps/__init__.py +10 -2
- cognite_toolkit/_cdf_tk/apps/_core_app.py +30 -16
- cognite_toolkit/_cdf_tk/apps/_data_app.py +24 -0
- cognite_toolkit/_cdf_tk/apps/_dev_app.py +86 -0
- cognite_toolkit/_cdf_tk/apps/_download_app.py +1146 -0
- cognite_toolkit/_cdf_tk/apps/_dump_app.py +421 -102
- cognite_toolkit/_cdf_tk/apps/_import_app.py +41 -0
- cognite_toolkit/_cdf_tk/apps/_landing_app.py +17 -5
- cognite_toolkit/_cdf_tk/apps/_migrate_app.py +1085 -1
- cognite_toolkit/_cdf_tk/apps/_modules_app.py +37 -13
- cognite_toolkit/_cdf_tk/apps/_profile_app.py +142 -3
- cognite_toolkit/_cdf_tk/apps/_purge.py +250 -17
- cognite_toolkit/_cdf_tk/apps/_run.py +21 -10
- cognite_toolkit/_cdf_tk/apps/_upload_app.py +107 -0
- cognite_toolkit/_cdf_tk/builders/__init__.py +8 -4
- cognite_toolkit/_cdf_tk/builders/_base.py +37 -49
- cognite_toolkit/_cdf_tk/builders/_datamodels.py +4 -4
- cognite_toolkit/_cdf_tk/builders/_file.py +5 -5
- cognite_toolkit/_cdf_tk/builders/_function.py +7 -7
- cognite_toolkit/_cdf_tk/builders/_location.py +11 -31
- cognite_toolkit/_cdf_tk/builders/_raw.py +11 -11
- cognite_toolkit/_cdf_tk/builders/_streamlit.py +4 -4
- cognite_toolkit/_cdf_tk/builders/_transformation.py +11 -8
- cognite_toolkit/_cdf_tk/cdf_toml.py +77 -9
- cognite_toolkit/_cdf_tk/client/__init__.py +2 -1
- cognite_toolkit/_cdf_tk/client/_constants.py +1 -0
- cognite_toolkit/_cdf_tk/client/_toolkit_client.py +49 -65
- cognite_toolkit/_cdf_tk/client/api/canvas.py +185 -0
- cognite_toolkit/_cdf_tk/client/api/charts.py +125 -0
- cognite_toolkit/_cdf_tk/client/api/extended_data_modeling.py +70 -14
- cognite_toolkit/_cdf_tk/client/api/extended_files.py +227 -0
- cognite_toolkit/_cdf_tk/client/api/extended_functions.py +80 -0
- cognite_toolkit/_cdf_tk/client/api/extended_raw.py +49 -0
- cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py +70 -2
- cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/infield.py +254 -0
- cognite_toolkit/_cdf_tk/client/api/location_filters.py +19 -3
- cognite_toolkit/_cdf_tk/client/api/lookup.py +202 -71
- cognite_toolkit/_cdf_tk/client/api/migration.py +529 -0
- cognite_toolkit/_cdf_tk/client/api/project.py +24 -0
- cognite_toolkit/_cdf_tk/client/api/robotics/api.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/capabilities.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/data_postprocessing.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/frames.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/locations.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/maps.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/robotics/robots.py +0 -2
- cognite_toolkit/_cdf_tk/client/api/search.py +13 -0
- cognite_toolkit/_cdf_tk/client/api/search_config.py +49 -0
- cognite_toolkit/_cdf_tk/client/api/streams.py +89 -0
- cognite_toolkit/_cdf_tk/client/api/three_d.py +131 -0
- cognite_toolkit/_cdf_tk/client/api/token.py +111 -0
- cognite_toolkit/_cdf_tk/client/config.py +120 -0
- cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +17 -0
- cognite_toolkit/_cdf_tk/client/data_classes/base.py +71 -0
- cognite_toolkit/_cdf_tk/client/data_classes/canvas.py +1107 -0
- cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py +170 -0
- cognite_toolkit/_cdf_tk/client/data_classes/charts.py +114 -0
- cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +184 -0
- cognite_toolkit/_cdf_tk/client/data_classes/extendable_cognite_file.py +8 -4
- cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetadata.py +108 -0
- cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py +113 -0
- cognite_toolkit/_cdf_tk/client/data_classes/functions.py +0 -2
- cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py +9 -5
- cognite_toolkit/_cdf_tk/client/data_classes/infield.py +116 -0
- cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +162 -0
- cognite_toolkit/_cdf_tk/client/data_classes/instances.py +24 -2
- cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py +3 -5
- cognite_toolkit/_cdf_tk/client/data_classes/migration.py +457 -0
- cognite_toolkit/_cdf_tk/client/data_classes/project.py +41 -0
- cognite_toolkit/_cdf_tk/client/data_classes/raw.py +378 -9
- cognite_toolkit/_cdf_tk/client/data_classes/robotics.py +8 -10
- cognite_toolkit/_cdf_tk/client/data_classes/search_config.py +224 -0
- cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py +11 -11
- cognite_toolkit/_cdf_tk/client/data_classes/streams.py +90 -0
- cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +53 -0
- cognite_toolkit/_cdf_tk/client/testing.py +83 -6
- cognite_toolkit/_cdf_tk/client/utils/_concurrency.py +24 -1
- cognite_toolkit/_cdf_tk/commands/__init__.py +20 -8
- cognite_toolkit/_cdf_tk/commands/_base.py +8 -3
- cognite_toolkit/_cdf_tk/commands/_changes.py +12 -46
- cognite_toolkit/_cdf_tk/commands/_cli_commands.py +0 -2
- cognite_toolkit/_cdf_tk/commands/_download.py +154 -0
- cognite_toolkit/_cdf_tk/{prototypes/commands/import_.py → commands/_import_cmd.py} +0 -2
- cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py +7 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/command.py +309 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +373 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +232 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +294 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +471 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +229 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +137 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +212 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +456 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py +60 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +71 -0
- cognite_toolkit/_cdf_tk/commands/_profile.py +921 -149
- cognite_toolkit/_cdf_tk/commands/_purge.py +692 -511
- cognite_toolkit/_cdf_tk/commands/_questionary_style.py +16 -0
- cognite_toolkit/_cdf_tk/commands/_upload.py +289 -0
- cognite_toolkit/_cdf_tk/commands/_utils.py +1 -26
- cognite_toolkit/_cdf_tk/commands/_virtual_env.py +0 -2
- cognite_toolkit/_cdf_tk/commands/about.py +221 -0
- cognite_toolkit/_cdf_tk/commands/auth.py +46 -26
- cognite_toolkit/_cdf_tk/commands/build_cmd.py +72 -114
- cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +241 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/build_input.py +85 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +27 -0
- cognite_toolkit/_cdf_tk/commands/clean.py +89 -39
- cognite_toolkit/_cdf_tk/commands/deploy.py +334 -194
- cognite_toolkit/_cdf_tk/commands/dump_resource.py +470 -79
- cognite_toolkit/_cdf_tk/commands/init.py +219 -18
- cognite_toolkit/_cdf_tk/commands/modules.py +319 -71
- cognite_toolkit/_cdf_tk/commands/pull.py +45 -46
- cognite_toolkit/_cdf_tk/commands/repo.py +1 -1
- cognite_toolkit/_cdf_tk/commands/resources.py +179 -0
- cognite_toolkit/_cdf_tk/commands/run.py +11 -13
- cognite_toolkit/_cdf_tk/constants.py +104 -8
- cognite_toolkit/_cdf_tk/cruds/__init__.py +224 -0
- cognite_toolkit/_cdf_tk/{loaders/_base_loaders.py → cruds/_base_cruds.py} +72 -134
- cognite_toolkit/_cdf_tk/{loaders/_data_loaders.py → cruds/_data_cruds.py} +29 -38
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +98 -0
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +115 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/auth_loaders.py → cruds/_resource_cruds/auth.py} +33 -70
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/classic_loaders.py → cruds/_resource_cruds/classic.py} +86 -122
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +149 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/data_organization_loaders.py → cruds/_resource_cruds/data_organization.py} +17 -50
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/datamodel_loaders.py → cruds/_resource_cruds/datamodel.py} +280 -372
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/extraction_pipeline_loaders.py → cruds/_resource_cruds/extraction_pipeline.py} +70 -89
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +438 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/file_loader.py → cruds/_resource_cruds/file.py} +28 -83
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/function_loaders.py → cruds/_resource_cruds/function.py} +179 -108
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/group_scoped_loader.py → cruds/_resource_cruds/group_scoped.py} +19 -19
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders → cruds/_resource_cruds}/hosted_extractors.py +32 -102
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/industrial_tool_loaders.py → cruds/_resource_cruds/industrial_tool.py} +15 -27
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/location_loaders.py → cruds/_resource_cruds/location.py} +64 -170
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +111 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/raw_loaders.py → cruds/_resource_cruds/raw.py} +21 -26
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/relationship_loader.py → cruds/_resource_cruds/relationship.py} +21 -43
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/robotics_loaders.py → cruds/_resource_cruds/robotics.py} +29 -50
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +94 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/three_d_model_loaders.py → cruds/_resource_cruds/three_d_model.py} +11 -33
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +500 -0
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/transformation_loaders.py → cruds/_resource_cruds/transformation.py} +155 -144
- cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/workflow_loaders.py → cruds/_resource_cruds/workflow.py} +116 -203
- cognite_toolkit/_cdf_tk/{loaders → cruds}/_worker.py +85 -78
- cognite_toolkit/_cdf_tk/data_classes/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/data_classes/_base.py +8 -4
- cognite_toolkit/_cdf_tk/data_classes/_build_files.py +3 -3
- cognite_toolkit/_cdf_tk/data_classes/_build_variables.py +133 -23
- cognite_toolkit/_cdf_tk/data_classes/_built_modules.py +23 -9
- cognite_toolkit/_cdf_tk/data_classes/_built_resources.py +24 -21
- cognite_toolkit/_cdf_tk/data_classes/_config_yaml.py +34 -26
- cognite_toolkit/_cdf_tk/data_classes/_deploy_results.py +26 -7
- cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +37 -18
- cognite_toolkit/_cdf_tk/data_classes/_module_resources.py +12 -10
- cognite_toolkit/_cdf_tk/data_classes/_module_toml.py +12 -10
- cognite_toolkit/_cdf_tk/data_classes/_packages.py +48 -24
- cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +43 -0
- cognite_toolkit/_cdf_tk/exceptions.py +32 -3
- cognite_toolkit/_cdf_tk/feature_flags.py +59 -46
- cognite_toolkit/_cdf_tk/hints.py +5 -5
- cognite_toolkit/_cdf_tk/plugins.py +2 -3
- cognite_toolkit/_cdf_tk/protocols.py +97 -0
- cognite_toolkit/_cdf_tk/resource_classes/__init__.py +63 -0
- cognite_toolkit/_cdf_tk/resource_classes/agent.py +58 -0
- cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py +101 -0
- cognite_toolkit/_cdf_tk/resource_classes/authentication.py +15 -0
- cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +30 -1
- cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py +51 -0
- cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py +326 -0
- cognite_toolkit/_cdf_tk/resource_classes/containers.py +92 -0
- cognite_toolkit/_cdf_tk/resource_classes/data_model.py +51 -0
- cognite_toolkit/_cdf_tk/resource_classes/datapoint_subscription.py +77 -0
- cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline.py +54 -0
- cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline_config.py +15 -0
- cognite_toolkit/_cdf_tk/resource_classes/function_schedule.py +3 -7
- cognite_toolkit/_cdf_tk/resource_classes/functions.py +12 -1
- cognite_toolkit/_cdf_tk/resource_classes/graphql_model.py +50 -0
- cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py +19 -0
- cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py +255 -0
- cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py +117 -0
- cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py +390 -0
- cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py +109 -0
- cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py +94 -0
- cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py +100 -0
- cognite_toolkit/_cdf_tk/resource_classes/instance.py +93 -0
- cognite_toolkit/_cdf_tk/resource_classes/location.py +1 -1
- cognite_toolkit/_cdf_tk/resource_classes/migration.py +28 -0
- cognite_toolkit/_cdf_tk/resource_classes/raw_database_table.py +6 -2
- cognite_toolkit/_cdf_tk/resource_classes/relationship.py +50 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/__init__.py +13 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/capability.py +19 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py +15 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py +25 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py +12 -0
- cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py +16 -0
- cognite_toolkit/_cdf_tk/resource_classes/search_config.py +30 -0
- cognite_toolkit/_cdf_tk/resource_classes/sequence.py +107 -0
- cognite_toolkit/_cdf_tk/resource_classes/space.py +4 -4
- cognite_toolkit/_cdf_tk/resource_classes/streamlit_.py +26 -0
- cognite_toolkit/_cdf_tk/resource_classes/streams.py +29 -0
- cognite_toolkit/_cdf_tk/resource_classes/transformation_destination.py +1 -1
- cognite_toolkit/_cdf_tk/resource_classes/transformation_notification.py +8 -0
- cognite_toolkit/_cdf_tk/resource_classes/transformations.py +2 -13
- cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py +207 -0
- cognite_toolkit/_cdf_tk/resource_classes/views.py +93 -0
- cognite_toolkit/_cdf_tk/resource_classes/workflow.py +15 -0
- cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py +115 -0
- cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +233 -0
- cognite_toolkit/_cdf_tk/storageio/__init__.py +69 -0
- cognite_toolkit/_cdf_tk/storageio/_annotations.py +105 -0
- cognite_toolkit/_cdf_tk/storageio/_applications.py +408 -0
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +693 -0
- cognite_toolkit/_cdf_tk/storageio/_base.py +328 -0
- cognite_toolkit/_cdf_tk/storageio/_data_classes.py +91 -0
- cognite_toolkit/_cdf_tk/storageio/_datapoints.py +448 -0
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +436 -0
- cognite_toolkit/_cdf_tk/storageio/_instances.py +225 -0
- cognite_toolkit/_cdf_tk/storageio/_raw.py +124 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +133 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py +60 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_base.py +80 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py +22 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py +45 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +89 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +164 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py +162 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py +24 -0
- 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/base.py +1 -3
- cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +8 -6
- cognite_toolkit/_cdf_tk/tk_warnings/other.py +18 -3
- cognite_toolkit/_cdf_tk/tracker.py +21 -24
- cognite_toolkit/_cdf_tk/utils/__init__.py +4 -6
- cognite_toolkit/_cdf_tk/utils/_auxiliary.py +36 -0
- cognite_toolkit/_cdf_tk/utils/aggregators.py +424 -0
- cognite_toolkit/_cdf_tk/utils/auth.py +4 -2
- cognite_toolkit/_cdf_tk/utils/auxiliary.py +23 -0
- cognite_toolkit/_cdf_tk/utils/cdf.py +191 -21
- cognite_toolkit/_cdf_tk/utils/cli_args.py +34 -0
- cognite_toolkit/_cdf_tk/utils/collection.py +53 -2
- cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +593 -0
- cognite_toolkit/_cdf_tk/utils/file.py +55 -2
- cognite_toolkit/_cdf_tk/utils/fileio/__init__.py +61 -0
- cognite_toolkit/_cdf_tk/utils/fileio/_base.py +32 -0
- cognite_toolkit/_cdf_tk/utils/fileio/_compression.py +61 -0
- cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +422 -0
- cognite_toolkit/_cdf_tk/utils/fileio/_writers.py +429 -0
- cognite_toolkit/_cdf_tk/utils/graphql_parser.py +7 -2
- cognite_toolkit/_cdf_tk/utils/hashing.py +3 -9
- cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +69 -0
- cognite_toolkit/_cdf_tk/utils/http_client/_client.py +536 -0
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py +412 -0
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +249 -0
- cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +4 -0
- cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py +34 -0
- cognite_toolkit/_cdf_tk/utils/interactive_select.py +819 -102
- cognite_toolkit/_cdf_tk/utils/modules.py +10 -14
- cognite_toolkit/_cdf_tk/utils/producer_worker.py +280 -63
- cognite_toolkit/_cdf_tk/utils/progress_tracker.py +87 -0
- cognite_toolkit/_cdf_tk/utils/sentry_utils.py +3 -3
- cognite_toolkit/_cdf_tk/utils/sql_parser.py +160 -0
- cognite_toolkit/_cdf_tk/utils/text.py +115 -0
- cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py +99 -0
- cognite_toolkit/_cdf_tk/utils/useful_types.py +31 -0
- cognite_toolkit/_cdf_tk/utils/validate_access.py +468 -0
- cognite_toolkit/_cdf_tk/validation.py +172 -80
- cognite_toolkit/_repo_files/.gitignore +2 -0
- cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml +1 -1
- cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml +1 -1
- 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 +18 -0
- cognite_toolkit/_version.py +1 -1
- cognite_toolkit/config.dev.yaml +13 -0
- cognite_toolkit/demo/_base.py +4 -4
- {cognite_toolkit-0.5.44.dist-info → cognite_toolkit-0.7.34.dist-info}/METADATA +25 -21
- cognite_toolkit-0.7.34.dist-info/RECORD +320 -0
- cognite_toolkit-0.7.34.dist-info/WHEEL +4 -0
- {cognite_toolkit-0.5.44.dist-info → cognite_toolkit-0.7.34.dist-info}/entry_points.txt +1 -0
- cognite_toolkit/_builtin_modules/README.md +0 -7
- cognite_toolkit/_builtin_modules/bootcamp/README.md +0 -5
- cognite_toolkit/_builtin_modules/bootcamp/default.config.yaml +0 -3
- cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/default.config.yaml +0 -9
- cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/handler.py +0 -168
- cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/ice_cream_factory_api.py +0 -61
- cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/requirements.txt +0 -3
- cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/module.toml +0 -8
- cognite_toolkit/_builtin_modules/bootcamp/module.toml +0 -8
- cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/default.config.yaml +0 -6
- cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/functions/oee_timeseries/handler.py +0 -229
- cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/functions/oee_timeseries/requirements.txt +0 -2
- cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/module.toml +0 -8
- cognite_toolkit/_builtin_modules/cdf.toml +0 -13
- cognite_toolkit/_builtin_modules/cdf_common/data_models/demo.Space.yaml +0 -3
- cognite_toolkit/_builtin_modules/cdf_common/data_sets/demo.DataSet.yaml +0 -3
- cognite_toolkit/_builtin_modules/cdf_common/default.config.yaml +0 -8
- cognite_toolkit/_builtin_modules/cdf_common/extraction_pipelines/ctx_files_direct_relation_write.ExtractionPipeline.yaml +0 -54
- cognite_toolkit/_builtin_modules/cdf_common/extraction_pipelines/ctx_files_direct_relation_write.config.yaml +0 -28
- cognite_toolkit/_builtin_modules/cdf_common/functions/contextualization_connection_writer/handler.py +0 -342
- cognite_toolkit/_builtin_modules/cdf_common/functions/contextualization_connection_writer/requirements.txt +0 -3
- cognite_toolkit/_builtin_modules/cdf_common/functions/write.Function.yaml +0 -7
- cognite_toolkit/_builtin_modules/cdf_common/module.toml +0 -7
- cognite_toolkit/_builtin_modules/cdf_common/raw/contextualization_state.DataBase.yaml +0 -1
- cognite_toolkit/_builtin_modules/cdf_common/raw/contextualization_state.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/cdf_common/raw/source.DataBase.yaml +0 -1
- cognite_toolkit/_builtin_modules/cdf_ingestion/auth/user.Group.yaml +0 -124
- cognite_toolkit/_builtin_modules/cdf_ingestion/auth/workflow.Group.yaml +0 -114
- cognite_toolkit/_builtin_modules/cdf_ingestion/default.config.yaml +0 -34
- cognite_toolkit/_builtin_modules/cdf_ingestion/module.toml +0 -14
- cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/ingest.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/v1.WorkflowVersion.yaml +0 -150
- cognite_toolkit/_builtin_modules/common/README.md +0 -5
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/apm.datamodel.yaml +0 -18
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/apm_config.datamodel.yaml +0 -10
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/config.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Activity.container.yaml +0 -108
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Notification.container.yaml +0 -85
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Operation.container.yaml +0 -83
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/ApmConfig.container.yaml +0 -39
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/source.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Activity.view.yaml +0 -119
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Notification.view.yaml +0 -84
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Operation.view.yaml +0 -86
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/ApmConfig.view.yaml +0 -48
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/default.config.yaml +0 -1
- cognite_toolkit/_builtin_modules/common/cdf_apm_base/module.toml +0 -9
- cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/README.md +0 -23
- cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/auth/admin.readonly.group.yaml +0 -260
- cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/auth/admin.readwrite.group.yaml +0 -323
- cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/module.toml +0 -7
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/default.config.yaml +0 -10
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/module.toml +0 -19
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_asset.Transformation.sql +0 -31
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_asset.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_equipment.Transformation.sql +0 -31
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_equipment.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_timeseries.Transformation.sql +0 -34
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_timeseries.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_asset.Transformation.sql +0 -32
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_asset.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_equipment.Transformation.sql +0 -32
- cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_equipment.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/auth/workflow.Group.yaml +0 -83
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/data_models/annotation_type.Node.yaml +0 -2
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/data_models/sourceSystem.node.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/default.config.yaml +0 -16
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/extraction_pipelines/ctx_files_entity_matcher.ExtractionPipeline.yaml +0 -48
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/extraction_pipelines/ctx_files_entity_matcher.config.yaml +0 -35
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/contextualization_entity_matcher/handler.py +0 -476
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/contextualization_entity_matcher/requirements.txt +0 -3
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/functions.Function.yaml +0 -7
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/module.toml +0 -28
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/raw/state.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/entity_matching.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/v1.WorkflowVersion.yaml +0 -22
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/auth/function.Group.yaml +0 -89
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/data_models/sourceSystem.node.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/default.config.yaml +0 -13
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/extraction_pipelines/ctx_files_pandid_annotater.ExtractionPipeline.yaml +0 -44
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/extraction_pipelines/ctx_files_pandid_annotater.config.yaml +0 -33
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/contextualization_p_and_id_annotater/handler.py +0 -405
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/contextualization_p_and_id_annotater/requirements.txt +0 -3
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/functions.Function.yaml +0 -7
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/module.toml +0 -31
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/p_and_id_parser.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/v1.WorkflowVersion.yaml +0 -22
- cognite_toolkit/_builtin_modules/custom/my_module/auth/.gitkeep +0 -0
- cognite_toolkit/_builtin_modules/custom/my_module/default.config.yaml +0 -1
- cognite_toolkit/_builtin_modules/custom/my_module/module.toml +0 -7
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/classic/root.Asset.yaml +0 -9
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/data_sets/data_sets.DataSet.yaml +0 -3
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/default.config.yaml +0 -4
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/locations/individualFilters.LocationFilter.yaml +0 -19
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/locations/oneFilter.LocationFilter.yaml +0 -12
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/module.toml +0 -7
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/data_models/instance.Space.yaml +0 -2
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/locations/dataModel.LocationFilter.yaml +0 -17
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/module.toml +0 -7
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/auth/locationfilter.Group.yaml +0 -12
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/default.config.yaml +0 -3
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/locations/user.LocationFilter.yaml +0 -9
- cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/module.toml +0 -11
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/README.md +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/auth/applications-configuration.Group.yaml +0 -22
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/data_models/infieldAppData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/data_models/infield_apm_app_config.node.yaml +0 -28
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/infield/cdf_infield_common/module.toml +0 -11
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/README.md +0 -61
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_checklist_admin_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_normal_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_template_admin_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_viewer_role.group.yaml +0 -85
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_models/infieldLocationAppData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_models/infieldLocationSourceData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_sets/location_app_data_set.DataSet.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_sets/location_source_data_set.DataSet.yaml +0 -20
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/default.config.yaml +0 -23
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/module.toml +0 -8
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.sql +0 -34
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.yaml +0 -24
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.schedule.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.sql +0 -17
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.yaml +0 -25
- cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.schedule.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/README.md +0 -61
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_checklist_admin_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_normal_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_template_admin_role.group.yaml +0 -100
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_viewer_role.group.yaml +0 -85
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_models/infieldLocationAppData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_models/infieldLocationSourceData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_sets/location_app_data_set.DataSet.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_sets/location_source_data_set.DataSet.yaml +0 -20
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/default.config.yaml +0 -23
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/module.toml +0 -8
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.sql +0 -34
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.yaml +0 -24
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.schedule.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.sql +0 -17
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.yaml +0 -25
- cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.schedule.yaml +0 -3
- cognite_toolkit/_builtin_modules/infield/default.config.yaml +0 -21
- cognite_toolkit/_builtin_modules/inrobot/README.md +0 -41
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/README.md +0 -53
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/auth/run-function-user.Group.yaml +0 -89
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/classic/robot.Label.yaml +0 -6
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_models/cogniteAppData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_models/inrobotApmConfig.node.yaml +0 -17
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_sets/robot_1.dataset.yaml +0 -2
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/default.config.yaml +0 -3
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/.gitkeep +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/README.md +0 -30
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/__init__.py +0 -1
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/README.md +0 -58
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/apm_helpers.py +0 -269
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/cdf_helpers.py +0 -112
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/common.py +0 -16
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/vision.py +0 -66
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/utils.py +0 -17
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/handler.py +0 -269
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/requirements.txt +0 -22
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/README.md +0 -56
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/__init__.py +0 -1
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/README.md +0 -58
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/apm_helpers.py +0 -269
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/cdf_helpers.py +0 -112
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/common.py +0 -16
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/vision.py +0 -66
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/utils.py +0 -17
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/handler.py +0 -396
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/requirements.txt +0 -22
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/README.md +0 -18
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/__init__.py +0 -1
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/README.md +0 -58
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/apm_helpers.py +0 -269
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/cdf_helpers.py +0 -112
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/__init__.py +0 -0
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/common.py +0 -16
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/vision.py +0 -66
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/utils.py +0 -17
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/handler.py +0 -195
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/requirements.txt +0 -23
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/README.md +0 -14
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/__init__.py +0 -1
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/cognite_threesixty_images.py +0 -284
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/handler.py +0 -257
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/requirements.txt +0 -7
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/robots.functions.Function.yaml +0 -51
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/schedules.Schedule.yaml +0 -94
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/module.toml +0 -11
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/acoustic_video.RobotCapability.yaml +0 -72
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/process_threesixty.DataPostProcessing.yaml +0 -23
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/pt_ir_video.RobotCapability.yaml +0 -64
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz.RobotCapability.yaml +0 -63
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz_ir.RobotCapability.yaml +0 -80
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz_video.RobotCapability.yaml +0 -68
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_dial_gauge.DataPostProcessing.yaml +0 -31
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_digital_gauge.DataPostProcessing.yaml +0 -35
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_level_gauge.DataPostProcessing.yaml +0 -29
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_valve.DataPostProcessing.yaml +0 -23
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/threesixty.RobotCapability.yaml +0 -47
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/threesixty_video.RobotCapability.yaml +0 -47
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/README.md +0 -33
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/inrobot-admin.Group.yaml +0 -107
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/inrobot-users.Group.yaml +0 -94
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/robot-1.Group.yaml +0 -77
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/data_models/locationAppData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/data_models/locationSourceData.space.yaml +0 -3
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/default.config.yaml +0 -7
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/module.toml +0 -8
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Frame.yaml +0 -15
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Location.yaml +0 -3
- cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Map.yaml +0 -10
- cognite_toolkit/_builtin_modules/inrobot/default.config.yaml +0 -3
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Activity.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Asset.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Equipment.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/File.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/TimeSeries.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/enterprise.datamodel.yaml +0 -54
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/schema.space.yaml +0 -1
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Activity.view.yaml +0 -69
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Asset.view.yaml +0 -186
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Equipment.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/File.view.yaml +0 -72
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/TimeSeries.view.yaml +0 -85
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/module.toml +0 -7
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360Image.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageAnnotation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageCollection.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageStation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DObject.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DTransformation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Activity.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Annotation.Container.yaml +0 -14
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Asset.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/AssetClass.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/AssetType.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADNode.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CubeMap.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Describable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/DiagramAnnotation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Equipment.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/EquipmentType.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/File.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/FileCategory.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudVolume.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Schedulable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/SourceSystem.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Sourceable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/TimeSeries.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Unit.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Visualizable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/enterprise.datamodel.yaml +0 -138
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/schema.space.yaml +0 -1
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360Image.view.yaml +0 -119
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageAnnotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageCollection.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageStation.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DModel.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DObject.view.yaml +0 -81
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DRevision.view.yaml +0 -30
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DTransformation.view.yaml +0 -23
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Activity.view.yaml +0 -69
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Annotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Asset.view.yaml +0 -191
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/AssetClass.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/AssetType.view.yaml +0 -31
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADNode.view.yaml +0 -53
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADRevision.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CubeMap.view.yaml +0 -97
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Describable.view.yaml +0 -19
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/DiagramAnnotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Equipment.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/EquipmentType.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/File.view.yaml +0 -72
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/FileCategory.view.yaml +0 -18
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudRevision.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudVolume.view.yaml +0 -52
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Schedulable.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/SourceSystem.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Sourceable.view.yaml +0 -27
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/TimeSeries.view.yaml +0 -85
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Unit.view.yaml +0 -16
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Visualizable.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/module.toml +0 -7
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Activity.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Asset.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Equipment.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/File.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/MaintenanceOrder.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Notification.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Operation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/TimeSeries.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/enterprise.datamodel.yaml +0 -66
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/schema.space.yaml +0 -1
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Activity.view.yaml +0 -69
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Asset.view.yaml +0 -186
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Equipment.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/File.view.yaml +0 -72
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/MaintenanceOrder.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Notification.view.yaml +0 -56
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Operation.view.yaml +0 -96
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/TimeSeries.view.yaml +0 -85
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/default.config.yaml +0 -3
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/module.toml +0 -8
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360Image.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageAnnotation.Container.yaml +0 -14
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageCollection.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageStation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DObject.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DTransformation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Activity.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Annotation.Container.yaml +0 -14
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Asset.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/AssetClass.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/AssetType.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADNode.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CubeMap.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Describable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/DiagramAnnotation.Container.yaml +0 -14
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Equipment.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/EquipmentType.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/File.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/FileCategory.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/MaintenanceOrder.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Notification.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Operation.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudModel.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudRevision.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudVolume.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Schedulable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/SourceSystem.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Sourceable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/TimeSeries.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Unit.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Visualizable.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/enterprise.datamodel.yaml +0 -150
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/schema.space.yaml +0 -1
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360Image.view.yaml +0 -119
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageAnnotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageCollection.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageStation.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DModel.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DObject.view.yaml +0 -81
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DRevision.view.yaml +0 -30
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DTransformation.view.yaml +0 -23
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Activity.view.yaml +0 -69
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Annotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Asset.view.yaml +0 -191
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/AssetClass.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/AssetType.view.yaml +0 -31
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADNode.view.yaml +0 -53
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADRevision.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CubeMap.view.yaml +0 -97
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Describable.view.yaml +0 -19
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/DiagramAnnotation.view.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Equipment.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/EquipmentType.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/File.view.yaml +0 -72
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/FileCategory.view.yaml +0 -18
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/MaintenanceOrder.view.yaml +0 -100
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Notification.view.yaml +0 -56
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Operation.view.yaml +0 -96
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudModel.view.yaml +0 -55
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudRevision.view.yaml +0 -39
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudVolume.view.yaml +0 -52
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Schedulable.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/SourceSystem.view.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Sourceable.view.yaml +0 -27
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/TimeSeries.view.yaml +0 -85
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Unit.view.yaml +0 -16
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Visualizable.view.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/default.config.yaml +0 -2
- cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/module.toml +0 -7
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Cdf3dRevisionProperties.Container.yaml +0 -13
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_EnvironmentMap.Container.yaml +0 -12
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Image360CollectionProperties.Container.yaml +0 -23
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Image360CollectionScene.Container.yaml +0 -12
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_SceneConfiguration.Container.yaml +0 -152
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_TexturedMap.Container.yaml +0 -21
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_TexturedPlane.Container.yaml +0 -29
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/scene.Space.yaml +0 -3
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/scene_data_model.DataModel.yaml +0 -66
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/EnvironmentMap.View.yaml +0 -28
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/Image360CollectionProperties.View.yaml +0 -22
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/Image360CollectionScene.View.yaml +0 -20
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/RevisionProperties.View.yaml +0 -16
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/SceneConfiguration.View.yaml +0 -166
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/TexturedMap.View.yaml +0 -17
- cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/TexturedPlane.View.yaml +0 -40
- cognite_toolkit/_builtin_modules/models/cdf_scene/default.config.yaml +0 -1
- cognite_toolkit/_builtin_modules/models/cdf_scene/module.toml +0 -5
- cognite_toolkit/_builtin_modules/package.toml +0 -41
- cognite_toolkit/_builtin_modules/sourcesystem/README.md +0 -4
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/auth/workflow.Group.yaml +0 -53
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/default.config.yaml +0 -13
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/extraction_pipelines/extractor.Config.yaml +0 -5
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/extraction_pipelines/extractor.ExtractionPipeline.yaml +0 -12
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/module.toml +0 -30
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/raw/timeseries.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/transformations/population/timeseries.Transformation.sql +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/transformations/population/timeseries.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/population.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/v1.WorkflowVersion.yaml +0 -12
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/auth/workflow.Group.yaml +0 -54
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/default.config.yaml +0 -16
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/module.toml +0 -30
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/raw/dump.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/connection/equipment_to_asset.Transformation.sql +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/connection/equipment_to_asset.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/asset.Transformation.sql +0 -35
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/asset.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/equipment.Transformation.sql +0 -17
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/equipment.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/population.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/v1.WorkflowVersion.yaml +0 -28
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/auth/workflow.Group.yaml +0 -46
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/default.config.yaml +0 -15
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/module.toml +0 -26
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workitem.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workorder.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workpackage.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/worktask.Table.yaml +0 -3
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/connection/operation_to_maintenance_order.Transformation.sql +0 -32
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/connection/operation_to_maintenance_order.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/maintenanceOrder.Transformation.sql +0 -18
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/maintenanceOrder.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/operation.Transformation.sql +0 -18
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/operation.Transformation.yaml +0 -14
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/population.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/v1.WorkflowVersion.yaml +0 -28
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/auth/workflow.Group.yaml +0 -47
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/default.config.yaml +0 -13
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/files/upload.CogniteFile.yaml +0 -4
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/module.toml +0 -32
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/raw/files.Table.yaml +0 -2
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/transformations/population/files.Transformation.sql +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/transformations/population/files.Transformation.yaml +0 -13
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/population.Workflow.yaml +0 -3
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/trigger.WorkflowTrigger.yaml +0 -9
- cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/v1.WorkflowVersion.yaml +0 -11
- cognite_toolkit/_cdf_tk/_parameters/__init__.py +0 -18
- cognite_toolkit/_cdf_tk/_parameters/constants.py +0 -82
- cognite_toolkit/_cdf_tk/_parameters/data_classes.py +0 -197
- cognite_toolkit/_cdf_tk/_parameters/functions.py +0 -192
- cognite_toolkit/_cdf_tk/_parameters/get_type_hints.py +0 -125
- cognite_toolkit/_cdf_tk/_parameters/type_hint.py +0 -118
- cognite_toolkit/_cdf_tk/apps/_populate_app.py +0 -80
- cognite_toolkit/_cdf_tk/client/api/agents/agents.py +0 -107
- cognite_toolkit/_cdf_tk/client/api/agents/api.py +0 -12
- cognite_toolkit/_cdf_tk/client/api/statistics.py +0 -72
- cognite_toolkit/_cdf_tk/client/data_classes/agent_tools.py +0 -92
- cognite_toolkit/_cdf_tk/client/data_classes/agents.py +0 -135
- cognite_toolkit/_cdf_tk/client/data_classes/statistics.py +0 -130
- cognite_toolkit/_cdf_tk/commands/_populate.py +0 -306
- cognite_toolkit/_cdf_tk/commands/dump_data.py +0 -487
- cognite_toolkit/_cdf_tk/commands/featureflag.py +0 -29
- cognite_toolkit/_cdf_tk/loaders/__init__.py +0 -204
- cognite_toolkit/_cdf_tk/loaders/_resource_loaders/__init__.py +0 -90
- cognite_toolkit/_cdf_tk/loaders/_resource_loaders/agent_loaders.py +0 -89
- cognite_toolkit/_cdf_tk/loaders/_resource_loaders/fieldops_loaders.py +0 -260
- cognite_toolkit/_cdf_tk/loaders/_resource_loaders/timeseries_loaders.py +0 -356
- cognite_toolkit/_cdf_tk/prototypes/_packages/__init__.py +0 -1
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/manifest.yaml +0 -4
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/auth/reference.Group.yaml +0 -375
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/auth/reference.SecurityCategory.yaml +0 -1
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_models/reference.DataModel.yaml +0 -19
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_models/reference.View.yaml +0 -8
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_sets/reference.DataSet.yaml +0 -8
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/extraction_pipelines/reference.ExtractionPipeline.yaml +0 -27
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/extraction_pipelines/reference.ExtractionPipelineConfig.yaml +0 -3
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/functions/reference.Function.yaml +0 -22
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/functions/reference.FunctionSchedule.yaml +0 -6
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/labels/reference.LabelDefinition.yaml +0 -4
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/timeseries/reference.DataPointSubscription.yaml +0 -7
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.Transformation.yaml +0 -51
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.TransformationNotification.yaml +0 -3
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.TransformationSchedule.yaml +0 -4
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/workflows/reference.WorkflowUpsert.yaml +0 -2
- cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/workflows/reference.WorkflowVersionUpsert.yaml +0 -10
- cognite_toolkit/_cdf_tk/prototypes/_packages/update_references.py +0 -339
- cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py +0 -0
- cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -41
- cognite_toolkit/_cdf_tk/utils/table_writers.py +0 -433
- cognite_toolkit/_cdf_tk/utils/tarjan.py +0 -46
- cognite_toolkit-0.5.44.dist-info/RECORD +0 -695
- cognite_toolkit-0.5.44.dist-info/WHEEL +0 -4
- cognite_toolkit-0.5.44.dist-info/licenses/LICENSE +0 -18
- /cognite_toolkit/{_builtin_modules → _cdf_tk/commands/build_v2}/__init__.py +0 -0
|
@@ -11,14 +11,13 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
|
|
16
16
|
import re
|
|
17
17
|
import sys
|
|
18
18
|
import time
|
|
19
19
|
from collections import defaultdict
|
|
20
20
|
from collections.abc import Hashable, Iterable, Sequence
|
|
21
|
-
from functools import lru_cache
|
|
22
21
|
from graphlib import CycleError, TopologicalSorter
|
|
23
22
|
from pathlib import Path
|
|
24
23
|
from time import sleep
|
|
@@ -35,29 +34,26 @@ from cognite.client.data_classes.capabilities import (
|
|
|
35
34
|
from cognite.client.data_classes.data_modeling import (
|
|
36
35
|
Container,
|
|
37
36
|
ContainerApply,
|
|
38
|
-
ContainerApplyList,
|
|
39
37
|
ContainerList,
|
|
40
38
|
DataModel,
|
|
41
39
|
DataModelApply,
|
|
42
|
-
DataModelApplyList,
|
|
43
40
|
DataModelList,
|
|
41
|
+
DirectRelation,
|
|
44
42
|
Edge,
|
|
45
43
|
EdgeApply,
|
|
46
|
-
EdgeApplyList,
|
|
47
44
|
EdgeApplyResultList,
|
|
48
45
|
EdgeList,
|
|
46
|
+
MappedProperty,
|
|
49
47
|
Node,
|
|
50
48
|
NodeApply,
|
|
51
|
-
NodeApplyList,
|
|
52
49
|
NodeApplyResultList,
|
|
53
50
|
NodeList,
|
|
51
|
+
RequiresConstraint,
|
|
54
52
|
Space,
|
|
55
53
|
SpaceApply,
|
|
56
|
-
SpaceApplyList,
|
|
57
54
|
SpaceList,
|
|
58
55
|
View,
|
|
59
56
|
ViewApply,
|
|
60
|
-
ViewApplyList,
|
|
61
57
|
ViewList,
|
|
62
58
|
)
|
|
63
59
|
from cognite.client.data_classes.data_modeling.graphql import DMLApplyResult
|
|
@@ -68,7 +64,6 @@ from cognite.client.data_classes.data_modeling.ids import (
|
|
|
68
64
|
NodeId,
|
|
69
65
|
ViewId,
|
|
70
66
|
)
|
|
71
|
-
from cognite.client.data_classes.data_modeling.views import ReverseDirectRelationApply
|
|
72
67
|
from cognite.client.exceptions import CogniteAPIError
|
|
73
68
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
74
69
|
from rich import print
|
|
@@ -76,49 +71,54 @@ from rich.console import Console
|
|
|
76
71
|
from rich.markup import escape
|
|
77
72
|
from rich.panel import Panel
|
|
78
73
|
|
|
79
|
-
from cognite_toolkit._cdf_tk
|
|
74
|
+
from cognite_toolkit._cdf_tk import constants
|
|
80
75
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
81
76
|
from cognite_toolkit._cdf_tk.client.data_classes.graphql_data_models import (
|
|
82
77
|
GraphQLDataModel,
|
|
83
78
|
GraphQLDataModelList,
|
|
84
79
|
GraphQLDataModelWrite,
|
|
85
|
-
GraphQLDataModelWriteList,
|
|
86
80
|
)
|
|
87
81
|
from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING, HAS_DATA_FILTER_LIMIT
|
|
82
|
+
from cognite_toolkit._cdf_tk.cruds._base_cruds import (
|
|
83
|
+
ResourceContainerCRUD,
|
|
84
|
+
ResourceCRUD,
|
|
85
|
+
)
|
|
88
86
|
from cognite_toolkit._cdf_tk.exceptions import GraphQLParseError, ToolkitCycleError, ToolkitFileNotFoundError
|
|
89
|
-
from cognite_toolkit._cdf_tk.
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
from cognite_toolkit._cdf_tk.resource_classes import (
|
|
88
|
+
ContainerYAML,
|
|
89
|
+
DataModelYAML,
|
|
90
|
+
EdgeYAML,
|
|
91
|
+
GraphQLDataModelYAML,
|
|
92
|
+
NodeYAML,
|
|
93
|
+
SpaceYAML,
|
|
94
|
+
ViewYAML,
|
|
92
95
|
)
|
|
93
96
|
from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning, LowSeverityWarning, MediumSeverityWarning
|
|
94
97
|
from cognite_toolkit._cdf_tk.utils import (
|
|
95
98
|
GraphQLParser,
|
|
96
|
-
|
|
99
|
+
calculate_hash,
|
|
97
100
|
in_dict,
|
|
98
101
|
load_yaml_inject_variables,
|
|
99
102
|
quote_int_value_by_key_in_yaml,
|
|
100
103
|
safe_read,
|
|
104
|
+
sanitize_filename,
|
|
101
105
|
to_diff,
|
|
102
|
-
to_directory_compatible,
|
|
103
106
|
)
|
|
104
107
|
from cognite_toolkit._cdf_tk.utils.cdf import iterate_instances
|
|
105
108
|
from cognite_toolkit._cdf_tk.utils.diff_list import diff_list_identifiable, dm_identifier
|
|
106
|
-
from cognite_toolkit._cdf_tk.utils.tarjan import tarjan
|
|
107
109
|
|
|
108
|
-
from .
|
|
110
|
+
from .auth import GroupAllScopedCRUD
|
|
109
111
|
|
|
110
112
|
|
|
111
113
|
@final
|
|
112
|
-
class
|
|
114
|
+
class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space]):
|
|
113
115
|
item_name = "nodes and edges"
|
|
114
|
-
folder_name = "
|
|
115
|
-
filename_pattern = r"^.*space$"
|
|
116
|
+
folder_name = "data_modeling"
|
|
116
117
|
resource_cls = Space
|
|
117
118
|
resource_write_cls = SpaceApply
|
|
118
|
-
list_write_cls = SpaceApplyList
|
|
119
|
-
list_cls = SpaceList
|
|
120
119
|
kind = "Space"
|
|
121
|
-
|
|
120
|
+
yaml_cls = SpaceYAML
|
|
121
|
+
dependencies = frozenset({GroupAllScopedCRUD})
|
|
122
122
|
_doc_url = "Spaces/operation/ApplySpaces"
|
|
123
123
|
delete_recreate_limit_seconds: int = 10
|
|
124
124
|
|
|
@@ -240,19 +240,26 @@ class SpaceLoader(ResourceContainerLoader[str, SpaceApply, Space, SpaceApplyList
|
|
|
240
240
|
yield instances.as_ids()
|
|
241
241
|
|
|
242
242
|
|
|
243
|
-
class
|
|
244
|
-
ResourceContainerLoader[ContainerId, ContainerApply, Container, ContainerApplyList, ContainerList]
|
|
245
|
-
):
|
|
243
|
+
class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container]):
|
|
246
244
|
item_name = "nodes and edges"
|
|
247
|
-
folder_name = "
|
|
248
|
-
filename_pattern = r"^.*container$"
|
|
245
|
+
folder_name = "data_modeling"
|
|
249
246
|
resource_cls = Container
|
|
250
247
|
resource_write_cls = ContainerApply
|
|
251
|
-
list_cls = ContainerList
|
|
252
|
-
list_write_cls = ContainerApplyList
|
|
253
248
|
kind = "Container"
|
|
254
|
-
dependencies = frozenset({
|
|
249
|
+
dependencies = frozenset({SpaceCRUD})
|
|
250
|
+
yaml_cls = ContainerYAML
|
|
255
251
|
_doc_url = "Containers/operation/ApplyContainers"
|
|
252
|
+
sub_folder_name = "containers"
|
|
253
|
+
|
|
254
|
+
def __init__(
|
|
255
|
+
self,
|
|
256
|
+
client: ToolkitClient,
|
|
257
|
+
build_dir: Path | None,
|
|
258
|
+
console: Console | None = None,
|
|
259
|
+
topological_sort_implements: bool = False,
|
|
260
|
+
) -> None:
|
|
261
|
+
super().__init__(client, build_dir, console)
|
|
262
|
+
self._container_by_id: dict[ContainerId, Container] = {}
|
|
256
263
|
|
|
257
264
|
@property
|
|
258
265
|
def display_name(self) -> str:
|
|
@@ -273,7 +280,7 @@ class ContainerLoader(
|
|
|
273
280
|
else DataModelsAcl.Scope.All()
|
|
274
281
|
)
|
|
275
282
|
|
|
276
|
-
return DataModelsAcl(actions, scope)
|
|
283
|
+
return DataModelsAcl(actions, scope)
|
|
277
284
|
|
|
278
285
|
@classmethod
|
|
279
286
|
def get_id(cls, item: ContainerApply | Container | dict) -> ContainerId:
|
|
@@ -289,9 +296,9 @@ class ContainerLoader(
|
|
|
289
296
|
return id.dump(include_type=False)
|
|
290
297
|
|
|
291
298
|
@classmethod
|
|
292
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
299
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
293
300
|
if "space" in item:
|
|
294
|
-
yield
|
|
301
|
+
yield SpaceCRUD, item["space"]
|
|
295
302
|
# Note that we are very careful in the code below to not raise an exception if the
|
|
296
303
|
# item is not properly formed. If that is the case, an appropriate warning will be given elsewhere.
|
|
297
304
|
for prop in item.get("properties", {}).values():
|
|
@@ -303,12 +310,13 @@ class ContainerLoader(
|
|
|
303
310
|
container = prop_type["container"]
|
|
304
311
|
if "space" in container and "externalId" in container and container.get("type") == "container":
|
|
305
312
|
yield (
|
|
306
|
-
|
|
313
|
+
ContainerCRUD,
|
|
307
314
|
ContainerId(space=container["space"], external_id=container["externalId"]),
|
|
308
315
|
)
|
|
309
316
|
|
|
310
317
|
def dump_resource(self, resource: Container, local: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
311
318
|
dumped = resource.as_write().dump()
|
|
319
|
+
has_local = local is not None
|
|
312
320
|
local = local or {}
|
|
313
321
|
for key in ["constraints", "indexes"]:
|
|
314
322
|
if not dumped.get(key) and key not in local:
|
|
@@ -320,15 +328,16 @@ class ContainerLoader(
|
|
|
320
328
|
continue
|
|
321
329
|
local_prop = local_prop_by_id[prop_id]
|
|
322
330
|
for key, default in [("immutable", False), ("autoIncrement", False), ("nullable", True)]:
|
|
323
|
-
if cdf_prop.get(key) is default and key not in local_prop:
|
|
331
|
+
if has_local and cdf_prop.get(key) is default and key not in local_prop:
|
|
324
332
|
cdf_prop.pop(key, None)
|
|
325
333
|
cdf_type = cdf_prop.get("type", {})
|
|
326
334
|
local_type = local_prop.get("type", {})
|
|
327
335
|
for key, type_default in [("list", False), ("collation", "ucs_basic")]:
|
|
328
|
-
if cdf_type.get(key) == type_default and key not in local_type:
|
|
336
|
+
if has_local and cdf_type.get(key) == type_default and key not in local_type:
|
|
329
337
|
cdf_type.pop(key, None)
|
|
330
|
-
|
|
331
|
-
|
|
338
|
+
if has_local and "usedFor" not in local and dumped.get("usedFor") == "node":
|
|
339
|
+
# Only drop if set to default by server.
|
|
340
|
+
dumped.pop("usedFor", None)
|
|
332
341
|
return dumped
|
|
333
342
|
|
|
334
343
|
def create(self, items: Sequence[ContainerApply]) -> ContainerList:
|
|
@@ -420,78 +429,89 @@ class ContainerLoader(
|
|
|
420
429
|
):
|
|
421
430
|
yield instances.as_ids()
|
|
422
431
|
|
|
432
|
+
def _lookup_containers(self, container_ids: Sequence[ContainerId]) -> dict[ContainerId, Container]:
|
|
433
|
+
ids_to_lookup = [container_id for container_id in container_ids if container_id not in self._container_by_id]
|
|
434
|
+
if ids_to_lookup:
|
|
435
|
+
retrieved_containers = self.client.data_modeling.containers.retrieve(ids_to_lookup)
|
|
436
|
+
for container in retrieved_containers:
|
|
437
|
+
self._container_by_id[container.as_id()] = container
|
|
438
|
+
if missing_container_ids := set(container_ids) - set(self._container_by_id.keys()):
|
|
439
|
+
MediumSeverityWarning(
|
|
440
|
+
f"Containers {missing_container_ids} not found or you don't have permission to access them."
|
|
441
|
+
).print_warning(console=self.console)
|
|
442
|
+
return {
|
|
443
|
+
container_id: self._container_by_id[container_id]
|
|
444
|
+
for container_id in container_ids
|
|
445
|
+
if container_id in self._container_by_id
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
def _find_direct_container_dependencies(
|
|
449
|
+
self, container_ids: Sequence[ContainerId]
|
|
450
|
+
) -> dict[ContainerId, set[ContainerId]]:
|
|
451
|
+
containers_by_id = self._lookup_containers(container_ids)
|
|
452
|
+
container_dependencies: dict[ContainerId, set[ContainerId]] = defaultdict(set)
|
|
453
|
+
for container_id, container in containers_by_id.items():
|
|
454
|
+
for constraint in container.constraints.values():
|
|
455
|
+
if not isinstance(constraint, RequiresConstraint):
|
|
456
|
+
continue
|
|
457
|
+
container_dependencies[container_id].add(constraint.require)
|
|
458
|
+
for property in container.properties.values():
|
|
459
|
+
if not isinstance(property.type, DirectRelation) or property.type.container is None:
|
|
460
|
+
continue
|
|
461
|
+
container_dependencies[container_id].add(property.type.container)
|
|
462
|
+
return container_dependencies
|
|
463
|
+
|
|
464
|
+
def _propagate_indirect_container_dependencies(
|
|
465
|
+
self, container_dependencies_by_id: dict[ContainerId, set[ContainerId]], dependants: Sequence[ContainerId]
|
|
466
|
+
) -> dict[ContainerId, set[ContainerId]]:
|
|
467
|
+
"""Propagate indirect container dependencies using a recursive approach.
|
|
468
|
+
|
|
469
|
+
Args:
|
|
470
|
+
container_dependencies_by_id: Mapping of container IDs to their direct dependencies
|
|
471
|
+
dependants: Chain of dependant containers to propagate dependencies to
|
|
472
|
+
|
|
473
|
+
Returns:
|
|
474
|
+
Updated dictionary mapping each container ID to all its direct and indirect dependencies
|
|
475
|
+
"""
|
|
476
|
+
current_container_id = dependants[0]
|
|
477
|
+
dependencies_to_propagate: set[ContainerId] = set()
|
|
478
|
+
for container_dependency in container_dependencies_by_id[current_container_id]:
|
|
479
|
+
if container_dependency in container_dependencies_by_id:
|
|
480
|
+
# If already processed, propagate its dependencies to current container instead of revisiting it
|
|
481
|
+
dependencies_to_propagate.update(container_dependencies_by_id[container_dependency])
|
|
482
|
+
continue
|
|
483
|
+
self._propagate_indirect_container_dependencies(
|
|
484
|
+
container_dependencies_by_id, [container_dependency, *dependants]
|
|
485
|
+
)
|
|
486
|
+
container_dependencies_by_id[current_container_id].update(dependencies_to_propagate)
|
|
487
|
+
return container_dependencies_by_id
|
|
488
|
+
|
|
489
|
+
def _find_direct_and_indirect_container_dependencies(
|
|
490
|
+
self, container_ids: Sequence[ContainerId]
|
|
491
|
+
) -> dict[ContainerId, set[ContainerId]]:
|
|
492
|
+
container_dependencies_by_id = self._find_direct_container_dependencies(container_ids)
|
|
493
|
+
for container_id in list(container_dependencies_by_id.keys()):
|
|
494
|
+
self._propagate_indirect_container_dependencies(container_dependencies_by_id, [container_id])
|
|
495
|
+
return container_dependencies_by_id
|
|
496
|
+
|
|
423
497
|
@staticmethod
|
|
424
498
|
def _chunker(seq: Sequence, size: int) -> Iterable[Sequence]:
|
|
425
499
|
return (seq[pos : pos + size] for pos in range(0, len(seq), size))
|
|
426
500
|
|
|
427
|
-
@classmethod
|
|
428
|
-
@lru_cache(maxsize=1)
|
|
429
|
-
def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
|
|
430
|
-
output = super().get_write_cls_parameter_spec()
|
|
431
|
-
# In the SDK this is called isList, while in the API it is called list.
|
|
432
|
-
output.discard(
|
|
433
|
-
ParameterSpec(
|
|
434
|
-
("properties", ANY_STR, "type", "isList"), frozenset({"bool"}), is_required=True, _is_nullable=False
|
|
435
|
-
)
|
|
436
|
-
)
|
|
437
|
-
output.add(
|
|
438
|
-
ParameterSpec(
|
|
439
|
-
("properties", ANY_STR, "type", "list"), frozenset({"bool"}), is_required=True, _is_nullable=False
|
|
440
|
-
)
|
|
441
|
-
)
|
|
442
|
-
# The parameters below are used by the SDK to load the correct class, and ase thus not part of the init
|
|
443
|
-
# that the spec is created from, so we need to add them manually.
|
|
444
|
-
output.update(
|
|
445
|
-
ParameterSpecSet(
|
|
446
|
-
{
|
|
447
|
-
ParameterSpec(
|
|
448
|
-
("properties", ANY_STR, "type", "type"),
|
|
449
|
-
frozenset({"str"}),
|
|
450
|
-
is_required=True,
|
|
451
|
-
_is_nullable=False,
|
|
452
|
-
),
|
|
453
|
-
ParameterSpec(
|
|
454
|
-
# direct relations with constraint
|
|
455
|
-
("properties", ANY_STR, "type", "container", "type"),
|
|
456
|
-
frozenset({"str"}),
|
|
457
|
-
is_required=True,
|
|
458
|
-
_is_nullable=False,
|
|
459
|
-
),
|
|
460
|
-
ParameterSpec(
|
|
461
|
-
("constraints", ANY_STR, "constraintType"),
|
|
462
|
-
frozenset({"str"}),
|
|
463
|
-
is_required=True,
|
|
464
|
-
_is_nullable=False,
|
|
465
|
-
),
|
|
466
|
-
ParameterSpec(
|
|
467
|
-
("constraints", ANY_STR, "require", "type"),
|
|
468
|
-
frozenset({"str"}),
|
|
469
|
-
is_required=True,
|
|
470
|
-
_is_nullable=False,
|
|
471
|
-
),
|
|
472
|
-
ParameterSpec(
|
|
473
|
-
("indexes", ANY_STR, "indexType"), frozenset({"str"}), is_required=True, _is_nullable=False
|
|
474
|
-
),
|
|
475
|
-
}
|
|
476
|
-
)
|
|
477
|
-
)
|
|
478
|
-
return output
|
|
479
|
-
|
|
480
501
|
@classmethod
|
|
481
502
|
def as_str(cls, id: ContainerId) -> str:
|
|
482
|
-
return
|
|
503
|
+
return sanitize_filename(f"{id.space}_{id.external_id}")
|
|
483
504
|
|
|
484
505
|
|
|
485
|
-
class
|
|
486
|
-
folder_name = "
|
|
487
|
-
filename_pattern = r"^.*view$"
|
|
506
|
+
class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View]):
|
|
507
|
+
folder_name = "data_modeling"
|
|
488
508
|
resource_cls = View
|
|
489
509
|
resource_write_cls = ViewApply
|
|
490
|
-
list_cls = ViewList
|
|
491
|
-
list_write_cls = ViewApplyList
|
|
492
510
|
kind = "View"
|
|
493
|
-
dependencies = frozenset({
|
|
511
|
+
dependencies = frozenset({SpaceCRUD, ContainerCRUD})
|
|
512
|
+
yaml_cls = ViewYAML
|
|
494
513
|
_doc_url = "Views/operation/ApplyViews"
|
|
514
|
+
sub_folder_name = "views"
|
|
495
515
|
|
|
496
516
|
def __init__(
|
|
497
517
|
self,
|
|
@@ -523,7 +543,7 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
523
543
|
else DataModelsAcl.Scope.All()
|
|
524
544
|
)
|
|
525
545
|
|
|
526
|
-
return DataModelsAcl(actions, scope)
|
|
546
|
+
return DataModelsAcl(actions, scope)
|
|
527
547
|
|
|
528
548
|
@classmethod
|
|
529
549
|
def get_id(cls, item: ViewApply | View | dict) -> ViewId:
|
|
@@ -540,33 +560,33 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
540
560
|
return id.dump(include_type=False)
|
|
541
561
|
|
|
542
562
|
@classmethod
|
|
543
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
563
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
544
564
|
if "space" in item:
|
|
545
|
-
yield
|
|
565
|
+
yield SpaceCRUD, item["space"]
|
|
546
566
|
if isinstance(implements := item.get("implements", []), list):
|
|
547
567
|
for parent in implements:
|
|
548
568
|
if not isinstance(parent, dict):
|
|
549
569
|
continue
|
|
550
570
|
if parent.get("type") == "view" and in_dict(["space", "externalId", "version"], parent):
|
|
551
571
|
yield (
|
|
552
|
-
|
|
572
|
+
ViewCRUD,
|
|
553
573
|
ViewId(parent["space"], parent["externalId"], str(v) if (v := parent.get("version")) else None),
|
|
554
574
|
)
|
|
555
575
|
for prop in item.get("properties", {}).values():
|
|
556
576
|
if (container := prop.get("container", {})) and container.get("type") == "container":
|
|
557
577
|
if in_dict(("space", "externalId"), container):
|
|
558
|
-
yield
|
|
578
|
+
yield ContainerCRUD, ContainerId(container["space"], container["externalId"])
|
|
559
579
|
for key, dct_ in [("source", prop), ("edgeSource", prop), ("source", prop.get("through", {}))]:
|
|
560
580
|
if source := dct_.get(key, {}):
|
|
561
581
|
if source.get("type") == "view" and in_dict(("space", "externalId", "version"), source):
|
|
562
582
|
yield (
|
|
563
|
-
|
|
583
|
+
ViewCRUD,
|
|
564
584
|
ViewId(
|
|
565
585
|
source["space"], source["externalId"], str(v) if (v := source.get("version")) else None
|
|
566
586
|
),
|
|
567
587
|
)
|
|
568
588
|
elif source.get("type") == "container" and in_dict(("space", "externalId"), source):
|
|
569
|
-
yield
|
|
589
|
+
yield ContainerCRUD, ContainerId(source["space"], source["externalId"])
|
|
570
590
|
|
|
571
591
|
def safe_read(self, filepath: Path | str) -> str:
|
|
572
592
|
# The version is a string, but the user often writes it as an int.
|
|
@@ -580,10 +600,19 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
580
600
|
dumped = resource.as_write().dump()
|
|
581
601
|
local = local or {}
|
|
582
602
|
if not dumped.get("properties") and not local.get("properties"):
|
|
583
|
-
|
|
584
|
-
|
|
603
|
+
if "properties" in local:
|
|
604
|
+
# In case the properties is an empty dict, we still want to keep it in the dump.
|
|
605
|
+
# such that the dumped evaluates to the same as the local.
|
|
606
|
+
dumped["properties"] = local["properties"]
|
|
607
|
+
else:
|
|
608
|
+
dumped.pop("properties", None)
|
|
585
609
|
if not dumped.get("implements") and not local.get("implements"):
|
|
586
|
-
|
|
610
|
+
if "implements" in local:
|
|
611
|
+
# In case the implements is an empty list, we still want to keep it in the dump.
|
|
612
|
+
# such that the dumped evaluates to the same as the local.
|
|
613
|
+
dumped["implements"] = local["implements"]
|
|
614
|
+
else:
|
|
615
|
+
dumped.pop("implements", None)
|
|
587
616
|
if resource.implements and len(resource.implements) > 1 and self._topological_sort_implements:
|
|
588
617
|
# This is a special case that we want to do when we run the cdf dump datamodel command.
|
|
589
618
|
# The issue is as follows:
|
|
@@ -594,7 +623,9 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
594
623
|
# We sort the implements in topological order to ensure that the child view get the order grandparent,
|
|
595
624
|
# parent, such that the parent's source is used.
|
|
596
625
|
try:
|
|
597
|
-
dumped["implements"] = [
|
|
626
|
+
dumped["implements"] = [
|
|
627
|
+
view_id.dump() for view_id in self.topological_sort_implements(resource.implements)
|
|
628
|
+
]
|
|
598
629
|
except ToolkitCycleError as e:
|
|
599
630
|
warning = MediumSeverityWarning(f"Failed to sort implements for view {resource.as_id()}: {e}")
|
|
600
631
|
warning.print_warning(console=self.console)
|
|
@@ -633,78 +664,8 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
633
664
|
if self._is_auto_retryable(e1):
|
|
634
665
|
# Fallback to creating one by one if the error is auto-retryable.
|
|
635
666
|
return self._fallback_create_one_by_one(items, e1)
|
|
636
|
-
elif self._is_false_not_exists(e1, {item.as_id() for item in items}):
|
|
637
|
-
return self._try_to_recover_coupled(items, e1)
|
|
638
667
|
raise
|
|
639
668
|
|
|
640
|
-
@staticmethod
|
|
641
|
-
def _is_false_not_exists(e: CogniteAPIError, request_views: set[ViewId]) -> bool:
|
|
642
|
-
if "not exist" not in e.message and 400 <= e.code < 500:
|
|
643
|
-
return False
|
|
644
|
-
results = re.findall(r"'([a-zA-Z0-9_-]+):([a-zA-Z0-9_]+)/([.a-zA-Z0-9_-]+)'", e.message)
|
|
645
|
-
if not results:
|
|
646
|
-
# No view references in the message
|
|
647
|
-
return False
|
|
648
|
-
error_message_views = {ViewId(*result) for result in results}
|
|
649
|
-
return error_message_views.issubset(request_views)
|
|
650
|
-
|
|
651
|
-
def _try_to_recover_coupled(self, items: Sequence[ViewApply], original_error: CogniteAPIError) -> ViewList:
|
|
652
|
-
"""The /models/views endpoint can give faulty 400 about missing views that are part of the request.
|
|
653
|
-
|
|
654
|
-
This method tries to recover from such errors by identifying the strongly connected components in the graph
|
|
655
|
-
defined by the implements and through properties of the views. We then create the components in topological
|
|
656
|
-
order.
|
|
657
|
-
|
|
658
|
-
Args:
|
|
659
|
-
items: The items that failed to create.
|
|
660
|
-
original_error: The original error that was raised. If the problem is not recoverable, this error is raised.
|
|
661
|
-
|
|
662
|
-
Returns:
|
|
663
|
-
The views that were created.
|
|
664
|
-
|
|
665
|
-
"""
|
|
666
|
-
views_by_id = {self.get_id(item): item for item in items}
|
|
667
|
-
parents_by_child: dict[ViewId, set[ViewId]] = {
|
|
668
|
-
view_id: {parent for parent in view.implements or [] if parent in views_by_id}
|
|
669
|
-
for view_id, view in views_by_id.items()
|
|
670
|
-
}
|
|
671
|
-
# Check for cycles in the implements graph
|
|
672
|
-
try:
|
|
673
|
-
TopologicalSorter(parents_by_child).static_order()
|
|
674
|
-
except CycleError as e:
|
|
675
|
-
raise ToolkitCycleError(f"Failed to deploy views. This likely due to a cycle in implements. {e.args[1]}")
|
|
676
|
-
|
|
677
|
-
dependencies_by_id: dict[ViewId, set[ViewId]] = defaultdict(set)
|
|
678
|
-
for view_id, view in views_by_id.items():
|
|
679
|
-
dependencies_by_id[view_id].update([parent for parent in view.implements or [] if parent in views_by_id])
|
|
680
|
-
for properties in (view.properties or {}).values():
|
|
681
|
-
if isinstance(properties, ReverseDirectRelationApply):
|
|
682
|
-
if isinstance(properties.through.source, ViewId) and properties.through.source in views_by_id:
|
|
683
|
-
dependencies_by_id[view_id].add(properties.through.source)
|
|
684
|
-
|
|
685
|
-
LowSeverityWarning(
|
|
686
|
-
f"Failed to create {len(items)} views: {escape(original_error.message)}.\nAttempting to recover..."
|
|
687
|
-
).print_warning(include_timestamp=True, console=self.console)
|
|
688
|
-
created = ViewList([])
|
|
689
|
-
for strongly_connected in tarjan(dependencies_by_id):
|
|
690
|
-
to_create = [views_by_id[view_id] for view_id in strongly_connected]
|
|
691
|
-
try:
|
|
692
|
-
created_set = self.client.data_modeling.views.apply(to_create)
|
|
693
|
-
except CogniteAPIError as error:
|
|
694
|
-
self.client.data_modeling.views.delete(created.as_ids())
|
|
695
|
-
HighSeverityWarning(
|
|
696
|
-
f"Recovering attempt failed. Could not create views {self.get_ids(to_create)}: "
|
|
697
|
-
f"{escape(error.message)}.\n Raising original error."
|
|
698
|
-
).print_warning(console=self.console)
|
|
699
|
-
raise original_error
|
|
700
|
-
created.extend(created_set)
|
|
701
|
-
message = f"Recovery attempt succeeded. Created {len(created)} views."
|
|
702
|
-
if self.console:
|
|
703
|
-
self.console.print(message)
|
|
704
|
-
else:
|
|
705
|
-
print(message)
|
|
706
|
-
return created
|
|
707
|
-
|
|
708
669
|
@staticmethod
|
|
709
670
|
def _is_auto_retryable(e: CogniteAPIError) -> bool:
|
|
710
671
|
return isinstance(e.extra, dict) and "isAutoRetryable" in e.extra and e.extra["isAutoRetryable"]
|
|
@@ -721,8 +682,8 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
721
682
|
try:
|
|
722
683
|
created = self.client.data_modeling.views.apply(item)
|
|
723
684
|
except CogniteAPIError as e2:
|
|
724
|
-
e2.failed.
|
|
725
|
-
e2.successful.
|
|
685
|
+
e2.failed = tuple(e2.failed) + tuple(items[no + 1 :])
|
|
686
|
+
e2.successful = tuple(e2.successful) + tuple(created_list)
|
|
726
687
|
raise e2 from e1
|
|
727
688
|
else:
|
|
728
689
|
created_list.append(created)
|
|
@@ -764,95 +725,9 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
764
725
|
) -> Iterable[View]:
|
|
765
726
|
return iter(self.client.data_modeling.views(space=space))
|
|
766
727
|
|
|
767
|
-
@classmethod
|
|
768
|
-
@lru_cache(maxsize=1)
|
|
769
|
-
def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
|
|
770
|
-
spec = super().get_write_cls_parameter_spec()
|
|
771
|
-
# The Filter class in the SDK class View implementation is deviating from the API.
|
|
772
|
-
# So we need to modify the spec to match the API.
|
|
773
|
-
parameter_path = ("filter",)
|
|
774
|
-
length = len(parameter_path)
|
|
775
|
-
for item in spec:
|
|
776
|
-
if len(item.path) >= length + 1 and item.path[:length] == parameter_path[:length]:
|
|
777
|
-
# Add extra ANY_STR layer
|
|
778
|
-
# The spec class is immutable, so we use this trick to modify it.
|
|
779
|
-
is_has_data_filter = item.path[1] in ["containers", "views"]
|
|
780
|
-
if is_has_data_filter:
|
|
781
|
-
# Special handling of the HasData filter that deviates in SDK implementation from API Spec.
|
|
782
|
-
object.__setattr__(item, "path", item.path[:length] + (ANY_STR,) + item.path[length + 1 :])
|
|
783
|
-
else:
|
|
784
|
-
object.__setattr__(item, "path", item.path[:length] + (ANY_STR,) + item.path[length:])
|
|
785
|
-
|
|
786
|
-
spec.add(ParameterSpec(("filter", ANY_STR), frozenset({"dict"}), is_required=False, _is_nullable=False))
|
|
787
|
-
# The following types are used by the SDK to load the correct class. They are not part of the init,
|
|
788
|
-
# so we need to add it manually.
|
|
789
|
-
spec.update(
|
|
790
|
-
ParameterSpecSet(
|
|
791
|
-
{
|
|
792
|
-
ParameterSpec(
|
|
793
|
-
("implements", ANY_INT, "type"), frozenset({"str"}), is_required=True, _is_nullable=False
|
|
794
|
-
),
|
|
795
|
-
ParameterSpec(
|
|
796
|
-
("properties", ANY_STR, "connectionType"),
|
|
797
|
-
frozenset({"str"}),
|
|
798
|
-
is_required=True,
|
|
799
|
-
_is_nullable=False,
|
|
800
|
-
),
|
|
801
|
-
ParameterSpec(
|
|
802
|
-
("properties", ANY_STR, "source", "type"),
|
|
803
|
-
frozenset({"str"}),
|
|
804
|
-
is_required=True,
|
|
805
|
-
_is_nullable=False,
|
|
806
|
-
),
|
|
807
|
-
ParameterSpec(
|
|
808
|
-
("properties", ANY_STR, "container", "type"),
|
|
809
|
-
frozenset({"str"}),
|
|
810
|
-
is_required=True,
|
|
811
|
-
_is_nullable=False,
|
|
812
|
-
),
|
|
813
|
-
ParameterSpec(
|
|
814
|
-
("properties", ANY_STR, "edgeSource", "type"),
|
|
815
|
-
frozenset({"str"}),
|
|
816
|
-
is_required=True,
|
|
817
|
-
_is_nullable=False,
|
|
818
|
-
),
|
|
819
|
-
ParameterSpec(
|
|
820
|
-
("properties", ANY_STR, "through", "source", "type"),
|
|
821
|
-
frozenset({"str"}),
|
|
822
|
-
is_required=True,
|
|
823
|
-
_is_nullable=False,
|
|
824
|
-
),
|
|
825
|
-
ParameterSpec(
|
|
826
|
-
# In the SDK, this is called "property"
|
|
827
|
-
("properties", ANY_STR, "through", "identifier"),
|
|
828
|
-
frozenset({"str"}),
|
|
829
|
-
is_required=True,
|
|
830
|
-
_is_nullable=False,
|
|
831
|
-
),
|
|
832
|
-
# Filters are complex, so we do not attempt to give any more specific spec.
|
|
833
|
-
ParameterSpec(
|
|
834
|
-
("filter", ANYTHING),
|
|
835
|
-
frozenset({"str"}),
|
|
836
|
-
is_required=True,
|
|
837
|
-
_is_nullable=False,
|
|
838
|
-
),
|
|
839
|
-
}
|
|
840
|
-
)
|
|
841
|
-
)
|
|
842
|
-
spec.discard(
|
|
843
|
-
ParameterSpec(
|
|
844
|
-
# The API spec calls this "identifier", while the SDK calls it "property".
|
|
845
|
-
("properties", ANY_STR, "through", "property"),
|
|
846
|
-
frozenset({"str"}),
|
|
847
|
-
is_required=True,
|
|
848
|
-
_is_nullable=False,
|
|
849
|
-
)
|
|
850
|
-
)
|
|
851
|
-
return spec
|
|
852
|
-
|
|
853
728
|
@classmethod
|
|
854
729
|
def as_str(cls, id: ViewId) -> str:
|
|
855
|
-
return
|
|
730
|
+
return sanitize_filename(id.external_id)
|
|
856
731
|
|
|
857
732
|
def _lookup_views(self, view_ids: list[ViewId]) -> dict[ViewId, View]:
|
|
858
733
|
"""Looks up views by their IDs and caches them."""
|
|
@@ -863,14 +738,51 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
863
738
|
self._view_by_id[view.as_id()] = view
|
|
864
739
|
return {view_id: self._view_by_id[view_id] for view_id in view_ids if view_id in self._view_by_id}
|
|
865
740
|
|
|
866
|
-
def
|
|
741
|
+
def get_readonly_properties(self, view_id: ViewId) -> set[str]:
|
|
742
|
+
"""Retrieve the set of read-only properties for a given view."""
|
|
743
|
+
|
|
744
|
+
readonly_properties: set[str] = set()
|
|
745
|
+
|
|
746
|
+
# Retrieve the view to check its properties
|
|
747
|
+
view = self._lookup_views([view_id]).get(view_id)
|
|
748
|
+
if view is None:
|
|
749
|
+
return readonly_properties
|
|
750
|
+
|
|
751
|
+
# Check each property in the view
|
|
752
|
+
for property_identifier, property in view.properties.items():
|
|
753
|
+
if isinstance(
|
|
754
|
+
property, MappedProperty
|
|
755
|
+
) and property.container_property_identifier in constants.READONLY_CONTAINER_PROPERTIES.get(
|
|
756
|
+
property.container, set()
|
|
757
|
+
):
|
|
758
|
+
readonly_properties.add(property_identifier)
|
|
759
|
+
return readonly_properties
|
|
760
|
+
|
|
761
|
+
def _build_view_implements_dependencies(
|
|
762
|
+
self, view_by_ids: dict[ViewId, View], include: set[ViewId] | None = None
|
|
763
|
+
) -> dict[ViewId, set[ViewId]]:
|
|
764
|
+
"""Build a dependency graph based on view implements relationships.
|
|
765
|
+
|
|
766
|
+
Args:
|
|
767
|
+
view_by_ids: Mapping of view IDs to View objects
|
|
768
|
+
include: Optional set of view IDs to include in the dependencies, if None, all views are included.
|
|
769
|
+
|
|
770
|
+
Returns:
|
|
771
|
+
Dictionary mapping each view ID to the set of view IDs it depends on (implements)
|
|
772
|
+
"""
|
|
773
|
+
dependencies: dict[ViewId, set[ViewId]] = {}
|
|
774
|
+
for view_id, view in view_by_ids.items():
|
|
775
|
+
dependencies[view_id] = set()
|
|
776
|
+
for implemented_view_id in view.implements or []:
|
|
777
|
+
if include is None or implemented_view_id in include:
|
|
778
|
+
dependencies[view_id].add(implemented_view_id)
|
|
779
|
+
return dependencies
|
|
780
|
+
|
|
781
|
+
def topological_sort_implements(self, view_ids: list[ViewId]) -> list[ViewId]:
|
|
867
782
|
"""Sorts the views in topological order based on their implements and through properties."""
|
|
868
783
|
view_by_ids = self._lookup_views(view_ids)
|
|
869
|
-
parents_by_child
|
|
870
|
-
|
|
871
|
-
parents_by_child[child] = set()
|
|
872
|
-
for parent in view.implements or []:
|
|
873
|
-
parents_by_child[child].add(parent)
|
|
784
|
+
parents_by_child = self._build_view_implements_dependencies(view_by_ids)
|
|
785
|
+
|
|
874
786
|
try:
|
|
875
787
|
sorted_views = list(TopologicalSorter(parents_by_child).static_order())
|
|
876
788
|
except CycleError as e:
|
|
@@ -880,17 +792,63 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
|
|
|
880
792
|
|
|
881
793
|
return sorted_views
|
|
882
794
|
|
|
795
|
+
def topological_sort_container_constraints(self, view_ids: list[ViewId]) -> list[ViewId]:
|
|
796
|
+
"""Sorts the views in topological order based on their container constraints."""
|
|
797
|
+
|
|
798
|
+
view_by_ids = self._lookup_views(view_ids)
|
|
799
|
+
if missing_view_ids := set(view_ids) - set(view_by_ids.keys()):
|
|
800
|
+
MediumSeverityWarning(
|
|
801
|
+
f"Views {missing_view_ids} not found or you don't have permission to access them, skipping dependency check."
|
|
802
|
+
).print_warning(console=self.console)
|
|
803
|
+
return view_ids
|
|
804
|
+
|
|
805
|
+
view_to_containers: dict[ViewId, set[ContainerId]] = {}
|
|
806
|
+
container_to_views: defaultdict[ContainerId, set[ViewId]] = defaultdict(set)
|
|
807
|
+
for view_id, view in view_by_ids.items():
|
|
808
|
+
view_to_containers[view_id] = view.referenced_containers()
|
|
809
|
+
for container_id in view_to_containers[view_id]:
|
|
810
|
+
container_to_views[container_id].add(view_id)
|
|
811
|
+
|
|
812
|
+
container_crud = ContainerCRUD.create_loader(self.client)
|
|
813
|
+
container_dependencies_by_id = container_crud._find_direct_and_indirect_container_dependencies(
|
|
814
|
+
list(container_to_views.keys())
|
|
815
|
+
)
|
|
816
|
+
|
|
817
|
+
# First, add view dependencies based on implements relationships
|
|
818
|
+
view_dependencies = self._build_view_implements_dependencies(view_by_ids, set(view_to_containers.keys()))
|
|
819
|
+
|
|
820
|
+
# Then, add view dependencies based on mapped container constraints
|
|
821
|
+
for view_id, mapped_containers in view_to_containers.items():
|
|
822
|
+
for container_id in mapped_containers:
|
|
823
|
+
# Get all containers this container depends on
|
|
824
|
+
if container_id not in container_dependencies_by_id:
|
|
825
|
+
continue
|
|
826
|
+
for required_container in container_dependencies_by_id[container_id]:
|
|
827
|
+
if required_container not in container_to_views:
|
|
828
|
+
continue
|
|
829
|
+
# If this view already implements the required container, the requirement is self-satisfied
|
|
830
|
+
# and we don't need to depend on other views that also implement it (they are peers).
|
|
831
|
+
if required_container in mapped_containers:
|
|
832
|
+
continue
|
|
833
|
+
# This view doesn't implement the required container, so depend on all views that do
|
|
834
|
+
view_dependencies[view_id].update(container_to_views[required_container])
|
|
835
|
+
try:
|
|
836
|
+
sorted_views = list(TopologicalSorter(view_dependencies).static_order())
|
|
837
|
+
except CycleError as e:
|
|
838
|
+
raise ToolkitCycleError(
|
|
839
|
+
f"Failed to sort views topologically. This likely due to a cycle in implements. {e.args[1]}"
|
|
840
|
+
)
|
|
841
|
+
return sorted_views
|
|
842
|
+
|
|
883
843
|
|
|
884
844
|
@final
|
|
885
|
-
class
|
|
886
|
-
folder_name = "
|
|
887
|
-
filename_pattern = r"^.*datamodel$"
|
|
845
|
+
class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel]):
|
|
846
|
+
folder_name = "data_modeling"
|
|
888
847
|
resource_cls = DataModel
|
|
889
848
|
resource_write_cls = DataModelApply
|
|
890
|
-
list_cls = DataModelList
|
|
891
|
-
list_write_cls = DataModelApplyList
|
|
892
849
|
kind = "DataModel"
|
|
893
|
-
dependencies = frozenset({
|
|
850
|
+
dependencies = frozenset({SpaceCRUD, ViewCRUD})
|
|
851
|
+
yaml_cls = DataModelYAML
|
|
894
852
|
_doc_url = "Data-models/operation/createDataModels"
|
|
895
853
|
|
|
896
854
|
@property
|
|
@@ -912,7 +870,7 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
|
|
|
912
870
|
else DataModelsAcl.Scope.All()
|
|
913
871
|
)
|
|
914
872
|
|
|
915
|
-
return DataModelsAcl(actions, scope)
|
|
873
|
+
return DataModelsAcl(actions, scope)
|
|
916
874
|
|
|
917
875
|
@classmethod
|
|
918
876
|
def get_id(cls, item: DataModelApply | DataModel | dict) -> DataModelId:
|
|
@@ -928,13 +886,13 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
|
|
|
928
886
|
return id.dump(include_type=False)
|
|
929
887
|
|
|
930
888
|
@classmethod
|
|
931
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
889
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
932
890
|
if "space" in item:
|
|
933
|
-
yield
|
|
891
|
+
yield SpaceCRUD, item["space"]
|
|
934
892
|
for view in item.get("views", []):
|
|
935
893
|
if in_dict(("space", "externalId"), view):
|
|
936
894
|
yield (
|
|
937
|
-
|
|
895
|
+
ViewCRUD,
|
|
938
896
|
ViewId(view["space"], view["externalId"], str(v) if (v := view.get("version")) else None),
|
|
939
897
|
)
|
|
940
898
|
|
|
@@ -964,13 +922,13 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
|
|
|
964
922
|
return diff_list_identifiable(local, cdf, get_identifier=dm_identifier)
|
|
965
923
|
return super().diff_list(local, cdf, json_path)
|
|
966
924
|
|
|
967
|
-
def create(self, items:
|
|
925
|
+
def create(self, items: Sequence[DataModelApply]) -> DataModelList:
|
|
968
926
|
return self.client.data_modeling.data_models.apply(items)
|
|
969
927
|
|
|
970
928
|
def retrieve(self, ids: SequenceNotStr[DataModelId]) -> DataModelList:
|
|
971
929
|
return self.client.data_modeling.data_models.retrieve(cast(Sequence, ids))
|
|
972
930
|
|
|
973
|
-
def update(self, items:
|
|
931
|
+
def update(self, items: Sequence[DataModelApply]) -> DataModelList:
|
|
974
932
|
updated = self.create(items)
|
|
975
933
|
# There is a bug in the API not raising an exception if view is removed from a data model.
|
|
976
934
|
# So we check here that the update was fixed.
|
|
@@ -1008,32 +966,22 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
|
|
|
1008
966
|
) -> Iterable[DataModel]:
|
|
1009
967
|
return iter(self.client.data_modeling.data_models(space=space, include_global=False))
|
|
1010
968
|
|
|
1011
|
-
@classmethod
|
|
1012
|
-
@lru_cache(maxsize=1)
|
|
1013
|
-
def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
|
|
1014
|
-
spec = super().get_write_cls_parameter_spec()
|
|
1015
|
-
# ViewIds have the type set in the API Spec, but this is hidden in the SDK classes,
|
|
1016
|
-
# so we need to add it manually.
|
|
1017
|
-
spec.add(ParameterSpec(("views", ANY_INT, "type"), frozenset({"str"}), is_required=True, _is_nullable=False))
|
|
1018
|
-
return spec
|
|
1019
|
-
|
|
1020
969
|
@classmethod
|
|
1021
970
|
def as_str(cls, id: DataModelId) -> str:
|
|
1022
|
-
return
|
|
971
|
+
return sanitize_filename(id.external_id)
|
|
1023
972
|
|
|
1024
973
|
|
|
1025
974
|
@final
|
|
1026
|
-
class
|
|
975
|
+
class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node]):
|
|
1027
976
|
item_name = "nodes"
|
|
1028
|
-
folder_name = "
|
|
1029
|
-
filename_pattern = r"^.*node$"
|
|
977
|
+
folder_name = "data_modeling"
|
|
1030
978
|
resource_cls = Node
|
|
1031
979
|
resource_write_cls = NodeApply
|
|
1032
|
-
list_cls = NodeList
|
|
1033
|
-
list_write_cls = NodeApplyList
|
|
1034
980
|
kind = "Node"
|
|
1035
|
-
|
|
981
|
+
yaml_cls = NodeYAML
|
|
982
|
+
dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD})
|
|
1036
983
|
_doc_url = "Instances/operation/applyNodeAndEdges"
|
|
984
|
+
sub_folder_name = "nodes"
|
|
1037
985
|
|
|
1038
986
|
def __init__(
|
|
1039
987
|
self,
|
|
@@ -1084,14 +1032,14 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
|
|
|
1084
1032
|
return id.dump()
|
|
1085
1033
|
|
|
1086
1034
|
@classmethod
|
|
1087
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
1035
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
1088
1036
|
if "space" in item:
|
|
1089
|
-
yield
|
|
1037
|
+
yield SpaceCRUD, item["space"]
|
|
1090
1038
|
for source in item.get("sources", []):
|
|
1091
1039
|
if (identifier := source.get("source")) and isinstance(identifier, dict):
|
|
1092
1040
|
if identifier.get("type") == "view" and in_dict(("space", "externalId", "version"), identifier):
|
|
1093
1041
|
yield (
|
|
1094
|
-
|
|
1042
|
+
ViewCRUD,
|
|
1095
1043
|
ViewId(
|
|
1096
1044
|
identifier["space"],
|
|
1097
1045
|
identifier["externalId"],
|
|
@@ -1099,7 +1047,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
|
|
|
1099
1047
|
),
|
|
1100
1048
|
)
|
|
1101
1049
|
elif identifier.get("type") == "container" and in_dict(("space", "externalId"), identifier):
|
|
1102
|
-
yield
|
|
1050
|
+
yield ContainerCRUD, ContainerId(identifier["space"], identifier["externalId"])
|
|
1103
1051
|
|
|
1104
1052
|
def dump_resource(self, resource: Node, local: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
1105
1053
|
# CDF resource does not have properties set, so we need to do a lookup
|
|
@@ -1129,7 +1077,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
|
|
|
1129
1077
|
|
|
1130
1078
|
return dumped
|
|
1131
1079
|
|
|
1132
|
-
def create(self, items:
|
|
1080
|
+
def create(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
|
|
1133
1081
|
result = self.client.data_modeling.instances.apply(
|
|
1134
1082
|
# Note replace should never be relevant as Toolkit always checks whether the node exists before applying.
|
|
1135
1083
|
nodes=items,
|
|
@@ -1141,7 +1089,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
|
|
|
1141
1089
|
def retrieve(self, ids: SequenceNotStr[NodeId]) -> NodeList:
|
|
1142
1090
|
return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids), sources=self.view_id).nodes
|
|
1143
1091
|
|
|
1144
|
-
def update(self, items:
|
|
1092
|
+
def update(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
|
|
1145
1093
|
result = self.client.data_modeling.instances.apply(
|
|
1146
1094
|
nodes=items, auto_create_direct_relations=True, replace=False
|
|
1147
1095
|
)
|
|
@@ -1173,41 +1121,19 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
|
|
|
1173
1121
|
# Nodes will be deleted in .delete call.
|
|
1174
1122
|
return 0
|
|
1175
1123
|
|
|
1176
|
-
@classmethod
|
|
1177
|
-
@lru_cache(maxsize=1)
|
|
1178
|
-
def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
|
|
1179
|
-
node_spec = super().get_write_cls_parameter_spec()
|
|
1180
|
-
# This is a deviation between the SDK and the API
|
|
1181
|
-
node_spec.add(ParameterSpec(("instanceType",), frozenset({"str"}), is_required=False, _is_nullable=False))
|
|
1182
|
-
node_spec.add(
|
|
1183
|
-
ParameterSpec(
|
|
1184
|
-
("sources", ANY_INT, "source", "type"),
|
|
1185
|
-
frozenset({"str"}),
|
|
1186
|
-
is_required=True,
|
|
1187
|
-
_is_nullable=False,
|
|
1188
|
-
)
|
|
1189
|
-
)
|
|
1190
|
-
return ParameterSpecSet(node_spec, spec_name=cls.__name__)
|
|
1191
|
-
|
|
1192
1124
|
@classmethod
|
|
1193
1125
|
def as_str(cls, id: NodeId) -> str:
|
|
1194
|
-
return
|
|
1126
|
+
return sanitize_filename(f"{id.space}_{id.external_id}")
|
|
1195
1127
|
|
|
1196
1128
|
|
|
1197
|
-
class
|
|
1198
|
-
|
|
1199
|
-
DataModelId, GraphQLDataModelWrite, GraphQLDataModel, GraphQLDataModelWriteList, GraphQLDataModelList
|
|
1200
|
-
]
|
|
1201
|
-
):
|
|
1202
|
-
folder_name = "data_models"
|
|
1203
|
-
filename_pattern = r"^.*GraphQLSchema"
|
|
1129
|
+
class GraphQLCRUD(ResourceContainerCRUD[DataModelId, GraphQLDataModelWrite, GraphQLDataModel]):
|
|
1130
|
+
folder_name = "data_modeling"
|
|
1204
1131
|
resource_cls = GraphQLDataModel
|
|
1205
1132
|
resource_write_cls = GraphQLDataModelWrite
|
|
1206
|
-
list_cls = GraphQLDataModelList
|
|
1207
|
-
list_write_cls = GraphQLDataModelWriteList
|
|
1208
1133
|
kind = "GraphQLSchema"
|
|
1209
|
-
dependencies = frozenset({
|
|
1134
|
+
dependencies = frozenset({SpaceCRUD, ContainerCRUD})
|
|
1210
1135
|
item_name = "views"
|
|
1136
|
+
yaml_cls = GraphQLDataModelYAML
|
|
1211
1137
|
_doc_url = "Data-models/operation/createDataModels"
|
|
1212
1138
|
_hash_name = "CDFToolkitHash:"
|
|
1213
1139
|
|
|
@@ -1249,9 +1175,9 @@ class GraphQLLoader(
|
|
|
1249
1175
|
)
|
|
1250
1176
|
|
|
1251
1177
|
@classmethod
|
|
1252
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
1178
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
1253
1179
|
if "space" in item:
|
|
1254
|
-
yield
|
|
1180
|
+
yield SpaceCRUD, item["space"]
|
|
1255
1181
|
|
|
1256
1182
|
def safe_read(self, filepath: Path | str) -> str:
|
|
1257
1183
|
# The version is a string, but the user often writes it as an int.
|
|
@@ -1294,7 +1220,7 @@ class GraphQLLoader(
|
|
|
1294
1220
|
|
|
1295
1221
|
# Add hash to description
|
|
1296
1222
|
description = item.get("description", "")
|
|
1297
|
-
hash_ =
|
|
1223
|
+
hash_ = calculate_hash(graphql_content)[:8]
|
|
1298
1224
|
suffix = f"{self._hash_name}{hash_}"
|
|
1299
1225
|
if len(description) + len(suffix) > 1024:
|
|
1300
1226
|
LowSeverityWarning(f"Description is above limit for {model_id}. Truncating...").print_warning()
|
|
@@ -1317,7 +1243,7 @@ class GraphQLLoader(
|
|
|
1317
1243
|
dumped["graphqlFile"] = match.group(3)
|
|
1318
1244
|
return dumped
|
|
1319
1245
|
|
|
1320
|
-
def create(self, items:
|
|
1246
|
+
def create(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
|
|
1321
1247
|
creation_order = self._topological_sort(items)
|
|
1322
1248
|
|
|
1323
1249
|
created_list: list[DMLApplyResult] = []
|
|
@@ -1348,7 +1274,7 @@ class GraphQLLoader(
|
|
|
1348
1274
|
result = self.client.data_modeling.data_models.retrieve(list(ids), inline_views=False)
|
|
1349
1275
|
return GraphQLDataModelList([GraphQLDataModel._load(d.dump()) for d in result])
|
|
1350
1276
|
|
|
1351
|
-
def update(self, items:
|
|
1277
|
+
def update(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
|
|
1352
1278
|
return self.create(items)
|
|
1353
1279
|
|
|
1354
1280
|
def delete(self, ids: SequenceNotStr[DataModelId]) -> int:
|
|
@@ -1373,7 +1299,7 @@ class GraphQLLoader(
|
|
|
1373
1299
|
def drop_data(self, ids: SequenceNotStr[DataModelId]) -> int:
|
|
1374
1300
|
return self.delete(ids)
|
|
1375
1301
|
|
|
1376
|
-
def _topological_sort(self, items:
|
|
1302
|
+
def _topological_sort(self, items: Sequence[GraphQLDataModelWrite]) -> list[GraphQLDataModelWrite]:
|
|
1377
1303
|
to_sort = {item.as_id(): item for item in items}
|
|
1378
1304
|
dependencies: dict[DataModelId, set[DataModelId]] = {}
|
|
1379
1305
|
for item in items:
|
|
@@ -1396,16 +1322,14 @@ class GraphQLLoader(
|
|
|
1396
1322
|
|
|
1397
1323
|
|
|
1398
1324
|
@final
|
|
1399
|
-
class
|
|
1325
|
+
class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge]):
|
|
1400
1326
|
item_name = "edges"
|
|
1401
|
-
folder_name = "
|
|
1402
|
-
filename_pattern = r"^.*edge"
|
|
1327
|
+
folder_name = "data_modeling"
|
|
1403
1328
|
resource_cls = Edge
|
|
1404
1329
|
resource_write_cls = EdgeApply
|
|
1405
|
-
list_cls = EdgeList
|
|
1406
|
-
list_write_cls = EdgeApplyList
|
|
1407
1330
|
kind = "Edge"
|
|
1408
|
-
|
|
1331
|
+
yaml_cls = EdgeYAML
|
|
1332
|
+
dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD, NodeCRUD})
|
|
1409
1333
|
_doc_url = "Instances/operation/applyNodeAndEdges"
|
|
1410
1334
|
|
|
1411
1335
|
@property
|
|
@@ -1446,14 +1370,14 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
|
|
|
1446
1370
|
return id.dump()
|
|
1447
1371
|
|
|
1448
1372
|
@classmethod
|
|
1449
|
-
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[
|
|
1373
|
+
def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
|
|
1450
1374
|
if "space" in item:
|
|
1451
|
-
yield
|
|
1375
|
+
yield SpaceCRUD, item["space"]
|
|
1452
1376
|
for source in item.get("sources", []):
|
|
1453
1377
|
if (identifier := source.get("source")) and isinstance(identifier, dict):
|
|
1454
1378
|
if identifier.get("type") == "view" and in_dict(("space", "externalId", "version"), identifier):
|
|
1455
1379
|
yield (
|
|
1456
|
-
|
|
1380
|
+
ViewCRUD,
|
|
1457
1381
|
ViewId(
|
|
1458
1382
|
identifier["space"],
|
|
1459
1383
|
identifier["externalId"],
|
|
@@ -1461,12 +1385,12 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
|
|
|
1461
1385
|
),
|
|
1462
1386
|
)
|
|
1463
1387
|
elif identifier.get("type") == "container" and in_dict(("space", "externalId"), identifier):
|
|
1464
|
-
yield
|
|
1388
|
+
yield ContainerCRUD, ContainerId(identifier["space"], identifier["externalId"])
|
|
1465
1389
|
|
|
1466
1390
|
for key in ["startNode", "endNode", "type"]:
|
|
1467
1391
|
if node_ref := item.get(key):
|
|
1468
1392
|
if isinstance(node_ref, dict) and in_dict(("space", "externalId"), node_ref):
|
|
1469
|
-
yield
|
|
1393
|
+
yield NodeCRUD, NodeId(node_ref["space"], node_ref["externalId"])
|
|
1470
1394
|
|
|
1471
1395
|
def dump_resource(self, resource: Edge, local: dict[str, Any] | None = None) -> dict[str, Any]:
|
|
1472
1396
|
# CDF resource does not have properties set, so we need to do a lookup
|
|
@@ -1493,7 +1417,7 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
|
|
|
1493
1417
|
|
|
1494
1418
|
return dumped
|
|
1495
1419
|
|
|
1496
|
-
def create(self, items:
|
|
1420
|
+
def create(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
|
|
1497
1421
|
result = self.client.data_modeling.instances.apply(
|
|
1498
1422
|
edges=items, auto_create_direct_relations=True, replace=False
|
|
1499
1423
|
)
|
|
@@ -1502,7 +1426,7 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
|
|
|
1502
1426
|
def retrieve(self, ids: SequenceNotStr[EdgeId]) -> EdgeList:
|
|
1503
1427
|
return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids)).edges
|
|
1504
1428
|
|
|
1505
|
-
def update(self, items:
|
|
1429
|
+
def update(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
|
|
1506
1430
|
result = self.client.data_modeling.instances.apply(
|
|
1507
1431
|
edges=items, auto_create_direct_relations=False, replace=True
|
|
1508
1432
|
)
|
|
@@ -1532,22 +1456,6 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
|
|
|
1532
1456
|
# Edges will be deleted in .delete call.
|
|
1533
1457
|
return 0
|
|
1534
1458
|
|
|
1535
|
-
@classmethod
|
|
1536
|
-
@lru_cache(maxsize=1)
|
|
1537
|
-
def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
|
|
1538
|
-
node_spec = super().get_write_cls_parameter_spec()
|
|
1539
|
-
# This is a deviation between the SDK and the API
|
|
1540
|
-
node_spec.add(ParameterSpec(("instanceType",), frozenset({"str"}), is_required=False, _is_nullable=False))
|
|
1541
|
-
node_spec.add(
|
|
1542
|
-
ParameterSpec(
|
|
1543
|
-
("sources", ANY_INT, "source", "type"),
|
|
1544
|
-
frozenset({"str"}),
|
|
1545
|
-
is_required=True,
|
|
1546
|
-
_is_nullable=False,
|
|
1547
|
-
)
|
|
1548
|
-
)
|
|
1549
|
-
return ParameterSpecSet(node_spec, spec_name=cls.__name__)
|
|
1550
|
-
|
|
1551
1459
|
def diff_list(
|
|
1552
1460
|
self, local: list[Any], cdf: list[Any], json_path: tuple[str | int, ...]
|
|
1553
1461
|
) -> tuple[dict[int, int], list[int]]:
|