datacontract-cli 1.0.17__tar.gz → 1.1.0__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 (450) hide show
  1. {datacontract_cli-1.0.17/datacontract_cli.egg-info → datacontract_cli-1.1.0}/PKG-INFO +40 -33
  2. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/README.md +2 -13
  3. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/config/settings.py +8 -0
  4. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/create_checks.py +2 -1
  5. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/connect.py +38 -14
  6. datacontract_cli-1.1.0/datacontract/engines/ibis/connections/kafka.py +609 -0
  7. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/great_expectations_exporter.py +1 -1
  8. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/spark_exporter.py +193 -76
  9. datacontract_cli-1.1.0/datacontract/imports/spark_type_json.py +122 -0
  10. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/unity_importer.py +11 -16
  11. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0/datacontract_cli.egg-info}/PKG-INFO +40 -33
  12. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract_cli.egg-info/SOURCES.txt +3 -2
  13. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract_cli.egg-info/requires.txt +19 -17
  14. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/pyproject.toml +86 -44
  15. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_sodacl.py +34 -1
  16. datacontract_cli-1.1.0/tests/test_export_spark.py +191 -0
  17. datacontract_cli-1.1.0/tests/test_import_spark_type_json.py +129 -0
  18. datacontract_cli-1.1.0/tests/test_test_databricks.py +53 -0
  19. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_kafka.py +3 -13
  20. datacontract_cli-1.1.0/tests/test_test_kafka_decoding.py +212 -0
  21. datacontract_cli-1.0.17/datacontract/engines/ibis/connections/kafka.py +0 -441
  22. datacontract_cli-1.0.17/tests/test_export_spark.py +0 -180
  23. datacontract_cli-1.0.17/tests/test_import_spark.py +0 -219
  24. datacontract_cli-1.0.17/tests/test_test_databricks.py +0 -27
  25. datacontract_cli-1.0.17/tests/test_test_dataframe.py +0 -200
  26. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/LICENSE +0 -0
  27. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/MANIFEST.in +0 -0
  28. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/__init__.py +0 -0
  29. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/api.py +0 -0
  30. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/catalog/catalog.py +0 -0
  31. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/changelog/__init__.py +0 -0
  32. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/changelog/changelog.py +0 -0
  33. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/changelog/normalize.py +0 -0
  34. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/cli.py +0 -0
  35. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_api.py +0 -0
  36. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_catalog.py +0 -0
  37. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_changelog.py +0 -0
  38. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_ci.py +0 -0
  39. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_dbt.py +0 -0
  40. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_edit.py +0 -0
  41. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_export.py +0 -0
  42. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_import.py +0 -0
  43. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_init.py +0 -0
  44. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_lint.py +0 -0
  45. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_publish.py +0 -0
  46. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/command_test.py +0 -0
  47. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/config/__init__.py +0 -0
  48. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/config/cli_context.py +0 -0
  49. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/data_contract.py +0 -0
  50. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/VERSION +0 -0
  51. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/abap-Bs8kvjsq.js +0 -0
  52. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/apex-Dspwrl5m.js +0 -0
  53. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/assets/editor.worker-4.7.0.js +0 -0
  54. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/assets/yaml.worker-4.7.0.js +0 -0
  55. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/azcli-k1BiOau1.js +0 -0
  56. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/bat-BIP72KWc.js +0 -0
  57. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/bicep-VhQeYhS3.js +0 -0
  58. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/cameligo-DnuAXtHg.js +0 -0
  59. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/clojure-BAuDPsal.js +0 -0
  60. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/coffee-BV06qSnj.js +0 -0
  61. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/cpp-Cz8Jeyrf.js +0 -0
  62. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/csharp-F6hhlXFb.js +0 -0
  63. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/csp-KzlEHCyI.js +0 -0
  64. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/css-e4FKntZ3.js +0 -0
  65. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/cssMode-BNkTa2xp.js +0 -0
  66. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/cypher-CpvDGKRr.js +0 -0
  67. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/dart-DdHeFWR0.js +0 -0
  68. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/datacontract-editor.css +0 -0
  69. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/datacontract-editor.es.js +0 -0
  70. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/dockerfile-aoNXDcio.js +0 -0
  71. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/ecl-C4Q0DYuA.js +0 -0
  72. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/elixir-C9X42b0T.js +0 -0
  73. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/flow9-Bff42pfB.js +0 -0
  74. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/freemarker2-Dyfzmb5A.js +0 -0
  75. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/fsharp-C6vPAsHG.js +0 -0
  76. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/go-DEr8zx9f.js +0 -0
  77. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/graphql-BiNBBRFh.js +0 -0
  78. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/handlebars-BtDNI-uC.js +0 -0
  79. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/hcl-2T9lKuFg.js +0 -0
  80. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/html-Cn4TGw_o.js +0 -0
  81. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/htmlMode-Bf84vbo2.js +0 -0
  82. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/index.html +0 -0
  83. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/ini-CZGtssYM.js +0 -0
  84. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/java-B260NeH3.js +0 -0
  85. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/javascript-B86Kac07.js +0 -0
  86. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/jsonMode-Ckgg5lAE.js +0 -0
  87. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/julia-kuNLM9c5.js +0 -0
  88. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/kotlin-Bz6kAefA.js +0 -0
  89. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/less-AZUtS89I.js +0 -0
  90. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/lexon-BcmgnyRb.js +0 -0
  91. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/liquid-D0NPwuu_.js +0 -0
  92. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/logo_fuchsia_v2.svg +0 -0
  93. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/lua-Dz1RbATg.js +0 -0
  94. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/m3-CIMooLFn.js +0 -0
  95. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/markdown-C1BsCK9P.js +0 -0
  96. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/mdx-QFRSBtVQ.js +0 -0
  97. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/mips-BovsnfLQ.js +0 -0
  98. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/monaco-4.7.0.js +0 -0
  99. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/msdax-CiRB2ZB-.js +0 -0
  100. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/mysql-BwdpPE19.js +0 -0
  101. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/objective-c-D4nfHfso.js +0 -0
  102. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/odcs.svg +0 -0
  103. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/pascal--j5-PYtz.js +0 -0
  104. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/pascaligo-C7TcJxNL.js +0 -0
  105. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/perl-BzEWqUb5.js +0 -0
  106. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/pgsql-B_KZ0mGX.js +0 -0
  107. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/php-A19QHzQV.js +0 -0
  108. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/pla-COeKY1hA.js +0 -0
  109. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/postiats-BfMp7zJL.js +0 -0
  110. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/powerquery-B0TS_5Gb.js +0 -0
  111. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/powershell-5jSbKdYB.js +0 -0
  112. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/protobuf-YgnOutn3.js +0 -0
  113. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/pug-DLej6kn5.js +0 -0
  114. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/python-C8RW9B6A.js +0 -0
  115. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/qsharp-AhjqtSHB.js +0 -0
  116. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/r-D-F4P80w.js +0 -0
  117. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/razor-CLZqdY_r.js +0 -0
  118. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/redis-hwwIlMnV.js +0 -0
  119. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/redshift-Bcm_kjEG.js +0 -0
  120. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/restructuredtext-CrdzfPP-.js +0 -0
  121. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/ruby-QC2UNm1s.js +0 -0
  122. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/rust-5aqiQ3L5.js +0 -0
  123. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/sb-B1g1ZfLJ.js +0 -0
  124. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/scala-C2U4R5Gb.js +0 -0
  125. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/scheme-DeFRbslr.js +0 -0
  126. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/scss-RSTCiCmI.js +0 -0
  127. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/shell-BpF-iNu8.js +0 -0
  128. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/solidity-C00r2mbQ.js +0 -0
  129. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/sophia-DVW5ZKDB.js +0 -0
  130. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/sparql-B0nmpxeX.js +0 -0
  131. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/sql-CJwKPERn.js +0 -0
  132. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/st-DPlKG5DT.js +0 -0
  133. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/swift-YZBAbVHV.js +0 -0
  134. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/systemverilog-CDQSaH63.js +0 -0
  135. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/tcl-Dlu8sp6Q.js +0 -0
  136. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/tsMode-yleMwhPq.js +0 -0
  137. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/twig-C5TO7-kw.js +0 -0
  138. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/typescript-CJBeebKU.js +0 -0
  139. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/typespec-BsmjDEu7.js +0 -0
  140. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/vb-ChHvIDrk.js +0 -0
  141. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/wgsl-XEp1ju8c.js +0 -0
  142. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/xml-vC-NMVX1.js +0 -0
  143. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/editor_assets/yaml-Dlf2VF-T.js +0 -0
  144. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/__init__.py +0 -0
  145. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/__init__.py +0 -0
  146. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/check_filter.py +0 -0
  147. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/check_spec.py +0 -0
  148. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/dimensions.py +0 -0
  149. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/physical_type_match.py +0 -0
  150. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/checks/type_normalize.py +0 -0
  151. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/data_contract_test.py +0 -0
  152. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/datacontract/check_azure_blob_file.py +0 -0
  153. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  154. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  155. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  156. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  157. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/__init__.py +0 -0
  158. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/__init__.py +0 -0
  159. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/aws_credentials.py +0 -0
  160. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/duckdb_connection.py +0 -0
  161. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/oracle_patch.py +0 -0
  162. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/redshift_credentials.py +0 -0
  163. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/connections/redshift_patch.py +0 -0
  164. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/dtype_category.py +0 -0
  165. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/ibis_check_execute.py +0 -0
  166. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/native_type.py +0 -0
  167. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/engines/ibis/snowflake_structured_types.py +0 -0
  168. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/__init__.py +0 -0
  169. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/avro_exporter.py +0 -0
  170. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/avro_idl_exporter.py +0 -0
  171. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/bigquery_exporter.py +0 -0
  172. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/custom_exporter.py +0 -0
  173. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/data_caterer_exporter.py +0 -0
  174. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/dbml_exporter.py +0 -0
  175. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/dbt_exporter.py +0 -0
  176. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/dcs_exporter.py +0 -0
  177. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/dqx_exporter.py +0 -0
  178. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/duckdb_type_converter.py +0 -0
  179. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/excel_exporter.py +0 -0
  180. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/exporter.py +0 -0
  181. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/exporter_factory.py +0 -0
  182. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/go_exporter.py +0 -0
  183. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/html_exporter.py +0 -0
  184. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/iceberg_exporter.py +0 -0
  185. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/jsonschema_exporter.py +0 -0
  186. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/markdown_exporter.py +0 -0
  187. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/mermaid_exporter.py +0 -0
  188. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/odcs_export_helper.py +0 -0
  189. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/odcs_v3_exporter.py +0 -0
  190. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/pandas_type_converter.py +0 -0
  191. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/protobuf_exporter.py +0 -0
  192. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/pydantic_exporter.py +0 -0
  193. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/rdf_exporter.py +0 -0
  194. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/sodacl_check_builder.py +0 -0
  195. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/sodacl_exporter.py +0 -0
  196. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/sql_exporter.py +0 -0
  197. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/sql_type_converter.py +0 -0
  198. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/export/sqlalchemy_exporter.py +0 -0
  199. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/athena_importer.py +0 -0
  200. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/avro_importer.py +0 -0
  201. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/bigquery_importer.py +0 -0
  202. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/csv_importer.py +0 -0
  203. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/dbml_importer.py +0 -0
  204. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/dbt_importer.py +0 -0
  205. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/dcs_importer.py +0 -0
  206. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/excel_importer.py +0 -0
  207. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/glue_importer.py +0 -0
  208. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/iceberg_importer.py +0 -0
  209. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/importer.py +0 -0
  210. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/importer_factory.py +0 -0
  211. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/json_importer.py +0 -0
  212. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/jsonschema_importer.py +0 -0
  213. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/mysql_importer.py +0 -0
  214. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/object_storage_importer.py +0 -0
  215. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/odcs_helper.py +0 -0
  216. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/odcs_importer.py +0 -0
  217. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/oracle_importer.py +0 -0
  218. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/parquet_importer.py +0 -0
  219. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/postgres_importer.py +0 -0
  220. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/powerbi_importer.py +0 -0
  221. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/protobuf_importer.py +0 -0
  222. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/redshift_importer.py +0 -0
  223. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/snowflake_importer.py +0 -0
  224. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/spark_importer.py +0 -0
  225. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/sql_importer.py +0 -0
  226. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/sqlserver_importer.py +0 -0
  227. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/imports/trino_importer.py +0 -0
  228. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/init/init_template.py +0 -0
  229. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/integration/dbt_sync.py +0 -0
  230. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/integration/dbt_test_mapping.py +0 -0
  231. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/integration/entropy_data.py +0 -0
  232. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/files.py +0 -0
  233. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/resolve.py +0 -0
  234. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/resources.py +0 -0
  235. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/s3.py +0 -0
  236. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/schema.py +0 -0
  237. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/lint/urls.py +0 -0
  238. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/model/changelog.py +0 -0
  239. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/model/exceptions.py +0 -0
  240. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/model/odcs.py +0 -0
  241. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/model/run.py +0 -0
  242. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/model/server.py +0 -0
  243. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/__init__.py +0 -0
  244. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/ci_output.py +0 -0
  245. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/json_test_results.py +0 -0
  246. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/junit_test_results.py +0 -0
  247. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/output_format.py +0 -0
  248. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/test_results_writer.py +0 -0
  249. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/output/text_changelog_results.py +0 -0
  250. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/py.typed +0 -0
  251. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  252. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  253. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
  254. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
  255. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.2.1.init.yaml +0 -0
  256. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/datacontract-1.2.1.schema.json +0 -0
  257. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  258. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/odcs-3.0.2.schema.json +0 -0
  259. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/odcs-3.1.0.init.yaml +0 -0
  260. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/schemas/odcs-3.1.0.schema.json +0 -0
  261. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/datacontract.html +0 -0
  262. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/datacontract_odcs.html +0 -0
  263. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/index.html +0 -0
  264. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/macros/authoritative_definitions.html +0 -0
  265. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/macros/schema.html +0 -0
  266. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/macros/server.html +0 -0
  267. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/macros/support.html +0 -0
  268. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/datacontract_information.html +0 -0
  269. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  270. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/datacontract_terms.html +0 -0
  271. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/definition.html +0 -0
  272. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/example.html +0 -0
  273. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/model_field.html +0 -0
  274. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/quality.html +0 -0
  275. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials/server.html +0 -0
  276. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/custom_properties.html +0 -0
  277. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/diagram.html +0 -0
  278. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/dialog_yaml.html +0 -0
  279. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/footer.html +0 -0
  280. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/fundamentals.html +0 -0
  281. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/header.html +0 -0
  282. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/pricing.html +0 -0
  283. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/roles.html +0 -0
  284. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/schema.html +0 -0
  285. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/servers.html +0 -0
  286. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/sla.html +0 -0
  287. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/support.html +0 -0
  288. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/team.html +0 -0
  289. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/term_of_use.html +0 -0
  290. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/partials_odcs/title.html +0 -0
  291. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract/templates/style/output.css +0 -0
  292. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  293. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract_cli.egg-info/entry_points.txt +0 -0
  294. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/datacontract_cli.egg-info/top_level.txt +0 -0
  295. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/setup.cfg +0 -0
  296. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_api.py +0 -0
  297. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_catalog.py +0 -0
  298. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_changelog.py +0 -0
  299. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_changelog_engine.py +0 -0
  300. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_changelog_normalize.py +0 -0
  301. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_changelog_output_text.py +0 -0
  302. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_ci_output.py +0 -0
  303. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_cli.py +0 -0
  304. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_config.py +0 -0
  305. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_config_file.py +0 -0
  306. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_config_require.py +0 -0
  307. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_config_threading.py +0 -0
  308. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_athena.py +0 -0
  309. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_bigquery.py +0 -0
  310. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_databricks.py +0 -0
  311. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_impala.py +0 -0
  312. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_mysql.py +0 -0
  313. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_oracle.py +0 -0
  314. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_postgres.py +0 -0
  315. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_redshift.py +0 -0
  316. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_s3_credentials.py +0 -0
  317. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_snowflake.py +0 -0
  318. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_sqlserver.py +0 -0
  319. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_connect_trino.py +0 -0
  320. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_create_checks_nested_type.py +0 -0
  321. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_create_checks_physical_type.py +0 -0
  322. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_create_checks_primary_key.py +0 -0
  323. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_data_contract.py +0 -0
  324. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_data_contract_checks.py +0 -0
  325. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_data_contract_specification.py +0 -0
  326. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_dbt_sync.py +0 -0
  327. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_dbt_test_mapping.py +0 -0
  328. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_description_linter.py +0 -0
  329. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_docs_commands.py +0 -0
  330. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_docs_config_options.py +0 -0
  331. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_docs_ordering.py +0 -0
  332. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_download_datacontract_file.py +0 -0
  333. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_dtype_category.py +0 -0
  334. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_duckdb_json.py +0 -0
  335. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_edit.py +0 -0
  336. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_avro.py +0 -0
  337. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_avro_idl.py +0 -0
  338. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_bigquery.py +0 -0
  339. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_complex_data_contract.py +0 -0
  340. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_custom.py +0 -0
  341. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_custom_exporter.py +0 -0
  342. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_custom_model.py +0 -0
  343. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_data_caterer.py +0 -0
  344. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_dbml.py +0 -0
  345. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_dbt_models.py +0 -0
  346. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_dbt_sources.py +0 -0
  347. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_dbt_staging_sql.py +0 -0
  348. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_dqx.py +0 -0
  349. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_excel.py +0 -0
  350. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_go.py +0 -0
  351. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_great_expectations.py +0 -0
  352. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_html.py +0 -0
  353. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_iceberg.py +0 -0
  354. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_jsonschema.py +0 -0
  355. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_markdown.py +0 -0
  356. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_mermaid.py +0 -0
  357. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_odcs_v3.py +0 -0
  358. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_protobuf.py +0 -0
  359. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_pydantic.py +0 -0
  360. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_rdf.py +0 -0
  361. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_sql.py +0 -0
  362. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_sql_clickhouse.py +0 -0
  363. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_sql_query.py +0 -0
  364. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_export_sqlalchemy.py +0 -0
  365. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_ibis_mssql_pattern.py +0 -0
  366. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_ibis_mssql_schema.py +0 -0
  367. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_ibis_oracle_schema.py +0 -0
  368. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_athena.py +0 -0
  369. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_avro.py +0 -0
  370. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_bigquery.py +0 -0
  371. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_csv.py +0 -0
  372. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_dbml.py +0 -0
  373. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_dbt.py +0 -0
  374. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_excel.py +0 -0
  375. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_glue.py +0 -0
  376. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_iceberg.py +0 -0
  377. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_json.py +0 -0
  378. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_jsonschema.py +0 -0
  379. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_mysql.py +0 -0
  380. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_object_storage.py +0 -0
  381. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_odcs_v3.py +0 -0
  382. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_oracle.py +0 -0
  383. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_parquet.py +0 -0
  384. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_postgres.py +0 -0
  385. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_powerbi.py +0 -0
  386. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_protobuf.py +0 -0
  387. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_redshift.py +0 -0
  388. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_snowflake.py +0 -0
  389. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_sql_oracle.py +0 -0
  390. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_sql_postgres.py +0 -0
  391. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_sql_snowflake.py +0 -0
  392. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_sql_sqlserver.py +0 -0
  393. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_sqlserver.py +0 -0
  394. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_trino.py +0 -0
  395. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_import_unity_file.py +0 -0
  396. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_install_extras.py +0 -0
  397. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_integration_entropydata.py +0 -0
  398. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_lint.py +0 -0
  399. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_native_type_schema_scope.py +0 -0
  400. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_oracle_patch.py +0 -0
  401. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_physical_type_match.py +0 -0
  402. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_redshift_credentials.py +0 -0
  403. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_redshift_patch.py +0 -0
  404. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_resolve.py +0 -0
  405. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_resolve_definitions.py +0 -0
  406. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_roundtrip_jsonschema.py +0 -0
  407. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_server_type_mssql.py +0 -0
  408. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_snowflake_structured_types.py +0 -0
  409. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_sql_type_converter_physicaltype.py +0 -0
  410. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_api.py +0 -0
  411. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_athena_iceberg.py +0 -0
  412. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_azure_blob_file.py +0 -0
  413. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_azure_remote.py +0 -0
  414. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_bigquery.py +0 -0
  415. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_checks_filter.py +0 -0
  416. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_delta.py +0 -0
  417. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_diagnostics.py +0 -0
  418. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_dimension_filter.py +0 -0
  419. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_failed_samples.py +0 -0
  420. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_gcs_csv_remote.py +0 -0
  421. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_gcs_json_remote.py +0 -0
  422. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_kafka_remote.py +0 -0
  423. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_local_json.py +0 -0
  424. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_local_json_nd.py +0 -0
  425. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_mysql.py +0 -0
  426. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_oracle.py +0 -0
  427. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_oracle_xe.py +0 -0
  428. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_output_json.py +0 -0
  429. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_output_junit.py +0 -0
  430. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_parquet.py +0 -0
  431. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_postgres.py +0 -0
  432. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_quality.py +0 -0
  433. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_quality_id_and_tag_filter.py +0 -0
  434. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_quality_local_fallback.py +0 -0
  435. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_quality_percent_severity.py +0 -0
  436. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_redshift.py +0 -0
  437. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_row_filter.py +0 -0
  438. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_csv.py +0 -0
  439. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_delta.py +0 -0
  440. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_json.py +0 -0
  441. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_json_complex.py +0 -0
  442. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_json_multiple_models.py +0 -0
  443. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_s3_json_remote.py +0 -0
  444. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_schema_evolution.py +0 -0
  445. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_server_not_found.py +0 -0
  446. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_snowflake.py +0 -0
  447. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_soda_connection_error.py +0 -0
  448. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_sqlserver.py +0 -0
  449. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_test_trino.py +0 -0
  450. {datacontract_cli-1.0.17 → datacontract_cli-1.1.0}/tests/test_type_normalize.py +0 -0
