datacontract-cli 1.0.2__tar.gz → 1.0.3__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 (357) hide show
  1. {datacontract_cli-1.0.2/datacontract_cli.egg-info → datacontract_cli-1.0.3}/PKG-INFO +26 -6
  2. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/README.md +19 -0
  3. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_edit.py +33 -5
  4. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_import.py +20 -0
  5. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/connections/connect.py +2 -0
  6. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/ibis_check_execute.py +7 -4
  7. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/importer.py +1 -0
  8. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/importer_factory.py +5 -1
  9. datacontract_cli-1.0.3/datacontract/imports/powerbi_importer.py +470 -0
  10. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3/datacontract_cli.egg-info}/PKG-INFO +26 -6
  11. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract_cli.egg-info/SOURCES.txt +3 -0
  12. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract_cli.egg-info/requires.txt +6 -5
  13. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/pyproject.toml +7 -6
  14. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_edit.py +7 -0
  15. datacontract_cli-1.0.3/tests/test_import_powerbi.py +479 -0
  16. datacontract_cli-1.0.3/tests/test_test_quality_local_fallback.py +13 -0
  17. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/LICENSE +0 -0
  18. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/MANIFEST.in +0 -0
  19. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/__init__.py +0 -0
  20. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/api.py +0 -0
  21. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/catalog/catalog.py +0 -0
  22. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/changelog/__init__.py +0 -0
  23. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/changelog/changelog.py +0 -0
  24. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/changelog/normalize.py +0 -0
  25. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/cli.py +0 -0
  26. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_api.py +0 -0
  27. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_catalog.py +0 -0
  28. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_changelog.py +0 -0
  29. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_ci.py +0 -0
  30. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_dbt.py +0 -0
  31. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_export.py +0 -0
  32. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_init.py +0 -0
  33. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_lint.py +0 -0
  34. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_publish.py +0 -0
  35. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/command_test.py +0 -0
  36. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/data_contract.py +0 -0
  37. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/VERSION +0 -0
  38. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/abap-Bs8kvjsq.js +0 -0
  39. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/apex-Dspwrl5m.js +0 -0
  40. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/assets/editor.worker-4.7.0.js +0 -0
  41. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/assets/yaml.worker-4.7.0.js +0 -0
  42. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/azcli-k1BiOau1.js +0 -0
  43. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/bat-BIP72KWc.js +0 -0
  44. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/bicep-VhQeYhS3.js +0 -0
  45. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/cameligo-DnuAXtHg.js +0 -0
  46. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/clojure-BAuDPsal.js +0 -0
  47. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/coffee-BV06qSnj.js +0 -0
  48. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/cpp-Cz8Jeyrf.js +0 -0
  49. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/csharp-F6hhlXFb.js +0 -0
  50. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/csp-KzlEHCyI.js +0 -0
  51. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/css-e4FKntZ3.js +0 -0
  52. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/cssMode-BNkTa2xp.js +0 -0
  53. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/cypher-CpvDGKRr.js +0 -0
  54. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/dart-DdHeFWR0.js +0 -0
  55. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/datacontract-editor.css +0 -0
  56. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/datacontract-editor.es.js +0 -0
  57. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/dockerfile-aoNXDcio.js +0 -0
  58. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/ecl-C4Q0DYuA.js +0 -0
  59. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/elixir-C9X42b0T.js +0 -0
  60. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/flow9-Bff42pfB.js +0 -0
  61. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/freemarker2-Dyfzmb5A.js +0 -0
  62. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/fsharp-C6vPAsHG.js +0 -0
  63. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/go-DEr8zx9f.js +0 -0
  64. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/graphql-BiNBBRFh.js +0 -0
  65. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/handlebars-BtDNI-uC.js +0 -0
  66. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/hcl-2T9lKuFg.js +0 -0
  67. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/html-Cn4TGw_o.js +0 -0
  68. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/htmlMode-Bf84vbo2.js +0 -0
  69. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/index.html +0 -0
  70. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/ini-CZGtssYM.js +0 -0
  71. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/java-B260NeH3.js +0 -0
  72. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/javascript-B86Kac07.js +0 -0
  73. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/jsonMode-Ckgg5lAE.js +0 -0
  74. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/julia-kuNLM9c5.js +0 -0
  75. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/kotlin-Bz6kAefA.js +0 -0
  76. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/less-AZUtS89I.js +0 -0
  77. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/lexon-BcmgnyRb.js +0 -0
  78. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/liquid-D0NPwuu_.js +0 -0
  79. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/logo_fuchsia_v2.svg +0 -0
  80. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/lua-Dz1RbATg.js +0 -0
  81. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/m3-CIMooLFn.js +0 -0
  82. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/markdown-C1BsCK9P.js +0 -0
  83. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/mdx-QFRSBtVQ.js +0 -0
  84. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/mips-BovsnfLQ.js +0 -0
  85. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/monaco-4.7.0.js +0 -0
  86. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/msdax-CiRB2ZB-.js +0 -0
  87. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/mysql-BwdpPE19.js +0 -0
  88. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/objective-c-D4nfHfso.js +0 -0
  89. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/odcs.svg +0 -0
  90. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/pascal--j5-PYtz.js +0 -0
  91. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/pascaligo-C7TcJxNL.js +0 -0
  92. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/perl-BzEWqUb5.js +0 -0
  93. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/pgsql-B_KZ0mGX.js +0 -0
  94. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/php-A19QHzQV.js +0 -0
  95. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/pla-COeKY1hA.js +0 -0
  96. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/postiats-BfMp7zJL.js +0 -0
  97. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/powerquery-B0TS_5Gb.js +0 -0
  98. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/powershell-5jSbKdYB.js +0 -0
  99. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/protobuf-YgnOutn3.js +0 -0
  100. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/pug-DLej6kn5.js +0 -0
  101. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/python-C8RW9B6A.js +0 -0
  102. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/qsharp-AhjqtSHB.js +0 -0
  103. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/r-D-F4P80w.js +0 -0
  104. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/razor-CLZqdY_r.js +0 -0
  105. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/redis-hwwIlMnV.js +0 -0
  106. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/redshift-Bcm_kjEG.js +0 -0
  107. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/restructuredtext-CrdzfPP-.js +0 -0
  108. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/ruby-QC2UNm1s.js +0 -0
  109. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/rust-5aqiQ3L5.js +0 -0
  110. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/sb-B1g1ZfLJ.js +0 -0
  111. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/scala-C2U4R5Gb.js +0 -0
  112. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/scheme-DeFRbslr.js +0 -0
  113. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/scss-RSTCiCmI.js +0 -0
  114. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/shell-BpF-iNu8.js +0 -0
  115. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/solidity-C00r2mbQ.js +0 -0
  116. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/sophia-DVW5ZKDB.js +0 -0
  117. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/sparql-B0nmpxeX.js +0 -0
  118. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/sql-CJwKPERn.js +0 -0
  119. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/st-DPlKG5DT.js +0 -0
  120. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/swift-YZBAbVHV.js +0 -0
  121. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/systemverilog-CDQSaH63.js +0 -0
  122. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/tcl-Dlu8sp6Q.js +0 -0
  123. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/tsMode-yleMwhPq.js +0 -0
  124. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/twig-C5TO7-kw.js +0 -0
  125. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/typescript-CJBeebKU.js +0 -0
  126. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/typespec-BsmjDEu7.js +0 -0
  127. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/vb-ChHvIDrk.js +0 -0
  128. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/wgsl-XEp1ju8c.js +0 -0
  129. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/xml-vC-NMVX1.js +0 -0
  130. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/editor_assets/yaml-Dlf2VF-T.js +0 -0
  131. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/__init__.py +0 -0
  132. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/checks/__init__.py +0 -0
  133. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/checks/check_spec.py +0 -0
  134. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/checks/create_checks.py +0 -0
  135. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/checks/type_normalize.py +0 -0
  136. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/data_contract_test.py +0 -0
  137. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
  138. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
  139. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
  140. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
  141. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/__init__.py +0 -0
  142. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/connections/__init__.py +0 -0
  143. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/connections/duckdb_connection.py +0 -0
  144. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/connections/kafka.py +0 -0
  145. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/engines/ibis/dtype_category.py +0 -0
  146. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/__init__.py +0 -0
  147. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/avro_exporter.py +0 -0
  148. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/avro_idl_exporter.py +0 -0
  149. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/bigquery_exporter.py +0 -0
  150. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/custom_exporter.py +0 -0
  151. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/data_caterer_exporter.py +0 -0
  152. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/dbml_exporter.py +0 -0
  153. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/dbt_exporter.py +0 -0
  154. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/dcs_exporter.py +0 -0
  155. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/dqx_exporter.py +0 -0
  156. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/duckdb_type_converter.py +0 -0
  157. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/excel_exporter.py +0 -0
  158. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/exporter.py +0 -0
  159. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/exporter_factory.py +0 -0
  160. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/go_exporter.py +0 -0
  161. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/great_expectations_exporter.py +0 -0
  162. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/html_exporter.py +0 -0
  163. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/iceberg_exporter.py +0 -0
  164. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/jsonschema_exporter.py +0 -0
  165. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/markdown_exporter.py +0 -0
  166. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/mermaid_exporter.py +0 -0
  167. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/odcs_export_helper.py +0 -0
  168. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/odcs_v3_exporter.py +0 -0
  169. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/pandas_type_converter.py +0 -0
  170. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/protobuf_exporter.py +0 -0
  171. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/pydantic_exporter.py +0 -0
  172. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/rdf_exporter.py +0 -0
  173. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/sodacl_check_builder.py +0 -0
  174. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/sodacl_exporter.py +0 -0
  175. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/spark_exporter.py +0 -0
  176. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/sql_exporter.py +0 -0
  177. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/sql_type_converter.py +0 -0
  178. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/export/sqlalchemy_exporter.py +0 -0
  179. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/avro_importer.py +0 -0
  180. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/bigquery_importer.py +0 -0
  181. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/csv_importer.py +0 -0
  182. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/dbml_importer.py +0 -0
  183. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/dbt_importer.py +0 -0
  184. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/dcs_importer.py +0 -0
  185. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/excel_importer.py +0 -0
  186. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/glue_importer.py +0 -0
  187. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/iceberg_importer.py +0 -0
  188. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/json_importer.py +0 -0
  189. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/jsonschema_importer.py +0 -0
  190. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/odcs_helper.py +0 -0
  191. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/odcs_importer.py +0 -0
  192. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/parquet_importer.py +0 -0
  193. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/protobuf_importer.py +0 -0
  194. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/snowflake_importer.py +0 -0
  195. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/spark_importer.py +0 -0
  196. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/sql_importer.py +0 -0
  197. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/imports/unity_importer.py +0 -0
  198. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/init/init_template.py +0 -0
  199. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/integration/dbt_sync.py +0 -0
  200. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/integration/dbt_test_mapping.py +0 -0
  201. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/integration/entropy_data.py +0 -0
  202. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/lint/files.py +0 -0
  203. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/lint/resolve.py +0 -0
  204. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/lint/resources.py +0 -0
  205. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/lint/schema.py +0 -0
  206. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/lint/urls.py +0 -0
  207. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/model/changelog.py +0 -0
  208. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/model/exceptions.py +0 -0
  209. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/model/odcs.py +0 -0
  210. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/model/run.py +0 -0
  211. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/model/server.py +0 -0
  212. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/__init__.py +0 -0
  213. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/ci_output.py +0 -0
  214. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/json_test_results.py +0 -0
  215. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/junit_test_results.py +0 -0
  216. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/output_format.py +0 -0
  217. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/test_results_writer.py +0 -0
  218. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/output/text_changelog_results.py +0 -0
  219. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/py.typed +0 -0
  220. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
  221. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
  222. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
  223. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
  224. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.2.1.init.yaml +0 -0
  225. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/datacontract-1.2.1.schema.json +0 -0
  226. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
  227. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/odcs-3.0.2.schema.json +0 -0
  228. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/odcs-3.1.0.init.yaml +0 -0
  229. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/schemas/odcs-3.1.0.schema.json +0 -0
  230. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/datacontract.html +0 -0
  231. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/datacontract_odcs.html +0 -0
  232. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/index.html +0 -0
  233. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/datacontract_information.html +0 -0
  234. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
  235. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/datacontract_terms.html +0 -0
  236. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/definition.html +0 -0
  237. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/example.html +0 -0
  238. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/model_field.html +0 -0
  239. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/quality.html +0 -0
  240. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/partials/server.html +0 -0
  241. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract/templates/style/output.css +0 -0
  242. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract_cli.egg-info/dependency_links.txt +0 -0
  243. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract_cli.egg-info/entry_points.txt +0 -0
  244. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/datacontract_cli.egg-info/top_level.txt +0 -0
  245. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/setup.cfg +0 -0
  246. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_api.py +0 -0
  247. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_catalog.py +0 -0
  248. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_changelog.py +0 -0
  249. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_changelog_engine.py +0 -0
  250. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_changelog_normalize.py +0 -0
  251. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_changelog_output_text.py +0 -0
  252. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_ci_output.py +0 -0
  253. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_cli.py +0 -0
  254. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_connect_databricks.py +0 -0
  255. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_connect_sqlserver.py +0 -0
  256. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_data_contract.py +0 -0
  257. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_data_contract_checks.py +0 -0
  258. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_data_contract_specification.py +0 -0
  259. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_dbt_sync.py +0 -0
  260. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_dbt_test_mapping.py +0 -0
  261. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_description_linter.py +0 -0
  262. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_download_datacontract_file.py +0 -0
  263. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_duckdb_json.py +0 -0
  264. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_avro.py +0 -0
  265. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_avro_idl.py +0 -0
  266. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_bigquery.py +0 -0
  267. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_complex_data_contract.py +0 -0
  268. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_custom.py +0 -0
  269. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_custom_exporter.py +0 -0
  270. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_custom_model.py +0 -0
  271. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_data_caterer.py +0 -0
  272. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_dbml.py +0 -0
  273. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_dbt_models.py +0 -0
  274. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_dbt_sources.py +0 -0
  275. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_dbt_staging_sql.py +0 -0
  276. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_dqx.py +0 -0
  277. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_excel.py +0 -0
  278. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_go.py +0 -0
  279. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_great_expectations.py +0 -0
  280. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_html.py +0 -0
  281. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_iceberg.py +0 -0
  282. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_jsonschema.py +0 -0
  283. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_markdown.py +0 -0
  284. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_mermaid.py +0 -0
  285. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_odcs_v3.py +0 -0
  286. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_protobuf.py +0 -0
  287. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_pydantic.py +0 -0
  288. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_rdf.py +0 -0
  289. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_sodacl.py +0 -0
  290. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_spark.py +0 -0
  291. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_sql.py +0 -0
  292. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_sql_query.py +0 -0
  293. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_export_sqlalchemy.py +0 -0
  294. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_ibis_mssql_pattern.py +0 -0
  295. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_avro.py +0 -0
  296. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_bigquery.py +0 -0
  297. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_csv.py +0 -0
  298. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_dbml.py +0 -0
  299. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_dbt.py +0 -0
  300. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_excel.py +0 -0
  301. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_glue.py +0 -0
  302. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_iceberg.py +0 -0
  303. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_json.py +0 -0
  304. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_jsonschema.py +0 -0
  305. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_odcs_v3.py +0 -0
  306. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_parquet.py +0 -0
  307. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_protobuf.py +0 -0
  308. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_snowflake.py +0 -0
  309. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_spark.py +0 -0
  310. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_sql_oracle.py +0 -0
  311. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_sql_postgres.py +0 -0
  312. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_sql_snowflake.py +0 -0
  313. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_sql_sqlserver.py +0 -0
  314. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_import_unity_file.py +0 -0
  315. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_integration_entropydata.py +0 -0
  316. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_lint.py +0 -0
  317. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_require_env.py +0 -0
  318. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_resolve.py +0 -0
  319. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_resolve_definitions.py +0 -0
  320. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_roundtrip_jsonschema.py +0 -0
  321. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_sql_type_converter_physicaltype.py +0 -0
  322. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_api.py +0 -0
  323. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_athena_iceberg.py +0 -0
  324. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_azure_remote.py +0 -0
  325. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_bigquery.py +0 -0
  326. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_checks_filter.py +0 -0
  327. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_databricks.py +0 -0
  328. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_dataframe.py +0 -0
  329. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_delta.py +0 -0
  330. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_diagnostics.py +0 -0
  331. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_failed_samples.py +0 -0
  332. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_gcs_csv_remote.py +0 -0
  333. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_gcs_json_remote.py +0 -0
  334. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_kafka.py +0 -0
  335. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_kafka_remote.py +0 -0
  336. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_local_json.py +0 -0
  337. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_local_json_nd.py +0 -0
  338. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_mysql.py +0 -0
  339. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_oracle.py +0 -0
  340. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_output_json.py +0 -0
  341. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_output_junit.py +0 -0
  342. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_parquet.py +0 -0
  343. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_postgres.py +0 -0
  344. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_quality.py +0 -0
  345. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_quality_percent_severity.py +0 -0
  346. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_csv.py +0 -0
  347. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_delta.py +0 -0
  348. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_json.py +0 -0
  349. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_json_complex.py +0 -0
  350. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_json_multiple_models.py +0 -0
  351. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_s3_json_remote.py +0 -0
  352. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_schema_evolution.py +0 -0
  353. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_server_not_found.py +0 -0
  354. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_snowflake.py +0 -0
  355. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_soda_connection_error.py +0 -0
  356. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_sqlserver.py +0 -0
  357. {datacontract_cli-1.0.2 → datacontract_cli-1.0.3}/tests/test_test_trino.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
