datacontract-cli 0.10.27__py3-none-any.whl → 0.10.29__py3-none-any.whl

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.

Files changed (37) hide show
  1. datacontract/api.py +1 -1
  2. datacontract/cli.py +37 -5
  3. datacontract/data_contract.py +122 -29
  4. datacontract/engines/data_contract_checks.py +2 -0
  5. datacontract/engines/soda/connections/duckdb_connection.py +1 -1
  6. datacontract/export/html_exporter.py +28 -23
  7. datacontract/export/mermaid_exporter.py +78 -13
  8. datacontract/export/odcs_v3_exporter.py +7 -9
  9. datacontract/export/rdf_converter.py +2 -2
  10. datacontract/export/sql_type_converter.py +2 -2
  11. datacontract/imports/excel_importer.py +7 -2
  12. datacontract/imports/importer.py +11 -1
  13. datacontract/imports/importer_factory.py +7 -0
  14. datacontract/imports/json_importer.py +325 -0
  15. datacontract/imports/odcs_importer.py +2 -2
  16. datacontract/imports/odcs_v3_importer.py +9 -9
  17. datacontract/imports/spark_importer.py +38 -16
  18. datacontract/imports/sql_importer.py +4 -2
  19. datacontract/imports/unity_importer.py +77 -37
  20. datacontract/init/init_template.py +1 -1
  21. datacontract/integration/datamesh_manager.py +16 -2
  22. datacontract/lint/resolve.py +61 -7
  23. datacontract/lint/schema.py +1 -1
  24. datacontract/schemas/datacontract-1.1.0.init.yaml +1 -1
  25. datacontract/schemas/datacontract-1.2.0.init.yaml +91 -0
  26. datacontract/schemas/datacontract-1.2.0.schema.json +2029 -0
  27. datacontract/templates/datacontract.html +4 -0
  28. datacontract/templates/datacontract_odcs.html +666 -0
  29. datacontract/templates/index.html +2 -0
  30. datacontract/templates/partials/server.html +2 -0
  31. datacontract/templates/style/output.css +319 -145
  32. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/METADATA +98 -62
  33. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/RECORD +37 -33
  34. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/WHEEL +1 -1
  35. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/entry_points.txt +0 -0
  36. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/licenses/LICENSE +0 -0
  37. {datacontract_cli-0.10.27.dist-info → datacontract_cli-0.10.29.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datacontract-cli
3
- Version: 0.10.27
3
+ Version: 0.10.29
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
@@ -28,7 +28,7 @@ Requires-Dist: python-dotenv<2.0.0,>=1.0.0
28
28
  Requires-Dist: boto3<2.0.0,>=1.34.41
29
29
  Requires-Dist: Jinja2<4.0.0,>=3.1.5
30
30
  Requires-Dist: jinja_partials<1.0.0,>=0.2.1
31
- Requires-Dist: datacontract-specification<2.0.0,>=1.1.1
31
+ Requires-Dist: datacontract-specification<2.0.0,>=1.2.0
32
32
  Requires-Dist: open-data-contract-standard<4.0.0,>=3.0.4
33
33
  Provides-Extra: avro
34
34
  Requires-Dist: avro==1.12.0; extra == "avro"
@@ -42,19 +42,21 @@ Provides-Extra: databricks
42
42
  Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "databricks"
43
43
  Requires-Dist: soda-core-spark[databricks]<3.6.0,>=3.3.20; extra == "databricks"
44
44
  Requires-Dist: databricks-sql-connector<4.1.0,>=3.7.0; extra == "databricks"
45
- Requires-Dist: databricks-sdk<0.51.0; extra == "databricks"
45
+ Requires-Dist: databricks-sdk<0.58.0; extra == "databricks"
46
+ Requires-Dist: pyspark<4.0.0,>=3.5.5; extra == "databricks"
46
47
  Provides-Extra: iceberg
47
- Requires-Dist: pyiceberg==0.8.1; extra == "iceberg"
48
+ Requires-Dist: pyiceberg==0.9.1; extra == "iceberg"
48
49
  Provides-Extra: kafka
49
50
  Requires-Dist: datacontract-cli[avro]; extra == "kafka"
50
51
  Requires-Dist: soda-core-spark-df<3.6.0,>=3.3.20; extra == "kafka"
52
+ Requires-Dist: pyspark<4.0.0,>=3.5.5; extra == "kafka"
51
53
  Provides-Extra: postgres
52
54
  Requires-Dist: soda-core-postgres<3.6.0,>=3.3.20; extra == "postgres"
53
55
  Provides-Extra: s3
54
56
  Requires-Dist: s3fs<2026.0.0,>=2025.2.0; extra == "s3"
55
57
  Requires-Dist: aiobotocore<2.23.0,>=2.17.0; extra == "s3"
56
58
  Provides-Extra: snowflake
57
- Requires-Dist: snowflake-connector-python[pandas]<3.15,>=3.6; extra == "snowflake"
59
+ Requires-Dist: snowflake-connector-python[pandas]<3.16,>=3.6; extra == "snowflake"
58
60
  Requires-Dist: soda-core-snowflake<3.6.0,>=3.3.20; extra == "snowflake"
59
61
  Provides-Extra: sqlserver
60
62
  Requires-Dist: soda-core-sqlserver<3.6.0,>=3.3.20; extra == "sqlserver"
@@ -69,8 +71,8 @@ Requires-Dist: pyarrow>=18.1.0; extra == "parquet"
69
71
  Provides-Extra: rdf
70
72
  Requires-Dist: rdflib==7.0.0; extra == "rdf"
71
73
  Provides-Extra: api
72
- Requires-Dist: fastapi==0.115.12; extra == "api"
73
- Requires-Dist: uvicorn==0.34.2; extra == "api"
74
+ Requires-Dist: fastapi==0.115.14; extra == "api"
75
+ Requires-Dist: uvicorn==0.35.0; extra == "api"
74
76
  Provides-Extra: protobuf
75
77
  Requires-Dist: grpcio-tools>=1.53; extra == "protobuf"
76
78
  Provides-Extra: all
@@ -79,15 +81,15 @@ Provides-Extra: dev
79
81
  Requires-Dist: datacontract-cli[all]; extra == "dev"
80
82
  Requires-Dist: httpx==0.28.1; extra == "dev"
81
83
  Requires-Dist: kafka-python; extra == "dev"
82
- Requires-Dist: moto==5.1.4; extra == "dev"
84
+ Requires-Dist: moto==5.1.6; extra == "dev"
83
85
  Requires-Dist: pandas>=2.1.0; extra == "dev"
84
86
  Requires-Dist: pre-commit<4.3.0,>=3.7.1; extra == "dev"
85
87
  Requires-Dist: pytest; extra == "dev"
86
88
  Requires-Dist: pytest-xdist; extra == "dev"
87
- Requires-Dist: pymssql==2.3.4; extra == "dev"
89
+ Requires-Dist: pymssql==2.3.6; extra == "dev"
88
90
  Requires-Dist: ruff; extra == "dev"
89
91
  Requires-Dist: testcontainers[kafka,minio,mssql,postgres]==4.10.0; extra == "dev"
90
- Requires-Dist: trino==0.333.0; extra == "dev"
92
+ Requires-Dist: trino==0.335.0; extra == "dev"
91
93
  Dynamic: license-file
92
94
 
93
95
  # Data Contract CLI
@@ -399,30 +401,38 @@ Commands
399
401
  │ [default: datacontract.yaml] │
400
402
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
401
403
  ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
402
- │ --schema TEXT The location (url or path) of the Data
403
- Contract Specification JSON Schema
404
- [default: None]
405
- --server TEXT The server configuration to run the
406
- schema and quality tests. Use the key of
407
- the server object in the data contract
408
- yaml file to refer to a server, e.g.,
409
- `production`, or `all` for all servers
410
- (default).
411
- [default: all]
412
- --publish TEXT The url to publish the results after the
413
- test
414
- [default: None]
415
- --output PATH Specify the file path where the test
416
- results should be written to (e.g.,
417
- './test-results/TEST-datacontract.xml').
418
- [default: None]
419
- --output-format [junit] The target format for the test results.
420
- [default: None]
421
- │ --logs --no-logs Print logs [default: no-logs]
422
- --ssl-verification --no-ssl-verification SSL verification when publishing the
423
- data contract.
424
- [default: ssl-verification]
425
- --help Show this message and exit.
404
+ │ --schema TEXT The location (url or path) of
405
+ the Data Contract Specification
406
+ JSON Schema
407
+ [default: None]
408
+ --server TEXT The server configuration to run
409
+ the schema and quality tests.
410
+ Use the key of the server object
411
+ in the data contract yaml file
412
+ to refer to a server, e.g.,
413
+ `production`, or `all` for all
414
+ servers (default).
415
+ [default: all]
416
+ --publish-test-results --no-publish-test-results Publish the results after the
417
+ test
418
+ [default:
419
+ no-publish-test-results]
420
+ --publish TEXT DEPRECATED. The url to publish
421
+ the results after the test.
422
+ [default: None]
423
+ │ --output PATH Specify the file path where the
424
+ test results should be written
425
+ to (e.g.,
426
+ './test-results/TEST-datacontra…
427
+ [default: None]
428
+ │ --output-format [junit] The target format for the test │
429
+ │ results. │
430
+ │ [default: None] │
431
+ │ --logs --no-logs Print logs [default: no-logs] │
432
+ │ --ssl-verification --no-ssl-verification SSL verification when publishing │
433
+ │ the data contract. │
434
+ │ [default: ssl-verification] │
435
+ │ --help Show this message and exit. │
426
436
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
427
437
 
428
438
  ```
@@ -996,6 +1006,21 @@ Available export options:
996
1006
  | `custom` | Export to Custom format with Jinja | ✅ |
997
1007
  | Missing something? | Please create an issue on GitHub | TBD |
998
1008
 
1009
+ #### SQL
1010
+
1011
+ The `export` function converts a given data contract into a SQL data definition language (DDL).
1012
+
1013
+ ```shell
1014
+ datacontract export datacontract.yaml --format sql --output output.sql
1015
+ ```
1016
+
1017
+ If using Databricks, and an error is thrown when trying to deploy the SQL DDLs with `variant` columns set the following properties.
1018
+
1019
+ ```shell
1020
+ spark.conf.set(“spark.databricks.delta.schema.typeCheck.enabled”, “false”)
1021
+ from datacontract.model import data_contract_specification
1022
+ data_contract_specification.DATACONTRACT_TYPES.append(“variant”)
1023
+ ```
999
1024
 
1000
1025
  #### Great Expectations
1001
1026
 
@@ -1003,7 +1028,7 @@ The `export` function transforms a specified data contract into a comprehensive
1003
1028
  If the contract includes multiple models, you need to specify the names of the model you wish to export.
1004
1029
 
1005
1030
  ```shell
1006
- datacontract export datacontract.yaml --format great-expectations --model orders
1031
+ datacontract export datacontract.yaml --format great-expectations --model orders
1007
1032
  ```
1008
1033
 
1009
1034
  The export creates a list of expectations by utilizing:
@@ -1028,7 +1053,7 @@ To further customize the export, the following optional arguments are available:
1028
1053
 
1029
1054
  #### RDF
1030
1055
 
1031
- The export function converts a given data contract into a RDF representation. You have the option to
1056
+ The `export` function converts a given data contract into a RDF representation. You have the option to
1032
1057
  add a base_url which will be used as the default prefix to resolve relative IRIs inside the document.
1033
1058
 
1034
1059
  ```shell
@@ -1261,9 +1286,9 @@ FROM
1261
1286
 
1262
1287
  ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
1263
1288
  │ * --format [sql|avro|dbt|dbml|glue|jsonsc The format of the source file. │
1264
- │ hema|bigquery|odcs|unity|spark [default: None] │
1265
- │ |iceberg|parquet|csv|protobuf| [required] │
1266
- │ excel]
1289
+ │ hema|json|bigquery|odcs|unity| [default: None] │
1290
+ spark|iceberg|parquet|csv|prot [required] │
1291
+ obuf|excel]
1267
1292
  │ --output PATH Specify the file path where │
1268
1293
  │ the Data Contract will be │
1269
1294
  │ saved. If no path is provided, │
@@ -1273,6 +1298,10 @@ FROM
1273
1298
  │ --source TEXT The path to the file that │
1274
1299
  │ should be imported. │
1275
1300
  │ [default: None] │
1301
+ │ --spec [datacontract_specification|od The format of the data │
1302
+ │ cs] contract to import. │
1303
+ │ [default: │
1304
+ │ datacontract_specification] │
1276
1305
  │ --dialect TEXT The SQL dialect to use when │
1277
1306
  │ importing SQL files, e.g., │
1278
1307
  │ postgres, tsql, bigquery. │
@@ -1361,11 +1390,11 @@ Available import options:
1361
1390
  | `jsonschema` | Import from JSON Schemas | ✅ |
1362
1391
  | `odcs` | Import from Open Data Contract Standard (ODCS) | ✅ |
1363
1392
  | `parquet` | Import from Parquet File Metadata | ✅ |
1364
- | `protobuf` | Import from Protobuf schemas | ✅ |
1365
- | `spark` | Import from Spark StructTypes | ✅ |
1393
+ | `protobuf` | Import from Protobuf schemas | ✅ |
1394
+ | `spark` | Import from Spark StructTypes, Variant | ✅ |
1366
1395
  | `sql` | Import from SQL DDL | ✅ |
1367
1396
  | `unity` | Import from Databricks Unity Catalog | partial |
1368
- | Missing something? | Please create an issue on GitHub | TBD |
1397
+ | Missing something? | Please create an issue on GitHub | TBD |
1369
1398
 
1370
1399
 
1371
1400
  #### ODCS
@@ -1467,14 +1496,31 @@ datacontract import --format glue --source <database_name>
1467
1496
 
1468
1497
  #### Spark
1469
1498
 
1470
- Importing from Spark table or view these must be created or accessible in the Spark context. Specify tables list in `source` parameter.
1471
-
1472
- Example:
1499
+ Importing from Spark table or view these must be created or accessible in the Spark context. Specify tables list in `source` parameter. If the `source` tables are registered as tables in Databricks, and they have a table-level descriptions they will also be added to the Data Contract Specification.
1473
1500
 
1474
1501
  ```bash
1502
+ # Example: Import Spark table(s) from Spark context
1475
1503
  datacontract import --format spark --source "users,orders"
1476
1504
  ```
1477
1505
 
1506
+ ```bash
1507
+ # Example: Import Spark table
1508
+ DataContract().import_from_source("spark", "users")
1509
+ DataContract().import_from_source(format = "spark", source = "users")
1510
+
1511
+ # Example: Import Spark dataframe
1512
+ DataContract().import_from_source("spark", "users", dataframe = df_user)
1513
+ DataContract().import_from_source(format = "spark", source = "users", dataframe = df_user)
1514
+
1515
+ # Example: Import Spark table + table description
1516
+ DataContract().import_from_source("spark", "users", description = "description")
1517
+ DataContract().import_from_source(format = "spark", source = "users", description = "description")
1518
+
1519
+ # Example: Import Spark dataframe + table description
1520
+ DataContract().import_from_source("spark", "users", dataframe = df_user, description = "description")
1521
+ DataContract().import_from_source(format = "spark", source = "users", dataframe = df_user, description = "description")
1522
+ ```
1523
+
1478
1524
  #### DBML
1479
1525
 
1480
1526
  Importing from DBML Documents.
@@ -1666,6 +1712,8 @@ datacontract catalog --files "*.odcs.yaml"
1666
1712
  information.
1667
1713
  To connect to servers (such as a Snowflake data source), set the credentials as environment
1668
1714
  variables as documented in https://cli.datacontract.com/#test
1715
+ It is possible to run the API with extra arguments for `uvicorn.run()` as keyword arguments, e.g.:
1716
+ `datacontract api --port 1234 --root_path /datacontract`.
1669
1717
 
1670
1718
  ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
1671
1719
  │ --port INTEGER Bind socket to this port. [default: 4242] │
@@ -1932,7 +1980,7 @@ if __name__ == "__main__":
1932
1980
  Output
1933
1981
 
1934
1982
  ```yaml
1935
- dataContractSpecification: 1.1.0
1983
+ dataContractSpecification: 1.2.0
1936
1984
  id: uuid-custom
1937
1985
  info:
1938
1986
  title: my_custom_imported_data
@@ -1951,22 +1999,9 @@ models:
1951
1999
  ```
1952
2000
  ## Development Setup
1953
2001
 
1954
- Python base interpreter should be 3.11.x (unless working on 3.12 release candidate).
1955
-
1956
- ```bash
1957
- # create venv
1958
- python3.11 -m venv venv
1959
- source venv/bin/activate
1960
-
1961
- # Install Requirements
1962
- pip install --upgrade pip setuptools wheel
1963
- pip install -e '.[dev]'
1964
- pre-commit install
1965
- pre-commit run --all-files
1966
- pytest
1967
- ```
1968
-
1969
- ### Use uv (recommended)
2002
+ - Install [uv](https://docs.astral.sh/uv/)
2003
+ - Python base interpreter should be 3.11.x .
2004
+ - Docker engine must be running to execute the tests.
1970
2005
 
1971
2006
  ```bash
1972
2007
  # make sure uv is installed
@@ -2048,6 +2083,7 @@ We are happy to receive your contributions. Propose your change in an issue or d
2048
2083
  - [INNOQ](https://innoq.com)
2049
2084
  - [Data Catering](https://data.catering/)
2050
2085
  - [Oliver Wyman](https://www.oliverwyman.com/)
2086
+ - [dmTECH](https://www.dmtech.tech/de)
2051
2087
  - And many more. To add your company, please create a pull request.
2052
2088
 
2053
2089
  ## Related Tools
@@ -1,14 +1,14 @@
1
1
  datacontract/__init__.py,sha256=ThDdxDJsd7qNErLoh628nK5M7RzhJNYCmN-C6BAJFoo,405
2
- datacontract/api.py,sha256=031PVQbZGHPVpFLFHGQ-Igc5queVCnjAun6oxLDMIOo,8175
3
- datacontract/cli.py,sha256=jbS2P-cSuTqXIHhxgDg4f_F2gH0JsKDqbjtfQ_m0tiQ,17178
4
- datacontract/data_contract.py,sha256=n0lt5JXtQuDO-81x2EdMrO9dzURrwDapNyX-87ksd98,11206
2
+ datacontract/api.py,sha256=Ze6pVD3Ub0oyMJI3iYSNXH78K2nPKbXKKHA-0DerJ48,8175
3
+ datacontract/cli.py,sha256=KSXii4MsrdmEwFTDN9F7A-OC250gdY0R914FBqA2RuY,18614
4
+ datacontract/data_contract.py,sha256=-nIf68Uo2bclJpqGUz_AkLesGqwrlgpn59WVSFwoi3I,15028
5
5
  datacontract/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  datacontract/breaking/breaking.py,sha256=DnqgxUjD-EAZcg5RBizOP9a2WxsFTaQBik0AB_m3K00,20431
7
7
  datacontract/breaking/breaking_change.py,sha256=BIDEUo1U2CQLVT2-I5PyFttxAj6zQPI1UUkEoOOQXMY,2249
8
8
  datacontract/breaking/breaking_rules.py,sha256=M9IdzVJSA7oOr1fvLQl0y9MoBKeItPz42Db2U2cjH2Y,4063
9
9
  datacontract/catalog/catalog.py,sha256=HyFmUPsN3pWJ2WTdbs0DmOf0qmwAzc2-ijWse9_dhBc,2729
10
10
  datacontract/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- datacontract/engines/data_contract_checks.py,sha256=wjnKh1FxG9qXB1zOPjrGmjW7uCpRsxXICMIvyFwpVt4,26622
11
+ datacontract/engines/data_contract_checks.py,sha256=2WSxqslt7hxr0CzCir-8I3RihCbFAAa8LmF3fxORMQk,26728
12
12
  datacontract/engines/data_contract_test.py,sha256=NAnO_744H30tkQh43PSUSsAs3TC9DaNIWZe9jFKzA8Q,3242
13
13
  datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py,sha256=zrDn-_EJJ5kv0kZWAA-toeEPuBd3YQ0-U7Jb8euNUS8,1558
14
14
  datacontract/engines/datacontract/check_that_datacontract_file_exists.py,sha256=Vw-7U0GmQT2127tybxggZfpRFiZVgoIh6ndkTGM0FP4,665
@@ -18,7 +18,7 @@ datacontract/engines/soda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
18
18
  datacontract/engines/soda/check_soda_execute.py,sha256=SYJdPpkozOA62yTM7s6cfwLfgfxgGJptO5U-cShrtPk,8600
19
19
  datacontract/engines/soda/connections/bigquery.py,sha256=C-8kxmzpYe88bJp80ObHFLMh4rpnIjnUQ7XOj0Ke7lk,903
20
20
  datacontract/engines/soda/connections/databricks.py,sha256=cMRasuO0MrSKVgHPB-9uFTGTZPFg6z9Kpk3tJ0SdR0s,943
21
- datacontract/engines/soda/connections/duckdb_connection.py,sha256=hy2HxktSSt1tFB7rVI7tDOe6WeTNvHSKqsEk9uIkntU,9114
21
+ datacontract/engines/soda/connections/duckdb_connection.py,sha256=UY6BElfLUs_LPZ4EA5SNZKhaq6EsPe9Mb79zhoSv4sg,9110
22
22
  datacontract/engines/soda/connections/kafka.py,sha256=lnj_-3-CnJ6stetGqm6HOzN1Qatlw7xoCQU2zKBIXxU,8725
23
23
  datacontract/engines/soda/connections/postgres.py,sha256=9GTF4Es3M5vb7ocSGqAxXmslvkS5CjsPQGIuo020CFc,626
24
24
  datacontract/engines/soda/connections/snowflake.py,sha256=rfG2ysuqNM6TkvyqQKcGHFsTGJ6AROmud5VleUDRrb0,749
@@ -38,20 +38,20 @@ datacontract/export/exporter.py,sha256=P_6J5d7k5GPm-DUyfrbgEXmU_o45FHu5nlOTT2Cdk
38
38
  datacontract/export/exporter_factory.py,sha256=PWA2j82Vjenj4hXlYXUISTzttrMIILdx8LxNv6hM0cg,6014
39
39
  datacontract/export/go_converter.py,sha256=Ttvbfu3YU-3GBwRD6nwCsFyZuc_hiIvJD-Jg2sT5WLw,3331
40
40
  datacontract/export/great_expectations_converter.py,sha256=WvEa4HNUMyzn2a5YNkcI9mjROzGkKRYOS2gFPjRRHNc,12218
41
- datacontract/export/html_exporter.py,sha256=gGnZLOduV9ZcmLTu4CaMLHgWAK1GFQGU1nJhzvxWJPA,2768
41
+ datacontract/export/html_exporter.py,sha256=EyTMj25_Df3irZiYw1hxVZeLYWp6YSG6z3IuFUviP14,3066
42
42
  datacontract/export/iceberg_converter.py,sha256=ArcQ_Y3z_W4_kGDU_8jPRx2-pHpP3Nhx1zYoETOL3c4,6804
43
43
  datacontract/export/jsonschema_converter.py,sha256=2MT82MurcQQbrVDRj1kFsxnmFd9scNSfYI1upQSecl4,5631
44
44
  datacontract/export/markdown_converter.py,sha256=chtaZX4vXTee7JCMYmWiDQ9m55gwJjHPw6SEM3UOwpQ,6467
45
- datacontract/export/mermaid_exporter.py,sha256=-8MgQ-uoSGWng-TyObtStrRHdZmPdb2Nw7FFdvl75Zo,1383
46
- datacontract/export/odcs_v3_exporter.py,sha256=m_ShUY5krLpT6EGFMiKyHNx2F3W3Xlv7sKliLovehUc,13783
45
+ datacontract/export/mermaid_exporter.py,sha256=wBFqRKgy3Y5FZnzD0RCR1UAlT9ZqYW7dkXWSJa6eHiQ,3465
46
+ datacontract/export/odcs_v3_exporter.py,sha256=b__AiPAnCUuFQE5DPHsvXBrMeEl1t_mJ1vzTx84TMlI,13931
47
47
  datacontract/export/pandas_type_converter.py,sha256=464pQ3JQKFQa1TO0HBNcEoZvQye_yUbY6jQtiBaphSc,1117
48
48
  datacontract/export/protobuf_converter.py,sha256=DHLl8BW26xqltBsd7Qhz0RhTl9YZQKCbkmjNpECgubg,7928
49
49
  datacontract/export/pydantic_converter.py,sha256=1Lt9F8i6zyQYb44MyQtsXwCWWXYxZ47SmzArr_uPqsU,5579
50
- datacontract/export/rdf_converter.py,sha256=4gnKus37Geth4MJ3Ruc8AbnpD_Ll9OCx8oTIEKScvh8,6435
50
+ datacontract/export/rdf_converter.py,sha256=1aTe_fwBRBnYUrJZzhEQ8eVnl0mQ1hcF45aKVdgvSIc,6435
51
51
  datacontract/export/sodacl_converter.py,sha256=75vQ2TnoLfjiDtWT2x8opumvotXVRs1YaIu1NLYz05M,1473
52
52
  datacontract/export/spark_converter.py,sha256=LCue-rLan3ki7HgzUFyBaO8YUlc6CrDNBZD-QVgUv-U,7190
53
53
  datacontract/export/sql_converter.py,sha256=vyLbDqzt_J3LRXpPv2W2HqUIyAtQx_S-jviBiSxh14A,5087
54
- datacontract/export/sql_type_converter.py,sha256=xla5WG5hDlErXVeTvJ_zMF1F_AUmh4azv8Lj-kcO-hk,13593
54
+ datacontract/export/sql_type_converter.py,sha256=4r8S7nb4z2ODgXTwHxdtU158HWE8uxXHydiZ_y4-N_E,13592
55
55
  datacontract/export/sqlalchemy_converter.py,sha256=0DMncvA811lTtd5q4ZORREQ9YH1vQm1lJeqMWsFvloE,6463
56
56
  datacontract/export/terraform_converter.py,sha256=ExFoEvErVk-gBnWJiqC38SxDUmUEydpACWc917l5RyM,2163
57
57
  datacontract/imports/avro_importer.py,sha256=ryu4iUCSPJEV1uaE3AKdxD7fUxmRJ-ta936xurbgtHc,10922
@@ -59,26 +59,27 @@ datacontract/imports/bigquery_importer.py,sha256=7TcP9FDsIas5LwJZ-HrOPXZ-NuR056s
59
59
  datacontract/imports/csv_importer.py,sha256=mBsmyTvfB8q64Z3NYqv4zTDUOvoXG896hZvp3oLt5YM,5330
60
60
  datacontract/imports/dbml_importer.py,sha256=o0IOgvXN34lU1FICDHm_QUTv0DKsgwbHPHUDxQhIapE,3872
61
61
  datacontract/imports/dbt_importer.py,sha256=hQwqD9vbvwLLc6Yj3tQbar5ldI0pV-ynSiz7CZZ0JCc,8290
62
- datacontract/imports/excel_importer.py,sha256=gBKBKYImkv-bpmJu7JChnGqh8Yie3WIlxvjqgq8wNSc,36951
62
+ datacontract/imports/excel_importer.py,sha256=6HJcbRxyZ0PTFL0f0Ww-VAMdUnnph_e7JqZWwOeAK6Y,37111
63
63
  datacontract/imports/glue_importer.py,sha256=fiJPkvfwOCsaKKCGW19-JM5CCGXZ2mkNrVtUzp2iw6g,8370
64
64
  datacontract/imports/iceberg_importer.py,sha256=vadGJVqQKgG-j8swUytZALFB8QjbGRqZPCcPcCy0vco,5923
65
- datacontract/imports/importer.py,sha256=u9HJHQ_PQKW9MoIsfRxzs-qQ33JZbeo2EjZiB71O63c,1006
66
- datacontract/imports/importer_factory.py,sha256=VBSrr9e3g09eJwnkZveJXuUMrQr072AcTJZ0q1MVf18,3966
65
+ datacontract/imports/importer.py,sha256=NRhR_9AWPWDNq2ac_DVUHGoJuvkVpwwaao8nDfJG_l0,1257
66
+ datacontract/imports/importer_factory.py,sha256=RS7uwkkT7rIKGeMKgPmZhE3GVC9IfZxZhm8XN0ooa3U,4124
67
+ datacontract/imports/json_importer.py,sha256=JeGbqAC_wAO0u8HeMA5H-KJBfs6gpp1oGIpxt6nxSZI,12641
67
68
  datacontract/imports/jsonschema_importer.py,sha256=67H__XLugV4vguHrIqzW02dtx27zYTWnOms4D1ma3bk,4961
68
- datacontract/imports/odcs_importer.py,sha256=vv2dHLGL0Cdivv1CdKn5euJwGNKmiZmXCoxUYAXsHX8,2126
69
- datacontract/imports/odcs_v3_importer.py,sha256=sZVBENcPMl6rt0bbT_b1lnTFs3KOe1cZ2hwWaJBQhgY,16924
69
+ datacontract/imports/odcs_importer.py,sha256=ZP2u3kJsgULANTbbqkP3joOlU9cUneZOPy6Ak3oTMgs,2140
70
+ datacontract/imports/odcs_v3_importer.py,sha256=smtFSoywNojUCdB8sDu0e_3yHN4CmUw5YS3qF-AU0qY,16873
70
71
  datacontract/imports/parquet_importer.py,sha256=W_0_16mX4stwDUt4GM2L7dnGmTpAySab5k13-OlTCCc,3095
71
72
  datacontract/imports/protobuf_importer.py,sha256=rlUIskv9PNi5rFQ4Hobt9zlnKpahGsb4dy5G5UJoVAw,10840
72
- datacontract/imports/spark_importer.py,sha256=eC9oS-c8coy6MgxEedUMb0eTFndbTKu7SE3Vy4elo70,7681
73
- datacontract/imports/sql_importer.py,sha256=ElFS2LILDOvWzW-X4emSIKltFV42i78TEoyg0bvn3II,9322
74
- datacontract/imports/unity_importer.py,sha256=UcPYABhLZaWNl5IkCazwAuMoVDdujsu_QteuV_Q9hgI,6737
75
- datacontract/init/init_template.py,sha256=BMawR-AF_vXyn_-Co-XoT8Dxj9b55V8xKk2KkJK-c1o,721
76
- datacontract/integration/datamesh_manager.py,sha256=6_mHRQAqw-KCfVtejNxULN4ihBZTZikf_5p0pYHer7g,2849
73
+ datacontract/imports/spark_importer.py,sha256=vqGM3kisQGSiHS1AvuC6gp0unj2-6TT3R-ejG96j-Tw,8618
74
+ datacontract/imports/sql_importer.py,sha256=a5Ym4qkjjvT1g1P7lIn0KpvIxL45zGPn_qPKqg570ro,9472
75
+ datacontract/imports/unity_importer.py,sha256=Aa-Rqjzfen5chUB4EUt9bOL0QOAbj4j7ZoU-chdhtvk,8554
76
+ datacontract/init/init_template.py,sha256=nc-B2ZkwDQ3GNFqxNmSDcStQMDbBTxysgTZDLw15izo,721
77
+ datacontract/integration/datamesh_manager.py,sha256=FT9eadzFz181lg54b49_c_x2caGJT7mR3drlZBSBJLo,3375
77
78
  datacontract/lint/files.py,sha256=tg0vq_w4LQsEr_8A5qr4hUJmHeGalUpsXJXC1t-OGC0,471
78
79
  datacontract/lint/lint.py,sha256=Ew0n3ooXxmCVnUxJ_cDoacsD82QdMZYnKrxnG9J0sWQ,5077
79
- datacontract/lint/resolve.py,sha256=PTx3BxNlIMaaDPLo4A6kD0u3MpeFncLUoTYm_f9vkoM,12096
80
+ datacontract/lint/resolve.py,sha256=cXYAEfmy1mhK-RwnAOOQ7PzsDI0iRdKjQHDWHozq5DY,14507
80
81
  datacontract/lint/resources.py,sha256=nfeZmORh1aP7EKpMKCmfbS04Te8pQ0nz64vJVkHOq3c,647
81
- datacontract/lint/schema.py,sha256=4pYX6JX6SkASftyqaWTodKFRVPi2qV0_Z60tvaCOk80,1813
82
+ datacontract/lint/schema.py,sha256=xRHPu6K-kepw1jSnUXY-s5IikjIrH7fvDtsGqQeupYw,1813
82
83
  datacontract/lint/urls.py,sha256=giac0eAYa6hha8exleL3KsiPtiFlOq8l53axtAmCilw,2529
83
84
  datacontract/lint/linters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
85
  datacontract/lint/linters/description_linter.py,sha256=kQi38TKhqiEL3fwQDs6SdQQ9hXBHgfAi6Q6ZFNuLw1o,1505
@@ -94,11 +95,14 @@ datacontract/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
94
95
  datacontract/output/junit_test_results.py,sha256=hAT7UgxwbfNzA0f5uuGzM4OIwLfXbmA4dgsfxsclWh0,4822
95
96
  datacontract/output/output_format.py,sha256=_ZokDBo7-HXBs6czUv7kLLf9cYft_q5QaKzthsVnc58,212
96
97
  datacontract/output/test_results_writer.py,sha256=PWNLs3R_LQMH4xp5WDxLkQgY3xvj8Eyzw1jnfgkQxlc,2713
97
- datacontract/schemas/datacontract-1.1.0.init.yaml,sha256=_WQX6NRwimXlPVKcKeHLd4mFL0TJ2vYH0WnyMXZeQ8Y,1828
98
+ datacontract/schemas/datacontract-1.1.0.init.yaml,sha256=RXRqtMiRsm1oqxXrKAzqQ_eScIr9D8td8-NWWmpYvM0,1828
98
99
  datacontract/schemas/datacontract-1.1.0.schema.json,sha256=3Bu2rxEjkF6dNLcqi1GF4KoXBnEIopaJ87Qb8S4zUvg,62872
100
+ datacontract/schemas/datacontract-1.2.0.init.yaml,sha256=RXRqtMiRsm1oqxXrKAzqQ_eScIr9D8td8-NWWmpYvM0,1828
101
+ datacontract/schemas/datacontract-1.2.0.schema.json,sha256=sk7oL06cug9-WozCrLH8v8MuR3a8MaV1Ztkm1P-7UFk,64226
99
102
  datacontract/schemas/odcs-3.0.1.schema.json,sha256=bRZsSXA0fV0EmV_8f1K68PlXu1m4K7JcuHpLnY3ESwQ,72933
100
- datacontract/templates/datacontract.html,sha256=FfunTOt4L9LQOUi385XRVe0XAh5sDS3fI_2c1MvVKhI,17134
101
- datacontract/templates/index.html,sha256=_e2J_NhOUPupDAQjBk8R68iCtrUa6lh6qVq6dYjm18s,12531
103
+ datacontract/templates/datacontract.html,sha256=dksPEnY3c66jaaVS5r5vWfG6LzyXPjA4nO_yLUirJWg,17394
104
+ datacontract/templates/datacontract_odcs.html,sha256=-k6v_ddMkQ6HPbj0_c6SmP3LfesRVsjvSVt4EpOfzpg,32849
105
+ datacontract/templates/index.html,sha256=8AAJbizpW6UxQBnHjW4Ft7L7nTn7XJtV43gVBwQxFxA,12711
102
106
  datacontract/templates/partials/datacontract_information.html,sha256=7ZBxgEgi2XndKBypeOpe03oCSRPOujC6NVlN7zexGNM,6221
103
107
  datacontract/templates/partials/datacontract_servicelevels.html,sha256=ed3QgB11B0Qq2h_NwaroGZ4pQMBPEhfeQaoS-qEipqY,11401
104
108
  datacontract/templates/partials/datacontract_terms.html,sha256=1cnJcOTpxwot2BCuZmkLF_SPfiVloLs3c8mj9WfE4sc,1865
@@ -106,11 +110,11 @@ datacontract/templates/partials/definition.html,sha256=gZEmNvwNGGxA_Fnzx_0L6tXlA
106
110
  datacontract/templates/partials/example.html,sha256=F1dWbHDIXQScgfs4OVgqM1lR4uV4xX5j6suasXHNM88,1204
107
111
  datacontract/templates/partials/model_field.html,sha256=2YBF95ypNCPFYuYKoeilRnDG-H_FuW4JK1znkCaYCac,7625
108
112
  datacontract/templates/partials/quality.html,sha256=ynEDWRn8I90Uje-xhGYgFcfwOgKI1R-CDki-EvTsauQ,1785
109
- datacontract/templates/partials/server.html,sha256=WkWFbz1ZvhIAUQQhH5Lkwb0HZRW907ehEnFmJSkpquQ,6235
110
- datacontract/templates/style/output.css,sha256=V1k6smSvlz07W2UNOkhcDFUb0HLmoas7DnNg_o8XUcA,25759
111
- datacontract_cli-0.10.27.dist-info/licenses/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
112
- datacontract_cli-0.10.27.dist-info/METADATA,sha256=s1qUjmNXwXKd0JnHXE7wyR-BwORTyKm4h_1GAJeK9tg,107250
113
- datacontract_cli-0.10.27.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
114
- datacontract_cli-0.10.27.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
115
- datacontract_cli-0.10.27.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
116
- datacontract_cli-0.10.27.dist-info/RECORD,,
113
+ datacontract/templates/partials/server.html,sha256=dHFJtonMjhiUHtT69RUgTpkoRwmNdTRzkCdH0LtGg_4,6279
114
+ datacontract/templates/style/output.css,sha256=ioIo1f96VW7LHhDifj6QI8QbRChJl-LlQ59EwM8MEmA,28692
115
+ datacontract_cli-0.10.29.dist-info/licenses/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
116
+ datacontract_cli-0.10.29.dist-info/METADATA,sha256=qYg7wS67rf8uW1mgGwlIGTaQxs5cIz2-3Lw5wLTW-kw,110312
117
+ datacontract_cli-0.10.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
+ datacontract_cli-0.10.29.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
119
+ datacontract_cli-0.10.29.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
120
+ datacontract_cli-0.10.29.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5