datacontract-cli 1.2.4__tar.gz → 1.2.6__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 (482) hide show
  1. {datacontract_cli-1.2.4/datacontract_cli.egg-info → datacontract_cli-1.2.6}/PKG-INFO +7 -6
  2. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/README.md +1 -0
  3. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/api.py +5 -3
  4. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_edit.py +30 -2
  5. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/config/settings.py +9 -0
  6. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/data_contract.py +11 -2
  7. datacontract_cli-1.2.6/datacontract/editor_assets/VERSION +1 -0
  8. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/datacontract-editor.css +1 -1
  9. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/datacontract-editor.es.js +10544 -9806
  10. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/check_spec.py +1 -2
  11. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/create_checks.py +84 -103
  12. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/dimensions.py +0 -2
  13. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/type_normalize.py +24 -58
  14. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/hana_quality_check.py +6 -3
  15. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/hana_schema_check.py +4 -7
  16. datacontract_cli-1.2.6/datacontract/engines/ibis/connections/athena_patch.py +20 -0
  17. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/connect.py +11 -3
  18. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/duckdb_connection.py +44 -1
  19. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/ibis_check_execute.py +197 -135
  20. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/native_type.py +1 -1
  21. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/jsonschema_exporter.py +2 -2
  22. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/protobuf_exporter.py +3 -1
  23. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/sodacl_check_builder.py +1 -0
  24. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/clickhouse_importer.py +2 -1
  25. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/glue_importer.py +2 -2
  26. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/hive_importer.py +2 -1
  27. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/jsonschema_importer.py +1 -1
  28. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/odcs_helper.py +19 -1
  29. datacontract_cli-1.2.6/datacontract/imports/postgres_importer.py +424 -0
  30. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/sql_importer.py +1 -1
  31. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/sqlserver_importer.py +4 -4
  32. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/unity_importer.py +3 -1
  33. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/integration/dbt_sync.py +11 -19
  34. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/constraints.py +11 -2
  35. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/resolve.py +109 -44
  36. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/enum_values.py +7 -3
  37. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/test_results_writer.py +1 -1
  38. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6/datacontract_cli.egg-info}/PKG-INFO +7 -6
  39. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract_cli.egg-info/SOURCES.txt +2 -0
  40. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract_cli.egg-info/requires.txt +5 -5
  41. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/pyproject.toml +6 -6
  42. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_api.py +6 -3
  43. datacontract_cli-1.2.6/tests/test_api_concurrency.py +186 -0
  44. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_config.py +5 -0
  45. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_athena.py +17 -2
  46. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_mysql.py +84 -0
  47. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_postgres.py +10 -0
  48. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_redshift.py +10 -0
  49. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_sqlserver.py +15 -0
  50. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_nested.py +12 -3
  51. datacontract_cli-1.2.6/tests/test_create_checks_nested_type.py +680 -0
  52. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_dbt_sync.py +6 -6
  53. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_edit.py +36 -0
  54. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_enum_values.py +54 -2
  55. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_jsonschema.py +21 -2
  56. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_markdown.py +1 -1
  57. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_protobuf.py +22 -0
  58. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_spark.py +2 -2
  59. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_hana_quality_check.py +12 -0
  60. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_ibis_check_execute.py +7 -7
  61. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_athena.py +1 -1
  62. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_clickhouse.py +8 -3
  63. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_hive.py +5 -3
  64. datacontract_cli-1.2.6/tests/test_import_postgres.py +396 -0
  65. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_postgres.py +6 -0
  66. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_lint.py +95 -10
  67. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_lint_odcs_3_2_constraints.py +31 -10
  68. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_map_type.py +2 -2
  69. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_quality_unrunnable_rules.py +1 -1
  70. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_azure_remote.py +4 -3
  71. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_bigquery.py +5 -4
  72. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_checks_filter.py +3 -2
  73. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_databricks.py +3 -2
  74. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_delta.py +4 -3
  75. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_dimension_filter.py +2 -3
  76. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_dry_run.py +5 -4
  77. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_gcs_csv_remote.py +4 -3
  78. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_gcs_json_remote.py +4 -3
  79. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_iceberg.py +1 -1
  80. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_iceberg_rest.py +1 -1
  81. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_kafka_remote.py +3 -2
  82. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_local_json.py +36 -0
  83. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_local_json_nd.py +2 -1
  84. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_mysql.py +3 -2
  85. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_nested_checks.py +1 -0
  86. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_oracle.py +3 -2
  87. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_oracle_xe.py +3 -2
  88. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_parquet.py +8 -4
  89. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_postgres.py +5 -4
  90. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_quality.py +3 -2
  91. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_quality_local_fallback.py +3 -2
  92. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_results_writer.py +6 -0
  93. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_csv.py +4 -3
  94. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_delta.py +3 -2
  95. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_json.py +3 -2
  96. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_json_complex.py +3 -2
  97. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_json_multiple_models.py +2 -1
  98. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_snowflake.py +3 -2
  99. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_sqlserver.py +3 -2
  100. datacontract_cli-1.2.6/tests/test_test_trino.py +246 -0
  101. datacontract_cli-1.2.4/datacontract/editor_assets/VERSION +0 -1
  102. datacontract_cli-1.2.4/datacontract/imports/postgres_importer.py +0 -259
  103. datacontract_cli-1.2.4/tests/test_create_checks_nested_type.py +0 -475
  104. datacontract_cli-1.2.4/tests/test_import_postgres.py +0 -187
  105. datacontract_cli-1.2.4/tests/test_test_trino.py +0 -99
  106. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/LICENSE +0 -0
  107. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/MANIFEST.in +0 -0
  108. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/__init__.py +0 -0
  109. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/breaking/__init__.py +0 -0
  110. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/breaking/detector.py +0 -0
  111. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/breaking/rules.py +0 -0
  112. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/catalog/catalog.py +0 -0
  113. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/changelog/__init__.py +0 -0
  114. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/changelog/changelog.py +0 -0
  115. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/changelog/normalize.py +0 -0
  116. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/cli.py +0 -0
  117. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_api.py +0 -0
  118. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_breaking.py +0 -0
  119. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_catalog.py +0 -0
  120. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_changelog.py +0 -0
  121. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_ci.py +0 -0
  122. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_dbt.py +0 -0
  123. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_export.py +0 -0
  124. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_import.py +0 -0
  125. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_init.py +0 -0
  126. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_lint.py +0 -0
  127. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_publish.py +0 -0
  128. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/command_test.py +0 -0
  129. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/config/__init__.py +0 -0
  130. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/config/cli_context.py +0 -0
  131. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/config/variables.py +0 -0
  132. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/assets/editor.worker-4.7.0.js +0 -0
  133. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/assets/yaml.worker-4.7.0.js +0 -0
  134. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/index.html +0 -0
  135. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/logo_fuchsia_v2.svg +0 -0
  136. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/monaco-4.7.0.js +0 -0
  137. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/odcs.svg +0 -0
  138. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/robots.txt +0 -0
  139. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/rolldown-runtime-DY7j01NX.js +0 -0
  140. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/editor_assets/sitemap.xml +0 -0
  141. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/__init__.py +0 -0
  142. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/__init__.py +0 -0
  143. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/check_filter.py +0 -0
  144. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/custom_quality_check.py +0 -0
  145. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/physical_type_match.py +0 -0
  146. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/severity.py +0 -0
  147. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/checks/sql_guard.py +0 -0
  148. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/data_contract_test.py +0 -0
  149. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/datacontract/check_azure_blob_file.py +0 -0
  150. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  151. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  152. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  153. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  154. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/__init__.py +0 -0
  155. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/check_hana_execute.py +0 -0
  156. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/hana_check_selection.py +0 -0
  157. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/hana_connection.py +0 -0
  158. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/hana/hana_type_mapping.py +0 -0
  159. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/__init__.py +0 -0
  160. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/__init__.py +0 -0
  161. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/aws_credentials.py +0 -0
  162. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/databricks_patch.py +0 -0
  163. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/exasol_patch.py +0 -0
  164. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/hive_patch.py +0 -0
  165. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/iceberg.py +0 -0
  166. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/kafka.py +0 -0
  167. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/oracle_patch.py +0 -0
  168. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/redshift_credentials.py +0 -0
  169. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/connections/redshift_patch.py +0 -0
  170. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/dtype_category.py +0 -0
  171. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/engines/ibis/snowflake_structured_types.py +0 -0
  172. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/__init__.py +0 -0
  173. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/avro_exporter.py +0 -0
  174. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/avro_idl_exporter.py +0 -0
  175. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/bigquery_exporter.py +0 -0
  176. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/custom_exporter.py +0 -0
  177. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/data_caterer_exporter.py +0 -0
  178. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/dbml_exporter.py +0 -0
  179. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/dbt_exporter.py +0 -0
  180. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/dcs_exporter.py +0 -0
  181. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/dqx_exporter.py +0 -0
  182. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/duckdb_type_converter.py +0 -0
  183. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/excel_exporter.py +0 -0
  184. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/exporter.py +0 -0
  185. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/exporter_factory.py +0 -0
  186. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/go_exporter.py +0 -0
  187. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/great_expectations_exporter.py +0 -0
  188. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/html_exporter.py +0 -0
  189. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/iceberg_exporter.py +0 -0
  190. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/markdown_exporter.py +0 -0
  191. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/mermaid_exporter.py +0 -0
  192. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/odcs_v3_exporter.py +0 -0
  193. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/pandas_type_converter.py +0 -0
  194. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/pydantic_exporter.py +0 -0
  195. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/rdf_exporter.py +0 -0
  196. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/sodacl_exporter.py +0 -0
  197. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/spark_exporter.py +0 -0
  198. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/sql_exporter.py +0 -0
  199. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/sql_type_converter.py +0 -0
  200. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/sqlalchemy_exporter.py +0 -0
  201. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/export/xsd_exporter.py +0 -0
  202. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/athena_importer.py +0 -0
  203. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/avro_importer.py +0 -0
  204. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/bigquery_importer.py +0 -0
  205. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/csv_importer.py +0 -0
  206. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/dbml_importer.py +0 -0
  207. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/dbt_importer.py +0 -0
  208. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/dcs_importer.py +0 -0
  209. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/excel_importer.py +0 -0
  210. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/iceberg_importer.py +0 -0
  211. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/importer.py +0 -0
  212. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/importer_factory.py +0 -0
  213. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/json_importer.py +0 -0
  214. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/mysql_importer.py +0 -0
  215. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/object_storage_importer.py +0 -0
  216. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/odata_importer.py +0 -0
  217. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/odcs_importer.py +0 -0
  218. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/openapi_importer.py +0 -0
  219. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/oracle_importer.py +0 -0
  220. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/parquet_importer.py +0 -0
  221. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/powerbi_importer.py +0 -0
  222. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/protobuf_importer.py +0 -0
  223. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/pydantic_importer.py +0 -0
  224. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/redshift_importer.py +0 -0
  225. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/snowflake_importer.py +0 -0
  226. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/spark_importer.py +0 -0
  227. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/spark_type_json.py +0 -0
  228. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/trino_importer.py +0 -0
  229. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/imports/xsd_importer.py +0 -0
  230. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/init/init_template.py +0 -0
  231. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/integration/dbt_test_mapping.py +0 -0
  232. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/integration/entropy_data.py +0 -0
  233. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/files.py +0 -0
  234. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/resources.py +0 -0
  235. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/s3.py +0 -0
  236. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/schema.py +0 -0
  237. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/lint/urls.py +0 -0
  238. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/breaking.py +0 -0
  239. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/changelog.py +0 -0
  240. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/exceptions.py +0 -0
  241. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/map_type.py +0 -0
  242. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/natural_keys.py +0 -0
  243. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/odcs.py +0 -0
  244. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/run.py +0 -0
  245. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/server.py +0 -0
  246. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/vector_type.py +0 -0
  247. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/model/workbook.py +0 -0
  248. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/__init__.py +0 -0
  249. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/ci_output.py +0 -0
  250. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/json_test_results.py +0 -0
  251. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/junit_test_results.py +0 -0
  252. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/output_format.py +0 -0
  253. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/text_breaking_results.py +0 -0
  254. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/output/text_changelog_results.py +0 -0
  255. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/py.typed +0 -0
  256. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  257. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  258. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
  259. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
  260. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.2.1.init.yaml +0 -0
  261. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/datacontract-1.2.1.schema.json +0 -0
  262. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/odcs-3.0.2.schema.json +0 -0
  263. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/odcs-3.1.0.schema.json +0 -0
  264. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/odcs-3.2.0.init.yaml +0 -0
  265. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/schemas/odcs-3.2.0.schema.json +0 -0
  266. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/datacontract.html +0 -0
  267. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/datacontract_odcs.html +0 -0
  268. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/excel/odcs-template-v3.0.xlsx +0 -0
  269. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/excel/odcs-template-v3.1.xlsx +0 -0
  270. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/excel/odcs-template-v3.2.xlsx +0 -0
  271. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/index.html +0 -0
  272. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/macros/authoritative_definitions.html +0 -0
  273. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/macros/context.html +0 -0
  274. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/macros/schema.html +0 -0
  275. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/macros/server.html +0 -0
  276. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/macros/support.html +0 -0
  277. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/datacontract_information.html +0 -0
  278. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  279. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/datacontract_terms.html +0 -0
  280. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/definition.html +0 -0
  281. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/example.html +0 -0
  282. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/model_field.html +0 -0
  283. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/quality.html +0 -0
  284. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials/server.html +0 -0
  285. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/context.html +0 -0
  286. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/custom_properties.html +0 -0
  287. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/diagram.html +0 -0
  288. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/dialog_yaml.html +0 -0
  289. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/footer.html +0 -0
  290. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/fundamentals.html +0 -0
  291. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/header.html +0 -0
  292. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/pricing.html +0 -0
  293. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/roles.html +0 -0
  294. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/schema.html +0 -0
  295. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/servers.html +0 -0
  296. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/sla.html +0 -0
  297. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/support.html +0 -0
  298. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/team.html +0 -0
  299. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/term_of_use.html +0 -0
  300. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/partials_odcs/title.html +0 -0
  301. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract/templates/style/output.css +0 -0
  302. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  303. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract_cli.egg-info/entry_points.txt +0 -0
  304. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/datacontract_cli.egg-info/top_level.txt +0 -0
  305. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/setup.cfg +0 -0
  306. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_api_openapi.py +0 -0
  307. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_breaking.py +0 -0
  308. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_breaking_odcs_3_2.py +0 -0
  309. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_catalog.py +0 -0
  310. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_changelog.py +0 -0
  311. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_changelog_engine.py +0 -0
  312. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_changelog_normalize.py +0 -0
  313. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_changelog_output_text.py +0 -0
  314. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_check_quality_provenance.py +0 -0
  315. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_ci_output.py +0 -0
  316. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_cli.py +0 -0
  317. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_command_api.py +0 -0
  318. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_command_api_options.py +0 -0
  319. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_config_file.py +0 -0
  320. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_config_require.py +0 -0
  321. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_config_threading.py +0 -0
  322. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_bigquery.py +0 -0
  323. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_clickhouse.py +0 -0
  324. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_databricks.py +0 -0
  325. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_exasol.py +0 -0
  326. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_hive.py +0 -0
  327. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_impala.py +0 -0
  328. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_oracle.py +0 -0
  329. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_s3_credentials.py +0 -0
  330. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_snowflake.py +0 -0
  331. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_connect_trino.py +0 -0
  332. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_array_items.py +0 -0
  333. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_physical_type.py +0 -0
  334. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_primary_key.py +0 -0
  335. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_retention_period.py +0 -0
  336. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_servicelevel.py +0 -0
  337. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_create_checks_sql_placeholders.py +0 -0
  338. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_custom_quality_checks.py +0 -0
  339. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_data_contract.py +0 -0
  340. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_data_contract_checks.py +0 -0
  341. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_data_contract_specification.py +0 -0
  342. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_dbt_test_mapping.py +0 -0
  343. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_description_linter.py +0 -0
  344. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_docs_commands.py +0 -0
  345. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_docs_config_options.py +0 -0
  346. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_docs_ordering.py +0 -0
  347. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_download_datacontract_file.py +0 -0
  348. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_dtype_category.py +0 -0
  349. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_duckdb_json.py +0 -0
  350. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_avro.py +0 -0
  351. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_avro_idl.py +0 -0
  352. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_bigquery.py +0 -0
  353. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_complex_data_contract.py +0 -0
  354. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_custom.py +0 -0
  355. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_custom_exporter.py +0 -0
  356. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_custom_model.py +0 -0
  357. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_data_caterer.py +0 -0
  358. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dbml.py +0 -0
  359. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dbt_models.py +0 -0
  360. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dbt_sources.py +0 -0
  361. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dbt_staging_sql.py +0 -0
  362. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dcs.py +0 -0
  363. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_dqx.py +0 -0
  364. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_excel.py +0 -0
  365. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_go.py +0 -0
  366. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_great_expectations.py +0 -0
  367. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_html.py +0 -0
  368. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_iceberg.py +0 -0
  369. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_large_contract.py +0 -0
  370. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_mermaid.py +0 -0
  371. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_odcs_v3.py +0 -0
  372. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_pydantic.py +0 -0
  373. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_rdf.py +0 -0
  374. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_sodacl.py +0 -0
  375. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_sql.py +0 -0
  376. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_sql_clickhouse.py +0 -0
  377. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_sql_query.py +0 -0
  378. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_sqlalchemy.py +0 -0
  379. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_export_xsd.py +0 -0
  380. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_hana_connection.py +0 -0
  381. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_hana_schema_check.py +0 -0
  382. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_hana_type_mapping.py +0 -0
  383. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_ibis_mssql_pattern.py +0 -0
  384. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_ibis_mssql_schema.py +0 -0
  385. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_ibis_oracle_schema.py +0 -0
  386. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_avro.py +0 -0
  387. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_bigquery.py +0 -0
  388. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_csv.py +0 -0
  389. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_dbml.py +0 -0
  390. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_dbt.py +0 -0
  391. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_excel.py +0 -0
  392. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_glue.py +0 -0
  393. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_iceberg.py +0 -0
  394. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_json.py +0 -0
  395. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_jsonschema.py +0 -0
  396. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_mysql.py +0 -0
  397. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_object_storage.py +0 -0
  398. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_odata.py +0 -0
  399. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_odcs_v3.py +0 -0
  400. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_openapi.py +0 -0
  401. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_oracle.py +0 -0
  402. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_parquet.py +0 -0
  403. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_powerbi.py +0 -0
  404. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_protobuf.py +0 -0
  405. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_pydantic_model.py +0 -0
  406. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_redshift.py +0 -0
  407. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_snowflake.py +0 -0
  408. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_spark_type_json.py +0 -0
  409. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_clickhouse.py +0 -0
  410. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_hive.py +0 -0
  411. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_oracle.py +0 -0
  412. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_snowflake.py +0 -0
  413. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_sqlserver.py +0 -0
  414. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sql_struct.py +0 -0
  415. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_sqlserver.py +0 -0
  416. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_trino.py +0 -0
  417. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_unity_file.py +0 -0
  418. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_unmapped_types.py +0 -0
  419. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_import_xsd.py +0 -0
  420. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_install_extras.py +0 -0
  421. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_integration_entropydata.py +0 -0
  422. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_lint_files.py +0 -0
  423. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_lint_schema.py +0 -0
  424. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_lint_urls.py +0 -0
  425. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_metadata_fields.py +0 -0
  426. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_native_type_schema_scope.py +0 -0
  427. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_nested_path_checks.py +0 -0
  428. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_oracle_patch.py +0 -0
  429. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_physical_type_match.py +0 -0
  430. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_publish_test_results.py +0 -0
  431. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_publish_test_results_payload.py +0 -0
  432. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_quality_sql_dialects.py +0 -0
  433. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_redshift_credentials.py +0 -0
  434. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_redshift_patch.py +0 -0
  435. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_resolve.py +0 -0
  436. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_resolve_definitions.py +0 -0
  437. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_resolve_local_definitions.py +0 -0
  438. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_roundtrip_jsonschema.py +0 -0
  439. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_roundtrip_pydantic_model.py +0 -0
  440. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_roundtrip_xsd.py +0 -0
  441. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_row_filter_duplicate_count.py +0 -0
  442. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_run_check_deprecated_fields.py +0 -0
  443. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_run_check_engine.py +0 -0
  444. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_server_overrides.py +0 -0
  445. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_server_type_mssql.py +0 -0
  446. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_server_type_synonyms.py +0 -0
  447. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_servers_3_2_0.py +0 -0
  448. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_snowflake_structured_types.py +0 -0
  449. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_sql_type_converter_physicaltype.py +0 -0
  450. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_api.py +0 -0
  451. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_api_openapi_import.py +0 -0
  452. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_array_items.py +0 -0
  453. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_athena_iceberg.py +0 -0
  454. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_azure_blob_file.py +0 -0
  455. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_clickhouse.py +0 -0
  456. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_diagnostics.py +0 -0
  457. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_duckdb.py +0 -0
  458. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_failed_samples.py +0 -0
  459. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_hana.py +0 -0
  460. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_hive.py +0 -0
  461. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_iceberg_s3tables.py +0 -0
  462. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_kafka.py +0 -0
  463. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_kafka_decoding.py +0 -0
  464. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_local_xml.py +0 -0
  465. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_metadata_only.py +0 -0
  466. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_output_json.py +0 -0
  467. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_output_junit.py +0 -0
  468. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_quality_id_and_tag_filter.py +0 -0
  469. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_quality_percent_severity.py +0 -0
  470. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_redshift.py +0 -0
  471. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_relationships.py +0 -0
  472. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_row_filter.py +0 -0
  473. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_s3_json_multiple_files.py +0 -0
  474. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_schema_evolution.py +0 -0
  475. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_server_not_found.py +0 -0
  476. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_soda_connection_error.py +0 -0
  477. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_test_variables.py +0 -0
  478. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_type_normalize.py +0 -0
  479. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_untrusted_contract.py +0 -0
  480. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_untrusted_contract_variables.py +0 -0
  481. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_variables.py +0 -0
  482. {datacontract_cli-1.2.4 → datacontract_cli-1.2.6}/tests/test_vector_type.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 1.2.4