5
5
  Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
6
6
  License-Expression: MIT
@@ -11,7 +11,8 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: <3.15,>=3.10
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: typer<0.26,>=0.18.0
14
+ Requires-Dist: typer<0.27,>=0.18.0
15
+ Requires-Dist: click<9.0.0,>=8.1.0
15
16
  Requires-Dist: pydantic<2.14.0,>=2.8.2
16
17
  Requires-Dist: pyyaml~=6.0.1
17
18
  Requires-Dist: requests<2.35,>=2.31
@@ -38,8 +39,8 @@ Provides-Extra: excel
38
39
  Requires-Dist: openpyxl<4.0.0,>=3.1.5; extra == "excel"
39
40
  Provides-Extra: databricks
40
41
  Requires-Dist: ibis-framework[databricks,pyspark]<13.0.0,>=10.0.0; extra == "databricks"
41
- Requires-Dist: databricks-sql-connector<4.3.0,>=3.7.0; extra == "databricks"
42
- Requires-Dist: databricks-sdk<0.116.0; extra == "databricks"
42
+ Requires-Dist: databricks-sql-connector<4.4.0,>=3.7.0; extra == "databricks"
43
+ Requires-Dist: databricks-sdk<0.118.0; extra == "databricks"
43
44
  Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "databricks"
