datacontract-cli 1.0.8__tar.gz → 1.0.9__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 (369) hide show
  1. {datacontract_cli-1.0.8/datacontract_cli.egg-info → datacontract_cli-1.0.9}/PKG-INFO +1 -1
  2. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/checks/create_checks.py +9 -1
  3. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/kafka.py +9 -1
  4. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9/datacontract_cli.egg-info}/PKG-INFO +1 -1
  5. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/pyproject.toml +1 -1
  6. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_kafka.py +57 -2
  7. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_quality_percent_severity.py +33 -0
  8. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/LICENSE +0 -0
  9. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/MANIFEST.in +0 -0
  10. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/README.md +0 -0
  11. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/__init__.py +0 -0
  12. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/api.py +0 -0
  13. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/catalog/catalog.py +0 -0
  14. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/changelog/__init__.py +0 -0
  15. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/changelog/changelog.py +0 -0
  16. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/changelog/normalize.py +0 -0
  17. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/cli.py +0 -0
  18. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_api.py +0 -0
  19. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_catalog.py +0 -0
  20. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_changelog.py +0 -0
  21. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_ci.py +0 -0
  22. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_dbt.py +0 -0
  23. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_edit.py +0 -0
  24. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_export.py +0 -0
  25. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_import.py +0 -0
  26. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_init.py +0 -0
  27. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_lint.py +0 -0
  28. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_publish.py +0 -0
  29. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/command_test.py +0 -0
  30. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/data_contract.py +0 -0
  31. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/VERSION +0 -0
  32. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/abap-Bs8kvjsq.js +0 -0
  33. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/apex-Dspwrl5m.js +0 -0
  34. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/assets/editor.worker-4.7.0.js +0 -0
  35. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/assets/yaml.worker-4.7.0.js +0 -0
  36. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/azcli-k1BiOau1.js +0 -0
  37. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/bat-BIP72KWc.js +0 -0
  38. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/bicep-VhQeYhS3.js +0 -0
  39. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/cameligo-DnuAXtHg.js +0 -0
  40. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/clojure-BAuDPsal.js +0 -0
  41. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/coffee-BV06qSnj.js +0 -0
  42. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/cpp-Cz8Jeyrf.js +0 -0
  43. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/csharp-F6hhlXFb.js +0 -0
  44. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/csp-KzlEHCyI.js +0 -0
  45. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/css-e4FKntZ3.js +0 -0
  46. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/cssMode-BNkTa2xp.js +0 -0
  47. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/cypher-CpvDGKRr.js +0 -0
  48. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/dart-DdHeFWR0.js +0 -0
  49. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/datacontract-editor.css +0 -0
  50. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/datacontract-editor.es.js +0 -0
  51. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/dockerfile-aoNXDcio.js +0 -0
  52. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/ecl-C4Q0DYuA.js +0 -0
  53. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/elixir-C9X42b0T.js +0 -0
  54. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/flow9-Bff42pfB.js +0 -0
  55. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/freemarker2-Dyfzmb5A.js +0 -0
  56. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/fsharp-C6vPAsHG.js +0 -0
  57. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/go-DEr8zx9f.js +0 -0
  58. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/graphql-BiNBBRFh.js +0 -0
  59. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/handlebars-BtDNI-uC.js +0 -0
  60. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/hcl-2T9lKuFg.js +0 -0
  61. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/html-Cn4TGw_o.js +0 -0
  62. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/htmlMode-Bf84vbo2.js +0 -0
  63. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/index.html +0 -0
  64. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/ini-CZGtssYM.js +0 -0
  65. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/java-B260NeH3.js +0 -0
  66. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/javascript-B86Kac07.js +0 -0
  67. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/jsonMode-Ckgg5lAE.js +0 -0
  68. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/julia-kuNLM9c5.js +0 -0
  69. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/kotlin-Bz6kAefA.js +0 -0
  70. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/less-AZUtS89I.js +0 -0
  71. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/lexon-BcmgnyRb.js +0 -0
  72. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/liquid-D0NPwuu_.js +0 -0
  73. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/logo_fuchsia_v2.svg +0 -0
  74. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/lua-Dz1RbATg.js +0 -0
  75. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/m3-CIMooLFn.js +0 -0
  76. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/markdown-C1BsCK9P.js +0 -0
  77. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/mdx-QFRSBtVQ.js +0 -0
  78. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/mips-BovsnfLQ.js +0 -0
  79. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/monaco-4.7.0.js +0 -0
  80. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/msdax-CiRB2ZB-.js +0 -0
  81. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/mysql-BwdpPE19.js +0 -0
  82. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/objective-c-D4nfHfso.js +0 -0
  83. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/odcs.svg +0 -0
  84. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/pascal--j5-PYtz.js +0 -0
  85. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/pascaligo-C7TcJxNL.js +0 -0
  86. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/perl-BzEWqUb5.js +0 -0
  87. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/pgsql-B_KZ0mGX.js +0 -0
  88. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/php-A19QHzQV.js +0 -0
  89. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/pla-COeKY1hA.js +0 -0
  90. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/postiats-BfMp7zJL.js +0 -0
  91. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/powerquery-B0TS_5Gb.js +0 -0
  92. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/powershell-5jSbKdYB.js +0 -0
  93. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/protobuf-YgnOutn3.js +0 -0
  94. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/pug-DLej6kn5.js +0 -0
  95. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/python-C8RW9B6A.js +0 -0
  96. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/qsharp-AhjqtSHB.js +0 -0
  97. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/r-D-F4P80w.js +0 -0
  98. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/razor-CLZqdY_r.js +0 -0
  99. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/redis-hwwIlMnV.js +0 -0
  100. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/redshift-Bcm_kjEG.js +0 -0
  101. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/restructuredtext-CrdzfPP-.js +0 -0
  102. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/ruby-QC2UNm1s.js +0 -0
  103. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/rust-5aqiQ3L5.js +0 -0
  104. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/sb-B1g1ZfLJ.js +0 -0
  105. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/scala-C2U4R5Gb.js +0 -0
  106. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/scheme-DeFRbslr.js +0 -0
  107. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/scss-RSTCiCmI.js +0 -0
  108. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/shell-BpF-iNu8.js +0 -0
  109. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/solidity-C00r2mbQ.js +0 -0
  110. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/sophia-DVW5ZKDB.js +0 -0
  111. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/sparql-B0nmpxeX.js +0 -0
  112. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/sql-CJwKPERn.js +0 -0
  113. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/st-DPlKG5DT.js +0 -0
  114. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/swift-YZBAbVHV.js +0 -0
  115. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/systemverilog-CDQSaH63.js +0 -0
  116. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/tcl-Dlu8sp6Q.js +0 -0
  117. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/tsMode-yleMwhPq.js +0 -0
  118. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/twig-C5TO7-kw.js +0 -0
  119. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/typescript-CJBeebKU.js +0 -0
  120. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/typespec-BsmjDEu7.js +0 -0
  121. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/vb-ChHvIDrk.js +0 -0
  122. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/wgsl-XEp1ju8c.js +0 -0
  123. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/xml-vC-NMVX1.js +0 -0
  124. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/editor_assets/yaml-Dlf2VF-T.js +0 -0
  125. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/__init__.py +0 -0
  126. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/checks/__init__.py +0 -0
  127. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/checks/check_spec.py +0 -0
  128. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/checks/type_normalize.py +0 -0
  129. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/data_contract_test.py +0 -0
  130. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/datacontract/check_azure_blob_file.py +0 -0
  131. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  132. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  133. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  134. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  135. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/__init__.py +0 -0
  136. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/__init__.py +0 -0
  137. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/connect.py +0 -0
  138. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/duckdb_connection.py +0 -0
  139. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/oracle_patch.py +0 -0
  140. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/connections/redshift_patch.py +0 -0
  141. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/dtype_category.py +0 -0
  142. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/engines/ibis/ibis_check_execute.py +0 -0
  143. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/__init__.py +0 -0
  144. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/avro_exporter.py +0 -0
  145. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/avro_idl_exporter.py +0 -0
  146. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/bigquery_exporter.py +0 -0
  147. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/custom_exporter.py +0 -0
  148. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/data_caterer_exporter.py +0 -0
  149. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/dbml_exporter.py +0 -0
  150. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/dbt_exporter.py +0 -0
  151. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/dcs_exporter.py +0 -0
  152. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/dqx_exporter.py +0 -0
  153. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/duckdb_type_converter.py +0 -0
  154. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/excel_exporter.py +0 -0
  155. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/exporter.py +0 -0
  156. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/exporter_factory.py +0 -0
  157. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/go_exporter.py +0 -0
  158. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/great_expectations_exporter.py +0 -0
  159. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/html_exporter.py +0 -0
  160. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/iceberg_exporter.py +0 -0
  161. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/jsonschema_exporter.py +0 -0
  162. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/markdown_exporter.py +0 -0
  163. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/mermaid_exporter.py +0 -0
  164. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/odcs_export_helper.py +0 -0
  165. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/odcs_v3_exporter.py +0 -0
  166. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/pandas_type_converter.py +0 -0
  167. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/protobuf_exporter.py +0 -0
  168. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/pydantic_exporter.py +0 -0
  169. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/rdf_exporter.py +0 -0
  170. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/sodacl_check_builder.py +0 -0
  171. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/sodacl_exporter.py +0 -0
  172. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/spark_exporter.py +0 -0
  173. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/sql_exporter.py +0 -0
  174. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/sql_type_converter.py +0 -0
  175. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/export/sqlalchemy_exporter.py +0 -0
  176. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/avro_importer.py +0 -0
  177. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/bigquery_importer.py +0 -0
  178. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/csv_importer.py +0 -0
  179. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/dbml_importer.py +0 -0
  180. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/dbt_importer.py +0 -0
  181. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/dcs_importer.py +0 -0
  182. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/excel_importer.py +0 -0
  183. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/glue_importer.py +0 -0
  184. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/iceberg_importer.py +0 -0
  185. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/importer.py +0 -0
  186. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/importer_factory.py +0 -0
  187. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/json_importer.py +0 -0
  188. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/jsonschema_importer.py +0 -0
  189. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/odcs_helper.py +0 -0
  190. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/odcs_importer.py +0 -0
  191. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/parquet_importer.py +0 -0
  192. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/powerbi_importer.py +0 -0
  193. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/protobuf_importer.py +0 -0
  194. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/snowflake_importer.py +0 -0
  195. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/spark_importer.py +0 -0
  196. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/sql_importer.py +0 -0
  197. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/imports/unity_importer.py +0 -0
  198. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/init/init_template.py +0 -0
  199. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/integration/dbt_sync.py +0 -0
  200. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/integration/dbt_test_mapping.py +0 -0
  201. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/integration/entropy_data.py +0 -0
  202. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/lint/files.py +0 -0
  203. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/lint/resolve.py +0 -0
  204. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/lint/resources.py +0 -0
  205. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/lint/schema.py +0 -0
  206. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/lint/urls.py +0 -0
  207. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/model/changelog.py +0 -0
  208. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/model/exceptions.py +0 -0
  209. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/model/odcs.py +0 -0
  210. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/model/run.py +0 -0
  211. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/model/server.py +0 -0
  212. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/__init__.py +0 -0
  213. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/ci_output.py +0 -0
  214. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/json_test_results.py +0 -0
  215. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/junit_test_results.py +0 -0
  216. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/output_format.py +0 -0
  217. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/test_results_writer.py +0 -0
  218. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/output/text_changelog_results.py +0 -0
  219. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/py.typed +0 -0
  220. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  221. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  222. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
  223. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
  224. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.2.1.init.yaml +0 -0
  225. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/datacontract-1.2.1.schema.json +0 -0
  226. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  227. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/odcs-3.0.2.schema.json +0 -0
  228. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/odcs-3.1.0.init.yaml +0 -0
  229. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/schemas/odcs-3.1.0.schema.json +0 -0
  230. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/datacontract.html +0 -0
  231. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/datacontract_odcs.html +0 -0
  232. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/index.html +0 -0
  233. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/datacontract_information.html +0 -0
  234. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  235. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/datacontract_terms.html +0 -0
  236. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/definition.html +0 -0
  237. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/example.html +0 -0
  238. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/model_field.html +0 -0
  239. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/quality.html +0 -0
  240. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/partials/server.html +0 -0
  241. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract/templates/style/output.css +0 -0
  242. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract_cli.egg-info/SOURCES.txt +0 -0
  243. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  244. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract_cli.egg-info/entry_points.txt +0 -0
  245. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract_cli.egg-info/requires.txt +0 -0
  246. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/datacontract_cli.egg-info/top_level.txt +0 -0
  247. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/setup.cfg +0 -0
  248. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_api.py +0 -0
  249. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_catalog.py +0 -0
  250. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_changelog.py +0 -0
  251. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_changelog_engine.py +0 -0
  252. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_changelog_normalize.py +0 -0
  253. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_changelog_output_text.py +0 -0
  254. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_ci_output.py +0 -0
  255. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_cli.py +0 -0
  256. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_connect_databricks.py +0 -0
  257. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_connect_sqlserver.py +0 -0
  258. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_connect_trino.py +0 -0
  259. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_data_contract.py +0 -0
  260. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_data_contract_checks.py +0 -0
  261. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_data_contract_specification.py +0 -0
  262. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_dbt_sync.py +0 -0
  263. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_dbt_test_mapping.py +0 -0
  264. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_description_linter.py +0 -0
  265. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_download_datacontract_file.py +0 -0
  266. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_duckdb_json.py +0 -0
  267. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_edit.py +0 -0
  268. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_avro.py +0 -0
  269. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_avro_idl.py +0 -0
  270. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_bigquery.py +0 -0
  271. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_complex_data_contract.py +0 -0
  272. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_custom.py +0 -0
  273. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_custom_exporter.py +0 -0
  274. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_custom_model.py +0 -0
  275. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_data_caterer.py +0 -0
  276. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_dbml.py +0 -0
  277. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_dbt_models.py +0 -0
  278. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_dbt_sources.py +0 -0
  279. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_dbt_staging_sql.py +0 -0
  280. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_dqx.py +0 -0
  281. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_excel.py +0 -0
  282. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_go.py +0 -0
  283. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_great_expectations.py +0 -0
  284. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_html.py +0 -0
  285. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_iceberg.py +0 -0
  286. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_jsonschema.py +0 -0
  287. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_markdown.py +0 -0
  288. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_mermaid.py +0 -0
  289. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_odcs_v3.py +0 -0
  290. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_protobuf.py +0 -0
  291. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_pydantic.py +0 -0
  292. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_rdf.py +0 -0
  293. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_sodacl.py +0 -0
  294. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_spark.py +0 -0
  295. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_sql.py +0 -0
  296. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_sql_clickhouse.py +0 -0
  297. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_sql_query.py +0 -0
  298. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_export_sqlalchemy.py +0 -0
  299. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_ibis_mssql_pattern.py +0 -0
  300. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_ibis_oracle_schema.py +0 -0
  301. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_avro.py +0 -0
  302. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_bigquery.py +0 -0
  303. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_csv.py +0 -0
  304. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_dbml.py +0 -0
  305. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_dbt.py +0 -0
  306. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_excel.py +0 -0
  307. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_glue.py +0 -0
  308. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_iceberg.py +0 -0
  309. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_json.py +0 -0
  310. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_jsonschema.py +0 -0
  311. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_odcs_v3.py +0 -0
  312. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_parquet.py +0 -0
  313. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_powerbi.py +0 -0
  314. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_protobuf.py +0 -0
  315. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_snowflake.py +0 -0
  316. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_spark.py +0 -0
  317. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_sql_oracle.py +0 -0
  318. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_sql_postgres.py +0 -0
  319. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_sql_snowflake.py +0 -0
  320. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_sql_sqlserver.py +0 -0
  321. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_import_unity_file.py +0 -0
  322. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_integration_entropydata.py +0 -0
  323. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_lint.py +0 -0
  324. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_oracle_patch.py +0 -0
  325. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_redshift_patch.py +0 -0
  326. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_require_env.py +0 -0
  327. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_resolve.py +0 -0
  328. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_resolve_definitions.py +0 -0
  329. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_roundtrip_jsonschema.py +0 -0
  330. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_sql_type_converter_physicaltype.py +0 -0
  331. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_api.py +0 -0
  332. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_athena_iceberg.py +0 -0
  333. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_azure_blob_file.py +0 -0
  334. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_azure_remote.py +0 -0
  335. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_bigquery.py +0 -0
  336. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_checks_filter.py +0 -0
  337. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_databricks.py +0 -0
  338. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_dataframe.py +0 -0
  339. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_delta.py +0 -0
  340. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_diagnostics.py +0 -0
  341. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_failed_samples.py +0 -0
  342. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_gcs_csv_remote.py +0 -0
  343. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_gcs_json_remote.py +0 -0
  344. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_kafka_remote.py +0 -0
  345. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_local_json.py +0 -0
  346. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_local_json_nd.py +0 -0
  347. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_mysql.py +0 -0
  348. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_oracle.py +0 -0
  349. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_oracle_xe.py +0 -0
  350. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_output_json.py +0 -0
  351. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_output_junit.py +0 -0
  352. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_parquet.py +0 -0
  353. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_postgres.py +0 -0
  354. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_quality.py +0 -0
  355. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_quality_local_fallback.py +0 -0
  356. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_redshift.py +0 -0
  357. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_csv.py +0 -0
  358. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_delta.py +0 -0
  359. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_json.py +0 -0
  360. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_json_complex.py +0 -0
  361. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_json_multiple_models.py +0 -0
  362. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_s3_json_remote.py +0 -0
  363. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_schema_evolution.py +0 -0
  364. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_server_not_found.py +0 -0
  365. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_snowflake.py +0 -0
  366. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_soda_connection_error.py +0 -0
  367. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_sqlserver.py +0 -0
  368. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_test_trino.py +0 -0
  369. {datacontract_cli-1.0.8 → datacontract_cli-1.0.9}/tests/test_type_normalize.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 1.0.8
