datacontract-cli 0.12.3__tar.gz → 1.0.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.
- {datacontract_cli-0.12.3/datacontract_cli.egg-info → datacontract_cli-1.0.0}/PKG-INFO +206 -189
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/README.md +174 -163
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/api.py +5 -2
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/catalog/catalog.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/cli.py +35 -10
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_changelog.py +10 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_ci.py +24 -3
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_export.py +123 -28
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_lint.py +20 -4
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_test.py +32 -3
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/data_contract.py +26 -12
- datacontract_cli-1.0.0/datacontract/engines/checks/check_spec.py +146 -0
- datacontract_cli-1.0.0/datacontract/engines/checks/create_checks.py +718 -0
- datacontract_cli-1.0.0/datacontract/engines/checks/type_normalize.py +137 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/data_contract_test.py +16 -8
- datacontract_cli-1.0.0/datacontract/engines/ibis/connections/connect.py +462 -0
- {datacontract_cli-0.12.3/datacontract/engines/soda → datacontract_cli-1.0.0/datacontract/engines/ibis}/connections/duckdb_connection.py +52 -4
- {datacontract_cli-0.12.3/datacontract/engines/soda → datacontract_cli-1.0.0/datacontract/engines/ibis}/connections/kafka.py +50 -6
- datacontract_cli-1.0.0/datacontract/engines/ibis/dtype_category.py +41 -0
- datacontract_cli-1.0.0/datacontract/engines/ibis/ibis_check_execute.py +787 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/avro_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/avro_idl_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/data_caterer_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/dbml_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/dbt_exporter.py +3 -3
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/dcs_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/go_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/html_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/iceberg_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/jsonschema_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/mermaid_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/odcs_v3_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/protobuf_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/pydantic_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/rdf_exporter.py +1 -1
- datacontract_cli-0.12.3/datacontract/engines/data_contract_checks.py → datacontract_cli-1.0.0/datacontract/export/sodacl_check_builder.py +59 -7
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/sodacl_exporter.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/spark_exporter.py +2 -2
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/sqlalchemy_exporter.py +1 -3
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/csv_importer.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/dbt_importer.py +30 -1
- datacontract_cli-1.0.0/datacontract/imports/protobuf_importer.py +245 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/spark_importer.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/integration/dbt_sync.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/integration/entropy_data.py +11 -5
- datacontract_cli-1.0.0/datacontract/lint/resolve.py +415 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/model/run.py +5 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/output/junit_test_results.py +4 -2
- datacontract_cli-1.0.0/datacontract/output/output_format.py +21 -0
- datacontract_cli-1.0.0/datacontract/py.typed +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0/datacontract_cli.egg-info}/PKG-INFO +206 -189
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract_cli.egg-info/SOURCES.txt +18 -19
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract_cli.egg-info/requires.txt +32 -24
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/pyproject.toml +63 -41
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_ci_output.py +14 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_cli.py +9 -0
- datacontract_cli-1.0.0/tests/test_connect_databricks.py +121 -0
- datacontract_cli-1.0.0/tests/test_connect_sqlserver.py +178 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_data_contract_checks.py +91 -1
- datacontract_cli-1.0.0/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_duckdb_json.py +7 -5
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_avro_idl.py +2 -2
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_iceberg.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_jsonschema.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_sodacl.py +1 -1
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_dbt.py +57 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_spark.py +4 -6
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_lint.py +31 -4
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_resolve.py +7 -7
- datacontract_cli-1.0.0/tests/test_resolve_definitions.py +531 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_dataframe.py +2 -4
- datacontract_cli-1.0.0/tests/test_test_diagnostics.py +127 -0
- datacontract_cli-1.0.0/tests/test_test_failed_samples.py +104 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_output_json.py +0 -2
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_output_junit.py +0 -2
- datacontract_cli-1.0.0/tests/test_test_quality_percent_severity.py +192 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_schema_evolution.py +62 -6
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_soda_connection_error.py +2 -2
- datacontract_cli-0.12.3/datacontract/engines/soda/check_soda_execute.py +0 -257
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/athena.py +0 -79
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/bigquery.py +0 -24
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/databricks.py +0 -27
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/impala.py +0 -72
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/mysql.py +0 -19
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/oracle.py +0 -52
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/postgres.py +0 -21
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/redshift.py +0 -29
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/snowflake.py +0 -24
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/sqlserver.py +0 -78
- datacontract_cli-0.12.3/datacontract/engines/soda/connections/trino.py +0 -29
- datacontract_cli-0.12.3/datacontract/imports/protobuf_importer.py +0 -284
- datacontract_cli-0.12.3/datacontract/lint/resolve.py +0 -214
- datacontract_cli-0.12.3/datacontract/output/output_format.py +0 -10
- datacontract_cli-0.12.3/tests/test_bigquery_soda_connection.py +0 -61
- datacontract_cli-0.12.3/tests/test_redshift_soda_configuration.py +0 -75
- datacontract_cli-0.12.3/tests/test_sqlserver_soda_connection.py +0 -152
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/LICENSE +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/MANIFEST.in +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/changelog/__init__.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/changelog/changelog.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/changelog/normalize.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_api.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_catalog.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_dbt.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_import.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_init.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/command_publish.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.12.3/datacontract/engines/soda → datacontract_cli-1.0.0/datacontract/engines/checks}/__init__.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
- {datacontract_cli-0.12.3/datacontract/export → datacontract_cli-1.0.0/datacontract/engines/ibis}/__init__.py +0 -0
- {datacontract_cli-0.12.3/datacontract/output → datacontract_cli-1.0.0/datacontract/engines/ibis/connections}/__init__.py +0 -0
- /datacontract_cli-0.12.3/datacontract/py.typed → /datacontract_cli-1.0.0/datacontract/export/__init__.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/bigquery_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/custom_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/dqx_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/duckdb_type_converter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/excel_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/exporter_factory.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/great_expectations_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/markdown_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/odcs_export_helper.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/pandas_type_converter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/sql_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/export/sql_type_converter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/avro_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/bigquery_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/dbml_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/dcs_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/excel_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/glue_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/iceberg_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/importer_factory.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/json_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/odcs_helper.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/odcs_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/parquet_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/sql_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/imports/unity_importer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/init/init_template.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/integration/dbt_test_mapping.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/model/changelog.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/model/odcs.py +0 -0
- /datacontract_cli-0.12.3/tests/test_description_linter.py → /datacontract_cli-1.0.0/datacontract/output/__init__.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/output/ci_output.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/output/json_test_results.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/output/test_results_writer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/output/text_changelog_results.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.2.1.init.yaml +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/datacontract-1.2.1.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/odcs-3.0.2.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/odcs-3.1.0.init.yaml +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/schemas/odcs-3.1.0.schema.json +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/datacontract_odcs.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/index.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/quality.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/setup.cfg +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_api.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_changelog_engine.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_changelog_normalize.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_changelog_output_text.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_data_contract.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_data_contract_specification.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_dbt_sync.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_dbt_test_mapping.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_avro.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_complex_data_contract.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_custom.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_custom_model.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_dqx.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_excel.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_markdown.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_mermaid.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_odcs_v3.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_spark.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_sql.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_export_sqlalchemy.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_avro.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_csv.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_excel.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_glue.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_iceberg.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_json.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_parquet.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_protobuf.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_sql_oracle.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_sql_postgres.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_sql_snowflake.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_sql_sqlserver.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_integration_entropydata.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_require_env.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_roundtrip_jsonschema.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_sql_type_converter_physicaltype.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_api.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_athena_iceberg.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_azure_remote.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_checks_filter.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_gcs_csv_remote.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_kafka.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_local_json_nd.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_mysql.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_oracle.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_postgres.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_quality.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_s3_json_remote.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_server_not_found.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_snowflake.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_sqlserver.py +0 -0
- {datacontract_cli-0.12.3 → datacontract_cli-1.0.0}/tests/test_test_trino.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.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
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
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://cli.datacontract.com
|
|
|
8
8
|
Project-URL: Issues, https://github.com/datacontract/datacontract-cli/issues
|
|
9
9
|
Classifier: Programming Language :: Python :: 3
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: <3.
|
|
11
|
+
Requires-Python: <3.15,>=3.10
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
14
|
Requires-Dist: typer<0.26,>=0.18.0
|
|
@@ -28,66 +28,70 @@ Requires-Dist: jinja_partials<1.0.0,>=0.2.1
|
|
|
28
28
|
Requires-Dist: datacontract-specification<2.0.0,>=1.2.3
|
|
29
29
|
Requires-Dist: open-data-contract-standard<4.0.0,>=3.1.2
|
|
30
30
|
Requires-Dist: deepdiff<10.0.0,>=6.0.0
|
|
31
|
-
Requires-Dist: setuptools>=70
|
|
32
31
|
Provides-Extra: avro
|
|
33
32
|
Requires-Dist: avro==1.12.1; extra == "avro"
|
|
34
33
|
Provides-Extra: bigquery
|
|
35
|
-
Requires-Dist:
|
|
34
|
+
Requires-Dist: ibis-framework[bigquery]<13.0.0,>=10.0.0; extra == "bigquery"
|
|
36
35
|
Provides-Extra: csv
|
|
37
36
|
Requires-Dist: pandas>=2.0.0; extra == "csv"
|
|
38
37
|
Provides-Extra: excel
|
|
39
38
|
Requires-Dist: openpyxl<4.0.0,>=3.1.5; extra == "excel"
|
|
40
39
|
Provides-Extra: databricks
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist: soda-core-spark[databricks]<3.6.0,>=3.3.20; extra == "databricks"
|
|
40
|
+
Requires-Dist: ibis-framework[databricks,pyspark]<13.0.0,>=10.0.0; extra == "databricks"
|
|
43
41
|
Requires-Dist: databricks-sql-connector<4.3.0,>=3.7.0; extra == "databricks"
|
|
44
|
-
Requires-Dist: databricks-sdk<0.
|
|
42
|
+
Requires-Dist: databricks-sdk<0.112.0; extra == "databricks"
|
|
45
43
|
Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "databricks"
|
|
46
44
|
Provides-Extra: iceberg
|
|
47
45
|
Requires-Dist: pyiceberg==0.11.1; extra == "iceberg"
|
|
48
46
|
Provides-Extra: kafka
|
|
49
47
|
Requires-Dist: datacontract-cli[avro]; extra == "kafka"
|
|
50
|
-
Requires-Dist:
|
|
48
|
+
Requires-Dist: ibis-framework[pyspark]<13.0.0,>=10.0.0; extra == "kafka"
|
|
51
49
|
Requires-Dist: pyspark<5.0.0,>=3.5.0; extra == "kafka"
|
|
52
50
|
Provides-Extra: mysql
|
|
53
|
-
Requires-Dist:
|
|
54
|
-
Requires-Dist: mysql-connector-python<9.7.0,>=8.0.30; extra == "mysql"
|
|
51
|
+
Requires-Dist: datacontract-cli[duckdb]; extra == "mysql"
|
|
55
52
|
Provides-Extra: postgres
|
|
56
|
-
Requires-Dist:
|
|
53
|
+
Requires-Dist: ibis-framework[postgres]<13.0.0,>=10.0.0; extra == "postgres"
|
|
57
54
|
Provides-Extra: redshift
|
|
58
|
-
Requires-Dist:
|
|
55
|
+
Requires-Dist: ibis-framework[postgres]<13.0.0,>=10.0.0; extra == "redshift"
|
|
59
56
|
Provides-Extra: s3
|
|
60
57
|
Requires-Dist: s3fs<2027.0.0,>=2025.2.0; extra == "s3"
|
|
61
|
-
Requires-Dist:
|
|
58
|
+
Requires-Dist: duckdb-extension-httpfs<1.6.0,>=1.5.0; extra == "s3"
|
|
59
|
+
Requires-Dist: duckdb-extension-aws<1.6.0,>=1.5.0; extra == "s3"
|
|
60
|
+
Provides-Extra: gcs
|
|
61
|
+
Requires-Dist: datacontract-cli[duckdb]; extra == "gcs"
|
|
62
|
+
Requires-Dist: duckdb-extension-httpfs<1.6.0,>=1.5.0; extra == "gcs"
|
|
63
|
+
Provides-Extra: azure
|
|
64
|
+
Requires-Dist: datacontract-cli[duckdb]; extra == "azure"
|
|
65
|
+
Requires-Dist: duckdb-extension-azure<1.6.0,>=1.5.0; extra == "azure"
|
|
62
66
|
Provides-Extra: snowflake
|
|
63
67
|
Requires-Dist: snowflake-connector-python[pandas]<4.6,>=3.6; extra == "snowflake"
|
|
64
|
-
Requires-Dist:
|
|
68
|
+
Requires-Dist: ibis-framework[snowflake]<13.0.0,>=10.0.0; extra == "snowflake"
|
|
65
69
|
Provides-Extra: sqlserver
|
|
66
|
-
Requires-Dist:
|
|
70
|
+
Requires-Dist: ibis-framework[mssql]<13.0.0,>=10.0.0; extra == "sqlserver"
|
|
67
71
|
Provides-Extra: oracle
|
|
68
|
-
Requires-Dist:
|
|
72
|
+
Requires-Dist: ibis-framework[oracle]<13.0.0,>=10.0.0; extra == "oracle"
|
|
69
73
|
Provides-Extra: athena
|
|
70
|
-
Requires-Dist:
|
|
74
|
+
Requires-Dist: ibis-framework[athena]<13.0.0,>=10.0.0; extra == "athena"
|
|
71
75
|
Provides-Extra: trino
|
|
72
|
-
Requires-Dist:
|
|
76
|
+
Requires-Dist: ibis-framework[trino]<13.0.0,>=10.0.0; extra == "trino"
|
|
73
77
|
Provides-Extra: impala
|
|
74
|
-
Requires-Dist:
|
|
78
|
+
Requires-Dist: ibis-framework[impala]<13.0.0,>=10.0.0; extra == "impala"
|
|
75
79
|
Provides-Extra: dbml
|
|
76
80
|
Requires-Dist: pydbml>=1.1.1; extra == "dbml"
|
|
77
81
|
Provides-Extra: duckdb
|
|
78
|
-
Requires-Dist: duckdb<1.6.0,>=1.
|
|
79
|
-
Requires-Dist:
|
|
82
|
+
Requires-Dist: duckdb<1.6.0,>=1.5.0; extra == "duckdb"
|
|
83
|
+
Requires-Dist: ibis-framework[duckdb]<13.0.0,>=10.0.0; extra == "duckdb"
|
|
80
84
|
Provides-Extra: parquet
|
|
81
85
|
Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
|
|
82
86
|
Provides-Extra: rdf
|
|
83
87
|
Requires-Dist: rdflib==7.6.0; extra == "rdf"
|
|
84
88
|
Provides-Extra: api
|
|
85
|
-
Requires-Dist: fastapi
|
|
86
|
-
Requires-Dist: uvicorn<0.
|
|
89
|
+
Requires-Dist: fastapi<0.137.0,>=0.115.0; extra == "api"
|
|
90
|
+
Requires-Dist: uvicorn<0.49.0,>=0.44.0; extra == "api"
|
|
87
91
|
Provides-Extra: protobuf
|
|
88
|
-
Requires-Dist:
|
|
92
|
+
Requires-Dist: proto-schema-parser<3.0,>=1.0; extra == "protobuf"
|
|
89
93
|
Provides-Extra: all
|
|
90
|
-
Requires-Dist: datacontract-cli[api,athena,bigquery,csv,databricks,dbml,duckdb,excel,iceberg,impala,kafka,mysql,oracle,parquet,postgres,protobuf,rdf,redshift,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
94
|
+
Requires-Dist: datacontract-cli[api,athena,azure,bigquery,csv,databricks,dbml,duckdb,excel,gcs,iceberg,impala,kafka,mysql,oracle,parquet,postgres,protobuf,rdf,redshift,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
91
95
|
Provides-Extra: dev
|
|
92
96
|
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
93
97
|
Requires-Dist: httpx==0.28.1; extra == "dev"
|
|
@@ -99,7 +103,9 @@ Requires-Dist: pre-commit<4.7.0,>=3.7.1; extra == "dev"
|
|
|
99
103
|
Requires-Dist: pytest; extra == "dev"
|
|
100
104
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
101
105
|
Requires-Dist: pymssql==2.3.13; extra == "dev"
|
|
102
|
-
Requires-Dist:
|
|
106
|
+
Requires-Dist: psycopg2-binary<3.0,>=2.9; extra == "dev"
|
|
107
|
+
Requires-Dist: mysql-connector-python<9.7.0,>=8.0.30; extra == "dev"
|
|
108
|
+
Requires-Dist: ruff==0.15.14; extra == "dev"
|
|
103
109
|
Requires-Dist: testcontainers[kafka,minio,mssql,mysql,postgres]==4.14.2; extra == "dev"
|
|
104
110
|
Requires-Dist: trino==0.337.0; extra == "dev"
|
|
105
111
|
Dynamic: license-file
|
|
@@ -345,31 +351,33 @@ uv tool install --python python3.11 --upgrade 'datacontract-cli[all]'
|
|
|
345
351
|
|
|
346
352
|
A list of available extras:
|
|
347
353
|
|
|
348
|
-
| Dependency
|
|
349
|
-
|
|
350
|
-
| Amazon Athena
|
|
351
|
-
| Avro Support
|
|
352
|
-
|
|
|
353
|
-
|
|
|
354
|
-
|
|
|
355
|
-
|
|
|
356
|
-
|
|
|
357
|
-
|
|
|
358
|
-
|
|
|
359
|
-
|
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
-
|
|
|
364
|
-
|
|
|
365
|
-
|
|
|
366
|
-
|
|
|
367
|
-
|
|
|
368
|
-
|
|
|
369
|
-
|
|
|
370
|
-
|
|
|
371
|
-
|
|
|
372
|
-
|
|
|
354
|
+
| Dependency | Installation Command |
|
|
355
|
+
|------------------------------------------|--------------------------------------------|
|
|
356
|
+
| Amazon Athena | `pip install datacontract-cli[athena]` |
|
|
357
|
+
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
358
|
+
| Azure Integration | `pip install datacontract-cli[azure]` |
|
|
359
|
+
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
360
|
+
| CSV | `pip install datacontract-cli[csv]` |
|
|
361
|
+
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
362
|
+
| DBML | `pip install datacontract-cli[dbml]` |
|
|
363
|
+
| DuckDB (local/S3/GCS/Azure file testing) | `pip install datacontract-cli[duckdb]` |
|
|
364
|
+
| Excel | `pip install datacontract-cli[excel]` |
|
|
365
|
+
| GCS Integration | `pip install datacontract-cli[gcs]` |
|
|
366
|
+
| Iceberg | `pip install datacontract-cli[iceberg]` |
|
|
367
|
+
| Impala | `pip install datacontract-cli[impala]` |
|
|
368
|
+
| Kafka Integration | `pip install datacontract-cli[kafka]` |
|
|
369
|
+
| MySQL Integration | `pip install datacontract-cli[mysql]` |
|
|
370
|
+
| Oracle | `pip install datacontract-cli[oracle]` |
|
|
371
|
+
| Parquet | `pip install datacontract-cli[parquet]` |
|
|
372
|
+
| PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
|
|
373
|
+
| protobuf | `pip install datacontract-cli[protobuf]` |
|
|
374
|
+
| RDF | `pip install datacontract-cli[rdf]` |
|
|
375
|
+
| Amazon Redshift | `pip install datacontract-cli[redshift]` |
|
|
376
|
+
| S3 Integration | `pip install datacontract-cli[s3]` |
|
|
377
|
+
| Snowflake Integration | `pip install datacontract-cli[snowflake]` |
|
|
378
|
+
| Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
|
|
379
|
+
| Trino | `pip install datacontract-cli[trino]` |
|
|
380
|
+
| API (run as web server) | `pip install datacontract-cli[api]` |
|
|
373
381
|
|
|
374
382
|
|
|
375
383
|
## Documentation
|
|
@@ -390,8 +398,7 @@ Commands
|
|
|
390
398
|
|
|
391
399
|
### init
|
|
392
400
|
```
|
|
393
|
-
|
|
394
|
-
Usage: datacontract init [OPTIONS] [LOCATION]
|
|
401
|
+
Usage: datacontract init [OPTIONS] [LOCATION]
|
|
395
402
|
|
|
396
403
|
Create an empty data contract.
|
|
397
404
|
|
|
@@ -407,15 +414,12 @@ Commands
|
|
|
407
414
|
│ --help Show this message and exit. │
|
|
408
415
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
409
416
|
|
|
410
|
-
Example: datacontract init datacontract.yaml
|
|
411
|
-
|
|
412
|
-
|
|
417
|
+
Example: datacontract init datacontract.yaml
|
|
413
418
|
```
|
|
414
419
|
|
|
415
420
|
### lint
|
|
416
421
|
```
|
|
417
|
-
|
|
418
|
-
Usage: datacontract lint [OPTIONS] [LOCATION]
|
|
422
|
+
Usage: datacontract lint [OPTIONS] [LOCATION]
|
|
419
423
|
|
|
420
424
|
Validate that the datacontract.yaml is correctly formatted.
|
|
421
425
|
|
|
@@ -424,29 +428,37 @@ Commands
|
|
|
424
428
|
│ [default: datacontract.yaml] │
|
|
425
429
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
426
430
|
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
|
|
427
|
-
│ --json-schema
|
|
428
|
-
│
|
|
429
|
-
│ --output
|
|
430
|
-
│
|
|
431
|
-
│
|
|
432
|
-
│
|
|
433
|
-
│
|
|
434
|
-
│
|
|
435
|
-
│ --
|
|
436
|
-
│
|
|
437
|
-
│ --
|
|
438
|
-
│
|
|
431
|
+
│ --json-schema TEXT The location (url or path) of the │
|
|
432
|
+
│ ODCS JSON Schema │
|
|
433
|
+
│ --output PATH Specify the file path where the │
|
|
434
|
+
│ test results should be written to │
|
|
435
|
+
│ (e.g., │
|
|
436
|
+
│ './test-results/TEST-datacontrac… │
|
|
437
|
+
│ If no path is provided, the │
|
|
438
|
+
│ output will be printed to stdout. │
|
|
439
|
+
│ --output-format [json|junit] The target format for the test │
|
|
440
|
+
│ results. │
|
|
441
|
+
│ --all-errors Report all JSON Schema validation │
|
|
442
|
+
│ errors instead of stopping after │
|
|
443
|
+
│ the first one. │
|
|
444
|
+
│ --inline-references --no-inline-references Resolve external references │
|
|
445
|
+
│ (currently: │
|
|
446
|
+
│ authoritativeDefinitions[type in │
|
|
447
|
+
│ {definition, semantics}]) in the │
|
|
448
|
+
│ contract and inline the fetched │
|
|
449
|
+
│ content from the configured │
|
|
450
|
+
│ entropy-data host. │
|
|
451
|
+
│ [default: inline-references] │
|
|
452
|
+
│ --debug --no-debug Enable debug logging │
|
|
453
|
+
│ --help Show this message and exit. │
|
|
439
454
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
440
455
|
|
|
441
|
-
Example: datacontract lint datacontract.yaml
|
|
442
|
-
|
|
443
|
-
|
|
456
|
+
Example: datacontract lint datacontract.yaml
|
|
444
457
|
```
|
|
445
458
|
|
|
446
459
|
### changelog
|
|
447
460
|
```
|
|
448
|
-
|
|
449
|
-
Usage: datacontract changelog [OPTIONS] V1 V2
|
|
461
|
+
Usage: datacontract changelog [OPTIONS] V1 V2
|
|
450
462
|
|
|
451
463
|
Show a changelog between two data contracts.
|
|
452
464
|
|
|
@@ -457,13 +469,17 @@ Commands
|
|
|
457
469
|
│ [required] │
|
|
458
470
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
459
471
|
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
|
|
460
|
-
│ --
|
|
461
|
-
│
|
|
472
|
+
│ --inline-references --no-inline-references Resolve external references (currently: │
|
|
473
|
+
│ authoritativeDefinitions[type in {definition, │
|
|
474
|
+
│ semantics}]) in the contract and inline the │
|
|
475
|
+
│ fetched content from the configured │
|
|
476
|
+
│ entropy-data host. │
|
|
477
|
+
│ [default: inline-references] │
|
|
478
|
+
│ --debug --no-debug Enable debug logging │
|
|
479
|
+
│ --help Show this message and exit. │
|
|
462
480
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
463
481
|
|
|
464
|
-
Example: datacontract changelog datacontract-v1.yaml datacontract-v2.yaml
|
|
465
|
-
|
|
466
|
-
|
|
482
|
+
Example: datacontract changelog datacontract-v1.yaml datacontract-v2.yaml
|
|
467
483
|
```
|
|
468
484
|
|
|
469
485
|
```bash
|
|
@@ -472,8 +488,7 @@ $ datacontract changelog v1.odcs.yaml v2.odcs.yaml
|
|
|
472
488
|
|
|
473
489
|
### test
|
|
474
490
|
```
|
|
475
|
-
|
|
476
|
-
Usage: datacontract test [OPTIONS] [LOCATION]
|
|
491
|
+
Usage: datacontract test [OPTIONS] [LOCATION]
|
|
477
492
|
|
|
478
493
|
Run schema and quality tests on configured servers.
|
|
479
494
|
|
|
@@ -522,13 +537,22 @@ $ datacontract changelog v1.odcs.yaml v2.odcs.yaml
|
|
|
522
537
|
│ publishing the data │
|
|
523
538
|
│ contract. │
|
|
524
539
|
│ [default: ssl-verification] │
|
|
540
|
+
│ --inline-references --no-inline-references Resolve external references │
|
|
541
|
+
│ (currently: │
|
|
542
|
+
│ authoritativeDefinitions[t… │
|
|
543
|
+
│ in {definition, │
|
|
544
|
+
│ semantics}]) in the │
|
|
545
|
+
│ contract and inline the │
|
|
546
|
+
│ fetched content from the │
|
|
547
|
+
│ configured entropy-data │
|
|
548
|
+
│ host. │
|
|
549
|
+
│ [default: │
|
|
550
|
+
│ inline-references] │
|
|
525
551
|
│ --debug --no-debug Enable debug logging │
|
|
526
552
|
│ --help Show this message and exit. │
|
|
527
553
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
528
554
|
|
|
529
|
-
Example: datacontract test datacontract.yaml --server production
|
|
530
|
-
|
|
531
|
-
|
|
555
|
+
Example: datacontract test datacontract.yaml --server production
|
|
532
556
|
```
|
|
533
557
|
|
|
534
558
|
Data Contract CLI connects to a data source and runs schema and quality tests to verify that the data contract is valid.
|
|
@@ -540,7 +564,7 @@ $ datacontract test --server production datacontract.yaml
|
|
|
540
564
|
For CI/CD pipelines, see [`ci`](#ci).
|
|
541
565
|
|
|
542
566
|
The application uses different engines, based on the server `type`.
|
|
543
|
-
Internally, it connects with DuckDB, Spark, or a native connection and executes
|
|
567
|
+
Internally, it connects with DuckDB, Spark, or a native connection and executes most checks with _ibis_ (compiling dialect-specific SQL per backend) and validates JSON with _fastjsonschema_.
|
|
544
568
|
|
|
545
569
|
#### Supported Data Sources
|
|
546
570
|
|
|
@@ -671,7 +695,7 @@ We support authentication to BigQuery using Service Account Key or Application D
|
|
|
671
695
|
* BigQuery Job User
|
|
672
696
|
* BigQuery Data Viewer
|
|
673
697
|
|
|
674
|
-
When no `DATACONTRACT_BIGQUERY_ACCOUNT_INFO_JSON_PATH` is set, the CLI falls back to ADC/WIF automatically
|
|
698
|
+
When no `DATACONTRACT_BIGQUERY_ACCOUNT_INFO_JSON_PATH` is set, the CLI falls back to Application Default Credentials (ADC/WIF) automatically.
|
|
675
699
|
|
|
676
700
|
##### Example
|
|
677
701
|
|
|
@@ -764,6 +788,8 @@ models:
|
|
|
764
788
|
| `DATACONTRACT_SQLSERVER_DRIVER` | `ODBC Driver 18 for SQL Server` | ODBC driver name |
|
|
765
789
|
| `DATACONTRACT_SQLSERVER_TRUSTED_CONNECTION` | `True` | Deprecated. Equivalent to `AUTHENTICATION=windows` |
|
|
766
790
|
|
|
791
|
+
The `cli` mode reuses an `az login` session through the Azure default credential chain and requires ODBC Driver 18.1 or newer.
|
|
792
|
+
|
|
767
793
|
</details>
|
|
768
794
|
|
|
769
795
|
<details markdown="1">
|
|
@@ -841,9 +867,17 @@ models:
|
|
|
841
867
|
|
|
842
868
|
| Environment Variable | Example | Description |
|
|
843
869
|
|-------------------------------------------|--------------------------------------|-----------------------------------------------------------|
|
|
844
|
-
| `DATACONTRACT_DATABRICKS_TOKEN` | `dapia00000000000000000000000000000` | The personal access token to authenticate |
|
|
845
|
-
| `DATACONTRACT_DATABRICKS_HTTP_PATH` | `/sql/1.0/warehouses/b053a3ffffffff` | The HTTP path to the SQL warehouse or compute cluster |
|
|
846
870
|
| `DATACONTRACT_DATABRICKS_SERVER_HOSTNAME` | `dbc-abcdefgh-1234.cloud.databricks.com` | The host name of the SQL warehouse or compute cluster |
|
|
871
|
+
| `DATACONTRACT_DATABRICKS_HTTP_PATH` | `/sql/1.0/warehouses/b053a3ffffffff` | The HTTP path to the SQL warehouse or compute cluster |
|
|
872
|
+
| `DATACONTRACT_DATABRICKS_TOKEN` | `dapia00000000000000000000000000000` | A personal access token (PAT) to authenticate |
|
|
873
|
+
| `DATACONTRACT_DATABRICKS_CLIENT_ID` | `00000000-0000-0000-0000-000000000000` | Service principal application (client) ID for OAuth machine-to-machine (M2M) auth |
|
|
874
|
+
| `DATACONTRACT_DATABRICKS_CLIENT_SECRET` | `dose00000000000000000000000000000000` | Service principal OAuth secret, used together with the client ID |
|
|
875
|
+
| `DATACONTRACT_DATABRICKS_PROFILE` | `my-profile` | A profile from `~/.databrickscfg`, delegating to the Databricks SDK unified auth (also resolves Azure CLI / managed identity) |
|
|
876
|
+
| `DATACONTRACT_DATABRICKS_AUTH_TYPE` | `databricks-oauth` | Explicit connector auth type, e.g. `databricks-oauth` for the interactive user-to-machine (U2M) browser login |
|
|
877
|
+
|
|
878
|
+
The authentication method is selected from the variables you set, in this order:
|
|
879
|
+
a personal access token, then an OAuth service principal (`CLIENT_ID` + `CLIENT_SECRET`),
|
|
880
|
+
then a config profile, then an explicit `AUTH_TYPE`.
|
|
847
881
|
|
|
848
882
|
</details>
|
|
849
883
|
|
|
@@ -969,16 +1003,17 @@ models:
|
|
|
969
1003
|
```
|
|
970
1004
|
|
|
971
1005
|
##### Environment Variables
|
|
972
|
-
|
|
1006
|
+
Any `DATACONTRACT_SNOWFLAKE_`-prefixed variable is passed (lowercased, prefix stripped) as a connection parameter to the [snowflake-connector-python](https://docs.snowflake.com/en/developer-guide/python-connector/python-connector-api#connect) driver that the ibis Snowflake backend uses.
|
|
973
1007
|
For example:
|
|
974
1008
|
|
|
975
|
-
|
|
|
1009
|
+
| Connection parameter | Environment Variable |
|
|
976
1010
|
|----------------------|---------------------------------------------|
|
|
977
|
-
| `
|
|
1011
|
+
| `user` | `DATACONTRACT_SNOWFLAKE_USERNAME` or `DATACONTRACT_SNOWFLAKE_USER` |
|
|
978
1012
|
| `password` | `DATACONTRACT_SNOWFLAKE_PASSWORD` |
|
|
979
1013
|
| `warehouse` | `DATACONTRACT_SNOWFLAKE_WAREHOUSE` |
|
|
980
1014
|
| `role` | `DATACONTRACT_SNOWFLAKE_ROLE` |
|
|
981
|
-
|
|
1015
|
+
|
|
1016
|
+
(`DATACONTRACT_SNOWFLAKE_USERNAME` is accepted as an alias for the connector's `user` parameter.)
|
|
982
1017
|
|
|
983
1018
|
Beware, that parameters:
|
|
984
1019
|
* `account`
|
|
@@ -1082,24 +1117,14 @@ models:
|
|
|
1082
1117
|
```
|
|
1083
1118
|
|
|
1084
1119
|
##### Environment Variables
|
|
1085
|
-
|
|
1086
|
-
For example:
|
|
1087
|
-
|
|
1088
|
-
| Soda parameter | Environment Variable | Details |
|
|
1089
|
-
|---------------------|-------------------------------------------|---------------------|
|
|
1090
|
-
| `username` | `DATACONTRACT_REDSHIFT_USERNAME` | |
|
|
1091
|
-
| `password` | `DATACONTRACT_REDSHIFT_PASSWORD` | leave unset for IAM |
|
|
1092
|
-
| `region` | `DATACONTRACT_REDSHIFT_REGION` | for IAM |
|
|
1093
|
-
| `access_key_id` | `DATACONTRACT_REDSHIFT_ACCESS_KEY_ID` | for IAM |
|
|
1094
|
-
| `secret_access_key` | `DATACONTRACT_REDSHIFT_SECRET_ACCESS_KEY` | for IAM |
|
|
1095
|
-
| `role_arn` | `DATACONTRACT_REDSHIFT_ROLE_ARN` | for IAM |
|
|
1096
|
-
|
|
1097
|
-
IAM credentials can be supplied in two ways:
|
|
1120
|
+
Redshift is reached over the PostgreSQL wire protocol via the ibis Postgres backend, using username/password authentication.
|
|
1098
1121
|
|
|
1099
|
-
|
|
1100
|
-
|
|
1122
|
+
| Connection parameter | Environment Variable |
|
|
1123
|
+
|----------------------|----------------------------------|
|
|
1124
|
+
| `user` | `DATACONTRACT_REDSHIFT_USERNAME` |
|
|
1125
|
+
| `password` | `DATACONTRACT_REDSHIFT_PASSWORD` |
|
|
1101
1126
|
|
|
1102
|
-
>IAM authentication is supported
|
|
1127
|
+
> Note: IAM-based authentication (region / access key / role ARN) is not currently supported for Redshift, because ibis connects through the generic Postgres backend rather than a Redshift-specific driver.
|
|
1103
1128
|
|
|
1104
1129
|
</details>
|
|
1105
1130
|
|
|
@@ -1175,7 +1200,7 @@ models:
|
|
|
1175
1200
|
<details markdown="1">
|
|
1176
1201
|
<summary><strong>Impala</strong></summary>
|
|
1177
1202
|
|
|
1178
|
-
Data Contract CLI can run
|
|
1203
|
+
Data Contract CLI can run checks against an Apache Impala cluster.
|
|
1179
1204
|
|
|
1180
1205
|
##### Example
|
|
1181
1206
|
|
|
@@ -1186,7 +1211,7 @@ servers:
|
|
|
1186
1211
|
type: impala
|
|
1187
1212
|
host: my-impala-host
|
|
1188
1213
|
port: 443
|
|
1189
|
-
# Optional default database used for
|
|
1214
|
+
# Optional default database used for the checks
|
|
1190
1215
|
database: my_database
|
|
1191
1216
|
models:
|
|
1192
1217
|
my_table_1: # corresponds to a table
|
|
@@ -1218,7 +1243,7 @@ If `physicalType` is not specified in the schema, we recommend the following map
|
|
|
1218
1243
|
| `date` | `DATE` |
|
|
1219
1244
|
| `datetime` | `TIMESTAMP` |
|
|
1220
1245
|
|
|
1221
|
-
This keeps the Impala schema compatible with the expectations of the
|
|
1246
|
+
This keeps the Impala schema compatible with the expectations of the checks generated by datacontract-cli.
|
|
1222
1247
|
|
|
1223
1248
|
</details>
|
|
1224
1249
|
|
|
@@ -1362,8 +1387,7 @@ $ datacontract dbt sync orders.odcs.yaml --publish https://api.entropy-data.com/
|
|
|
1362
1387
|
|
|
1363
1388
|
### ci
|
|
1364
1389
|
```
|
|
1365
|
-
|
|
1366
|
-
Usage: datacontract ci [OPTIONS] [LOCATIONS]...
|
|
1390
|
+
Usage: datacontract ci [OPTIONS] [LOCATIONS]...
|
|
1367
1391
|
|
|
1368
1392
|
Run tests for CI/CD pipelines. Emits GitHub Actions annotations and step summary.
|
|
1369
1393
|
|
|
@@ -1372,48 +1396,59 @@ $ datacontract dbt sync orders.odcs.yaml --publish https://api.entropy-data.com/
|
|
|
1372
1396
|
│ file(s). │
|
|
1373
1397
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1374
1398
|
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
|
|
1375
|
-
│ --json-schema
|
|
1376
|
-
│
|
|
1377
|
-
│
|
|
1378
|
-
│
|
|
1379
|
-
│
|
|
1380
|
-
│
|
|
1381
|
-
│
|
|
1382
|
-
│
|
|
1383
|
-
│
|
|
1384
|
-
│
|
|
1385
|
-
│
|
|
1386
|
-
│
|
|
1387
|
-
│
|
|
1388
|
-
│
|
|
1389
|
-
│ --
|
|
1390
|
-
│
|
|
1391
|
-
│
|
|
1392
|
-
│
|
|
1393
|
-
│
|
|
1394
|
-
│
|
|
1395
|
-
│
|
|
1396
|
-
│ --
|
|
1397
|
-
│
|
|
1398
|
-
│ --
|
|
1399
|
-
│
|
|
1400
|
-
│ --
|
|
1401
|
-
│
|
|
1402
|
-
│
|
|
1403
|
-
│
|
|
1404
|
-
│
|
|
1405
|
-
│
|
|
1406
|
-
│
|
|
1407
|
-
│
|
|
1408
|
-
│
|
|
1409
|
-
│
|
|
1410
|
-
│
|
|
1411
|
-
│
|
|
1399
|
+
│ --json-schema TEXT The location (url or │
|
|
1400
|
+
│ path) of the ODCS JSON │
|
|
1401
|
+
│ Schema │
|
|
1402
|
+
│ --server TEXT The server configuration │
|
|
1403
|
+
│ to run the schema and │
|
|
1404
|
+
│ quality tests. Use the │
|
|
1405
|
+
│ key of the server object │
|
|
1406
|
+
│ in the data contract │
|
|
1407
|
+
│ yaml file to refer to a │
|
|
1408
|
+
│ server, e.g., │
|
|
1409
|
+
│ `production`, or `all` │
|
|
1410
|
+
│ for all servers │
|
|
1411
|
+
│ (default). │
|
|
1412
|
+
│ [default: all] │
|
|
1413
|
+
│ --publish TEXT The url to publish the │
|
|
1414
|
+
│ results after the test. │
|
|
1415
|
+
│ --output PATH Specify the file path │
|
|
1416
|
+
│ where the test results │
|
|
1417
|
+
│ should be written to │
|
|
1418
|
+
│ (e.g., │
|
|
1419
|
+
│ './test-results/TEST-da… │
|
|
1420
|
+
│ --output-format [json|junit] The target format for │
|
|
1421
|
+
│ the test results. │
|
|
1422
|
+
│ --logs --no-logs Print logs │
|
|
1423
|
+
│ [default: no-logs] │
|
|
1424
|
+
│ --json Print test results as │
|
|
1425
|
+
│ JSON to stdout. │
|
|
1426
|
+
│ --fail-on [warning|error|never] Minimum severity that │
|
|
1427
|
+
│ causes a non-zero exit │
|
|
1428
|
+
│ code. │
|
|
1429
|
+
│ [default: error] │
|
|
1430
|
+
│ --ssl-verification --no-ssl-verification SSL verification when │
|
|
1431
|
+
│ publishing the data │
|
|
1432
|
+
│ contract. │
|
|
1433
|
+
│ [default: │
|
|
1434
|
+
│ ssl-verification] │
|
|
1435
|
+
│ --inline-references --no-inline-references Resolve external │
|
|
1436
|
+
│ references (currently: │
|
|
1437
|
+
│ authoritativeDefinition… │
|
|
1438
|
+
│ in {definition, │
|
|
1439
|
+
│ semantics}]) in the │
|
|
1440
|
+
│ contract and inline the │
|
|
1441
|
+
│ fetched content from the │
|
|
1442
|
+
│ configured entropy-data │
|
|
1443
|
+
│ host. │
|
|
1444
|
+
│ [default: │
|
|
1445
|
+
│ inline-references] │
|
|
1446
|
+
│ --debug --no-debug Enable debug logging │
|
|
1447
|
+
│ --help Show this message and │
|
|
1448
|
+
│ exit. │
|
|
1412
1449
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1413
1450
|
|
|
1414
|
-
Example: datacontract ci datacontract.yaml --output test-results.xml --output-format junit
|
|
1415
|
-
|
|
1416
|
-
|
|
1451
|
+
Example: datacontract ci datacontract.yaml --output test-results.xml --output-format junit
|
|
1417
1452
|
```
|
|
1418
1453
|
|
|
1419
1454
|
The `ci` command wraps [`test`](#test) with CI/CD-specific features:
|
|
@@ -1496,8 +1531,7 @@ steps:
|
|
|
1496
1531
|
|
|
1497
1532
|
### export
|
|
1498
1533
|
```
|
|
1499
|
-
|
|
1500
|
-
Usage: datacontract export [OPTIONS] COMMAND [ARGS]...
|
|
1534
|
+
Usage: datacontract export [OPTIONS] COMMAND [ARGS]...
|
|
1501
1535
|
|
|
1502
1536
|
Convert a data contract to a target format.
|
|
1503
1537
|
|
|
@@ -1537,9 +1571,7 @@ steps:
|
|
|
1537
1571
|
|
|
1538
1572
|
Example: datacontract export html datacontract.yaml --output datacontract.html
|
|
1539
1573
|
For SQL dialects (postgres, mysql, snowflake, databricks, sqlserver, trino, oracle), use
|
|
1540
|
-
`datacontract export sql --dialect <dialect>`.
|
|
1541
|
-
|
|
1542
|
-
|
|
1574
|
+
`datacontract export sql --dialect <dialect>`.
|
|
1543
1575
|
```
|
|
1544
1576
|
|
|
1545
1577
|
Run `datacontract export <format> --help` to see the format-specific options (e.g. `datacontract export sql --help`). If you are missing a format, please [create an issue on GitHub](https://github.com/datacontract/datacontract-cli/issues).
|
|
@@ -1875,8 +1907,7 @@ For more information about the Excel template structure, visit the [ODCS Excel T
|
|
|
1875
1907
|
|
|
1876
1908
|
### import
|
|
1877
1909
|
```
|
|
1878
|
-
|
|
1879
|
-
Usage: datacontract import [OPTIONS] COMMAND [ARGS]...
|
|
1910
|
+
Usage: datacontract import [OPTIONS] COMMAND [ARGS]...
|
|
1880
1911
|
|
|
1881
1912
|
Create a data contract from a source format.
|
|
1882
1913
|
|
|
@@ -1902,9 +1933,7 @@ For more information about the Excel template structure, visit the [ODCS Excel T
|
|
|
1902
1933
|
│ excel Import a data contract from an Excel file. │
|
|
1903
1934
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1904
1935
|
|
|
1905
|
-
Example: datacontract import sql --source ddl.sql --dialect postgres --output datacontract.yaml
|
|
1906
|
-
|
|
1907
|
-
|
|
1936
|
+
Example: datacontract import sql --source ddl.sql --dialect postgres --output datacontract.yaml
|
|
1908
1937
|
```
|
|
1909
1938
|
|
|
1910
1939
|
Run `datacontract import <format> --help` to see the format-specific options (e.g. `datacontract import sql --help`). If you are missing a format, please [create an issue on GitHub](https://github.com/datacontract/datacontract-cli/issues).
|
|
@@ -1973,6 +2002,8 @@ datacontract import unity --table <table_full_name>
|
|
|
1973
2002
|
Importing from dbt manifest file.
|
|
1974
2003
|
You may give the `--model` parameter to enumerate the tables that should be imported. If no tables are given, _all_ available tables of the database will be imported.
|
|
1975
2004
|
|
|
2005
|
+
For [versioned dbt models](https://docs.getdbt.com/docs/collaborate/govern/model-versions), use the `name.vN` convention to target a specific version. Omitting the version suffix imports all versions of that model.
|
|
2006
|
+
|
|
1976
2007
|
Examples:
|
|
1977
2008
|
|
|
1978
2009
|
```bash
|
|
@@ -2116,15 +2147,9 @@ datacontract import csv --source "test.csv"
|
|
|
2116
2147
|
|
|
2117
2148
|
Importing from protobuf File. Specify file in `source` parameter.
|
|
2118
2149
|
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|----------------|--------------------------------------|
|
|
2123
|
-
| macOS | `brew install protobuf` |
|
|
2124
|
-
| Debian/Ubuntu | `sudo apt install protobuf-compiler` |
|
|
2125
|
-
| Fedora/RHEL | `sudo dnf install protobuf-compiler` |
|
|
2126
|
-
| Arch | `sudo pacman -S protobuf` |
|
|
2127
|
-
| Windows | `choco install protoc` (or [download a release](https://github.com/protocolbuffers/protobuf/releases)) |
|
|
2150
|
+
`.proto` files are parsed with a pure-Python parser, so no `protoc` compiler or
|
|
2151
|
+
other system dependency is required. Transitive `import` statements (including
|
|
2152
|
+
across subdirectories) are resolved automatically.
|
|
2128
2153
|
|
|
2129
2154
|
Example:
|
|
2130
2155
|
|
|
@@ -2137,8 +2162,7 @@ datacontract import protobuf --source "test.proto"
|
|
|
2137
2162
|
|
|
2138
2163
|
### catalog
|
|
2139
2164
|
```
|
|
2140
|
-
|
|
2141
|
-
Usage: datacontract catalog [OPTIONS]
|
|
2165
|
+
Usage: datacontract catalog [OPTIONS]
|
|
2142
2166
|
|
|
2143
2167
|
Create a html catalog of data contracts.
|
|
2144
2168
|
|
|
@@ -2153,9 +2177,7 @@ datacontract import protobuf --source "test.proto"
|
|
|
2153
2177
|
│ --help Show this message and exit. │
|
|
2154
2178
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2155
2179
|
|
|
2156
|
-
Example: datacontract catalog --files "**/*.yaml" --output catalog/
|
|
2157
|
-
|
|
2158
|
-
|
|
2180
|
+
Example: datacontract catalog --files "**/*.yaml" --output catalog/
|
|
2159
2181
|
```
|
|
2160
2182
|
|
|
2161
2183
|
Examples:
|
|
@@ -2170,8 +2192,7 @@ datacontract catalog --files "*.odcs.yaml"
|
|
|
2170
2192
|
|
|
2171
2193
|
### publish
|
|
2172
2194
|
```
|
|
2173
|
-
|
|
2174
|
-
Usage: datacontract publish [OPTIONS] [LOCATION]
|
|
2195
|
+
Usage: datacontract publish [OPTIONS] [LOCATION]
|
|
2175
2196
|
|
|
2176
2197
|
Publish the data contract to the Entropy Data.
|
|
2177
2198
|
|
|
@@ -2189,15 +2210,12 @@ datacontract catalog --files "*.odcs.yaml"
|
|
|
2189
2210
|
│ --help Show this message and exit. │
|
|
2190
2211
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2191
2212
|
|
|
2192
|
-
Example: datacontract publish datacontract.yaml
|
|
2193
|
-
|
|
2194
|
-
|
|
2213
|
+
Example: datacontract publish datacontract.yaml
|
|
2195
2214
|
```
|
|
2196
2215
|
|
|
2197
2216
|
### api
|
|
2198
2217
|
```
|
|
2199
|
-
|
|
2200
|
-
Usage: datacontract api [OPTIONS]
|
|
2218
|
+
Usage: datacontract api [OPTIONS]
|
|
2201
2219
|
|
|
2202
2220
|
Start the datacontract CLI as server application with REST API.
|
|
2203
2221
|
|
|
@@ -2226,9 +2244,7 @@ datacontract catalog --files "*.odcs.yaml"
|
|
|
2226
2244
|
│ --help Show this message and exit. │
|
|
2227
2245
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
2228
2246
|
|
|
2229
|
-
Example: datacontract api --port 4242 --host 0.0.0.0
|
|
2230
|
-
|
|
2231
|
-
|
|
2247
|
+
Example: datacontract api --port 4242 --host 0.0.0.0
|
|
2232
2248
|
```
|
|
2233
2249
|
|
|
2234
2250
|
## Integrations
|
|
@@ -2478,10 +2494,11 @@ models:
|
|
|
2478
2494
|
|
|
2479
2495
|
- Install [uv](https://docs.astral.sh/uv/)
|
|
2480
2496
|
- Python base interpreter should be 3.11.x.
|
|
2497
|
+
- 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`.
|
|
2481
2498
|
- Docker engine must be running to execute the tests.
|
|
2482
2499
|
|
|
2483
2500
|
```bash
|
|
2484
|
-
|
|
2501
|
+
sdk use java 21.0.11-tem
|
|
2485
2502
|
uv python pin 3.11
|
|
2486
2503
|
uv venv
|
|
2487
2504
|
uv pip install -e '.[dev]'
|