44
45
  Provides-Extra: iceberg
45
46
  Requires-Dist: pyiceberg==0.11.1; extra == "iceberg"
@@ -88,7 +89,7 @@ Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
88
89
  Provides-Extra: rdf
89
90
  Requires-Dist: rdflib==7.6.0; extra == "rdf"
90
91
  Provides-Extra: api
91
- Requires-Dist: fastapi<0.137.0,>=0.115.0; extra == "api"
92
+ Requires-Dist: fastapi<0.138.0,>=0.115.0; extra == "api"
92
93
  Requires-Dist: uvicorn<0.50.0,>=0.44.0; extra == "api"
93
94
  Provides-Extra: protobuf
94
95
  Requires-Dist: proto-schema-parser<3.0,>=1.0; extra == "protobuf"
@@ -107,7 +108,7 @@ Requires-Dist: pytest-xdist; extra == "dev"
107
108
  Requires-Dist: pymssql==2.3.13; extra == "dev"
108
109
  Requires-Dist: psycopg2-binary<3.0,>=2.9; extra == "dev"
109
110
  Requires-Dist: mysql-connector-python<9.7.0,>=8.0.30; extra == "dev"
110
- Requires-Dist: ruff==0.15.16; extra == "dev"
111
+ Requires-Dist: ruff==0.15.17; extra == "dev"
111
112
  Requires-Dist: testcontainers[kafka,minio,mssql,mysql,postgres]==4.14.2; extra == "dev"