@@ -1,13 +1,29 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 1.0.17
3
+ Version: 1.1.0
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
- Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
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
7
7
  Project-URL: Homepage, https://cli.datacontract.com
8
+ Project-URL: Documentation, https://docs.datacontract.com
9
+ Project-URL: Repository, https://github.com/datacontract/datacontract-cli
8
10
  Project-URL: Issues, https://github.com/datacontract/datacontract-cli/issues
9
- Classifier: Programming Language :: Python :: 3
11
+ Project-URL: Changelog, https://docs.datacontract.com/release-notes
12
+ Keywords: data-contract,data-contracts,odcs,open-data-contract-standard,data-quality,data-governance,data-mesh,data-product,data-engineering,schema,dbt,snowflake,databricks,bigquery
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Information Technology
10
17
  Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Database
25
+ Classifier: Topic :: Software Development :: Quality Assurance
26
+ Classifier: Topic :: Software Development :: Testing
11
27
  Requires-Python: <3.15,>=3.10
12
28
  Description-Content-Type: text/markdown
13
29
  License-File: LICENSE
@@ -41,24 +57,26 @@ Requires-Dist: pandas>=2.0.0; extra == "csv"
41
57
  Provides-Extra: excel
42
58
  Requires-Dist: openpyxl<4.0.0,>=3.1.5; extra == "excel"
