datacontract-cli 0.10.14__tar.gz → 0.10.15__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/PKG-INFO +83 -38
  2. datacontract_cli-0.10.14/datacontract_cli.egg-info/PKG-INFO → datacontract_cli-0.10.15/README.md +63 -98
  3. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/breaking/breaking.py +227 -9
  4. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/breaking/breaking_rules.py +24 -0
  5. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/catalog/catalog.py +1 -1
  6. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/cli.py +99 -32
  7. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/data_contract.py +26 -4
  8. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +1 -1
  9. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/fastjsonschema/check_jsonschema.py +114 -22
  10. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/check_soda_execute.py +5 -3
  11. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/duckdb.py +1 -0
  12. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/kafka.py +12 -12
  13. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/avro_idl_converter.py +1 -2
  14. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/bigquery_converter.py +4 -3
  15. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/data_caterer_converter.py +1 -1
  16. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dbml_converter.py +2 -4
  17. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dbt_converter.py +2 -3
  18. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/exporter_factory.py +3 -2
  19. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/go_converter.py +3 -2
  20. datacontract_cli-0.10.15/datacontract/export/great_expectations_converter.py +312 -0
  21. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/jsonschema_converter.py +3 -2
  22. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/odcs_v2_exporter.py +1 -1
  23. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/odcs_v3_exporter.py +1 -1
  24. datacontract_cli-0.10.15/datacontract/export/pandas_type_converter.py +40 -0
  25. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/rdf_converter.py +4 -5
  26. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sodacl_converter.py +6 -2
  27. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/spark_converter.py +7 -6
  28. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sql_converter.py +1 -2
  29. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sqlalchemy_converter.py +1 -2
  30. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/avro_importer.py +1 -1
  31. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/bigquery_importer.py +1 -1
  32. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/dbml_importer.py +2 -2
  33. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/dbt_importer.py +3 -2
  34. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/glue_importer.py +5 -3
  35. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/iceberg_importer.py +5 -6
  36. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/importer.py +1 -0
  37. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/importer_factory.py +7 -1
  38. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/jsonschema_importer.py +3 -2
  39. datacontract_cli-0.10.15/datacontract/imports/parquet_importer.py +81 -0
  40. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/spark_importer.py +2 -1
  41. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/sql_importer.py +1 -1
  42. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/unity_importer.py +3 -3
  43. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/integration/opentelemetry.py +0 -1
  44. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/lint.py +2 -1
  45. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/description_linter.py +1 -0
  46. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/example_model_linter.py +1 -0
  47. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/field_pattern_linter.py +1 -0
  48. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/field_reference_linter.py +1 -0
  49. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/notice_period_linter.py +1 -0
  50. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/quality_schema_linter.py +1 -0
  51. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/valid_constraints_linter.py +1 -0
  52. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/resolve.py +1 -1
  53. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/schema.py +1 -1
  54. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/data_contract_specification.py +11 -5
  55. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/run.py +21 -12
  56. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/index.html +6 -6
  57. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/web.py +2 -3
  58. datacontract_cli-0.10.14/README.md → datacontract_cli-0.10.15/datacontract_cli.egg-info/PKG-INFO +143 -19
  59. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/SOURCES.txt +4 -0
  60. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/requires.txt +20 -18
  61. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/pyproject.toml +27 -19
  62. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_breaking.py +2 -3
  63. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_changelog.py +255 -6
  64. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_cli.py +1 -1
  65. datacontract_cli-0.10.15/tests/test_data_contract_specification.py +10 -0
  66. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_bigquery.py +1 -0
  67. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_complex_data_contract.py +1 -1
  68. datacontract_cli-0.10.15/tests/test_export_great_expectations.py +604 -0
  69. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_rdf.py +6 -6
  70. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sodacl.py +1 -1
  71. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_spark.py +2 -1
  72. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_avro.py +5 -5
  73. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_dbt.py +3 -3
  74. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_iceberg.py +5 -8
  75. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_jsonschema.py +39 -0
  76. datacontract_cli-0.10.15/tests/test_import_parquet.py +68 -0
  77. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_spark.py +5 -9
  78. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_sql.py +2 -2
  79. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_integration_opentelemetry.py +1 -1
  80. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_lint.py +2 -3
  81. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_resolve.py +4 -4
  82. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_roundtrip_jsonschema.py +2 -0
  83. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_dataframe.py +6 -6
  84. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_csv.py +7 -6
  85. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_kafka.py +1 -2
  86. datacontract_cli-0.10.15/tests/test_test_s3_json_remote.py +20 -0
  87. datacontract_cli-0.10.14/datacontract/export/great_expectations_converter.py +0 -150
  88. datacontract_cli-0.10.14/tests/test_export_great_expectations.py +0 -269
  89. datacontract_cli-0.10.14/tests/test_test_s3_json_remote.py +0 -36
  90. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/LICENSE +0 -0
  91. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/MANIFEST.in +0 -0
  92. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/__init__.py +0 -0
  93. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/__init__.py +0 -0
  94. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  95. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  96. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/__init__.py +0 -0
  97. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/bigquery.py +0 -0
  98. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/dask.py +0 -0
  99. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/databricks.py +0 -0
  100. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/postgres.py +0 -0
  101. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/snowflake.py +0 -0
  102. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/sqlserver.py +0 -0
  103. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/trino.py +0 -0
  104. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/__init__.py +0 -0
  105. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/avro_converter.py +0 -0
  106. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/csv_type_converter.py +0 -0
  107. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dcs_exporter.py +0 -0
  108. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/exporter.py +1 -1
  109. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/html_export.py +1 -1
  110. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/protobuf_converter.py +1 -1
  111. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/pydantic_converter.py +0 -0
  112. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sql_type_converter.py +0 -0
  113. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/terraform_converter.py +1 -1
  114. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_importer.py +0 -0
  115. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_v2_importer.py +2 -2
  116. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_v3_importer.py +2 -2
  117. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/init/download_datacontract_file.py +0 -0
  118. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/integration/datamesh_manager.py +0 -0
  119. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/files.py +0 -0
  120. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/__init__.py +0 -0
  121. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/resources.py +0 -0
  122. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/urls.py +0 -0
  123. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/breaking_change.py +0 -0
  124. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/exceptions.py +0 -0
  125. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/odcs.py +0 -0
  126. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/py.typed +0 -0
  127. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/datacontract.html +0 -0
  128. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_information.html +0 -0
  129. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  130. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_terms.html +0 -0
  131. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/definition.html +0 -0
  132. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/example.html +0 -0
  133. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/model_field.html +0 -0
  134. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/server.html +0 -0
  135. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/style/output.css +0 -0
  136. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  137. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/entry_points.txt +0 -0
  138. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/top_level.txt +0 -0
  139. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/setup.cfg +0 -0
  140. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_catalog.py +0 -0
  141. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_description_linter.py +0 -0
  142. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_documentation_linter.py +0 -0
  143. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_download_datacontract_file.py +0 -0
  144. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_example_model_linter.py +0 -0
  145. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_avro.py +0 -0
  146. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_avro_idl.py +4 -4
  147. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_custom_exporter.py +0 -0
  148. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_data_caterer.py +0 -0
  149. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbml.py +0 -0
  150. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_models.py +0 -0
  151. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_sources.py +0 -0
  152. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_staging_sql.py +0 -0
  153. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_go.py +0 -0
  154. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_html.py +0 -0
  155. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_jsonschema.py +0 -0
  156. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_odcs_v2.py +0 -0
  157. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_odcs_v3.py +0 -0
  158. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_protobuf.py +0 -0
  159. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_pydantic.py +0 -0
  160. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sql.py +0 -0
  161. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sql_query.py +0 -0
  162. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sqlalchemy.py +2 -2
  163. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_terraform.py +0 -0
  164. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_constraint_linter.py +0 -0
  165. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_pattern_linter.py +0 -0
  166. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_reference_linter.py +0 -0
  167. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_bigquery.py +0 -0
  168. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_dbml.py +0 -0
  169. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_glue.py +2 -2
  170. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_odcs_v2.py +0 -0
  171. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_odcs_v3.py +0 -0
  172. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_unity_file.py +0 -0
  173. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_integration_datameshmanager.py +0 -0
  174. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_notice_period_linter.py +0 -0
  175. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_quality_schema_linter.py +0 -0
  176. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_spec_fields_field.py +0 -0
  177. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_spec_ref.py +0 -0
  178. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_azure_parquet_remote.py +0 -0
  179. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_bigquery.py +0 -0
  180. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_databricks.py +0 -0
  181. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_delta.py +0 -0
  182. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_formats_valid.py +0 -0
  183. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_inline.py +0 -0
  184. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_json.py +0 -0
  185. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_missing.py +0 -0
  186. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_gcs_json_remote.py +0 -0
  187. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_kafka_remote.py +0 -0
  188. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_local_json.py +0 -0
  189. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_parquet.py +0 -0
  190. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_postgres.py +0 -0
  191. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_quality.py +0 -0
  192. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_csv.py +0 -0
  193. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_delta.py +1 -1
  194. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json.py +0 -0
  195. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json_complex.py +0 -0
  196. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json_multiple_models.py +0 -0
  197. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_snowflake.py +0 -0
  198. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_sqlserver.py +0 -0
  199. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_trino.py +0 -0
  200. {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_web.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datacontract-cli
3
- Version: 0.10.14
3
+ Version: 0.10.15
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
@@ -11,65 +11,66 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.10
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: typer<0.13,>=0.12
14
+ Requires-Dist: typer<0.14,>=0.12
15
15
  Requires-Dist: pydantic<2.10.0,>=2.8.2
16
16
  Requires-Dist: pyyaml~=6.0.1
17
17
  Requires-Dist: requests<2.33,>=2.31
18
- Requires-Dist: fastapi==0.115.2
19
- Requires-Dist: uvicorn==0.30.6
18
+ Requires-Dist: fastapi==0.115.5
19
+ Requires-Dist: uvicorn==0.32.1
20
20
  Requires-Dist: fastjsonschema<2.21.0,>=2.19.1
21
21
  Requires-Dist: fastparquet==2024.5.0
22
22
  Requires-Dist: python-multipart==0.0.12
23
23
  Requires-Dist: rich<13.10,>=13.7
24
24
  Requires-Dist: simple-ddl-parser==1.7.1
25
25
  Requires-Dist: duckdb==1.1.2
26
- Requires-Dist: soda-core-duckdb<3.4.0,>=3.3.1
26
+ Requires-Dist: soda-core-duckdb<3.5.0,>=3.3.1
27
27
  Requires-Dist: setuptools>=60
28
28
  Requires-Dist: python-dotenv~=1.0.0
29
29
  Requires-Dist: rdflib==7.0.0
30
30
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc~=1.16
31
31
  Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.16
32
- Requires-Dist: boto3<1.35.45,>=1.34.41
32
+ Requires-Dist: boto3<1.35.69,>=1.34.41
33
33
  Requires-Dist: jinja_partials>=0.2.1
34
34
  Provides-Extra: avro
35
35
  Requires-Dist: avro==1.12.0; extra == "avro"
36
36
  Provides-Extra: bigquery
37
- Requires-Dist: soda-core-bigquery<3.4.0,>=3.3.1; extra == "bigquery"
37
+ Requires-Dist: soda-core-bigquery<3.5.0,>=3.3.1; extra == "bigquery"
38
38
  Provides-Extra: databricks
39
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "databricks"
39
+ Requires-Dist: soda-core-spark-df<3.5.0,>=3.3.1; extra == "databricks"
40
40
  Requires-Dist: databricks-sql-connector<3.6.0,>=3.1.2; extra == "databricks"
41
- Requires-Dist: databricks-sdk<0.36.0,>=0.32.0; extra == "databricks"
42
- Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.1; extra == "databricks"
41
+ Requires-Dist: databricks-sdk<0.39.0,>=0.32.0; extra == "databricks"
42
+ Requires-Dist: soda-core-spark[databricks]<3.5.0,>=3.3.1; extra == "databricks"
43
43
  Provides-Extra: iceberg
44
44
  Requires-Dist: pyiceberg==0.7.1; extra == "iceberg"
45
45
  Provides-Extra: kafka
46
46
  Requires-Dist: datacontract-cli[avro]; extra == "kafka"
47
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "kafka"
47
+ Requires-Dist: soda-core-spark-df<3.5.0,>=3.3.1; extra == "kafka"
48
48
  Provides-Extra: postgres
49
- Requires-Dist: soda-core-postgres<3.4.0,>=3.3.1; extra == "postgres"
49
+ Requires-Dist: soda-core-postgres<3.5.0,>=3.3.1; extra == "postgres"
50
50
  Provides-Extra: s3
51
- Requires-Dist: s3fs==2024.9.0; extra == "s3"
51
+ Requires-Dist: s3fs==2024.10.0; extra == "s3"
52
52
  Provides-Extra: snowflake
53
53
  Requires-Dist: snowflake-connector-python[pandas]<3.13,>=3.6; extra == "snowflake"
54
- Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.1; extra == "snowflake"
54
+ Requires-Dist: soda-core-snowflake<3.5.0,>=3.3.1; extra == "snowflake"
55
55
  Provides-Extra: sqlserver
56
- Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.1; extra == "sqlserver"
56
+ Requires-Dist: soda-core-sqlserver<3.5.0,>=3.3.1; extra == "sqlserver"
57
57
  Provides-Extra: trino
58
- Requires-Dist: soda-core-trino<3.4.0,>=3.3.1; extra == "trino"
58
+ Requires-Dist: soda-core-trino<3.5.0,>=3.3.1; extra == "trino"
59
59
  Provides-Extra: dbt
60
60
  Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
61
61
  Provides-Extra: dbml
62
62
  Requires-Dist: pydbml>=1.1.1; extra == "dbml"
63
+ Provides-Extra: parquet
64
+ Requires-Dist: pyarrow>=12.0.0; extra == "parquet"
63
65
  Provides-Extra: all
64
- Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
66
+ Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
65
67
  Provides-Extra: dev
66
68
  Requires-Dist: datacontract-cli[all]; extra == "dev"
67
69
  Requires-Dist: httpx==0.27.2; extra == "dev"
68
70
  Requires-Dist: kafka-python; extra == "dev"
69
71
  Requires-Dist: moto==5.0.18; extra == "dev"
70
72
  Requires-Dist: pandas>=2.1.0; extra == "dev"
71
- Requires-Dist: pre-commit<3.9.0,>=3.7.1; extra == "dev"
72
- Requires-Dist: pyarrow>=12.0.0; extra == "dev"
73
+ Requires-Dist: pre-commit<4.1.0,>=3.7.1; extra == "dev"
73
74
  Requires-Dist: pytest; extra == "dev"
74
75
  Requires-Dist: pytest-xdist; extra == "dev"
75
76
  Requires-Dist: pymssql==2.3.1; extra == "dev"
@@ -273,6 +274,7 @@ A list of available extras:
273
274
  | Avro Support | `pip install datacontract-cli[avro]` |
274
275
  | Google BigQuery | `pip install datacontract-cli[bigquery]` |
275
276
  | Databricks Integration | `pip install datacontract-cli[databricks]` |
277
+ | Iceberg | `pip install datacontract-cli[iceberg]` |
276
278
  | Kafka Integration | `pip install datacontract-cli[kafka]` |
277
279
  | PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
278
280
  | S3 Integration | `pip install datacontract-cli[s3]` |
@@ -280,6 +282,8 @@ A list of available extras:
280
282
  | Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
281
283
  | Trino | `pip install datacontract-cli[trino]` |
282
284
  | Dbt | `pip install datacontract-cli[dbt]` |
285
+ | Dbml | `pip install datacontract-cli[dbml]` |
286
+ | Parquet | `pip install datacontract-cli[parquet]` |
283
287
 
284
288
 
285
289
 
@@ -825,19 +829,19 @@ models:
825
829
  ### export
826
830
 
827
831
  ```
828
-
829
- Usage: datacontract export [OPTIONS] [LOCATION]
830
-
831
- Convert data contract to a specific format. Prints to stdout or to the specified output file.
832
-
832
+ Usage: datacontract export [OPTIONS] [LOCATION]
833
+
834
+ Convert data contract to a specific format. Saves to file specified by `output` option if present, otherwise prints to stdout.
835
+
833
836
  ╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
834
837
  │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
835
838
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
836
839
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
837
840
  │ * --format [jsonschema|pydantic-model|sodacl|dbt|dbt-sources|db The export format. [default: None] [required] │
838
- │ t-staging-sql|odcs|rdf|avro|protobuf|great-expectati
839
- ons|terraform|avro-idl|sql|sql-query|html|go|bigquer
840
- y|dbml|spark|sqlalchemy|data-caterer|dcs]
841
+ │ t-staging-sql|odcs|odcs_v2|odcs_v3|rdf|avro|protobuf │
842
+ │ |great-expectations|terraform|avro-idl|sql|sql-query │
843
+ │ |html|go|bigquery|dbml|spark|sqlalchemy|data-caterer
844
+ │ |dcs] │
841
845
  │ --output PATH Specify the file path where the exported data will be │
842
846
  │ saved. If no path is provided, the output will be │
843
847
  │ printed to stdout. │
@@ -847,6 +851,12 @@ models:
847
851
  │ file to refer to a model, e.g., `orders`, or `all` │
848
852
  │ for all models (default). │
849
853
  │ [default: all] │
854
+ │ --schema TEXT The location (url or path) of the Data Contract │
855
+ │ Specification JSON Schema │
856
+ │ [default: │
857
+ │ https://datacontract.com/datacontract.schema.json] │
858
+ │ --engine TEXT [engine] The engine used for great expection run. │
859
+ │ [default: None] │
850
860
  │ --help Show this message and exit. │
851
861
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
852
862
  ╭─ RDF Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
@@ -857,12 +867,11 @@ models:
857
867
  │ detect the sql dialect via the specified servers in the data contract. │
858
868
  │ [default: auto] │
859
869
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
860
-
861
870
  ```
862
871
 
863
872
  ```bash
864
873
  # Example export data contract as HTML
865
- datacontract export --format html > datacontract.html
874
+ datacontract export --format html --output datacontract.html
866
875
  ```
867
876
 
868
877
  Available export options:
@@ -895,9 +904,10 @@ Available export options:
895
904
  | `dcs` | Export to Data Contract Specification in YAML format | ✅ |
896
905
  | Missing something? | Please create an issue on GitHub | TBD |
897
906
 
907
+
898
908
  #### Great Expectations
899
909
 
900
- The export function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
910
+ The `export` function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
901
911
  If the contract includes multiple models, you need to specify the names of the model you wish to export.
902
912
 
903
913
  ```shell
@@ -907,7 +917,22 @@ datacontract export datacontract.yaml --format great-expectations --model order
907
917
  The export creates a list of expectations by utilizing:
908
918
 
909
919
  - The data from the Model definition with a fixed mapping
910
- - The expectations provided in the quality field for each model (find here the expectations gallery https://greatexpectations.io/expectations/)
920
+ - The expectations provided in the quality field for each model (find here the expectations gallery: [Great Expectations Gallery](https://greatexpectations.io/expectations/))
921
+
922
+ ### Additional Arguments
923
+
924
+ To further customize the export, the following optional arguments are available:
925
+
926
+ - **`suite_name`**: The name of the expectation suite. This suite groups all generated expectations and provides a convenient identifier within Great Expectations. If not provided, a default suite name will be generated based on the model name(s).
927
+
928
+ - **`engine`**: Specifies the engine used to run Great Expectations checks. Accepted values are:
929
+ - `pandas` — Use this when working with in-memory data frames through the Pandas library.
930
+ - `spark` — Use this for working with Spark dataframes.
931
+ - `sql` — Use this for working with SQL databases.
932
+
933
+ - **`sql_server_type`**: Specifies the type of SQL server to connect with when `engine` is set to `sql`.
934
+
935
+ Providing `sql_server_type` ensures that the appropriate SQL dialect and connection settings are applied during the expectation validation.
911
936
 
912
937
  #### RDF
913
938
 
@@ -1004,14 +1029,20 @@ models:
1004
1029
  ### import
1005
1030
 
1006
1031
  ```
1007
- Usage: datacontract import [OPTIONS]
1008
-
1009
- Create a data contract from the given source location. Prints to stdout.
1032
+ Usage: datacontract import [OPTIONS]
1033
+
1034
+ Create a data contract from the given source location. Saves to file specified by `output` option if present, otherwise
1035
+ prints to stdout.
1010
1036
 
1011
1037
  ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
1012
- │ * --format [sql|avro|dbt|glue|jsonschema|bigquery|odcs The format of the source file. │
1013
- │ |unity|spark|iceberg] [default: None] │
1038
+ │ * --format [sql|avro|dbt|dbml|glue|jsonschema|bigquery The format of the source file. │
1039
+ │ |odcs|unity|spark|iceberg|parquet] [default: None] │
1014
1040
  │ [required] │
1041
+ │ --output PATH Specify the file path where the Data │
1042
+ │ Contract will be saved. If no path is │
1043
+ │ provided, the output will be printed to │
1044
+ │ stdout. │
1045
+ │ [default: None] │
1015
1046
  │ --source TEXT The path to the file or Glue Database that │
1016
1047
  │ should be imported. │
1017
1048
  │ [default: None] │
@@ -1041,7 +1072,8 @@ models:
1041
1072
  │ empty for all tables in the file). │