112
113
  Requires-Dist: trino==0.337.0; extra == "dev"
113
114
  Dynamic: license-file
@@ -2017,6 +2018,7 @@ Usage: datacontract import [OPTIONS] COMMAND [ARGS]...
2017
2018
  │ spark Import a data contract from a Spark schema. │
2018
2019
  │ iceberg Import a data contract from an Iceberg schema. │
2019
2020
  │ excel Import a data contract from an Excel file. │
2021
+ │ powerbi Import a data contract from a Power BI semantic model (.pbit, .bim, or .json) file. │
2020
2022
  │ snowflake Import a data contract from a Snowflake workspace. │
2021
2023
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
2022
2024
 
@@ -2262,6 +2264,24 @@ datacontract import snowflake --source account.canada-central.azure --database d
2262
2264
  ```
2263
2265
  </details>
2264
2266
 
2267
+ <details markdown="1">
2268
+ <summary><strong>Power BI</strong></summary>
2269
+
2270
+ Imports a data contract from a Power BI semantic model. Pass the file via the `source` parameter — a `.pbit` template, a `.bim`, or a `.json` (BIM/TMSL) file. Only the semantic model (tables, columns, measures, and hierarchies) is imported; report pages and visuals are not.
2271
+
2272
+ See the [Power BI documentation](https://learn.microsoft.com/en-us/power-bi/create-reports/desktop-templates) for how to export a `.pbit` file from a `.pbix` file.
2273
+
2274
+ Example:
2275
+
2276
+ ```bash
2277
+ datacontract import powerbi --source "test.pbit"
2278
+
2279
+ datacontract import powerbi --source "test.bim"
2280
+ ```
2281
+
2282
+ </details>
2283
+
2284
+
2265
2285
  ### catalog
2266
2286
  ```