43
59
  Provides-Extra: dataframe
44
- Requires-Dist: ibis-framework[pyspark]<13.0.0,>=10.0.0; extra == "dataframe"
45
- Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "dataframe"
60
+ Requires-Dist: ibis-framework<13.0.0,>=10.0.0; extra == "dataframe"
61
+ Requires-Dist: numpy<3,>=1.23.2; extra == "dataframe"
62
+ Requires-Dist: packaging<27.0,>=21.3; extra == "dataframe"
63
+ Requires-Dist: pandas<4,>=1.5.3; extra == "dataframe"
64
+ Requires-Dist: pyarrow>=10.0.1; extra == "dataframe"
65
+ Requires-Dist: pyarrow-hotfix>=0.4; extra == "dataframe"
66
+ Requires-Dist: rich>=12.4.4; extra == "dataframe"
46
67
  Provides-Extra: databricks
47
- Requires-Dist: ibis-framework[databricks,pyspark]<13.0.0,>=10.0.0; extra == "databricks"
68
+ Requires-Dist: ibis-framework[databricks]<13.0.0,>=10.0.0; extra == "databricks"
48
69
  Requires-Dist: databricks-sql-connector<4.5.0,>=3.7.0; extra == "databricks"
49
70
  Requires-Dist: databricks-sdk<0.123.0; extra == "databricks"
