datacontract-cli 0.10.33__tar.gz → 0.10.34__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.33 → datacontract_cli-0.10.34}/LICENSE +1 -1
- {datacontract_cli-0.10.33/datacontract_cli.egg-info → datacontract_cli-0.10.34}/PKG-INFO +84 -9
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/README.md +76 -3
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/data_contract_checks.py +102 -59
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/data_contract_test.py +37 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/fastjsonschema/check_jsonschema.py +8 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/check_soda_execute.py +6 -0
- datacontract_cli-0.10.34/datacontract/engines/soda/connections/athena.py +79 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/duckdb_connection.py +3 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/avro_converter.py +12 -2
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/markdown_converter.py +115 -5
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/sql_type_converter.py +4 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/avro_importer.py +33 -7
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/odcs_v3_importer.py +1 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/spark_importer.py +12 -1
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34/datacontract_cli.egg-info}/PKG-INFO +84 -9
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract_cli.egg-info/SOURCES.txt +3 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract_cli.egg-info/requires.txt +8 -5
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/pyproject.toml +10 -6
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_avro.py +38 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_spark.py +3 -1
- datacontract_cli-0.10.34/tests/test_test_api.py +55 -0
- datacontract_cli-0.10.34/tests/test_test_athena_iceberg.py +26 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_postgres.py +1 -1
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_quality.py +1 -1
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_sqlserver.py +1 -1
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_trino.py +1 -1
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/api.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/breaking/breaking.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/breaking/breaking_change.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/breaking/breaking_rules.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/catalog/catalog.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/cli.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/data_contract.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/bigquery.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/kafka.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/engines/soda/connections/trino.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/avro_idl_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/bigquery_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/custom_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/data_caterer_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/dbml_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/dbt_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/dcs_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/duckdb_type_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/excel_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/exporter_factory.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/go_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/great_expectations_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/html_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/iceberg_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/jsonschema_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/mermaid_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/odcs_v3_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/pandas_type_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/protobuf_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/pydantic_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/rdf_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/sodacl_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/spark_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/sql_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/sqlalchemy_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/export/terraform_converter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/bigquery_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/csv_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/dbml_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/dbt_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/excel_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/glue_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/iceberg_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/importer_factory.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/json_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/odcs_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/parquet_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/protobuf_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/sql_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/imports/unity_importer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/init/init_template.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/integration/datamesh_manager.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/lint.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/description_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/field_reference_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/notice_period_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/resolve.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/model/data_contract_specification/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/model/odcs.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/model/run.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/output/__init__.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/output/junit_test_results.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/output/output_format.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/output/test_results_writer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/schemas/datacontract-1.2.0.init.yaml +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/schemas/datacontract-1.2.0.schema.json +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/datacontract_odcs.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/index.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/quality.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/setup.cfg +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_api.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_breaking.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_cli.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_data_contract_checks.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_data_contract_specification.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_duckdb_json.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_avro.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_avro_idl.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_complex_data_contract.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_custom.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_excel.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_iceberg.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_jsonschema.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_markdown.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_mermaid.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_odcs_v3.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_sodacl.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_spark.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_sql.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_sqlalchemy.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_csv.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_dbt.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_excel.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_glue.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_iceberg.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_json.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_parquet.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_protobuf.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_sql_postgres.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_sql_sqlserver.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_lint.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_resolve.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_roundtrip_jsonschema.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_spec_fields_field.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_spec_ref.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_azure_remote.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_dataframe.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_gcs_csv_remote.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_kafka.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_output_junit.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_s3_json_remote.py +0 -0
- {datacontract_cli-0.10.33 → datacontract_cli-0.10.34}/tests/test_test_snowflake.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.34
|
|
4
4
|
Summary: The datacontract CLI is an open source command-line tool for working with Data Contracts. It uses data contract YAML files to lint the data contract, connect to data sources and execute schema and quality tests, detect breaking changes, and export to different formats. The tool is written in Python. It can be used as a standalone CLI tool, in a CI/CD pipeline, or directly as a Python library.
|
|
5
5
|
Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>, Simon Harrer <simon.harrer@innoq.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -20,7 +20,7 @@ Requires-Dist: fastparquet<2025.0.0,>=2024.5.0
|
|
|
20
20
|
Requires-Dist: numpy<2.0.0,>=1.26.4
|
|
21
21
|
Requires-Dist: python-multipart<1.0.0,>=0.0.20
|
|
22
22
|
Requires-Dist: rich<15.0,>=13.7
|
|
23
|
-
Requires-Dist: sqlglot<
|
|
23
|
+
Requires-Dist: sqlglot<28.0.0,>=26.6.0
|
|
24
24
|
Requires-Dist: duckdb<2.0.0,>=1.0.0
|
|
25
25
|
Requires-Dist: soda-core-duckdb<3.6.0,>=3.3.20
|
|
26
26
|
Requires-Dist: setuptools>=60
|
|
@@ -56,10 +56,12 @@ Provides-Extra: s3
|
|
|
56
56
|
Requires-Dist: s3fs<2026.0.0,>=2025.2.0; extra == "s3"
|
|
57
57
|
Requires-Dist: aiobotocore<2.24.0,>=2.17.0; extra == "s3"
|
|
58
58
|
Provides-Extra: snowflake
|
|
59
|
-
Requires-Dist: snowflake-connector-python[pandas]<3.
|
|
59
|
+
Requires-Dist: snowflake-connector-python[pandas]<3.17,>=3.6; extra == "snowflake"
|
|
60
60
|
Requires-Dist: soda-core-snowflake<3.6.0,>=3.3.20; extra == "snowflake"
|
|
61
61
|
Provides-Extra: sqlserver
|
|
62
62
|
Requires-Dist: soda-core-sqlserver<3.6.0,>=3.3.20; extra == "sqlserver"
|
|
63
|
+
Provides-Extra: athena
|
|
64
|
+
Requires-Dist: soda-core-athena<3.6.0,>=3.3.20; extra == "athena"
|
|
63
65
|
Provides-Extra: trino
|
|
64
66
|
Requires-Dist: soda-core-trino<3.6.0,>=3.3.20; extra == "trino"
|
|
65
67
|
Provides-Extra: dbt
|
|
@@ -76,19 +78,19 @@ Requires-Dist: uvicorn==0.35.0; extra == "api"
|
|
|
76
78
|
Provides-Extra: protobuf
|
|
77
79
|
Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
|
|
78
80
|
Provides-Extra: all
|
|
79
|
-
Requires-Dist: datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,excel,iceberg,kafka,parquet,postgres,protobuf,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
81
|
+
Requires-Dist: datacontract-cli[api,athena,bigquery,csv,databricks,dbml,dbt,excel,iceberg,kafka,parquet,postgres,protobuf,rdf,s3,snowflake,sqlserver,trino]; extra == "all"
|
|
80
82
|
Provides-Extra: dev
|
|
81
83
|
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
82
84
|
Requires-Dist: httpx==0.28.1; extra == "dev"
|
|
83
85
|
Requires-Dist: kafka-python; extra == "dev"
|
|
84
|
-
Requires-Dist: moto==5.1.
|
|
86
|
+
Requires-Dist: moto==5.1.8; extra == "dev"
|
|
85
87
|
Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
86
88
|
Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
|
|
87
89
|
Requires-Dist: pytest; extra == "dev"
|
|
88
90
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
89
91
|
Requires-Dist: pymssql==2.3.7; extra == "dev"
|
|
90
92
|
Requires-Dist: ruff; extra == "dev"
|
|
91
|
-
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.
|
|
93
|
+
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.12.0; extra == "dev"
|
|
92
94
|
Requires-Dist: trino==0.335.0; extra == "dev"
|
|
93
95
|
Dynamic: license-file
|
|
94
96
|
|
|
@@ -316,6 +318,7 @@ A list of available extras:
|
|
|
316
318
|
|
|
317
319
|
| Dependency | Installation Command |
|
|
318
320
|
|-------------------------|--------------------------------------------|
|
|
321
|
+
| Amazon Athena | `pip install datacontract-cli[athena]` |
|
|
319
322
|
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
320
323
|
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
321
324
|
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
@@ -460,6 +463,7 @@ Credentials are provided with environment variables.
|
|
|
460
463
|
Supported server types:
|
|
461
464
|
|
|
462
465
|
- [s3](#S3)
|
|
466
|
+
- [athena](#athena)
|
|
463
467
|
- [bigquery](#bigquery)
|
|
464
468
|
- [azure](#azure)
|
|
465
469
|
- [sqlserver](#sqlserver)
|
|
@@ -470,6 +474,7 @@ Supported server types:
|
|
|
470
474
|
- [kafka](#kafka)
|
|
471
475
|
- [postgres](#postgres)
|
|
472
476
|
- [trino](#trino)
|
|
477
|
+
- [api](#api)
|
|
473
478
|
- [local](#local)
|
|
474
479
|
|
|
475
480
|
Supported formats:
|
|
@@ -529,6 +534,41 @@ servers:
|
|
|
529
534
|
| `DATACONTRACT_S3_SESSION_TOKEN` | `AQoDYXdzEJr...` | AWS temporary session token (optional) |
|
|
530
535
|
|
|
531
536
|
|
|
537
|
+
#### Athena
|
|
538
|
+
|
|
539
|
+
Data Contract CLI can test data in AWS Athena stored in S3.
|
|
540
|
+
Supports different file formats, such as Iceberg, Parquet, JSON, CSV...
|
|
541
|
+
|
|
542
|
+
##### Example
|
|
543
|
+
|
|
544
|
+
datacontract.yaml
|
|
545
|
+
```yaml
|
|
546
|
+
servers:
|
|
547
|
+
athena:
|
|
548
|
+
type: athena
|
|
549
|
+
catalog: awsdatacatalog # awsdatacatalog is the default setting
|
|
550
|
+
schema: icebergdemodb # in Athena, this is called "database"
|
|
551
|
+
regionName: eu-central-1
|
|
552
|
+
stagingDir: s3://my-bucket/athena-results/
|
|
553
|
+
models:
|
|
554
|
+
my_table: # corresponds to a table of view name
|
|
555
|
+
type: table
|
|
556
|
+
fields:
|
|
557
|
+
my_column_1: # corresponds to a column
|
|
558
|
+
type: string
|
|
559
|
+
config:
|
|
560
|
+
physicalType: varchar
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
##### Environment Variables
|
|
564
|
+
|
|
565
|
+
| Environment Variable | Example | Description |
|
|
566
|
+
|-------------------------------------|---------------------------------|----------------------------------------|
|
|
567
|
+
| `DATACONTRACT_S3_REGION` | `eu-central-1` | Region of Athena service |
|
|
568
|
+
| `DATACONTRACT_S3_ACCESS_KEY_ID` | `AKIAXV5Q5QABCDEFGH` | AWS Access Key ID |
|
|
569
|
+
| `DATACONTRACT_S3_SECRET_ACCESS_KEY` | `93S7LRrJcqLaaaa/XXXXXXXXXXXXX` | AWS Secret Access Key |
|
|
570
|
+
| `DATACONTRACT_S3_SESSION_TOKEN` | `AQoDYXdzEJr...` | AWS temporary session token (optional) |
|
|
571
|
+
|
|
532
572
|
|
|
533
573
|
#### Google Cloud Storage (GCS)
|
|
534
574
|
|
|
@@ -896,6 +936,38 @@ models:
|
|
|
896
936
|
| `DATACONTRACT_TRINO_PASSWORD` | `mysecretpassword` | Password |
|
|
897
937
|
|
|
898
938
|
|
|
939
|
+
#### API
|
|
940
|
+
|
|
941
|
+
Data Contract CLI can test APIs that return data in JSON format.
|
|
942
|
+
Currently, only GET requests are supported.
|
|
943
|
+
|
|
944
|
+
##### Example
|
|
945
|
+
|
|
946
|
+
datacontract.yaml
|
|
947
|
+
```yaml
|
|
948
|
+
servers:
|
|
949
|
+
api:
|
|
950
|
+
type: "api"
|
|
951
|
+
location: "https://api.example.com/path"
|
|
952
|
+
delimiter: none # new_line, array, or none (default)
|
|
953
|
+
|
|
954
|
+
models:
|
|
955
|
+
my_object: # corresponds to the root element of the JSON response
|
|
956
|
+
type: object
|
|
957
|
+
fields:
|
|
958
|
+
field1:
|
|
959
|
+
type: string
|
|
960
|
+
fields2:
|
|
961
|
+
type: number
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
##### Environment Variables
|
|
965
|
+
|
|
966
|
+
| Environment Variable | Example | Description |
|
|
967
|
+
|-----------------------------------------|------------------|---------------------------------------------------|
|
|
968
|
+
| `DATACONTRACT_API_HEADER_AUTHORIZATION` | `Bearer <token>` | The value for the `authorization` header. Optional. |
|
|
969
|
+
|
|
970
|
+
|
|
899
971
|
#### Local
|
|
900
972
|
|
|
901
973
|
Data Contract CLI can test local files in parquet, json, csv, or delta format.
|
|
@@ -959,8 +1031,10 @@ models:
|
|
|
959
1031
|
│ --engine TEXT [engine] The engine used for great │
|
|
960
1032
|
│ expection run. │
|
|
961
1033
|
│ [default: None] │
|
|
962
|
-
│ --template PATH
|
|
963
|
-
│
|
|
1034
|
+
│ --template PATH The file path or URL of a template. │
|
|
1035
|
+
│ For Excel format: path/URL to custom │
|
|
1036
|
+
│ Excel template. For custom format: │
|
|
1037
|
+
│ path to Jinja template. │
|
|
964
1038
|
│ [default: None] │
|
|
965
1039
|
│ --help Show this message and exit. │
|
|
966
1040
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
@@ -2102,6 +2176,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
2102
2176
|
|
|
2103
2177
|
## Companies using this tool
|
|
2104
2178
|
|
|
2179
|
+
- [Entropy Data](https://www.entropy-data.com)
|
|
2105
2180
|
- [INNOQ](https://innoq.com)
|
|
2106
2181
|
- [Data Catering](https://data.catering/)
|
|
2107
2182
|
- [Oliver Wyman](https://www.oliverwyman.com/)
|
|
@@ -2120,7 +2195,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
2120
2195
|
|
|
2121
2196
|
## Credits
|
|
2122
2197
|
|
|
2123
|
-
Created by [Stefan Negele](https://www.linkedin.com/in/stefan-negele-573153112/)
|
|
2198
|
+
Created by [Stefan Negele](https://www.linkedin.com/in/stefan-negele-573153112/), [Jochen Christ](https://www.linkedin.com/in/jochenchrist/), and [Simon Harrer]().
|
|
2124
2199
|
|
|
2125
2200
|
|
|
2126
2201
|
|
|
@@ -222,6 +222,7 @@ A list of available extras:
|
|
|
222
222
|
|
|
223
223
|
| Dependency | Installation Command |
|
|
224
224
|
|-------------------------|--------------------------------------------|
|
|
225
|
+
| Amazon Athena | `pip install datacontract-cli[athena]` |
|
|
225
226
|
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
226
227
|
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
227
228
|
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
@@ -366,6 +367,7 @@ Credentials are provided with environment variables.
|
|
|
366
367
|
Supported server types:
|
|
367
368
|
|
|
368
369
|
- [s3](#S3)
|
|
370
|
+
- [athena](#athena)
|
|
369
371
|
- [bigquery](#bigquery)
|
|
370
372
|
- [azure](#azure)
|
|
371
373
|
- [sqlserver](#sqlserver)
|
|
@@ -376,6 +378,7 @@ Supported server types:
|
|
|
376
378
|
- [kafka](#kafka)
|
|
377
379
|
- [postgres](#postgres)
|
|
378
380
|
- [trino](#trino)
|
|
381
|
+
- [api](#api)
|
|
379
382
|
- [local](#local)
|
|
380
383
|
|
|
381
384
|
Supported formats:
|
|
@@ -435,6 +438,41 @@ servers:
|
|
|
435
438
|
| `DATACONTRACT_S3_SESSION_TOKEN` | `AQoDYXdzEJr...` | AWS temporary session token (optional) |
|
|
436
439
|
|
|
437
440
|
|
|
441
|
+
#### Athena
|
|
442
|
+
|
|
443
|
+
Data Contract CLI can test data in AWS Athena stored in S3.
|
|
444
|
+
Supports different file formats, such as Iceberg, Parquet, JSON, CSV...
|
|
445
|
+
|
|
446
|
+
##### Example
|
|
447
|
+
|
|
448
|
+
datacontract.yaml
|
|
449
|
+
```yaml
|
|
450
|
+
servers:
|
|
451
|
+
athena:
|
|
452
|
+
type: athena
|
|
453
|
+
catalog: awsdatacatalog # awsdatacatalog is the default setting
|
|
454
|
+
schema: icebergdemodb # in Athena, this is called "database"
|
|
455
|
+
regionName: eu-central-1
|
|
456
|
+
stagingDir: s3://my-bucket/athena-results/
|
|
457
|
+
models:
|
|
458
|
+
my_table: # corresponds to a table of view name
|
|
459
|
+
type: table
|
|
460
|
+
fields:
|
|
461
|
+
my_column_1: # corresponds to a column
|
|
462
|
+
type: string
|
|
463
|
+
config:
|
|
464
|
+
physicalType: varchar
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
##### Environment Variables
|
|
468
|
+
|
|
469
|
+
| Environment Variable | Example | Description |
|
|
470
|
+
|-------------------------------------|---------------------------------|----------------------------------------|
|
|
471
|
+
| `DATACONTRACT_S3_REGION` | `eu-central-1` | Region of Athena service |
|
|
472
|
+
| `DATACONTRACT_S3_ACCESS_KEY_ID` | `AKIAXV5Q5QABCDEFGH` | AWS Access Key ID |
|
|
473
|
+
| `DATACONTRACT_S3_SECRET_ACCESS_KEY` | `93S7LRrJcqLaaaa/XXXXXXXXXXXXX` | AWS Secret Access Key |
|
|
474
|
+
| `DATACONTRACT_S3_SESSION_TOKEN` | `AQoDYXdzEJr...` | AWS temporary session token (optional) |
|
|
475
|
+
|
|
438
476
|
|
|
439
477
|
#### Google Cloud Storage (GCS)
|
|
440
478
|
|
|
@@ -802,6 +840,38 @@ models:
|
|
|
802
840
|
| `DATACONTRACT_TRINO_PASSWORD` | `mysecretpassword` | Password |
|
|
803
841
|
|
|
804
842
|
|
|
843
|
+
#### API
|
|
844
|
+
|
|
845
|
+
Data Contract CLI can test APIs that return data in JSON format.
|
|
846
|
+
Currently, only GET requests are supported.
|
|
847
|
+
|
|
848
|
+
##### Example
|
|
849
|
+
|
|
850
|
+
datacontract.yaml
|
|
851
|
+
```yaml
|
|
852
|
+
servers:
|
|
853
|
+
api:
|
|
854
|
+
type: "api"
|
|
855
|
+
location: "https://api.example.com/path"
|
|
856
|
+
delimiter: none # new_line, array, or none (default)
|
|
857
|
+
|
|
858
|
+
models:
|
|
859
|
+
my_object: # corresponds to the root element of the JSON response
|
|
860
|
+
type: object
|
|
861
|
+
fields:
|
|
862
|
+
field1:
|
|
863
|
+
type: string
|
|
864
|
+
fields2:
|
|
865
|
+
type: number
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
##### Environment Variables
|
|
869
|
+
|
|
870
|
+
| Environment Variable | Example | Description |
|
|
871
|
+
|-----------------------------------------|------------------|---------------------------------------------------|
|
|
872
|
+
| `DATACONTRACT_API_HEADER_AUTHORIZATION` | `Bearer <token>` | The value for the `authorization` header. Optional. |
|
|
873
|
+
|
|
874
|
+
|
|
805
875
|
#### Local
|
|
806
876
|
|
|
807
877
|
Data Contract CLI can test local files in parquet, json, csv, or delta format.
|
|
@@ -865,8 +935,10 @@ models:
|
|
|
865
935
|
│ --engine TEXT [engine] The engine used for great │
|
|
866
936
|
│ expection run. │
|
|
867
937
|
│ [default: None] │
|
|
868
|
-
│ --template PATH
|
|
869
|
-
│
|
|
938
|
+
│ --template PATH The file path or URL of a template. │
|
|
939
|
+
│ For Excel format: path/URL to custom │
|
|
940
|
+
│ Excel template. For custom format: │
|
|
941
|
+
│ path to Jinja template. │
|
|
870
942
|
│ [default: None] │
|
|
871
943
|
│ --help Show this message and exit. │
|
|
872
944
|
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
@@ -2008,6 +2080,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
2008
2080
|
|
|
2009
2081
|
## Companies using this tool
|
|
2010
2082
|
|
|
2083
|
+
- [Entropy Data](https://www.entropy-data.com)
|
|
2011
2084
|
- [INNOQ](https://innoq.com)
|
|
2012
2085
|
- [Data Catering](https://data.catering/)
|
|
2013
2086
|
- [Oliver Wyman](https://www.oliverwyman.com/)
|
|
@@ -2026,7 +2099,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
2026
2099
|
|
|
2027
2100
|
## Credits
|
|
2028
2101
|
|
|
2029
|
-
Created by [Stefan Negele](https://www.linkedin.com/in/stefan-negele-573153112/)
|
|
2102
|
+
Created by [Stefan Negele](https://www.linkedin.com/in/stefan-negele-573153112/), [Jochen Christ](https://www.linkedin.com/in/jochenchrist/), and [Simon Harrer]().
|
|
2030
2103
|
|
|
2031
2104
|
|
|
2032
2105
|
|