datacontract-cli 0.10.6__tar.gz → 0.10.8__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.6 → datacontract_cli-0.10.8}/PKG-INFO +232 -96
- datacontract_cli-0.10.6/datacontract_cli.egg-info/PKG-INFO → datacontract_cli-0.10.8/README.md +196 -133
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/cli.py +26 -24
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/data_contract.py +69 -152
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/fastjsonschema/s3/s3_read_files.py +13 -1
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/check_soda_execute.py +11 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/bigquery.py +8 -1
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/kafka.py +3 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/avro_converter.py +28 -21
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/avro_idl_converter.py +29 -22
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/bigquery_converter.py +15 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/dbml_converter.py +9 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/dbt_converter.py +26 -1
- datacontract_cli-0.10.8/datacontract/export/exporter.py +87 -0
- datacontract_cli-0.10.8/datacontract/export/exporter_factory.py +52 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/go_converter.py +6 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/great_expectations_converter.py +10 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/html_export.py +6 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/jsonschema_converter.py +24 -16
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/odcs_converter.py +24 -1
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/protobuf_converter.py +6 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/pydantic_converter.py +6 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/rdf_converter.py +9 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/sodacl_converter.py +7 -1
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/sql_converter.py +32 -2
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/sql_type_converter.py +4 -5
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/terraform_converter.py +6 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/imports/bigquery_importer.py +30 -4
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/imports/glue_importer.py +13 -3
- datacontract_cli-0.10.8/datacontract/imports/odcs_importer.py +192 -0
- datacontract_cli-0.10.8/datacontract/imports/unity_importer.py +138 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/model/data_contract_specification.py +2 -0
- datacontract_cli-0.10.8/datacontract/templates/partials/server.html +176 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/style/output.css +9 -0
- datacontract_cli-0.10.8/datacontract/web.py +68 -0
- datacontract_cli-0.10.6/README.md → datacontract_cli-0.10.8/datacontract_cli.egg-info/PKG-INFO +269 -76
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract_cli.egg-info/SOURCES.txt +10 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract_cli.egg-info/requires.txt +45 -19
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/pyproject.toml +57 -27
- datacontract_cli-0.10.8/tests/test_description_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_avro.py +1 -1
- datacontract_cli-0.10.8/tests/test_export_custom_exporter.py +30 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_jsonschema.py +5 -3
- datacontract_cli-0.10.8/tests/test_export_sql.py +115 -0
- datacontract_cli-0.10.8/tests/test_import_bigquery.py +50 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_import_glue.py +35 -0
- datacontract_cli-0.10.8/tests/test_import_odcs.py +49 -0
- datacontract_cli-0.10.8/tests/test_import_unity_file.py +36 -0
- datacontract_cli-0.10.8/tests/test_roundtrip_jsonschema.py +49 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_schema.py +2 -2
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_azure_parquet_remote.py +16 -3
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_databricks.py +1 -1
- datacontract_cli-0.10.8/tests/test_test_dataframe.py +75 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_kafka.py +1 -5
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_parquet.py +9 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_postgres.py +18 -6
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_sqlserver.py +5 -5
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_web.py +17 -0
- datacontract_cli-0.10.6/datacontract/templates/partials/server.html +0 -144
- datacontract_cli-0.10.6/datacontract/web.py +0 -14
- datacontract_cli-0.10.6/tests/test_export_sql.py +0 -71
- datacontract_cli-0.10.6/tests/test_import_bigquery.py +0 -85
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/LICENSE +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/MANIFEST.in +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/__init__.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/breaking/breaking.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/breaking/breaking_rules.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/catalog/catalog.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/__init__.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/datacontract/check_that_datacontract_file_exists.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/datacontract/check_that_datacontract_str_is_valid.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/fastjsonschema/check_jsonschema.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/__init__.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/dask.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/databricks.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/duckdb.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/postgres.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/snowflake.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/engines/soda/connections/sqlserver.py +0 -0
- {datacontract_cli-0.10.6/datacontract/lint/linters → datacontract_cli-0.10.8/datacontract/export}/__init__.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/export/csv_type_converter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/imports/avro_importer.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/imports/jsonschema_importer.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/imports/sql_importer.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/init/download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/integration/publish_datamesh_manager.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/integration/publish_opentelemetry.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/files.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/lint.py +0 -0
- /datacontract_cli-0.10.6/datacontract/py.typed → /datacontract_cli-0.10.8/datacontract/lint/linters/__init__.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/description_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/example_model_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/field_reference_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/notice_period_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/quality_schema_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/linters/valid_constraints_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/resolve.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/schema.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/lint/urls.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/model/breaking_change.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/model/exceptions.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/model/run.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/publish/publish.py +0 -0
- /datacontract_cli-0.10.6/tests/test_description_linter.py → /datacontract_cli-0.10.8/datacontract/py.typed +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/datacontract.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/index.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/datacontract_information.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/datacontract_servicelevels.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/datacontract_terms.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/definition.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/example.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract/templates/partials/model_field.html +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract_cli.egg-info/dependency_links.txt +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract_cli.egg-info/entry_points.txt +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/datacontract_cli.egg-info/top_level.txt +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/setup.cfg +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_breaking.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_catalog.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_changelog.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_cli.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_documentation_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_download_datacontract_file.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_example_model_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_avro_idl.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_bigquery.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_dbml.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_dbt_models.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_dbt_sources.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_dbt_staging_sql.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_go.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_great_expectations.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_html.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_odcs.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_protobuf.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_pydantic.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_rdf.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_sodacl.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_sql_query.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_export_terraform.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_field_constraint_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_field_pattern_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_field_reference_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_import_avro.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_import_jsonschema.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_import_sql.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_integration_datameshmanager.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_integration_opentelemetry.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_lint.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_notice_period_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_quality_schema_linter.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_bigquery.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_examples_csv.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_examples_formats_valid.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_examples_inline.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_examples_json.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_examples_missing.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_kafka_remote.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_local_json.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_csv.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_delta.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_json.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_json_complex.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_json_multiple_models.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_s3_json_remote.py +0 -0
- {datacontract_cli-0.10.6 → datacontract_cli-0.10.8}/tests/test_test_snowflake.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.8
|
|
4
4
|
Summary: Test data contracts
|
|
5
5
|
Author-email: Jochen Christ <jochen.christ@innoq.com>, Stefan Negele <stefan.negele@innoq.com>
|
|
6
6
|
Project-URL: Homepage, https://cli.datacontract.com
|
|
@@ -20,39 +20,55 @@ Requires-Dist: fastparquet==2024.5.0
|
|
|
20
20
|
Requires-Dist: python-multipart==0.0.9
|
|
21
21
|
Requires-Dist: rich~=13.7.0
|
|
22
22
|
Requires-Dist: simple-ddl-parser==1.5.1
|
|
23
|
-
Requires-Dist: soda-core-bigquery<3.4.0,>=3.3.1
|
|
24
23
|
Requires-Dist: soda-core-duckdb<3.4.0,>=3.3.1
|
|
25
|
-
Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.1
|
|
26
|
-
Requires-Dist: soda-core-postgres<3.4.0,>=3.3.1
|
|
27
|
-
Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.1
|
|
28
|
-
Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.1
|
|
29
|
-
Requires-Dist: databricks-sql-connector<3.2.0,>=3.1.2
|
|
30
|
-
Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1
|
|
31
24
|
Requires-Dist: setuptools>=60
|
|
32
|
-
Requires-Dist:
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist: fastjsonschema~=2.19.1
|
|
25
|
+
Requires-Dist: duckdb==1.0.0
|
|
26
|
+
Requires-Dist: fastjsonschema<2.21.0,>=2.19.1
|
|
35
27
|
Requires-Dist: python-dotenv~=1.0.0
|
|
36
|
-
Requires-Dist: s3fs==2024.5.0
|
|
37
28
|
Requires-Dist: rdflib==7.0.0
|
|
38
|
-
Requires-Dist: avro==1.11.3
|
|
39
29
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc~=1.16
|
|
40
30
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http~=1.16
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist: botocore<1.34.114,>=1.34.41
|
|
31
|
+
Requires-Dist: boto3<1.34.130,>=1.34.41
|
|
32
|
+
Requires-Dist: botocore<1.34.128,>=1.34.41
|
|
44
33
|
Requires-Dist: jinja_partials>=0.2.1
|
|
34
|
+
Provides-Extra: avro
|
|
35
|
+
Requires-Dist: avro==1.11.3; 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.2.0,>=3.1.2; extra == "databricks"
|
|
41
|
+
Requires-Dist: soda-core-spark[databricks]<3.4.0,>=3.3.1; extra == "databricks"
|
|
42
|
+
Provides-Extra: deltalake
|
|
43
|
+
Requires-Dist: deltalake<0.19,>=0.17; extra == "deltalake"
|
|
44
|
+
Provides-Extra: kafka
|
|
45
|
+
Requires-Dist: datacontract-cli[avro]; extra == "kafka"
|
|
46
|
+
Requires-Dist: soda-core-spark-df<3.4.0,>=3.3.1; extra == "kafka"
|
|
47
|
+
Provides-Extra: postgres
|
|
48
|
+
Requires-Dist: soda-core-postgres<3.4.0,>=3.3.1; extra == "postgres"
|
|
49
|
+
Provides-Extra: s3
|
|
50
|
+
Requires-Dist: s3fs==2024.6.0; extra == "s3"
|
|
51
|
+
Provides-Extra: snowflake
|
|
52
|
+
Requires-Dist: snowflake-connector-python[pandas]<3.11,>=3.6; extra == "snowflake"
|
|
53
|
+
Requires-Dist: soda-core-snowflake<3.4.0,>=3.3.1; extra == "snowflake"
|
|
54
|
+
Provides-Extra: sqlserver
|
|
55
|
+
Requires-Dist: soda-core-sqlserver<3.4.0,>=3.3.1; extra == "sqlserver"
|
|
56
|
+
Provides-Extra: all
|
|
57
|
+
Requires-Dist: datacontract-cli[bigquery,databricks,deltalake,kafka,postgres,s3,snowflake,sqlserver]; extra == "all"
|
|
45
58
|
Provides-Extra: dev
|
|
59
|
+
Requires-Dist: datacontract-cli[all]; extra == "dev"
|
|
46
60
|
Requires-Dist: httpx==0.27.0; extra == "dev"
|
|
47
61
|
Requires-Dist: ruff; extra == "dev"
|
|
62
|
+
Requires-Dist: pre-commit~=3.7.1; extra == "dev"
|
|
48
63
|
Requires-Dist: pytest; extra == "dev"
|
|
49
64
|
Requires-Dist: pytest-xdist; extra == "dev"
|
|
50
65
|
Requires-Dist: moto; extra == "dev"
|
|
51
66
|
Requires-Dist: pymssql==2.3.0; extra == "dev"
|
|
52
|
-
Requires-Dist:
|
|
53
|
-
Requires-Dist: testcontainers
|
|
54
|
-
Requires-Dist: testcontainers
|
|
55
|
-
Requires-Dist: testcontainers
|
|
67
|
+
Requires-Dist: kafka-python; extra == "dev"
|
|
68
|
+
Requires-Dist: testcontainers~=4.5.0; extra == "dev"
|
|
69
|
+
Requires-Dist: testcontainers[minio]; extra == "dev"
|
|
70
|
+
Requires-Dist: testcontainers[postgres]; extra == "dev"
|
|
71
|
+
Requires-Dist: testcontainers[kafka]; extra == "dev"
|
|
56
72
|
Requires-Dist: testcontainers[mssql]; extra == "dev"
|
|
57
73
|
|
|
58
74
|
# Data Contract CLI
|
|
@@ -82,9 +98,10 @@ This data contract contains all information to connect to S3 and check that the
|
|
|
82
98
|
|
|
83
99
|
Let's use [pip](https://pip.pypa.io/en/stable/getting-started/) to install the CLI (or use the [Docker image](#docker), if you prefer).
|
|
84
100
|
```bash
|
|
85
|
-
$ python3 -m pip install datacontract-cli
|
|
101
|
+
$ python3 -m pip install datacontract-cli[all]
|
|
86
102
|
```
|
|
87
103
|
|
|
104
|
+
|
|
88
105
|
We run the tests:
|
|
89
106
|
|
|
90
107
|
```bash
|
|
@@ -154,6 +171,7 @@ $ datacontract export --format html https://datacontract.com/examples/orders-lat
|
|
|
154
171
|
|
|
155
172
|
which will create this [HTML export](https://datacontract.com/examples/orders-latest/datacontract.html).
|
|
156
173
|
|
|
174
|
+
|
|
157
175
|
## Usage
|
|
158
176
|
|
|
159
177
|
```bash
|
|
@@ -206,13 +224,13 @@ Python 3.11 recommended.
|
|
|
206
224
|
Python 3.12 available as pre-release release candidate for 0.9.3
|
|
207
225
|
|
|
208
226
|
```bash
|
|
209
|
-
python3 -m pip install datacontract-cli
|
|
227
|
+
python3 -m pip install datacontract-cli[all]
|
|
210
228
|
```
|
|
211
229
|
|
|
212
230
|
### pipx
|
|
213
231
|
pipx installs into an isolated environment.
|
|
214
232
|
```bash
|
|
215
|
-
pipx install datacontract-cli
|
|
233
|
+
pipx install datacontract-cli[all]
|
|
216
234
|
```
|
|
217
235
|
|
|
218
236
|
### Docker
|
|
@@ -228,6 +246,32 @@ Or via an alias that automatically uses the latest version:
|
|
|
228
246
|
alias datacontract='docker run --rm -v "${PWD}:/home/datacontract" datacontract/cli:latest'
|
|
229
247
|
```
|
|
230
248
|
|
|
249
|
+
|
|
250
|
+
## Optional Dependencies
|
|
251
|
+
|
|
252
|
+
The CLI tool defines several optional dependencies (also known as extras) that can be installed for using with specific servers types.
|
|
253
|
+
With _all_, all server dependencies are included.
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
pip install datacontract-cli[all]
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
A list of available extras:
|
|
260
|
+
|
|
261
|
+
| Dependency | Installation Command |
|
|
262
|
+
|-------------------------|-------------------------------------------------------------|
|
|
263
|
+
| Avro Support | `pip install datacontract-cli[avro]` |
|
|
264
|
+
| Google BigQuery | `pip install datacontract-cli[bigquery]` |
|
|
265
|
+
| Databricks Integration | `pip install datacontract-cli[databricks]` |
|
|
266
|
+
| Deltalake Integration | `pip install datacontract-cli[deltalake]` |
|
|
267
|
+
| Kafka Integration | `pip install datacontract-cli[kafka]` |
|
|
268
|
+
| PostgreSQL Integration | `pip install datacontract-cli[postgres]` |
|
|
269
|
+
| S3 Integration | `pip install datacontract-cli[s3]` |
|
|
270
|
+
| Snowflake Integration | `pip install datacontract-cli[snowflake]` |
|
|
271
|
+
| Microsoft SQL Server | `pip install datacontract-cli[sqlserver]` |
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
|
|
231
275
|
## Documentation
|
|
232
276
|
|
|
233
277
|
Commands
|
|
@@ -333,8 +377,10 @@ Supported server types:
|
|
|
333
377
|
- [s3](#S3)
|
|
334
378
|
- [bigquery](#bigquery)
|
|
335
379
|
- [azure](#azure)
|
|
380
|
+
- [sqlserver](#sqlserver)
|
|
336
381
|
- [databricks](#databricks)
|
|
337
382
|
- [databricks (programmatic)](#databricks-programmatic)
|
|
383
|
+
- [dataframr (programmatic)](#dataframe-programmatic)
|
|
338
384
|
- [snowflake](#snowflake)
|
|
339
385
|
- [kafka](#kafka)
|
|
340
386
|
- [postgres](#postgres)
|
|
@@ -417,7 +463,7 @@ models:
|
|
|
417
463
|
|
|
418
464
|
| Environment Variable | Example | Description |
|
|
419
465
|
|----------------------------------------------|---------------------------|---------------------------------------------------------|
|
|
420
|
-
| `DATACONTRACT_BIGQUERY_ACCOUNT_INFO_JSON_PATH` | `~/service-access-key.json` | Service Access key as saved on key creation by BigQuery |
|
|
466
|
+
| `DATACONTRACT_BIGQUERY_ACCOUNT_INFO_JSON_PATH` | `~/service-access-key.json` | Service Access key as saved on key creation by BigQuery. If this environment variable isn't set, the cli tries to use `GOOGLE_APPLICATION_CREDENTIALS` as a fallback, so if you have that set for using their Python library anyway, it should work seamlessly. |
|
|
421
467
|
|
|
422
468
|
|
|
423
469
|
|
|
@@ -448,6 +494,43 @@ Authentication works with an Azure Service Principal (SPN) aka App Registration
|
|
|
448
494
|
|
|
449
495
|
|
|
450
496
|
|
|
497
|
+
### Sqlserver
|
|
498
|
+
|
|
499
|
+
Data Contract CLI can test data in MS SQL Server (including Azure SQL, Synapse Analytics SQL Pool).
|
|
500
|
+
|
|
501
|
+
#### Example
|
|
502
|
+
|
|
503
|
+
datacontract.yaml
|
|
504
|
+
```yaml
|
|
505
|
+
servers:
|
|
506
|
+
production:
|
|
507
|
+
type: sqlserver
|
|
508
|
+
host: localhost
|
|
509
|
+
port: 5432
|
|
510
|
+
database: tempdb
|
|
511
|
+
schema: dbo
|
|
512
|
+
driver: ODBC Driver 18 for SQL Server
|
|
513
|
+
models:
|
|
514
|
+
my_table_1: # corresponds to a table
|
|
515
|
+
type: table
|
|
516
|
+
fields:
|
|
517
|
+
my_column_1: # corresponds to a column
|
|
518
|
+
type: varchar
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
#### Environment Variables
|
|
522
|
+
|
|
523
|
+
| Environment Variable | Example | Description |
|
|
524
|
+
|----------------------------------|--------------------|-------------|
|
|
525
|
+
| `DATACONTRACT_SQLSERVER_USERNAME` | `root` | Username |
|
|
526
|
+
| `DATACONTRACT_SQLSERVER_PASSWORD` | `toor` | Password |
|
|
527
|
+
| `DATACONTRACT_SQLSERVER_TRUSTED_CONNECTION` | `True` | Use windows authentication, instead of login |
|
|
528
|
+
| `DATACONTRACT_SQLSERVER_TRUST_SERVER_CERTIFICATE` | `True` | Trust self-signed certificate |
|
|
529
|
+
| `DATACONTRACT_SQLSERVER_ENCRYPTED_CONNECTION` | `True` | Use SSL |
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
451
534
|
### Databricks
|
|
452
535
|
|
|
453
536
|
Works with Unity Catalog and Hive metastore.
|
|
@@ -504,7 +587,7 @@ models:
|
|
|
504
587
|
|
|
505
588
|
Notebook
|
|
506
589
|
```python
|
|
507
|
-
%pip install datacontract-cli
|
|
590
|
+
%pip install datacontract-cli[databricks]
|
|
508
591
|
dbutils.library.restartPython()
|
|
509
592
|
|
|
510
593
|
from datacontract.data_contract import DataContract
|
|
@@ -516,6 +599,41 @@ run = data_contract.test()
|
|
|
516
599
|
run.result
|
|
517
600
|
```
|
|
518
601
|
|
|
602
|
+
### Dataframe (programmatic)
|
|
603
|
+
|
|
604
|
+
Works with Spark DataFrames.
|
|
605
|
+
DataFrames need to be created as named temporary views.
|
|
606
|
+
Multiple temporary views are suppored if your data contract contains multiple models.
|
|
607
|
+
|
|
608
|
+
Testing DataFrames is useful to test your datasets in a pipeline before writing them to a data source.
|
|
609
|
+
|
|
610
|
+
#### Example
|
|
611
|
+
|
|
612
|
+
datacontract.yaml
|
|
613
|
+
```yaml
|
|
614
|
+
servers:
|
|
615
|
+
production:
|
|
616
|
+
type: dataframe
|
|
617
|
+
models:
|
|
618
|
+
my_table: # corresponds to a temporary view
|
|
619
|
+
type: table
|
|
620
|
+
fields: ...
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
Example code
|
|
624
|
+
```python
|
|
625
|
+
from datacontract.data_contract import DataContract
|
|
626
|
+
|
|
627
|
+
df.createOrReplaceTempView("my_table")
|
|
628
|
+
|
|
629
|
+
data_contract = DataContract(
|
|
630
|
+
data_contract_file="datacontract.yaml",
|
|
631
|
+
spark=spark,
|
|
632
|
+
)
|
|
633
|
+
run = data_contract.test()
|
|
634
|
+
assert run.result == "passed"
|
|
635
|
+
```
|
|
636
|
+
|
|
519
637
|
|
|
520
638
|
### Snowflake
|
|
521
639
|
|
|
@@ -608,50 +726,15 @@ models:
|
|
|
608
726
|
|
|
609
727
|
|
|
610
728
|
|
|
611
|
-
### Postgres
|
|
612
|
-
|
|
613
|
-
Data Contract CLI can test data in Postgres or Postgres-compliant databases (e.g., RisingWave).
|
|
614
729
|
|
|
615
|
-
|
|
730
|
+
### export
|
|
616
731
|
|
|
617
|
-
datacontract.yaml
|
|
618
|
-
```yaml
|
|
619
|
-
servers:
|
|
620
|
-
postgres:
|
|
621
|
-
type: sqlserver
|
|
622
|
-
host: localhost
|
|
623
|
-
port: 5432
|
|
624
|
-
database: tempdb
|
|
625
|
-
schema: dbo
|
|
626
|
-
driver: ODBC Driver 18 for SQL Server
|
|
627
|
-
models:
|
|
628
|
-
my_table_1: # corresponds to a table
|
|
629
|
-
type: table
|
|
630
|
-
fields:
|
|
631
|
-
my_column_1: # corresponds to a column
|
|
632
|
-
type: varchar
|
|
633
732
|
```
|
|
634
733
|
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
| Environment Variable | Example | Description |
|
|
638
|
-
|----------------------------------|--------------------|-------------|
|
|
639
|
-
| `DATACONTRACT_SQLSERVER_USERNAME` | `root` | Username |
|
|
640
|
-
| `DATACONTRACT_SQLSERVER_PASSWORD` | `toor` | Password |
|
|
641
|
-
| `DATACONTRACT_SQLSERVER_TRUSTED_CONNECTION` | `True` | Use windows authentication, instead of login |
|
|
642
|
-
| `DATACONTRACT_SQLSERVER_TRUST_SERVER_CERTIFICATE` | `True` | Trust self-signed certificate |
|
|
643
|
-
| `DATACONTRACT_SQLSERVER_ENCRYPTED_CONNECTION` | `True` | Use SSL |
|
|
644
|
-
|
|
734
|
+
Usage: datacontract export [OPTIONS] [LOCATION]
|
|
645
735
|
|
|
736
|
+
Convert data contract to a specific format. Prints to stdout or to the specified output file.
|
|
646
737
|
|
|
647
|
-
### export
|
|
648
|
-
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
Usage: datacontract export [OPTIONS] [LOCATION]
|
|
652
|
-
|
|
653
|
-
Convert data contract to a specific format. Prints to stdout or to the specified output file.
|
|
654
|
-
|
|
655
738
|
╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
656
739
|
│ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
|
|
657
740
|
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
@@ -752,13 +835,13 @@ data products, find the true domain owner of a field attribute)
|
|
|
752
835
|
#### DBML
|
|
753
836
|
|
|
754
837
|
The export function converts the logical data types of the datacontract into the specific ones of a concrete Database
|
|
755
|
-
if a server is selected via the `--server` option (based on the `type` of that server). If no server is selected, the
|
|
838
|
+
if a server is selected via the `--server` option (based on the `type` of that server). If no server is selected, the
|
|
756
839
|
logical data types are exported.
|
|
757
840
|
|
|
758
841
|
|
|
759
842
|
#### Avro
|
|
760
843
|
|
|
761
|
-
The export function converts the data contract specification into an avro schema. It supports specifying custom avro properties for logicalTypes and default values.
|
|
844
|
+
The export function converts the data contract specification into an avro schema. It supports specifying custom avro properties for logicalTypes and default values.
|
|
762
845
|
|
|
763
846
|
##### Custom Avro Properties
|
|
764
847
|
|
|
@@ -778,7 +861,7 @@ models:
|
|
|
778
861
|
description: Example for AVRO with Timestamp (microsecond precision) https://avro.apache.org/docs/current/spec.html#Local+timestamp+%28microsecond+precision%29
|
|
779
862
|
type: long
|
|
780
863
|
example: 1672534861000000 # Equivalent to 2023-01-01 01:01:01 in microseconds
|
|
781
|
-
config:
|
|
864
|
+
config:
|
|
782
865
|
avroLogicalType: local-timestamp-micros
|
|
783
866
|
avroDefault: 1672534861000000
|
|
784
867
|
```
|
|
@@ -804,39 +887,28 @@ models:
|
|
|
804
887
|
|
|
805
888
|
Create a data contract from the given source location. Prints to stdout.
|
|
806
889
|
|
|
807
|
-
╭─ Options
|
|
808
|
-
│ * --format [sql|avro|glue|bigquery|jsonschema] The format of the source file. [default: None] [required]
|
|
809
|
-
│ --source TEXT
|
|
810
|
-
│
|
|
811
|
-
│ --
|
|
812
|
-
│
|
|
813
|
-
│
|
|
814
|
-
│
|
|
815
|
-
│ --
|
|
816
|
-
|
|
890
|
+
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
|
|
891
|
+
│ * --format [sql|avro|glue|bigquery|jsonschema|unity] The format of the source file. [default: None] [required] │
|
|
892
|
+
│ --source TEXT The path to the file or Glue Database that should be imported. │
|
|
893
|
+
│ [default: None] │
|
|
894
|
+
│ --glue-table TEXT List of table ids to import from the Glue Database (repeat for │
|
|
895
|
+
│ multiple table ids, leave empty for all tables in the dataset). │
|
|
896
|
+
│ [default: None] │
|
|
897
|
+
│ --bigquery-project TEXT The bigquery project id. [default: None] │
|
|
898
|
+
│ --bigquery-dataset TEXT The bigquery dataset id. [default: None] │
|
|
899
|
+
│ --bigquery-table TEXT List of table ids to import from the bigquery API (repeat for │
|
|
900
|
+
│ multiple table ids, leave empty for all tables in the dataset). │
|
|
901
|
+
│ [default: None] │
|
|
902
|
+
│ --help Show this message and exit. │
|
|
903
|
+
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
|
817
904
|
```
|
|
818
905
|
|
|
819
|
-
As shown, some options are only relevant in certain conditions: For `format` Bigtable we support to directly read off the Bigtable APIs.
|
|
820
|
-
In this case there's no need to specify `source` but instead `bt-project-id`, `bt-dataset-id` and `table` must be specified.
|
|
821
|
-
|
|
822
|
-
For providing authentication to the Client, please see [the google documentation](https://cloud.google.com/docs/authentication/provide-credentials-adc#how-to) or the one [about authorizing client libraries](https://cloud.google.com/bigquery/docs/authentication#client-libs).
|
|
823
|
-
|
|
824
906
|
Example:
|
|
825
907
|
```bash
|
|
826
908
|
# Example import from SQL DDL
|
|
827
909
|
datacontract import --format sql --source my_ddl.sql
|
|
828
910
|
```
|
|
829
911
|
|
|
830
|
-
```bash
|
|
831
|
-
# Example import from Bigquery JSON
|
|
832
|
-
datacontract import --format bigquery --source my_bigquery_table.json
|
|
833
|
-
```
|
|
834
|
-
|
|
835
|
-
```bash
|
|
836
|
-
# Example import from Bigquery API
|
|
837
|
-
datacontract import --format bigquery --btProjectId <project_id> --btDatasetId <dataset_id> --table <tableid_1> --table <tableid_2> --table <tableid_3>
|
|
838
|
-
```
|
|
839
|
-
|
|
840
912
|
Available import options:
|
|
841
913
|
|
|
842
914
|
| Type | Description | Status |
|
|
@@ -845,13 +917,71 @@ Available import options:
|
|
|
845
917
|
| `avro` | Import from AVRO schemas | ✅ |
|
|
846
918
|
| `glue` | Import from AWS Glue DataCatalog | ✅ |
|
|
847
919
|
| `protobuf` | Import from Protobuf schemas | TBD |
|
|
848
|
-
| `jsonschema` | Import from JSON Schemas | ✅
|
|
849
|
-
| `bigquery` | Import from BigQuery Schemas | ✅
|
|
920
|
+
| `jsonschema` | Import from JSON Schemas | ✅ |
|
|
921
|
+
| `bigquery` | Import from BigQuery Schemas | ✅ |
|
|
922
|
+
| `unity` | Import from Databricks Unity Catalog | partial |
|
|
850
923
|
| `dbt` | Import from dbt models | TBD |
|
|
851
|
-
| `odcs` | Import from Open Data Contract Standard (ODCS) |
|
|
924
|
+
| `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
|
|
852
925
|
| Missing something? | Please create an issue on GitHub | TBD |
|
|
853
926
|
|
|
854
927
|
|
|
928
|
+
#### BigQuery
|
|
929
|
+
|
|
930
|
+
Bigquery data can either be imported off of JSON Files generated from the table descriptions or directly from the Bigquery API. In case you want to use JSON Files, specify the `source` parameter with a path to the JSON File.
|
|
931
|
+
|
|
932
|
+
To import from the Bigquery API, you have to _omit_ `source` and instead need to provide `bigquery-project` and `bigquery-dataset`. Additionally you may specify `bigquery-table` to enumerate the tables that should be imported. If no tables are given, _all_ available tables of the dataset will be imported.
|
|
933
|
+
|
|
934
|
+
For providing authentication to the Client, please see [the google documentation](https://cloud.google.com/docs/authentication/provide-credentials-adc#how-to) or the one [about authorizing client libraries](https://cloud.google.com/bigquery/docs/authentication#client-libs).
|
|
935
|
+
|
|
936
|
+
Examples:
|
|
937
|
+
|
|
938
|
+
```bash
|
|
939
|
+
# Example import from Bigquery JSON
|
|
940
|
+
datacontract import --format bigquery --source my_bigquery_table.json
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
```bash
|
|
944
|
+
# Example import from Bigquery API with specifying the tables to import
|
|
945
|
+
datacontract import --format bigquery --bigquery-project <project_id> --bigquery-dataset <dataset_id> --bigquery-table <tableid_1> --bigquery-table <tableid_2> --bigquery-table <tableid_3>
|
|
946
|
+
```
|
|
947
|
+
|
|
948
|
+
```bash
|
|
949
|
+
# Example import from Bigquery API importing all tables in the dataset
|
|
950
|
+
datacontract import --format bigquery --bigquery-project <project_id> --bigquery-dataset <dataset_id>
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
#### Unity Catalog
|
|
954
|
+
|
|
955
|
+
```bash
|
|
956
|
+
# Example import from a Unity Catalog JSON file
|
|
957
|
+
datacontract import --format unity --source my_unity_table.json
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
```bash
|
|
961
|
+
# Example import single table from Unity Catalog via HTTP endpoint
|
|
962
|
+
export DATABRICKS_IMPORT_INSTANCE="https://xyz.cloud.databricks.com"
|
|
963
|
+
export DATABRICKS_IMPORT_ACCESS_TOKEN=<token>
|
|
964
|
+
datacontract import --format unity --unity-table-full-name <table_full_name>
|
|
965
|
+
```
|
|
966
|
+
|
|
967
|
+
### Glue
|
|
968
|
+
|
|
969
|
+
Importing from Glue reads the necessary Data directly off of the AWS API.
|
|
970
|
+
You may give the `glue-table` parameter to enumerate the tables that should be imported. If no tables are given, _all_ available tables of the database will be imported.
|
|
971
|
+
|
|
972
|
+
Examples:
|
|
973
|
+
|
|
974
|
+
```bash
|
|
975
|
+
# Example import from AWS Glue with specifying the tables to import
|
|
976
|
+
datacontract import --format glue --source <database_name> --glue-table <table_name_1> --glue-table <table_name_2> --glue-table <table_name_3>
|
|
977
|
+
```
|
|
978
|
+
|
|
979
|
+
```bash
|
|
980
|
+
# Example import from AWS Glue importing all tables in the database
|
|
981
|
+
datacontract import --format glue --source <database_name>
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
|
|
855
985
|
### breaking
|
|
856
986
|
|
|
857
987
|
```
|
|
@@ -1096,8 +1226,8 @@ source venv/bin/activate
|
|
|
1096
1226
|
# Install Requirements
|
|
1097
1227
|
pip install --upgrade pip setuptools wheel
|
|
1098
1228
|
pip install -e '.[dev]'
|
|
1099
|
-
|
|
1100
|
-
|
|
1229
|
+
pre-commit install
|
|
1230
|
+
pre-commit run --all-files
|
|
1101
1231
|
pytest
|
|
1102
1232
|
```
|
|
1103
1233
|
|
|
@@ -1153,6 +1283,12 @@ We are happy to receive your contributions. Propose your change in an issue or d
|
|
|
1153
1283
|
- [INNOQ](https://innoq.com)
|
|
1154
1284
|
- And many more. To add your company, please create a pull request.
|
|
1155
1285
|
|
|
1286
|
+
## Related Tools
|
|
1287
|
+
|
|
1288
|
+
- [Data Mesh Manager](https://www.datamesh-manager.com/) is a commercial tool to manage data products and data contracts. It supports the data contract specification and allows the user to import or export data contracts using this specification.
|
|
1289
|
+
- [Data Contract GPT](https://gpt.datacontract.com) is a custom GPT that can help you write data contracts.
|
|
1290
|
+
- [Data Contract Editor](https://editor.datacontract.com) is an editor for Data Contracts, including a live html preview.
|
|
1291
|
+
|
|
1156
1292
|
## License
|
|
1157
1293
|
|
|
1158
1294
|
[MIT License](LICENSE)
|