3
+ Version: 1.0.9
4
4
  Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
5
5
  Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
6
  License-Expression: MIT
@@ -548,7 +548,14 @@ def _quality_metric_check(model, field, quality: DataQuality, threshold: Thresho
548
548
  if field is None:
549
549
  logger.warning("Quality check invalidValues is only supported at field level")
550
550
  return []
551
- valid_values = quality.arguments.get("validValues") if quality.arguments else None
551
+ args = quality.arguments or {}
552
+ valid_values = args.get("validValues")
553
+ pattern = args.get("pattern")
554
+ if valid_values is None and pattern is None:
555
+ logger.warning(
556
+ f"Quality check invalidValues on field {field} has no validValues or pattern argument; skipping"
557
+ )
558
+ return []
552
559
  return [
553
560
  _invalid_count_check(
554
561
  model,
@@ -558,6 +565,7 @@ def _quality_metric_check(model, field, quality: DataQuality, threshold: Thresho
558
565
  threshold=threshold,
559
566
  category="quality",
560
567
  valid_values=valid_values,
568
+ valid_regex=pattern,
561
569
  threshold_is_percent=is_percent,
562
570
  severity=severity,
563
571
  )
@@ -148,7 +148,15 @@ def process_avro_format(df, model_name: str, schema_obj: SchemaObject):
148
148
  )
149
149
 
150
150
  avro_schema = to_avro_schema_json(model_name, schema_obj)
151
- df2 = df.withColumn("fixedValue", expr("substring(value, 6, length(value)-5)"))
151
+ # Messages serialized through the Confluent Schema Registry are framed with a
152
+ # 5-byte prefix (magic byte 0x00 + 4-byte schema id) that must be stripped
153
+ # before Avro decoding. Plain Avro messages carry no such prefix, so strip it
154
+ # only when the magic byte is present; otherwise stripping 5 bytes would
155
+ # corrupt every record and from_avro (PERMISSIVE) would silently null them out.
156
+ df2 = df.withColumn(
157
+ "fixedValue",
158
+ expr("CASE WHEN substring(value, 1, 1) = X'00' THEN substring(value, 6, length(value)-5) ELSE value END"),
159
+ )
152
160
  options = {"mode": "PERMISSIVE"}
153
161
  df2.select(from_avro(col("fixedValue"), avro_schema, options).alias("avro")).select(
154
162
  col("avro.*")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 1.0.8
3
+ Version: 1.0.9
4
4
  Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
5
5
  Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "datacontract-cli"
3
- version = "1.0.8"
3
+ version = "1.0.9"
4
4
  description = "The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library."
5
5
  license = "MIT"
6
6
  readme = "README.md"
@@ -1,3 +1,5 @@
1
+ import io
2
+ import json
1
3
  import os
2
4
  import sys
3
5
  import time
@@ -11,11 +13,14 @@ if sys.version_info >= (3, 12, 1):
11
13
 
12
14
 
13
15
  from kafka import KafkaProducer
16
+ from open_data_contract_standard.model import OpenDataContractStandard
14
17
  from testcontainers.kafka import KafkaContainer
15
18
 
16
19
  from datacontract.data_contract import DataContract
20
+ from datacontract.export.avro_exporter import to_avro_schema_json
17
21
 
18
22
  datacontract = "fixtures/kafka/datacontract.yaml"
23
+ datacontract_avro = "fixtures/kafka/datacontract_avro.yaml"
19
24
 
20
25
  # Skip when running under pytest-xdist workers - Spark's Java Kafka client
21
26
  # experiences timeouts when running in xdist subprocess environment
@@ -36,6 +41,56 @@ def test_test_kafka(monkeypatch):
36
41
  assert run.result == "passed"
37
42
 
38
43
 
44
+ @pytest.mark.skipif(is_xdist_worker, reason="Spark Kafka tests fail under pytest-xdist workers")
45
+ def test_test_kafka_avro_plain(monkeypatch):
46
+ """Plain Avro messages (no Confluent Schema Registry framing) must decode without
47
+ being corrupted by the 5-byte magic-byte/schema-id strip. Regression for #1344,
48
+ where every field was reported as null (missing_count == row count)."""
49
+ monkeypatch.delenv("DATACONTRACT_KAFKA_SASL_USERNAME", raising=False)
50
+
51
+ with KafkaContainer("confluentinc/cp-kafka:7.7.0").with_kraft() as kafka:
52
+ send_avro_messages_to_topic(kafka, "fixtures/kafka/data/messages.json", "inventory-events-avro")
53
+ data_contract_str = _setup_datacontract(kafka, datacontract_avro)
54
+ data_contract = DataContract(data_contract_str=data_contract_str)
55
+ run = data_contract.test()
56
+
57
+ print(run.pretty())
58
+ assert run.result == "passed"
59
+
60
+
61
+ def send_avro_messages_to_topic(kafka: KafkaContainer, messages_file_path: str, topic_name: str):
62
+ """Serialize the JSON sample records as plain Avro (no Confluent prefix) and publish them."""
63
+ from avro.io import BinaryEncoder, DatumWriter
64
+ from avro.schema import parse as parse_avro_schema
65
+
66
+ print(f"Sending Avro messages from {messages_file_path} to Kafka topic {topic_name}")
67
+
68
+ bootstrap_server = kafka.get_bootstrap_server().replace("localhost", "127.0.0.1")
69
+ _ensure_topic_exists(bootstrap_server, topic_name)
70
+
71
+ with open(datacontract_avro) as data_contract_file:
72
+ odcs = OpenDataContractStandard.from_string(data_contract_file.read())
73
+ schema_obj = odcs.schema_[0]
74
+ avro_schema = parse_avro_schema(to_avro_schema_json(schema_obj.name, schema_obj))
75
+ writer = DatumWriter(avro_schema)
76
+
77
+ def encode(record: dict) -> bytes:
78
+ buffer = io.BytesIO()
79
+ writer.write(record, BinaryEncoder(buffer))
80
+ return buffer.getvalue()
81
+
82
+ producer = KafkaProducer(bootstrap_servers=bootstrap_server, value_serializer=encode)
83
+ messages_sent = 0
84
+ with open(messages_file_path) as messages_file:
85
+ for line in messages_file:
86
+ producer.send(topic=topic_name, value=json.loads(line))
87
+ messages_sent += 1
88
+
89
+ producer.flush()
90
+ producer.close()
91
+ print(f"Sent {messages_sent} Avro messages from {messages_file_path} to Kafka topic {topic_name}")
92
+
93
+
39
94
  def send_messages_to_topic(kafka: KafkaContainer, messages_file_path: str, topic_name: str):
40
95
  print(f"Sending messages from {messages_file_path} to Kafka topic {topic_name}")
41
96
 
@@ -88,8 +143,8 @@ def _ensure_topic_exists(bootstrap_server: str, topic_name: str, timeout_seconds
88
143
  raise TimeoutError(f"Topic {topic_name} not available after {timeout_seconds}s")
89
144
 
90
145
 
91
- def _setup_datacontract(kafka: KafkaContainer):
92
- with open(datacontract) as data_contract_file:
146
+ def _setup_datacontract(kafka: KafkaContainer, contract_path: str = datacontract):
147
+ with open(contract_path) as data_contract_file:
93
148
  data_contract_str = data_contract_file.read()
94
149
  host = kafka.get_bootstrap_server()
95
150
  # Replace localhost with 127.0.0.1 to avoid IPv4/IPv6 resolution issues
@@ -190,3 +190,36 @@ def test_severity_warning_on_absolute_count_check():
190
190
  check = _quality_check(run, "field_invalid_values")
191
191
  assert check.result == ResultEnum.warning
192
192
  assert run.result == ResultEnum.warning
193
+
194
+
195
+ def test_invalid_values_pattern_argument_runs_regex():
196
+ # 1 of 5 emails ("no-at-sign") lacks an @ => 20% invalid, threshold < 10% => fail.
197
+ contract = _odcs(
198
+ email_quality=""" quality:
199
+ - type: library
200
+ metric: invalidValues
201
+ unit: percent
202
+ mustBeLessThan: 10
203
+ arguments:
204
+ pattern: '@'
205
+ """
206
+ )
207
+ run = DataContract(data_contract_str=contract).test()
208
+ check = _quality_check(run, "field_invalid_values")
209
+ assert check.result == ResultEnum.failed
210
+ assert check.diagnostics["percent"] == 20.0
211
+ assert "20.0% (1 of 5 rows)" in check.reason
212
+
213
+
214
+ def test_invalid_values_without_arguments_is_skipped(caplog):
215
+ # An invalidValues check with neither validValues nor pattern can never fail, therefore it should be dropped
216
+ contract = _odcs(
217
+ email_quality=""" quality:
218
+ - type: library
219
+ metric: invalidValues
220
+ mustBe: 0
221
+ """
222
+ )
223
+ checks = _checks(contract)
224
+ assert not any(c.type == "field_invalid_values" for c in checks)
225
+ assert "no validValues or pattern argument" in caplog.text