2267
2287
  Usage: datacontract catalog [OPTIONS]
@@ -1903,6 +1903,7 @@ Usage: datacontract import [OPTIONS] COMMAND [ARGS]...
1903
1903
  │ spark Import a data contract from a Spark schema. │
1904
1904
  │ iceberg Import a data contract from an Iceberg schema. │
1905
1905
  │ excel Import a data contract from an Excel file. │
1906
+ │ powerbi Import a data contract from a Power BI semantic model (.pbit, .bim, or .json) file. │
1906
1907
  │ snowflake Import a data contract from a Snowflake workspace. │
1907
1908
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
1908
1909
 
@@ -2148,6 +2149,24 @@ datacontract import snowflake --source account.canada-central.azure --database d
2148
2149
  ```
2149
2150
  </details>
2150
2151
 
2152
+ <details markdown="1">
2153
+ <summary><strong>Power BI</strong></summary>
2154
+
2155
+ Imports a data contract from a Power BI semantic model. Pass the file via the `source` parameter — a `.pbit` template, a `.bim`, or a `.json` (BIM/TMSL) file. Only the semantic model (tables, columns, measures, and hierarchies) is imported; report pages and visuals are not.
2156
+
2157
+ See the [Power BI documentation](https://learn.microsoft.com/en-us/power-bi/create-reports/desktop-templates) for how to export a `.pbit` file from a `.pbix` file.
2158
+
2159
+ Example:
2160
+
2161
+ ```bash
2162
+ datacontract import powerbi --source "test.pbit"
2163
+
2164
+ datacontract import powerbi --source "test.bim"
2165
+ ```
2166
+
2167
+ </details>
2168
+
2169
+
2151
2170
  ### catalog
2152
2171
  ```
