datacontract-cli 0.10.25__tar.gz → 0.10.26__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.25/datacontract_cli.egg-info → datacontract_cli-0.10.26}/PKG-INFO +27 -14
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/README.md +24 -11
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/kafka.py +2 -1
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/odcs_v3_exporter.py +22 -4
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sql_converter.py +4 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sql_type_converter.py +2 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/spark_importer.py +2 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26/datacontract_cli.egg-info}/PKG-INFO +27 -14
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/requires.txt +2 -2
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/pyproject.toml +3 -3
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_odcs_v3.py +0 -3
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sql.py +11 -11
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/LICENSE +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/api.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_change.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_rules.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/catalog/catalog.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/cli.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/data_contract.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_checks.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_test.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/check_soda_execute.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/bigquery.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/duckdb_connection.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/trino.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/avro_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/avro_idl_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/bigquery_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/custom_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/data_caterer_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dbml_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dbt_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/dcs_exporter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/duckdb_type_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/exporter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/exporter_factory.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/go_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/great_expectations_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/html_export.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/iceberg_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/jsonschema_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/markdown_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pandas_type_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/protobuf_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pydantic_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/rdf_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sodacl_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/spark_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sqlalchemy_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/terraform_converter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/avro_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/bigquery_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/csv_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/dbml_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/dbt_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/excel_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/glue_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/iceberg_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/importer_factory.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/odcs_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/odcs_v3_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/parquet_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/protobuf_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/sql_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/unity_importer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/init/init_template.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/integration/datamesh_manager.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/lint.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/description_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/field_reference_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/notice_period_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/resolve.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/resources.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/data_contract_specification/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/odcs.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/model/run.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/__init__.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/junit_test_results.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/output_format.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/output/test_results_writer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/datacontract-1.1.0.init.yaml +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/datacontract-1.1.0.schema.json +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/schemas/odcs-3.0.1.schema.json +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/index.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/quality.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/partials/server.html +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/templates/style/output.css +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/SOURCES.txt +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/setup.cfg +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_api.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_breaking.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_cli.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_data_contract_checks.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_data_contract_specification.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_duckdb_json.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_avro.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_avro_idl.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_complex_data_contract.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_custom.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_custom_exporter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_data_caterer.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_iceberg.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_jsonschema.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_markdown.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sodacl.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_spark.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_sqlalchemy.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_avro.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_bigquery.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_csv.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_dbml.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_dbt.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_excel.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_glue.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_iceberg.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_odcs_v3.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_parquet.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_protobuf.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_spark.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_sql_postgres.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_sql_sqlserver.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_import_unity_file.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_lint.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_resolve.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_roundtrip_jsonschema.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_spec_fields_field.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_spec_ref.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_azure_remote.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_databricks.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_dataframe.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_delta.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_gcs_json_remote.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_kafka.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_output_junit.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_parquet.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_postgres.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_quality.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_s3_json_remote.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_snowflake.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_sqlserver.py +0 -0
- {datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/tests/test_test_trino.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.26
|
|
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
|
|
@@ -70,7 +70,7 @@ Provides-Extra: rdf
|
|
|
70
70
|
Requires-Dist: rdflib==7.0.0; extra == "rdf"
|
|
71
71
|
Provides-Extra: api
|
|
72
72
|
Requires-Dist: fastapi==0.115.12; extra == "api"
|
|
73
|
-
Requires-Dist: uvicorn==0.34.
|
|
73
|
+
Requires-Dist: uvicorn==0.34.2; extra == "api"
|
|
74
74
|
Provides-Extra: protobuf
|
|
75
75
|
Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
|
|
76
76
|
Provides-Extra: all
|
|
@@ -84,7 +84,7 @@ Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
|
84
84
|
Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
|
|
85
85
|
Requires-Dist: pytest; extra == "dev"
|
|
86
86
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
87
|
-
Requires-Dist: pymssql==2.3.
|
|
87
|
+
Requires-Dist: pymssql==2.3.4; extra == "dev"
|
|
88
88
|
Requires-Dist: ruff; extra == "dev"
|
|
89
89
|
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
|
|
90
90
|
Requires-Dist: trino==0.333.0; extra == "dev"
|
|
@@ -1397,20 +1397,21 @@ Available import options:
|
|
|
1397
1397
|
|
|
1398
1398
|
| Type | Description | Status |
|
|
1399
1399
|
|--------------------|------------------------------------------------|--------|
|
|
1400
|
-
| `sql` | Import from SQL DDL | ✅ |
|
|
1401
1400
|
| `avro` | Import from AVRO schemas | ✅ |
|
|
1402
|
-
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1403
|
-
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1404
1401
|
| `bigquery` | Import from BigQuery Schemas | ✅ |
|
|
1405
|
-
| `
|
|
1402
|
+
| `csv` | Import from CSV File | ✅ |
|
|
1403
|
+
| `dbml` | Import from DBML models | ✅ |
|
|
1406
1404
|
| `dbt` | Import from dbt models | ✅ |
|
|
1405
|
+
| `excel` | Import from ODCS Excel Template | ✅ |
|
|
1406
|
+
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1407
|
+
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1408
|
+
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1407
1409
|
| `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
|
|
1408
|
-
| `
|
|
1409
|
-
| `dbml` | Import from DBML models | ✅ |
|
|
1410
|
-
| `csv` | Import from CSV File | ✅ |
|
|
1410
|
+
| `parquet` | Import from Parquet File Metadata | ✅ |
|
|
1411
1411
|
| `protobuf` | Import from Protobuf schemas | ✅ |
|
|
1412
|
-
| `
|
|
1413
|
-
| `
|
|
1412
|
+
| `spark` | Import from Spark StructTypes | ✅ |
|
|
1413
|
+
| `sql` | Import from SQL DDL | ✅ |
|
|
1414
|
+
| `unity` | Import from Databricks Unity Catalog | partial |
|
|
1414
1415
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
1415
1416
|
|
|
1416
1417
|
|
|
@@ -1460,8 +1461,9 @@ datacontract import --format unity --source my_unity_table.json
|
|
|
1460
1461
|
|
|
1461
1462
|
```bash
|
|
1462
1463
|
# Example import single table from Unity Catalog via HTTP endpoint
|
|
1463
|
-
export
|
|
1464
|
-
export
|
|
1464
|
+
export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
|
|
1465
|
+
export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
|
|
1466
|
+
export DATACONTRACT_DATABRICKS_TOKEN=<token>
|
|
1465
1467
|
datacontract import --format unity --unity-table-full-name <table_full_name>
|
|
1466
1468
|
```
|
|
1467
1469
|
|
|
@@ -1482,6 +1484,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
|
|
|
1482
1484
|
datacontract import --format dbt --source <manifest_path>
|
|
1483
1485
|
```
|
|
1484
1486
|
|
|
1487
|
+
### Excel
|
|
1488
|
+
|
|
1489
|
+
Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
|
|
1490
|
+
|
|
1491
|
+
Examples:
|
|
1492
|
+
|
|
1493
|
+
```bash
|
|
1494
|
+
# Example import from ODCS Excel Template
|
|
1495
|
+
datacontract import --format excel --source odcs.xlsx
|
|
1496
|
+
```
|
|
1497
|
+
|
|
1485
1498
|
#### Glue
|
|
1486
1499
|
|
|
1487
1500
|
Importing from Glue reads the necessary Data directly off of the AWS API.
|
|
@@ -1305,20 +1305,21 @@ Available import options:
|
|
|
1305
1305
|
|
|
1306
1306
|
| Type | Description | Status |
|
|
1307
1307
|
|--------------------|------------------------------------------------|--------|
|
|
1308
|
-
| `sql` | Import from SQL DDL | ✅ |
|
|
1309
1308
|
| `avro` | Import from AVRO schemas | ✅ |
|
|
1310
|
-
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1311
|
-
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1312
1309
|
| `bigquery` | Import from BigQuery Schemas | ✅ |
|
|
1313
|
-
| `
|
|
1310
|
+
| `csv` | Import from CSV File | ✅ |
|
|
1311
|
+
| `dbml` | Import from DBML models | ✅ |
|
|
1314
1312
|
| `dbt` | Import from dbt models | ✅ |
|
|
1313
|
+
| `excel` | Import from ODCS Excel Template | ✅ |
|
|
1314
|
+
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1315
|
+
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1316
|
+
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1315
1317
|
| `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
|
|
1316
|
-
| `
|
|
1317
|
-
| `dbml` | Import from DBML models | ✅ |
|
|
1318
|
-
| `csv` | Import from CSV File | ✅ |
|
|
1318
|
+
| `parquet` | Import from Parquet File Metadata | ✅ |
|
|
1319
1319
|
| `protobuf` | Import from Protobuf schemas | ✅ |
|
|
1320
|
-
| `
|
|
1321
|
-
| `
|
|
1320
|
+
| `spark` | Import from Spark StructTypes | ✅ |
|
|
1321
|
+
| `sql` | Import from SQL DDL | ✅ |
|
|
1322
|
+
| `unity` | Import from Databricks Unity Catalog | partial |
|
|
1322
1323
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
1323
1324
|
|
|
1324
1325
|
|
|
@@ -1368,8 +1369,9 @@ datacontract import --format unity --source my_unity_table.json
|
|
|
1368
1369
|
|
|
1369
1370
|
```bash
|
|
1370
1371
|
# Example import single table from Unity Catalog via HTTP endpoint
|
|
1371
|
-
export
|
|
1372
|
-
export
|
|
1372
|
+
export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
|
|
1373
|
+
export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
|
|
1374
|
+
export DATACONTRACT_DATABRICKS_TOKEN=<token>
|
|
1373
1375
|
datacontract import --format unity --unity-table-full-name <table_full_name>
|
|
1374
1376
|
```
|
|
1375
1377
|
|
|
@@ -1390,6 +1392,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
|
|
|
1390
1392
|
datacontract import --format dbt --source <manifest_path>
|
|
1391
1393
|
```
|
|
1392
1394
|
|
|
1395
|
+
### Excel
|
|
1396
|
+
|
|
1397
|
+
Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
|
|
1398
|
+
|
|
1399
|
+
Examples:
|
|
1400
|
+
|
|
1401
|
+
```bash
|
|
1402
|
+
# Example import from ODCS Excel Template
|
|
1403
|
+
datacontract import --format excel --source odcs.xlsx
|
|
1404
|
+
```
|
|
1405
|
+
|
|
1393
1406
|
#### Glue
|
|
1394
1407
|
|
|
1395
1408
|
Importing from Glue reads the necessary Data directly off of the AWS API.
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/kafka.py
RENAMED
|
@@ -27,6 +27,7 @@ def create_spark_session():
|
|
|
27
27
|
tmp_dir = tempfile.TemporaryDirectory(prefix="datacontract-cli-spark")
|
|
28
28
|
atexit.register(tmp_dir.cleanup)
|
|
29
29
|
|
|
30
|
+
pyspark_version = "3.5.5" # MUST be the same as in the pyproject.toml
|
|
30
31
|
spark = (
|
|
31
32
|
SparkSession.builder.appName("datacontract")
|
|
32
33
|
.config("spark.sql.warehouse.dir", f"{tmp_dir}/spark-warehouse")
|
|
@@ -34,7 +35,7 @@ def create_spark_session():
|
|
|
34
35
|
.config("spark.ui.enabled", "false")
|
|
35
36
|
.config(
|
|
36
37
|
"spark.jars.packages",
|
|
37
|
-
"org.apache.spark:spark-sql-kafka-0-10_2.12:
|
|
38
|
+
f"org.apache.spark:spark-sql-kafka-0-10_2.12:{pyspark_version},org.apache.spark:spark-avro_2.12:{pyspark_version}",
|
|
38
39
|
)
|
|
39
40
|
.getOrCreate()
|
|
40
41
|
)
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/odcs_v3_exporter.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Dict
|
|
1
|
+
from typing import Any, Dict
|
|
2
2
|
|
|
3
3
|
from open_data_contract_standard.model import (
|
|
4
4
|
CustomProperty,
|
|
@@ -202,13 +202,31 @@ def to_logical_type(type: str) -> str | None:
|
|
|
202
202
|
return "array"
|
|
203
203
|
if type.lower() in ["array"]:
|
|
204
204
|
return "array"
|
|
205
|
+
if type.lower() in ["variant"]:
|
|
206
|
+
return "variant"
|
|
205
207
|
if type.lower() in ["null"]:
|
|
206
208
|
return None
|
|
207
209
|
return None
|
|
208
210
|
|
|
209
211
|
|
|
210
|
-
def to_physical_type(
|
|
211
|
-
|
|
212
|
+
def to_physical_type(config: Dict[str, Any]) -> str | None:
|
|
213
|
+
if config is None:
|
|
214
|
+
return None
|
|
215
|
+
if "postgresType" in config:
|
|
216
|
+
return config["postgresType"]
|
|
217
|
+
elif "bigqueryType" in config:
|
|
218
|
+
return config["bigqueryType"]
|
|
219
|
+
elif "snowflakeType" in config:
|
|
220
|
+
return config["snowflakeType"]
|
|
221
|
+
elif "redshiftType" in config:
|
|
222
|
+
return config["redshiftType"]
|
|
223
|
+
elif "sqlserverType" in config:
|
|
224
|
+
return config["sqlserverType"]
|
|
225
|
+
elif "databricksType" in config:
|
|
226
|
+
return config["databricksType"]
|
|
227
|
+
elif "physicalType" in config:
|
|
228
|
+
return config["physicalType"]
|
|
229
|
+
return None
|
|
212
230
|
|
|
213
231
|
|
|
214
232
|
def to_property(field_name: str, field: Field) -> SchemaProperty:
|
|
@@ -231,7 +249,7 @@ def to_property(field_name: str, field: Field) -> SchemaProperty:
|
|
|
231
249
|
|
|
232
250
|
if field.type is not None:
|
|
233
251
|
property.logicalType = to_logical_type(field.type)
|
|
234
|
-
property.physicalType = to_physical_type(field.
|
|
252
|
+
property.physicalType = to_physical_type(field.config)
|
|
235
253
|
|
|
236
254
|
if field.description is not None:
|
|
237
255
|
property.description = field.description
|
|
@@ -117,6 +117,8 @@ def _to_sql_table(model_name, model, server_type="snowflake"):
|
|
|
117
117
|
result += " primary key"
|
|
118
118
|
if server_type == "databricks" and field.description is not None:
|
|
119
119
|
result += f' COMMENT "{_escape(field.description)}"'
|
|
120
|
+
if server_type == "snowflake" and field.description is not None:
|
|
121
|
+
result += f" COMMENT '{_escape(field.description)}'"
|
|
120
122
|
if current_field_index < fields:
|
|
121
123
|
result += ","
|
|
122
124
|
result += "\n"
|
|
@@ -124,6 +126,8 @@ def _to_sql_table(model_name, model, server_type="snowflake"):
|
|
|
124
126
|
result += ")"
|
|
125
127
|
if server_type == "databricks" and model.description is not None:
|
|
126
128
|
result += f' COMMENT "{_escape(model.description)}"'
|
|
129
|
+
if server_type == "snowflake" and model.description is not None:
|
|
130
|
+
result += f" COMMENT='{_escape(model.description)}'"
|
|
127
131
|
result += ";\n"
|
|
128
132
|
return result
|
|
129
133
|
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sql_type_converter.py
RENAMED
|
@@ -197,6 +197,8 @@ def convert_to_databricks(field: Field) -> None | str:
|
|
|
197
197
|
if type.lower() in ["array"]:
|
|
198
198
|
item_type = convert_to_databricks(field.items)
|
|
199
199
|
return f"ARRAY<{item_type}>"
|
|
200
|
+
if type.lower() in ["variant"]:
|
|
201
|
+
return "VARIANT"
|
|
200
202
|
return None
|
|
201
203
|
|
|
202
204
|
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/spark_importer.py
RENAMED
|
@@ -154,5 +154,7 @@ def _data_type_from_spark(spark_type: types.DataType) -> str:
|
|
|
154
154
|
return "null"
|
|
155
155
|
elif isinstance(spark_type, types.VarcharType):
|
|
156
156
|
return "varchar"
|
|
157
|
+
elif isinstance(spark_type, types.VariantType):
|
|
158
|
+
return "variant"
|
|
157
159
|
else:
|
|
158
160
|
raise ValueError(f"Unsupported Spark type: {spark_type}")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: datacontract-cli
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.26
|
|
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
|
|
@@ -70,7 +70,7 @@ Provides-Extra: rdf
|
|
|
70
70
|
Requires-Dist: rdflib==7.0.0; extra == "rdf"
|
|
71
71
|
Provides-Extra: api
|
|
72
72
|
Requires-Dist: fastapi==0.115.12; extra == "api"
|
|
73
|
-
Requires-Dist: uvicorn==0.34.
|
|
73
|
+
Requires-Dist: uvicorn==0.34.2; extra == "api"
|
|
74
74
|
Provides-Extra: protobuf
|
|
75
75
|
Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
|
|
76
76
|
Provides-Extra: all
|
|
@@ -84,7 +84,7 @@ Requires-Dist: pandas>=2.1.0; extra == "dev"
|
|
|
84
84
|
Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
|
|
85
85
|
Requires-Dist: pytest; extra == "dev"
|
|
86
86
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
87
|
-
Requires-Dist: pymssql==2.3.
|
|
87
|
+
Requires-Dist: pymssql==2.3.4; extra == "dev"
|
|
88
88
|
Requires-Dist: ruff; extra == "dev"
|
|
89
89
|
Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.9.2; extra == "dev"
|
|
90
90
|
Requires-Dist: trino==0.333.0; extra == "dev"
|
|
@@ -1397,20 +1397,21 @@ Available import options:
|
|
|
1397
1397
|
|
|
1398
1398
|
| Type | Description | Status |
|
|
1399
1399
|
|--------------------|------------------------------------------------|--------|
|
|
1400
|
-
| `sql` | Import from SQL DDL | ✅ |
|
|
1401
1400
|
| `avro` | Import from AVRO schemas | ✅ |
|
|
1402
|
-
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1403
|
-
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1404
1401
|
| `bigquery` | Import from BigQuery Schemas | ✅ |
|
|
1405
|
-
| `
|
|
1402
|
+
| `csv` | Import from CSV File | ✅ |
|
|
1403
|
+
| `dbml` | Import from DBML models | ✅ |
|
|
1406
1404
|
| `dbt` | Import from dbt models | ✅ |
|
|
1405
|
+
| `excel` | Import from ODCS Excel Template | ✅ |
|
|
1406
|
+
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
1407
|
+
| `iceberg` | Import from an Iceberg JSON Schema Definition | partial |
|
|
1408
|
+
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
1407
1409
|
| `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
|
|
1408
|
-
| `
|
|
1409
|
-
| `dbml` | Import from DBML models | ✅ |
|
|
1410
|
-
| `csv` | Import from CSV File | ✅ |
|
|
1410
|
+
| `parquet` | Import from Parquet File Metadata | ✅ |
|
|
1411
1411
|
| `protobuf` | Import from Protobuf schemas | ✅ |
|
|
1412
|
-
| `
|
|
1413
|
-
| `
|
|
1412
|
+
| `spark` | Import from Spark StructTypes | ✅ |
|
|
1413
|
+
| `sql` | Import from SQL DDL | ✅ |
|
|
1414
|
+
| `unity` | Import from Databricks Unity Catalog | partial |
|
|
1414
1415
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
1415
1416
|
|
|
1416
1417
|
|
|
@@ -1460,8 +1461,9 @@ datacontract import --format unity --source my_unity_table.json
|
|
|
1460
1461
|
|
|
1461
1462
|
```bash
|
|
1462
1463
|
# Example import single table from Unity Catalog via HTTP endpoint
|
|
1463
|
-
export
|
|
1464
|
-
export
|
|
1464
|
+
export DATACONTRACT_DATABRICKS_SERVER_HOSTNAME="https://xyz.cloud.databricks.com"
|
|
1465
|
+
export DATACONTRACT_DATABRICKS_HTTP_PATH="/sql/1.0/warehouses/b053a331fa014fb4"
|
|
1466
|
+
export DATACONTRACT_DATABRICKS_TOKEN=<token>
|
|
1465
1467
|
datacontract import --format unity --unity-table-full-name <table_full_name>
|
|
1466
1468
|
```
|
|
1467
1469
|
|
|
@@ -1482,6 +1484,17 @@ datacontract import --format dbt --source <manifest_path> --dbt-model <model_nam
|
|
|
1482
1484
|
datacontract import --format dbt --source <manifest_path>
|
|
1483
1485
|
```
|
|
1484
1486
|
|
|
1487
|
+
### Excel
|
|
1488
|
+
|
|
1489
|
+
Importing from [ODCS Excel Template](https://github.com/datacontract/open-data-contract-standard-excel-template).
|
|
1490
|
+
|
|
1491
|
+
Examples:
|
|
1492
|
+
|
|
1493
|
+
```bash
|
|
1494
|
+
# Example import from ODCS Excel Template
|
|
1495
|
+
datacontract import --format excel --source odcs.xlsx
|
|
1496
|
+
```
|
|
1497
|
+
|
|
1485
1498
|
#### Glue
|
|
1486
1499
|
|
|
1487
1500
|
Importing from Glue reads the necessary Data directly off of the AWS API.
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract_cli.egg-info/requires.txt
RENAMED
|
@@ -23,7 +23,7 @@ datacontract-cli[api,bigquery,csv,databricks,dbml,dbt,excel,iceberg,kafka,parque
|
|
|
23
23
|
|
|
24
24
|
[api]
|
|
25
25
|
fastapi==0.115.12
|
|
26
|
-
uvicorn==0.34.
|
|
26
|
+
uvicorn==0.34.2
|
|
27
27
|
|
|
28
28
|
[avro]
|
|
29
29
|
avro==1.12.0
|
|
@@ -55,7 +55,7 @@ pandas>=2.1.0
|
|
|
55
55
|
pre-commit<4.3.0,>=3.7.1
|
|
56
56
|
pytest
|
|
57
57
|
pytest-xdist
|
|
58
|
-
pymssql==2.3.
|
|
58
|
+
pymssql==2.3.4
|
|
59
59
|
ruff
|
|
60
60
|
testcontainers[kafka,minio,mssql,postgres]==4.9.2
|
|
61
61
|
trino==0.333.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "datacontract-cli"
|
|
3
|
-
version = "0.10.
|
|
3
|
+
version = "0.10.26"
|
|
4
4
|
description = "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
|
license = "MIT"
|
|
6
6
|
readme = "README.md"
|
|
@@ -112,7 +112,7 @@ rdf = [
|
|
|
112
112
|
|
|
113
113
|
api = [
|
|
114
114
|
"fastapi==0.115.12",
|
|
115
|
-
"uvicorn==0.34.
|
|
115
|
+
"uvicorn==0.34.2",
|
|
116
116
|
]
|
|
117
117
|
|
|
118
118
|
protobuf = [
|
|
@@ -132,7 +132,7 @@ dev = [
|
|
|
132
132
|
"pre-commit>=3.7.1,<4.3.0",
|
|
133
133
|
"pytest",
|
|
134
134
|
"pytest-xdist",
|
|
135
|
-
"pymssql==2.3.
|
|
135
|
+
"pymssql==2.3.4",
|
|
136
136
|
"ruff",
|
|
137
137
|
"testcontainers[minio,postgres,kafka,mssql]==4.9.2",
|
|
138
138
|
"trino==0.333.0",
|
|
@@ -44,7 +44,6 @@ schema:
|
|
|
44
44
|
minLength: 8
|
|
45
45
|
maxLength: 10
|
|
46
46
|
pattern: ^B[0-9]+$
|
|
47
|
-
physicalType: varchar
|
|
48
47
|
required: true
|
|
49
48
|
unique: true
|
|
50
49
|
tags:
|
|
@@ -63,7 +62,6 @@ schema:
|
|
|
63
62
|
logicalTypeOptions:
|
|
64
63
|
minimum: 0
|
|
65
64
|
maximum: 1000000
|
|
66
|
-
physicalType: bigint
|
|
67
65
|
required: true
|
|
68
66
|
description: The order_total field
|
|
69
67
|
quality:
|
|
@@ -75,7 +73,6 @@ schema:
|
|
|
75
73
|
mustBeBetween: [1000, 49900]
|
|
76
74
|
- name: order_status
|
|
77
75
|
logicalType: string
|
|
78
|
-
physicalType: text
|
|
79
76
|
required: true
|
|
80
77
|
quality:
|
|
81
78
|
- type: sql
|
|
@@ -32,18 +32,18 @@ def test_to_sql_ddl_snowflake():
|
|
|
32
32
|
-- Data Contract: urn:datacontract:checkout:snowflake_orders_pii_v2
|
|
33
33
|
-- SQL Dialect: snowflake
|
|
34
34
|
CREATE TABLE orders (
|
|
35
|
-
ORDER_ID TEXT not null,
|
|
36
|
-
ORDER_TIMESTAMP TIMESTAMP_TZ not null,
|
|
37
|
-
ORDER_TOTAL NUMBER not null,
|
|
38
|
-
CUSTOMER_ID TEXT,
|
|
39
|
-
CUSTOMER_EMAIL_ADDRESS TEXT not null,
|
|
40
|
-
PROCESSING_TIMESTAMP TIMESTAMP_LTZ not null
|
|
41
|
-
);
|
|
35
|
+
ORDER_ID TEXT not null COMMENT 'An internal ID that identifies an order in the online shop.',
|
|
36
|
+
ORDER_TIMESTAMP TIMESTAMP_TZ not null COMMENT 'The business timestamp in UTC when the order was successfully registered in the source system and the payment was successful.',
|
|
37
|
+
ORDER_TOTAL NUMBER not null COMMENT 'Total amount the smallest monetary unit (e.g., cents).',
|
|
38
|
+
CUSTOMER_ID TEXT COMMENT 'Unique identifier for the customer.',
|
|
39
|
+
CUSTOMER_EMAIL_ADDRESS TEXT not null COMMENT 'The email address, as entered by the customer. The email address was not verified.',
|
|
40
|
+
PROCESSING_TIMESTAMP TIMESTAMP_LTZ not null COMMENT 'The processing timestamp in the current session’s time zone.'
|
|
41
|
+
) COMMENT='One record per order. Includes cancelled and deleted orders.';
|
|
42
42
|
CREATE TABLE line_items (
|
|
43
|
-
LINE_ITEM_ID TEXT not null,
|
|
44
|
-
ORDER_ID TEXT,
|
|
45
|
-
SKU TEXT
|
|
46
|
-
);
|
|
43
|
+
LINE_ITEM_ID TEXT not null COMMENT 'Primary key of the lines_item_id table',
|
|
44
|
+
ORDER_ID TEXT COMMENT 'An internal ID that identifies an order in the online shop.',
|
|
45
|
+
SKU TEXT COMMENT 'The purchased article number'
|
|
46
|
+
) COMMENT='A single article that is part of an order.';
|
|
47
47
|
""".strip()
|
|
48
48
|
assert actual == expected
|
|
49
49
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_change.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/breaking/breaking_rules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_checks.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/data_contract_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/engines/soda/connections/trino.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/avro_idl_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/bigquery_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/custom_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/data_caterer_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/duckdb_type_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/exporter_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/iceberg_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/jsonschema_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/markdown_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pandas_type_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/protobuf_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/pydantic_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sodacl_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/spark_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/sqlalchemy_converter.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/export/terraform_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/bigquery_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/excel_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/iceberg_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/importer_factory.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/jsonschema_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/odcs_v3_importer.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/parquet_importer.py
RENAMED
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/protobuf_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/imports/unity_importer.py
RENAMED
|
File without changes
|
|
File without changes
|
{datacontract_cli-0.10.25 → datacontract_cli-0.10.26}/datacontract/integration/datamesh_manager.py
RENAMED
|
File without changes
|
|
File without changes
|