datacontract-cli 0.10.21__tar.gz → 0.10.23__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.

Potentially problematic release.


This version of datacontract-cli might be problematic. Click here for more details.

Files changed (218) hide show
  1. {datacontract_cli-0.10.21/datacontract_cli.egg-info → datacontract_cli-0.10.23}/PKG-INFO +192 -215
  2. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/README.md +177 -200
  3. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/breaking/breaking.py +1 -1
  4. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/breaking/breaking_rules.py +1 -1
  5. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/cli.py +25 -77
  6. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/data_contract.py +14 -100
  7. datacontract_cli-0.10.23/datacontract/engines/data_contract_checks.py +735 -0
  8. datacontract_cli-0.10.23/datacontract/engines/data_contract_test.py +67 -0
  9. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +2 -3
  10. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/check_soda_execute.py +37 -31
  11. datacontract_cli-0.10.21/datacontract/engines/soda/connections/duckdb.py → datacontract_cli-0.10.23/datacontract/engines/soda/connections/duckdb_connection.py +6 -5
  12. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/kafka.py +8 -3
  13. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/avro_converter.py +2 -0
  14. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/dbt_converter.py +13 -10
  15. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/exporter.py +0 -2
  16. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/exporter_factory.py +0 -12
  17. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/odcs_v3_exporter.py +22 -3
  18. datacontract_cli-0.10.23/datacontract/export/sodacl_converter.py +30 -0
  19. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/sql_type_converter.py +7 -2
  20. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/odcs_importer.py +6 -3
  21. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/odcs_v3_importer.py +3 -1
  22. datacontract_cli-0.10.23/datacontract/imports/sql_importer.py +286 -0
  23. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/resolve.py +17 -4
  24. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/model/exceptions.py +4 -1
  25. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/model/run.py +11 -4
  26. datacontract_cli-0.10.23/datacontract/output/junit_test_results.py +135 -0
  27. datacontract_cli-0.10.23/datacontract/output/output_format.py +10 -0
  28. datacontract_cli-0.10.23/datacontract/output/test_results_writer.py +79 -0
  29. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23/datacontract_cli.egg-info}/PKG-INFO +192 -215
  30. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract_cli.egg-info/SOURCES.txt +11 -15
  31. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract_cli.egg-info/requires.txt +15 -15
  32. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/pyproject.toml +17 -17
  33. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_api.py +1 -1
  34. datacontract_cli-0.10.23/tests/test_data_contract_checks.py +10 -0
  35. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_avro.py +11 -0
  36. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_dbt_models.py +57 -0
  37. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_odcs_v3.py +7 -7
  38. datacontract_cli-0.10.23/tests/test_export_sodacl.py +122 -0
  39. datacontract_cli-0.10.21/tests/test_import_sql.py → datacontract_cli-0.10.23/tests/test_import_sql_postgres.py +55 -22
  40. datacontract_cli-0.10.23/tests/test_import_sql_sqlserver.py +178 -0
  41. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_lint.py +1 -1
  42. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_resolve.py +37 -0
  43. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_spec_ref.py +1 -1
  44. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_dataframe.py +23 -0
  45. datacontract_cli-0.10.23/tests/test_test_output_junit.py +22 -0
  46. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_postgres.py +17 -1
  47. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_quality.py +9 -6
  48. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_json_multiple_models.py +0 -3
  49. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_json_remote.py +1 -1
  50. datacontract_cli-0.10.21/datacontract/engines/soda/connections/dask.py +0 -28
  51. datacontract_cli-0.10.21/datacontract/export/odcs_v2_exporter.py +0 -124
  52. datacontract_cli-0.10.21/datacontract/export/sodacl_converter.py +0 -302
  53. datacontract_cli-0.10.21/datacontract/imports/odcs_v2_importer.py +0 -177
  54. datacontract_cli-0.10.21/datacontract/imports/sql_importer.py +0 -86
  55. datacontract_cli-0.10.21/datacontract/lint/linters/example_model_linter.py +0 -91
  56. datacontract_cli-0.10.21/tests/test_example_model_linter.py +0 -82
  57. datacontract_cli-0.10.21/tests/test_export_odcs_v2.py +0 -81
  58. datacontract_cli-0.10.21/tests/test_export_sodacl.py +0 -91
  59. datacontract_cli-0.10.21/tests/test_import_odcs_v2.py +0 -50
  60. datacontract_cli-0.10.21/tests/test_test_examples_csv.py +0 -30
  61. datacontract_cli-0.10.21/tests/test_test_examples_formats_valid.py +0 -15
  62. datacontract_cli-0.10.21/tests/test_test_examples_inline.py +0 -20
  63. datacontract_cli-0.10.21/tests/test_test_examples_json.py +0 -29
  64. datacontract_cli-0.10.21/tests/test_test_examples_missing.py +0 -23
  65. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/LICENSE +0 -0
  66. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/MANIFEST.in +0 -0
  67. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/__init__.py +0 -0
  68. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/api.py +0 -0
  69. {datacontract_cli-0.10.21/datacontract/model → datacontract_cli-0.10.23/datacontract/breaking}/breaking_change.py +0 -0
  70. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/catalog/catalog.py +0 -0
  71. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/__init__.py +0 -0
  72. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  73. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  74. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  75. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/__init__.py +0 -0
  76. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/bigquery.py +0 -0
  77. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/databricks.py +0 -0
  78. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/postgres.py +0 -0
  79. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/snowflake.py +0 -0
  80. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/sqlserver.py +0 -0
  81. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/engines/soda/connections/trino.py +0 -0
  82. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/__init__.py +0 -0
  83. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/avro_idl_converter.py +0 -0
  84. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/bigquery_converter.py +0 -0
  85. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/csv_type_converter.py +0 -0
  86. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/custom_converter.py +0 -0
  87. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/data_caterer_converter.py +0 -0
  88. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/dbml_converter.py +0 -0
  89. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/dcs_exporter.py +0 -0
  90. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/go_converter.py +0 -0
  91. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/great_expectations_converter.py +0 -0
  92. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/html_export.py +0 -0
  93. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/iceberg_converter.py +0 -0
  94. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/jsonschema_converter.py +0 -0
  95. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/markdown_converter.py +0 -0
  96. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/pandas_type_converter.py +0 -0
  97. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/protobuf_converter.py +0 -0
  98. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/pydantic_converter.py +0 -0
  99. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/rdf_converter.py +0 -0
  100. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/spark_converter.py +0 -0
  101. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/sql_converter.py +0 -0
  102. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/sqlalchemy_converter.py +0 -0
  103. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/export/terraform_converter.py +0 -0
  104. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/avro_importer.py +0 -0
  105. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/bigquery_importer.py +0 -0
  106. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/csv_importer.py +0 -0
  107. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/dbml_importer.py +0 -0
  108. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/dbt_importer.py +0 -0
  109. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/glue_importer.py +0 -0
  110. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/iceberg_importer.py +0 -0
  111. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/importer.py +0 -0
  112. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/importer_factory.py +0 -0
  113. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/jsonschema_importer.py +0 -0
  114. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/parquet_importer.py +0 -0
  115. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/spark_importer.py +0 -0
  116. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/imports/unity_importer.py +0 -0
  117. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/init/init_template.py +0 -0
  118. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/integration/datamesh_manager.py +0 -0
  119. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/files.py +0 -0
  120. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/lint.py +0 -0
  121. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/__init__.py +0 -0
  122. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/description_linter.py +0 -0
  123. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/field_pattern_linter.py +0 -0
  124. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/field_reference_linter.py +0 -0
  125. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/notice_period_linter.py +0 -0
  126. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/quality_schema_linter.py +0 -0
  127. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
  128. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/resources.py +0 -0
  129. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/schema.py +0 -0
  130. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/lint/urls.py +0 -0
  131. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/model/data_contract_specification.py +0 -0
  132. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/model/odcs.py +0 -0
  133. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/py.typed +0 -0
  134. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  135. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  136. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  137. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/datacontract.html +0 -0
  138. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/index.html +0 -0
  139. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/datacontract_information.html +0 -0
  140. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  141. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/datacontract_terms.html +0 -0
  142. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/definition.html +0 -0
  143. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/example.html +0 -0
  144. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/model_field.html +0 -0
  145. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/quality.html +0 -0
  146. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/partials/server.html +0 -0
  147. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract/templates/style/output.css +0 -0
  148. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  149. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract_cli.egg-info/entry_points.txt +0 -0
  150. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/datacontract_cli.egg-info/top_level.txt +0 -0
  151. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/setup.cfg +0 -0
  152. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_breaking.py +0 -0
  153. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_catalog.py +0 -0
  154. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_changelog.py +0 -0
  155. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_cli.py +0 -0
  156. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_data_contract_specification.py +0 -0
  157. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_description_linter.py +0 -0
  158. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_documentation_linter.py +0 -0
  159. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_download_datacontract_file.py +0 -0
  160. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_avro_idl.py +0 -0
  161. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_bigquery.py +0 -0
  162. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_complex_data_contract.py +0 -0
  163. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_custom.py +0 -0
  164. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_custom_exporter.py +0 -0
  165. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_data_caterer.py +0 -0
  166. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_dbml.py +0 -0
  167. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_dbt_sources.py +0 -0
  168. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_dbt_staging_sql.py +0 -0
  169. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_go.py +0 -0
  170. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_great_expectations.py +0 -0
  171. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_html.py +0 -0
  172. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_iceberg.py +0 -0
  173. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_jsonschema.py +0 -0
  174. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_markdown.py +0 -0
  175. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_protobuf.py +0 -0
  176. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_pydantic.py +0 -0
  177. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_rdf.py +0 -0
  178. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_spark.py +0 -0
  179. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_sql.py +0 -0
  180. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_sql_query.py +0 -0
  181. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_sqlalchemy.py +0 -0
  182. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_export_terraform.py +0 -0
  183. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_field_constraint_linter.py +0 -0
  184. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_field_pattern_linter.py +0 -0
  185. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_field_reference_linter.py +0 -0
  186. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_avro.py +0 -0
  187. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_bigquery.py +0 -0
  188. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_csv.py +0 -0
  189. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_dbml.py +0 -0
  190. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_dbt.py +0 -0
  191. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_glue.py +0 -0
  192. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_iceberg.py +0 -0
  193. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_jsonschema.py +0 -0
  194. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_odcs_v3.py +0 -0
  195. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_parquet.py +0 -0
  196. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_spark.py +0 -0
  197. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_import_unity_file.py +0 -0
  198. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_integration_datameshmanager.py +0 -0
  199. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_notice_period_linter.py +0 -0
  200. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_quality_schema_linter.py +0 -0
  201. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_roundtrip_jsonschema.py +0 -0
  202. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_spec_fields_field.py +0 -0
  203. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_azure_remote.py +0 -0
  204. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_bigquery.py +0 -0
  205. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_databricks.py +0 -0
  206. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_delta.py +0 -0
  207. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_gcs_json_remote.py +0 -0
  208. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_kafka.py +0 -0
  209. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_kafka_remote.py +0 -0
  210. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_local_json.py +0 -0
  211. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_parquet.py +0 -0
  212. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_csv.py +0 -0
  213. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_delta.py +0 -0
  214. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_json.py +0 -0
  215. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_s3_json_complex.py +0 -0
  216. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_snowflake.py +0 -0
  217. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_sqlserver.py +0 -0
  218. {datacontract_cli-0.10.21 → datacontract_cli-0.10.23}/tests/test_test_trino.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: datacontract-cli