50
- Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "databricks"
71
+ Requires-Dist: packaging<27.0,>=21.3; extra == "databricks"
51
72
  Provides-Extra: databricks-runtime
52
- Requires-Dist: ibis-framework[databricks]<13.0.0,>=10.0.0; extra == "databricks-runtime"
53
- Requires-Dist: databricks-sql-connector<4.5.0,>=3.7.0; extra == "databricks-runtime"
54
- Requires-Dist: databricks-sdk<0.123.0; extra == "databricks-runtime"
55
- Requires-Dist: packaging<27.0,>=21.3; extra == "databricks-runtime"
73
+ Requires-Dist: datacontract-cli[databricks]; extra == "databricks-runtime"
56
74
  Provides-Extra: iceberg
57
75
  Requires-Dist: pyiceberg==0.11.1; extra == "iceberg"
58
76
  Provides-Extra: kafka
59
- Requires-Dist: datacontract-cli[avro]; extra == "kafka"
60
- Requires-Dist: ibis-framework[pyspark]<13.0.0,>=10.0.0; extra == "kafka"
61
- Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "kafka"
77
+ Requires-Dist: datacontract-cli[duckdb,parquet]; extra == "kafka"
78
+ Requires-Dist: confluent-kafka<3.0.0,>=2.6.0; extra == "kafka"
79
+ Requires-Dist: fastavro<2.0.0,>=1.9.7; extra == "kafka"
62
80
  Provides-Extra: mysql