3
+ Version: 1.2.6
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@entropy-data.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@entropy-data.com>
6
6
  License-Expression: MIT
@@ -29,7 +29,7 @@ Description-Content-Type: text/markdown
29
29
  License-File: LICENSE
30
30
  Requires-Dist: typer<0.28,>=0.18.0
31
31
  Requires-Dist: click<9.0.0,>=8.1.0
32
- Requires-Dist: pydantic<2.14.0,>=2.8.2
32
+ Requires-Dist: pydantic<2.15.0,>=2.8.2
33
33
  Requires-Dist: pydantic-settings<3.0.0,>=2.5.0
34
34
  Requires-Dist: pyyaml~=6.0.1
35
35
  Requires-Dist: ruamel.yaml<0.20,>=0.17
@@ -70,7 +70,7 @@ Requires-Dist: rich>=12.4.4; extra == "dataframe"
70
70
  Provides-Extra: databricks
71
71
  Requires-Dist: ibis-framework[databricks]<13.0.0,>=10.0.0; extra == "databricks"
72
72
  Requires-Dist: databricks-sql-connector<4.7.0,>=3.7.0; extra == "databricks"
73
- Requires-Dist: databricks-sdk<0.143.0; extra == "databricks"
73
+ Requires-Dist: databricks-sdk<0.152.0; extra == "databricks"
74
74
  Requires-Dist: packaging<27.0,>=21.3; extra == "databricks"