1042
1073
  │ [default: None] │
1043
1074
  │ --iceberg-table TEXT Table name to assign to the model created │
1044
- │ from the Iceberg schema. [default: None]
1075
+ │ from the Iceberg schema.
1076
+ │ [default: None] │
1045
1077
  │ --help Show this message and exit. │
1046
1078
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1047
1079
  ```
@@ -1050,6 +1082,8 @@ Example:
1050
1082
  ```bash
1051
1083
  # Example import from SQL DDL
1052
1084
  datacontract import --format sql --source my_ddl.sql
1085
+ # To save to file
1086
+ datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
1053
1087
  ```
1054
1088
 
1055
1089
  Available import options:
@@ -1068,6 +1102,7 @@ Available import options:
1068
1102
  | `dbml` | Import from DBML models | ✅ |
1069
1103
  | `protobuf` | Import from Protobuf schemas | TBD |
1070
1104
  | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1105
+ | `parquet` | Import from Parquet File Metadta | ✅ |
1071
1106
  | Missing something? | Please create an issue on GitHub | TBD |
1072
1107
 
1073
1108
 
@@ -1270,6 +1305,16 @@ datacontract import --format iceberg --source ./tests/fixtures/iceberg/simple_sc
1270
1305
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1271
1306
  ```
1272
1307
 