3
- Version: 0.10.21
3
+ Version: 0.10.23
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
  Project-URL: Homepage, https://cli.datacontract.com
@@ -16,17 +16,17 @@ Requires-Dist: pydantic<2.11.0,>=2.8.2
16
16
  Requires-Dist: pyyaml~=6.0.1
17
17
  Requires-Dist: requests<2.33,>=2.31
18
18
  Requires-Dist: fastjsonschema<2.22.0,>=2.19.1
19
- Requires-Dist: fastparquet==2024.11.0
19
+ Requires-Dist: fastparquet<2025.0.0,>=2024.5.0
20
20
  Requires-Dist: numpy<2.0.0,>=1.26.4
21
21
  Requires-Dist: python-multipart==0.0.20
22
22
  Requires-Dist: rich<13.10,>=13.7
23
- Requires-Dist: simple-ddl-parser==1.7.1
24
- Requires-Dist: duckdb==1.1.2
25
- Requires-Dist: soda-core-duckdb<3.4.0,>=3.3.20
23
+ Requires-Dist: sqlglot<27.0.0,>=26.6.0
24
+ Requires-Dist: duckdb<2.0.0,>=1.0.0
25
+ Requires-Dist: soda-core-duckdb<3.5.0,>=3.3.20
26
26
  Requires-Dist: setuptools>=60