63
81
  Requires-Dist: datacontract-cli[duckdb]; extra == "mysql"
64
82
  Provides-Extra: postgres
@@ -109,12 +127,12 @@ Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
109
127
  Provides-Extra: rdf
110
128
  Requires-Dist: rdflib==7.6.0; extra == "rdf"
111
129
  Provides-Extra: api
112
- Requires-Dist: fastapi<0.141.0,>=0.115.0; extra == "api"
113
- Requires-Dist: uvicorn<0.52.0,>=0.44.0; extra == "api"
130
+ Requires-Dist: fastapi<0.142.0,>=0.115.0; extra == "api"
131
+ Requires-Dist: uvicorn<0.53.0,>=0.44.0; extra == "api"
114
132
  Provides-Extra: protobuf
115
133
  Requires-Dist: proto-schema-parser<3.0,>=1.0; extra == "protobuf"
116
134
  Provides-Extra: all
117
- Requires-Dist: datacontract-cli[api,athena,azure,bigquery,csv,databricks,dataframe,dbml,duckdb,excel,gcs,iceberg,impala,kafka,mysql,oracle,parquet,postgres,protobuf,rdf,redshift,s3,snowflake,sqlserver,trino]; extra == "all"
135
+ Requires-Dist: datacontract-cli[api,athena,avro,azure,bigquery,csv,databricks,dataframe,dbml,duckdb,excel,gcs,iceberg,impala,kafka,mysql,oracle,parquet,postgres,protobuf,rdf,redshift,s3,snowflake,sqlserver,trino]; extra == "all"
118
136
  Provides-Extra: dev