2153
2172
  Usage: datacontract catalog [OPTIONS]
@@ -75,9 +75,12 @@ def _cli_version() -> str:
75
75
 
76
76
  def _generate_index_html(filename: str) -> str:
77
77
  """
78
- Generate the editor page, mirroring the CLI mode of the datacontract-editor npm launcher:
79
- load the YAML from the local file API, write it back on save, and point the
80
- editor's test runner at this server's own /test endpoint.
78
+ Generate the editor page: load the YAML from the local file API, write it back on
79
+ save, and point the editor's test runner at this server's own /test endpoint.
80
+
81
+ The editor runs in EMBEDDED mode, since the file menu (New, Load Example, Open)
82
+ makes no sense when the editor is bound to a single local file. The filename is
83
+ shown in the header via titlePrefix, and Cancel reverts to the file on disk.
81
84
  """
82
85
  filename_js = json.dumps(filename)
83
86
  file_api_path = f"/api/files/{quote(filename)}"
@@ -97,7 +100,7 @@ def _generate_index_html(filename: str) -> str:
97
100
  <body>
98
101
  <div id="root"></div>
99
102
  <script type="module">
100
- import {{ init }} from '{EDITOR_ASSETS_PATH}/datacontract-editor.es.js';
103
+ import {{ init, parseYaml }} from '{EDITOR_ASSETS_PATH}/datacontract-editor.es.js';
101
104
 
