datacontract-cli 0.10.14__tar.gz → 0.10.15__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.10.14 → datacontract_cli-0.10.15}/PKG-INFO +83 -38
- datacontract_cli-0.10.14/datacontract_cli.egg-info/PKG-INFO → datacontract_cli-0.10.15/README.md +63 -98
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/breaking/breaking.py +227 -9
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/breaking/breaking_rules.py +24 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/catalog/catalog.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/cli.py +99 -32
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/data_contract.py +26 -4
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/fastjsonschema/check_jsonschema.py +114 -22
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/check_soda_execute.py +5 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/duckdb.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/kafka.py +12 -12
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/avro_idl_converter.py +1 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/bigquery_converter.py +4 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/data_caterer_converter.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dbml_converter.py +2 -4
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dbt_converter.py +2 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/exporter_factory.py +3 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/go_converter.py +3 -2
- datacontract_cli-0.10.15/datacontract/export/great_expectations_converter.py +312 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/jsonschema_converter.py +3 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/odcs_v2_exporter.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/odcs_v3_exporter.py +1 -1
- datacontract_cli-0.10.15/datacontract/export/pandas_type_converter.py +40 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/rdf_converter.py +4 -5
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sodacl_converter.py +6 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/spark_converter.py +7 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sql_converter.py +1 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sqlalchemy_converter.py +1 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/avro_importer.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/bigquery_importer.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/dbml_importer.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/dbt_importer.py +3 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/glue_importer.py +5 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/iceberg_importer.py +5 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/importer.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/importer_factory.py +7 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/jsonschema_importer.py +3 -2
- datacontract_cli-0.10.15/datacontract/imports/parquet_importer.py +81 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/spark_importer.py +2 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/sql_importer.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/unity_importer.py +3 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/integration/opentelemetry.py +0 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/lint.py +2 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/description_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/example_model_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/field_pattern_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/field_reference_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/notice_period_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/quality_schema_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/valid_constraints_linter.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/resolve.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/schema.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/data_contract_specification.py +11 -5
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/run.py +21 -12
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/index.html +6 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/web.py +2 -3
- datacontract_cli-0.10.14/README.md → datacontract_cli-0.10.15/datacontract_cli.egg-info/PKG-INFO +143 -19
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/SOURCES.txt +4 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/requires.txt +20 -18
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/pyproject.toml +27 -19
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_breaking.py +2 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_changelog.py +255 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_cli.py +1 -1
- datacontract_cli-0.10.15/tests/test_data_contract_specification.py +10 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_bigquery.py +1 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_complex_data_contract.py +1 -1
- datacontract_cli-0.10.15/tests/test_export_great_expectations.py +604 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_rdf.py +6 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sodacl.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_spark.py +2 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_avro.py +5 -5
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_dbt.py +3 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_iceberg.py +5 -8
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_jsonschema.py +39 -0
- datacontract_cli-0.10.15/tests/test_import_parquet.py +68 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_spark.py +5 -9
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_sql.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_integration_opentelemetry.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_lint.py +2 -3
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_resolve.py +4 -4
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_roundtrip_jsonschema.py +2 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_dataframe.py +6 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_csv.py +7 -6
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_kafka.py +1 -2
- datacontract_cli-0.10.15/tests/test_test_s3_json_remote.py +20 -0
- datacontract_cli-0.10.14/datacontract/export/great_expectations_converter.py +0 -150
- datacontract_cli-0.10.14/tests/test_export_great_expectations.py +0 -269
- datacontract_cli-0.10.14/tests/test_test_s3_json_remote.py +0 -36
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/LICENSE +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/__init__.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/bigquery.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/dask.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/engines/soda/connections/trino.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/__init__.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/avro_converter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/csv_type_converter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/dcs_exporter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/exporter.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/html_export.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/protobuf_converter.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/pydantic_converter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/sql_type_converter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/export/terraform_converter.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_importer.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_v2_importer.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/imports/odcs_v3_importer.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/init/download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/integration/datamesh_manager.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/linters/__init__.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/breaking_change.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/model/odcs.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/setup.cfg +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_example_model_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_avro.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_avro_idl.py +4 -4
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_jsonschema.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_odcs_v2.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_odcs_v3.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sql.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_sqlalchemy.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_glue.py +2 -2
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_odcs_v2.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_quality_schema_linter.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_spec_fields_field.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_spec_ref.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_azure_parquet_remote.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_formats_valid.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_inline.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_json.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_examples_missing.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_postgres.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_quality.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_delta.py +1 -1
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_snowflake.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_sqlserver.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_test_trino.py +0 -0
- {datacontract_cli-0.10.14 → datacontract_cli-0.10.15}/tests/test_web.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.15
|
|
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
|
|
@@ -11,65 +11,66 @@ Classifier: Operating System :: OS Independent
|
|
|
11
11
|
Requires-Python: >=3.10
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
13
|
License-File: LICENSE
|
|
14
|
-
Requires-Dist: typer<0.
|
|
14
|
+
Requires-Dist: typer<0.14,>=0.12
|
|
15
15
|
Requires-Dist: pydantic<2.10.0,>=2.8.2
|
|
16
16
|
Requires-Dist: pyyaml~=6.0.1
|
|
17
17
|
Requires-Dist: requests<2.33,>=2.31
|
|
18
|
-
Requires-Dist: fastapi==0.115.
|
|
19
|
-
Requires-Dist: uvicorn==0.
|
|
18
|
+
Requires-Dist: fastapi==0.115.5
|
|
19
|
+
Requires-Dist: uvicorn==0.32.1
|
|
20
20
|
Requires-Dist: fastjsonschema<2.21.0,>=2.19.1
|
|
21
21
|
Requires-Dist: fastparquet==2024.5.0
|
|
22
22
|
Requires-Dist: python-multipart==0.0.12
|
|
23
23
|
Requires-Dist: rich<13.10,>=13.7
|
|
24
24
|
Requires-Dist: simple-ddl-parser==1.7.1
|
|
25
25
|
Requires-Dist: duckdb==1.1.2
|
|
26
|
-
Requires-Dist: soda-core-duckdb<3.
|
|
26
|
+
Requires-Dist: soda-core-duckdb<3.5.0,>=3.3.1
|
|
27
27
|
Requires-Dist: setuptools>=60
|
|
28
28
|
Requires-Dist: python-dotenv~=1.0.0
|
|
29
29
|
Requires-Dist: rdflib==7.0.0
|
|
30
30
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc~=1.16
|
|
31
31
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.16
|
|
32
|
-
Requires-Dist: boto3<1.35.
|
|
32
|
+
Requires-Dist: boto3<1.35.69,>=1.34.41
|
|
33
33
|
Requires-Dist: jinja_partials>=0.2.1
|
|
34
34
|
Provides-Extra: avro
|
|
35
35
|
Requires-Dist: avro==1.12.0; extra == "avro"
|
|
36
36
|
Provides-Extra: bigquery
|
|
37
|
-
Requires-Dist: soda-core-bigquery<3.
|
|
37
|
+
Requires-Dist: soda-core-bigquery<3.5.0,>=3.3.1; extra == "bigquery"
|
|
38
38
|
Provides-Extra: databricks
|
|
39
|
-
Requires-Dist: soda-core-spark-df<3.
|
|
39
|
+
Requires-Dist: soda-core-spark-df<3.5.0,>=3.3.1; extra == "databricks"
|
|
40
40
|
Requires-Dist: databricks-sql-connector<3.6.0,>=3.1.2; extra == "databricks"
|
|
41
|
-
Requires-Dist: databricks-sdk<0.
|
|
42
|
-
Requires-Dist: soda-core-spark[databricks]<3.
|
|
41
|
+
Requires-Dist: databricks-sdk<0.39.0,>=0.32.0; extra == "databricks"
|
|
42
|
+
Requires-Dist: soda-core-spark[databricks]<3.5.0,>=3.3.1; extra == "databricks"
|
|
43
43
|
Provides-Extra: iceberg
|
|
44
44
|
Requires-Dist: pyiceberg==0.7.1; extra == "iceberg"
|
|
45
45
|
Provides-Extra: kafka
|
|
46
46
|
Requires-Dist: datacontract-cli[avro]; extra == "kafka"
|
|
47
|
-
Requires-Dist: soda-core-spark-df<3.
|
|
47
|
+
Requires-Dist: soda-core-spark-df<3.5.0,>=3.3.1; extra == "kafka"
|
|
48
48
|
Provides-Extra: postgres
|
|
49
|
-
Requires-Dist: soda-core-postgres<3.
|
|
49
|
+
Requires-Dist: soda-core-postgres<3.5.0,>=3.3.1; extra == "postgres"
|
|
50
50
|
Provides-Extra: s3
|
|
51
|
-
Requires-Dist: s3fs==2024.
|
|
51
|
+
Requires-Dist: s3fs==2024.10.0; extra == "s3"
|
|
52
52
|
Provides-Extra: snowflake
|
|
53
53
|
Requires-Dist: snowflake-connector-python[pandas]<3.13,>=3.6; extra == "snowflake"
|
|
54
|
-
Requires-Dist: soda-core-snowflake<3.
|
|
54
|
+
Requires-Dist: soda-core-snowflake<3.5.0,>=3.3.1; extra == "snowflake"
|
|
55
55
|
Provides-Extra: sqlserver
|
|
56
|
-
Requires-Dist: soda-core-sqlserver<3.
|
|
56
|
+
Requires-Dist: soda-core-sqlserver<3.5.0,>=3.3.1; extra == "sqlserver"
|
|
57
57
|
Provides-Extra: trino
|
|
58
|
-
Requires-Dist: soda-core-trino<3.
|
|
58
|
+
Requires-Dist: soda-core-trino<3.5.0,>=3.3.1; extra == "trino"
|
|
59
59
|
Provides-Extra: dbt
|
|
60
60
|
Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
|
|
61
61
|
Provides-Extra: dbml
|
|
62
62
|
Requires-Dist: pydbml>=1.1.1; extra == "dbml"
|
|
63
|
+
Provides-Extra: parquet
|
|
64
|
+
Requires-Dist: pyarrow>=12.0.0; extra == "parquet"
|
|
63
65
|
Provides-Extra: all
|
|
64
|
-
Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
66
|
+
Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,parquet,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
65
67
|
Provides-Extra: dev
|
|
66
68
|
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
67
69
|
Requires-Dist: httpx==0.27.2; extra == "dev"
|
|
68
70
|
Requires-Dist: kafka-python; extra == "dev"
|
|
69
71
|
Requires-Dist: moto==5.0.18; extra == "dev"
|
|
70
72
|
Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
71
|
-
Requires-Dist: pre-commit<
|
|
72
|
-
Requires-Dist: pyarrow>=12.0.0; extra == "dev"
|
|
73
|
+
Requires-Dist: pre-commit<4.1.0,>=3.7.1; extra == "dev"
|
|
73
74
|
Requires-Dist: pytest; extra == "dev"
|
|
74
75
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
75
76
|
Requires-Dist: pymssql==2.3.1; extra == "dev"
|
|
@@ -273,6 +274,7 @@ A list of available extras:
|
|
|
273
274
|
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
274
275
|
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
275
276
|
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
277
|
+
| Iceberg | `pip install datacontract-cli[iceberg]` |
|
|
276
278
|
| Kafka Integration | `pip install datacontract-cli[kafka]` |
|
|
277
279
|
| PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
|
|
278
280
|
| S3 Integration | `pip install datacontract-cli[s3]` |
|
|
@@ -280,6 +282,8 @@ A list of available extras:
|
|
|
280
282
|
| Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
|
|
281
283
|
| Trino | `pip install datacontract-cli[trino]` |
|
|
282
284
|
| Dbt | `pip install datacontract-cli[dbt]` |
|
|
285
|
+
| Dbml | `pip install datacontract-cli[dbml]` |
|
|
286
|
+
| Parquet | `pip install datacontract-cli[parquet]` |
|
|
283
287
|
|
|
284
288
|
|
|
285
289
|
|
|
@@ -825,19 +829,19 @@ models:
|
|
|
825
829
|
### export
|
|
826
830
|
|
|
827
831
|
```
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
832
|
+
Usage: datacontract export [OPTIONS] [LOCATION]
|
|
833
|
+
|
|
834
|
+
Convert data contract to a specific format. Saves to file specified by `output` option if present, otherwise prints to stdout.
|
|
835
|
+
|
|
833
836
|
╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
834
837
|
│ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
|
|
835
838
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
836
839
|
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
837
840
|
│ * --format [jsonschema|pydantic-model|sodacl|dbt|dbt-sources|db The export format. [default: None] [required] │
|
|
838
|
-
│ t-staging-sql|odcs|rdf|avro|protobuf
|
|
839
|
-
│
|
|
840
|
-
│
|
|
841
|
+
│ t-staging-sql|odcs|odcs_v2|odcs_v3|rdf|avro|protobuf │
|
|
842
|
+
│ |great-expectations|terraform|avro-idl|sql|sql-query │
|
|
843
|
+
│ |html|go|bigquery|dbml|spark|sqlalchemy|data-caterer │
|
|
844
|
+
│ |dcs] │
|
|
841
845
|
│ --output PATH Specify the file path where the exported data will be │
|
|
842
846
|
│ saved. If no path is provided, the output will be │
|
|
843
847
|
│ printed to stdout. │
|
|
@@ -847,6 +851,12 @@ models:
|
|
|
847
851
|
│ file to refer to a model, e.g., `orders`, or `all` │
|
|
848
852
|
│ for all models (default). │
|
|
849
853
|
│ [default: all] │
|
|
854
|
+
│ --schema TEXT The location (url or path) of the Data Contract │
|
|
855
|
+
│ Specification JSON Schema │
|
|
856
|
+
│ [default: │
|
|
857
|
+
│ https://datacontract.com/datacontract.schema.json] │
|
|
858
|
+
│ --engine TEXT [engine] The engine used for great expection run. │
|
|
859
|
+
│ [default: None] │
|
|
850
860
|
│ --help Show this message and exit. │
|
|
851
861
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
852
862
|
╭─ RDF Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
@@ -857,12 +867,11 @@ models:
|
|
|
857
867
|
│ detect the sql dialect via the specified servers in the data contract. │
|
|
858
868
|
│ [default: auto] │
|
|
859
869
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
860
|
-
|
|
861
870
|
```
|
|
862
871
|
|
|
863
872
|
```bash
|
|
864
873
|
# Example export data contract as HTML
|
|
865
|
-
datacontract export --format html
|
|
874
|
+
datacontract export --format html --output datacontract.html
|
|
866
875
|
```
|
|
867
876
|
|
|
868
877
|
Available export options:
|
|
@@ -895,9 +904,10 @@ Available export options:
|
|
|
895
904
|
| `dcs` | Export to Data Contract Specification in YAML format | ✅ |
|
|
896
905
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
897
906
|
|
|
907
|
+
|
|
898
908
|
#### Great Expectations
|
|
899
909
|
|
|
900
|
-
The export function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
|
|
910
|
+
The `export` function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
|
|
901
911
|
If the contract includes multiple models, you need to specify the names of the model you wish to export.
|
|
902
912
|
|
|
903
913
|
```shell
|
|
@@ -907,7 +917,22 @@ datacontract export datacontract.yaml --format great-expectations --model order
|
|
|
907
917
|
The export creates a list of expectations by utilizing:
|
|
908
918
|
|
|
909
919
|
- The data from the Model definition with a fixed mapping
|
|
910
|
-
- The expectations provided in the quality field for each model (find here the expectations gallery https://greatexpectations.io/expectations/)
|
|
920
|
+
- The expectations provided in the quality field for each model (find here the expectations gallery: [Great Expectations Gallery](https://greatexpectations.io/expectations/))
|
|
921
|
+
|
|
922
|
+
### Additional Arguments
|
|
923
|
+
|
|
924
|
+
To further customize the export, the following optional arguments are available:
|
|
925
|
+
|
|
926
|
+
- **`suite_name`**: The name of the expectation suite. This suite groups all generated expectations and provides a convenient identifier within Great Expectations. If not provided, a default suite name will be generated based on the model name(s).
|
|
927
|
+
|
|
928
|
+
- **`engine`**: Specifies the engine used to run Great Expectations checks. Accepted values are:
|
|
929
|
+
- `pandas` — Use this when working with in-memory data frames through the Pandas library.
|
|
930
|
+
- `spark` — Use this for working with Spark dataframes.
|
|
931
|
+
- `sql` — Use this for working with SQL databases.
|
|
932
|
+
|
|
933
|
+
- **`sql_server_type`**: Specifies the type of SQL server to connect with when `engine` is set to `sql`.
|
|
934
|
+
|
|
935
|
+
Providing `sql_server_type` ensures that the appropriate SQL dialect and connection settings are applied during the expectation validation.
|
|
911
936
|
|
|
912
937
|
#### RDF
|
|
913
938
|
|
|
@@ -1004,14 +1029,20 @@ models:
|
|
|
1004
1029
|
### import
|
|
1005
1030
|
|
|
1006
1031
|
```
|
|
1007
|
-
Usage: datacontract import [OPTIONS]
|
|
1008
|
-
|
|
1009
|
-
Create a data contract from the given source location.
|
|
1032
|
+
Usage: datacontract import [OPTIONS]
|
|
1033
|
+
|
|
1034
|
+
Create a data contract from the given source location. Saves to file specified by `output` option if present, otherwise
|
|
1035
|
+
prints to stdout.
|
|
1010
1036
|
|
|
1011
1037
|
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
1012
|
-
│ * --format [sql|avro|dbt|glue|jsonschema|bigquery
|
|
1013
|
-
│ |unity|spark|iceberg]
|
|
1038
|
+
│ * --format [sql|avro|dbt|dbml|glue|jsonschema|bigquery The format of the source file. │
|
|
1039
|
+
│ |odcs|unity|spark|iceberg|parquet] [default: None] │
|
|
1014
1040
|
│ [required] │
|
|
1041
|
+
│ --output PATH Specify the file path where the Data │
|
|
1042
|
+
│ Contract will be saved. If no path is │
|
|
1043
|
+
│ provided, the output will be printed to │
|
|
1044
|
+
│ stdout. │
|
|
1045
|
+
│ [default: None] │
|
|
1015
1046
|
│ --source TEXT The path to the file or Glue Database that │
|
|
1016
1047
|
│ should be imported. │
|
|
1017
1048
|
│ [default: None] │
|
|
@@ -1041,7 +1072,8 @@ models:
|
|
|
1041
1072
|
│ empty for all tables in the file). │
|
|
1042
1073
|
│ [default: None] │
|
|
1043
1074
|
│ --iceberg-table TEXT Table name to assign to the model created │
|
|
1044
|
-
│ from the Iceberg schema.
|
|
1075
|
+
│ from the Iceberg schema. │
|
|
1076
|
+
│ [default: None] │
|
|
1045
1077
|
│ --help Show this message and exit. │
|
|
1046
1078
|
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1047
1079
|
```
|
|
@@ -1050,6 +1082,8 @@ Example:
|
|
|
1050
1082
|
```bash
|
|
1051
1083
|
# Example import from SQL DDL
|
|
1052
1084
|
datacontract import --format sql --source my_ddl.sql
|
|
1085
|
+
# To save to file
|
|
1086
|
+
datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
|
|
1053
1087
|
```
|
|
1054
1088
|
|
|
1055
1089
|
Available import options:
|
|
@@ -1068,6 +1102,7 @@ Available import options:
|
|
|
1068
1102
|
| `dbml` | Import from DBML models | ✅ |
|
|
1069
1103
|
| `protobuf` | Import from Protobuf schemas | TBD |
|
|
1070
1104
|
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1105
|
+
| `parquet` | Import from Parquet File Metadta | ✅ |
|
|
1071
1106
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
1072
1107
|
|
|
1073
1108
|
|
|
@@ -1270,6 +1305,16 @@ datacontract import --format iceberg --source ./tests/fixtures/iceberg/simple_sc
|
|
|
1270
1305
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1271
1306
|
```
|
|
1272
1307
|
|
|
1308
|
+
Examples:
|
|
1309
|
+
|
|
1310
|
+
```
|
|
1311
|
+
# create a catalog right in the current folder
|
|
1312
|
+
datacontract catalog --output "."
|
|
1313
|
+
|
|
1314
|
+
# Create a catalog based on a filename convention
|
|
1315
|
+
datacontract catalog --files "*.odcs.yaml"
|
|
1316
|
+
```
|
|
1317
|
+
|
|
1273
1318
|
### Publish
|
|
1274
1319
|
|
|
1275
1320
|
```
|
|
@@ -1587,7 +1632,7 @@ if __name__ == "__main__":
|
|
|
1587
1632
|
Output
|
|
1588
1633
|
|
|
1589
1634
|
```yaml
|
|
1590
|
-
dataContractSpecification:
|
|
1635
|
+
dataContractSpecification: 1.1.0
|
|
1591
1636
|
id: uuid-custom
|
|
1592
1637
|
info:
|
|
1593
1638
|
title: my_custom_imported_data
|
datacontract_cli-0.10.14/datacontract_cli.egg-info/PKG-INFO → datacontract_cli-0.10.15/README.md
RENAMED
|
@@ -1,82 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.14
|
|
4
|
-
Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
|
|
5
|
-
Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
|
|
6
|
-
Project-URL: Homepage, https://cli.datacontract.com
|
|
7
|
-
Project-URL: Issues, https://github.com/datacontract/datacontract-cli/issues
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
-
Classifier: Operating System :: OS Independent
|
|
11
|
-
Requires-Python: >=3.10
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
License-File: LICENSE
|
|
14
|
-
Requires-Dist: typer<0.13,>=0.12
|
|
15
|
-
Requires-Dist: pydantic<2.10.0,>=2.8.2
|
|
16
|
-
Requires-Dist: pyyaml~=6.0.1
|
|
17
|
-
Requires-Dist: requests<2.33,>=2.31
|
|
18
|
-
Requires-Dist: fastapi==0.115.2
|
|
19
|
-
Requires-Dist: uvicorn==0.30.6
|
|
20
|
-
Requires-Dist: fastjsonschema<2.21.0,>=2.19.1
|
|
21
|
-
Requires-Dist: fastparquet==2024.5.0
|
|
22
|
-
Requires-Dist: python-multipart==0.0.12
|
|
23
|
-
Requires-Dist: rich<13.10,>=13.7
|
|
24
|
-
Requires-Dist: simple-ddl-parser==1.7.1
|
|
25
|
-
Requires-Dist: duckdb==1.1.2
|
|
26
|
-
Requires-Dist: soda-core-duckdb<3.4.0,>=3.3.1
|
|
27
|
-
Requires-Dist: setuptools>=60
|
|
28
|
-
Requires-Dist: python-dotenv~=1.0.0
|
|
29
|
-
Requires-Dist: rdflib==7.0.0
|
|
30
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc~=1.16
|
|
31
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.16
|
|
32
|
-
Requires-Dist: boto3<1.35.45,>=1.34.41
|
|
33
|
-
Requires-Dist: jinja_partials>=0.2.1
|
|
34
|
-
Provides-Extra: avro
|
|
35
|
-
Requires-Dist: avro==1.12.0; extra == "avro"
|
|
36
|
-
Provides-Extra: bigquery
|
|
37
|
-
Requires-Dist: soda-core-bigquery<3.4.0,>=3.3.1; extra == "bigquery"
|
|
38
|
-
Provides-Extra: databricks
|
|
39
|
-
Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "databricks"
|
|
40
|
-
Requires-Dist: databricks-sql-connector<3.6.0,>=3.1.2; extra == "databricks"
|
|
41
|
-
Requires-Dist: databricks-sdk<0.36.0,>=0.32.0; extra == "databricks"
|
|
42
|
-
Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.1; extra == "databricks"
|
|
43
|
-
Provides-Extra: iceberg
|
|
44
|
-
Requires-Dist: pyiceberg==0.7.1; extra == "iceberg"
|
|
45
|
-
Provides-Extra: kafka
|
|
46
|
-
Requires-Dist: datacontract-cli[avro]; extra == "kafka"
|
|
47
|
-
Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "kafka"
|
|
48
|
-
Provides-Extra: postgres
|
|
49
|
-
Requires-Dist: soda-core-postgres<3.4.0,>=3.3.1; extra == "postgres"
|
|
50
|
-
Provides-Extra: s3
|
|
51
|
-
Requires-Dist: s3fs==2024.9.0; extra == "s3"
|
|
52
|
-
Provides-Extra: snowflake
|
|
53
|
-
Requires-Dist: snowflake-connector-python[pandas]<3.13,>=3.6; extra == "snowflake"
|
|
54
|
-
Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.1; extra == "snowflake"
|
|
55
|
-
Provides-Extra: sqlserver
|
|
56
|
-
Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.1; extra == "sqlserver"
|
|
57
|
-
Provides-Extra: trino
|
|
58
|
-
Requires-Dist: soda-core-trino<3.4.0,>=3.3.1; extra == "trino"
|
|
59
|
-
Provides-Extra: dbt
|
|
60
|
-
Requires-Dist: dbt-core>=1.8.0; extra == "dbt"
|
|
61
|
-
Provides-Extra: dbml
|
|
62
|
-
Requires-Dist: pydbml>=1.1.1; extra == "dbml"
|
|
63
|
-
Provides-Extra: all
|
|
64
|
-
Requires-Dist: datacontract-cli[bigquery,databricks,dbml,dbt,iceberg,kafka,postgres,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
65
|
-
Provides-Extra: dev
|
|
66
|
-
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
67
|
-
Requires-Dist: httpx==0.27.2; extra == "dev"
|
|
68
|
-
Requires-Dist: kafka-python; extra == "dev"
|
|
69
|
-
Requires-Dist: moto==5.0.18; extra == "dev"
|
|
70
|
-
Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
71
|
-
Requires-Dist: pre-commit<3.9.0,>=3.7.1; extra == "dev"
|
|
72
|
-
Requires-Dist: pyarrow>=12.0.0; extra == "dev"
|
|
73
|
-
Requires-Dist: pytest; extra == "dev"
|
|
74
|
-
Requires-Dist: pytest-xdist; extra == "dev"
|
|
75
|
-
Requires-Dist: pymssql==2.3.1; extra == "dev"
|
|
76
|
-
Requires-Dist: ruff; extra == "dev"
|
|
77
|
-
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.8.2; extra == "dev"
|
|
78
|
-
Requires-Dist: trino==0.330.0; extra == "dev"
|
|
79
|
-
|
|
80
1
|
# Data Contract CLI
|
|
81
2
|
|
|
82
3
|
<p>
|
|
@@ -273,6 +194,7 @@ A list of available extras:
|
|
|
273
194
|
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
274
195
|
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
275
196
|
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
197
|
+
| Iceberg | `pip install datacontract-cli[iceberg]` |
|
|
276
198
|
| Kafka Integration | `pip install datacontract-cli[kafka]` |
|
|
277
199
|
| PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
|
|
278
200
|
| S3 Integration | `pip install datacontract-cli[s3]` |
|
|
@@ -280,6 +202,8 @@ A list of available extras:
|
|
|
280
202
|
| Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
|
|
281
203
|
| Trino | `pip install datacontract-cli[trino]` |
|
|
282
204
|
| Dbt | `pip install datacontract-cli[dbt]` |
|
|
205
|
+
| Dbml | `pip install datacontract-cli[dbml]` |
|
|
206
|
+
| Parquet | `pip install datacontract-cli[parquet]` |
|
|
283
207
|
|
|
284
208
|
|
|
285
209
|
|
|
@@ -825,19 +749,19 @@ models:
|
|
|
825
749
|
### export
|
|
826
750
|
|
|
827
751
|
```
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
752
|
+
Usage: datacontract export [OPTIONS] [LOCATION]
|
|
753
|
+
|
|
754
|
+
Convert data contract to a specific format. Saves to file specified by `output` option if present, otherwise prints to stdout.
|
|
755
|
+
|
|
833
756
|
╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
834
757
|
│ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
|
|
835
758
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
836
759
|
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
837
760
|
│ * --format [jsonschema|pydantic-model|sodacl|dbt|dbt-sources|db The export format. [default: None] [required] │
|
|
838
|
-
│ t-staging-sql|odcs|rdf|avro|protobuf
|
|
839
|
-
│
|
|
840
|
-
│
|
|
761
|
+
│ t-staging-sql|odcs|odcs_v2|odcs_v3|rdf|avro|protobuf │
|
|
762
|
+
│ |great-expectations|terraform|avro-idl|sql|sql-query │
|
|
763
|
+
│ |html|go|bigquery|dbml|spark|sqlalchemy|data-caterer │
|
|
764
|
+
│ |dcs] │
|
|
841
765
|
│ --output PATH Specify the file path where the exported data will be │
|
|
842
766
|
│ saved. If no path is provided, the output will be │
|
|
843
767
|
│ printed to stdout. │
|
|
@@ -847,6 +771,12 @@ models:
|
|
|
847
771
|
│ file to refer to a model, e.g., `orders`, or `all` │
|
|
848
772
|
│ for all models (default). │
|
|
849
773
|
│ [default: all] │
|
|
774
|
+
│ --schema TEXT The location (url or path) of the Data Contract │
|
|
775
|
+
│ Specification JSON Schema │
|
|
776
|
+
│ [default: │
|
|
777
|
+
│ https://datacontract.com/datacontract.schema.json] │
|
|
778
|
+
│ --engine TEXT [engine] The engine used for great expection run. │
|
|
779
|
+
│ [default: None] │
|
|
850
780
|
│ --help Show this message and exit. │
|
|
851
781
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
852
782
|
╭─ RDF Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
@@ -857,12 +787,11 @@ models:
|
|
|
857
787
|
│ detect the sql dialect via the specified servers in the data contract. │
|
|
858
788
|
│ [default: auto] │
|
|
859
789
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
860
|
-
|
|
861
790
|
```
|
|
862
791
|
|
|
863
792
|
```bash
|
|
864
793
|
# Example export data contract as HTML
|
|
865
|
-
datacontract export --format html
|
|
794
|
+
datacontract export --format html --output datacontract.html
|
|
866
795
|
```
|
|
867
796
|
|
|
868
797
|
Available export options:
|
|
@@ -895,9 +824,10 @@ Available export options:
|
|
|
895
824
|
| `dcs` | Export to Data Contract Specification in YAML format | ✅ |
|
|
896
825
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
897
826
|
|
|
827
|
+
|
|
898
828
|
#### Great Expectations
|
|
899
829
|
|
|
900
|
-
The export function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
|
|
830
|
+
The `export` function transforms a specified data contract into a comprehensive Great Expectations JSON suite.
|
|
901
831
|
If the contract includes multiple models, you need to specify the names of the model you wish to export.
|
|
902
832
|
|
|
903
833
|
```shell
|
|
@@ -907,7 +837,22 @@ datacontract export datacontract.yaml --format great-expectations --model order
|
|
|
907
837
|
The export creates a list of expectations by utilizing:
|
|
908
838
|
|
|
909
839
|
- The data from the Model definition with a fixed mapping
|
|
910
|
-
- The expectations provided in the quality field for each model (find here the expectations gallery https://greatexpectations.io/expectations/)
|
|
840
|
+
- The expectations provided in the quality field for each model (find here the expectations gallery: [Great Expectations Gallery](https://greatexpectations.io/expectations/))
|
|
841
|
+
|
|
842
|
+
### Additional Arguments
|
|
843
|
+
|
|
844
|
+
To further customize the export, the following optional arguments are available:
|
|
845
|
+
|
|
846
|
+
- **`suite_name`**: The name of the expectation suite. This suite groups all generated expectations and provides a convenient identifier within Great Expectations. If not provided, a default suite name will be generated based on the model name(s).
|
|
847
|
+
|
|
848
|
+
- **`engine`**: Specifies the engine used to run Great Expectations checks. Accepted values are:
|
|
849
|
+
- `pandas` — Use this when working with in-memory data frames through the Pandas library.
|
|
850
|
+
- `spark` — Use this for working with Spark dataframes.
|
|
851
|
+
- `sql` — Use this for working with SQL databases.
|
|
852
|
+
|
|
853
|
+
- **`sql_server_type`**: Specifies the type of SQL server to connect with when `engine` is set to `sql`.
|
|
854
|
+
|
|
855
|
+
Providing `sql_server_type` ensures that the appropriate SQL dialect and connection settings are applied during the expectation validation.
|
|
911
856
|
|
|
912
857
|
#### RDF
|
|
913
858
|
|
|
@@ -1004,14 +949,20 @@ models:
|
|
|
1004
949
|
### import
|
|
1005
950
|
|
|
1006
951
|
```
|
|
1007
|
-
Usage: datacontract import [OPTIONS]
|
|
1008
|
-
|
|
1009
|
-
Create a data contract from the given source location.
|
|
952
|
+
Usage: datacontract import [OPTIONS]
|
|
953
|
+
|
|
954
|
+
Create a data contract from the given source location. Saves to file specified by `output` option if present, otherwise
|
|
955
|
+
prints to stdout.
|
|
1010
956
|
|
|
1011
957
|
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
1012
|
-
│ * --format [sql|avro|dbt|glue|jsonschema|bigquery
|
|
1013
|
-
│ |unity|spark|iceberg]
|
|
958
|
+
│ * --format [sql|avro|dbt|dbml|glue|jsonschema|bigquery The format of the source file. │
|
|
959
|
+
│ |odcs|unity|spark|iceberg|parquet] [default: None] │
|
|
1014
960
|
│ [required] │
|
|
961
|
+
│ --output PATH Specify the file path where the Data │
|
|
962
|
+
│ Contract will be saved. If no path is │
|
|
963
|
+
│ provided, the output will be printed to │
|
|
964
|
+
│ stdout. │
|
|
965
|
+
│ [default: None] │
|
|
1015
966
|
│ --source TEXT The path to the file or Glue Database that │
|
|
1016
967
|
│ should be imported. │
|
|
1017
968
|
│ [default: None] │
|
|
@@ -1041,7 +992,8 @@ models:
|
|
|
1041
992
|
│ empty for all tables in the file). │
|
|
1042
993
|
│ [default: None] │
|
|
1043
994
|
│ --iceberg-table TEXT Table name to assign to the model created │
|
|
1044
|
-
│ from the Iceberg schema.
|
|
995
|
+
│ from the Iceberg schema. │
|
|
996
|
+
│ [default: None] │
|
|
1045
997
|
│ --help Show this message and exit. │
|
|
1046
998
|
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1047
999
|
```
|
|
@@ -1050,6 +1002,8 @@ Example:
|
|
|
1050
1002
|
```bash
|
|
1051
1003
|
# Example import from SQL DDL
|
|
1052
1004
|
datacontract import --format sql --source my_ddl.sql
|
|
1005
|
+
# To save to file
|
|
1006
|
+
datacontract import --format sql --source my_ddl.sql --output datacontract.yaml
|
|
1053
1007
|
```
|
|
1054
1008
|
|
|
1055
1009
|
Available import options:
|
|
@@ -1068,6 +1022,7 @@ Available import options:
|
|
|
1068
1022
|
| `dbml` | Import from DBML models | ✅ |
|
|
1069
1023
|
| `protobuf` | Import from Protobuf schemas | TBD |
|
|
1070
1024
|
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1025
|
+
| `parquet` | Import from Parquet File Metadta | ✅ |
|
|
1071
1026
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
1072
1027
|
|
|
1073
1028
|
|
|
@@ -1270,6 +1225,16 @@ datacontract import --format iceberg --source ./tests/fixtures/iceberg/simple_sc
|
|
|
1270
1225
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
1271
1226
|
```
|
|
1272
1227
|
|
|
1228
|
+
Examples:
|
|
1229
|
+
|
|
1230
|
+
```
|
|
1231
|
+
# create a catalog right in the current folder
|
|
1232
|
+
datacontract catalog --output "."
|
|
1233
|
+
|
|
1234
|
+
# Create a catalog based on a filename convention
|
|
1235
|
+
datacontract catalog --files "*.odcs.yaml"
|
|
1236
|
+
```
|
|
1237
|
+
|
|
1273
1238
|
### Publish
|
|
1274
1239
|
|
|
1275
1240
|
```
|
|
@@ -1587,7 +1552,7 @@ if __name__ == "__main__":
|
|
|
1587
1552
|
Output
|
|
1588
1553
|
|
|
1589
1554
|
```yaml
|
|
1590
|
-
dataContractSpecification:
|
|
1555
|
+
dataContractSpecification: 1.1.0
|
|
1591
1556
|
id: uuid-custom
|
|
1592
1557
|
info:
|
|
1593
1558
|
title: my_custom_imported_data
|