119
137
  Requires-Dist: datacontract-cli[all]; extra == "dev"
120
138
  Requires-Dist: httpx==0.28.1; extra == "dev"
@@ -127,9 +145,9 @@ Requires-Dist: pytest; extra == "dev"
127
145
  Requires-Dist: pytest-xdist; extra == "dev"
128
146
  Requires-Dist: pymssql==2.3.13; extra == "dev"
129
147
  Requires-Dist: psycopg2-binary<3.0,>=2.9; extra == "dev"
130
- Requires-Dist: mysql-connector-python<9.7.0,>=8.0.30; extra == "dev"
131
- Requires-Dist: ruff==0.16.0; extra == "dev"
132
- Requires-Dist: testcontainers[kafka,minio,mssql,mysql,postgres]==4.14.2; extra == "dev"
148
+ Requires-Dist: mysql-connector-python<26.8.0,>=8.0.30; extra == "dev"
149
+ Requires-Dist: ruff==0.16.1; extra == "dev"
150
+ Requires-Dist: testcontainers[kafka,minio,mssql,mysql,postgres]==4.15.0; extra == "dev"
133
151
  Requires-Dist: trino==0.338.0; extra == "dev"
134
152
  Dynamic: license-file
135
153
 
@@ -402,8 +420,8 @@ A list of available extras:
402
420
  | Google BigQuery | `pip install datacontract-cli[bigquery]` |
403
421
  | CSV | `pip install datacontract-cli[csv]` |
404
422
  | Databricks Integration | `pip install datacontract-cli[databricks]` |