27
27
  Requires-Dist: python-dotenv~=1.0.0
28
- Requires-Dist: rdflib==7.0.0
29
- Requires-Dist: boto3<1.35.98,>=1.34.41
28
+ Requires-Dist: boto3<1.36.12,>=1.34.41
29
+ Requires-Dist: Jinja2>=3.1.5
30
30
  Requires-Dist: jinja_partials>=0.2.1
31
31
  Provides-Extra: avro
32
32
  Requires-Dist: avro==1.12.0; extra == "avro"
@@ -39,7 +39,7 @@ Provides-Extra: databricks
39
39
  Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.20; extra == "databricks"
40
40
  Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.20; extra == "databricks"
41
41
  Requires-Dist: databricks-sql-connector<3.8.0,>=3.7.0; extra == "databricks"
42
- Requires-Dist: databricks-sdk<0.41.0; extra == "databricks"
42
+ Requires-Dist: databricks-sdk<0.45.0; extra == "databricks"
43
43
  Provides-Extra: iceberg
44
44
  Requires-Dist: pyiceberg==0.8.1; extra == "iceberg"
45
45
  Provides-Extra: kafka
@@ -48,11 +48,11 @@ Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.20; extra == "kafka"
48
48
  Provides-Extra: postgres
49
49
  Requires-Dist: soda-core-postgres<3.4.0,>=3.3.20; extra == "postgres"
50
50
  Provides-Extra: s3
51
- Requires-Dist: s3fs==2024.12.0; extra == "s3"
51
+ Requires-Dist: s3fs==2025.2.0; extra == "s3"
52
52
  Requires-Dist: aiobotocore<2.20.0,>=2.17.0; extra == "s3"
