datacontract-cli 0.10.23__tar.gz → 0.10.24__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 (212) hide show
  1. {datacontract_cli-0.10.23/datacontract_cli.egg-info → datacontract_cli-0.10.24}/PKG-INFO +276 -194
  2. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/README.md +247 -167
  3. datacontract_cli-0.10.24/datacontract/__init__.py +13 -0
  4. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/catalog/catalog.py +2 -2
  5. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/data_contract.py +5 -3
  6. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/data_contract_test.py +13 -4
  7. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +3 -2
  8. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/check_soda_execute.py +16 -3
  9. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/duckdb_connection.py +61 -5
  10. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/kafka.py +3 -2
  11. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/avro_converter.py +8 -1
  12. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/bigquery_converter.py +1 -1
  13. datacontract_cli-0.10.24/datacontract/export/duckdb_type_converter.py +57 -0
  14. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/odcs_v3_exporter.py +6 -5
  15. datacontract_cli-0.10.24/datacontract/export/protobuf_converter.py +199 -0
  16. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/avro_importer.py +31 -6
  17. datacontract_cli-0.10.24/datacontract/imports/csv_importer.py +143 -0
  18. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/importer.py +1 -0
  19. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/importer_factory.py +5 -0
  20. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/odcs_v3_importer.py +48 -6
  21. datacontract_cli-0.10.24/datacontract/imports/protobuf_importer.py +266 -0
  22. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/resolve.py +23 -8
  23. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/data_contract_specification.py +2 -2
  24. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/run.py +3 -0
  25. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/datacontract.html +2 -1
  26. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/index.html +2 -1
  27. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24/datacontract_cli.egg-info}/PKG-INFO +276 -194
  28. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/SOURCES.txt +5 -3
  29. datacontract_cli-0.10.24/datacontract_cli.egg-info/requires.txt +92 -0
  30. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/pyproject.toml +29 -27
  31. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_api.py +1 -1
  32. datacontract_cli-0.10.24/tests/test_duckdb_json.py +77 -0
  33. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_avro.py +23 -1
  34. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_odcs_v3.py +6 -5
  35. datacontract_cli-0.10.24/tests/test_export_protobuf.py +61 -0
  36. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_avro.py +7 -2
  37. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_csv.py +30 -6
  38. datacontract_cli-0.10.24/tests/test_import_protobuf.py +104 -0
  39. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_spark.py +1 -1
  40. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_lint.py +1 -1
  41. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_dataframe.py +1 -1
  42. datacontract_cli-0.10.23/datacontract/export/csv_type_converter.py +0 -36
  43. datacontract_cli-0.10.23/datacontract/export/protobuf_converter.py +0 -105
  44. datacontract_cli-0.10.23/datacontract/imports/csv_importer.py +0 -89
  45. datacontract_cli-0.10.23/datacontract/lint/linters/quality_schema_linter.py +0 -52
  46. datacontract_cli-0.10.23/datacontract_cli.egg-info/requires.txt +0 -90
  47. datacontract_cli-0.10.23/tests/test_export_protobuf.py +0 -56
  48. datacontract_cli-0.10.23/tests/test_quality_schema_linter.py +0 -35
  49. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/LICENSE +0 -0
  50. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/MANIFEST.in +0 -0
  51. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/api.py +0 -0
  52. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking.py +0 -0
  53. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking_change.py +0 -0
  54. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking_rules.py +0 -0
  55. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/cli.py +0 -0
  56. {datacontract_cli-0.10.23/datacontract → datacontract_cli-0.10.24/datacontract/engines}/__init__.py +0 -0
  57. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/data_contract_checks.py +0 -0
  58. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  59. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  60. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  61. {datacontract_cli-0.10.23/datacontract/engines → datacontract_cli-0.10.24/datacontract/engines/soda}/__init__.py +0 -0
  62. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/bigquery.py +0 -0
  63. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/databricks.py +0 -0
  64. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/postgres.py +0 -0
  65. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/snowflake.py +0 -0
  66. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/sqlserver.py +0 -0
  67. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/trino.py +0 -0
  68. {datacontract_cli-0.10.23/datacontract/engines/soda → datacontract_cli-0.10.24/datacontract/export}/__init__.py +0 -0
  69. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/avro_idl_converter.py +0 -0
  70. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/custom_converter.py +0 -0
  71. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/data_caterer_converter.py +0 -0
  72. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dbml_converter.py +0 -0
  73. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dbt_converter.py +0 -0
  74. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dcs_exporter.py +0 -0
  75. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/exporter.py +0 -0
  76. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/exporter_factory.py +0 -0
  77. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/go_converter.py +0 -0
  78. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/great_expectations_converter.py +0 -0
  79. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/html_export.py +0 -0
  80. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/iceberg_converter.py +0 -0
  81. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/jsonschema_converter.py +0 -0
  82. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/markdown_converter.py +0 -0
  83. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/pandas_type_converter.py +0 -0
  84. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/pydantic_converter.py +0 -0
  85. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/rdf_converter.py +0 -0
  86. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sodacl_converter.py +0 -0
  87. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/spark_converter.py +0 -0
  88. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sql_converter.py +0 -0
  89. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sql_type_converter.py +0 -0
  90. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sqlalchemy_converter.py +0 -0
  91. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/terraform_converter.py +0 -0
  92. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/bigquery_importer.py +0 -0
  93. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/dbml_importer.py +0 -0
  94. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/dbt_importer.py +0 -0
  95. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/glue_importer.py +0 -0
  96. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/iceberg_importer.py +0 -0
  97. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/jsonschema_importer.py +0 -0
  98. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/odcs_importer.py +0 -0
  99. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/parquet_importer.py +0 -0
  100. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/spark_importer.py +0 -0
  101. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/sql_importer.py +0 -0
  102. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/unity_importer.py +0 -0
  103. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/init/init_template.py +0 -0
  104. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/integration/datamesh_manager.py +0 -0
  105. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/files.py +0 -0
  106. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/lint.py +0 -0
  107. {datacontract_cli-0.10.23/datacontract/export → datacontract_cli-0.10.24/datacontract/lint/linters}/__init__.py +0 -0
  108. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/description_linter.py +0 -0
  109. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/field_pattern_linter.py +0 -0
  110. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/field_reference_linter.py +0 -0
  111. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/notice_period_linter.py +0 -0
  112. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
  113. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/resources.py +0 -0
  114. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/schema.py +0 -0
  115. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/urls.py +0 -0
  116. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/exceptions.py +0 -0
  117. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/odcs.py +0 -0
  118. {datacontract_cli-0.10.23/datacontract/lint/linters → datacontract_cli-0.10.24/datacontract/output}/__init__.py +0 -0
  119. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/junit_test_results.py +0 -0
  120. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/output_format.py +0 -0
  121. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/test_results_writer.py +0 -0
  122. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/py.typed +0 -0
  123. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  124. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  125. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  126. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_information.html +0 -0
  127. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  128. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_terms.html +0 -0
  129. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/definition.html +0 -0
  130. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/example.html +0 -0
  131. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/model_field.html +0 -0
  132. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/quality.html +0 -0
  133. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/server.html +0 -0
  134. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/style/output.css +0 -0
  135. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  136. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/entry_points.txt +0 -0
  137. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/top_level.txt +0 -0
  138. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/setup.cfg +0 -0
  139. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_breaking.py +0 -0
  140. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_catalog.py +0 -0
  141. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_changelog.py +0 -0
  142. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_cli.py +0 -0
  143. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_data_contract_checks.py +0 -0
  144. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_data_contract_specification.py +0 -0
  145. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_description_linter.py +0 -0
  146. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_documentation_linter.py +0 -0
  147. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_download_datacontract_file.py +0 -0
  148. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_avro_idl.py +0 -0
  149. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_bigquery.py +0 -0
  150. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_complex_data_contract.py +0 -0
  151. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_custom.py +0 -0
  152. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_custom_exporter.py +0 -0
  153. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_data_caterer.py +0 -0
  154. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbml.py +0 -0
  155. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_models.py +0 -0
  156. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_sources.py +0 -0
  157. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_staging_sql.py +0 -0
  158. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_go.py +0 -0
  159. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_great_expectations.py +0 -0
  160. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_html.py +0 -0
  161. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_iceberg.py +0 -0
  162. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_jsonschema.py +0 -0
  163. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_markdown.py +0 -0
  164. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_pydantic.py +0 -0
  165. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_rdf.py +0 -0
  166. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sodacl.py +0 -0
  167. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_spark.py +0 -0
  168. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sql.py +0 -0
  169. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sql_query.py +0 -0
  170. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sqlalchemy.py +0 -0
  171. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_terraform.py +0 -0
  172. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_constraint_linter.py +0 -0
  173. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_pattern_linter.py +0 -0
  174. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_reference_linter.py +0 -0
  175. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_bigquery.py +0 -0
  176. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_dbml.py +0 -0
  177. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_dbt.py +0 -0
  178. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_glue.py +0 -0
  179. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_iceberg.py +0 -0
  180. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_jsonschema.py +0 -0
  181. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_odcs_v3.py +0 -0
  182. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_parquet.py +0 -0
  183. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_sql_postgres.py +0 -0
  184. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_sql_sqlserver.py +0 -0
  185. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_unity_file.py +0 -0
  186. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_integration_datameshmanager.py +0 -0
  187. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_notice_period_linter.py +0 -0
  188. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_resolve.py +0 -0
  189. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_roundtrip_jsonschema.py +0 -0
  190. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_spec_fields_field.py +0 -0
  191. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_spec_ref.py +0 -0
  192. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_azure_remote.py +0 -0
  193. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_bigquery.py +0 -0
  194. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_databricks.py +0 -0
  195. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_delta.py +0 -0
  196. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_gcs_json_remote.py +0 -0
  197. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_kafka.py +0 -0
  198. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_kafka_remote.py +0 -0
  199. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_local_json.py +0 -0
  200. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_output_junit.py +0 -0
  201. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_parquet.py +0 -0
  202. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_postgres.py +0 -0
  203. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_quality.py +0 -0
  204. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_csv.py +0 -0
  205. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_delta.py +0 -0
  206. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json.py +0 -0
  207. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_complex.py +0 -0
  208. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_multiple_models.py +0 -0
  209. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_remote.py +0 -0
  210. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_snowflake.py +0 -0
  211. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_sqlserver.py +0 -0
  212. {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_trino.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 0.10.23
3
+ Version: 0.10.24
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
@@ -18,45 +18,44 @@ Requires-Dist: requests<2.33,>=2.31
18
18
  Requires-Dist: fastjsonschema<2.22.0,>=2.19.1
19
19
  Requires-Dist: fastparquet<2025.0.0,>=2024.5.0
20
20
  Requires-Dist: numpy<2.0.0,>=1.26.4
21
- Requires-Dist: python-multipart==0.0.20
22
- Requires-Dist: rich<13.10,>=13.7
21
+ Requires-Dist: python-multipart<1.0.0,>=0.0.20
22
+ Requires-Dist: rich<14.0,>=13.7
23
23
  Requires-Dist: sqlglot<27.0.0,>=26.6.0
24
24
  Requires-Dist: duckdb<2.0.0,>=1.0.0
25
- Requires-Dist: soda-core-duckdb<3.5.0,>=3.3.20
25
+ Requires-Dist: soda-core-duckdb<3.6.0,>=3.3.20
26
26
  Requires-Dist: setuptools>=60
27
- Requires-Dist: python-dotenv~=1.0.0
28
- Requires-Dist: boto3<1.36.12,>=1.34.41
29
- Requires-Dist: Jinja2>=3.1.5
30
- Requires-Dist: jinja_partials>=0.2.1
27
+ Requires-Dist: python-dotenv<2.0.0,>=1.0.0
28
+ Requires-Dist: boto3<2.0.0,>=1.34.41
29
+ Requires-Dist: Jinja2<4.0.0,>=3.1.5
30
+ Requires-Dist: jinja_partials<1.0.0,>=0.2.1
31
31
  Provides-Extra: avro
32
32
  Requires-Dist: avro==1.12.0; extra == "avro"
33
33
  Provides-Extra: bigquery
34
- Requires-Dist: soda-core-bigquery<3.4.0,>=3.3.20; extra == "bigquery"
34
+ Requires-Dist: soda-core-bigquery<3.6.0,>=3.3.20; extra == "bigquery"
35
35
  Provides-Extra: csv
36
- Requires-Dist: clevercsv>=0.8.2; extra == "csv"
37
36
  Requires-Dist: pandas>=2.0.0; extra == "csv"
38
37
  Provides-Extra: databricks
39
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.20; extra == "databricks"
40
- Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.20; extra == "databricks"
41
- Requires-Dist: databricks-sql-connector<3.8.0,>=3.7.0; extra == "databricks"
42
- Requires-Dist: databricks-sdk<0.45.0; extra == "databricks"
38
+ Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "databricks"
39
+ Requires-Dist: soda-core-spark[databricks]<3.6.0,>=3.3.20; extra == "databricks"
40
+ Requires-Dist: databricks-sql-connector<4.1.0,>=3.7.0; extra == "databricks"
41
+ Requires-Dist: databricks-sdk<0.50.0; extra == "databricks"
43
42
  Provides-Extra: iceberg
44
43
  Requires-Dist: pyiceberg==0.8.1; extra == "iceberg"
45
44
  Provides-Extra: kafka
46
45
  Requires-Dist: datacontract-cli[avro]; extra == "kafka"
47
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.20; extra == "kafka"
46
+ Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "kafka"
48
47
  Provides-Extra: postgres
49
- Requires-Dist: soda-core-postgres<3.4.0,>=3.3.20; extra == "postgres"
48
+ Requires-Dist: soda-core-postgres<3.6.0,>=3.3.20; extra == "postgres"
50
49
  Provides-Extra: s3
51
50
  Requires-Dist: s3fs==2025.2.0; extra == "s3"
52
51
  Requires-Dist: aiobotocore<2.20.0,>=2.17.0; extra == "s3"
53
52
  Provides-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"
53
+ Requires-Dist: snowflake-connector-python[pandas]<3.15,>=3.6; extra == "snowflake"
54
+ Requires-Dist: soda-core-snowflake<3.6.0,>=3.3.20; extra == "snowflake"
56
55
  Provides-Extra: sqlserver
57
- Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.20; extra == "sqlserver"
56
+ Requires-Dist: soda-core-sqlserver<3.6.0,>=3.3.20; extra == "sqlserver"
58
57
  Provides-Extra: trino
59
- Requires-Dist: soda-core-trino<3.4.0,>=3.3.20; extra == "trino"
58
+ Requires-Dist: soda-core-trino<3.6.0,>=3.3.20; extra == "trino"
60
59
  Provides-Extra: dbt
61
60
  Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
62
61
  Provides-Extra: dbml
@@ -66,23 +65,26 @@ Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
66
65
  Provides-Extra: rdf
67
66
  Requires-Dist: rdflib==7.0.0; extra == "rdf"
68
67
  Provides-Extra: api
69
- Requires-Dist: fastapi==0.115.8; extra == "api"
68
+ Requires-Dist: fastapi==0.115.12; extra == "api"
70
69
  Requires-Dist: uvicorn==0.34.0; extra == "api"
70
+ Provides-Extra: protobuf
71
+ Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
71
72
  Provides-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
+ Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,protobuf,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
73
74
  Provides-Extra: dev
74
75
  Requires-Dist: datacontract-cli[all]; extra == "dev"
75
76
  Requires-Dist: httpx==0.28.1; extra == "dev"
76
77
  Requires-Dist: kafka-python; extra == "dev"
77
- Requires-Dist: moto==5.0.27; extra == "dev"
78
+ Requires-Dist: moto==5.1.3; extra == "dev"
78
79
  Requires-Dist: pandas>=2.1.0; extra == "dev"
79
- Requires-Dist: pre-commit<4.1.0,>=3.7.1; extra == "dev"
80
+ Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
80
81
  Requires-Dist: pytest; extra == "dev"
81
82
  Requires-Dist: pytest-xdist; extra == "dev"
82
83
  Requires-Dist: pymssql==2.3.2; extra == "dev"
83
84
  Requires-Dist: ruff; extra == "dev"
84
- Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.0; extra == "dev"
85
- Requires-Dist: trino==0.332.0; extra == "dev"
85
+ Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
86
+ Requires-Dist: trino==0.333.0; extra == "dev"
87
+ Dynamic: license-file
86
88
 
87
89
  # Data Contract CLI
88
90
 
@@ -317,7 +319,7 @@ A list of available extras:
317
319
  | Parquet | `pip install datacontract-cli[parquet]` |
318
320
  | RDF | `pip install datacontract-cli[rdf]` |
319
321
  | API (run as web server) | `pip install datacontract-cli[api]` |
320
-
322
+ | protobuf | `pip install datacontract-cli[protobuf]` |
321
323
 
322
324
 
323
325
  ## Documentation
@@ -341,17 +343,16 @@ Commands
341
343
 
342
344
  Usage: datacontract init [OPTIONS] [LOCATION]
343
345
 
344
- Download a datacontract.yaml template and write it to file.
346
+ Create an empty data contract.
345
347
 
346
348
  ╭─ Arguments ──────────────────────────────────────────────────────────────────╮
347
- │ location [LOCATION] The location (url or path) of the data contract
348
- yaml to create.
349
+ │ location [LOCATION] The location of the data contract file to
350
+ │ create.
349
351
  │ [default: datacontract.yaml] │
350
352
  ╰──────────────────────────────────────────────────────────────────────────────╯
351
353
  ╭─ Options ────────────────────────────────────────────────────────────────────╮
352
354
  │ --template TEXT URL of a template or data contract │
353
- │ [default:
354
- │ https://datacontract.com/datacontrac… │
355
+ │ [default: None]
355
356
  │ --overwrite --no-overwrite Replace the existing │
356
357
  │ datacontract.yaml │
357
358
  │ [default: no-overwrite] │
@@ -373,52 +374,77 @@ Commands
373
374
  │ [default: datacontract.yaml] │
374
375
  ╰──────────────────────────────────────────────────────────────────────────────╯
375
376
  ╭─ Options ────────────────────────────────────────────────────────────────────╮
376
- │ --schema TEXT The location (url or path) of the Data Contract
377
- Specification JSON Schema
378
- [default:
379
- https://datacontract.com/datacontract.schema.json]
380
- --help Show this message and exit.
377
+ │ --schema TEXT The location (url or path) of the Data
378
+ Contract Specification JSON Schema
379
+ [default: None]
380
+ --output PATH Specify the file path where the test results
381
+ should be written to (e.g.,
382
+ │ './test-results/TEST-datacontract.xml'). If │
383
+ │ no path is provided, the output will be │
384
+ │ printed to stdout. │
385
+ │ [default: None] │
386
+ │ --output-format [junit] The target format for the test results. │
387
+ │ [default: None] │
388
+ │ --help Show this message and exit. │
381
389
  ╰──────────────────────────────────────────────────────────────────────────────╯
382
390
 
383
391
  ```
384
392
 
385
393
  ### test
386
394
  ```
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
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
395
+
396
+ Usage: datacontract test [OPTIONS] [LOCATION]
397
+
398
+ Run schema and quality tests on configured servers.
399
+
400
+ ╭─ Arguments ──────────────────────────────────────────────────────────────────╮
401
+ │ location [LOCATION] The location (url or path) of the data contract
402
+ yaml.
403
+ │ [default: datacontract.yaml] │
404
+ ╰──────────────────────────────────────────────────────────────────────────────╯
405
+ ╭─ Options ────────────────────────────────────────────────────────────────────╮
406
+ --schema TEXT The location (url or
407
+ path) of the Data
408
+ Contract
409
+ Specification JSON
410
+ Schema
411
+ [default: None]
412
+ --server TEXT The server
413
+ configuration to run
414
+ the schema and
415
+ quality tests. Use
416
+ the key of the server
417
+ object in the data
418
+ contract yaml file to
419
+ refer to a server,
420
+ e.g., `production`,
421
+ or `all` for all
422
+ servers (default).
423
+ [default: all]
424
+ │ --publish TEXT The url to publish
425
+ the results after the
426
+ test
427
+ [default: None]
428
+ │ --output PATH Specify the file path
429
+ │ where the test │
430
+ │ results should be │
431
+ │ written to (e.g., │
432
+ │ './test-results/TEST… │
433
+ │ [default: None] │
434
+ │ --output-format [junit] The target format for │
435
+ │ the test results. │
436
+ │ [default: None] │
437
+ │ --logs --no-logs Print logs │
438
+ │ [default: no-logs] │
439
+ │ --ssl-verification --no-ssl-verificati… SSL verification when │
440
+ │ publishing the data │
441
+ │ contract. │
442
+ │ [default: │
443
+ │ ssl-verification] │
444
+ │ --help Show this message and │
445
+ │ exit. │
446
+ ╰──────────────────────────────────────────────────────────────────────────────╯
447
+
422
448
  ```
423
449
 
424
450
  Data Contract CLI connects to a data source and runs schema and quality tests to verify that the data contract is valid.
@@ -889,41 +915,40 @@ models:
889
915
  │ [default: datacontract.yaml] │
890
916
  ╰──────────────────────────────────────────────────────────────────────────────╯
891
917
  ╭─ Options ────────────────────────────────────────────────────────────────────╮
892
- │ * --format [jsonschema|pydantic-model| The export format.
893
- sodacl|dbt|dbt-sources|dbt- [default: None]
894
- staging-sql|odcs| [required]
895
- rdf|avro|protobuf|gre
896
- at-expectations|terraform|a
897
- vro-idl|sql|sql-query|html|
898
- go|bigquery|dbml|spark|sqla
899
- lchemy|data-caterer|dcs|mar
900
- kdown|iceberg|custom]
901
- │ --output PATH Specify the file path where
902
- the exported data will be
903
- saved. If no path is
904
- provided, the output will be
905
- printed to stdout.
906
- [default: None]
907
- │ --server TEXT The server name to export.
908
- [default: None]
909
- │ --model TEXT Use the key of the model in
910
- the data contract yaml file
911
- to refer to a model, e.g.,
912
- `orders`, or `all` for all
913
- models (default).
914
- [default: all]
915
- │ --schema TEXT The location (url or path)
916
- of the Data Contract
917
- Specification JSON Schema
918
- [default:
919
- https://datacontract.com/da…
920
- --engine TEXT [engine] The engine used for
921
- great expection run.
922
- [default: None]
923
- --template PATH [custom] The file path of
924
- Jinja template.
925
- [default: None]
926
- │ --help Show this message and exit. │
918
+ │ * --format [jsonschema|pydantic-model The export format.
919
+ |sodacl|dbt|dbt-sources|db [default: None]
920
+ t-staging-sql|odcs|rdf|avr [required]
921
+ o|protobuf|great-expectati
922
+ ons|terraform|avro-idl|sql
923
+ |sql-query|html|go|bigquer
924
+ y|dbml|spark|sqlalchemy|da
925
+ ta-caterer|dcs|markdown|ic
926
+ eberg|custom]
927
+ │ --output PATH Specify the file path where
928
+ the exported data will be
929
+ saved. If no path is
930
+ provided, the output will
931
+ be printed to stdout.
932
+ [default: None]
933
+ │ --server TEXT The server name to export.
934
+ [default: None]
935
+ │ --model TEXT Use the key of the model in
936
+ the data contract yaml file
937
+ to refer to a model, e.g.,
938
+ `orders`, or `all` for all
939
+ models (default).
940
+ [default: all]
941
+ │ --schema TEXT The location (url or path)
942
+ of the Data Contract
943
+ Specification JSON Schema
944
+ [default: None]
945
+ --engine TEXT [engine] The engine used
946
+ for great expection run.
947
+ [default: None]
948
+ --template PATH [custom] The file path of
949
+ Jinja template.
950
+ [default: None]
951
+ --help Show this message and exit.
927
952
  ╰──────────────────────────────────────────────────────────────────────────────╯
928
953
  ╭─ RDF Options ────────────────────────────────────────────────────────────────╮
929
954
  │ --rdf-base TEXT [rdf] The base URI used to generate the RDF graph. │
@@ -1232,71 +1257,104 @@ FROM
1232
1257
 
1233
1258
  ### import
1234
1259
  ```
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
- ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1260
+
1261
+ Usage: datacontract import [OPTIONS]
1262
+
1263
+ Create a data contract from the given source location. Saves to file specified
1264
+ by `output` option if present, otherwise prints to stdout.
1265
+
1266
+ ╭─ Options ────────────────────────────────────────────────────────────────────╮
1267
+ * --format [sql|avro|dbt|dbml|gl The format of the
1268
+ ue|jsonschema|bigquer source file.
1269
+ y|odcs|unity|spark|ic [default: None]
1270
+ eberg|parquet|csv|pro [required]
1271
+ tobuf]
1272
+ --output PATH Specify the file path
1273
+ where the Data
1274
+ Contract will be
1275
+ saved. If no path is
1276
+ provided, the output
1277
+ will be printed to
1278
+ stdout.
1279
+ [default: None]
1280
+ --source TEXT The path to the file
1281
+ or Glue Database that
1282
+ should be imported.
1283
+ [default: None]
1284
+ --dialect TEXT The SQL dialect to
1285
+ use when importing
1286
+ SQL files, e.g.,
1287
+ postgres, tsql,
1288
+ bigquery.
1289
+ [default: None]
1290
+ │ --glue-table TEXT List of table ids to │
1291
+ import from the Glue
1292
+ Database (repeat for
1293
+ multiple table ids,
1294
+ leave empty for all
1295
+ tables in the
1296
+ dataset).
1297
+ [default: None]
1298
+ │ --bigquery-project TEXT The bigquery project
1299
+ id.
1300
+ [default: None]
1301
+ --bigquery-dataset TEXT The bigquery dataset
1302
+ id.
1303
+ [default: None]
1304
+ --bigquery-table TEXT List of table ids to
1305
+ import from the
1306
+ bigquery API (repeat
1307
+ for multiple table
1308
+ ids, leave empty for
1309
+ all tables in the
1310
+ dataset).
1311
+ [default: None]
1312
+ --unity-table-full-n… TEXT Full name of a table
1313
+ in the unity catalog
1314
+ [default: None]
1315
+ --dbt-model TEXT List of models names
1316
+ to import from the
1317
+ dbt manifest file
1318
+ (repeat for multiple
1319
+ models names, leave
1320
+ empty for all models
1321
+ in the dataset).
1322
+ [default: None]
1323
+ │ --dbml-schema TEXT List of schema names
1324
+ │ to import from the │
1325
+ │ DBML file (repeat for │
1326
+ │ multiple schema │
1327
+ │ names, leave empty │
1328
+ │ for all tables in the │
1329
+ │ file). │
1330
+ │ [default: None] │
1331
+ │ --dbml-table TEXT List of table names │
1332
+ │ to import from the │
1333
+ │ DBML file (repeat for │
1334
+ │ multiple table names, │
1335
+ │ leave empty for all │
1336
+ │ tables in the file). │
1337
+ │ [default: None] │
1338
+ │ --iceberg-table TEXT Table name to assign │
1339
+ │ to the model created │
1340
+ │ from the Iceberg │
1341
+ │ schema. │
1342
+ │ [default: None] │
1343
+ │ --template TEXT The location (url or │
1344
+ │ path) of the Data │
1345
+ │ Contract │
1346
+ │ Specification │
1347
+ │ Template │
1348
+ │ [default: None] │
1349
+ │ --schema TEXT The location (url or │
1350
+ │ path) of the Data │
1351
+ │ Contract │
1352
+ │ Specification JSON │
1353
+ │ Schema │
1354
+ │ [default: None] │
1355
+ │ --help Show this message and │
1356
+ │ exit. │
1357
+ ╰──────────────────────────────────────────────────────────────────────────────╯
1300
1358
 
1301
1359
  ```
1302
1360
 
@@ -1323,7 +1381,7 @@ Available import options:
1323
1381
  | `spark` | Import from Spark StructTypes | ✅ |
1324
1382
  | `dbml` | Import from DBML models | ✅ |
1325
1383
  | `csv` | Import from CSV File | ✅ |
1326
- | `protobuf` | Import from Protobuf schemas | TBD |
1384
+ | `protobuf` | Import from Protobuf schemas | |
1327
1385
  | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1328
1386
  | `parquet` | Import from Parquet File Metadta | ✅ |
1329
1387
  | Missing something? | Please create an issue on GitHub | TBD |
@@ -1475,6 +1533,16 @@ Example:
1475
1533
  datacontract import --format csv --source "test.csv"
1476
1534
  ```
1477
1535
 
1536
+ #### protobuf
1537
+
1538
+ Importing from protobuf File. Specify file in `source` parameter.
1539
+
1540
+ Example:
1541
+
1542
+ ```bash
1543
+ datacontract import --format protobuf --source "test.proto"
1544
+ ```
1545
+
1478
1546
 
1479
1547
  ### breaking
1480
1548
  ```
@@ -1550,7 +1618,7 @@ datacontract import --format csv --source "test.csv"
1550
1618
 
1551
1619
  Usage: datacontract catalog [OPTIONS]
1552
1620
 
1553
- Create an html catalog of data contracts.
1621
+ Create a html catalog of data contracts.
1554
1622
 
1555
1623
  ╭─ Options ────────────────────────────────────────────────────────────────────╮
1556
1624
  │ --files TEXT Glob pattern for the data contract files to include in │
@@ -1560,8 +1628,7 @@ datacontract import --format csv --source "test.csv"
1560
1628
  │ [default: catalog/] │
1561
1629
  │ --schema TEXT The location (url or path) of the Data Contract │
1562
1630
  │ Specification JSON Schema │
1563
- │ [default:
1564
- │ https://datacontract.com/datacontract.schema.json] │
1631
+ │ [default: None]
1565
1632
  │ --help Show this message and exit. │
1566
1633
  ╰──────────────────────────────────────────────────────────────────────────────╯
1567
1634
 
@@ -1594,8 +1661,7 @@ datacontract catalog --files "*.odcs.yaml"
1594
1661
  │ path) of the Data │
1595
1662
  │ Contract Specification │
1596
1663
  │ JSON Schema │
1597
- │ [default:
1598
- │ https://datacontract.c… │
1664
+ │ [default: None]
1599
1665
  │ --ssl-verification --no-ssl-verification SSL verification when │
1600
1666
  │ publishing the data │
1601
1667
  │ contract. │
@@ -1609,21 +1675,27 @@ datacontract catalog --files "*.odcs.yaml"
1609
1675
 
1610
1676
  ### api
1611
1677
  ```
1612
-
1613
- Usage: datacontract api [OPTIONS]
1614
-
1615
- Start the datacontract CLI as server application with REST API.
1616
- The OpenAPI documentation as Swagger UI is available on http://localhost:4242. You can execute the commands directly from the Swagger UI.
1617
- To protect the API, you can set the environment variable DATACONTRACT_CLI_API_KEY to a secret API key. To authenticate, requests must include the header 'x-api-key' with the
1618
- correct API key. This is highly recommended, as data contract tests may be subject to SQL injections or leak sensitive information.
1619
- To connect to servers (such as a Snowflake data source), set the credentials as environment variables as documented in https://cli.datacontract.com/#test
1620
-
1621
- ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
1622
- --port INTEGER Bind socket to this port. [default: 4242] │
1623
- --host TEXT Bind socket to this host. Hint: For running in docker, set it to 0.0.0.0 [default: 127.0.0.1] │
1624
- --help Show this message and exit.
1625
- ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1626
-
1678
+
1679
+ Usage: datacontract api [OPTIONS]
1680
+
1681
+ Start the datacontract CLI as server application with REST API.
1682
+ The OpenAPI documentation as Swagger UI is available on http://localhost:4242.
1683
+ You can execute the commands directly from the Swagger UI.
1684
+ To protect the API, you can set the environment variable
1685
+ DATACONTRACT_CLI_API_KEY to a secret API key. To authenticate, requests must
1686
+ include the header 'x-api-key' with the correct API key. This is highly
1687
+ recommended, as data contract tests may be subject to SQL injections or leak
1688
+ sensitive information.
1689
+ To connect to servers (such as a Snowflake data source), set the credentials
1690
+ as environment variables as documented in https://cli.datacontract.com/#test
1691
+
1692
+ ╭─ Options ────────────────────────────────────────────────────────────────────╮
1693
+ │ --port INTEGER Bind socket to this port. [default: 4242] │
1694
+ │ --host TEXT Bind socket to this host. Hint: For running in │
1695
+ │ docker, set it to 0.0.0.0 │
1696
+ │ [default: 127.0.0.1] │
1697
+ │ --help Show this message and exit. │
1698
+ ╰──────────────────────────────────────────────────────────────────────────────╯
1627
1699
 
1628
1700
  ```
1629
1701
 
@@ -1917,6 +1989,15 @@ pre-commit run --all-files
1917
1989
  pytest
1918
1990
  ```
1919
1991
 
1992
+ ### Use uv (recommended)
1993
+
1994
+ ```bash
1995
+ # make sure uv is installed
1996
+ uv python pin 3.11
1997
+ uv sync --all-extras
1998
+ uv run pytest
1999
+ ```
2000
+
1920
2001
 
1921
2002
  ### Docker Build
1922
2003
 
@@ -1988,6 +2069,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
1988
2069
 
1989
2070
  - [INNOQ](https://innoq.com)
1990
2071
  - [Data Catering](https://data.catering/)
2072
+ - [Oliver Wyman](https://www.oliverwyman.com/)
1991
2073
  - And many more. To add your company, please create a pull request.
1992
2074
 
1993
2075
  ## Related Tools