405
- | Databricks Runtime | `pip install datacontract-cli[databricks-runtime]` (inside Databricks, where the cluster provides PySpark) |
406
- | DataFrame (Spark) | `pip install datacontract-cli[dataframe]` |
423
+ | Databricks Runtime | `pip install datacontract-cli[databricks]` (also inside Databricks, using the cluster's own Spark session) |
424
+ | DataFrame (Spark) | `pip install datacontract-cli[dataframe]` (PySpark not included — you supply the Spark session) |
407
425
  | DBML | `pip install datacontract-cli[dbml]` |
408
426
  | DuckDB (local/S3/GCS/Azure file testing) | `pip install datacontract-cli[duckdb]` |
409
427
  | Excel | `pip install datacontract-cli[excel]` |
@@ -444,11 +462,9 @@ It covers everything in depth, including the complete command reference:
444
462
 
445
463
  - Install [uv](https://docs.astral.sh/uv/)
446
464
  - Python base interpreter should be 3.11.x.
447
- - A JDK (17 or 21) must be installed for the Spark-based tests (e.g. `test_test_kafka.py`, `test_test_delta.py`, `test_test_dataframe.py`, `test_import_spark.py`). Java 25 is not yet supported. On macOS and Linux you can install one with [SDKMAN](https://sdkman.io): `sdk install java 21.0.11-tem` (or any 21.x build from `sdk list java`). Verify with `java --version`.
448
465
  - Docker engine must be running to execute the tests.
449
466
 
450
467
  ```bash
451
- sdk use java 21.0.11-tem
452
468
  uv python pin 3.11
453
469
  uv venv
454
470
  uv pip install -e '.[dev]'
@@ -481,15 +497,6 @@ Try to sync all groups:
481
497
  uv sync --all-groups --all-extras
482
498
  ```
483
499
 
484
- #### Errors in tests that use PySpark (e.g. test_test_kafka.py)
485
-
486
- Ensure you have a JDK 17 or 21 installed. Java 25 causes issues.
487
-
488
- ```
489
- java --version
490
- ```
491
-
492
-
493
500
  ### Docker Build
494
501
 
495
502
  ```bash
@@ -267,8 +267,8 @@ A list of available extras:
267
267
  | Google BigQuery | `pip install datacontract-cli[bigquery]` |
268
268
  | CSV | `pip install datacontract-cli[csv]` |
269
269
  | Databricks Integration | `pip install datacontract-cli[databricks]` |
270
- | Databricks Runtime | `pip install datacontract-cli[databricks-runtime]` (inside Databricks, where the cluster provides PySpark) |
271
- | DataFrame (Spark) | `pip install datacontract-cli[dataframe]` |
270
+ | Databricks Runtime | `pip install datacontract-cli[databricks]` (also inside Databricks, using the cluster's own Spark session) |
271
+ | DataFrame (Spark) | `pip install datacontract-cli[dataframe]` (PySpark not included — you supply the Spark session) |
272
272
  | DBML | `pip install datacontract-cli[dbml]` |
273
273
  | DuckDB (local/S3/GCS/Azure file testing) | `pip install datacontract-cli[duckdb]` |
274
274
  | Excel | `pip install datacontract-cli[excel]` |
@@ -309,11 +309,9 @@ It covers everything in depth, including the complete command reference:
309
309
 
310
310
  - Install [uv](https://docs.astral.sh/uv/)
311
311
  - Python base interpreter should be 3.11.x.
312
- - A JDK (17 or 21) must be installed for the Spark-based tests (e.g. `test_test_kafka.py`, `test_test_delta.py`, `test_test_dataframe.py`, `test_import_spark.py`). Java 25 is not yet supported. On macOS and Linux you can install one with [SDKMAN](https://sdkman.io): `sdk install java 21.0.11-tem` (or any 21.x build from `sdk list java`). Verify with `java --version`.
313
312
  - Docker engine must be running to execute the tests.
314
313
 
315
314
  ```bash
316
- sdk use java 21.0.11-tem
317
315
  uv python pin 3.11
318
316
  uv venv
319
317
  uv pip install -e '.[dev]'
@@ -346,15 +344,6 @@ Try to sync all groups:
346
344
  uv sync --all-groups --all-extras
347
345
  ```
348
346
 
349
- #### Errors in tests that use PySpark (e.g. test_test_kafka.py)
350
-
351
- Ensure you have a JDK 17 or 21 installed. Java 25 causes issues.
352
-
353
- ```
354
- java --version
355
- ```
356
-
357
-
358
347
  ### Docker Build
359
348
 
360
349
  ```bash
@@ -153,6 +153,8 @@ class Config(BaseSettings):
153
153
  kafka_schema_registry_url: str | None = None
154
154
  kafka_schema_registry_username: str | None = None
155
155
  kafka_schema_registry_password: SecretStr | None = None
156
+ kafka_max_messages: int | None = None
157
+ kafka_timeout: int | None = None
156
158
 
157
159
  # mysql
158
160
  mysql_username: str | None = None
@@ -558,6 +560,12 @@ class Config(BaseSettings):
558
560
  def get_kafka_schema_registry_password(self, required: bool = False) -> str | None:
559
561
  return self._str_option("kafka_schema_registry_password", required)
560
562
 
563
+ def get_kafka_max_messages(self) -> int | None:
564
+ return self._int_option("kafka_max_messages")
565
+
566
+ def get_kafka_timeout(self) -> int | None:
567
+ return self._int_option("kafka_timeout")
568
+
561
569
  # --- mysql ---
562
570
  def get_mysql_username(self, required: bool = False) -> str | None:
563
571
  return self._str_option("mysql_username", required)
@@ -48,7 +48,8 @@ def is_check_types(server: Optional[Server]) -> bool:
48
48
 
49
49
 
50
50
  def to_schema_name(schema_object: SchemaObject, server_type: Optional[str]) -> str:
51
- # Kafka uses the Spark SQL view name (the logical name), not the topic (physicalName).
51
+ # Kafka messages are loaded into a table named after the schema object (the logical
52
+ # name), not after the topic the physicalName holds.
52
53
  if server_type == "kafka":
53
54
  return schema_object.name
54
55
  if schema_object.physicalName:
@@ -2,10 +2,11 @@
2
2
 
3
3
  Replaces the per-source soda configuration builders. Each branch maps the
4
4
  ``Server`` fields and the same ``DATACONTRACT_*`` environment variables the soda
5
- connections used onto an ``ibis.<backend>.connect(...)`` call. File sources
6
- reuse the DuckDB view builder (``duckdb_connection.py``) and Spark sources reuse
7
- the Spark/Kafka helpers (``kafka.py``), wrapping the resulting connection/session
8
- with the ibis duckdb / pyspark backend.
5
+ connections used onto an ``ibis.<backend>.connect(...)`` call. File sources reuse
6
+ the DuckDB view builder (``duckdb_connection.py``) and Kafka reuses the topic
7
+ reader (``kafka.py``), which likewise loads its messages into DuckDB; both are
8
+ wrapped with the ibis duckdb backend. Only the Spark-session server types
9
+ (``dataframe``, ``databricks``) use the ibis pyspark backend.
9
10
  """
10
11
 
11
12
  from __future__ import annotations
@@ -73,12 +74,11 @@ def connect_ibis(
73
74
  return ibis.duckdb.from_connection(con)
74
75
 
75
76
  if server_type == "kafka":
76
- from datacontract.engines.ibis.connections.kafka import create_spark_session, read_kafka_topic
77
+ from datacontract.engines.ibis.connections.kafka import read_kafka_topic
77
78
 
78
- if spark is None:
79
- spark = create_spark_session()
80
- read_kafka_topic(spark, data_contract, server, config)
81
- return ibis.pyspark.connect(session=spark)
79
+ run.log_info(f"Connecting to kafka {server.format} via duckdb")
80
+ con = read_kafka_topic(data_contract, server, run, config, duckdb_connection)
81
+ return ibis.duckdb.from_connection(con)
82
82
 
83
83
  if server_type == "dataframe":
84
84
  if spark is None:
@@ -236,7 +236,7 @@ def _connect_databricks(ibis, server: Server, run: Run, config: Config):
236
236
 
237
237
  if token:
238
238
  run.log_info("Connecting to databricks with a personal access token")
239
- return ibis.databricks.connect(access_token=token, **kwargs)
239
+ return _databricks_connect(ibis, access_token=token, **kwargs)
240
240
 
241
241
  if client_id and client_secret:
242
242
  run.log_info("Connecting to databricks with an OAuth service principal (M2M)")
@@ -244,20 +244,44 @@ def _connect_databricks(ibis, server: Server, run: Run, config: Config):
244
244
  kwargs["credentials_provider"] = _databricks_credentials_provider(
245
245
  service_principal=True, host=sdk_host, client_id=client_id, client_secret=client_secret
246
246
  )
247
- return ibis.databricks.connect(**kwargs)
247
+ return _databricks_connect(ibis, **kwargs)
248
248
 
249
249
  if profile:
250
250
  run.log_info(f"Connecting to databricks with config profile '{profile}'")
251
251
  kwargs["credentials_provider"] = _databricks_credentials_provider(profile=profile)
252
- return ibis.databricks.connect(**kwargs)
252
+ return _databricks_connect(ibis, **kwargs)
253
253
 
254
254
  if auth_type:
255
255
  run.log_info(f"Connecting to databricks with auth_type '{auth_type}'")
256
- return ibis.databricks.connect(auth_type=auth_type, **kwargs)
256
+ return _databricks_connect(ibis, auth_type=auth_type, **kwargs)
257
257
 
258
258
  # Nothing configured: fail with the same clear message as before.
259
259
  token = config.get_databricks_token(required=True)
260
- return ibis.databricks.connect(access_token=token, **kwargs)
260
+ return _databricks_connect(ibis, access_token=token, **kwargs)
261
+
262
+
263
+ def _databricks_connect(ibis, **kwargs):
264
+ """Connect to Databricks without creating ibis's memtable staging volume.
265
+
266
+ ibis's Databricks backend creates a staging volume for memtables in the
267
+ target schema at connect time (``CREATE VOLUME IF NOT EXISTS``), named
268
+ after the client host and pid and never cleaned up. Contract tests only
269
+ ever read, so the volume is never used: skipping its setup lets read-only
270
+ principals without CREATE VOLUME permission run tests and keeps repeated
271
+ runs from littering the schema with per-run volumes.
272
+
273
+ Workaround until https://github.com/dataqcompany/ibis/pull/2 (drops the
274
+ CREATE VOLUME requirement for read-only connections) is merged and
275
+ released; then the ``_post_connect`` patch can go.
276
+ """
277
+ from ibis.backends.databricks import Backend
278
+
279
+ original_post_connect = Backend._post_connect
280
+ Backend._post_connect = lambda self, *, memtable_volume=None: None
281
+ try:
282
+ return ibis.databricks.connect(**kwargs)
283
+ finally:
284
+ Backend._post_connect = original_post_connect
261
285
 
262
286
 
263
287
  def _databricks_credentials_provider(service_principal: bool = False, **config_kwargs):