1308
+ Examples:
1309
+
1310
+ ```
1311
+ # create a catalog right in the current folder
1312
+ datacontract catalog --output "."
1313
+
1314
+ # Create a catalog based on a filename convention
1315
+ datacontract catalog --files "*.odcs.yaml"
1316
+ ```
1317
+
1273
1318
  ### Publish
1274
1319
 
1275
1320
  ```
@@ -1587,7 +1632,7 @@ if __name__ == "__main__":
1587
1632
  Output
1588
1633
 
1589
1634
  ```yaml
1590
- dataContractSpecification: 0.9.3
1635
+ dataContractSpecification: 1.1.0
1591
1636
  id: uuid-custom
1592
1637
  info:
1593
1638
  title: my_custom_imported_data
@@ -1,82 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: datacontract-cli
3
- Version: 0.10.14
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
- Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
- Project-URL: Homepage, https://cli.datacontract.com
7
- Project-URL: Issues, https://github.com/datacontract/datacontract-cli/issues
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.10
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
- Requires-Dist: typer<0.13,>=0.12
15
- Requires-Dist: pydantic<2.10.0,>=2.8.2
16
- Requires-Dist: pyyaml~=6.0.1
17
- Requires-Dist: requests<2.33,>=2.31
18
- Requires-Dist: fastapi==0.115.2
19
- Requires-Dist: uvicorn==0.30.6
20
- Requires-Dist: fastjsonschema<2.21.0,>=2.19.1
21
- Requires-Dist: fastparquet==2024.5.0
22
- Requires-Dist: python-multipart==0.0.12
23
- Requires-Dist: rich<13.10,>=13.7
24
- Requires-Dist: simple-ddl-parser==1.7.1
25
- Requires-Dist: duckdb==1.1.2
26
- Requires-Dist: soda-core-duckdb<3.4.0,>=3.3.1
27
- Requires-Dist: setuptools>=60
28
- Requires-Dist: python-dotenv~=1.0.0
29
- Requires-Dist: rdflib==7.0.0
30
- Requires-Dist: opentelemetry-exporter-otlp-proto-grpc~=1.16
31
- Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.16
32
- Requires-Dist: boto3<1.35.45,>=1.34.41
33
- Requires-Dist: jinja_partials>=0.2.1
34
- Provides-Extra: avro
35
- Requires-Dist: avro==1.12.0; extra == "avro"
36
- Provides-Extra: bigquery
37
- Requires-Dist: soda-core-bigquery<3.4.0,>=3.3.1; extra == "bigquery"
38
- Provides-Extra: databricks
39
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "databricks"
40
- Requires-Dist: databricks-sql-connector<3.6.0,>=3.1.2; extra == "databricks"
41
- Requires-Dist: databricks-sdk<0.36.0,>=0.32.0; extra == "databricks"
42
- Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.1; extra == "databricks"
43
- Provides-Extra: iceberg
44
- Requires-Dist: pyiceberg==0.7.1; extra == "iceberg"
45
- Provides-Extra: kafka
46
- Requires-Dist: datacontract-cli[avro]; extra == "kafka"
47
- Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "kafka"
48
- Provides-Extra: postgres
49
- Requires-Dist: soda-core-postgres<3.4.0,>=3.3.1; extra == "postgres"
50
- Provides-Extra: s3
51
- Requires-Dist: s3fs==2024.9.0; extra == "s3"
52
- Provides-Extra: snowflake
53
- Requires-Dist: snowflake-connector-python[pandas]<3.13,>=3.6; extra == "snowflake"
54
- Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.1; extra == "snowflake"
55
- Provides-Extra: sqlserver
56
- Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.1; extra == "sqlserver"
57
- Provides-Extra: trino
58
- Requires-Dist: soda-core-trino<3.4.0,>=3.3.1; extra == "trino"
59
- Provides-Extra: dbt
60
- Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
61
- Provides-Extra: dbml
62
- Requires-Dist: pydbml>=1.1.1; extra == "dbml"
63
- Provides-Extra: all
64
- Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
65
- Provides-Extra: dev
66
- Requires-Dist: datacontract-cli[all]; extra == "dev"
67
- Requires-Dist: httpx==0.27.2; extra == "dev"
68
- Requires-Dist: kafka-python; extra == "dev"
69
- Requires-Dist: moto==5.0.18; extra == "dev"
70
- Requires-Dist: pandas>=2.1.0; extra == "dev"
71
- Requires-Dist: pre-commit<3.9.0,>=3.7.1; extra == "dev"
72
- Requires-Dist: pyarrow>=12.0.0; extra == "dev"
73
- Requires-Dist: pytest; extra == "dev"
74
- Requires-Dist: pytest-xdist; extra == "dev"
75
- Requires-Dist: pymssql==2.3.1; extra == "dev"
76
- Requires-Dist: ruff; extra == "dev"
77
- Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.8.2; extra == "dev"
78
- Requires-Dist: trino==0.330.0; extra == "dev"
79
-
80
1
  # Data Contract CLI
