cognite-toolkit 0.7.26__tar.gz → 0.7.28__tar.gz
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-0.7.26 → cognite_toolkit-0.7.28}/PKG-INFO +1 -1
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_migrate_app.py +38 -11
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/charts.py +3 -3
- cognite_toolkit-0.7.28/cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +184 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/__init__.py +2 -2
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py +0 -2
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +147 -9
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +12 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_applications.py +22 -1
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_resources/cdf.toml +1 -1
- cognite_toolkit-0.7.28/cognite_toolkit/_version.py +1 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/pyproject.toml +1 -1
- cognite_toolkit-0.7.26/cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +0 -322
- cognite_toolkit-0.7.26/cognite_toolkit/_cdf_tk/commands/_migrate/canvas.py +0 -201
- cognite_toolkit-0.7.26/cognite_toolkit/_version.py +0 -1
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/README.md +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_auth_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_core_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_data_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_dev_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_download_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_dump_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_landing_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_modules_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_profile_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_purge.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_repo_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_run.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_upload_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_datamodels.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_file.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_function.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_location.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_streamlit.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/builders/_transformation.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cdf_toml.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/_constants.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/_toolkit_client.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/canvas.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/charts.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/dml.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/extended_data_modeling.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/extended_files.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/extended_functions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/extended_raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/infield.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/location_filters.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/lookup.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/migration.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/project.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/api.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/capabilities.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/data_postprocessing.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/frames.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/locations.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/maps.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/robots.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/robotics/utlis.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/search.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/search_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/streams.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/three_d.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/token.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api/verify.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/api_client.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/apm_config_v1.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/canvas.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/extendable_cognite_file.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetadata.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/extended_timeseries.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/functions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/infield.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/instances.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/migration.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/pending_instances_ids.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/project.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/robotics.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/search_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/sequences.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/streams.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/testing.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/utils/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/utils/_concurrency.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/client/utils/_http_client.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_changes.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_cli_commands.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_download.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/command.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_profile.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_purge.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_questionary_style.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_upload.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_utils.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/_virtual_env.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/about.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/auth.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/build_cmd.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/clean.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/collect.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/deploy.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/dump_resource.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/init.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/modules.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/pull.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/repo.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/resources.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/run.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/constants.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/cruds/_worker.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_build_files.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_build_variables.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_built_modules.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_built_resources.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_config_yaml.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_deploy_results.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_module_resources.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_module_toml.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_packages.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/data_classes/_yaml_comments.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/exceptions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/feature_flags.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/hints.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/plugins.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/protocols.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/prototypes/commands/import_.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/agent.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/asset.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/authentication.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/containers.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/data_model.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/datapoint_subscription.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/dataset.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/event.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/filemetadata.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/function_schedule.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/functions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/graphql_model.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/groups.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/instance.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/labels.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/location.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/migration.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/raw_database_table.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/relationship.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/capability.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/search_config.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/securitycategories.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/sequence.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/space.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/streamlit_.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/streams.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/threedmodels.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/timeseries.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/transformation_destination.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/transformation_notification.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/transformation_schedule.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/transformations.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/views.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/workflow.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_annotations.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_data_classes.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_datapoints.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_file_content.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_instances.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/tk_warnings/base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/tk_warnings/other.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/tracker.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/_auxiliary.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/aggregators.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/auth.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/auxiliary.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/cdf.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/cicd.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/cli_args.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/collection.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/diff_list.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/file.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/fileio/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/fileio/_base.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/fileio/_compression.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/fileio/_writers.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/graphql_parser.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/hashing.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/http_client/_client.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/interactive_select.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/modules.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/producer_worker.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/progress_tracker.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/repository.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/sentry_utils.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/sql_parser.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/text.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/useful_types.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/utils/validate_access.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/validation.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/.env.tmpl +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/.gitignore +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/config.dev.yaml +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/demo/__init__.py +0 -0
- {cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/demo/_base.py +0 -0
{cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/apps/_migrate_app.py
RENAMED
|
@@ -8,17 +8,14 @@ from cognite.client.data_classes import Annotation
|
|
|
8
8
|
from cognite.client.data_classes.data_modeling import ContainerId
|
|
9
9
|
|
|
10
10
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
11
|
-
from cognite_toolkit._cdf_tk.commands import
|
|
12
|
-
MigrationCanvasCommand,
|
|
13
|
-
MigrationPrepareCommand,
|
|
14
|
-
)
|
|
11
|
+
from cognite_toolkit._cdf_tk.commands import MigrationPrepareCommand
|
|
15
12
|
from cognite_toolkit._cdf_tk.commands._migrate import MigrationCommand
|
|
16
13
|
from cognite_toolkit._cdf_tk.commands._migrate.creators import (
|
|
17
14
|
InfieldV2ConfigCreator,
|
|
18
15
|
InstanceSpaceCreator,
|
|
19
16
|
SourceSystemCreator,
|
|
20
17
|
)
|
|
21
|
-
from cognite_toolkit._cdf_tk.commands._migrate.data_mapper import AssetCentricMapper, ChartMapper
|
|
18
|
+
from cognite_toolkit._cdf_tk.commands._migrate.data_mapper import AssetCentricMapper, CanvasMapper, ChartMapper
|
|
22
19
|
from cognite_toolkit._cdf_tk.commands._migrate.migration_io import (
|
|
23
20
|
AnnotationMigrationIO,
|
|
24
21
|
AssetCentricMigrationIO,
|
|
@@ -28,14 +25,15 @@ from cognite_toolkit._cdf_tk.commands._migrate.selectors import (
|
|
|
28
25
|
MigrateDataSetSelector,
|
|
29
26
|
MigrationCSVFileSelector,
|
|
30
27
|
)
|
|
31
|
-
from cognite_toolkit._cdf_tk.storageio import ChartIO
|
|
32
|
-
from cognite_toolkit._cdf_tk.storageio.selectors import ChartExternalIdSelector
|
|
28
|
+
from cognite_toolkit._cdf_tk.storageio import CanvasIO, ChartIO
|
|
29
|
+
from cognite_toolkit._cdf_tk.storageio.selectors import CanvasExternalIdSelector, ChartExternalIdSelector
|
|
33
30
|
from cognite_toolkit._cdf_tk.utils.auth import EnvironmentVariables
|
|
34
31
|
from cognite_toolkit._cdf_tk.utils.cli_args import parse_view_str
|
|
35
32
|
from cognite_toolkit._cdf_tk.utils.interactive_select import (
|
|
36
33
|
AssetInteractiveSelect,
|
|
37
34
|
DataModelingSelect,
|
|
38
35
|
FileMetadataInteractiveSelect,
|
|
36
|
+
InteractiveCanvasSelect,
|
|
39
37
|
InteractiveChartSelect,
|
|
40
38
|
ResourceViewMappingInteractiveSelect,
|
|
41
39
|
)
|
|
@@ -855,6 +853,23 @@ class MigrateApp(typer.Typer):
|
|
|
855
853
|
"performed to select the Canvas to migrate."
|
|
856
854
|
),
|
|
857
855
|
] = None,
|
|
856
|
+
skip_on_missing_ref: Annotated[
|
|
857
|
+
bool,
|
|
858
|
+
typer.Option(
|
|
859
|
+
"--skip-on-missing-ref",
|
|
860
|
+
"-s",
|
|
861
|
+
help="If set, the migration will skip Canvases that reference resources that have not been migrated to data modeling. "
|
|
862
|
+
"If not set, the migration will continue but the result will exclude the missing references.",
|
|
863
|
+
),
|
|
864
|
+
] = False,
|
|
865
|
+
log_dir: Annotated[
|
|
866
|
+
Path,
|
|
867
|
+
typer.Option(
|
|
868
|
+
"--log-dir",
|
|
869
|
+
"-l",
|
|
870
|
+
help="Path to the directory where migration logs will be stored.",
|
|
871
|
+
),
|
|
872
|
+
] = Path(f"migration_logs_{TODAY}"),
|
|
858
873
|
dry_run: Annotated[
|
|
859
874
|
bool,
|
|
860
875
|
typer.Option(
|
|
@@ -880,12 +895,24 @@ class MigrateApp(typer.Typer):
|
|
|
880
895
|
is populated with the mapping from Asset-Centric resources to the new data modeling resources.
|
|
881
896
|
"""
|
|
882
897
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
898
|
+
if external_id is None:
|
|
899
|
+
interactive = InteractiveCanvasSelect(client)
|
|
900
|
+
external_id = interactive.select_external_ids()
|
|
901
|
+
log_dir = questionary.path("Specify log directory for migration logs:", default=str(log_dir)).ask()
|
|
902
|
+
dry_run = questionary.confirm("Do you want to perform a dry run?", default=dry_run).ask()
|
|
903
|
+
verbose = questionary.confirm("Do you want verbose output?", default=verbose).ask()
|
|
904
|
+
if any(res is None for res in [log_dir, dry_run, verbose]):
|
|
905
|
+
raise typer.Abort()
|
|
906
|
+
log_dir = Path(log_dir)
|
|
883
907
|
|
|
884
|
-
cmd =
|
|
908
|
+
cmd = MigrationCommand()
|
|
909
|
+
selector = CanvasExternalIdSelector(external_ids=tuple(external_id))
|
|
885
910
|
cmd.run(
|
|
886
|
-
lambda: cmd.
|
|
887
|
-
|
|
888
|
-
|
|
911
|
+
lambda: cmd.migrate(
|
|
912
|
+
selected=selector,
|
|
913
|
+
data=CanvasIO(client, exclude_existing_version=True),
|
|
914
|
+
mapper=CanvasMapper(client, dry_run=dry_run, skip_on_missing_ref=skip_on_missing_ref),
|
|
915
|
+
log_dir=log_dir,
|
|
889
916
|
dry_run=dry_run,
|
|
890
917
|
verbose=verbose,
|
|
891
918
|
)
|
|
@@ -36,7 +36,7 @@ class ChartCore(WriteableCogniteResource["ChartWrite"], ABC):
|
|
|
36
36
|
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
37
37
|
"""Convert the chart to a dictionary representation."""
|
|
38
38
|
output = super().dump(camel_case=camel_case)
|
|
39
|
-
output["data"] = self.data.
|
|
39
|
+
output["data"] = self.data.model_dump(mode="json", by_alias=camel_case, exclude_unset=True)
|
|
40
40
|
return output
|
|
41
41
|
|
|
42
42
|
|
|
@@ -58,7 +58,7 @@ class ChartWrite(ChartCore):
|
|
|
58
58
|
return cls(
|
|
59
59
|
external_id=resource["externalId"],
|
|
60
60
|
visibility=resource["visibility"],
|
|
61
|
-
data=ChartData._load(resource["data"]
|
|
61
|
+
data=ChartData._load(resource["data"]),
|
|
62
62
|
)
|
|
63
63
|
|
|
64
64
|
|
|
@@ -98,7 +98,7 @@ class Chart(ChartCore):
|
|
|
98
98
|
created_time=resource["createdTime"],
|
|
99
99
|
last_updated_time=resource["lastUpdatedTime"],
|
|
100
100
|
visibility=resource["visibility"],
|
|
101
|
-
data=ChartData._load(resource["data"]
|
|
101
|
+
data=ChartData._load(resource["data"]),
|
|
102
102
|
owner_id=resource["ownerId"],
|
|
103
103
|
)
|
|
104
104
|
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from cognite.client.data_classes.data_modeling import NodeId, ViewId
|
|
4
|
+
from pydantic import JsonValue, field_serializer, field_validator
|
|
5
|
+
|
|
6
|
+
from .base import BaseModelObject
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UserInfo(BaseModelObject):
|
|
10
|
+
id: str | None = None
|
|
11
|
+
email: str | None = None
|
|
12
|
+
display_name: str | None = None
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ChartSettings(BaseModelObject):
|
|
16
|
+
show_y_axis: bool = True
|
|
17
|
+
show_min_max: bool = True
|
|
18
|
+
show_gridlines: bool = True
|
|
19
|
+
merge_units: bool = False
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ThresholdFilter(BaseModelObject):
|
|
23
|
+
min_unit: str | None = None
|
|
24
|
+
max_unit: str | None = None
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ChartCall(BaseModelObject):
|
|
28
|
+
id: str | None = None
|
|
29
|
+
hash: int | None = None
|
|
30
|
+
call_id: str | None = None
|
|
31
|
+
call_date: int | None = None
|
|
32
|
+
status: str | None = None
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class SubSetting(BaseModelObject):
|
|
36
|
+
auto_align: bool | None = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ChartPosition(BaseModelObject):
|
|
40
|
+
x: float | None = None
|
|
41
|
+
y: float | None = None
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class FlowElement(BaseModelObject):
|
|
45
|
+
id: str | None = None
|
|
46
|
+
type: str | None = None
|
|
47
|
+
position: ChartPosition | None = None
|
|
48
|
+
data: JsonValue | None = None
|
|
49
|
+
source: str | None = None
|
|
50
|
+
target: str | None = None
|
|
51
|
+
source_handle: str | None = None
|
|
52
|
+
target_handle: str | None = None
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class Flow(BaseModelObject):
|
|
56
|
+
zoom: float | None = None
|
|
57
|
+
elements: list[FlowElement] | None = None
|
|
58
|
+
position: tuple[float | None, float | None] | None = None
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class ChartElement(BaseModelObject):
|
|
62
|
+
id: str | None = None
|
|
63
|
+
type: str | None = None
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class ChartSource(ChartElement): ...
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class ChartCoreTimeseries(ChartElement):
|
|
70
|
+
node_reference: NodeId | None = None
|
|
71
|
+
view_reference: ViewId | None = None
|
|
72
|
+
display_mode: str | None = None
|
|
73
|
+
color: str | None = None
|
|
74
|
+
created_at: int | None = None
|
|
75
|
+
enabled: bool | None = None
|
|
76
|
+
interpolation: str | None = None
|
|
77
|
+
line_style: str | None = None
|
|
78
|
+
line_weight: float | None = None
|
|
79
|
+
name: str | None = None
|
|
80
|
+
preferred_unit: str | None = None
|
|
81
|
+
range: list[float | None] | None = None
|
|
82
|
+
|
|
83
|
+
@field_serializer("node_reference", when_used="always")
|
|
84
|
+
def serialize_node_reference(self, node_reference: NodeId | None) -> dict[str, Any] | None:
|
|
85
|
+
if node_reference:
|
|
86
|
+
return node_reference.dump(include_instance_type=False)
|
|
87
|
+
return None
|
|
88
|
+
|
|
89
|
+
@field_serializer("view_reference", when_used="always")
|
|
90
|
+
def serialize_view_reference(self, view_reference: ViewId | None) -> dict[str, Any] | None:
|
|
91
|
+
if view_reference:
|
|
92
|
+
return view_reference.dump(include_type=False)
|
|
93
|
+
return None
|
|
94
|
+
|
|
95
|
+
@field_validator("node_reference", mode="before")
|
|
96
|
+
@classmethod
|
|
97
|
+
def validate_node_reference(cls, value: Any) -> NodeId | None:
|
|
98
|
+
if value is None or isinstance(value, NodeId):
|
|
99
|
+
return value
|
|
100
|
+
return NodeId.load(value)
|
|
101
|
+
|
|
102
|
+
@field_validator("view_reference", mode="before")
|
|
103
|
+
@classmethod
|
|
104
|
+
def validate_view_reference(cls, value: Any) -> ViewId | None:
|
|
105
|
+
if value is None or isinstance(value, ViewId):
|
|
106
|
+
return value
|
|
107
|
+
return ViewId.load(value)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class ChartTimeseries(ChartElement):
|
|
111
|
+
color: str | None = None
|
|
112
|
+
created_at: int | None = None
|
|
113
|
+
enabled: bool | None = None
|
|
114
|
+
interpolation: str | None = None
|
|
115
|
+
line_style: str | None = None
|
|
116
|
+
line_weight: float | None = None
|
|
117
|
+
name: str | None = None
|
|
118
|
+
preferred_unit: str | None = None
|
|
119
|
+
range: list[float | None] | None = None
|
|
120
|
+
unit: str | None = None
|
|
121
|
+
ts_id: int | None = None
|
|
122
|
+
ts_external_id: str | None = None
|
|
123
|
+
display_mode: str | None = None
|
|
124
|
+
original_unit: str | None = None
|
|
125
|
+
description: str | None = None
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class ChartWorkflow(ChartElement):
|
|
129
|
+
version: str | None = None
|
|
130
|
+
name: str | None = None
|
|
131
|
+
color: str | None = None
|
|
132
|
+
enabled: bool | None = None
|
|
133
|
+
line_weight: float | None = None
|
|
134
|
+
line_style: str | None = None
|
|
135
|
+
interpolation: str | None = None
|
|
136
|
+
unit: str | None = None
|
|
137
|
+
preferred_unit: str | None = None
|
|
138
|
+
range: list[float | None] | None = None
|
|
139
|
+
created_at: int | None = None
|
|
140
|
+
settings: SubSetting | None = None
|
|
141
|
+
flow: Flow | None = None
|
|
142
|
+
calls: list[ChartCall] | None = None
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
class ChartThreshold(ChartElement):
|
|
146
|
+
visible: bool | None = None
|
|
147
|
+
name: str | None = None
|
|
148
|
+
source_id: str | None = None
|
|
149
|
+
upper_limit: float | None = None
|
|
150
|
+
filter: ThresholdFilter | None = None
|
|
151
|
+
calls: list[ChartCall] | None = None
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class ChartScheduledCalculation(ChartElement):
|
|
155
|
+
color: str | None = None
|
|
156
|
+
created_at: int | None = None
|
|
157
|
+
description: str | None = None
|
|
158
|
+
enabled: bool | None = None
|
|
159
|
+
interpolation: str | None = None
|
|
160
|
+
line_style: str | None = None
|
|
161
|
+
line_weight: float | None = None
|
|
162
|
+
name: str | None = None
|
|
163
|
+
preferred_unit: str | None = None
|
|
164
|
+
range: list[float | None] | None = None
|
|
165
|
+
unit: str | None = None
|
|
166
|
+
version: str | None = None
|
|
167
|
+
settings: SubSetting | None = None
|
|
168
|
+
flow: Flow | None = None
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class ChartData(BaseModelObject):
|
|
172
|
+
version: int | None = None
|
|
173
|
+
name: str | None = None
|
|
174
|
+
date_from: str | None = None
|
|
175
|
+
date_to: str | None = None
|
|
176
|
+
user_info: UserInfo | None = None
|
|
177
|
+
live_mode: bool | None = None
|
|
178
|
+
time_series_collection: list[ChartTimeseries] | None = None
|
|
179
|
+
core_timeseries_collection: list[ChartCoreTimeseries] | None = None
|
|
180
|
+
workflow_collection: list[ChartWorkflow] | None = None
|
|
181
|
+
source_collection: list[ChartSource] | None = None
|
|
182
|
+
threshold_collection: list[ChartThreshold] | None = None
|
|
183
|
+
scheduled_calculation_collection: list[ChartScheduledCalculation] | None = None
|
|
184
|
+
settings: ChartSettings | None = None
|
{cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/commands/__init__.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from ._download import DownloadCommand
|
|
2
2
|
from ._migrate import (
|
|
3
|
-
|
|
3
|
+
MigrationCommand,
|
|
4
4
|
MigrationPrepareCommand,
|
|
5
5
|
)
|
|
6
6
|
from ._profile import ProfileAssetCentricCommand, ProfileAssetCommand, ProfileRawCommand, ProfileTransformationCommand
|
|
@@ -30,7 +30,7 @@ __all__ = [
|
|
|
30
30
|
"DownloadCommand",
|
|
31
31
|
"DumpResourceCommand",
|
|
32
32
|
"InitCommand",
|
|
33
|
-
"
|
|
33
|
+
"MigrationCommand",
|
|
34
34
|
"MigrationPrepareCommand",
|
|
35
35
|
"ModulesCommand",
|
|
36
36
|
"ProfileAssetCentricCommand",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from collections
|
|
2
|
+
from collections import defaultdict
|
|
3
|
+
from collections.abc import Callable, Sequence
|
|
3
4
|
from typing import Generic, cast
|
|
4
5
|
from uuid import uuid4
|
|
5
6
|
|
|
@@ -11,8 +12,15 @@ from cognite.client.data_classes.data_modeling import (
|
|
|
11
12
|
View,
|
|
12
13
|
ViewId,
|
|
13
14
|
)
|
|
15
|
+
from cognite.client.exceptions import CogniteException
|
|
14
16
|
|
|
15
17
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
18
|
+
from cognite_toolkit._cdf_tk.client.data_classes.canvas import (
|
|
19
|
+
ContainerReferenceApply,
|
|
20
|
+
FdmInstanceContainerReferenceApply,
|
|
21
|
+
IndustrialCanvas,
|
|
22
|
+
IndustrialCanvasApply,
|
|
23
|
+
)
|
|
16
24
|
from cognite_toolkit._cdf_tk.client.data_classes.charts import Chart, ChartWrite
|
|
17
25
|
from cognite_toolkit._cdf_tk.client.data_classes.charts_data import (
|
|
18
26
|
ChartCoreTimeseries,
|
|
@@ -23,13 +31,18 @@ from cognite_toolkit._cdf_tk.client.data_classes.migration import ResourceViewMa
|
|
|
23
31
|
from cognite_toolkit._cdf_tk.commands._migrate.conversion import DirectRelationCache, asset_centric_to_dm
|
|
24
32
|
from cognite_toolkit._cdf_tk.commands._migrate.data_classes import AssetCentricMapping
|
|
25
33
|
from cognite_toolkit._cdf_tk.commands._migrate.default_mappings import create_default_mappings
|
|
26
|
-
from cognite_toolkit._cdf_tk.commands._migrate.issues import
|
|
34
|
+
from cognite_toolkit._cdf_tk.commands._migrate.issues import (
|
|
35
|
+
CanvasMigrationIssue,
|
|
36
|
+
ChartMigrationIssue,
|
|
37
|
+
ConversionIssue,
|
|
38
|
+
MigrationIssue,
|
|
39
|
+
)
|
|
27
40
|
from cognite_toolkit._cdf_tk.commands._migrate.selectors import AssetCentricMigrationSelector
|
|
28
41
|
from cognite_toolkit._cdf_tk.constants import MISSING_INSTANCE_SPACE
|
|
29
|
-
from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
|
|
42
|
+
from cognite_toolkit._cdf_tk.exceptions import ToolkitMigrationError, ToolkitValueError
|
|
30
43
|
from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
|
|
31
44
|
from cognite_toolkit._cdf_tk.storageio._base import T_Selector
|
|
32
|
-
from cognite_toolkit._cdf_tk.storageio.selectors import ChartSelector
|
|
45
|
+
from cognite_toolkit._cdf_tk.storageio.selectors import CanvasSelector, ChartSelector
|
|
33
46
|
from cognite_toolkit._cdf_tk.utils import humanize_collection
|
|
34
47
|
from cognite_toolkit._cdf_tk.utils.useful_types import (
|
|
35
48
|
T_AssetCentricResourceExtended,
|
|
@@ -197,16 +210,14 @@ class ChartMapper(DataMapper[ChartSelector, Chart, ChartWrite]):
|
|
|
197
210
|
def _create_new_timeseries_core(
|
|
198
211
|
self, ts_item: ChartTimeseries, node_id: NodeId, consumer_view_id: ViewId | None
|
|
199
212
|
) -> ChartCoreTimeseries:
|
|
200
|
-
dumped = ts_item.
|
|
201
|
-
for asset_centric_key in ["tsId", "tsExternalId", "originalUnit"]:
|
|
202
|
-
dumped.pop(asset_centric_key, None)
|
|
203
|
-
|
|
213
|
+
dumped = ts_item.model_dump(mode="json", by_alias=True, exclude_unset=True)
|
|
204
214
|
dumped["nodeReference"] = node_id
|
|
205
215
|
dumped["viewReference"] = consumer_view_id
|
|
206
216
|
new_uuid = str(uuid4())
|
|
207
217
|
dumped["id"] = new_uuid
|
|
208
218
|
dumped["type"] = "coreTimeseries"
|
|
209
|
-
|
|
219
|
+
# We ignore extra here to only include the fields that are shared between ChartTimeseries and ChartCoreTimeseries
|
|
220
|
+
core_timeseries = ChartCoreTimeseries.model_validate(dumped, extra="ignore")
|
|
210
221
|
return core_timeseries
|
|
211
222
|
|
|
212
223
|
def _get_node_id_consumer_view_id(self, ts_item: ChartTimeseries) -> tuple[NodeId | None, ViewId | None]:
|
|
@@ -245,3 +256,130 @@ class ChartMapper(DataMapper[ChartSelector, Chart, ChartWrite]):
|
|
|
245
256
|
new_source_item = ChartSource(id=cast(str, core_ts_item.id), type=cast(str, core_ts_item.type))
|
|
246
257
|
updated_source_collection.append(new_source_item)
|
|
247
258
|
return updated_source_collection
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
class CanvasMapper(DataMapper[CanvasSelector, IndustrialCanvas, IndustrialCanvasApply]):
|
|
262
|
+
# Note sequences are not supported in Canvas, so we do not include them here.
|
|
263
|
+
asset_centric_resource_types = tuple(("asset", "event", "timeseries", "file"))
|
|
264
|
+
DEFAULT_ASSET_VIEW = ViewId("cdf_cdm", "CogniteAsset", "v1")
|
|
265
|
+
DEFAULT_EVENT_VIEW = ViewId("cdf_cdm", "CogniteActivity", "v1")
|
|
266
|
+
DEFAULT_FILE_VIEW = ViewId("cdf_cdm", "CogniteFile", "v1")
|
|
267
|
+
DEFAULT_TIMESERIES_VIEW = ViewId("cdf_cdm", "CogniteTimeSeries", "v1")
|
|
268
|
+
|
|
269
|
+
def __init__(self, client: ToolkitClient, dry_run: bool, skip_on_missing_ref: bool = False) -> None:
|
|
270
|
+
self.client = client
|
|
271
|
+
self.dry_run = dry_run
|
|
272
|
+
self.skip_on_missing_ref = skip_on_missing_ref
|
|
273
|
+
|
|
274
|
+
def map(self, source: Sequence[IndustrialCanvas]) -> Sequence[tuple[IndustrialCanvasApply | None, MigrationIssue]]:
|
|
275
|
+
self._populate_cache(source)
|
|
276
|
+
output: list[tuple[IndustrialCanvasApply | None, MigrationIssue]] = []
|
|
277
|
+
for item in source:
|
|
278
|
+
mapped_item, issue = self._map_single_item(item)
|
|
279
|
+
output.append((mapped_item, issue))
|
|
280
|
+
return output
|
|
281
|
+
|
|
282
|
+
@property
|
|
283
|
+
def lookup_methods(self) -> dict[str, Callable]:
|
|
284
|
+
return {
|
|
285
|
+
"asset": self.client.migration.lookup.assets,
|
|
286
|
+
"event": self.client.migration.lookup.events,
|
|
287
|
+
"timeseries": self.client.migration.lookup.time_series,
|
|
288
|
+
"file": self.client.migration.lookup.files,
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
def _populate_cache(self, source: Sequence[IndustrialCanvas]) -> None:
|
|
292
|
+
"""Populate the internal cache with references from the source canvases.
|
|
293
|
+
|
|
294
|
+
Note that the consumption views are also cached as part of the timeseries lookup.
|
|
295
|
+
"""
|
|
296
|
+
ids_by_type: dict[str, set[int]] = defaultdict(set)
|
|
297
|
+
for canvas in source:
|
|
298
|
+
for ref in canvas.container_references or []:
|
|
299
|
+
if ref.container_reference_type in self.asset_centric_resource_types:
|
|
300
|
+
ids_by_type[ref.container_reference_type].add(ref.resource_id)
|
|
301
|
+
|
|
302
|
+
for resource_type, lookup_method in self.lookup_methods.items():
|
|
303
|
+
ids = ids_by_type.get(resource_type)
|
|
304
|
+
if ids:
|
|
305
|
+
lookup_method(list(ids))
|
|
306
|
+
|
|
307
|
+
def _get_node_id(self, resource_id: int, resource_type: str) -> NodeId | None:
|
|
308
|
+
"""Look up the node ID for a given resource ID and type."""
|
|
309
|
+
try:
|
|
310
|
+
return self.lookup_methods[resource_type](resource_id)
|
|
311
|
+
except KeyError:
|
|
312
|
+
raise ToolkitValueError(f"Unsupported resource type '{resource_type}' for container reference migration.")
|
|
313
|
+
|
|
314
|
+
def _get_consumer_view_id(self, resource_id: int, resource_type: str) -> ViewId:
|
|
315
|
+
"""Look up the consumer view ID for a given resource ID and type."""
|
|
316
|
+
lookup_map = {
|
|
317
|
+
"asset": (self.client.migration.lookup.assets.consumer_view, self.DEFAULT_ASSET_VIEW),
|
|
318
|
+
"event": (self.client.migration.lookup.events.consumer_view, self.DEFAULT_EVENT_VIEW),
|
|
319
|
+
"timeseries": (self.client.migration.lookup.time_series.consumer_view, self.DEFAULT_TIMESERIES_VIEW),
|
|
320
|
+
"file": (self.client.migration.lookup.files.consumer_view, self.DEFAULT_FILE_VIEW),
|
|
321
|
+
}
|
|
322
|
+
if lookup_tuple := lookup_map.get(resource_type):
|
|
323
|
+
method, fallback = lookup_tuple
|
|
324
|
+
return method(resource_id) or fallback
|
|
325
|
+
|
|
326
|
+
raise ToolkitValueError(f"Unsupported resource type '{resource_type}' for container reference migration.")
|
|
327
|
+
|
|
328
|
+
def _map_single_item(self, canvas: IndustrialCanvas) -> tuple[IndustrialCanvasApply | None, CanvasMigrationIssue]:
|
|
329
|
+
update = canvas.as_write()
|
|
330
|
+
issue = CanvasMigrationIssue(canvas_external_id=canvas.canvas.external_id, canvas_name=canvas.canvas.name)
|
|
331
|
+
|
|
332
|
+
remaining_container_references: list[ContainerReferenceApply] = []
|
|
333
|
+
new_fdm_references: list[FdmInstanceContainerReferenceApply] = []
|
|
334
|
+
for ref in update.container_references or []:
|
|
335
|
+
if ref.container_reference_type not in self.asset_centric_resource_types:
|
|
336
|
+
remaining_container_references.append(ref)
|
|
337
|
+
continue
|
|
338
|
+
node_id = self._get_node_id(ref.resource_id, ref.container_reference_type)
|
|
339
|
+
if node_id is None:
|
|
340
|
+
issue.missing_reference_ids.append(ref.as_asset_centric_id())
|
|
341
|
+
else:
|
|
342
|
+
consumer_view = self._get_consumer_view_id(ref.resource_id, ref.container_reference_type)
|
|
343
|
+
fdm_ref = self.migrate_container_reference(ref, canvas.canvas.external_id, node_id, consumer_view)
|
|
344
|
+
new_fdm_references.append(fdm_ref)
|
|
345
|
+
if issue.missing_reference_ids and self.skip_on_missing_ref:
|
|
346
|
+
return None, issue
|
|
347
|
+
|
|
348
|
+
update.container_references = remaining_container_references
|
|
349
|
+
update.fdm_instance_container_references.extend(new_fdm_references)
|
|
350
|
+
if not self.dry_run:
|
|
351
|
+
backup = canvas.as_write().create_backup()
|
|
352
|
+
try:
|
|
353
|
+
self.client.canvas.industrial.create(backup)
|
|
354
|
+
except CogniteException as e:
|
|
355
|
+
raise ToolkitMigrationError(
|
|
356
|
+
f"Failed to create backup for canvas '{canvas.canvas.name}': {e!s}. "
|
|
357
|
+
) from e
|
|
358
|
+
|
|
359
|
+
return update, issue
|
|
360
|
+
|
|
361
|
+
@classmethod
|
|
362
|
+
def migrate_container_reference(
|
|
363
|
+
cls, reference: ContainerReferenceApply, canvas_external_id: str, instance_id: NodeId, consumer_view: ViewId
|
|
364
|
+
) -> FdmInstanceContainerReferenceApply:
|
|
365
|
+
"""Migrate a single container reference by replacing the asset-centric ID with the data model instance ID."""
|
|
366
|
+
new_id = str(uuid4())
|
|
367
|
+
new_external_id = f"{canvas_external_id}_{new_id}"
|
|
368
|
+
return FdmInstanceContainerReferenceApply(
|
|
369
|
+
external_id=new_external_id,
|
|
370
|
+
id_=new_id,
|
|
371
|
+
container_reference_type="fdmInstance",
|
|
372
|
+
instance_space=instance_id.space,
|
|
373
|
+
instance_external_id=instance_id.external_id,
|
|
374
|
+
view_space=consumer_view.space,
|
|
375
|
+
view_external_id=consumer_view.external_id,
|
|
376
|
+
view_version=consumer_view.version,
|
|
377
|
+
label=reference.label,
|
|
378
|
+
properties_=reference.properties_,
|
|
379
|
+
x=reference.x,
|
|
380
|
+
y=reference.y,
|
|
381
|
+
width=reference.width,
|
|
382
|
+
height=reference.height,
|
|
383
|
+
max_width=reference.max_width,
|
|
384
|
+
max_height=reference.max_height,
|
|
385
|
+
)
|
|
@@ -51,6 +51,18 @@ class ChartMigrationIssue(MigrationIssue):
|
|
|
51
51
|
)
|
|
52
52
|
|
|
53
53
|
|
|
54
|
+
class CanvasMigrationIssue(MigrationIssue):
|
|
55
|
+
type: ClassVar[str] = "canvasMigration"
|
|
56
|
+
canvas_external_id: str
|
|
57
|
+
canvas_name: str
|
|
58
|
+
missing_reference_ids: list[AssetCentricId] = Field(default_factory=list)
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def has_issues(self) -> bool:
|
|
62
|
+
"""Check if there are any issues recorded in this CanvasMigrationIssue."""
|
|
63
|
+
return bool(self.missing_reference_ids)
|
|
64
|
+
|
|
65
|
+
|
|
54
66
|
class ReadIssue(MigrationIssue):
|
|
55
67
|
"""Represents a read issue encountered during migration."""
|
|
56
68
|
|
{cognite_toolkit-0.7.26 → cognite_toolkit-0.7.28}/cognite_toolkit/_cdf_tk/storageio/_applications.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from collections.abc import Iterable, Sequence
|
|
2
2
|
from typing import Any
|
|
3
3
|
|
|
4
|
+
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
4
5
|
from cognite_toolkit._cdf_tk.client.data_classes.canvas import (
|
|
5
6
|
IndustrialCanvas,
|
|
6
7
|
IndustrialCanvasApply,
|
|
@@ -127,6 +128,15 @@ class ChartIO(UploadableStorageIO[ChartSelector, Chart, ChartWrite]):
|
|
|
127
128
|
|
|
128
129
|
|
|
129
130
|
class CanvasIO(UploadableStorageIO[CanvasSelector, IndustrialCanvas, IndustrialCanvasApply]):
|
|
131
|
+
"""Download and upload Industrial Canvases to/from CDF.
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
client (ToolkitClient): The Cognite Toolkit client to use for API interactions.
|
|
135
|
+
exclude_existing_version (bool): Whether to exclude the 'existingVersion' field when uploading canvases.
|
|
136
|
+
Defaults to True. If you set this to False, the upload may fail if the existing version in CDF is
|
|
137
|
+
lower or equal to the one in the uploaded data.
|
|
138
|
+
"""
|
|
139
|
+
|
|
130
140
|
KIND = "IndustrialCanvas"
|
|
131
141
|
SUPPORTED_DOWNLOAD_FORMATS = frozenset({".ndjson"})
|
|
132
142
|
SUPPORTED_COMPRESSIONS = frozenset({".gz"})
|
|
@@ -134,6 +144,10 @@ class CanvasIO(UploadableStorageIO[CanvasSelector, IndustrialCanvas, IndustrialC
|
|
|
134
144
|
CHUNK_SIZE = 10
|
|
135
145
|
BASE_SELECTOR = CanvasSelector
|
|
136
146
|
|
|
147
|
+
def __init__(self, client: ToolkitClient, exclude_existing_version: bool = True) -> None:
|
|
148
|
+
super().__init__(client)
|
|
149
|
+
self.exclude_existing_version = exclude_existing_version
|
|
150
|
+
|
|
137
151
|
def as_id(self, item: IndustrialCanvas) -> str:
|
|
138
152
|
return item.as_id()
|
|
139
153
|
|
|
@@ -171,12 +185,19 @@ class CanvasIO(UploadableStorageIO[CanvasSelector, IndustrialCanvas, IndustrialC
|
|
|
171
185
|
results: list[HTTPMessage] = []
|
|
172
186
|
for item in data_chunk:
|
|
173
187
|
instances = item.item.as_instances()
|
|
188
|
+
items: list[dict[str, JsonVal]] = []
|
|
189
|
+
for instance in instances:
|
|
190
|
+
dumped = instance.dump()
|
|
191
|
+
if self.exclude_existing_version:
|
|
192
|
+
dumped.pop("existingVersion", None)
|
|
193
|
+
items.append(dumped)
|
|
194
|
+
|
|
174
195
|
responses = http_client.request_with_retries(
|
|
175
196
|
message=SimpleBodyRequest(
|
|
176
197
|
endpoint_url=config.create_api_url("/models/instances"),
|
|
177
198
|
method="POST",
|
|
178
199
|
# MyPy does not understand that .dump is valid json
|
|
179
|
-
body_content={"items":
|
|
200
|
+
body_content={"items": items}, # type: ignore[dict-item]
|
|
180
201
|
)
|
|
181
202
|
)
|
|
182
203
|
results.extend(responses.as_item_responses(item.source_id))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.7.28"
|