53
53
  Provides-Extra: snowflake
54
- Requires-Dist: snowflake-connector-python[pandas]<3.13,>=3.6; extra == "snowflake"
55
- Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.20; extra == "snowflake"
54
+ Requires-Dist: snowflake-connector-python[pandas]<3.14,>=3.6; extra == "snowflake"
55
+ Requires-Dist: soda-core-snowflake<3.5.0,>=3.3.20; extra == "snowflake"
56
56
  Provides-Extra: sqlserver
57
57
  Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.20; extra == "sqlserver"
58
58
  Provides-Extra: trino
@@ -63,13 +63,13 @@ Provides-Extra: dbml
63
63
  Requires-Dist: pydbml>=1.1.1; extra == "dbml"
64
64
  Provides-Extra: parquet
65
65
  Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
66
+ Provides-Extra: rdf
67
+ Requires-Dist: rdflib==7.0.0; extra == "rdf"
66
68
  Provides-Extra: api
67
- Requires-Dist: fastapi==0.115.6; extra == "api"
69
+ Requires-Dist: fastapi==0.115.8; extra == "api"
68
70
  Requires-Dist: uvicorn==0.34.0; extra == "api"
69
- Provides-Extra: custom
70
- Requires-Dist: Jinja2>=3.1.5; extra == "custom"
71
71
  Provides-Extra: all