81
2
 
82
3
  <p>
@@ -273,6 +194,7 @@ A list of available extras:
273
194
  | Avro Support | `pip install datacontract-cli[avro]` |
274
195
  | Google BigQuery | `pip install datacontract-cli[bigquery]` |
275
196
  | Databricks Integration | `pip install datacontract-cli[databricks]` |
197
+ | Iceberg | `pip install datacontract-cli[iceberg]` |
276
198
  | Kafka Integration | `pip install datacontract-cli[kafka]` |
277
199
  | PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
278
200
  | S3 Integration | `pip install datacontract-cli[s3]` |
@@ -280,6 +202,8 @@ A list of available extras:
280
202
  | Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
281
203
  | Trino | `pip install datacontract-cli[trino]` |
282
204
  | Dbt | `pip install datacontract-cli[dbt]` |
205
+ | Dbml | `pip install datacontract-cli[dbml]` |
206
+ | Parquet | `pip install datacontract-cli[parquet]` |
283
207
 
284
208
 
285
209
 
@@ -825,19 +749,19 @@ models:
825
749
  ### export
826
750
 
827
751
  ```
828
-
829
- Usage: datacontract export [OPTIONS] [LOCATION]
830
-
831
- Convert data contract to a specific format. Prints to stdout or to the specified output file.
832
-
752
+ Usage: datacontract export [OPTIONS] [LOCATION]
753
+
754
+ Convert data contract to a specific format. Saves to file specified by `output` option if present, otherwise prints to stdout.
755
+
833
756
  ╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
834
757
  │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
835
758
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
836
759
  ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
837
760
  │ * --format [jsonschema|pydantic-model|sodacl|dbt|dbt-sources|db The export format. [default: None] [required] │
838
- │ t-staging-sql|odcs|rdf|avro|protobuf|great-expectati
839
- ons|terraform|avro-idl|sql|sql-query|html|go|bigquer
840
- y|dbml|spark|sqlalchemy|data-caterer|dcs]
761
+ │ t-staging-sql|odcs|odcs_v2|odcs_v3|rdf|avro|protobuf │
762
+ │ |great-expectations|terraform|avro-idl|sql|sql-query │
763
+ │ |html|go|bigquery|dbml|spark|sqlalchemy|data-caterer
764
+ │ |dcs] │
841
765
  │ --output PATH Specify the file path where the exported data will be │
842
766
  │ saved. If no path is provided, the output will be │
843
767
  │ printed to stdout. │
@@ -847,6 +771,12 @@ models:
847
771
  │ file to refer to a model, e.g., `orders`, or `all` │
848
772
  │ for all models (default). │
849
773
  │ [default: all] │
774
+ │ --schema TEXT The location (url or path) of the Data Contract │
775
+ │ Specification JSON Schema │
776
+ │ [default: │
777
+ │ https://datacontract.com/datacontract.schema.json] │
778
+ │ --engine TEXT [engine] The engine used for great expection run. │
779
+ │ [default: None] │
850
780
  │ --help Show this message and exit. │
851
781
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
852
782
  ╭─ RDF Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
@@ -857,12 +787,11 @@ models:
857
787
  │ detect the sql dialect via the specified servers in the data contract. │
858
788
  │ [default: auto] │
859
789
  ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
860
-
861
790
  ```
