cognite-data-quality 0.1.0__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_data_quality-0.1.0/.github/CODEOWNERS +1 -0
- cognite_data_quality-0.1.0/.github/workflows/build.yml +26 -0
- cognite_data_quality-0.1.0/.github/workflows/deploy.yml +343 -0
- cognite_data_quality-0.1.0/.github/workflows/release.yaml +73 -0
- cognite_data_quality-0.1.0/.gitignore +104 -0
- cognite_data_quality-0.1.0/.pre-commit-config.yaml +13 -0
- cognite_data_quality-0.1.0/.readthedocs.yaml +26 -0
- cognite_data_quality-0.1.0/ARCHITECTURE.md +1250 -0
- cognite_data_quality-0.1.0/CLAUDE.md +838 -0
- cognite_data_quality-0.1.0/CODE_OF_CONDUCT.md +129 -0
- cognite_data_quality-0.1.0/LICENSE +202 -0
- cognite_data_quality-0.1.0/PKG-INFO +742 -0
- cognite_data_quality-0.1.0/README.md +712 -0
- cognite_data_quality-0.1.0/add_dimensions_to_shacl.py +251 -0
- cognite_data_quality-0.1.0/add_remaining_dimensions.py +210 -0
- cognite_data_quality-0.1.0/cognite_data_quality/__init__.py +64 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_config.py +70 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_containers.py +226 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_credentials.py +42 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/__init__.py +1 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/__init__.py +1 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/cursor_state.py +411 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/records_api.py +350 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/shacl_utils.py +18 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/time_window.py +70 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/timestamp_collection_state.py +236 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handler.py +88 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/__init__.py +1 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/instance_validation.py +255 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/orchestrator.py +2116 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/partitioned_validation.py +554 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/raw_validation.py +724 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/test_rule.py +314 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/timeseries_validation.py +678 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_function_code/requirements.txt +12 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_records.py +381 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_rules.py +162 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_validation.py +282 -0
- cognite_data_quality-0.1.0/cognite_data_quality/_version.py +1 -0
- cognite_data_quality-0.1.0/cognite_data_quality/deploy.py +1475 -0
- cognite_data_quality-0.1.0/cognite_data_quality/invoke.py +294 -0
- cognite_data_quality-0.1.0/cognite_data_quality/runner.py +316 -0
- cognite_data_quality-0.1.0/cognite_data_quality/template_generator.py +913 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/PROPERTY_MAPPING.md +289 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/PROPERTY_VERIFICATION_REPORT.md +283 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/SHACL_RULES_DOCUMENTATION.md +1224 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/STANDARDS_REFERENCES.md +567 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/settings.yaml +47 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/commissioning_package_shacl_rules.ttl +151 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/compressor_shacl_rules.ttl +252 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/document_shacl_rules.ttl +611 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/electricmotor_shacl_rules.ttl +99 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/equipmentclass_shacl_rules.ttl +172 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/equipmenttype_shacl_rules.ttl +239 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failurecause_shacl_rules.ttl +56 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failuremechanism_shacl_rules.ttl +56 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failuremode_shacl_rules.ttl +56 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failurenotification_shacl_rules.ttl +482 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/heatexchanger_shacl_rules.ttl +409 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/notification_shacl_rules.ttl +175 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/operation_shacl_rules.ttl +56 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/pump_shacl_rules.ttl +208 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/tag_shacl_rules.ttl +504 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/timeseriesext_shacl_rules.ttl +445 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/workorder_shacl_rules.ttl +286 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/test_abpdev_cognite_data_quality.ipynb +2329 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/commissioning_package.yaml +40 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/compressor.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/document.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/electricmotor.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/equipmentclass.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/equipmenttype.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/failurecause.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/failuremechanism.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/failuremode.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/failurenotification.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/heatexchanger.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/notification.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/operation.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/pump.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/tag.yaml +22 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/timeseriesext.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/abp-dev/views/workorder.yaml +21 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/settings.yaml +64 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/equipment_shacl_rules.ttl +180 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/maintenance_order_shacl_rules.ttl +240 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/notification_shacl_rules.ttl +40 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/operation_shacl_rules.ttl +318 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/timeseries_quality_rules.ttl +248 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/timeseries/demo_timeseries_quality.yaml +71 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/views/equipment.yaml +46 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/views/maintenance_order.yaml +39 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/views/notification.yaml +39 -0
- cognite_data_quality-0.1.0/config/environments/cog-ai/views/operation.yaml +45 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/README.md +122 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/SHACL_RULES_COMPARISON.md +55 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/settings.yaml +39 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/abb_example_motor_list_shacl_rules.ttl +1915 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/largeboat_shacl_rules.ttl +51 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/navigationaid_shacl_rules.ttl +25 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/nmeatimeseries_shacl_rules.ttl +59 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/pgn_shacl_rules.ttl +28 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/smallboat_shacl_rules.ttl +67 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/tables/abb_example_motor_list.yaml +14 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_cogsail_cognite_data_quality.ipynb +1054 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/settings.yaml +28 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/boat_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360image_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagecollection_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagemodel_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagestation_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dmodel_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dobject_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3drevision_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dtransformation_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteactivity_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteasset_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteassetclass_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteassettype_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadmodel_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadnode_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadrevision_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecubemap_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitedescribable_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteequipment_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteequipmenttype_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitefile_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitefilecategory_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudmodel_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudrevision_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudvolume_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteschedulable_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitesourceable_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitesourcesystem_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitetimeseries_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteunit_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitevisualizable_shacl_rules.ttl +40 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/country_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/gpxfile_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/largeboat_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/manage2sail_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/mmsinumber_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/navigationaid_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/nmeatimeseries_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/orccertificate_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/orccertificatetype_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/pgn_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/race_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/racecourse_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regatta_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattaclass_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattacrew_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattacrewentry_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattaentry_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattanode_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattastart_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingboat_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingclass_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingclub_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailracesystem_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailsystem_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/saraircraft_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/shorestation_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/smallboat_shacl_rules.ttl +52 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/timeseries_quality_rules.ttl +42 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/timeseries/example_timeseries_quality.yaml +19 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/boat.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360image.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagecollection.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagemodel.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagestation.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dmodel.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dobject.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3drevision.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dtransformation.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteactivity.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteasset.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteassetclass.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteassettype.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadmodel.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadnode.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadrevision.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecubemap.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitedescribable.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteequipment.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteequipmenttype.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitefile.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitefilecategory.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudmodel.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudrevision.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudvolume.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteschedulable.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitesourceable.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitesourcesystem.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitetimeseries.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteunit.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitevisualizable.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/country.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/gpxfile.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/largeboat.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/manage2sail.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/mmsinumber.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/navigationaid.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/nmeatimeseries.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/orccertificate.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/orccertificatetype.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/pgn.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/race.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/racecourse.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regatta.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattaclass.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattacrew.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattacrewentry.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattaentry.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattanode.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattastart.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingboat.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingclass.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingclub.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailracesystem.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailsystem.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/saraircraft.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/shorestation.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/smallboat.yaml +20 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/views/largeboat.yaml +35 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/views/navigationaid.yaml +31 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/views/nmeatimeseries.yaml +31 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/views/pgn.yaml +31 -0
- cognite_data_quality-0.1.0/config/environments/cog-sail/views/smallboat.yaml +35 -0
- cognite_data_quality-0.1.0/config/timeseries_samples/critical_sensors_quality.yaml +70 -0
- cognite_data_quality-0.1.0/config/timeseries_samples/example_timeseries_quality.yaml +82 -0
- cognite_data_quality-0.1.0/config.toml.example +14 -0
- cognite_data_quality-0.1.0/dev.py +193 -0
- cognite_data_quality-0.1.0/docs/api/config.md +6 -0
- cognite_data_quality-0.1.0/docs/api/deploy.md +214 -0
- cognite_data_quality-0.1.0/docs/api/invoke.md +3 -0
- cognite_data_quality-0.1.0/docs/api/records.md +6 -0
- cognite_data_quality-0.1.0/docs/api/runner.md +6 -0
- cognite_data_quality-0.1.0/docs/index.md +99 -0
- cognite_data_quality-0.1.0/docs/installation.md +64 -0
- cognite_data_quality-0.1.0/docs/quickstart/config.md +42 -0
- cognite_data_quality-0.1.0/docs/quickstart/notebook.md +52 -0
- cognite_data_quality-0.1.0/docs/quickstart/where_to_start.md +152 -0
- cognite_data_quality-0.1.0/docs/requirements.txt +9 -0
- cognite_data_quality-0.1.0/docs/usage/deploy.md +146 -0
- cognite_data_quality-0.1.0/docs/usage/invoke.md +98 -0
- cognite_data_quality-0.1.0/docs/usage/records_output.md +191 -0
- cognite_data_quality-0.1.0/docs/usage/rule_sources.md +55 -0
- cognite_data_quality-0.1.0/docs/usage/run_validation.md +90 -0
- cognite_data_quality-0.1.0/docs/usage/runtime_options.md +91 -0
- cognite_data_quality-0.1.0/docs/usage/shacl_cdf_data_models.md +46 -0
- cognite_data_quality-0.1.0/generate_demo_data/handler.py +521 -0
- cognite_data_quality-0.1.0/generate_demo_data/requirements.txt +5 -0
- cognite_data_quality-0.1.0/ila.preproc.yml +3565 -0
- cognite_data_quality-0.1.0/last_changelog_entry.md +12 -0
- cognite_data_quality-0.1.0/last_git_message.txt +24 -0
- cognite_data_quality-0.1.0/last_version.txt +1 -0
- cognite_data_quality-0.1.0/mkdocs.yml +89 -0
- cognite_data_quality-0.1.0/pyproject.toml +88 -0
- cognite_data_quality-0.1.0/release.md +122 -0
- cognite_data_quality-0.1.0/scripts/convert_md_to_docx.py +582 -0
- cognite_data_quality-0.1.0/scripts/deploy_demo_data.py +378 -0
- cognite_data_quality-0.1.0/scripts/deploy_infrastructure.py +128 -0
- cognite_data_quality-0.1.0/scripts/shared.py +195 -0
- cognite_data_quality-0.1.0/scripts/validate_config.py +180 -0
- cognite_data_quality-0.1.0/test_and_deploy/batch_dashboard.py +302 -0
- cognite_data_quality-0.1.0/test_and_deploy/dashboard_requirements.txt +4 -0
- cognite_data_quality-0.1.0/test_and_deploy/equipment_shacl_instances.json +336 -0
- cognite_data_quality-0.1.0/test_and_deploy/historic_data_validation.ipynb +369 -0
- cognite_data_quality-0.1.0/test_and_deploy/maintenance_order_instances.json +158 -0
- cognite_data_quality-0.1.0/test_and_deploy/operation_shacl_instances.json +295 -0
- cognite_data_quality-0.1.0/test_and_deploy/sensor_readings_shacl_template.ttl +86 -0
- cognite_data_quality-0.1.0/test_and_deploy/test_raw_shacl_validation.ipynb +1012 -0
- cognite_data_quality-0.1.0/test_and_deploy/validation_dashboard.py +1666 -0
- cognite_data_quality-0.1.0/tests/conftest.py +31 -0
- cognite_data_quality-0.1.0/tests/test_credentials.py +29 -0
- cognite_data_quality-0.1.0/tests/test_deploy.py +24 -0
- cognite_data_quality-0.1.0/tests/test_handler_routing.py +166 -0
- cognite_data_quality-0.1.0/tests/test_raw_validation.py +417 -0
- cognite_data_quality-0.1.0/tests/test_records.py +124 -0
- cognite_data_quality-0.1.0/tests/test_rules.py +79 -0
- cognite_data_quality-0.1.0/tests/test_template_generator.py +128 -0
- cognite_data_quality-0.1.0/tests/test_validation.py +64 -0
- cognite_data_quality-0.1.0/uv.lock +2652 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @cognitedata/partner-enablement @cognitedata/atlas-ai-team @cognitedata/ai-team @cognitedata/velocity
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Build and Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["main"]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint-test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.11"
|
|
19
|
+
- name: Set up uv
|
|
20
|
+
uses: astral-sh/setup-uv@v4
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: uv sync --all-extras
|
|
23
|
+
- name: Lint
|
|
24
|
+
run: uv run pre-commit run --all-files
|
|
25
|
+
- name: Tests
|
|
26
|
+
run: uv run pytest tests/ -v
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
name: Deploy Data Quality Validation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'function/**'
|
|
9
|
+
- 'generate_demo_data/**'
|
|
10
|
+
- 'config/**'
|
|
11
|
+
- 'scripts/**'
|
|
12
|
+
- 'cognite_data_quality/**'
|
|
13
|
+
- '.github/workflows/deploy.yml'
|
|
14
|
+
|
|
15
|
+
pull_request:
|
|
16
|
+
branches:
|
|
17
|
+
- main
|
|
18
|
+
paths:
|
|
19
|
+
- 'function/**'
|
|
20
|
+
- 'generate_demo_data/**'
|
|
21
|
+
- 'config/**'
|
|
22
|
+
- 'scripts/**'
|
|
23
|
+
- 'cognite_data_quality/**'
|
|
24
|
+
|
|
25
|
+
workflow_dispatch:
|
|
26
|
+
inputs:
|
|
27
|
+
force_function:
|
|
28
|
+
description: 'Force function redeployment'
|
|
29
|
+
required: false
|
|
30
|
+
default: 'false'
|
|
31
|
+
type: boolean
|
|
32
|
+
force_views:
|
|
33
|
+
description: 'Force workflow/trigger redeployment'
|
|
34
|
+
required: false
|
|
35
|
+
default: 'false'
|
|
36
|
+
type: boolean
|
|
37
|
+
dry_run:
|
|
38
|
+
description: 'Dry run (show what would be deployed)'
|
|
39
|
+
required: false
|
|
40
|
+
default: 'false'
|
|
41
|
+
type: boolean
|
|
42
|
+
views:
|
|
43
|
+
description: 'Specific views to deploy (comma-separated, leave empty for all)'
|
|
44
|
+
required: false
|
|
45
|
+
default: ''
|
|
46
|
+
type: string
|
|
47
|
+
timeseries_configs:
|
|
48
|
+
description: 'Specific timeseries configs to deploy (comma-separated, leave empty for all)'
|
|
49
|
+
required: false
|
|
50
|
+
default: ''
|
|
51
|
+
type: string
|
|
52
|
+
skip_timeseries:
|
|
53
|
+
description: 'Skip time series validation deployment'
|
|
54
|
+
required: false
|
|
55
|
+
default: 'false'
|
|
56
|
+
type: boolean
|
|
57
|
+
skip_demo_data:
|
|
58
|
+
description: 'Skip demo data generator deployment'
|
|
59
|
+
required: false
|
|
60
|
+
default: 'false'
|
|
61
|
+
type: boolean
|
|
62
|
+
environment:
|
|
63
|
+
description: 'Deployment environment (controls GitHub env + CONFIG_ENV)'
|
|
64
|
+
required: false
|
|
65
|
+
default: 'cog-ai-arn'
|
|
66
|
+
type: choice
|
|
67
|
+
options:
|
|
68
|
+
- cog-ai-arn
|
|
69
|
+
- abp-dev
|
|
70
|
+
|
|
71
|
+
env:
|
|
72
|
+
PYTHON_VERSION: '3.11'
|
|
73
|
+
|
|
74
|
+
jobs:
|
|
75
|
+
validate:
|
|
76
|
+
name: Validate Configuration
|
|
77
|
+
runs-on: ubuntu-latest
|
|
78
|
+
strategy:
|
|
79
|
+
fail-fast: false
|
|
80
|
+
matrix:
|
|
81
|
+
include:
|
|
82
|
+
- environment: cog-ai-arn
|
|
83
|
+
config_env: "cog-ai"
|
|
84
|
+
enabled: false
|
|
85
|
+
- environment: abp-dev
|
|
86
|
+
config_env: "abp-dev"
|
|
87
|
+
enabled: true
|
|
88
|
+
env:
|
|
89
|
+
CONFIG_ENV: ${{ matrix.config_env }}
|
|
90
|
+
|
|
91
|
+
steps:
|
|
92
|
+
- name: Checkout repository
|
|
93
|
+
uses: actions/checkout@v4
|
|
94
|
+
|
|
95
|
+
- name: Set up Python
|
|
96
|
+
if: matrix.enabled == true
|
|
97
|
+
uses: actions/setup-python@v5
|
|
98
|
+
with:
|
|
99
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
100
|
+
|
|
101
|
+
- name: Install dependencies
|
|
102
|
+
if: matrix.enabled == true
|
|
103
|
+
run: |
|
|
104
|
+
python -m pip install --upgrade pip
|
|
105
|
+
pip install pyyaml rdflib cognite-sdk
|
|
106
|
+
|
|
107
|
+
- name: Validate configuration
|
|
108
|
+
if: matrix.enabled == true
|
|
109
|
+
run: python scripts/validate_config.py
|
|
110
|
+
|
|
111
|
+
deploy:
|
|
112
|
+
name: Deploy to CDF
|
|
113
|
+
runs-on: ubuntu-latest
|
|
114
|
+
needs: validate
|
|
115
|
+
strategy:
|
|
116
|
+
fail-fast: false
|
|
117
|
+
matrix:
|
|
118
|
+
include:
|
|
119
|
+
- environment: cog-ai-arn
|
|
120
|
+
config_env: "cog-ai"
|
|
121
|
+
enabled: false
|
|
122
|
+
- environment: abp-dev
|
|
123
|
+
config_env: "abp-dev"
|
|
124
|
+
enabled: true
|
|
125
|
+
environment: ${{ matrix.environment }}
|
|
126
|
+
|
|
127
|
+
# Only deploy on push to main, or on manual trigger
|
|
128
|
+
# PRs will only run validation
|
|
129
|
+
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
|
|
130
|
+
|
|
131
|
+
env:
|
|
132
|
+
COGNITE_CLUSTER: ${{ vars.COGNITE_CLUSTER }}
|
|
133
|
+
COGNITE_PROJECT: ${{ vars.COGNITE_PROJECT }}
|
|
134
|
+
COGNITE_CLIENT_ID: ${{ secrets.COGNITE_CLIENT_ID }}
|
|
135
|
+
COGNITE_CLIENT_SECRET: ${{ secrets.COGNITE_CLIENT_SECRET }}
|
|
136
|
+
COGNITE_BASE_URL: ${{ vars.COGNITE_BASE_URL }}
|
|
137
|
+
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
|
|
138
|
+
CONFIG_ENV: ${{ matrix.config_env }}
|
|
139
|
+
|
|
140
|
+
steps:
|
|
141
|
+
- name: Skip disabled environment
|
|
142
|
+
if: matrix.enabled != true
|
|
143
|
+
run: |
|
|
144
|
+
echo "Environment '${{ matrix.environment }}' is disabled in matrix (no deployment)."
|
|
145
|
+
|
|
146
|
+
- name: Checkout repository
|
|
147
|
+
if: matrix.enabled == true
|
|
148
|
+
uses: actions/checkout@v4
|
|
149
|
+
|
|
150
|
+
- name: Set up Python
|
|
151
|
+
if: matrix.enabled == true
|
|
152
|
+
uses: actions/setup-python@v5
|
|
153
|
+
with:
|
|
154
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
155
|
+
|
|
156
|
+
- name: Install dependencies
|
|
157
|
+
if: matrix.enabled == true
|
|
158
|
+
run: |
|
|
159
|
+
python -m pip install --upgrade pip
|
|
160
|
+
pip install cognite-sdk pyyaml
|
|
161
|
+
pip install -e .
|
|
162
|
+
|
|
163
|
+
- name: Determine deployment flags
|
|
164
|
+
if: matrix.enabled == true
|
|
165
|
+
id: flags
|
|
166
|
+
run: |
|
|
167
|
+
# Dry run flag
|
|
168
|
+
if [[ "${{ github.event.inputs.dry_run }}" == "true" ]]; then
|
|
169
|
+
echo "dry_run=--dry-run" >> $GITHUB_OUTPUT
|
|
170
|
+
echo "Running in DRY RUN mode"
|
|
171
|
+
else
|
|
172
|
+
echo "dry_run=" >> $GITHUB_OUTPUT
|
|
173
|
+
fi
|
|
174
|
+
|
|
175
|
+
# Force function flag
|
|
176
|
+
if [[ "${{ github.event.inputs.force_function }}" == "true" ]]; then
|
|
177
|
+
echo "force_function=--force" >> $GITHUB_OUTPUT
|
|
178
|
+
else
|
|
179
|
+
echo "force_function=" >> $GITHUB_OUTPUT
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
# Force views flag
|
|
183
|
+
if [[ "${{ github.event.inputs.force_views }}" == "true" ]]; then
|
|
184
|
+
echo "force_views=--force" >> $GITHUB_OUTPUT
|
|
185
|
+
else
|
|
186
|
+
echo "force_views=" >> $GITHUB_OUTPUT
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
# Views filter
|
|
190
|
+
if [[ -n "${{ github.event.inputs.views }}" ]]; then
|
|
191
|
+
views=$(echo "${{ github.event.inputs.views }}" | tr ',' ' ')
|
|
192
|
+
echo "views=--views $views" >> $GITHUB_OUTPUT
|
|
193
|
+
else
|
|
194
|
+
echo "views=" >> $GITHUB_OUTPUT
|
|
195
|
+
fi
|
|
196
|
+
|
|
197
|
+
# Time series configs filter
|
|
198
|
+
if [[ -n "${{ github.event.inputs.timeseries_configs }}" ]]; then
|
|
199
|
+
configs=$(echo "${{ github.event.inputs.timeseries_configs }}" | tr ',' ' ')
|
|
200
|
+
echo "timeseries_configs=--configs $configs" >> $GITHUB_OUTPUT
|
|
201
|
+
else
|
|
202
|
+
echo "timeseries_configs=" >> $GITHUB_OUTPUT
|
|
203
|
+
fi
|
|
204
|
+
|
|
205
|
+
# Skip time series flag
|
|
206
|
+
if [[ "${{ github.event.inputs.skip_timeseries }}" == "true" ]]; then
|
|
207
|
+
echo "skip_timeseries=true" >> $GITHUB_OUTPUT
|
|
208
|
+
else
|
|
209
|
+
echo "skip_timeseries=false" >> $GITHUB_OUTPUT
|
|
210
|
+
fi
|
|
211
|
+
|
|
212
|
+
# Skip demo data flag
|
|
213
|
+
if [[ "${{ github.event.inputs.skip_demo_data }}" == "true" ]]; then
|
|
214
|
+
echo "skip_demo_data=true" >> $GITHUB_OUTPUT
|
|
215
|
+
else
|
|
216
|
+
echo "skip_demo_data=false" >> $GITHUB_OUTPUT
|
|
217
|
+
fi
|
|
218
|
+
|
|
219
|
+
echo "CONFIG_ENV from matrix: $CONFIG_ENV"
|
|
220
|
+
|
|
221
|
+
# Deploy Complete Validation Infrastructure (unified)
|
|
222
|
+
- name: Deploy Validation Infrastructure
|
|
223
|
+
if: matrix.enabled == true
|
|
224
|
+
id: infrastructure
|
|
225
|
+
working-directory: scripts
|
|
226
|
+
run: |
|
|
227
|
+
echo "::group::Deploy Validation Infrastructure"
|
|
228
|
+
python deploy_infrastructure.py ${{ steps.flags.outputs.dry_run }} ${{ steps.flags.outputs.force_function }} --output ../infrastructure_result.json
|
|
229
|
+
echo "::endgroup::"
|
|
230
|
+
|
|
231
|
+
# Deploy Demo Data Generator (if enabled in settings.yaml)
|
|
232
|
+
- name: Deploy Demo Data Generator
|
|
233
|
+
id: demo_data
|
|
234
|
+
if: matrix.enabled == true && steps.flags.outputs.skip_demo_data != 'true'
|
|
235
|
+
working-directory: scripts
|
|
236
|
+
run: |
|
|
237
|
+
echo "::group::Deploy Demo Data Generator"
|
|
238
|
+
python deploy_demo_data.py ${{ steps.flags.outputs.dry_run }} ${{ steps.flags.outputs.force_function }} --output ../demo_data_result.json
|
|
239
|
+
echo "::endgroup::"
|
|
240
|
+
|
|
241
|
+
- name: Generate Summary
|
|
242
|
+
if: matrix.enabled == true
|
|
243
|
+
run: |
|
|
244
|
+
python3 << 'EOF'
|
|
245
|
+
import json
|
|
246
|
+
import os
|
|
247
|
+
|
|
248
|
+
summary = []
|
|
249
|
+
summary.append("## Deployment Summary\n")
|
|
250
|
+
|
|
251
|
+
# Check if dry run
|
|
252
|
+
dry_run = "${{ steps.flags.outputs.dry_run }}" == "--dry-run"
|
|
253
|
+
if dry_run:
|
|
254
|
+
summary.append("**Mode:** Dry Run (no changes made)\n")
|
|
255
|
+
else:
|
|
256
|
+
summary.append("**Mode:** Production Deployment\n")
|
|
257
|
+
|
|
258
|
+
summary.append("")
|
|
259
|
+
|
|
260
|
+
# Read unified infrastructure result
|
|
261
|
+
try:
|
|
262
|
+
with open("infrastructure_result.json") as f:
|
|
263
|
+
result = json.load(f)
|
|
264
|
+
|
|
265
|
+
# Function
|
|
266
|
+
summary.append("### 1. Validation Function\n")
|
|
267
|
+
func_result = result.get("functions", {}).get("function", {})
|
|
268
|
+
func_status = func_result.get("status", "unknown")
|
|
269
|
+
func_id = func_result.get("function", "N/A")
|
|
270
|
+
if func_status == "deployed":
|
|
271
|
+
summary.append(f"- **{func_id}**: ✅ Deployed\n")
|
|
272
|
+
elif func_status == "skipped":
|
|
273
|
+
summary.append(f"- **{func_id}**: ⏭️ Skipped (up to date)\n")
|
|
274
|
+
else:
|
|
275
|
+
summary.append(f"- **{func_id}**: {func_status}\n")
|
|
276
|
+
|
|
277
|
+
summary.append("")
|
|
278
|
+
|
|
279
|
+
# Instance Validation Workflows
|
|
280
|
+
summary.append("### 2. Instance Validation Workflows\n")
|
|
281
|
+
workflows = result.get("workflows", [])
|
|
282
|
+
if workflows:
|
|
283
|
+
deployed = sum(1 for w in workflows if w.get("status") == "deployed")
|
|
284
|
+
skipped = sum(1 for w in workflows if w.get("status") == "skipped")
|
|
285
|
+
|
|
286
|
+
summary.append(f"**Total:** {len(workflows)} | **Deployed:** {deployed} | **Skipped:** {skipped}\n")
|
|
287
|
+
summary.append("")
|
|
288
|
+
summary.append("| View | Workflow | Status |")
|
|
289
|
+
summary.append("|------|----------|--------|")
|
|
290
|
+
|
|
291
|
+
for w in workflows:
|
|
292
|
+
view = w.get("view", "N/A")
|
|
293
|
+
wf_id = w.get("workflow_external_id", "N/A")
|
|
294
|
+
status = w.get("status", "unknown")
|
|
295
|
+
emoji = "✅" if status == "deployed" else "⏭️"
|
|
296
|
+
summary.append(f"| {view} | `{wf_id}` | {emoji} {status} |")
|
|
297
|
+
|
|
298
|
+
summary.append("")
|
|
299
|
+
else:
|
|
300
|
+
summary.append("No instance validation workflows configured.\n")
|
|
301
|
+
|
|
302
|
+
# Time Series Validation Workflows
|
|
303
|
+
summary.append("### 3. Time Series Validation Workflows\n")
|
|
304
|
+
ts_workflows = result.get("timeseries_workflows", [])
|
|
305
|
+
if ts_workflows:
|
|
306
|
+
deployed = sum(1 for w in ts_workflows if w.get("status") == "deployed")
|
|
307
|
+
skipped = sum(1 for w in ts_workflows if w.get("status") == "skipped")
|
|
308
|
+
|
|
309
|
+
summary.append(f"**Total:** {len(ts_workflows)} | **Deployed:** {deployed} | **Skipped:** {skipped}\n")
|
|
310
|
+
summary.append("")
|
|
311
|
+
summary.append("| Config | Workflow | Trigger | Status |")
|
|
312
|
+
summary.append("|--------|----------|---------|--------|")
|
|
313
|
+
|
|
314
|
+
for w in ts_workflows:
|
|
315
|
+
name = w.get("name", "N/A")
|
|
316
|
+
wf_id = w.get("workflow_external_id", "N/A")
|
|
317
|
+
tr_id = w.get("trigger_external_id", "N/A")
|
|
318
|
+
status = w.get("status", "unknown")
|
|
319
|
+
emoji = "✅" if status == "deployed" else "⏭️"
|
|
320
|
+
summary.append(f"| {name} | `{wf_id}` | `{tr_id}` | {emoji} {status} |")
|
|
321
|
+
|
|
322
|
+
summary.append("")
|
|
323
|
+
else:
|
|
324
|
+
summary.append("No time series validation workflows configured.\n")
|
|
325
|
+
|
|
326
|
+
except Exception as e:
|
|
327
|
+
summary.append(f"\n⚠️ Error reading deployment results: {e}\n")
|
|
328
|
+
|
|
329
|
+
summary.append("")
|
|
330
|
+
summary.append("### Configuration\n")
|
|
331
|
+
summary.append(f"- **Trigger:** ${{ github.event_name }}")
|
|
332
|
+
summary.append(f"- **Branch:** ${{ github.ref_name }}")
|
|
333
|
+
summary.append(f"- **Environment:** ${{ matrix.environment }}")
|
|
334
|
+
summary.append(f"- **CONFIG_ENV:** ${{ env.CONFIG_ENV || 'default' }}")
|
|
335
|
+
summary.append(f"- **Commit:** `${{ github.sha }}`")
|
|
336
|
+
|
|
337
|
+
# Write to summary
|
|
338
|
+
with open(os.environ["GITHUB_STEP_SUMMARY"], "a") as f:
|
|
339
|
+
f.write("\n".join(summary))
|
|
340
|
+
|
|
341
|
+
print("Summary generated successfully")
|
|
342
|
+
EOF
|
|
343
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
PYTHON_VERSION: '3.11'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- name: Install uv and set the python version
|
|
18
|
+
uses: astral-sh/setup-uv@v4
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
21
|
+
- name: Install required dependencies
|
|
22
|
+
run: |
|
|
23
|
+
uv sync --all-extras
|
|
24
|
+
- name: Linting and static code checks
|
|
25
|
+
run: uv run pre-commit run --all-files
|
|
26
|
+
|
|
27
|
+
release:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
environment: CD
|
|
30
|
+
needs: lint
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
with:
|
|
34
|
+
fetch-depth: 0
|
|
35
|
+
- name: Install uv and set the python version
|
|
36
|
+
uses: astral-sh/setup-uv@v4
|
|
37
|
+
with:
|
|
38
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
39
|
+
- name: Install required dependencies
|
|
40
|
+
run: |
|
|
41
|
+
uv sync --all-extras
|
|
42
|
+
- name: Dump last commit message to file
|
|
43
|
+
run: git log -1 --pretty=%B > last_git_message.txt
|
|
44
|
+
- name: Dump last tag to file
|
|
45
|
+
run: git describe --tags --abbrev=0 > last_version.txt
|
|
46
|
+
- name: Bump Version
|
|
47
|
+
run: uv run python dev.py bump --verbose
|
|
48
|
+
- id: version
|
|
49
|
+
name: Read the new version
|
|
50
|
+
run: echo "version=$(sed -n 's/^__version__ = "\(.*\)"/\1/p' cognite_data_quality/_version.py)" >> $GITHUB_ENV
|
|
51
|
+
- name: Create CHANGELOG entry
|
|
52
|
+
if: env.version != '0.0.0'
|
|
53
|
+
run: uv run python dev.py changelog
|
|
54
|
+
- name: Build package
|
|
55
|
+
if: env.version != '0.0.0'
|
|
56
|
+
run: uv build
|
|
57
|
+
|
|
58
|
+
- name: Release to PyPI
|
|
59
|
+
if: env.version != '0.0.0'
|
|
60
|
+
env:
|
|
61
|
+
TWINE_USERNAME: __token__
|
|
62
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
63
|
+
run: uv run twine upload --skip-existing --verbose dist/*
|
|
64
|
+
|
|
65
|
+
- name: Add entry to CHANGELOG
|
|
66
|
+
if: env.version != '0.0.0'
|
|
67
|
+
uses: ncipollo/release-action@v1
|
|
68
|
+
with:
|
|
69
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
70
|
+
prerelease: false
|
|
71
|
+
draft: false
|
|
72
|
+
tag: ${{ env.version }}
|
|
73
|
+
bodyFile: last_changelog_entry.md
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
*.egg-info/
|
|
20
|
+
.installed.cfg
|
|
21
|
+
*.egg
|
|
22
|
+
|
|
23
|
+
# Virtual environments
|
|
24
|
+
.venv/
|
|
25
|
+
venv/
|
|
26
|
+
ENV/
|
|
27
|
+
env/
|
|
28
|
+
|
|
29
|
+
# IDE
|
|
30
|
+
.idea/
|
|
31
|
+
.vscode/
|
|
32
|
+
*.swp
|
|
33
|
+
*.swo
|
|
34
|
+
.DS_Store
|
|
35
|
+
|
|
36
|
+
# Environment files
|
|
37
|
+
.env
|
|
38
|
+
.env.local
|
|
39
|
+
get.env
|
|
40
|
+
get.env-*
|
|
41
|
+
config.toml
|
|
42
|
+
|
|
43
|
+
# Jupyter
|
|
44
|
+
.ipynb_checkpoints/
|
|
45
|
+
*.ipynb_checkpoints
|
|
46
|
+
|
|
47
|
+
# Tooling caches
|
|
48
|
+
.mypy_cache/
|
|
49
|
+
.pytest_cache/
|
|
50
|
+
.ruff_cache/
|
|
51
|
+
htmlcov/
|
|
52
|
+
.coverage
|
|
53
|
+
|
|
54
|
+
# MkDocs
|
|
55
|
+
site/
|
|
56
|
+
|
|
57
|
+
# Test data and samples (keep for reference but don't track)
|
|
58
|
+
# Uncomment these if you want to ignore sample data files
|
|
59
|
+
# *_instances.json
|
|
60
|
+
# *_shacl_rules.ttl
|
|
61
|
+
|
|
62
|
+
# Wheel files - we need whl files for the function
|
|
63
|
+
# *.whl
|
|
64
|
+
|
|
65
|
+
function_deploy.zip
|
|
66
|
+
abp-dev-get.env
|
|
67
|
+
config/environments/cog-sail/cog-sail.toml
|
|
68
|
+
config/environments/abp-dev/abp-dev.toml
|
|
69
|
+
test_and_deploy/cog-sail.toml
|
|
70
|
+
|
|
71
|
+
# Test/verification scripts (not for deployment)
|
|
72
|
+
manual_verification.py
|
|
73
|
+
verify_validation_results.py
|
|
74
|
+
inspect_single_instance.py
|
|
75
|
+
check_property_coverage.py
|
|
76
|
+
scripts/test*.py
|
|
77
|
+
scripts/check_partition_logs.py
|
|
78
|
+
scripts/check_retry_history.py
|
|
79
|
+
scripts/check_state_instances.py
|
|
80
|
+
scripts/cleanup_duplicate_triggers.py
|
|
81
|
+
scripts/create_test_stream.py
|
|
82
|
+
scripts/delete_state_instances.py
|
|
83
|
+
scripts/reset_state_containers.py
|
|
84
|
+
scripts/list_writable_datasets.py
|
|
85
|
+
scripts/monitor_partition_call.py
|
|
86
|
+
scripts/show_all_partition_logs.py
|
|
87
|
+
scripts/show_call_logs.py
|
|
88
|
+
scripts/show_partition_logs.py
|
|
89
|
+
scripts/show_partition_state.py
|
|
90
|
+
scripts/show_partition_state_raw.py
|
|
91
|
+
scripts/verify_sync_properties.py
|
|
92
|
+
|
|
93
|
+
# Test/exploration notebooks (not for deployment)
|
|
94
|
+
explore_validation_records.ipynb
|
|
95
|
+
test_orchestrator_monitor.ipynb
|
|
96
|
+
.claude/settings.json
|
|
97
|
+
|
|
98
|
+
rule_input/*
|
|
99
|
+
|
|
100
|
+
# Documentation DOCX files (generated from markdown)
|
|
101
|
+
*.docx
|
|
102
|
+
|
|
103
|
+
# Release PR description drafts (never commit - local use only with gh pr create)
|
|
104
|
+
pr_description*.md
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
rev: v0.6.2
|
|
4
|
+
hooks:
|
|
5
|
+
- id: ruff
|
|
6
|
+
- id: ruff-format
|
|
7
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
8
|
+
rev: v1.11.1
|
|
9
|
+
hooks:
|
|
10
|
+
- id: mypy
|
|
11
|
+
args: ["cognite_data_quality", "tests"]
|
|
12
|
+
additional_dependencies: ["pydantic>=2.0.0", "types-PyYAML", "types-toml"]
|
|
13
|
+
pass_filenames: false
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: ubuntu-22.04
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.11"
|
|
7
|
+
|
|
8
|
+
mkdocs:
|
|
9
|
+
configuration: mkdocs.yml
|
|
10
|
+
|
|
11
|
+
python:
|
|
12
|
+
install:
|
|
13
|
+
- requirements: docs/requirements.txt
|
|
14
|
+
version: 2
|
|
15
|
+
|
|
16
|
+
build:
|
|
17
|
+
os: ubuntu-22.04
|
|
18
|
+
tools:
|
|
19
|
+
python: "3.11"
|
|
20
|
+
|
|
21
|
+
mkdocs:
|
|
22
|
+
configuration: mkdocs.yml
|
|
23
|
+
|
|
24
|
+
python:
|
|
25
|
+
install:
|
|
26
|
+
- requirements: docs/requirements.txt
|