75
75
  Provides-Extra: databricks-runtime
76
76
  Requires-Dist: datacontract-cli[databricks]; extra == "databricks-runtime"
@@ -101,7 +101,7 @@ Requires-Dist: datacontract-cli[s3]; extra == "gcs"
101
101
  Provides-Extra: azure
102
102
  Requires-Dist: datacontract-cli[duckdb]; extra == "azure"
103
103
  Requires-Dist: duckdb-extension-azure<1.6.0,>=1.5.0; extra == "azure"
104
- Requires-Dist: azure-identity<1.26,>=1.17.1; extra == "azure"
104
+ Requires-Dist: azure-identity<1.27,>=1.17.1; extra == "azure"
105
105
  Requires-Dist: azure-storage-blob<12.31,>=12.24; extra == "azure"
106
106
  Provides-Extra: snowflake
107
107
  Requires-Dist: snowflake-connector-python[pandas]<4.9,>=3.6; extra == "snowflake"
@@ -161,12 +161,12 @@ Requires-Dist: pre-commit<4.7.0,>=3.7.1; extra == "dev"
161
161
  Requires-Dist: pytest; extra == "dev"
162
162
  Requires-Dist: pytest-cov; extra == "dev"
163
163
  Requires-Dist: pytest-xdist; extra == "dev"
