datacontract-cli 0.10.23__tar.gz → 0.10.24__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of datacontract-cli might be problematic. Click here for more details.
- {datacontract_cli-0.10.23/datacontract_cli.egg-info → datacontract_cli-0.10.24}/PKG-INFO +276 -194
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/README.md +247 -167
- datacontract_cli-0.10.24/datacontract/__init__.py +13 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/catalog/catalog.py +2 -2
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/data_contract.py +5 -3
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/data_contract_test.py +13 -4
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +3 -2
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/check_soda_execute.py +16 -3
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/duckdb_connection.py +61 -5
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/kafka.py +3 -2
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/avro_converter.py +8 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/bigquery_converter.py +1 -1
- datacontract_cli-0.10.24/datacontract/export/duckdb_type_converter.py +57 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/odcs_v3_exporter.py +6 -5
- datacontract_cli-0.10.24/datacontract/export/protobuf_converter.py +199 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/avro_importer.py +31 -6
- datacontract_cli-0.10.24/datacontract/imports/csv_importer.py +143 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/importer.py +1 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/importer_factory.py +5 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/odcs_v3_importer.py +48 -6
- datacontract_cli-0.10.24/datacontract/imports/protobuf_importer.py +266 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/resolve.py +23 -8
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/data_contract_specification.py +2 -2
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/run.py +3 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/datacontract.html +2 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/index.html +2 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24/datacontract_cli.egg-info}/PKG-INFO +276 -194
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/SOURCES.txt +5 -3
- datacontract_cli-0.10.24/datacontract_cli.egg-info/requires.txt +92 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/pyproject.toml +29 -27
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_api.py +1 -1
- datacontract_cli-0.10.24/tests/test_duckdb_json.py +77 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_avro.py +23 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_odcs_v3.py +6 -5
- datacontract_cli-0.10.24/tests/test_export_protobuf.py +61 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_avro.py +7 -2
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_csv.py +30 -6
- datacontract_cli-0.10.24/tests/test_import_protobuf.py +104 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_spark.py +1 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_lint.py +1 -1
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_dataframe.py +1 -1
- datacontract_cli-0.10.23/datacontract/export/csv_type_converter.py +0 -36
- datacontract_cli-0.10.23/datacontract/export/protobuf_converter.py +0 -105
- datacontract_cli-0.10.23/datacontract/imports/csv_importer.py +0 -89
- datacontract_cli-0.10.23/datacontract/lint/linters/quality_schema_linter.py +0 -52
- datacontract_cli-0.10.23/datacontract_cli.egg-info/requires.txt +0 -90
- datacontract_cli-0.10.23/tests/test_export_protobuf.py +0 -56
- datacontract_cli-0.10.23/tests/test_quality_schema_linter.py +0 -35
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/LICENSE +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/api.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking_change.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/breaking/breaking_rules.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/cli.py +0 -0
- {datacontract_cli-0.10.23/datacontract → datacontract_cli-0.10.24/datacontract/engines}/__init__.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/data_contract_checks.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
- {datacontract_cli-0.10.23/datacontract/engines → datacontract_cli-0.10.24/datacontract/engines/soda}/__init__.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/bigquery.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/engines/soda/connections/trino.py +0 -0
- {datacontract_cli-0.10.23/datacontract/engines/soda → datacontract_cli-0.10.24/datacontract/export}/__init__.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/avro_idl_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/custom_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/data_caterer_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dbml_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dbt_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/dcs_exporter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/exporter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/exporter_factory.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/go_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/great_expectations_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/html_export.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/iceberg_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/jsonschema_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/markdown_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/pandas_type_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/pydantic_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/rdf_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sodacl_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/spark_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sql_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sql_type_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/sqlalchemy_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/export/terraform_converter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/bigquery_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/dbml_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/dbt_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/glue_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/iceberg_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/odcs_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/parquet_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/spark_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/sql_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/imports/unity_importer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/init/init_template.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/integration/datamesh_manager.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/lint.py +0 -0
- {datacontract_cli-0.10.23/datacontract/export → datacontract_cli-0.10.24/datacontract/lint/linters}/__init__.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/description_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/field_reference_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/notice_period_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/model/odcs.py +0 -0
- {datacontract_cli-0.10.23/datacontract/lint/linters → datacontract_cli-0.10.24/datacontract/output}/__init__.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/junit_test_results.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/output_format.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/output/test_results_writer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/quality.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/setup.cfg +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_breaking.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_cli.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_data_contract_checks.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_data_contract_specification.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_avro_idl.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_complex_data_contract.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_custom.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_iceberg.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_jsonschema.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_markdown.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sodacl.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_spark.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sql.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_sqlalchemy.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_dbt.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_glue.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_iceberg.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_parquet.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_sql_postgres.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_sql_sqlserver.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_resolve.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_roundtrip_jsonschema.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_spec_fields_field.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_spec_ref.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_azure_remote.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_kafka.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_output_junit.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_postgres.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_quality.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_s3_json_remote.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_snowflake.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_sqlserver.py +0 -0
- {datacontract_cli-0.10.23 → datacontract_cli-0.10.24}/tests/test_test_trino.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.24
|
|
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
|
Project-URL: Homepage, https://cli.datacontract.com
|
|
@@ -18,45 +18,44 @@ Requires-Dist: requests<2.33,>=2.31
|
|
|
18
18
|
Requires-Dist: fastjsonschema<2.22.0,>=2.19.1
|
|
19
19
|
Requires-Dist: fastparquet<2025.0.0,>=2024.5.0
|
|
20
20
|
Requires-Dist: numpy<2.0.0,>=1.26.4
|
|
21
|
-
Requires-Dist: python-multipart
|
|
22
|
-
Requires-Dist: rich<
|
|
21
|
+
Requires-Dist: python-multipart<1.0.0,>=0.0.20
|
|
22
|
+
Requires-Dist: rich<14.0,>=13.7
|
|
23
23
|
Requires-Dist: sqlglot<27.0.0,>=26.6.0
|
|
24
24
|
Requires-Dist: duckdb<2.0.0,>=1.0.0
|
|
25
|
-
Requires-Dist: soda-core-duckdb<3.
|
|
25
|
+
Requires-Dist: soda-core-duckdb<3.6.0,>=3.3.20
|
|
26
26
|
Requires-Dist: setuptools>=60
|
|
27
|
-
Requires-Dist: python-dotenv
|
|
28
|
-
Requires-Dist: boto3<
|
|
29
|
-
Requires-Dist: Jinja2
|
|
30
|
-
Requires-Dist: jinja_partials
|
|
27
|
+
Requires-Dist: python-dotenv<2.0.0,>=1.0.0
|
|
28
|
+
Requires-Dist: boto3<2.0.0,>=1.34.41
|
|
29
|
+
Requires-Dist: Jinja2<4.0.0,>=3.1.5
|
|
30
|
+
Requires-Dist: jinja_partials<1.0.0,>=0.2.1
|
|
31
31
|
Provides-Extra: avro
|
|
32
32
|
Requires-Dist: avro==1.12.0; extra == "avro"
|
|
33
33
|
Provides-Extra: bigquery
|
|
34
|
-
Requires-Dist: soda-core-bigquery<3.
|
|
34
|
+
Requires-Dist: soda-core-bigquery<3.6.0,>=3.3.20; extra == "bigquery"
|
|
35
35
|
Provides-Extra: csv
|
|
36
|
-
Requires-Dist: clevercsv>=0.8.2; extra == "csv"
|
|
37
36
|
Requires-Dist: pandas>=2.0.0; extra == "csv"
|
|
38
37
|
Provides-Extra: databricks
|
|
39
|
-
Requires-Dist: soda-core-spark-df<3.
|
|
40
|
-
Requires-Dist: soda-core-spark[databricks]<3.
|
|
41
|
-
Requires-Dist: databricks-sql-connector<
|
|
42
|
-
Requires-Dist: databricks-sdk<0.
|
|
38
|
+
Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "databricks"
|
|
39
|
+
Requires-Dist: soda-core-spark[databricks]<3.6.0,>=3.3.20; extra == "databricks"
|
|
40
|
+
Requires-Dist: databricks-sql-connector<4.1.0,>=3.7.0; extra == "databricks"
|
|
41
|
+
Requires-Dist: databricks-sdk<0.50.0; extra == "databricks"
|
|
43
42
|
Provides-Extra: iceberg
|
|
44
43
|
Requires-Dist: pyiceberg==0.8.1; extra == "iceberg"
|
|
45
44
|
Provides-Extra: kafka
|
|
46
45
|
Requires-Dist: datacontract-cli[avro]; extra == "kafka"
|
|
47
|
-
Requires-Dist: soda-core-spark-df<3.
|
|
46
|
+
Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "kafka"
|
|
48
47
|
Provides-Extra: postgres
|
|
49
|
-
Requires-Dist: soda-core-postgres<3.
|
|
48
|
+
Requires-Dist: soda-core-postgres<3.6.0,>=3.3.20; extra == "postgres"
|
|
50
49
|
Provides-Extra: s3
|
|
51
50
|
Requires-Dist: s3fs==2025.2.0; extra == "s3"
|
|
52
51
|
Requires-Dist: aiobotocore<2.20.0,>=2.17.0; extra == "s3"
|
|
53
52
|
Provides-Extra: snowflake
|
|
54
|
-
Requires-Dist: snowflake-connector-python[pandas]<3.
|
|
55
|
-
Requires-Dist: soda-core-snowflake<3.
|
|
53
|
+
Requires-Dist: snowflake-connector-python[pandas]<3.15,>=3.6; extra == "snowflake"
|
|
54
|
+
Requires-Dist: soda-core-snowflake<3.6.0,>=3.3.20; extra == "snowflake"
|
|
56
55
|
Provides-Extra: sqlserver
|
|
57
|
-
Requires-Dist: soda-core-sqlserver<3.
|
|
56
|
+
Requires-Dist: soda-core-sqlserver<3.6.0,>=3.3.20; extra == "sqlserver"
|
|
58
57
|
Provides-Extra: trino
|
|
59
|
-
Requires-Dist: soda-core-trino<3.
|
|
58
|
+
Requires-Dist: soda-core-trino<3.6.0,>=3.3.20; extra == "trino"
|
|
60
59
|
Provides-Extra: dbt
|
|
61
60
|
Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
|
|
62
61
|
Provides-Extra: dbml
|
|
@@ -66,23 +65,26 @@ Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
|
|
|
66
65
|
Provides-Extra: rdf
|
|
67
66
|
Requires-Dist: rdflib==7.0.0; extra == "rdf"
|
|
68
67
|
Provides-Extra: api
|
|
69
|
-
Requires-Dist: fastapi==0.115.
|
|
68
|
+
Requires-Dist: fastapi==0.115.12; extra == "api"
|
|
70
69
|
Requires-Dist: uvicorn==0.34.0; extra == "api"
|
|
70
|
+
Provides-Extra: protobuf
|
|
71
|
+
Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
|
|
71
72
|
Provides-Extra: all
|
|
72
|
-
Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
73
|
+
Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,protobuf,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
73
74
|
Provides-Extra: dev
|
|
74
75
|
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
75
76
|
Requires-Dist: httpx==0.28.1; extra == "dev"
|
|
76
77
|
Requires-Dist: kafka-python; extra == "dev"
|
|
77
|
-
Requires-Dist: moto==5.
|
|
78
|
+
Requires-Dist: moto==5.1.3; extra == "dev"
|
|
78
79
|
Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
79
|
-
Requires-Dist: pre-commit<4.
|
|
80
|
+
Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
|
|
80
81
|
Requires-Dist: pytest; extra == "dev"
|
|
81
82
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
82
83
|
Requires-Dist: pymssql==2.3.2; extra == "dev"
|
|
83
84
|
Requires-Dist: ruff; extra == "dev"
|
|
84
|
-
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.
|
|
85
|
-
Requires-Dist: trino==0.
|
|
85
|
+
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
|
|
86
|
+
Requires-Dist: trino==0.333.0; extra == "dev"
|
|
87
|
+
Dynamic: license-file
|
|
86
88
|
|
|
87
89
|
# Data Contract CLI
|
|
88
90
|
|
|
@@ -317,7 +319,7 @@ A list of available extras:
|
|
|
317
319
|
| Parquet | `pip install datacontract-cli[parquet]` |
|
|
318
320
|
| RDF | `pip install datacontract-cli[rdf]` |
|
|
319
321
|
| API (run as web server) | `pip install datacontract-cli[api]` |
|
|
320
|
-
|
|
322
|
+
| protobuf | `pip install datacontract-cli[protobuf]` |
|
|
321
323
|
|
|
322
324
|
|
|
323
325
|
## Documentation
|
|
@@ -341,17 +343,16 @@ Commands
|
|
|
341
343
|
|
|
342
344
|
Usage: datacontract init [OPTIONS] [LOCATION]
|
|
343
345
|
|
|
344
|
-
|
|
346
|
+
Create an empty data contract.
|
|
345
347
|
|
|
346
348
|
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
|
|
347
|
-
│ location [LOCATION] The location
|
|
348
|
-
│
|
|
349
|
+
│ location [LOCATION] The location of the data contract file to │
|
|
350
|
+
│ create. │
|
|
349
351
|
│ [default: datacontract.yaml] │
|
|
350
352
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
351
353
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
352
354
|
│ --template TEXT URL of a template or data contract │
|
|
353
|
-
│ [default:
|
|
354
|
-
│ https://datacontract.com/datacontrac… │
|
|
355
|
+
│ [default: None] │
|
|
355
356
|
│ --overwrite --no-overwrite Replace the existing │
|
|
356
357
|
│ datacontract.yaml │
|
|
357
358
|
│ [default: no-overwrite] │
|
|
@@ -373,52 +374,77 @@ Commands
|
|
|
373
374
|
│ [default: datacontract.yaml] │
|
|
374
375
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
375
376
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
376
|
-
│ --schema
|
|
377
|
-
│
|
|
378
|
-
│
|
|
379
|
-
│
|
|
380
|
-
│
|
|
377
|
+
│ --schema TEXT The location (url or path) of the Data │
|
|
378
|
+
│ Contract Specification JSON Schema │
|
|
379
|
+
│ [default: None] │
|
|
380
|
+
│ --output PATH Specify the file path where the test results │
|
|
381
|
+
│ should be written to (e.g., │
|
|
382
|
+
│ './test-results/TEST-datacontract.xml'). If │
|
|
383
|
+
│ no path is provided, the output will be │
|
|
384
|
+
│ printed to stdout. │
|
|
385
|
+
│ [default: None] │
|
|
386
|
+
│ --output-format [junit] The target format for the test results. │
|
|
387
|
+
│ [default: None] │
|
|
388
|
+
│ --help Show this message and exit. │
|
|
381
389
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
382
390
|
|
|
383
391
|
```
|
|
384
392
|
|
|
385
393
|
### test
|
|
386
394
|
```
|
|
387
|
-
|
|
388
|
-
Usage: datacontract test [OPTIONS] [LOCATION]
|
|
389
|
-
|
|
390
|
-
Run schema and quality tests on configured servers.
|
|
391
|
-
|
|
392
|
-
╭─ Arguments
|
|
393
|
-
│ location [LOCATION] The location (url or path) of the data contract
|
|
394
|
-
│
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
│
|
|
399
|
-
│
|
|
400
|
-
│
|
|
401
|
-
│
|
|
402
|
-
│
|
|
403
|
-
│
|
|
404
|
-
│
|
|
405
|
-
│
|
|
406
|
-
│
|
|
407
|
-
│
|
|
408
|
-
│
|
|
409
|
-
│
|
|
410
|
-
│
|
|
411
|
-
│
|
|
412
|
-
│
|
|
413
|
-
│
|
|
414
|
-
│
|
|
415
|
-
│
|
|
416
|
-
│ --
|
|
417
|
-
│
|
|
418
|
-
│
|
|
419
|
-
│
|
|
420
|
-
│ --
|
|
421
|
-
|
|
395
|
+
|
|
396
|
+
Usage: datacontract test [OPTIONS] [LOCATION]
|
|
397
|
+
|
|
398
|
+
Run schema and quality tests on configured servers.
|
|
399
|
+
|
|
400
|
+
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
|
|
401
|
+
│ location [LOCATION] The location (url or path) of the data contract │
|
|
402
|
+
│ yaml. │
|
|
403
|
+
│ [default: datacontract.yaml] │
|
|
404
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
405
|
+
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
406
|
+
│ --schema TEXT The location (url or │
|
|
407
|
+
│ path) of the Data │
|
|
408
|
+
│ Contract │
|
|
409
|
+
│ Specification JSON │
|
|
410
|
+
│ Schema │
|
|
411
|
+
│ [default: None] │
|
|
412
|
+
│ --server TEXT The server │
|
|
413
|
+
│ configuration to run │
|
|
414
|
+
│ the schema and │
|
|
415
|
+
│ quality tests. Use │
|
|
416
|
+
│ the key of the server │
|
|
417
|
+
│ object in the data │
|
|
418
|
+
│ contract yaml file to │
|
|
419
|
+
│ refer to a server, │
|
|
420
|
+
│ e.g., `production`, │
|
|
421
|
+
│ or `all` for all │
|
|
422
|
+
│ servers (default). │
|
|
423
|
+
│ [default: all] │
|
|
424
|
+
│ --publish TEXT The url to publish │
|
|
425
|
+
│ the results after the │
|
|
426
|
+
│ test │
|
|
427
|
+
│ [default: None] │
|
|
428
|
+
│ --output PATH Specify the file path │
|
|
429
|
+
│ where the test │
|
|
430
|
+
│ results should be │
|
|
431
|
+
│ written to (e.g., │
|
|
432
|
+
│ './test-results/TEST… │
|
|
433
|
+
│ [default: None] │
|
|
434
|
+
│ --output-format [junit] The target format for │
|
|
435
|
+
│ the test results. │
|
|
436
|
+
│ [default: None] │
|
|
437
|
+
│ --logs --no-logs Print logs │
|
|
438
|
+
│ [default: no-logs] │
|
|
439
|
+
│ --ssl-verification --no-ssl-verificati… SSL verification when │
|
|
440
|
+
│ publishing the data │
|
|
441
|
+
│ contract. │
|
|
442
|
+
│ [default: │
|
|
443
|
+
│ ssl-verification] │
|
|
444
|
+
│ --help Show this message and │
|
|
445
|
+
│ exit. │
|
|
446
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
447
|
+
|
|
422
448
|
```
|
|
423
449
|
|
|
424
450
|
Data Contract CLI connects to a data source and runs schema and quality tests to verify that the data contract is valid.
|
|
@@ -889,41 +915,40 @@ models:
|
|
|
889
915
|
│ [default: datacontract.yaml] │
|
|
890
916
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
891
917
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
892
|
-
│ * --format
|
|
893
|
-
│
|
|
894
|
-
│
|
|
895
|
-
│
|
|
896
|
-
│
|
|
897
|
-
│
|
|
898
|
-
│
|
|
899
|
-
│
|
|
900
|
-
│
|
|
901
|
-
│ --output
|
|
902
|
-
│
|
|
903
|
-
│
|
|
904
|
-
│
|
|
905
|
-
│
|
|
906
|
-
│
|
|
907
|
-
│ --server
|
|
908
|
-
│
|
|
909
|
-
│ --model
|
|
910
|
-
│
|
|
911
|
-
│
|
|
912
|
-
│
|
|
913
|
-
│
|
|
914
|
-
│
|
|
915
|
-
│ --schema
|
|
916
|
-
│
|
|
917
|
-
│
|
|
918
|
-
│
|
|
919
|
-
│
|
|
920
|
-
│
|
|
921
|
-
│
|
|
922
|
-
│
|
|
923
|
-
│
|
|
924
|
-
│
|
|
925
|
-
│
|
|
926
|
-
│ --help Show this message and exit. │
|
|
918
|
+
│ * --format [jsonschema|pydantic-model The export format. │
|
|
919
|
+
│ |sodacl|dbt|dbt-sources|db [default: None] │
|
|
920
|
+
│ t-staging-sql|odcs|rdf|avr [required] │
|
|
921
|
+
│ o|protobuf|great-expectati │
|
|
922
|
+
│ ons|terraform|avro-idl|sql │
|
|
923
|
+
│ |sql-query|html|go|bigquer │
|
|
924
|
+
│ y|dbml|spark|sqlalchemy|da │
|
|
925
|
+
│ ta-caterer|dcs|markdown|ic │
|
|
926
|
+
│ eberg|custom] │
|
|
927
|
+
│ --output PATH Specify the file path where │
|
|
928
|
+
│ the exported data will be │
|
|
929
|
+
│ saved. If no path is │
|
|
930
|
+
│ provided, the output will │
|
|
931
|
+
│ be printed to stdout. │
|
|
932
|
+
│ [default: None] │
|
|
933
|
+
│ --server TEXT The server name to export. │
|
|
934
|
+
│ [default: None] │
|
|
935
|
+
│ --model TEXT Use the key of the model in │
|
|
936
|
+
│ the data contract yaml file │
|
|
937
|
+
│ to refer to a model, e.g., │
|
|
938
|
+
│ `orders`, or `all` for all │
|
|
939
|
+
│ models (default). │
|
|
940
|
+
│ [default: all] │
|
|
941
|
+
│ --schema TEXT The location (url or path) │
|
|
942
|
+
│ of the Data Contract │
|
|
943
|
+
│ Specification JSON Schema │
|
|
944
|
+
│ [default: None] │
|
|
945
|
+
│ --engine TEXT [engine] The engine used │
|
|
946
|
+
│ for great expection run. │
|
|
947
|
+
│ [default: None] │
|
|
948
|
+
│ --template PATH [custom] The file path of │
|
|
949
|
+
│ Jinja template. │
|
|
950
|
+
│ [default: None] │
|
|
951
|
+
│ --help Show this message and exit. │
|
|
927
952
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
928
953
|
╭─ RDF Options ────────────────────────────────────────────────────────────────╮
|
|
929
954
|
│ --rdf-base TEXT [rdf] The base URI used to generate the RDF graph. │
|
|
@@ -1232,71 +1257,104 @@ FROM
|
|
|
1232
1257
|
|
|
1233
1258
|
### import
|
|
1234
1259
|
```
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
│
|
|
1243
|
-
│
|
|
1244
|
-
│
|
|
1245
|
-
│
|
|
1246
|
-
│
|
|
1247
|
-
│
|
|
1248
|
-
│
|
|
1249
|
-
│
|
|
1250
|
-
│
|
|
1251
|
-
│
|
|
1252
|
-
│
|
|
1253
|
-
│
|
|
1254
|
-
│
|
|
1255
|
-
│
|
|
1256
|
-
│
|
|
1257
|
-
│
|
|
1258
|
-
│
|
|
1259
|
-
│
|
|
1260
|
-
│
|
|
1261
|
-
│
|
|
1262
|
-
│
|
|
1263
|
-
│
|
|
1264
|
-
│
|
|
1265
|
-
│ --
|
|
1266
|
-
│
|
|
1267
|
-
│
|
|
1268
|
-
│
|
|
1269
|
-
│
|
|
1270
|
-
│
|
|
1271
|
-
│
|
|
1272
|
-
│
|
|
1273
|
-
│ --
|
|
1274
|
-
│
|
|
1275
|
-
│
|
|
1276
|
-
│
|
|
1277
|
-
│
|
|
1278
|
-
│
|
|
1279
|
-
│
|
|
1280
|
-
│
|
|
1281
|
-
│
|
|
1282
|
-
│
|
|
1283
|
-
│
|
|
1284
|
-
│
|
|
1285
|
-
│
|
|
1286
|
-
│
|
|
1287
|
-
│
|
|
1288
|
-
│
|
|
1289
|
-
│
|
|
1290
|
-
│
|
|
1291
|
-
│
|
|
1292
|
-
│
|
|
1293
|
-
│
|
|
1294
|
-
│
|
|
1295
|
-
│
|
|
1296
|
-
│
|
|
1297
|
-
│
|
|
1298
|
-
│ --
|
|
1299
|
-
|
|
1260
|
+
|
|
1261
|
+
Usage: datacontract import [OPTIONS]
|
|
1262
|
+
|
|
1263
|
+
Create a data contract from the given source location. Saves to file specified
|
|
1264
|
+
by `output` option if present, otherwise prints to stdout.
|
|
1265
|
+
|
|
1266
|
+
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
1267
|
+
│ * --format [sql|avro|dbt|dbml|gl The format of the │
|
|
1268
|
+
│ ue|jsonschema|bigquer source file. │
|
|
1269
|
+
│ y|odcs|unity|spark|ic [default: None] │
|
|
1270
|
+
│ eberg|parquet|csv|pro [required] │
|
|
1271
|
+
│ tobuf] │
|
|
1272
|
+
│ --output PATH Specify the file path │
|
|
1273
|
+
│ where the Data │
|
|
1274
|
+
│ Contract will be │
|
|
1275
|
+
│ saved. If no path is │
|
|
1276
|
+
│ provided, the output │
|
|
1277
|
+
│ will be printed to │
|
|
1278
|
+
│ stdout. │
|
|
1279
|
+
│ [default: None] │
|
|
1280
|
+
│ --source TEXT The path to the file │
|
|
1281
|
+
│ or Glue Database that │
|
|
1282
|
+
│ should be imported. │
|
|
1283
|
+
│ [default: None] │
|
|
1284
|
+
│ --dialect TEXT The SQL dialect to │
|
|
1285
|
+
│ use when importing │
|
|
1286
|
+
│ SQL files, e.g., │
|
|
1287
|
+
│ postgres, tsql, │
|
|
1288
|
+
│ bigquery. │
|
|
1289
|
+
│ [default: None] │
|
|
1290
|
+
│ --glue-table TEXT List of table ids to │
|
|
1291
|
+
│ import from the Glue │
|
|
1292
|
+
│ Database (repeat for │
|
|
1293
|
+
│ multiple table ids, │
|
|
1294
|
+
│ leave empty for all │
|
|
1295
|
+
│ tables in the │
|
|
1296
|
+
│ dataset). │
|
|
1297
|
+
│ [default: None] │
|
|
1298
|
+
│ --bigquery-project TEXT The bigquery project │
|
|
1299
|
+
│ id. │
|
|
1300
|
+
│ [default: None] │
|
|
1301
|
+
│ --bigquery-dataset TEXT The bigquery dataset │
|
|
1302
|
+
│ id. │
|
|
1303
|
+
│ [default: None] │
|
|
1304
|
+
│ --bigquery-table TEXT List of table ids to │
|
|
1305
|
+
│ import from the │
|
|
1306
|
+
│ bigquery API (repeat │
|
|
1307
|
+
│ for multiple table │
|
|
1308
|
+
│ ids, leave empty for │
|
|
1309
|
+
│ all tables in the │
|
|
1310
|
+
│ dataset). │
|
|
1311
|
+
│ [default: None] │
|
|
1312
|
+
│ --unity-table-full-n… TEXT Full name of a table │
|
|
1313
|
+
│ in the unity catalog │
|
|
1314
|
+
│ [default: None] │
|
|
1315
|
+
│ --dbt-model TEXT List of models names │
|
|
1316
|
+
│ to import from the │
|
|
1317
|
+
│ dbt manifest file │
|
|
1318
|
+
│ (repeat for multiple │
|
|
1319
|
+
│ models names, leave │
|
|
1320
|
+
│ empty for all models │
|
|
1321
|
+
│ in the dataset). │
|
|
1322
|
+
│ [default: None] │
|
|
1323
|
+
│ --dbml-schema TEXT List of schema names │
|
|
1324
|
+
│ to import from the │
|
|
1325
|
+
│ DBML file (repeat for │
|
|
1326
|
+
│ multiple schema │
|
|
1327
|
+
│ names, leave empty │
|
|
1328
|
+
│ for all tables in the │
|
|
1329
|
+
│ file). │
|
|
1330
|
+
│ [default: None] │
|
|
1331
|
+
│ --dbml-table TEXT List of table names │
|
|
1332
|
+
│ to import from the │
|
|
1333
|
+
│ DBML file (repeat for │
|
|
1334
|
+
│ multiple table names, │
|
|
1335
|
+
│ leave empty for all │
|
|
1336
|
+
│ tables in the file). │
|
|
1337
|
+
│ [default: None] │
|
|
1338
|
+
│ --iceberg-table TEXT Table name to assign │
|
|
1339
|
+
│ to the model created │
|
|
1340
|
+
│ from the Iceberg │
|
|
1341
|
+
│ schema. │
|
|
1342
|
+
│ [default: None] │
|
|
1343
|
+
│ --template TEXT The location (url or │
|
|
1344
|
+
│ path) of the Data │
|
|
1345
|
+
│ Contract │
|
|
1346
|
+
│ Specification │
|
|
1347
|
+
│ Template │
|
|
1348
|
+
│ [default: None] │
|
|
1349
|
+
│ --schema TEXT The location (url or │
|
|
1350
|
+
│ path) of the Data │
|
|
1351
|
+
│ Contract │
|
|
1352
|
+
│ Specification JSON │
|
|
1353
|
+
│ Schema │
|
|
1354
|
+
│ [default: None] │
|
|
1355
|
+
│ --help Show this message and │
|
|
1356
|
+
│ exit. │
|
|
1357
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
1300
1358
|
|
|
1301
1359
|
```
|
|
1302
1360
|
|
|
@@ -1323,7 +1381,7 @@ Available import options:
|
|
|
1323
1381
|
| `spark` | Import from Spark StructTypes | ✅ |
|
|
1324
1382
|
| `dbml` | Import from DBML models | ✅ |
|
|
1325
1383
|
| `csv` | Import from CSV File | ✅ |
|
|
1326
|
-
| `protobuf` | Import from Protobuf schemas |
|
|
1384
|
+
| `protobuf` | Import from Protobuf schemas | ✅ |
|
|
1327
1385
|
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1328
1386
|
| `parquet` | Import from Parquet File Metadta | ✅ |
|
|
1329
1387
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
@@ -1475,6 +1533,16 @@ Example:
|
|
|
1475
1533
|
datacontract import --format csv --source "test.csv"
|
|
1476
1534
|
```
|
|
1477
1535
|
|
|
1536
|
+
#### protobuf
|
|
1537
|
+
|
|
1538
|
+
Importing from protobuf File. Specify file in `source` parameter.
|
|
1539
|
+
|
|
1540
|
+
Example:
|
|
1541
|
+
|
|
1542
|
+
```bash
|
|
1543
|
+
datacontract import --format protobuf --source "test.proto"
|
|
1544
|
+
```
|
|
1545
|
+
|
|
1478
1546
|
|
|
1479
1547
|
### breaking
|
|
1480
1548
|
```
|
|
@@ -1550,7 +1618,7 @@ datacontract import --format csv --source "test.csv"
|
|
|
1550
1618
|
|
|
1551
1619
|
Usage: datacontract catalog [OPTIONS]
|
|
1552
1620
|
|
|
1553
|
-
Create
|
|
1621
|
+
Create a html catalog of data contracts.
|
|
1554
1622
|
|
|
1555
1623
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
1556
1624
|
│ --files TEXT Glob pattern for the data contract files to include in │
|
|
@@ -1560,8 +1628,7 @@ datacontract import --format csv --source "test.csv"
|
|
|
1560
1628
|
│ [default: catalog/] │
|
|
1561
1629
|
│ --schema TEXT The location (url or path) of the Data Contract │
|
|
1562
1630
|
│ Specification JSON Schema │
|
|
1563
|
-
│ [default:
|
|
1564
|
-
│ https://datacontract.com/datacontract.schema.json] │
|
|
1631
|
+
│ [default: None] │
|
|
1565
1632
|
│ --help Show this message and exit. │
|
|
1566
1633
|
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
1567
1634
|
|
|
@@ -1594,8 +1661,7 @@ datacontract catalog --files "*.odcs.yaml"
|
|
|
1594
1661
|
│ path) of the Data │
|
|
1595
1662
|
│ Contract Specification │
|
|
1596
1663
|
│ JSON Schema │
|
|
1597
|
-
│ [default:
|
|
1598
|
-
│ https://datacontract.c… │
|
|
1664
|
+
│ [default: None] │
|
|
1599
1665
|
│ --ssl-verification --no-ssl-verification SSL verification when │
|
|
1600
1666
|
│ publishing the data │
|
|
1601
1667
|
│ contract. │
|
|
@@ -1609,21 +1675,27 @@ datacontract catalog --files "*.odcs.yaml"
|
|
|
1609
1675
|
|
|
1610
1676
|
### api
|
|
1611
1677
|
```
|
|
1612
|
-
|
|
1613
|
-
Usage: datacontract api [OPTIONS]
|
|
1614
|
-
|
|
1615
|
-
Start the datacontract CLI as server application with REST API.
|
|
1616
|
-
The OpenAPI documentation as Swagger UI is available on http://localhost:4242.
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1678
|
+
|
|
1679
|
+
Usage: datacontract api [OPTIONS]
|
|
1680
|
+
|
|
1681
|
+
Start the datacontract CLI as server application with REST API.
|
|
1682
|
+
The OpenAPI documentation as Swagger UI is available on http://localhost:4242.
|
|
1683
|
+
You can execute the commands directly from the Swagger UI.
|
|
1684
|
+
To protect the API, you can set the environment variable
|
|
1685
|
+
DATACONTRACT_CLI_API_KEY to a secret API key. To authenticate, requests must
|
|
1686
|
+
include the header 'x-api-key' with the correct API key. This is highly
|
|
1687
|
+
recommended, as data contract tests may be subject to SQL injections or leak
|
|
1688
|
+
sensitive information.
|
|
1689
|
+
To connect to servers (such as a Snowflake data source), set the credentials
|
|
1690
|
+
as environment variables as documented in https://cli.datacontract.com/#test
|
|
1691
|
+
|
|
1692
|
+
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
1693
|
+
│ --port INTEGER Bind socket to this port. [default: 4242] │
|
|
1694
|
+
│ --host TEXT Bind socket to this host. Hint: For running in │
|
|
1695
|
+
│ docker, set it to 0.0.0.0 │
|
|
1696
|
+
│ [default: 127.0.0.1] │
|
|
1697
|
+
│ --help Show this message and exit. │
|
|
1698
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
1627
1699
|
|
|
1628
1700
|
```
|
|
1629
1701
|
|
|
@@ -1917,6 +1989,15 @@ pre-commit run --all-files
|
|
|
1917
1989
|
pytest
|
|
1918
1990
|
```
|
|
1919
1991
|
|
|
1992
|
+
### Use uv (recommended)
|
|
1993
|
+
|
|
1994
|
+
```bash
|
|
1995
|
+
# make sure uv is installed
|
|
1996
|
+
uv python pin 3.11
|
|
1997
|
+
uv sync --all-extras
|
|
1998
|
+
uv run pytest
|
|
1999
|
+
```
|
|
2000
|
+
|
|
1920
2001
|
|
|
1921
2002
|
### Docker Build
|
|
1922
2003
|
|
|
@@ -1988,6 +2069,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
1988
2069
|
|
|
1989
2070
|
- [INNOQ](https://innoq.com)
|
|
1990
2071
|
- [Data Catering](https://data.catering/)
|
|
2072
|
+
- [Oliver Wyman](https://www.oliverwyman.com/)
|
|
1991
2073
|
- And many more. To add your company, please create a pull request.
|
|
1992
2074
|
|
|
1993
2075
|
## Related Tools
|