862
791
 
863
792
  ```bash
864
793
  # Example export data contract as HTML
865
- datacontract export --format html > datacontract.html
794
+ datacontract export --format html --output datacontract.html
866
795
  ```
867
796
 
868
797
  Available export options:
@@ -895,9 +824,10 @@ Available export options:
895
824
  | `dcs` | Export to Data Contract Specification in YAML format | ✅ |
896
825
  | Missing something? | Please create an issue on GitHub | TBD |
897
826
 
827
+
898
828
  #### Great Expectations
899
829
 
900
- The export function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
830
+ The `export` function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
901
831
  If the contract includes multiple models, you need to specify the names of the model you wish to export.
902
832
 
903
833
  ```shell
@@ -907,7 +837,22 @@ datacontract export datacontract.yaml --format great-expectations --model order
907
837
  The export creates a list of expectations by utilizing:
908
838
 
909
839
  - The data from the Model definition with a fixed mapping
910
- - The expectations provided in the quality field for each model (find here the expectations gallery https://greatexpectations.io/expectations/)
840
+ - The expectations provided in the quality field for each model (find here the expectations gallery: [Great Expectations Gallery](https://greatexpectations.io/expectations/))
841
+
842
+ ### Additional Arguments
843
+
844
+ To further customize the export, the following optional arguments are available:
845
+
846
+ - **`suite_name`**: The name of the expectation suite. This suite groups all generated expectations and provides a convenient identifier within Great Expectations. If not provided, a default suite name will be generated based on the model name(s).
847
+
848
+ - **`engine`**: Specifies the engine used to run Great Expectations checks. Accepted values are:
849
+ - `pandas` — Use this when working with in-memory data frames through the Pandas library.
850
+ - `spark` — Use this for working with Spark dataframes.
851
+ - `sql` — Use this for working with SQL databases.
852
+
853
+ - **`sql_server_type`**: Specifies the type of SQL server to connect with when `engine` is set to `sql`.
854
+
855
+ Providing `sql_server_type` ensures that the appropriate SQL dialect and connection settings are applied during the expectation validation.
911
856
 
912
857
  #### RDF
913
858
 
@@ -1004,14 +949,20 @@ models:
1004
949
  ### import
1005
950
 
1006
951
  ```