72
- Requires-Dist: datacontract-cli[api,bigquery,csv,custom,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
72
+ Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
73
73
  Provides-Extra: dev
74
74
  Requires-Dist: datacontract-cli[all]; extra == "dev"
75
75
  Requires-Dist: httpx==0.28.1; extra == "dev"
@@ -194,17 +194,20 @@ $ datacontract init datacontract.yaml
194
194
  # lint the datacontract.yaml
195
195
  $ datacontract lint datacontract.yaml
196
196
 
197
- # execute schema and quality checks
197
+ # execute schema and quality checks (define credentials as environment variables)
198
198
  $ datacontract test datacontract.yaml
199
199
 
200
- # execute schema and quality checks on the examples within the contract
201
- $ datacontract test --examples datacontract.yaml
200
+ # export data contract as html (other formats: avro, dbt, dbt-sources, dbt-staging-sql, jsonschema, odcs, rdf, sql, sodacl, terraform, ...)
201
+ $ datacontract export --format html datacontract.yaml --output datacontract.html
202
202
 
203
- # export data contract as html (other formats: avro, dbt, dbt-sources, dbt-staging-sql, jsonschema, odcs_v2, odcs_v3, rdf, sql, sodacl, terraform, ...)
204
- $ datacontract export --format html datacontract.yaml > datacontract.html
203
+ # export data contract to ODCS
204
+ $ datacontract export --format odcs datacontract.yaml --output odcs.yaml
205
205
 
206
- # import avro (other formats: sql, glue, bigquery...)
207
- $ datacontract import --format avro --source avro_schema.avsc
206
+ # import ODCS to data contract
207
+ $ datacontract import --format odcs odcs.yaml --output datacontract.yaml
208
+
209
+ # import sql (other formats: avro, glue, bigquery, jsonschema ...)
210
+ $ datacontract import --format sql --source my-ddl.sql --dialect postgres --output datacontract.yaml
208
211
 
209
212
  # find differences between two data contracts
210
213
  $ datacontract diff datacontract-v1.yaml datacontract-v2.yaml
@@ -227,6 +230,12 @@ if not run.has_passed():
227
230
  # Abort pipeline, alert, or take corrective actions...
228
231
  ```
229
232
 
233
+ ## How to
234
+
235
+ - [How to integrate Data Contract CLI in your CI/CD pipeline as a GitHub Action](https://github.com/datacontract/datacontract-action/)
236
+ - [How to run the Data Contract CLI API to test data contracts with POST requests](https://cli.datacontract.com/API)
237
+ - [How to run Data Contract CLI in a Databricks pipeline](https://www.datamesh-architecture.com/howto/build-a-dataproduct-with-databricks#test-the-data-product)
238
+
230
239
 
231
240
  ## Installation
232
241
 
@@ -237,12 +246,28 @@ Python 3.10, 3.11, and 3.12 are supported. We recommend to use Python 3.11.
237
246
 
238
247
  ```bash
239
248
  python3 -m pip install 'datacontract-cli[all]'
249
+ datacontract --version
250
+ ```
251
+
252
+ ### pip with venv
253
+
254
+ Typically it is better to install the application in a virtual environment for your projects:
255
+
256
+ ```bash
257
+ cd my-project
258
+ python3.11 -m venv venv
259
+ source venv/bin/activate
260
+ pip install 'datacontract-cli[all]'
261
+ datacontract --version
240
262
  ```
241
263
 
242
264
  ### pipx
265
+
243
266
  pipx installs into an isolated environment.
267
+
244
268
  ```bash
245
269
  pipx install 'datacontract-cli[all]'
270
+ datacontract --version
246
271
  ```
247
272
 
248
273
  ### Docker
@@ -264,7 +289,7 @@ _Note:_ The output of Docker command line messages is limited to 80 columns and
264
289
 
265
290
 
266
291
 
267
- ## Optional Dependencies
292
+ ## Optional Dependencies (Extras)
268
293
 
269
294
  The CLI tool defines several optional dependencies (also known as extras) that can be installed for using with specific servers types.
270
295
  With _all_, all server dependencies are included.
@@ -275,21 +300,23 @@ pip install datacontract-cli[all]
275
300
 
276
301
  A list of available extras:
277
302
 
278
- | Dependency | Installation Command |
279
- |------------------------|--------------------------------------------|
280
- | Avro Support | `pip install datacontract-cli[avro]` |
281
- | Google BigQuery | `pip install datacontract-cli[bigquery]` |
282
- | Databricks Integration | `pip install datacontract-cli[databricks]` |
283
- | Iceberg | `pip install datacontract-cli[iceberg]` |
284
- | Kafka Integration | `pip install datacontract-cli[kafka]` |
285
- | PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
286
- | S3 Integration | `pip install datacontract-cli[s3]` |
287
- | Snowflake Integration | `pip install datacontract-cli[snowflake]` |
288
- | Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
289
- | Trino | `pip install datacontract-cli[trino]` |
290
- | Dbt | `pip install datacontract-cli[dbt]` |
291
- | Dbml | `pip install datacontract-cli[dbml]` |
292
- | Parquet | `pip install datacontract-cli[parquet]` |
303
+ | Dependency | Installation Command |
304
+ |-------------------------|--------------------------------------------|
305
+ | Avro Support | `pip install datacontract-cli[avro]` |
306
+ | Google BigQuery | `pip install datacontract-cli[bigquery]` |
307
+ | Databricks Integration | `pip install datacontract-cli[databricks]` |
308
+ | Iceberg | `pip install datacontract-cli[iceberg]` |
309
+ | Kafka Integration | `pip install datacontract-cli[kafka]` |
310
+ | PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
311
+ | S3 Integration | `pip install datacontract-cli[s3]` |
312
+ | Snowflake Integration | `pip install datacontract-cli[snowflake]` |
313
+ | Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
314
+ | Trino | `pip install datacontract-cli[trino]` |
315
+ | dbt | `pip install datacontract-cli[dbt]` |
316
+ | DBML | `pip install datacontract-cli[dbml]` |
317
+ | Parquet | `pip install datacontract-cli[parquet]` |
318
+ | RDF | `pip install datacontract-cli[rdf]` |
319
+ | API (run as web server) | `pip install datacontract-cli[api]` |
293
320
 
294
321
 
295
322
 
@@ -357,54 +384,41 @@ Commands
357
384
 
358
385
  ### test
359
386
  ```
360
-
361
- Usage: datacontract test [OPTIONS] [LOCATION]
362
-
363
- Run schema and quality tests on configured servers.
364
-
365
- ╭─ Arguments ──────────────────────────────────────────────────────────────────╮
366
- │ location [LOCATION] The location (url or path) of the data contract
367
- │ yaml.
368
- │ [default: datacontract.yaml] │
369
- ╰──────────────────────────────────────────────────────────────────────────────╯
370
- ╭─ Options ────────────────────────────────────────────────────────────────────╮
371
- --schema TEXT The location (url or
372
- path) of the Data
373
- Contract Specification
374
- JSON Schema
375
- [default:
376
- https://datacontract.c…
377
- --server TEXT The server
378
- configuration to run
379
- the schema and quality
380
- tests. Use the key of
381
- the server object in
382
- the data contract yaml
383
- file to refer to a
384
- server, e.g.,
385
- `production`, or `all`
386
- for all servers
387
- (default).
388
- [default: all]
389
- │ --examples --no-examples Run the schema and
390
- quality tests on the
391
- example data within the
392
- data contract.
393
- [default: no-examples]
394
- │ --publish TEXT The url to publish the │
395
- │ results after the test │
396
- │ [default: None] │
397
- │ --logs --no-logs Print logs │
398
- │ [default: no-logs] │
399
- │ --ssl-verification --no-ssl-verification SSL verification when │
400
- │ publishing the data │
401
- │ contract. │
402
- │ [default: │
403
- │ ssl-verification] │
404
- │ --help Show this message and │
405
- │ exit. │
406
- ╰──────────────────────────────────────────────────────────────────────────────╯
407
-
387
+
388
+ Usage: datacontract test [OPTIONS] [LOCATION]
389
+
390
+ Run schema and quality tests on configured servers.
391
+
392
+ ╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────╮
393
+ │ location [LOCATION] The location (url or path) of the data contract yaml.
394
+ [default: datacontract.yaml]
395
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
396
+ ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
397
+ --schema TEXT The location (url or path) of the Data │
398
+ Contract Specification JSON Schema
399
+ [default: None]
400
+ --server TEXT The server configuration to run the
401
+ schema and quality tests. Use the key of
402
+ the server object in the data contract
403
+ yaml file to refer to a server, e.g.,
404
+ `production`, or `all` for all servers
405
+ (default).
406
+ [default: all]
407
+ --publish TEXT The url to publish the results after the
408
+ test
409
+ [default: None]
410
+ --output PATH Specify the file path where the test
411
+ results should be written to (e.g.,
412
+ './test-results/TEST-datacontract.xml').
413
+ [default: None]
414
+ --output-format [junit] The target format for the test results.
415
+ [default: None]
416
+ │ --logs --no-logs Print logs [default: no-logs]
417
+ --ssl-verification --no-ssl-verification SSL verification when publishing the
418
+ data contract.
419
+ [default: ssl-verification]
420
+ --help Show this message and exit.
421
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
408
422
  ```
409
423
 
410
424
  Data Contract CLI connects to a data source and runs schema and quality tests to verify that the data contract is valid.
@@ -877,8 +891,8 @@ models:
877
891
  ╭─ Options ────────────────────────────────────────────────────────────────────╮
878
892
  │ * --format [jsonschema|pydantic-model| The export format. │
879
893
  │ sodacl|dbt|dbt-sources|dbt- [default: None] │
880
- │ staging-sql|odcs|odcs_v2|od [required] │
881
- cs_v3|rdf|avro|protobuf|gre
894
+ │ staging-sql|odcs| [required] │
895
+ │ rdf|avro|protobuf|gre
882
896
  │ at-expectations|terraform|a │
883
897
  │ vro-idl|sql|sql-query|html| │
884
898
  │ go|bigquery|dbml|spark|sqla │
@@ -936,8 +950,6 @@ Available export options:
936
950
  |----------------------|---------------------------------------------------------|--------|
937
951
  | `html` | Export to HTML | ✅ |
938
952
  | `jsonschema` | Export to JSON Schema | ✅ |
939
- | `odcs_v2` | Export to Open Data Contract Standard (ODCS) V2 | ✅ |
940
- | `odcs_v3` | Export to Open Data Contract Standard (ODCS) V3 | ✅ |
941
953
  | `odcs` | Export to Open Data Contract Standard (ODCS) V3 | ✅ |
942
954
  | `sodacl` | Export to SodaCL quality checks in YAML format | ✅ |
943
955
  | `dbt` | Export to dbt models in YAML format | ✅ |
@@ -1023,6 +1035,12 @@ The export function converts the logical data types of the datacontract into the
1023
1035
  if a server is selected via the `--server` option (based on the `type` of that server). If no server is selected, the
1024
1036
  logical data types are exported.
1025
1037
 
1038
+ #### DBT & DBT-SOURCES
1039
+
1040
+ The export funciton converts the datacontract to dbt models in YAML format, with support for SQL dialects.
1041
+ If a server is selected via the `--server` option (based on the `type` of that server) then the DBT column `data_types` match the expected data types of the server.
1042
+ If no server is selected, then it defaults to `snowflake`.
1043
+
1026
1044
  #### Spark
1027
1045
 
1028
1046
  The export function converts the data contract specification into a StructType Spark schema. The returned value is a Python code picture of the model schemas.
@@ -1214,107 +1232,80 @@ FROM
1214
1232
 
1215
1233
  ### import
1216
1234
  ```
1217
-
1218
- Usage: datacontract import [OPTIONS]
1219
-
1220
- Create a data contract from the given source location. Saves to file specified
1221
- by `output` option if present, otherwise prints to stdout.
1222
-
1223
- ╭─ Options ────────────────────────────────────────────────────────────────────╮
1224
- * --format [sql|avro|dbt|dbml|gl The format of the
1225
- ue|jsonschema|bigquer source file.
1226
- y|odcs|unity|spark|ic [default: None]
1227
- eberg|parquet|csv] [required]
1228
- --output PATH Specify the file path
1229
- where the Data
1230
- Contract will be
1231
- saved. If no path is
1232
- provided, the output
1233
- will be printed to
1234
- stdout.
1235
- [default: None]
1236
- --source TEXT The path to the file
1237
- or Glue Database that
1238
- should be imported.
1239
- [default: None]
1240
- --glue-table TEXT List of table ids to
1241
- import from the Glue
1242
- Database (repeat for
1243
- multiple table ids,
1244
- leave empty for all
1245
- tables in the
1246
- dataset).
1247
- [default: None]
1248
- --bigquery-project TEXT The bigquery project
1249
- id.
1250
- [default: None]
1251
- --bigquery-dataset TEXT The bigquery dataset
1252
- id.
1253
- [default: None]
1254
- --bigquery-table TEXT List of table ids to
1255
- import from the
1256
- bigquery API (repeat
1257
- for multiple table
1258
- ids, leave empty for
1259
- all tables in the
1260
- dataset).
1261
- [default: None]
1262
- --unity-table-full-n… TEXT Full name of a table
1263
- in the unity catalog
1264
- [default: None]
1265
- │ --dbt-model TEXT List of models names
1266
- to import from the
1267
- dbt manifest file
1268
- (repeat for multiple
1269
- models names, leave
1270
- empty for all models
1271
- in the dataset). │
1272
- [default: None]
1273
- │ --dbml-schema TEXT List of schema names
1274
- to import from the
1275
- DBML file (repeat for
1276
- multiple schema
1277
- names, leave empty
1278
- for all tables in the
1279
- file).
1280
- [default: None]
1281
- │ --dbml-table TEXT List of table names │
1282
- │ to import from the │
1283
- │ DBML file (repeat for │
1284
- │ multiple table names, │
1285
- │ leave empty for all │
1286
- │ tables in the file). │
1287
- │ [default: None] │
1288
- │ --iceberg-table TEXT Table name to assign │
1289
- │ to the model created │
1290
- │ from the Iceberg │
1291
- │ schema. │
1292
- │ [default: None] │
1293
- │ --template TEXT The location (url or │
1294
- │ path) of the Data │
1295
- │ Contract │
1296
- │ Specification │
1297
- │ Template │
1298
- │ [default: None] │
1299
- │ --schema TEXT The location (url or │
1300
- │ path) of the Data │
1301
- │ Contract │
1302
- │ Specification JSON │
1303
- │ Schema │
1304
- │ [default: │
1305
- │ https://datacontract… │
1306
- │ --help Show this message and │
1307
- │ exit. │
1308
- ╰──────────────────────────────────────────────────────────────────────────────╯
1235
+ Usage: datacontract import [OPTIONS]
1236
+
1237
+ Create a data contract from the given source location. Saves to file specified by `output` option if present,
1238
+ otherwise prints to stdout.
1239
+
1240
+ ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────╮
1241
+ * --format [sql|avro|dbt|dbml|glue|jsonschema|bi The format of the source file. │
1242
+ gquery|odcs|unity|spark|iceberg|parqu [default: None]
1243
+ et|csv] [required]
1244
+ --output PATH Specify the file path where the Data
1245
+ Contract will be saved. If no path is
1246
+ provided, the output will be printed
1247
+ to stdout.
1248
+ [default: None]
1249
+ --source TEXT The path to the file or Glue Database
1250
+ that should be imported.
1251
+ [default: None]
1252
+ --dialect TEXT The SQL dialect to use when importing
1253
+ SQL files, e.g., postgres, tsql,
1254
+ bigquery.
1255
+ [default: None]
1256
+ --glue-table TEXT List of table ids to import from the
1257
+ Glue Database (repeat for multiple
1258
+ table ids, leave empty for all tables
1259
+ in the dataset).
1260
+ [default: None]
1261
+ --bigquery-project TEXT The bigquery project id.
1262
+ [default: None]
1263
+ --bigquery-dataset TEXT The bigquery dataset id.
1264
+ [default: None]
1265
+ --bigquery-table TEXT List of table ids to import from the
1266
+ bigquery API (repeat for multiple
1267
+ table ids, leave empty for all tables
1268
+ in the dataset).
1269
+ [default: None]
1270
+ --unity-table-full-name TEXT Full name of a table in the unity
1271
+ catalog
1272
+ [default: None]
1273
+ --dbt-model TEXT List of models names to import from
1274
+ the dbt manifest file (repeat for
1275
+ multiple models names, leave empty
1276
+ for all models in the dataset).
1277
+ [default: None]
1278
+ --dbml-schema TEXT List of schema names to import from
1279
+ the DBML file (repeat for multiple
1280
+ schema names, leave empty for all
1281
+ tables in the file).
1282
+ [default: None]
1283
+ │ --dbml-table TEXT List of table names to import from
1284
+ the DBML file (repeat for multiple
1285
+ table names, leave empty for all
1286
+ tables in the file).
1287
+ [default: None]
1288
+ --iceberg-table TEXT Table name to assign to the model
1289
+ created from the Iceberg schema. │
1290
+ [default: None]
1291
+ │ --template TEXT The location (url or path) of the
1292
+ Data Contract Specification Template
1293
+ [default: None]
1294
+ --schema TEXT The location (url or path) of the
1295
+ Data Contract Specification JSON
1296
+ Schema
1297
+ [default: None]
1298
+ --help Show this message and exit.
1299
+ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1309
1300
 
1310
1301
  ```
1311
1302
 
1312
1303
  Example:
1313
1304
  ```bash
1314
1305
  # Example import from SQL DDL
1315
- datacontract import --format sql --source my_ddl.sql
1306
+ datacontract import --format sql --source my_ddl.sql --dialect postgres
1316
1307
  # To save to file
1317
- datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
1308
+ datacontract import --format sql --source my_ddl.sql --dialect postgres --output datacontract.yaml
1318
1309
  ```
1319
1310
 
1320
1311
  Available import options:
@@ -1669,24 +1660,20 @@ Create a data contract based on the actual data. This is the fastest way to get
1669
1660
  $ datacontract test
1670
1661
  ```
1671
1662
 
1672
- 2. Add examples to the `datacontract.yaml`. If you can, use actual data and anonymize. Make sure that the examples match the imported logical data model.
1673
- ```bash
1674
- $ datacontract test --examples
1675
- ```
1676
-
1677
-
1678
- 3. Add quality checks and additional type constraints one by one to the contract and make sure the examples and the actual data still adheres to the contract. Check against examples for a very fast feedback loop.
1663
+ 2. Add quality checks and additional type constraints one by one to the contract and make sure the
1664
+ data still adheres to the contract.
1679
1665
  ```bash
1680
- $ datacontract test --examples
1681
1666
  $ datacontract test
1682
1667
  ```
1683
1668
 
1684
- 4. Make sure that all the best practices for a `datacontract.yaml` are met using the linter. You probably forgot to document some fields and add the terms and conditions.
1669
+ 3. Make sure that all the best practices for a `datacontract.yaml` are met using the linter. You
1670
+ probably forgot to document some fields and add the terms and conditions.
1685
1671
  ```bash
1686
1672
  $ datacontract lint
1687
1673
  ```
1688
1674
 
1689
- 5. Set up a CI pipeline that executes daily for continuous quality checks. You can also report the test results to tools like [Data Mesh Manager](https://datamesh-manager.com)
1675
+ 4. Set up a CI pipeline that executes daily for continuous quality checks. You can also report the
1676
+ test results to tools like [Data Mesh Manager](https://datamesh-manager.com)
1690
1677
  ```bash
1691
1678
  $ datacontract test --publish https://api.datamesh-manager.com/api/test-results
1692
1679
  ```
@@ -1700,30 +1687,15 @@ Create a data contract based on the requirements from use cases.
1700
1687
  $ datacontract init
1701
1688
  ```
1702
1689
 
1703
- 2. Add examples to the `datacontract.yaml`. Do not start with the data model, although you are probably tempted to do that. Examples are the fastest way to get feedback from everybody and not loose someone in the discussion.
1704
-
1705
- 3. Create the model based on the examples. Test the model against the examples to double-check whether the model matches the examples.
1706
- ```bash
1707
- $ datacontract test --examples
1708
- ```
1709
-
1710
- 4. Add quality checks and additional type constraints one by one to the contract and make sure the examples and the actual data still adheres to the contract. Check against examples for a very fast feedback loop.
1711
- ```bash
1712
- $ datacontract test --examples
1713
- ```
1714
-
1715
- 5. Fill in the terms, descriptions, etc. Make sure you follow all best practices for a `datacontract.yaml` using the linter.
1690
+ 2. Create the model and quality guarantees based on your business requirements. Fill in the terms,
1691
+ descriptions, etc. Make sure you follow all best practices for a `datacontract.yaml` using the
1692
+ linter.
1716
1693
  ```bash
1717
1694
  $ datacontract lint
1718
1695
  ```
1719
1696
 
1720
- 6. Set up a CI pipeline that lints and tests the examples so you make sure that any changes later do not decrease the quality of the contract.
1721
- ```bash
1722
- $ datacontract lint
1723
- $ datacontract test --examples
1724
- ```
1725
-
1726
- 7. Use the export function to start building the providing data product as well as the integration into the consuming data products.
1697
+ 3. Use the export function to start building the providing data product as well as the integration
1698
+ into the consuming data products.
1727
1699
  ```bash
1728
1700
  # data provider
1729
1701
  $ datacontract export --format dbt
@@ -1732,6 +1704,11 @@ Create a data contract based on the requirements from use cases.
1732
1704
  $ datacontract export --format dbt-staging-sql
1733
1705
  ```
1734
1706
 
1707
+ 4. Test that your data product implementation adheres to the contract.
1708
+ ```bash
1709
+ $ datacontract test
1710
+ ```
1711
+
1735
1712
  ### Schema Evolution
1736
1713
 
1737
1714
  #### Non-breaking Changes
@@ -1929,7 +1906,7 @@ Python base interpreter should be 3.11.x (unless working on 3.12 release candida
1929
1906
 
1930
1907
  ```bash
1931
1908
  # create venv
1932
- python3 -m venv venv
1909
+ python3.11 -m venv venv
1933
1910
  source venv/bin/activate
1934
1911
 
1935
1912
  # Install Requirements