datacontract-cli 0.10.21__tar.gz → 0.10.22__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.21/datacontract_cli.egg-info → datacontract_cli-0.10.22}/PKG-INFO +139 -166
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/README.md +129 -156
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/breaking/breaking.py +1 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/breaking/breaking_rules.py +1 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/cli.py +5 -5
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/data_contract.py +14 -100
- datacontract_cli-0.10.22/datacontract/engines/data_contract_checks.py +735 -0
- datacontract_cli-0.10.22/datacontract/engines/data_contract_test.py +51 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/check_soda_execute.py +36 -30
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/kafka.py +8 -3
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/avro_converter.py +2 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/exporter.py +0 -2
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/exporter_factory.py +0 -12
- datacontract_cli-0.10.22/datacontract/export/sodacl_converter.py +30 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/sql_type_converter.py +7 -2
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/odcs_importer.py +6 -3
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/odcs_v3_importer.py +2 -0
- datacontract_cli-0.10.22/datacontract/imports/sql_importer.py +286 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/model/exceptions.py +4 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/model/run.py +11 -4
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22/datacontract_cli.egg-info}/PKG-INFO +139 -166
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract_cli.egg-info/SOURCES.txt +6 -14
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract_cli.egg-info/requires.txt +10 -10
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/pyproject.toml +12 -12
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_api.py +1 -1
- datacontract_cli-0.10.22/tests/test_data_contract_checks.py +10 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_avro.py +11 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_odcs_v3.py +1 -1
- datacontract_cli-0.10.22/tests/test_export_sodacl.py +122 -0
- datacontract_cli-0.10.21/tests/test_import_sql.py → datacontract_cli-0.10.22/tests/test_import_sql_postgres.py +55 -22
- datacontract_cli-0.10.22/tests/test_import_sql_sqlserver.py +178 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_lint.py +1 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_spec_ref.py +1 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_dataframe.py +23 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_postgres.py +17 -1
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_quality.py +9 -6
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_json_multiple_models.py +0 -3
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_json_remote.py +1 -1
- datacontract_cli-0.10.21/datacontract/engines/soda/connections/dask.py +0 -28
- datacontract_cli-0.10.21/datacontract/export/odcs_v2_exporter.py +0 -124
- datacontract_cli-0.10.21/datacontract/export/sodacl_converter.py +0 -302
- datacontract_cli-0.10.21/datacontract/imports/odcs_v2_importer.py +0 -177
- datacontract_cli-0.10.21/datacontract/imports/sql_importer.py +0 -86
- datacontract_cli-0.10.21/datacontract/lint/linters/example_model_linter.py +0 -91
- datacontract_cli-0.10.21/tests/test_example_model_linter.py +0 -82
- datacontract_cli-0.10.21/tests/test_export_odcs_v2.py +0 -81
- datacontract_cli-0.10.21/tests/test_export_sodacl.py +0 -91
- datacontract_cli-0.10.21/tests/test_import_odcs_v2.py +0 -50
- datacontract_cli-0.10.21/tests/test_test_examples_csv.py +0 -30
- datacontract_cli-0.10.21/tests/test_test_examples_formats_valid.py +0 -15
- datacontract_cli-0.10.21/tests/test_test_examples_inline.py +0 -20
- datacontract_cli-0.10.21/tests/test_test_examples_json.py +0 -29
- datacontract_cli-0.10.21/tests/test_test_examples_missing.py +0 -23
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/LICENSE +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/api.py +0 -0
- {datacontract_cli-0.10.21/datacontract/model → datacontract_cli-0.10.22/datacontract/breaking}/breaking_change.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/catalog/catalog.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/__init__.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/bigquery.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/duckdb.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/engines/soda/connections/trino.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/__init__.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/avro_idl_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/bigquery_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/csv_type_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/custom_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/data_caterer_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/dbml_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/dbt_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/dcs_exporter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/go_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/great_expectations_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/html_export.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/iceberg_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/jsonschema_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/markdown_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/odcs_v3_exporter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/pandas_type_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/protobuf_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/pydantic_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/rdf_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/spark_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/sql_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/sqlalchemy_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/export/terraform_converter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/avro_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/bigquery_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/csv_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/dbml_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/dbt_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/glue_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/iceberg_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/importer_factory.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/parquet_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/spark_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/imports/unity_importer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/init/init_template.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/integration/datamesh_manager.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/lint.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/__init__.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/description_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/field_reference_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/notice_period_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/quality_schema_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/resolve.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/model/data_contract_specification.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/model/odcs.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/index.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/quality.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/setup.cfg +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_breaking.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_cli.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_data_contract_specification.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_avro_idl.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_complex_data_contract.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_custom.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_iceberg.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_jsonschema.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_markdown.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_spark.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_sql.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_sqlalchemy.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_avro.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_csv.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_dbt.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_glue.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_iceberg.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_parquet.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_spark.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_quality_schema_linter.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_resolve.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_roundtrip_jsonschema.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_spec_fields_field.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_azure_remote.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_kafka.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_snowflake.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_sqlserver.py +0 -0
- {datacontract_cli-0.10.21 → datacontract_cli-0.10.22}/tests/test_test_trino.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.22
|
|
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
|
|
@@ -20,13 +20,13 @@ Requires-Dist: fastparquet==2024.11.0
|
|
|
20
20
|
Requires-Dist: numpy<2.0.0,>=1.26.4
|
|
21
21
|
Requires-Dist: python-multipart==0.0.20
|
|
22
22
|
Requires-Dist: rich<13.10,>=13.7
|
|
23
|
-
Requires-Dist:
|
|
23
|
+
Requires-Dist: sqlglot<27.0.0,>=26.6.0
|
|
24
24
|
Requires-Dist: duckdb==1.1.2
|
|
25
|
-
Requires-Dist: soda-core-duckdb<3.
|
|
25
|
+
Requires-Dist: soda-core-duckdb<3.5.0,>=3.3.20
|
|
26
26
|
Requires-Dist: setuptools>=60
|
|
27
27
|
Requires-Dist: python-dotenv~=1.0.0
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: boto3<1.36.12,>=1.34.41
|
|
29
|
+
Requires-Dist: Jinja2>=3.1.5
|
|
30
30
|
Requires-Dist: jinja_partials>=0.2.1
|
|
31
31
|
Provides-Extra: avro
|
|
32
32
|
Requires-Dist: avro==1.12.0; extra == "avro"
|
|
@@ -51,8 +51,8 @@ Provides-Extra: s3
|
|
|
51
51
|
Requires-Dist: s3fs==2024.12.0; extra == "s3"
|
|
52
52
|
Requires-Dist: aiobotocore<2.20.0,>=2.17.0; extra == "s3"
|
|
53
53
|
Provides-Extra: snowflake
|
|
54
|
-
Requires-Dist: snowflake-connector-python[pandas]<3.
|
|
55
|
-
Requires-Dist: soda-core-snowflake<3.
|
|
54
|
+
Requires-Dist: snowflake-connector-python[pandas]<3.14,>=3.6; extra == "snowflake"
|
|
55
|
+
Requires-Dist: soda-core-snowflake<3.5.0,>=3.3.20; extra == "snowflake"
|
|
56
56
|
Provides-Extra: sqlserver
|
|
57
57
|
Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.20; extra == "sqlserver"
|
|
58
58
|
Provides-Extra: trino
|
|
@@ -63,13 +63,13 @@ Provides-Extra: dbml
|
|
|
63
63
|
Requires-Dist: pydbml>=1.1.1; extra == "dbml"
|
|
64
64
|
Provides-Extra: parquet
|
|
65
65
|
Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
|
|
66
|
+
Provides-Extra: rdf
|
|
67
|
+
Requires-Dist: rdflib==7.0.0; extra == "rdf"
|
|
66
68
|
Provides-Extra: api
|
|
67
69
|
Requires-Dist: fastapi==0.115.6; extra == "api"
|
|
68
70
|
Requires-Dist: uvicorn==0.34.0; extra == "api"
|
|
69
|
-
Provides-Extra: custom
|
|
70
|
-
Requires-Dist: Jinja2>=3.1.5; extra == "custom"
|
|
71
71
|
Provides-Extra: all
|
|
72
|
-
Requires-Dist: datacontract-cli[api,bigquery,csv,
|
|
72
|
+
Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
73
73
|
Provides-Extra: dev
|
|
74
74
|
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
75
75
|
Requires-Dist: httpx==0.28.1; extra == "dev"
|
|
@@ -194,17 +194,20 @@ $ datacontract init datacontract.yaml
|
|
|
194
194
|
# lint the datacontract.yaml
|
|
195
195
|
$ datacontract lint datacontract.yaml
|
|
196
196
|
|
|
197
|
-
# execute schema and quality checks
|
|
197
|
+
# execute schema and quality checks (define credentials as environment variables)
|
|
198
198
|
$ datacontract test datacontract.yaml
|
|
199
199
|
|
|
200
|
-
#
|
|
201
|
-
$ datacontract
|
|
200
|
+
# export data contract as html (other formats: avro, dbt, dbt-sources, dbt-staging-sql, jsonschema, odcs, rdf, sql, sodacl, terraform, ...)
|
|
201
|
+
$ datacontract export --format html datacontract.yaml --output datacontract.html
|
|
202
202
|
|
|
203
|
-
# export data contract
|
|
204
|
-
$ datacontract export --format
|
|
203
|
+
# export data contract to ODCS
|
|
204
|
+
$ datacontract export --format odcs datacontract.yaml --output odcs.yaml
|
|
205
205
|
|
|
206
|
-
# import
|
|
207
|
-
$ datacontract import --format
|
|
206
|
+
# import ODCS to data contract
|
|
207
|
+
$ datacontract import --format odcs odcs.yaml --output datacontract.yaml
|
|
208
|
+
|
|
209
|
+
# import sql (other formats: avro, glue, bigquery, jsonschema ...)
|
|
210
|
+
$ datacontract import --format sql --source my-ddl.sql --dialect postgres --output datacontract.yaml
|
|
208
211
|
|
|
209
212
|
# find differences between two data contracts
|
|
210
213
|
$ datacontract diff datacontract-v1.yaml datacontract-v2.yaml
|
|
@@ -237,12 +240,28 @@ Python 3.10, 3.11, and 3.12 are supported. We recommend to use Python 3.11.
|
|
|
237
240
|
|
|
238
241
|
```bash
|
|
239
242
|
python3 -m pip install 'datacontract-cli[all]'
|
|
243
|
+
datacontract --version
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### pip with venv
|
|
247
|
+
|
|
248
|
+
Typically it is better to install the application in a virtual environment for your projects:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
cd my-project
|
|
252
|
+
python3.11 -m venv venv
|
|
253
|
+
source venv/bin/activate
|
|
254
|
+
pip install 'datacontract-cli[all]'
|
|
255
|
+
datacontract --version
|
|
240
256
|
```
|
|
241
257
|
|
|
242
258
|
### pipx
|
|
259
|
+
|
|
243
260
|
pipx installs into an isolated environment.
|
|
261
|
+
|
|
244
262
|
```bash
|
|
245
263
|
pipx install 'datacontract-cli[all]'
|
|
264
|
+
datacontract --version
|
|
246
265
|
```
|
|
247
266
|
|
|
248
267
|
### Docker
|
|
@@ -264,7 +283,7 @@ _Note:_ The output of Docker command line messages is limited to 80 columns and
|
|
|
264
283
|
|
|
265
284
|
|
|
266
285
|
|
|
267
|
-
## Optional Dependencies
|
|
286
|
+
## Optional Dependencies (Extras)
|
|
268
287
|
|
|
269
288
|
The CLI tool defines several optional dependencies (also known as extras) that can be installed for using with specific servers types.
|
|
270
289
|
With _all_, all server dependencies are included.
|
|
@@ -275,21 +294,23 @@ pip install datacontract-cli[all]
|
|
|
275
294
|
|
|
276
295
|
A list of available extras:
|
|
277
296
|
|
|
278
|
-
| Dependency
|
|
279
|
-
|
|
280
|
-
| Avro Support
|
|
281
|
-
| Google BigQuery
|
|
282
|
-
| Databricks Integration
|
|
283
|
-
| Iceberg
|
|
284
|
-
| Kafka Integration
|
|
285
|
-
| PostgreSQL Integration
|
|
286
|
-
| S3 Integration
|
|
287
|
-
| Snowflake Integration
|
|
288
|
-
| Microsoft SQL Server
|
|
289
|
-
| Trino
|
|
290
|
-
|
|
|
291
|
-
|
|
|
292
|
-
| Parquet
|
|
297
|
+
| Dependency | Installation Command |
|
|
298
|
+
|-------------------------|--------------------------------------------|
|
|
299
|
+
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
300
|
+
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
301
|
+
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
302
|
+
| Iceberg | `pip install datacontract-cli[iceberg]` |
|
|
303
|
+
| Kafka Integration | `pip install datacontract-cli[kafka]` |
|
|
304
|
+
| PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
|
|
305
|
+
| S3 Integration | `pip install datacontract-cli[s3]` |
|
|
306
|
+
| Snowflake Integration | `pip install datacontract-cli[snowflake]` |
|
|
307
|
+
| Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
|
|
308
|
+
| Trino | `pip install datacontract-cli[trino]` |
|
|
309
|
+
| dbt | `pip install datacontract-cli[dbt]` |
|
|
310
|
+
| DBML | `pip install datacontract-cli[dbml]` |
|
|
311
|
+
| Parquet | `pip install datacontract-cli[parquet]` |
|
|
312
|
+
| RDF | `pip install datacontract-cli[rdf]` |
|
|
313
|
+
| API (run as web server) | `pip install datacontract-cli[api]` |
|
|
293
314
|
|
|
294
315
|
|
|
295
316
|
|
|
@@ -386,11 +407,6 @@ Commands
|
|
|
386
407
|
│ for all servers │
|
|
387
408
|
│ (default). │
|
|
388
409
|
│ [default: all] │
|
|
389
|
-
│ --examples --no-examples Run the schema and │
|
|
390
|
-
│ quality tests on the │
|
|
391
|
-
│ example data within the │
|
|
392
|
-
│ data contract. │
|
|
393
|
-
│ [default: no-examples] │
|
|
394
410
|
│ --publish TEXT The url to publish the │
|
|
395
411
|
│ results after the test │
|
|
396
412
|
│ [default: None] │
|
|
@@ -877,8 +893,8 @@ models:
|
|
|
877
893
|
╭─ Options ────────────────────────────────────────────────────────────────────╮
|
|
878
894
|
│ * --format [jsonschema|pydantic-model| The export format. │
|
|
879
895
|
│ sodacl|dbt|dbt-sources|dbt- [default: None] │
|
|
880
|
-
│ staging-sql|odcs|
|
|
881
|
-
│
|
|
896
|
+
│ staging-sql|odcs| [required] │
|
|
897
|
+
│ rdf|avro|protobuf|gre │
|
|
882
898
|
│ at-expectations|terraform|a │
|
|
883
899
|
│ vro-idl|sql|sql-query|html| │
|
|
884
900
|
│ go|bigquery|dbml|spark|sqla │
|
|
@@ -936,8 +952,6 @@ Available export options:
|
|
|
936
952
|
|----------------------|---------------------------------------------------------|--------|
|
|
937
953
|
| `html` | Export to HTML | ✅ |
|
|
938
954
|
| `jsonschema` | Export to JSON Schema | ✅ |
|
|
939
|
-
| `odcs_v2` | Export to Open Data Contract Standard (ODCS) V2 | ✅ |
|
|
940
|
-
| `odcs_v3` | Export to Open Data Contract Standard (ODCS) V3 | ✅ |
|
|
941
955
|
| `odcs` | Export to Open Data Contract Standard (ODCS) V3 | ✅ |
|
|
942
956
|
| `sodacl` | Export to SodaCL quality checks in YAML format | ✅ |
|
|
943
957
|
| `dbt` | Export to dbt models in YAML format | ✅ |
|
|
@@ -1214,107 +1228,80 @@ FROM
|
|
|
1214
1228
|
|
|
1215
1229
|
### import
|
|
1216
1230
|
```
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
│
|
|
1225
|
-
│
|
|
1226
|
-
│
|
|
1227
|
-
│
|
|
1228
|
-
│
|
|
1229
|
-
│
|
|
1230
|
-
│
|
|
1231
|
-
│
|
|
1232
|
-
│
|
|
1233
|
-
│
|
|
1234
|
-
│
|
|
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
|
-
│ to import from the │
|
|
1283
|
-
│ DBML file (repeat for │
|
|
1284
|
-
│ multiple table names, │
|
|
1285
|
-
│ leave empty for all │
|
|
1286
|
-
│ tables in the file). │
|
|
1287
|
-
│ [default: None] │
|
|
1288
|
-
│ --iceberg-table TEXT Table name to assign │
|
|
1289
|
-
│ to the model created │
|
|
1290
|
-
│ from the Iceberg │
|
|
1291
|
-
│ schema. │
|
|
1292
|
-
│ [default: None] │
|
|
1293
|
-
│ --template TEXT The location (url or │
|
|
1294
|
-
│ path) of the Data │
|
|
1295
|
-
│ Contract │
|
|
1296
|
-
│ Specification │
|
|
1297
|
-
│ Template │
|
|
1298
|
-
│ [default: None] │
|
|
1299
|
-
│ --schema TEXT The location (url or │
|
|
1300
|
-
│ path) of the Data │
|
|
1301
|
-
│ Contract │
|
|
1302
|
-
│ Specification JSON │
|
|
1303
|
-
│ Schema │
|
|
1304
|
-
│ [default: │
|
|
1305
|
-
│ https://datacontract… │
|
|
1306
|
-
│ --help Show this message and │
|
|
1307
|
-
│ exit. │
|
|
1308
|
-
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
1231
|
+
Usage: datacontract import [OPTIONS]
|
|
1232
|
+
|
|
1233
|
+
Create a data contract from the given source location. Saves to file specified by `output` option if present,
|
|
1234
|
+
otherwise prints to stdout.
|
|
1235
|
+
|
|
1236
|
+
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
1237
|
+
│ * --format [sql|avro|dbt|dbml|glue|jsonschema|bi The format of the source file. │
|
|
1238
|
+
│ gquery|odcs|unity|spark|iceberg|parqu [default: None] │
|
|
1239
|
+
│ et|csv] [required] │
|
|
1240
|
+
│ --output PATH Specify the file path where the Data │
|
|
1241
|
+
│ Contract will be saved. If no path is │
|
|
1242
|
+
│ provided, the output will be printed │
|
|
1243
|
+
│ to stdout. │
|
|
1244
|
+
│ [default: None] │
|
|
1245
|
+
│ --source TEXT The path to the file or Glue Database │
|
|
1246
|
+
│ that should be imported. │
|
|
1247
|
+
│ [default: None] │
|
|
1248
|
+
│ --dialect TEXT The SQL dialect to use when importing │
|
|
1249
|
+
│ SQL files, e.g., postgres, tsql, │
|
|
1250
|
+
│ bigquery. │
|
|
1251
|
+
│ [default: None] │
|
|
1252
|
+
│ --glue-table TEXT List of table ids to import from the │
|
|
1253
|
+
│ Glue Database (repeat for multiple │
|
|
1254
|
+
│ table ids, leave empty for all tables │
|
|
1255
|
+
│ in the dataset). │
|
|
1256
|
+
│ [default: None] │
|
|
1257
|
+
│ --bigquery-project TEXT The bigquery project id. │
|
|
1258
|
+
│ [default: None] │
|
|
1259
|
+
│ --bigquery-dataset TEXT The bigquery dataset id. │
|
|
1260
|
+
│ [default: None] │
|
|
1261
|
+
│ --bigquery-table TEXT List of table ids to import from the │
|
|
1262
|
+
│ bigquery API (repeat for multiple │
|
|
1263
|
+
│ table ids, leave empty for all tables │
|
|
1264
|
+
│ in the dataset). │
|
|
1265
|
+
│ [default: None] │
|
|
1266
|
+
│ --unity-table-full-name TEXT Full name of a table in the unity │
|
|
1267
|
+
│ catalog │
|
|
1268
|
+
│ [default: None] │
|
|
1269
|
+
│ --dbt-model TEXT List of models names to import from │
|
|
1270
|
+
│ the dbt manifest file (repeat for │
|
|
1271
|
+
│ multiple models names, leave empty │
|
|
1272
|
+
│ for all models in the dataset). │
|
|
1273
|
+
│ [default: None] │
|
|
1274
|
+
│ --dbml-schema TEXT List of schema names to import from │
|
|
1275
|
+
│ the DBML file (repeat for multiple │
|
|
1276
|
+
│ schema names, leave empty for all │
|
|
1277
|
+
│ tables in the file). │
|
|
1278
|
+
│ [default: None] │
|
|
1279
|
+
│ --dbml-table TEXT List of table names to import from │
|
|
1280
|
+
│ the DBML file (repeat for multiple │
|
|
1281
|
+
│ table names, leave empty for all │
|
|
1282
|
+
│ tables in the file). │
|
|
1283
|
+
│ [default: None] │
|
|
1284
|
+
│ --iceberg-table TEXT Table name to assign to the model │
|
|
1285
|
+
│ created from the Iceberg schema. │
|
|
1286
|
+
│ [default: None] │
|
|
1287
|
+
│ --template TEXT The location (url or path) of the │
|
|
1288
|
+
│ Data Contract Specification Template │
|
|
1289
|
+
│ [default: None] │
|
|
1290
|
+
│ --schema TEXT The location (url or path) of the │
|
|
1291
|
+
│ Data Contract Specification JSON │
|
|
1292
|
+
│ Schema │
|
|
1293
|
+
│ [default: None] │
|
|
1294
|
+
│ --help Show this message and exit. │
|
|
1295
|
+
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1309
1296
|
|
|
1310
1297
|
```
|
|
1311
1298
|
|
|
1312
1299
|
Example:
|
|
1313
1300
|
```bash
|
|
1314
1301
|
# Example import from SQL DDL
|
|
1315
|
-
datacontract import --format sql --source my_ddl.sql
|
|
1302
|
+
datacontract import --format sql --source my_ddl.sql --dialect postgres
|
|
1316
1303
|
# To save to file
|
|
1317
|
-
datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
|
|
1304
|
+
datacontract import --format sql --source my_ddl.sql --dialect postgres --output datacontract.yaml
|
|
1318
1305
|
```
|
|
1319
1306
|
|
|
1320
1307
|
Available import options:
|
|
@@ -1669,24 +1656,20 @@ Create a data contract based on the actual data. This is the fastest way to get
|
|
|
1669
1656
|
$ datacontract test
|
|
1670
1657
|
```
|
|
1671
1658
|
|
|
1672
|
-
2. Add
|
|
1659
|
+
2. Add quality checks and additional type constraints one by one to the contract and make sure the
|
|
1660
|
+
data still adheres to the contract.
|
|
1673
1661
|
```bash
|
|
1674
|
-
$ datacontract test --examples
|
|
1675
|
-
```
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
3. Add quality checks and additional type constraints one by one to the contract and make sure the examples and the actual data still adheres to the contract. Check against examples for a very fast feedback loop.
|
|
1679
|
-
```bash
|
|
1680
|
-
$ datacontract test --examples
|
|
1681
1662
|
$ datacontract test
|
|
1682
1663
|
```
|
|
1683
1664
|
|
|
1684
|
-
|
|
1665
|
+
3. Make sure that all the best practices for a `datacontract.yaml` are met using the linter. You
|
|
1666
|
+
probably forgot to document some fields and add the terms and conditions.
|
|
1685
1667
|
```bash
|
|
1686
1668
|
$ datacontract lint
|
|
1687
1669
|
```
|
|
1688
1670
|
|
|
1689
|
-
|
|
1671
|
+
4. Set up a CI pipeline that executes daily for continuous quality checks. You can also report the
|
|
1672
|
+
test results to tools like [Data Mesh Manager](https://datamesh-manager.com)
|
|
1690
1673
|
```bash
|
|
1691
1674
|
$ datacontract test --publish https://api.datamesh-manager.com/api/test-results
|
|
1692
1675
|
```
|
|
@@ -1700,30 +1683,15 @@ Create a data contract based on the requirements from use cases.
|
|
|
1700
1683
|
$ datacontract init
|
|
1701
1684
|
```
|
|
1702
1685
|
|
|
1703
|
-
2.
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
```bash
|
|
1707
|
-
$ datacontract test --examples
|
|
1708
|
-
```
|
|
1709
|
-
|
|
1710
|
-
4. Add quality checks and additional type constraints one by one to the contract and make sure the examples and the actual data still adheres to the contract. Check against examples for a very fast feedback loop.
|
|
1711
|
-
```bash
|
|
1712
|
-
$ datacontract test --examples
|
|
1713
|
-
```
|
|
1714
|
-
|
|
1715
|
-
5. Fill in the terms, descriptions, etc. Make sure you follow all best practices for a `datacontract.yaml` using the linter.
|
|
1686
|
+
2. Create the model and quality guarantees based on your business requirements. Fill in the terms,
|
|
1687
|
+
descriptions, etc. Make sure you follow all best practices for a `datacontract.yaml` using the
|
|
1688
|
+
linter.
|
|
1716
1689
|
```bash
|
|
1717
1690
|
$ datacontract lint
|
|
1718
1691
|
```
|
|
1719
1692
|
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
$ datacontract lint
|
|
1723
|
-
$ datacontract test --examples
|
|
1724
|
-
```
|
|
1725
|
-
|
|
1726
|
-
7. Use the export function to start building the providing data product as well as the integration into the consuming data products.
|
|
1693
|
+
3. Use the export function to start building the providing data product as well as the integration
|
|
1694
|
+
into the consuming data products.
|
|
1727
1695
|
```bash
|
|
1728
1696
|
# data provider
|
|
1729
1697
|
$ datacontract export --format dbt
|
|
@@ -1732,6 +1700,11 @@ Create a data contract based on the requirements from use cases.
|
|
|
1732
1700
|
$ datacontract export --format dbt-staging-sql
|
|
1733
1701
|
```
|
|
1734
1702
|
|
|
1703
|
+
4. Test that your data product implementation adheres to the contract.
|
|
1704
|
+
```bash
|
|
1705
|
+
$ datacontract test
|
|
1706
|
+
```
|
|
1707
|
+
|
|
1735
1708
|
### Schema Evolution
|
|
1736
1709
|
|
|
1737
1710
|
#### Non-breaking Changes
|