1007
- Usage: datacontract import [OPTIONS]
1008
-
1009
- Create a data contract from the given source location. Prints to stdout.
952
+ Usage: datacontract import [OPTIONS]
953
+
954
+ Create a data contract from the given source location. Saves to file specified by `output` option if present, otherwise
955
+ prints to stdout.
1010
956
 
1011
957
  ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
1012
- │ * --format [sql|avro|dbt|glue|jsonschema|bigquery|odcs The format of the source file. │
1013
- │ |unity|spark|iceberg] [default: None] │
958
+ │ * --format [sql|avro|dbt|dbml|glue|jsonschema|bigquery The format of the source file. │
959
+ │ |odcs|unity|spark|iceberg|parquet] [default: None] │
1014
960
  │ [required] │
961
+ │ --output PATH Specify the file path where the Data │
962
+ │ Contract will be saved. If no path is │
963
+ │ provided, the output will be printed to │
964
+ │ stdout. │
965
+ │ [default: None] │
1015
966
  │ --source TEXT The path to the file or Glue Database that │
1016
967
  │ should be imported. │
1017
968
  │ [default: None] │
@@ -1041,7 +992,8 @@ models:
1041
992
  │ empty for all tables in the file). │
1042
993
  │ [default: None] │
1043
994
  │ --iceberg-table TEXT Table name to assign to the model created │
