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.
Files changed (284) hide show
  1. cognite_data_quality-0.1.0/.github/CODEOWNERS +1 -0
  2. cognite_data_quality-0.1.0/.github/workflows/build.yml +26 -0
  3. cognite_data_quality-0.1.0/.github/workflows/deploy.yml +343 -0
  4. cognite_data_quality-0.1.0/.github/workflows/release.yaml +73 -0
  5. cognite_data_quality-0.1.0/.gitignore +104 -0
  6. cognite_data_quality-0.1.0/.pre-commit-config.yaml +13 -0
  7. cognite_data_quality-0.1.0/.readthedocs.yaml +26 -0
  8. cognite_data_quality-0.1.0/ARCHITECTURE.md +1250 -0
  9. cognite_data_quality-0.1.0/CLAUDE.md +838 -0
  10. cognite_data_quality-0.1.0/CODE_OF_CONDUCT.md +129 -0
  11. cognite_data_quality-0.1.0/LICENSE +202 -0
  12. cognite_data_quality-0.1.0/PKG-INFO +742 -0
  13. cognite_data_quality-0.1.0/README.md +712 -0
  14. cognite_data_quality-0.1.0/add_dimensions_to_shacl.py +251 -0
  15. cognite_data_quality-0.1.0/add_remaining_dimensions.py +210 -0
  16. cognite_data_quality-0.1.0/cognite_data_quality/__init__.py +64 -0
  17. cognite_data_quality-0.1.0/cognite_data_quality/_config.py +70 -0
  18. cognite_data_quality-0.1.0/cognite_data_quality/_containers.py +226 -0
  19. cognite_data_quality-0.1.0/cognite_data_quality/_credentials.py +42 -0
  20. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/__init__.py +1 -0
  21. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/__init__.py +1 -0
  22. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/cursor_state.py +411 -0
  23. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/records_api.py +350 -0
  24. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/shacl_utils.py +18 -0
  25. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/time_window.py +70 -0
  26. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/common/timestamp_collection_state.py +236 -0
  27. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handler.py +88 -0
  28. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/__init__.py +1 -0
  29. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/instance_validation.py +255 -0
  30. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/orchestrator.py +2116 -0
  31. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/partitioned_validation.py +554 -0
  32. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/raw_validation.py +724 -0
  33. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/test_rule.py +314 -0
  34. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/handlers/timeseries_validation.py +678 -0
  35. cognite_data_quality-0.1.0/cognite_data_quality/_function_code/requirements.txt +12 -0
  36. cognite_data_quality-0.1.0/cognite_data_quality/_records.py +381 -0
  37. cognite_data_quality-0.1.0/cognite_data_quality/_rules.py +162 -0
  38. cognite_data_quality-0.1.0/cognite_data_quality/_validation.py +282 -0
  39. cognite_data_quality-0.1.0/cognite_data_quality/_version.py +1 -0
  40. cognite_data_quality-0.1.0/cognite_data_quality/deploy.py +1475 -0
  41. cognite_data_quality-0.1.0/cognite_data_quality/invoke.py +294 -0
  42. cognite_data_quality-0.1.0/cognite_data_quality/runner.py +316 -0
  43. cognite_data_quality-0.1.0/cognite_data_quality/template_generator.py +913 -0
  44. cognite_data_quality-0.1.0/config/environments/abp-dev/PROPERTY_MAPPING.md +289 -0
  45. cognite_data_quality-0.1.0/config/environments/abp-dev/PROPERTY_VERIFICATION_REPORT.md +283 -0
  46. cognite_data_quality-0.1.0/config/environments/abp-dev/SHACL_RULES_DOCUMENTATION.md +1224 -0
  47. cognite_data_quality-0.1.0/config/environments/abp-dev/STANDARDS_REFERENCES.md +567 -0
  48. cognite_data_quality-0.1.0/config/environments/abp-dev/settings.yaml +47 -0
  49. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/commissioning_package_shacl_rules.ttl +151 -0
  50. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/compressor_shacl_rules.ttl +252 -0
  51. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/document_shacl_rules.ttl +611 -0
  52. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/electricmotor_shacl_rules.ttl +99 -0
  53. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/equipmentclass_shacl_rules.ttl +172 -0
  54. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/equipmenttype_shacl_rules.ttl +239 -0
  55. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failurecause_shacl_rules.ttl +56 -0
  56. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failuremechanism_shacl_rules.ttl +56 -0
  57. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failuremode_shacl_rules.ttl +56 -0
  58. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/failurenotification_shacl_rules.ttl +482 -0
  59. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/heatexchanger_shacl_rules.ttl +409 -0
  60. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/notification_shacl_rules.ttl +175 -0
  61. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/operation_shacl_rules.ttl +56 -0
  62. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/pump_shacl_rules.ttl +208 -0
  63. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/tag_shacl_rules.ttl +504 -0
  64. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/timeseriesext_shacl_rules.ttl +445 -0
  65. cognite_data_quality-0.1.0/config/environments/abp-dev/shacl_rules/workorder_shacl_rules.ttl +286 -0
  66. cognite_data_quality-0.1.0/config/environments/abp-dev/test_abpdev_cognite_data_quality.ipynb +2329 -0
  67. cognite_data_quality-0.1.0/config/environments/abp-dev/views/commissioning_package.yaml +40 -0
  68. cognite_data_quality-0.1.0/config/environments/abp-dev/views/compressor.yaml +21 -0
  69. cognite_data_quality-0.1.0/config/environments/abp-dev/views/document.yaml +21 -0
  70. cognite_data_quality-0.1.0/config/environments/abp-dev/views/electricmotor.yaml +21 -0
  71. cognite_data_quality-0.1.0/config/environments/abp-dev/views/equipmentclass.yaml +21 -0
  72. cognite_data_quality-0.1.0/config/environments/abp-dev/views/equipmenttype.yaml +21 -0
  73. cognite_data_quality-0.1.0/config/environments/abp-dev/views/failurecause.yaml +21 -0
  74. cognite_data_quality-0.1.0/config/environments/abp-dev/views/failuremechanism.yaml +21 -0
  75. cognite_data_quality-0.1.0/config/environments/abp-dev/views/failuremode.yaml +21 -0
  76. cognite_data_quality-0.1.0/config/environments/abp-dev/views/failurenotification.yaml +21 -0
  77. cognite_data_quality-0.1.0/config/environments/abp-dev/views/heatexchanger.yaml +21 -0
  78. cognite_data_quality-0.1.0/config/environments/abp-dev/views/notification.yaml +21 -0
  79. cognite_data_quality-0.1.0/config/environments/abp-dev/views/operation.yaml +21 -0
  80. cognite_data_quality-0.1.0/config/environments/abp-dev/views/pump.yaml +21 -0
  81. cognite_data_quality-0.1.0/config/environments/abp-dev/views/tag.yaml +22 -0
  82. cognite_data_quality-0.1.0/config/environments/abp-dev/views/timeseriesext.yaml +21 -0
  83. cognite_data_quality-0.1.0/config/environments/abp-dev/views/workorder.yaml +21 -0
  84. cognite_data_quality-0.1.0/config/environments/cog-ai/settings.yaml +64 -0
  85. cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/equipment_shacl_rules.ttl +180 -0
  86. cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/maintenance_order_shacl_rules.ttl +240 -0
  87. cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/notification_shacl_rules.ttl +40 -0
  88. cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/operation_shacl_rules.ttl +318 -0
  89. cognite_data_quality-0.1.0/config/environments/cog-ai/shacl_rules/timeseries_quality_rules.ttl +248 -0
  90. cognite_data_quality-0.1.0/config/environments/cog-ai/timeseries/demo_timeseries_quality.yaml +71 -0
  91. cognite_data_quality-0.1.0/config/environments/cog-ai/views/equipment.yaml +46 -0
  92. cognite_data_quality-0.1.0/config/environments/cog-ai/views/maintenance_order.yaml +39 -0
  93. cognite_data_quality-0.1.0/config/environments/cog-ai/views/notification.yaml +39 -0
  94. cognite_data_quality-0.1.0/config/environments/cog-ai/views/operation.yaml +45 -0
  95. cognite_data_quality-0.1.0/config/environments/cog-sail/README.md +122 -0
  96. cognite_data_quality-0.1.0/config/environments/cog-sail/SHACL_RULES_COMPARISON.md +55 -0
  97. cognite_data_quality-0.1.0/config/environments/cog-sail/settings.yaml +39 -0
  98. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/abb_example_motor_list_shacl_rules.ttl +1915 -0
  99. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/largeboat_shacl_rules.ttl +51 -0
  100. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/navigationaid_shacl_rules.ttl +25 -0
  101. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/nmeatimeseries_shacl_rules.ttl +59 -0
  102. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/pgn_shacl_rules.ttl +28 -0
  103. cognite_data_quality-0.1.0/config/environments/cog-sail/shacl_rules/smallboat_shacl_rules.ttl +67 -0
  104. cognite_data_quality-0.1.0/config/environments/cog-sail/tables/abb_example_motor_list.yaml +14 -0
  105. cognite_data_quality-0.1.0/config/environments/cog-sail/test_cogsail_cognite_data_quality.ipynb +1054 -0
  106. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/settings.yaml +28 -0
  107. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/boat_shacl_rules.ttl +52 -0
  108. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360image_shacl_rules.ttl +52 -0
  109. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagecollection_shacl_rules.ttl +52 -0
  110. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagemodel_shacl_rules.ttl +52 -0
  111. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite360imagestation_shacl_rules.ttl +52 -0
  112. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dmodel_shacl_rules.ttl +52 -0
  113. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dobject_shacl_rules.ttl +52 -0
  114. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3drevision_shacl_rules.ttl +52 -0
  115. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognite3dtransformation_shacl_rules.ttl +52 -0
  116. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteactivity_shacl_rules.ttl +52 -0
  117. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteasset_shacl_rules.ttl +52 -0
  118. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteassetclass_shacl_rules.ttl +52 -0
  119. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteassettype_shacl_rules.ttl +52 -0
  120. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadmodel_shacl_rules.ttl +52 -0
  121. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadnode_shacl_rules.ttl +52 -0
  122. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecadrevision_shacl_rules.ttl +52 -0
  123. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitecubemap_shacl_rules.ttl +52 -0
  124. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitedescribable_shacl_rules.ttl +52 -0
  125. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteequipment_shacl_rules.ttl +52 -0
  126. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteequipmenttype_shacl_rules.ttl +52 -0
  127. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitefile_shacl_rules.ttl +52 -0
  128. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitefilecategory_shacl_rules.ttl +52 -0
  129. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudmodel_shacl_rules.ttl +52 -0
  130. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudrevision_shacl_rules.ttl +52 -0
  131. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitepointcloudvolume_shacl_rules.ttl +52 -0
  132. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteschedulable_shacl_rules.ttl +52 -0
  133. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitesourceable_shacl_rules.ttl +52 -0
  134. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitesourcesystem_shacl_rules.ttl +52 -0
  135. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitetimeseries_shacl_rules.ttl +52 -0
  136. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cogniteunit_shacl_rules.ttl +52 -0
  137. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/cognitevisualizable_shacl_rules.ttl +40 -0
  138. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/country_shacl_rules.ttl +52 -0
  139. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/gpxfile_shacl_rules.ttl +52 -0
  140. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/largeboat_shacl_rules.ttl +52 -0
  141. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/manage2sail_shacl_rules.ttl +52 -0
  142. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/mmsinumber_shacl_rules.ttl +52 -0
  143. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/navigationaid_shacl_rules.ttl +52 -0
  144. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/nmeatimeseries_shacl_rules.ttl +52 -0
  145. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/orccertificate_shacl_rules.ttl +52 -0
  146. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/orccertificatetype_shacl_rules.ttl +52 -0
  147. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/pgn_shacl_rules.ttl +52 -0
  148. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/race_shacl_rules.ttl +52 -0
  149. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/racecourse_shacl_rules.ttl +52 -0
  150. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regatta_shacl_rules.ttl +52 -0
  151. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattaclass_shacl_rules.ttl +52 -0
  152. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattacrew_shacl_rules.ttl +52 -0
  153. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattacrewentry_shacl_rules.ttl +52 -0
  154. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattaentry_shacl_rules.ttl +52 -0
  155. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattanode_shacl_rules.ttl +52 -0
  156. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/regattastart_shacl_rules.ttl +52 -0
  157. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingboat_shacl_rules.ttl +52 -0
  158. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingclass_shacl_rules.ttl +52 -0
  159. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailingclub_shacl_rules.ttl +52 -0
  160. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailracesystem_shacl_rules.ttl +52 -0
  161. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/sailsystem_shacl_rules.ttl +52 -0
  162. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/saraircraft_shacl_rules.ttl +52 -0
  163. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/shorestation_shacl_rules.ttl +52 -0
  164. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/smallboat_shacl_rules.ttl +52 -0
  165. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/shacl_rules/timeseries_quality_rules.ttl +42 -0
  166. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/timeseries/example_timeseries_quality.yaml +19 -0
  167. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/boat.yaml +20 -0
  168. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360image.yaml +20 -0
  169. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagecollection.yaml +20 -0
  170. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagemodel.yaml +20 -0
  171. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite360imagestation.yaml +20 -0
  172. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dmodel.yaml +20 -0
  173. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dobject.yaml +20 -0
  174. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3drevision.yaml +20 -0
  175. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognite3dtransformation.yaml +20 -0
  176. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteactivity.yaml +20 -0
  177. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteasset.yaml +20 -0
  178. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteassetclass.yaml +20 -0
  179. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteassettype.yaml +20 -0
  180. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadmodel.yaml +20 -0
  181. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadnode.yaml +20 -0
  182. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecadrevision.yaml +20 -0
  183. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitecubemap.yaml +20 -0
  184. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitedescribable.yaml +20 -0
  185. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteequipment.yaml +20 -0
  186. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteequipmenttype.yaml +20 -0
  187. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitefile.yaml +20 -0
  188. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitefilecategory.yaml +20 -0
  189. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudmodel.yaml +20 -0
  190. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudrevision.yaml +20 -0
  191. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitepointcloudvolume.yaml +20 -0
  192. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteschedulable.yaml +20 -0
  193. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitesourceable.yaml +20 -0
  194. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitesourcesystem.yaml +20 -0
  195. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitetimeseries.yaml +20 -0
  196. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cogniteunit.yaml +20 -0
  197. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/cognitevisualizable.yaml +20 -0
  198. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/country.yaml +20 -0
  199. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/gpxfile.yaml +20 -0
  200. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/largeboat.yaml +20 -0
  201. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/manage2sail.yaml +20 -0
  202. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/mmsinumber.yaml +20 -0
  203. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/navigationaid.yaml +20 -0
  204. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/nmeatimeseries.yaml +20 -0
  205. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/orccertificate.yaml +20 -0
  206. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/orccertificatetype.yaml +20 -0
  207. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/pgn.yaml +20 -0
  208. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/race.yaml +20 -0
  209. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/racecourse.yaml +20 -0
  210. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regatta.yaml +20 -0
  211. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattaclass.yaml +20 -0
  212. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattacrew.yaml +20 -0
  213. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattacrewentry.yaml +20 -0
  214. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattaentry.yaml +20 -0
  215. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattanode.yaml +20 -0
  216. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/regattastart.yaml +20 -0
  217. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingboat.yaml +20 -0
  218. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingclass.yaml +20 -0
  219. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailingclub.yaml +20 -0
  220. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailracesystem.yaml +20 -0
  221. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/sailsystem.yaml +20 -0
  222. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/saraircraft.yaml +20 -0
  223. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/shorestation.yaml +20 -0
  224. cognite_data_quality-0.1.0/config/environments/cog-sail/test_templates/config/environments/sailboat-generated/views/smallboat.yaml +20 -0
  225. cognite_data_quality-0.1.0/config/environments/cog-sail/views/largeboat.yaml +35 -0
  226. cognite_data_quality-0.1.0/config/environments/cog-sail/views/navigationaid.yaml +31 -0
  227. cognite_data_quality-0.1.0/config/environments/cog-sail/views/nmeatimeseries.yaml +31 -0
  228. cognite_data_quality-0.1.0/config/environments/cog-sail/views/pgn.yaml +31 -0
  229. cognite_data_quality-0.1.0/config/environments/cog-sail/views/smallboat.yaml +35 -0
  230. cognite_data_quality-0.1.0/config/timeseries_samples/critical_sensors_quality.yaml +70 -0
  231. cognite_data_quality-0.1.0/config/timeseries_samples/example_timeseries_quality.yaml +82 -0
  232. cognite_data_quality-0.1.0/config.toml.example +14 -0
  233. cognite_data_quality-0.1.0/dev.py +193 -0
  234. cognite_data_quality-0.1.0/docs/api/config.md +6 -0
  235. cognite_data_quality-0.1.0/docs/api/deploy.md +214 -0
  236. cognite_data_quality-0.1.0/docs/api/invoke.md +3 -0
  237. cognite_data_quality-0.1.0/docs/api/records.md +6 -0
  238. cognite_data_quality-0.1.0/docs/api/runner.md +6 -0
  239. cognite_data_quality-0.1.0/docs/index.md +99 -0
  240. cognite_data_quality-0.1.0/docs/installation.md +64 -0
  241. cognite_data_quality-0.1.0/docs/quickstart/config.md +42 -0
  242. cognite_data_quality-0.1.0/docs/quickstart/notebook.md +52 -0
  243. cognite_data_quality-0.1.0/docs/quickstart/where_to_start.md +152 -0
  244. cognite_data_quality-0.1.0/docs/requirements.txt +9 -0
  245. cognite_data_quality-0.1.0/docs/usage/deploy.md +146 -0
  246. cognite_data_quality-0.1.0/docs/usage/invoke.md +98 -0
  247. cognite_data_quality-0.1.0/docs/usage/records_output.md +191 -0
  248. cognite_data_quality-0.1.0/docs/usage/rule_sources.md +55 -0
  249. cognite_data_quality-0.1.0/docs/usage/run_validation.md +90 -0
  250. cognite_data_quality-0.1.0/docs/usage/runtime_options.md +91 -0
  251. cognite_data_quality-0.1.0/docs/usage/shacl_cdf_data_models.md +46 -0
  252. cognite_data_quality-0.1.0/generate_demo_data/handler.py +521 -0
  253. cognite_data_quality-0.1.0/generate_demo_data/requirements.txt +5 -0
  254. cognite_data_quality-0.1.0/ila.preproc.yml +3565 -0
  255. cognite_data_quality-0.1.0/last_changelog_entry.md +12 -0
  256. cognite_data_quality-0.1.0/last_git_message.txt +24 -0
  257. cognite_data_quality-0.1.0/last_version.txt +1 -0
  258. cognite_data_quality-0.1.0/mkdocs.yml +89 -0
  259. cognite_data_quality-0.1.0/pyproject.toml +88 -0
  260. cognite_data_quality-0.1.0/release.md +122 -0
  261. cognite_data_quality-0.1.0/scripts/convert_md_to_docx.py +582 -0
  262. cognite_data_quality-0.1.0/scripts/deploy_demo_data.py +378 -0
  263. cognite_data_quality-0.1.0/scripts/deploy_infrastructure.py +128 -0
  264. cognite_data_quality-0.1.0/scripts/shared.py +195 -0
  265. cognite_data_quality-0.1.0/scripts/validate_config.py +180 -0
  266. cognite_data_quality-0.1.0/test_and_deploy/batch_dashboard.py +302 -0
  267. cognite_data_quality-0.1.0/test_and_deploy/dashboard_requirements.txt +4 -0
  268. cognite_data_quality-0.1.0/test_and_deploy/equipment_shacl_instances.json +336 -0
  269. cognite_data_quality-0.1.0/test_and_deploy/historic_data_validation.ipynb +369 -0
  270. cognite_data_quality-0.1.0/test_and_deploy/maintenance_order_instances.json +158 -0
  271. cognite_data_quality-0.1.0/test_and_deploy/operation_shacl_instances.json +295 -0
  272. cognite_data_quality-0.1.0/test_and_deploy/sensor_readings_shacl_template.ttl +86 -0
  273. cognite_data_quality-0.1.0/test_and_deploy/test_raw_shacl_validation.ipynb +1012 -0
  274. cognite_data_quality-0.1.0/test_and_deploy/validation_dashboard.py +1666 -0
  275. cognite_data_quality-0.1.0/tests/conftest.py +31 -0
  276. cognite_data_quality-0.1.0/tests/test_credentials.py +29 -0
  277. cognite_data_quality-0.1.0/tests/test_deploy.py +24 -0
  278. cognite_data_quality-0.1.0/tests/test_handler_routing.py +166 -0
  279. cognite_data_quality-0.1.0/tests/test_raw_validation.py +417 -0
  280. cognite_data_quality-0.1.0/tests/test_records.py +124 -0
  281. cognite_data_quality-0.1.0/tests/test_rules.py +79 -0
  282. cognite_data_quality-0.1.0/tests/test_template_generator.py +128 -0
  283. cognite_data_quality-0.1.0/tests/test_validation.py +64 -0
  284. 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