102
105
  async function initCli() {{
103
106
  try {{
@@ -109,9 +112,22 @@ def _generate_index_html(filename: str) -> str:
109
112
 
110
113
  const notify = (notification) => editor?.getStore().getState().addNotification(notification);
111
114
 
115
+ // The header renders the titlePrefix followed by the contract's name,
116
+ // so only show the filename when the contract has a name.
117
+ let titlePrefix = null;
118
+ try {{
119
+ if (parseYaml(yaml)?.name) {{
120
+ titlePrefix = {filename_js};
121
+ }}
122
+ }} catch {{
123
+ // not parseable: no contract name to show the filename next to
124
+ }}
125
+
112
126
  const editor = init({{
113
127
  container: '#root',
114
- mode: 'CLI',
128
+ mode: 'EMBEDDED',
129
+ showDelete: false,
130
+ titlePrefix: titlePrefix,
115
131
  yaml: yaml,
116
132
  persistence: 'none',
117
133
  initialView: 'form',
@@ -119,6 +135,18 @@ def _generate_index_html(filename: str) -> str:
119
135
  enabled: true,
120
136
  dataContractCliApiServerUrl: window.location.origin,
121
137
  }},
138
+ onCancel: async () => {{
139
+ try {{
140
+ const response = await fetch('{file_api_path}');
141
+ if (!response.ok) {{
142
+ throw new Error(response.statusText);
143
+ }}
144
+ editor.setYaml(await response.text());
145
+ notify({{ type: 'info', message: 'Discarded changes, reloaded ' + {filename_js} }});
146
+ }} catch (error) {{
147
+ notify({{ type: 'error', message: 'Failed to reload ' + {filename_js} + ': ' + error.message, duration: 5000 }});
148
+ }}
149
+ }},
122
150
  onSave: async (yamlContent) => {{
123
151
  try {{
124
152
  const saveResponse = await fetch('{file_api_path}', {{
@@ -431,6 +431,26 @@ def import_excel(
431
431
  _write_result(result, output)
432
432
 
433
433
 
434
+ @import_app.command(
435
+ name="powerbi",
436
+ epilog="Example: datacontract import powerbi --source SemanticModel.pbit --output datacontract.yaml",
437
+ )
438
+ def import_powerbi(
439
+ source: Annotated[
440
+ Optional[str], typer.Option(help="Path to a Power BI .pbit, .bim, or .json semantic model file.")
441
+ ] = None,
442
+ output: output_option = None,
443
+ schema: schema_option = None,
444
+ owner: owner_option = None,
445
+ id: id_option = None,
446
+ debug: debug_option = None,
447
+ ):
448
+ """Import a data contract from a Power BI semantic model (.pbit, .bim, or .json) file."""
449
+ enable_debug_logging(debug)
450
+ result = DataContract.import_from_source(format="powerbi", source=source, schema=schema, owner=owner, id=id)
451
+ _write_result(result, output)
452
+
453
+
434
454
  @import_app.command(
435
455
  name="snowflake",
436
456
  epilog="Example: datacontract import snowflake --source account --database DEMO_DB --schema PUBLIC --output datacontract.yaml",
@@ -428,6 +428,7 @@ def _sqlserver_connection_kwargs(server: Server) -> dict:
428
428
  def _connect_athena(ibis, server: Server):
429
429
  s3_access_key_id = os.getenv("DATACONTRACT_S3_ACCESS_KEY_ID")
430
430
  s3_secret_access_key = os.getenv("DATACONTRACT_S3_SECRET_ACCESS_KEY")
431
+ s3_session_token = os.getenv("DATACONTRACT_S3_SESSION_TOKEN")
431
432
  if not server.schema_:
432
433
  raise DataContractException(
433
434
  type="athena-connection",
@@ -446,6 +447,7 @@ def _connect_athena(ibis, server: Server):
446
447
  s3_staging_dir=server.stagingDir,
447
448
  aws_access_key_id=s3_access_key_id,
448
449
  aws_secret_access_key=s3_secret_access_key,
450
+ aws_session_token=s3_session_token,
449
451
  region_name=os.getenv("DATACONTRACT_S3_REGION") or getattr(server, "region_name", None),
450
452
  schema_name=server.schema_,
451
453
  )
@@ -695,10 +695,13 @@ def _run_scalar(con, query: str, dialect: Optional[str]):
695
695
  try:
696
696
  row = cursor.fetchone()
697
697
  finally:
698
- try:
699
- cursor.close()
700
- except Exception:
701
- pass
698
+ # On DuckDB, raw_sql returns the shared connection itself; closing it
699
+ # would tear down the connection and break every subsequent check.
700
+ if cursor is not getattr(con, "con", None):
701
+ try:
702
+ cursor.close()
703
+ except Exception:
704
+ pass
702
705
  return _py(row[0]) if row else None
703
706
 
704
707
 
@@ -38,6 +38,7 @@ class ImportFormat(str, Enum):
38
38
  csv = "csv"
39
39
  protobuf = "protobuf"
40
40
  excel = "excel"
41
+ powerbi = "powerbi"
41
42
  snowflake = "snowflake"
42
43
 
43
44
  @classmethod
@@ -119,12 +119,16 @@ importer_factory.register_lazy_importer(
119
119
  module_path="datacontract.imports.excel_importer",
120
120
  class_name="ExcelImporter",
121
121
  )
122
+ importer_factory.register_lazy_importer(
123
+ name=ImportFormat.powerbi,
124
+ module_path="datacontract.imports.powerbi_importer",
125
+ class_name="PowerBiImporter",
126
+ )
122
127
  importer_factory.register_lazy_importer(
123
128
  name=ImportFormat.snowflake,
124
129
  module_path="datacontract.imports.snowflake_importer",
125
130
  class_name="SnowflakeImporter",
126
131
  )
127
-
128
132
  importer_factory.register_lazy_importer(
129
133
  name=ImportFormat.json,
130
134
  module_path="datacontract.imports.json_importer",