164
- Requires-Dist: pymssql==2.4.2; extra == "dev"
164
+ Requires-Dist: pymssql==2.4.4; extra == "dev"
165
165
  Requires-Dist: psycopg2-binary<3.0,>=2.9; extra == "dev"
166
166
  Requires-Dist: mysql-connector-python<26.8.0,>=8.0.30; extra == "dev"
167
167
  Requires-Dist: ruff==0.16.10; extra == "dev"
168
168
  Requires-Dist: testcontainers[kafka,minio,mssql,mysql,postgres]==4.15.0; extra == "dev"
169
- Requires-Dist: trino==0.339.0; extra == "dev"
169
+ Requires-Dist: trino==0.340.0; extra == "dev"
170
170
  Dynamic: license-file
171
171
 
172
172
  # Data Contract CLI
@@ -183,6 +183,7 @@ Dynamic: license-file
183
183
  <a href="https://datacontract.com/slack" rel="nofollow"><img src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;style=social" alt="Slack Status" data-canonical-src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;style=social" style="max-width: 100%;"></a>
184
184
  </p>
185
185
 
186
+ **Turn your schemas into data contracts and test your data against them, on Snowflake, Databricks, BigQuery, Kafka, Postgres & 15 more. Open source, built on the Open Data Contract Standard.**
186
187
  The `datacontract` CLI is an open-source command-line tool for working with [data contracts](https://datacontract.com).
187
188
  It natively supports the [Open Data Contract Standard](https://bitol-io.github.io/open-data-contract-standard/latest/) to lint data contracts, connect to data sources and execute schema and quality tests, and export to different formats.
188
189
  The tool is written in Python.
@@ -12,6 +12,7 @@
12
12
  <a href="https://datacontract.com/slack" rel="nofollow"><img src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;style=social" alt="Slack Status" data-canonical-src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&amp;style=social" style="max-width: 100%;"></a>
13
13
  </p>
14
14
 
15
+ **Turn your schemas into data contracts and test your data against them, on Snowflake, Databricks, BigQuery, Kafka, Postgres & 15 more. Open source, built on the Open Data Contract Standard.**
15
16
  The `datacontract` CLI is an open-source command-line tool for working with [data contracts](https://datacontract.com).
16
17
  It natively supports the [Open Data Contract Standard](https://bitol-io.github.io/open-data-contract-standard/latest/) to lint data contracts, connect to data sources and execute schema and quality tests, and export to different formats.
17
18
  The tool is written in Python.
@@ -275,6 +275,8 @@ tenants. Send them over HTTPS only.
275
275
  See [Configuration](https://docs.datacontract.com/configuration) for the full list of options.
276
276
  """
277
277
 
278
+ # The endpoints are plain `def`, not `async def`: they block on data sources, and FastAPI runs
279
+ # plain functions in a thread pool, so one slow test does not stall every other request.
278
280
  app = FastAPI(
279
281
  docs_url="/",
280
282
  title="Data Contract CLI API",
@@ -763,7 +765,7 @@ handled. A contract that cannot be parsed is reported the same way, as a failed
763
765
  response_model_exclude_none=True,
764
766
  response_model_exclude_unset=True,
765
767
  )
766
- async def test(
768
+ def test(
767
769
  request: Request,
768
770
  body: Annotated[
769
771
  str,
@@ -870,7 +872,7 @@ violation — not as an error status. A `schema` that is not an `http(s)` URL is
870
872
  },
871
873
  },
872
874
  )
873
- async def lint(
875
+ def lint(
874
876
  body: Annotated[
875
877
  str,
876
878
  Body(
@@ -968,7 +970,7 @@ parsed is answered with `422`.
968
970
  },
969
971
  },
970
972
  )
971
- async def changelog_endpoint(
973
+ def changelog_endpoint(
972
974
  body: ChangelogRequest,
973
975
  api_key: Annotated[str | None, Depends(api_key_header)] = None,
974
976
  ) -> ChangelogResponse:
@@ -74,7 +74,29 @@ def _cli_version() -> str:
74
74
  return "unknown"
75
75
 
76
76
 
77
- def _generate_index_html(filename: str) -> str:
77
+ # The editor's AI assistant is configured via these environment variables (e.g., in .env).
78
+ # It is enabled when DATACONTRACT_EDITOR_AI_ENDPOINT is set.
79
+ EDITOR_AI_ENV_VARS = {
80
+ "provider": "DATACONTRACT_EDITOR_AI_PROVIDER",
81
+ "endpoint": "DATACONTRACT_EDITOR_AI_ENDPOINT",
82
+ "apiKey": "DATACONTRACT_EDITOR_AI_API_KEY",
83
+ "model": "DATACONTRACT_EDITOR_AI_MODEL",
84
+ "authHeader": "DATACONTRACT_EDITOR_AI_AUTH_HEADER",
85
+ }
86
+
87
+
88
+ def editor_ai_config() -> dict | None:
89
+ """Return the editor's AI assistant config from the environment, or None if no endpoint is set."""
90
+ if not os.getenv(EDITOR_AI_ENV_VARS["endpoint"]):
91
+ return None
92
+ ai = {"enabled": True}
93
+ for key, env_var in EDITOR_AI_ENV_VARS.items():
94
+ if os.getenv(env_var):
95
+ ai[key] = os.getenv(env_var)
96
+ return ai
97
+
98
+
99
+ def _generate_index_html(filename: str, ai_config: dict | None = None) -> str:
78
100
  """
79
101
  Generate the editor page: load the YAML from the local file API, write it back on
80
102
  save, and point the editor's test runner at this server's own /test endpoint.
@@ -82,8 +104,10 @@ def _generate_index_html(filename: str) -> str:
82
104
  The editor runs in EMBEDDED mode, since the file menu (New, Load Example, Open)
83
105
  makes no sense when the editor is bound to a single local file. The filename is
84
106
  shown in the header via titlePrefix, and Cancel reverts to the file on disk.
107
+ The AI assistant is configured if ai_config is given.
85
108
  """
86
109
  filename_js = json.dumps(filename)
110
+ ai_option = f"ai: {json.dumps(ai_config)}," if ai_config else ""
87
111
  file_api_path = f"/api/files/{quote(filename)}"
88
112
  return f"""<!doctype html>
89
113
  <html lang="en">
@@ -136,6 +160,7 @@ def _generate_index_html(filename: str) -> str:
136
160
  enabled: true,
137
161
  dataContractCliApiServerUrl: window.location.origin,
138
162
  }},
163
+ {ai_option}
139
164
  onCancel: async () => {{
140
165
  try {{
141
166
  const response = await fetch('{file_api_path}');
@@ -213,7 +238,7 @@ def create_app(
213
238
 
214
239
  @edit_app.get("/", response_class=HTMLResponse, include_in_schema=False)
215
240
  def index():
216
- return _generate_index_html(filename)
241
+ return _generate_index_html(filename, editor_ai_config())
217
242
 
218
243
  @edit_app.get(EDITOR_ASSETS_PATH + "/{asset_path:path}", include_in_schema=False)
219
244
  def editor_asset(asset_path: str):
@@ -337,6 +362,9 @@ def edit(
337
362
  the data contract tests locally against the servers defined in the data contract.
338
363
  Credentials for the data sources must be provided as environment variables, see
339
364
  https://docs.datacontract.com/testing
365
+ The editor's AI assistant is enabled by setting DATACONTRACT_EDITOR_AI_ENDPOINT, together with
366
+ DATACONTRACT_EDITOR_AI_API_KEY, DATACONTRACT_EDITOR_AI_MODEL, DATACONTRACT_EDITOR_AI_PROVIDER
367
+ (openai or anthropic), and DATACONTRACT_EDITOR_AI_AUTH_HEADER (bearer, api-key, or x-api-key).
340
368
  """
341
369
  enable_debug_logging(debug)
342
370
 
@@ -13,6 +13,9 @@ logger = logging.getLogger(__name__)
13
13
 
14
14
  _ENV_PREFIX = "DATACONTRACT_"
15
15
 
16
+ # Used by the drivers that would otherwise wait forever for an unresponsive data source.
17
+ DEFAULT_CONNECT_TIMEOUT = 30
18
+
16
19
  # Deprecated option (field name) -> replacement (field name). Single source for
17
20
  # the accessor warnings, the Snowflake connect synonyms, and the generated docs.
18
21
  DEPRECATED_OPTIONS = {
@@ -112,6 +115,7 @@ class Config(BaseSettings):
112
115
  api_header_authorization: SecretStr | None = None
113
116
  custom_quality_checks: str | None = None
114
117
  max_errors: int | None = None
118
+ connect_timeout: int | None = None
115
119
 
116
120
  # athena (credentials come from the s3_* options)
117
121
  # overrides for the contract's servers block
@@ -530,6 +534,11 @@ class Config(BaseSettings):
530
534
  def get_max_errors(self) -> int | None:
531
535
  return self._int_option("max_errors")
532
536
 
537
+ # --- connect timeout ---
538
+ def get_connect_timeout(self) -> int:
539
+ """Seconds to wait for a data source to accept a connection, for drivers that wait forever by default."""
540
+ return self._int_option("connect_timeout") or DEFAULT_CONNECT_TIMEOUT
541
+
533
542
  # --- athena ---
534
543
  def get_athena_catalog(self, required: bool = False) -> str | None:
535
544
  return self._str_option("athena_catalog", required)
@@ -32,6 +32,13 @@ from datacontract.model.run import Check, ResultEnum, Run
32
32
  logger = logging.getLogger(__name__)
33
33
 
34
34
 
35
+ def _warning_checks(warnings: list[DataContractException]) -> list[Check]:
36
+ return [
37
+ Check(type=warning.type, result=warning.result, name=warning.name, reason=warning.reason, engine=warning.engine)
38
+ for warning in warnings
39
+ ]
40
+
41
+
35
42
  def _unrunnable_rule_checks(data_contract: OpenDataContractStandard) -> list[Check]:
36
43
  """Warnings for quality rules `datacontract test` would not be able to run."""
37
44
  checks = []
@@ -150,7 +157,7 @@ class DataContract:
150
157
  run = Run.create_run()
151
158
  try:
152
159
  run.log_info("Linting data contract")
153
- data_contract, schema_version = resolve.resolve_data_contract_with_schema_version(
160
+ data_contract, schema_version, warnings = resolve.resolve_data_contract_with_lint_info(
154
161
  self._data_contract_file,
155
162
  self._data_contract_str,
156
163
  self._data_contract,
@@ -171,6 +178,7 @@ class DataContract:
171
178
  engine="datacontract-cli",
172
179
  )
173
180
  )
181
+ run.checks.extend(_warning_checks(warnings))
174
182
  run.checks.extend(_unrunnable_rule_checks(data_contract))
175
183
  run.dataContractId = data_contract.id
176
184
  run.dataContractVersion = data_contract.version
@@ -221,7 +229,7 @@ class DataContract:
221
229
  try:
222
230
  run.log_info("Testing data contract")
223
231
  run.log_info(self._runtime_info())
224
- data_contract = resolve.resolve_data_contract(
232
+ data_contract, _, warnings = resolve.resolve_data_contract_with_lint_info(
225
233
  self._data_contract_file,
226
234
  self._data_contract_str,
227
235
  self._data_contract,
@@ -230,6 +238,7 @@ class DataContract:
230
238
  config=self._config,
231
239
  configured_host_only=self._untrusted_contract,
232
240
  )
241
+ run.checks.extend(_warning_checks(warnings))
233
242
 
234
243
  execute_data_contract_test(
235
244
  data_contract,