datacontract-cli 0.10.25__tar.gz → 0.10.26__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 (207) hide show
  1. {datacontract_cli-0.10.25/datacontract_cli.egg-info → datacontract_cli-0.10.26}/PKG-INFO +27 -14
  2. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/README.md +24 -11
  3. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/kafka.py +2 -1
  4. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/odcs_v3_exporter.py +22 -4
  5. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sql_converter.py +4 -0
  6. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sql_type_converter.py +2 -0
  7. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/spark_importer.py +2 -0
  8. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26/datacontract_cli.egg-info}/PKG-INFO +27 -14
  9. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/requires.txt +2 -2
  10. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/pyproject.toml +3 -3
  11. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_odcs_v3.py +0 -3
  12. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sql.py +11 -11
  13. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/LICENSE +0 -0
  14. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/MANIFEST.in +0 -0
  15. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/__init__.py +0 -0
  16. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/api.py +0 -0
  17. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking.py +0 -0
  18. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_change.py +0 -0
  19. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_rules.py +0 -0
  20. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/catalog/catalog.py +0 -0
  21. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/cli.py +0 -0
  22. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/data_contract.py +0 -0
  23. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/__init__.py +0 -0
  24. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_checks.py +0 -0
  25. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_test.py +0 -0
  26. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  27. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  28. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  29. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  30. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/__init__.py +0 -0
  31. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/check_soda_execute.py +0 -0
  32. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/bigquery.py +0 -0
  33. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/databricks.py +0 -0
  34. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/duckdb_connection.py +0 -0
  35. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/postgres.py +0 -0
  36. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/snowflake.py +0 -0
  37. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/sqlserver.py +0 -0
  38. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/trino.py +0 -0
  39. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/__init__.py +0 -0
  40. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/avro_converter.py +0 -0
  41. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/avro_idl_converter.py +0 -0
  42. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/bigquery_converter.py +0 -0
  43. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/custom_converter.py +0 -0
  44. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/data_caterer_converter.py +0 -0
  45. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dbml_converter.py +0 -0
  46. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dbt_converter.py +0 -0
  47. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dcs_exporter.py +0 -0
  48. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/duckdb_type_converter.py +0 -0
  49. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/exporter.py +0 -0
  50. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/exporter_factory.py +0 -0
  51. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/go_converter.py +0 -0
  52. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/great_expectations_converter.py +0 -0
  53. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/html_export.py +0 -0
  54. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/iceberg_converter.py +0 -0
  55. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/jsonschema_converter.py +0 -0
  56. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/markdown_converter.py +0 -0
  57. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pandas_type_converter.py +0 -0
  58. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/protobuf_converter.py +0 -0
  59. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pydantic_converter.py +0 -0
  60. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/rdf_converter.py +0 -0
  61. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sodacl_converter.py +0 -0
  62. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/spark_converter.py +0 -0
  63. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sqlalchemy_converter.py +0 -0
  64. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/terraform_converter.py +0 -0
  65. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/avro_importer.py +0 -0
  66. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/bigquery_importer.py +0 -0
  67. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/csv_importer.py +0 -0
  68. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/dbml_importer.py +0 -0
  69. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/dbt_importer.py +0 -0
  70. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/excel_importer.py +0 -0
  71. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/glue_importer.py +0 -0
  72. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/iceberg_importer.py +0 -0
  73. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/importer.py +0 -0
  74. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/importer_factory.py +0 -0
  75. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/jsonschema_importer.py +0 -0
  76. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/odcs_importer.py +0 -0
  77. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/odcs_v3_importer.py +0 -0
  78. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/parquet_importer.py +0 -0
  79. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/protobuf_importer.py +0 -0
  80. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/sql_importer.py +0 -0
  81. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/unity_importer.py +0 -0
  82. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/init/init_template.py +0 -0
  83. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/integration/datamesh_manager.py +0 -0
  84. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/files.py +0 -0
  85. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/lint.py +0 -0
  86. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/__init__.py +0 -0
  87. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/description_linter.py +0 -0
  88. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/field_pattern_linter.py +0 -0
  89. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/field_reference_linter.py +0 -0
  90. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/notice_period_linter.py +0 -0
  91. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
  92. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/resolve.py +0 -0
  93. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/resources.py +0 -0
  94. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/schema.py +0 -0
  95. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/urls.py +0 -0
  96. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/data_contract_specification/__init__.py +0 -0
  97. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/exceptions.py +0 -0
  98. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/odcs.py +0 -0
  99. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/run.py +0 -0
  100. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/__init__.py +0 -0
  101. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/junit_test_results.py +0 -0
  102. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/output_format.py +0 -0
  103. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/test_results_writer.py +0 -0
  104. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/py.typed +0 -0
  105. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  106. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  107. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  108. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/datacontract.html +0 -0
  109. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/index.html +0 -0
  110. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_information.html +0 -0
  111. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  112. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_terms.html +0 -0
  113. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/definition.html +0 -0
  114. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/example.html +0 -0
  115. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/model_field.html +0 -0
  116. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/quality.html +0 -0
  117. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/server.html +0 -0
  118. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/style/output.css +0 -0
  119. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/SOURCES.txt +0 -0
  120. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  121. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/entry_points.txt +0 -0
  122. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/top_level.txt +0 -0
  123. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/setup.cfg +0 -0
  124. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_api.py +0 -0
  125. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_breaking.py +0 -0
  126. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_catalog.py +0 -0
  127. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_changelog.py +0 -0
  128. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_cli.py +0 -0
  129. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_data_contract_checks.py +0 -0
  130. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_data_contract_specification.py +0 -0
  131. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_description_linter.py +0 -0
  132. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_documentation_linter.py +0 -0
  133. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_download_datacontract_file.py +0 -0
  134. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_duckdb_json.py +0 -0
  135. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_avro.py +0 -0
  136. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_avro_idl.py +0 -0
  137. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_bigquery.py +0 -0
  138. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_complex_data_contract.py +0 -0
  139. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_custom.py +0 -0
  140. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_custom_exporter.py +0 -0
  141. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_data_caterer.py +0 -0
  142. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbml.py +0 -0
  143. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_models.py +0 -0
  144. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_sources.py +0 -0
  145. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_staging_sql.py +0 -0
  146. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_go.py +0 -0
  147. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_great_expectations.py +0 -0
  148. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_html.py +0 -0
  149. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_iceberg.py +0 -0
  150. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_jsonschema.py +0 -0
  151. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_markdown.py +0 -0
  152. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_protobuf.py +0 -0
  153. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_pydantic.py +0 -0
  154. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_rdf.py +0 -0
  155. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sodacl.py +0 -0
  156. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_spark.py +0 -0
  157. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sql_query.py +0 -0
  158. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sqlalchemy.py +0 -0
  159. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_terraform.py +0 -0
  160. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_constraint_linter.py +0 -0
  161. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_pattern_linter.py +0 -0
  162. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_reference_linter.py +0 -0
  163. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_avro.py +0 -0
  164. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_bigquery.py +0 -0
  165. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_csv.py +0 -0
  166. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_dbml.py +0 -0
  167. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_dbt.py +0 -0
  168. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_excel.py +0 -0
  169. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_glue.py +0 -0
  170. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_iceberg.py +0 -0
  171. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_jsonschema.py +0 -0
  172. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_odcs_v3.py +0 -0
  173. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_parquet.py +0 -0
  174. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_protobuf.py +0 -0
  175. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_spark.py +0 -0
  176. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_sql_postgres.py +0 -0
  177. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_sql_sqlserver.py +0 -0
  178. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_unity_file.py +0 -0
  179. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_integration_datameshmanager.py +0 -0
  180. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_lint.py +0 -0
  181. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_notice_period_linter.py +0 -0
  182. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_resolve.py +0 -0
  183. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_roundtrip_jsonschema.py +0 -0
  184. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_spec_fields_field.py +0 -0
  185. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_spec_ref.py +0 -0
  186. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_azure_remote.py +0 -0
  187. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_bigquery.py +0 -0
  188. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_databricks.py +0 -0
  189. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_dataframe.py +0 -0
  190. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_delta.py +0 -0
  191. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_gcs_json_remote.py +0 -0
  192. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_kafka.py +0 -0
  193. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_kafka_remote.py +0 -0
  194. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_local_json.py +0 -0
  195. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_output_junit.py +0 -0
  196. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_parquet.py +0 -0
  197. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_postgres.py +0 -0
  198. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_quality.py +0 -0
  199. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_csv.py +0 -0
  200. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_delta.py +0 -0
  201. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json.py +0 -0
  202. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_complex.py +0 -0
  203. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_multiple_models.py +0 -0
  204. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_remote.py +0 -0
  205. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_snowflake.py +0 -0
  206. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_sqlserver.py +0 -0
  207. {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_trino.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 0.10.25
3
+ Version: 0.10.26
4
4
  Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
5
5
  Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
6
  License-Expression: MIT
@@ -70,7 +70,7 @@ Provides-Extra: rdf
70
70
  Requires-Dist: rdflib==7.0.0; extra == "rdf"
71
71
  Provides-Extra: api
72
72
  Requires-Dist: fastapi==0.115.12; extra == "api"
73
- Requires-Dist: uvicorn==0.34.0; extra == "api"
73
+ Requires-Dist: uvicorn==0.34.2; extra == "api"
74
74
  Provides-Extra: protobuf
75
75
  Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
76
76
  Provides-Extra: all
@@ -84,7 +84,7 @@ Requires-Dist: pandas>=2.1.0; extra == "dev"
84
84
  Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
85
85
  Requires-Dist: pytest; extra == "dev"
86
86
  Requires-Dist: pytest-xdist; extra == "dev"
87
- Requires-Dist: pymssql==2.3.2; extra == "dev"
87
+ Requires-Dist: pymssql==2.3.4; extra == "dev"
88
88
  Requires-Dist: ruff; extra == "dev"
89
89
  Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
90
90
  Requires-Dist: trino==0.333.0; extra == "dev"
@@ -1397,20 +1397,21 @@ Available import options:
1397
1397
 
1398
1398
  | Type | Description | Status |
1399
1399
  |--------------------|------------------------------------------------|--------|
1400
- | `sql` | Import from SQL DDL | ✅ |
1401
1400
  | `avro` | Import from AVRO schemas | ✅ |
1402
- | `glue` | Import from AWS Glue DataCatalog | ✅ |
1403
- | `jsonschema` | Import from JSON Schemas | ✅ |
1404
1401
  | `bigquery` | Import from BigQuery Schemas | ✅ |
1405
- | `unity` | Import from Databricks Unity Catalog | partial |
1402
+ | `csv` | Import from CSV File | |
1403
+ | `dbml` | Import from DBML models | ✅ |
1406
1404
  | `dbt` | Import from dbt models | ✅ |
1405
+ | `excel` | Import from ODCS Excel Template | ✅ |
1406
+ | `glue` | Import from AWS Glue DataCatalog | ✅ |
1407
+ | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1408
+ | `jsonschema` | Import from JSON Schemas | ✅ |
1407
1409
  | `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
1408
- | `spark` | Import from Spark StructTypes | ✅ |
1409
- | `dbml` | Import from DBML models | ✅ |
1410
- | `csv` | Import from CSV File | ✅ |
1410
+ | `parquet` | Import from Parquet File Metadata | ✅ |
1411
1411
  | `protobuf` | Import from Protobuf schemas | ✅ |
1412
- | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1413
- | `parquet` | Import from Parquet File Metadta | ✅ |
1412
+ | `spark` | Import from Spark StructTypes | |
1413
+ | `sql` | Import from SQL DDL | ✅ |
1414
+ | `unity` | Import from Databricks Unity Catalog | partial |
1414
1415
  | Missing something? | Please create an issue on GitHub | TBD |
1415
1416
 
1416
1417
 
@@ -1460,8 +1461,9 @@ datacontract import --format unity --source my_unity_table.json
1460
1461
 
1461
1462
  ```bash
1462
1463
  # Example import single table from Unity Catalog via HTTP endpoint
1463
- export DATABRICKS_IMPORT_INSTANCE="https://xyz.cloud.databricks.com"
1464
- export DATABRICKS_IMPORT_ACCESS_TOKEN=<token>
1464
+ export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
1465
+ export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
1466
+ export DATACONTRACT_DATABRICKS_TOKEN=<token>
1465
1467
  datacontract import --format unity --unity-table-full-name <table_full_name>
1466
1468
  ```
1467
1469
 
@@ -1482,6 +1484,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
1482
1484
  datacontract import --format dbt --source <manifest_path>
1483
1485
  ```
1484
1486
 
1487
+ ### Excel
1488
+
1489
+ Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
1490
+
1491
+ Examples:
1492
+
1493
+ ```bash
1494
+ # Example import from ODCS Excel Template
1495
+ datacontract import --format excel --source odcs.xlsx
1496
+ ```
1497
+
1485
1498
  #### Glue
1486
1499
 
1487
1500
  Importing from Glue reads the necessary Data directly off of the AWS API.
@@ -1305,20 +1305,21 @@ Available import options:
1305
1305
 
1306
1306
  | Type | Description | Status |
1307
1307
  |--------------------|------------------------------------------------|--------|
1308
- | `sql` | Import from SQL DDL | ✅ |
1309
1308
  | `avro` | Import from AVRO schemas | ✅ |
1310
- | `glue` | Import from AWS Glue DataCatalog | ✅ |
1311
- | `jsonschema` | Import from JSON Schemas | ✅ |
1312
1309
  | `bigquery` | Import from BigQuery Schemas | ✅ |
1313
- | `unity` | Import from Databricks Unity Catalog | partial |
1310
+ | `csv` | Import from CSV File | |
1311
+ | `dbml` | Import from DBML models | ✅ |
1314
1312
  | `dbt` | Import from dbt models | ✅ |
1313
+ | `excel` | Import from ODCS Excel Template | ✅ |
1314
+ | `glue` | Import from AWS Glue DataCatalog | ✅ |
1315
+ | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1316
+ | `jsonschema` | Import from JSON Schemas | ✅ |
1315
1317
  | `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
1316
- | `spark` | Import from Spark StructTypes | ✅ |
1317
- | `dbml` | Import from DBML models | ✅ |
1318
- | `csv` | Import from CSV File | ✅ |
1318
+ | `parquet` | Import from Parquet File Metadata | ✅ |
1319
1319
  | `protobuf` | Import from Protobuf schemas | ✅ |
1320
- | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1321
- | `parquet` | Import from Parquet File Metadta | ✅ |
1320
+ | `spark` | Import from Spark StructTypes | |
1321
+ | `sql` | Import from SQL DDL | ✅ |
1322
+ | `unity` | Import from Databricks Unity Catalog | partial |
1322
1323
  | Missing something? | Please create an issue on GitHub | TBD |
1323
1324
 
1324
1325
 
@@ -1368,8 +1369,9 @@ datacontract import --format unity --source my_unity_table.json
1368
1369
 
1369
1370
  ```bash
1370
1371
  # Example import single table from Unity Catalog via HTTP endpoint
1371
- export DATABRICKS_IMPORT_INSTANCE="https://xyz.cloud.databricks.com"
1372
- export DATABRICKS_IMPORT_ACCESS_TOKEN=<token>
1372
+ export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
1373
+ export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
1374
+ export DATACONTRACT_DATABRICKS_TOKEN=<token>
1373
1375
  datacontract import --format unity --unity-table-full-name <table_full_name>
1374
1376
  ```
1375
1377
 
@@ -1390,6 +1392,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
1390
1392
  datacontract import --format dbt --source <manifest_path>
1391
1393
  ```
1392
1394
 
1395
+ ### Excel
1396
+
1397
+ Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
1398
+
1399
+ Examples:
1400
+
1401
+ ```bash
1402
+ # Example import from ODCS Excel Template
1403
+ datacontract import --format excel --source odcs.xlsx
1404
+ ```
1405
+
1393
1406
  #### Glue
1394
1407
 
1395
1408
  Importing from Glue reads the necessary Data directly off of the AWS API.
@@ -27,6 +27,7 @@ def create_spark_session():
27
27
  tmp_dir = tempfile.TemporaryDirectory(prefix="datacontract-cli-spark")
28
28
  atexit.register(tmp_dir.cleanup)
29
29
 
30
+ pyspark_version = "3.5.5" # MUST be the same as in the pyproject.toml
30
31
  spark = (
31
32
  SparkSession.builder.appName("datacontract")
32
33
  .config("spark.sql.warehouse.dir", f"{tmp_dir}/spark-warehouse")
@@ -34,7 +35,7 @@ def create_spark_session():
34
35
  .config("spark.ui.enabled", "false")
35
36
  .config(
36
37
  "spark.jars.packages",
37
- "org.apache.spark:spark-sql-kafka-0-10_2.12:3.5.5,org.apache.spark:spark-avro_2.12:3.5.5",
38
+ f"org.apache.spark:spark-sql-kafka-0-10_2.12:{pyspark_version},org.apache.spark:spark-avro_2.12:{pyspark_version}",
38
39
  )
39
40
  .getOrCreate()
40
41
  )
@@ -1,4 +1,4 @@
1
- from typing import Dict
1
+ from typing import Any, Dict
2
2
 
3
3
  from open_data_contract_standard.model import (
4
4
  CustomProperty,
@@ -202,13 +202,31 @@ def to_logical_type(type: str) -> str | None:
202
202
  return "array"
203
203
  if type.lower() in ["array"]:
204
204
  return "array"
205
+ if type.lower() in ["variant"]:
206
+ return "variant"
205
207
  if type.lower() in ["null"]:
206
208
  return None
207
209
  return None
208
210
 
209
211
 
210
- def to_physical_type(type: str) -> str | None:
211
- return type
212
+ def to_physical_type(config: Dict[str, Any]) -> str | None:
213
+ if config is None:
214
+ return None
215
+ if "postgresType" in config:
216
+ return config["postgresType"]
217
+ elif "bigqueryType" in config:
218
+ return config["bigqueryType"]
219
+ elif "snowflakeType" in config:
220
+ return config["snowflakeType"]
221
+ elif "redshiftType" in config:
222
+ return config["redshiftType"]
223
+ elif "sqlserverType" in config:
224
+ return config["sqlserverType"]
225
+ elif "databricksType" in config:
226
+ return config["databricksType"]
227
+ elif "physicalType" in config:
228
+ return config["physicalType"]
229
+ return None
212
230
 
213
231
 
214
232
  def to_property(field_name: str, field: Field) -> SchemaProperty:
@@ -231,7 +249,7 @@ def to_property(field_name: str, field: Field) -> SchemaProperty:
231
249
 
232
250
  if field.type is not None:
233
251
  property.logicalType = to_logical_type(field.type)
234
- property.physicalType = to_physical_type(field.type)
252
+ property.physicalType = to_physical_type(field.config)
235
253
 
236
254
  if field.description is not None:
237
255
  property.description = field.description
@@ -117,6 +117,8 @@ def _to_sql_table(model_name, model, server_type="snowflake"):
117
117
  result += " primary key"
118
118
  if server_type == "databricks" and field.description is not None:
119
119
  result += f' COMMENT "{_escape(field.description)}"'
120
+ if server_type == "snowflake" and field.description is not None:
121
+ result += f" COMMENT '{_escape(field.description)}'"
120
122
  if current_field_index < fields:
121
123
  result += ","
122
124
  result += "\n"
@@ -124,6 +126,8 @@ def _to_sql_table(model_name, model, server_type="snowflake"):
124
126
  result += ")"
125
127
  if server_type == "databricks" and model.description is not None:
126
128
  result += f' COMMENT "{_escape(model.description)}"'
129
+ if server_type == "snowflake" and model.description is not None:
130
+ result += f" COMMENT='{_escape(model.description)}'"
127
131
  result += ";\n"
128
132
  return result
129
133
 
@@ -197,6 +197,8 @@ def convert_to_databricks(field: Field) -> None | str:
197
197
  if type.lower() in ["array"]:
198
198
  item_type = convert_to_databricks(field.items)
199
199
  return f"ARRAY<{item_type}>"
200
+ if type.lower() in ["variant"]:
201
+ return "VARIANT"
200
202
  return None
201
203
 
202
204
 
@@ -154,5 +154,7 @@ def _data_type_from_spark(spark_type: types.DataType) -> str:
154
154
  return "null"
155
155
  elif isinstance(spark_type, types.VarcharType):
156
156
  return "varchar"
157
+ elif isinstance(spark_type, types.VariantType):
158
+ return "variant"
157
159
  else:
158
160
  raise ValueError(f"Unsupported Spark type: {spark_type}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 0.10.25
3
+ Version: 0.10.26
4
4
  Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
5
5
  Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
6
  License-Expression: MIT
@@ -70,7 +70,7 @@ Provides-Extra: rdf
70
70
  Requires-Dist: rdflib==7.0.0; extra == "rdf"
71
71
  Provides-Extra: api
72
72
  Requires-Dist: fastapi==0.115.12; extra == "api"
73
- Requires-Dist: uvicorn==0.34.0; extra == "api"
73
+ Requires-Dist: uvicorn==0.34.2; extra == "api"
74
74
  Provides-Extra: protobuf
75
75
  Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
76
76
  Provides-Extra: all
@@ -84,7 +84,7 @@ Requires-Dist: pandas>=2.1.0; extra == "dev"
84
84
  Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
85
85
  Requires-Dist: pytest; extra == "dev"
86
86
  Requires-Dist: pytest-xdist; extra == "dev"
87
- Requires-Dist: pymssql==2.3.2; extra == "dev"
87
+ Requires-Dist: pymssql==2.3.4; extra == "dev"
88
88
  Requires-Dist: ruff; extra == "dev"
89
89
  Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
90
90
  Requires-Dist: trino==0.333.0; extra == "dev"
@@ -1397,20 +1397,21 @@ Available import options:
1397
1397
 
1398
1398
  | Type | Description | Status |
1399
1399
  |--------------------|------------------------------------------------|--------|
1400
- | `sql` | Import from SQL DDL | ✅ |
1401
1400
  | `avro` | Import from AVRO schemas | ✅ |
1402
- | `glue` | Import from AWS Glue DataCatalog | ✅ |
1403
- | `jsonschema` | Import from JSON Schemas | ✅ |
1404
1401
  | `bigquery` | Import from BigQuery Schemas | ✅ |
1405
- | `unity` | Import from Databricks Unity Catalog | partial |
1402
+ | `csv` | Import from CSV File | |
1403
+ | `dbml` | Import from DBML models | ✅ |
1406
1404
  | `dbt` | Import from dbt models | ✅ |
1405
+ | `excel` | Import from ODCS Excel Template | ✅ |
1406
+ | `glue` | Import from AWS Glue DataCatalog | ✅ |
1407
+ | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1408
+ | `jsonschema` | Import from JSON Schemas | ✅ |
1407
1409
  | `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
1408
- | `spark` | Import from Spark StructTypes | ✅ |
1409
- | `dbml` | Import from DBML models | ✅ |
1410
- | `csv` | Import from CSV File | ✅ |
1410
+ | `parquet` | Import from Parquet File Metadata | ✅ |
1411
1411
  | `protobuf` | Import from Protobuf schemas | ✅ |
1412
- | `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
1413
- | `parquet` | Import from Parquet File Metadta | ✅ |
1412
+ | `spark` | Import from Spark StructTypes | |
1413
+ | `sql` | Import from SQL DDL | ✅ |
1414
+ | `unity` | Import from Databricks Unity Catalog | partial |
1414
1415
  | Missing something? | Please create an issue on GitHub | TBD |
1415
1416
 
1416
1417
 
@@ -1460,8 +1461,9 @@ datacontract import --format unity --source my_unity_table.json
1460
1461
 
1461
1462
  ```bash
1462
1463
  # Example import single table from Unity Catalog via HTTP endpoint
1463
- export DATABRICKS_IMPORT_INSTANCE="https://xyz.cloud.databricks.com"
1464
- export DATABRICKS_IMPORT_ACCESS_TOKEN=<token>
1464
+ export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
1465
+ export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
1466
+ export DATACONTRACT_DATABRICKS_TOKEN=<token>
1465
1467
  datacontract import --format unity --unity-table-full-name <table_full_name>
1466
1468
  ```
1467
1469
 
@@ -1482,6 +1484,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
1482
1484
  datacontract import --format dbt --source <manifest_path>
1483
1485
  ```
1484
1486
 
1487
+ ### Excel
1488
+
1489
+ Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
1490
+
1491
+ Examples:
1492
+
1493
+ ```bash
1494
+ # Example import from ODCS Excel Template
1495
+ datacontract import --format excel --source odcs.xlsx
1496
+ ```
1497
+
1485
1498
  #### Glue
1486
1499
 
1487
1500
  Importing from Glue reads the necessary Data directly off of the AWS API.
@@ -23,7 +23,7 @@ datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,excel,iceberg,kafka,parque
23
23
 
24
24
  [api]
25
25
  fastapi==0.115.12
26
- uvicorn==0.34.0
26
+ uvicorn==0.34.2
27
27
 
28
28
  [avro]
29
29
  avro==1.12.0
@@ -55,7 +55,7 @@ pandas>=2.1.0
55
55
  pre-commit<4.3.0,>=3.7.1
56
56
  pytest
57
57
  pytest-xdist
58
- pymssql==2.3.2
58
+ pymssql==2.3.4
59
59
  ruff
60
60
  testcontainers[kafka,minio,mssql,postgres]==4.9.2
61
61
  trino==0.333.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "datacontract-cli"
3
- version = "0.10.25"
3
+ version = "0.10.26"
4
4
  description = "The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library."
5
5
  license = "MIT"
6
6
  readme = "README.md"
@@ -112,7 +112,7 @@ rdf = [
112
112
 
113
113
  api = [
114
114
  "fastapi==0.115.12",
115
- "uvicorn==0.34.0",
115
+ "uvicorn==0.34.2",
116
116
  ]
117
117
 
118
118
  protobuf = [
@@ -132,7 +132,7 @@ dev = [
132
132
  "pre-commit>=3.7.1,<4.3.0",
133
133
  "pytest",
134
134
  "pytest-xdist",
135
- "pymssql==2.3.2",
135
+ "pymssql==2.3.4",
136
136
  "ruff",
137
137
  "testcontainers[minio,postgres,kafka,mssql]==4.9.2",
138
138
  "trino==0.333.0",
@@ -44,7 +44,6 @@ schema:
44
44
  minLength: 8
45
45
  maxLength: 10
46
46
  pattern: ^B[0-9]+$
47
- physicalType: varchar
48
47
  required: true
49
48
  unique: true
50
49
  tags:
@@ -63,7 +62,6 @@ schema:
63
62
  logicalTypeOptions:
64
63
  minimum: 0
65
64
  maximum: 1000000
66
- physicalType: bigint
67
65
  required: true
68
66
  description: The order_total field
69
67
  quality:
@@ -75,7 +73,6 @@ schema:
75
73
  mustBeBetween: [1000, 49900]
76
74
  - name: order_status
77
75
  logicalType: string
78
- physicalType: text
79
76
  required: true
80
77
  quality:
81
78
  - type: sql
@@ -32,18 +32,18 @@ def test_to_sql_ddl_snowflake():
32
32
  -- Data Contract: urn:datacontract:checkout:snowflake_orders_pii_v2
33
33
  -- SQL Dialect: snowflake
34
34
  CREATE TABLE orders (
35
- ORDER_ID TEXT not null,
36
- ORDER_TIMESTAMP TIMESTAMP_TZ not null,
37
- ORDER_TOTAL NUMBER not null,
38
- CUSTOMER_ID TEXT,
39
- CUSTOMER_EMAIL_ADDRESS TEXT not null,
40
- PROCESSING_TIMESTAMP TIMESTAMP_LTZ not null
41
- );
35
+ ORDER_ID TEXT not null COMMENT 'An internal ID that identifies an order in the online shop.',
36
+ ORDER_TIMESTAMP TIMESTAMP_TZ not null COMMENT 'The business timestamp in UTC when the order was successfully registered in the source system and the payment was successful.',
37
+ ORDER_TOTAL NUMBER not null COMMENT 'Total amount the smallest monetary unit (e.g., cents).',
38
+ CUSTOMER_ID TEXT COMMENT 'Unique identifier for the customer.',
39
+ CUSTOMER_EMAIL_ADDRESS TEXT not null COMMENT 'The email address, as entered by the customer. The email address was not verified.',
40
+ PROCESSING_TIMESTAMP TIMESTAMP_LTZ not null COMMENT 'The processing timestamp in the current session’s time zone.'
41
+ ) COMMENT='One record per order. Includes cancelled and deleted orders.';
42
42
  CREATE TABLE line_items (
43
- LINE_ITEM_ID TEXT not null,
44
- ORDER_ID TEXT,
45
- SKU TEXT
46
- );
43
+ LINE_ITEM_ID TEXT not null COMMENT 'Primary key of the lines_item_id table',
44
+ ORDER_ID TEXT COMMENT 'An internal ID that identifies an order in the online shop.',
45
+ SKU TEXT COMMENT 'The purchased article number'
46
+ ) COMMENT='A single article that is part of an order.';
47
47
  """.strip()
48
48
  assert actual == expected
49
49