1044
- │ from the Iceberg schema. [default: None]
995
+ │ from the Iceberg schema.
996
+ │ [default: None] │
1045
997
  │ --help Show this message and exit. │
1046
998
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1047
999
  ```
@@ -1050,6 +1002,8 @@ Example:
1050
1002
  ```bash
1051
1003
  # Example import from SQL DDL
1052
1004
  datacontract import --format sql --source my_ddl.sql
1005
+ # To save to file
1006
+ datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
1053
1007
  ```
1054
1008
 
1055
1009
  Available import options:
@@ -1068,6 +1022,7 @@ Available import options:
1068
1022
  | `dbml` | Import from DBML models | ✅ |
1069
1023
  | `protobuf` | Import from Protobuf schemas | TBD |
1070
1024
  | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1025
+ | `parquet` | Import from Parquet File Metadta | ✅ |
1071
1026
  | Missing something? | Please create an issue on GitHub | TBD |
1072
1027
 
1073
1028
 
@@ -1270,6 +1225,16 @@ datacontract import --format iceberg --source ./tests/fixtures/iceberg/simple_sc
1270
1225
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
1271
1226
  ```
1272
1227
 
1228
+ Examples:
1229
+
1230
+ ```
1231
+ # create a catalog right in the current folder
1232
+ datacontract catalog --output "."
1233
+
1234
+ # Create a catalog based on a filename convention
1235
+ datacontract catalog --files "*.odcs.yaml"
1236
+ ```
1237
+
1273
1238
  ### Publish
1274
1239
 
1275
1240
  ```
@@ -1587,7 +1552,7 @@ if __name__ == "__main__":
1587
1552
  Output
1588
1553
 
1589
1554
  ```yaml
1590
- dataContractSpecification: 0.9.3
1555
+ dataContractSpecification: 1.1.0
1591
1556
  id: uuid-custom
1592
1557
  info:
1593
1558
  title: my_custom_imported_data