datacontract-cli 0.10.2__py3-none-any.whl → 0.10.4__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 (33) hide show
  1. datacontract/breaking/breaking.py +12 -0
  2. datacontract/breaking/breaking_rules.py +4 -0
  3. datacontract/catalog/catalog.py +3 -0
  4. datacontract/cli.py +36 -8
  5. datacontract/data_contract.py +62 -128
  6. datacontract/export/avro_converter.py +16 -2
  7. datacontract/export/bigquery_converter.py +106 -0
  8. datacontract/export/go_converter.py +98 -0
  9. datacontract/export/html_export.py +6 -1
  10. datacontract/export/jsonschema_converter.py +45 -5
  11. datacontract/export/sql_converter.py +1 -0
  12. datacontract/export/sql_type_converter.py +42 -1
  13. datacontract/imports/avro_importer.py +14 -1
  14. datacontract/imports/bigquery_importer.py +166 -0
  15. datacontract/imports/jsonschema_importer.py +150 -0
  16. datacontract/model/data_contract_specification.py +55 -1
  17. datacontract/publish/publish.py +32 -0
  18. datacontract/templates/datacontract.html +37 -346
  19. datacontract/templates/index.html +233 -0
  20. datacontract/templates/partials/datacontract_information.html +66 -0
  21. datacontract/templates/partials/datacontract_servicelevels.html +253 -0
  22. datacontract/templates/partials/datacontract_terms.html +44 -0
  23. datacontract/templates/partials/definition.html +99 -0
  24. datacontract/templates/partials/example.html +27 -0
  25. datacontract/templates/partials/model_field.html +97 -0
  26. datacontract/templates/partials/server.html +144 -0
  27. datacontract/templates/style/output.css +94 -13
  28. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/METADATA +139 -96
  29. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/RECORD +33 -20
  30. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/LICENSE +0 -0
  31. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/WHEEL +0 -0
  32. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/entry_points.txt +0 -0
  33. {datacontract_cli-0.10.2.dist-info → datacontract_cli-0.10.4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datacontract-cli
3
- Version: 0.10.2
3
+ Version: 0.10.4
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
@@ -15,18 +15,18 @@ Requires-Dist: typer[all] <0.13,>=0.9
15
15
  Requires-Dist: pydantic <2.8.0,>=2.5.3
16
16
  Requires-Dist: pyyaml ~=6.0.1
17
17
  Requires-Dist: requests ~=2.31.0
18
- Requires-Dist: fastapi ==0.110.1
18
+ Requires-Dist: fastapi ==0.111.0
19
19
  Requires-Dist: fastparquet ==2024.2.0
20
20
  Requires-Dist: python-multipart ==0.0.9
21
21
  Requires-Dist: rich ~=13.7.0
22
- Requires-Dist: simple-ddl-parser ==1.1.0
22
+ Requires-Dist: simple-ddl-parser ==1.3.0
23
23
  Requires-Dist: soda-core-bigquery <3.4.0,>=3.3.1
24
24
  Requires-Dist: soda-core-duckdb <3.4.0,>=3.3.1
25
25
  Requires-Dist: soda-core-postgres <3.4.0,>=3.3.1
26
26
  Requires-Dist: soda-core-snowflake <3.4.0,>=3.3.1
27
27
  Requires-Dist: soda-core-spark[databricks] <3.4.0,>=3.3.1
28
28
  Requires-Dist: soda-core-spark-df <3.4.0,>=3.3.1
29
- Requires-Dist: snowflake-connector-python[pandas] <3.8,>=3.6
29
+ Requires-Dist: snowflake-connector-python[pandas] <3.11,>=3.6
30
30
  Requires-Dist: duckdb ==0.10.2
31
31
  Requires-Dist: fastjsonschema ~=2.19.1
32
32
  Requires-Dist: python-dotenv ~=1.0.0
@@ -36,8 +36,9 @@ Requires-Dist: avro ==1.11.3
36
36
  Requires-Dist: opentelemetry-exporter-otlp-proto-grpc ~=1.16.0
37
37
  Requires-Dist: opentelemetry-exporter-otlp-proto-http ~=1.16.0
38
38
  Requires-Dist: deltalake ~=0.17.0
39
- Requires-Dist: boto3 <1.34.70,>=1.34.41
40
- Requires-Dist: botocore <1.34.70,>=1.34.41
39
+ Requires-Dist: boto3 <1.34.99,>=1.34.41
40
+ Requires-Dist: botocore <1.34.99,>=1.34.41
41
+ Requires-Dist: jinja-partials >=0.2.1
41
42
  Provides-Extra: dev
42
43
  Requires-Dist: httpx ==0.27.0 ; extra == 'dev'
43
44
  Requires-Dist: ruff ; extra == 'dev'
@@ -166,7 +167,7 @@ $ datacontract test --examples datacontract.yaml
166
167
  # export data contract as html (other formats: avro, dbt, dbt-sources, dbt-staging-sql, jsonschema, odcs, rdf, sql, sodacl, terraform, ...)
167
168
  $ datacontract export --format html datacontract.yaml > datacontract.html
168
169
 
169
- # import avro (other formats: sql, ...)
170
+ # import avro (other formats: sql, glue, bigquery...)
170
171
  $ datacontract import --format avro --source avro_schema.avsc
171
172
 
172
173
  # find differences between to data contracts
@@ -235,6 +236,7 @@ Commands
235
236
  - [changelog](#changelog)
236
237
  - [diff](#diff)
237
238
  - [catalog](#catalog)
239
+ - [publish](#publish)
238
240
 
239
241
  ### init
240
242
 
@@ -244,16 +246,16 @@ Commands
244
246
  Download a datacontract.yaml template and write it to file.
245
247
 
246
248
  ╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────╮
247
- │ location [LOCATION] The location (url or path) of the data contract yaml to create.
248
- │ [default: datacontract.yaml]
249
+ │ location [LOCATION] The location (url or path) of the data contract yaml to create.
250
+ │ [default: datacontract.yaml]
249
251
  ╰──────────────────────────────────────────────────────────────────────────────────────────────╯
250
252
  ╭─ Options ────────────────────────────────────────────────────────────────────────────────────╮
251
- │ --template TEXT URL of a template or data contract
252
- │ [default:
253
- │ https://datacontract.com/datacontract.init.yaml]
254
- │ --overwrite --no-overwrite Replace the existing datacontract.yaml
255
- │ [default: no-overwrite]
256
- │ --help Show this message and exit.
253
+ │ --template TEXT URL of a template or data contract
254
+ │ [default:
255
+ │ https://datacontract.com/datacontract.init.yaml]
256
+ │ --overwrite --no-overwrite Replace the existing datacontract.yaml
257
+ │ [default: no-overwrite]
258
+ │ --help Show this message and exit.
257
259
  ╰──────────────────────────────────────────────────────────────────────────────────────────────╯
258
260
  ```
259
261
 
@@ -265,12 +267,12 @@ Commands
265
267
  Validate that the datacontract.yaml is correctly formatted.
266
268
 
267
269
  ╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
268
- │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
270
+ │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
269
271
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
270
272
  ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
271
- │ --schema TEXT The location (url or path) of the Data Contract Specification JSON Schema
272
- │ [default: https://datacontract.com/datacontract.schema.json]
273
- │ --help Show this message and exit.
273
+ │ --schema TEXT The location (url or path) of the Data Contract Specification JSON Schema
274
+ │ [default: https://datacontract.com/datacontract.schema.json]
275
+ │ --help Show this message and exit.
274
276
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
275
277
  ```
276
278
 
@@ -282,28 +284,28 @@ Commands
282
284
  Run schema and quality tests on configured servers.
283
285
 
284
286
  ╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
285
- │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
287
+ │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
286
288
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
287
289
  ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
288
- │ --schema TEXT The location (url or path) of the Data Contract
289
- │ Specification JSON Schema
290
- │ [default:
291
- │ https://datacontract.com/datacontract.schema.json]
292
- │ --server TEXT The server configuration to run the schema and quality
293
- │ tests. Use the key of the server object in the data
294
- │ contract yaml file to refer to a server, e.g.,
295
- │ `production`, or `all` for all servers (default).
296
- │ [default: all]
297
- │ --examples --no-examples Run the schema and quality tests on the example data
298
- │ within the data contract.
299
- │ [default: no-examples]
300
- │ --publish TEXT The url to publish the results after the test
301
- │ [default: None]
302
- │ --publish-to-opentelemetry --no-publish-to-opentelemetry Publish the results to opentelemetry. Use environment
303
- │ variables to configure the OTLP endpoint, headers, etc.
304
- │ [default: no-publish-to-opentelemetry]
305
- │ --logs --no-logs Print logs [default: no-logs]
306
- │ --help Show this message and exit.
290
+ │ --schema TEXT The location (url or path) of the Data Contract
291
+ │ Specification JSON Schema
292
+ │ [default:
293
+ │ https://datacontract.com/datacontract.schema.json]
294
+ │ --server TEXT The server configuration to run the schema and quality
295
+ │ tests. Use the key of the server object in the data
296
+ │ contract yaml file to refer to a server, e.g.,
297
+ │ `production`, or `all` for all servers (default).
298
+ │ [default: all]
299
+ │ --examples --no-examples Run the schema and quality tests on the example data
300
+ │ within the data contract.
301
+ │ [default: no-examples]
302
+ │ --publish TEXT The url to publish the results after the test
303
+ │ [default: None]
304
+ │ --publish-to-opentelemetry --no-publish-to-opentelemetry Publish the results to opentelemetry. Use environment
305
+ │ variables to configure the OTLP endpoint, headers, etc.
306
+ │ [default: no-publish-to-opentelemetry]
307
+ │ --logs --no-logs Print logs [default: no-logs]
308
+ │ --help Show this message and exit.
307
309
  ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
308
310
  ```
309
311
 
@@ -607,26 +609,31 @@ models:
607
609
 
608
610
  Convert data contract to a specific format. Prints to stdout or to the specified output file.
609
611
 
610
- ╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
611
- │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
612
- ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
613
- ╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
614
- │ * --format [html|jsonschema|pydantic-model|sodacl|dbt|dbt-sources|dbt-staging-sql|odcs|rd The export format. [default: None] [required]
615
- f|avro|protobuf|great-expectations|terraform|avro-idl|sql|sql-query]
616
- --server TEXT The server name to export. [default: None]
617
- │ --model TEXT Use the key of the model in the data contract yaml file to refer to a
618
- model, e.g., `orders`, or `all` for all models (default).
619
- [default: all]
620
- │ --help Show this message and exit.
621
- ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
622
- ╭─ RDF Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
623
- --rdf-base TEXT [rdf] The base URI used to generate the RDF graph. [default: None]
624
- ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
625
- ╭─ SQL Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
626
- │ --sql-server-type TEXT [sql] The server type to determine the sql dialect. By default, it uses 'auto' to automatically detect the sql dialect via the specified │
627
- │ servers in the data contract. │
628
- [default: auto]
629
- ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
612
+ ╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
613
+ │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml]
614
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
615
+ ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
616
+ │ * --format [jsonschema|pydantic-model|sodacl|dbt|dbt-sources|dbt-staging The export format. [default: None] [required]
617
+ -sql|odcs|rdf|avro|protobuf|great-expectations|terraform|avro
618
+ -idl|sql|sql-query|html|bigquery|go]
619
+ │ --output PATH Specify the file path where the exported data will be saved.
620
+ If no path is provided, the output will be printed to stdout.
621
+ [default: None]
622
+ │ --server TEXT The server name to export. [default: None]
623
+ │ --model TEXT Use the key of the model in the data contract yaml file to │
624
+ │ refer to a model, e.g., `orders`, or `all` for all models │
625
+ (default).
626
+ │ [default: all] │
627
+ │ --help Show this message and exit. │
628
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
629
+ ╭─ RDF Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
630
+ --rdf-base TEXT [rdf] The base URI used to generate the RDF graph. [default: None]
631
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
632
+ ╭─ SQL Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
633
+ │ --sql-server-type TEXT [sql] The server type to determine the sql dialect. By default, it uses 'auto' to automatically detect the sql │
634
+ │ dialect via the specified servers in the data contract. │
635
+ │ [default: auto] │
636
+ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
630
637
 
631
638
  ```
632
639
 
@@ -639,22 +646,23 @@ Available export options:
639
646
 
640
647
  | Type | Description | Status |
641
648
  |----------------------|---------------------------------------------------------|--------|
642
- | `html` | Export to HTML | ✅ |
643
- | `jsonschema` | Export to JSON Schema | ✅ |
644
- | `odcs` | Export to Open Data Contract Standard (ODCS) | ✅ |
645
- | `sodacl` | Export to SodaCL quality checks in YAML format | ✅ |
646
- | `dbt` | Export to dbt models in YAML format | ✅ |
647
- | `dbt-sources` | Export to dbt sources in YAML format | ✅ |
648
- | `dbt-staging-sql` | Export to dbt staging SQL models | ✅ |
649
- | `rdf` | Export data contract to RDF representation in N3 format | ✅ |
650
- | `avro` | Export to AVRO models | ✅ |
651
- | `protobuf` | Export to Protobuf | ✅ |
652
- | `terraform` | Export to terraform resources | ✅ |
653
- | `sql` | Export to SQL DDL | ✅ |
654
- | `sql-query` | Export to SQL Query | ✅ |
655
- | `great-expectations` | Export to Great Expectations Suites in JSON Format | ✅ |
656
- | `bigquery` | Export to BigQuery Schemas | TBD |
657
- | `pydantic` | Export to pydantic models | TBD |
649
+ | `html` | Export to HTML | ✅ |
650
+ | `jsonschema` | Export to JSON Schema | ✅ |
651
+ | `odcs` | Export to Open Data Contract Standard (ODCS) | ✅ |
652
+ | `sodacl` | Export to SodaCL quality checks in YAML format | ✅ |
653
+ | `dbt` | Export to dbt models in YAML format | ✅ |
654
+ | `dbt-sources` | Export to dbt sources in YAML format | ✅ |
655
+ | `dbt-staging-sql` | Export to dbt staging SQL models | ✅ |
656
+ | `rdf` | Export data contract to RDF representation in N3 format | ✅ |
657
+ | `avro` | Export to AVRO models | ✅ |
658
+ | `protobuf` | Export to Protobuf | ✅ |
659
+ | `terraform` | Export to terraform resources | ✅ |
660
+ | `sql` | Export to SQL DDL | ✅ |
661
+ | `sql-query` | Export to SQL Query | ✅ |
662
+ | `great-expectations` | Export to Great Expectations Suites in JSON Format | ✅ |
663
+ | `bigquery` | Export to BigQuery Schemas | |
664
+ | `go` | Export to Go types | |
665
+ | `pydantic-model` | Export to pydantic models | ✅ |
658
666
  | Missing something? | Please create an issue on GitHub | TBD |
659
667
 
660
668
  #### Great Expectations
@@ -702,29 +710,49 @@ data products, find the true domain owner of a field attribute)
702
710
 
703
711
  Create a data contract from the given source location. Prints to stdout.
704
712
 
705
- ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
706
- │ * --format [sql|avro|glue] The format of the source file. [default: None] [required]
707
- * --source TEXT The path to the file or Glue Database that should be imported. [default: None] [required]
708
- │ --help Show this message and exit.
709
- ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
713
+ ╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
714
+ │ * --format [sql|avro|glue|bigquery|jsonschema] The format of the source file. [default: None] [required]
715
+ --source TEXT The path to the file or Glue Database that should be imported. [default: None]
716
+ │ --bigquery-project TEXT The bigquery project id. [default: None]
717
+ │ --bigquery-dataset TEXT The bigquery dataset id. [default: None] │
718
+ │ --bigquery-table TEXT List of table ids to import from the bigquery API (repeat for multiple table ids, leave empty for all │
719
+ │ tables in the dataset). │
720
+ │ [default: None] │
721
+ │ --help Show this message and exit. │
722
+ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
710
723
  ```
711
724
 
725
+ As shown, some options are only relevant in certain conditions: For `format` Bigtable we support to directly read off the Bigtable APIs.
726
+ In this case there's no need to specify `source` but instead `bt-project-id`, `bt-dataset-id` and `table` must be specified.
727
+
728
+ 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).
729
+
712
730
  Example:
713
731
  ```bash
714
732
  # Example import from SQL DDL
715
733
  datacontract import --format sql --source my_ddl.sql
716
734
  ```
717
735
 
736
+ ```bash
737
+ # Example import from Bigquery JSON
738
+ datacontract import --format bigquery --source my_bigquery_table.json
739
+ ```
740
+
741
+ ```bash
742
+ # Example import from Bigquery API
743
+ datacontract import --format bigquery --btProjectId <project_id> --btDatasetId <dataset_id> --table <tableid_1> --table <tableid_2> --table <tableid_3>
744
+ ```
745
+
718
746
  Available import options:
719
747
 
720
748
  | Type | Description | Status |
721
749
  |--------------------|------------------------------------------------|---------|
722
- | `sql` | Import from SQL DDL | ✅ |
723
- | `avro` | Import from AVRO schemas | ✅ |
724
- | `glue` | Import from AWS Glue DataCatalog | ✅ |
750
+ | `sql` | Import from SQL DDL | ✅ |
751
+ | `avro` | Import from AVRO schemas | ✅ |
752
+ | `glue` | Import from AWS Glue DataCatalog | ✅ |
725
753
  | `protobuf` | Import from Protobuf schemas | TBD |
726
- | `jsonschema` | Import from JSON Schemas | TBD |
727
- | `bigquery` | Import from BigQuery Schemas | TBD |
754
+ | `jsonschema` | Import from JSON Schemas | |
755
+ | `bigquery` | Import from BigQuery Schemas | |
728
756
  | `dbt` | Import from dbt models | TBD |
729
757
  | `odcs` | Import from Open Data Contract Standard (ODCS) | TBD |
730
758
  | Missing something? | Please create an issue on GitHub | TBD |
@@ -738,11 +766,11 @@ Available import options:
738
766
  Identifies breaking changes between data contracts. Prints to stdout.
739
767
 
740
768
  ╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
741
- │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
742
- │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
769
+ │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
770
+ │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
743
771
  ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
744
772
  ╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
745
- │ --help Show this message and exit.
773
+ │ --help Show this message and exit.
746
774
  ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
747
775
  ```
748
776
 
@@ -754,11 +782,11 @@ Available import options:
754
782
  Generate a changelog between data contracts. Prints to stdout.
755
783
 
756
784
  ╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
757
- │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
758
- │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
785
+ │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
786
+ │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
759
787
  ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
760
788
  ╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
761
- │ --help Show this message and exit.
789
+ │ --help Show this message and exit.
762
790
  ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
763
791
  ```
764
792
 
@@ -770,8 +798,8 @@ Available import options:
770
798
  PLACEHOLDER. Currently works as 'changelog' does.
771
799
 
772
800
  ╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
773
- │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
774
- │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
801
+ │ * location_old TEXT The location (url or path) of the old data contract yaml. [default: None] [required]
802
+ │ * location_new TEXT The location (url or path) of the new data contract yaml. [default: None] [required]
775
803
  ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
776
804
  ╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
777
805
  │ --help Show this message and exit. │
@@ -787,12 +815,27 @@ Available import options:
787
815
  Create an html catalog of data contracts.
788
816
 
789
817
  ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
790
- │ --files TEXT Glob pattern for the data contract files to include in the catalog. [default: *.yaml]
791
- │ --output TEXT Output directory for the catalog html files. [default: catalog/]
792
- │ --help Show this message and exit.
818
+ │ --files TEXT Glob pattern for the data contract files to include in the catalog. [default: *.yaml]
819
+ │ --output TEXT Output directory for the catalog html files. [default: catalog/]
820
+ │ --help Show this message and exit.
793
821
  ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
794
822
  ```
795
823
 
824
+ ### Publish
825
+
826
+ ```
827
+
828
+ Usage: datacontract publish [OPTIONS] [LOCATION]
829
+
830
+ Publish the data contract to the Data Mesh Manager.
831
+
832
+ ╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
833
+ │ location [LOCATION] The location (url or path) of the data contract yaml. [default: datacontract.yaml] │
834
+ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
835
+ ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
836
+ │ --help Show this message and exit. │
837
+ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
838
+ ```
796
839
 
797
840
  ## Integrations
798
841
 
@@ -1,10 +1,10 @@
1
1
  datacontract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- datacontract/cli.py,sha256=MEeXCL4HjLTwc91KYzjKEg1s5RHgX8fm2OBNqcZxFmg,11855
3
- datacontract/data_contract.py,sha256=NonmJ1YIKRtQXUanft30WJt8BKh67Si-71jOw6HIsic,22230
2
+ datacontract/cli.py,sha256=C9TCYLG5E7fXjSobNWIhEwbwQhvdTreJJenUes3fN2U,12926
3
+ datacontract/data_contract.py,sha256=DiSkX6qPlwjef6vwE35nFsYIamZcUNFhdIEhS5eDvdg,20373
4
4
  datacontract/web.py,sha256=SWglmbqy3NV5h4VDsG0OpwhASJT9uve7w6FPwkBjIYM,457
5
- datacontract/breaking/breaking.py,sha256=Abw59Xd_CypS6Us-hvsGnPvCUo-a-cl8RzDCmjG4yfk,11719
6
- datacontract/breaking/breaking_rules.py,sha256=0ExDYOj5Clyq6sIRIXTpxSbcRxMHYrMqJXqZ92goKsA,3032
7
- datacontract/catalog/catalog.py,sha256=O471eXvdl-ttRG2qDEHn1hb7Drr4o68d_86MFKBf7JA,2458
5
+ datacontract/breaking/breaking.py,sha256=8LJwvS1Ke-zU50DImb_7UgCjMoeRlWXOPskxmPSshxw,12192
6
+ datacontract/breaking/breaking_rules.py,sha256=Qj7XbsyD-BynNwhrNiETTk7_Hs_tHrtrZmSU634zEJI,3157
7
+ datacontract/catalog/catalog.py,sha256=OJUODJGNhl_G58A4CQPOCHN8e3W2o6ptZUw2U6YOrDM,2646
8
8
  datacontract/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py,sha256=TXO47ON3NjwYI4Y2eBYklMOCo7vAtYzqLPAhZhii6dg,1565
10
10
  datacontract/engines/datacontract/check_that_datacontract_file_exists.py,sha256=XHvxX6BrTdZk2wN55zd6ER4k7ILDyGzjbCbZxQAJ2iE,665
@@ -20,23 +20,27 @@ datacontract/engines/soda/connections/duckdb.py,sha256=tVKP7YaAIOajM7LVeW290m_3U
20
20
  datacontract/engines/soda/connections/kafka.py,sha256=TZGJIDcyqeIXKYZomHRc9gIJMoV-etD0ewVfKYQbNMU,5529
21
21
  datacontract/engines/soda/connections/postgres.py,sha256=9GTF4Es3M5vb7ocSGqAxXmslvkS5CjsPQGIuo020CFc,626
22
22
  datacontract/engines/soda/connections/snowflake.py,sha256=y1t2a1DWY4_tr5k-X5_nhLE6v1rfCwTahzhtHR91x9A,719
23
- datacontract/export/avro_converter.py,sha256=fFrKGDjC48RBF9-Xy2w3Eh3BXxSkmflOkXPTs881Ows,2320
23
+ datacontract/export/avro_converter.py,sha256=d3DzbSYJnkIGZt5srL4CPbw3rXzAnvr3UwBgc33bPvg,2807
24
24
  datacontract/export/avro_idl_converter.py,sha256=_2acoImuBqNqEt97OpBSewWT_w3aDBOdNosuy0gbkSY,9576
25
+ datacontract/export/bigquery_converter.py,sha256=tOtk5ovY-OEnPBlJLfOhfPA6SQXS1MAUmVhQe12-Utg,3821
25
26
  datacontract/export/csv_type_converter.py,sha256=ZZuJwBgQnafZC7PPvAXsBf2IajPJq8TYZ1l8Qq0GYeI,1290
26
27
  datacontract/export/dbt_converter.py,sha256=7ruAOEh5OgWZcmGsN4pjD5EQE6b_RVzRwOPAJRdrvyE,8543
28
+ datacontract/export/go_converter.py,sha256=Wn0FBo6mCpn9mybLiAC-B2sXPP4nXKcpVh0kG4URPVA,3118
27
29
  datacontract/export/great_expectations_converter.py,sha256=nJwYgyQhvbApZDZ54hPFKVoVeEOWSA7Zxf6_ZIsapdI,4890
28
- datacontract/export/html_export.py,sha256=n0dhxgqC36Ho6mVBmHV6cMoTMW_fQywD9nXyTwvAK9Q,2232
29
- datacontract/export/jsonschema_converter.py,sha256=wN2Zx8wXOyaXsSt1azlDS_4ctFUZ9EKTgJ2RRq5Rqy4,3147
30
+ datacontract/export/html_export.py,sha256=Ht6SrIDKZmqpQ0Eu5SObfsnvXDfeyHHKTSGcUkeVvT4,2374
31
+ datacontract/export/jsonschema_converter.py,sha256=UsBJdhPnyXLNKb0crtM0NS2RpKciHY0xG-6v2Cgl3rs,4570
30
32
  datacontract/export/odcs_converter.py,sha256=MHvIbvJKI-OB5JJaobCcegkvn_GxVhfTLoRDXRm133w,3726
31
33
  datacontract/export/protobuf_converter.py,sha256=K40yEdfRLYDLUx8bn3_an-cwdHfWv8_SBgzGLJT6mX4,2974
32
34
  datacontract/export/pydantic_converter.py,sha256=hlpi-qRNKd3ecnvO_kelCaODbHdMHiTZ0AG8BV-pxzc,5351
33
35
  datacontract/export/rdf_converter.py,sha256=Q7VVcRjoBJmXBFFM8qeORttA2VkucaDxIQopqwe_Ukg,6109
34
36
  datacontract/export/sodacl_converter.py,sha256=BCP7FxhK_OV9lMf9mU7DjWf1k9MzTqfvtdQ6XFeXTlA,6738
35
- datacontract/export/sql_converter.py,sha256=OZNBGBShmWrXip5uy6LsyDkb2UmbDKhUcZP4apNNNFI,3754
36
- datacontract/export/sql_type_converter.py,sha256=kiFFX54dfSgXXqbUCtFz0ujEt0Ie5JnuuWbcvJc0kos,4627
37
+ datacontract/export/sql_converter.py,sha256=OGC3i8YRj1z2R4owCe6iZ55YAdhKSR-KECt_h7TO3Qs,3755
38
+ datacontract/export/sql_type_converter.py,sha256=rx5mQ7TNH5o9P9kyXC0YKn6MxhZAWrHMTtPKSoxl3og,6168
37
39
  datacontract/export/terraform_converter.py,sha256=-xIIspVrvCyB2AVf1vd7bVGkWI3iiMUHX1btM_o1h-g,1943
38
- datacontract/imports/avro_importer.py,sha256=jILYE8EWuat1W_LLt7HuJTmcaBOmDVKvx4ZswphlVkc,4794
40
+ datacontract/imports/avro_importer.py,sha256=lrai7j9y--76JZO3N0xdjyxX3r_aqK-EwvgrU8ezcSc,5230
41
+ datacontract/imports/bigquery_importer.py,sha256=j6zQUHoK42Cox7p_wgx8a0BkW1lYYpVLfItcF7CU8Yw,6784
39
42
  datacontract/imports/glue_importer.py,sha256=9wvX5jE6hPYNW5eoqcFIjySb41q-vbUW-j9XHYKN18o,5265
43
+ datacontract/imports/jsonschema_importer.py,sha256=uu_n2EwBK4BGbsHN2I8X53aJaiwLW8vC2bT-Z4r4dNM,6366
40
44
  datacontract/imports/sql_importer.py,sha256=HD9NL0A965Q1NCklHJHM0Vowx6dKVF6MQ74VqL2J8Ig,2431
41
45
  datacontract/init/download_datacontract_file.py,sha256=pj_4mhWKlEtfueWohDgkb1nyuG5ERDipUDszxKwpZUs,413
42
46
  datacontract/integration/publish_datamesh_manager.py,sha256=3bWgWrdcJip0V3EzlLmuxBzAQBn6evEHbhrAKx1qEjY,1300
@@ -55,14 +59,23 @@ datacontract/lint/linters/notice_period_linter.py,sha256=oHSOLU2uXd7BDvfEd_VjeXS
55
59
  datacontract/lint/linters/quality_schema_linter.py,sha256=-zaI49okETJYo-qR-J6rQqMRI9QX17UK9ASf1GxgYnk,2181
56
60
  datacontract/lint/linters/valid_constraints_linter.py,sha256=GeeE2hojMt24EoHuSHE1lURA2v2p5Dmxc7Qq8IvZQH0,4915
57
61
  datacontract/model/breaking_change.py,sha256=BIDEUo1U2CQLVT2-I5PyFttxAj6zQPI1UUkEoOOQXMY,2249
58
- datacontract/model/data_contract_specification.py,sha256=etwFSrpa2gyF20u5AOXhyv1JTX9u6tojIeE-frAtCq0,3525
62
+ datacontract/model/data_contract_specification.py,sha256=oshTFPhcDhPG9m3Fuhk5emP4fovWUbvI7IjDbp_5K5s,5225
59
63
  datacontract/model/exceptions.py,sha256=zW9NoyzwsND-c9UqgyTVuezUVGEc6KK1Uc2zl12loyo,1178
60
64
  datacontract/model/run.py,sha256=v7QNsPwYS1otQrpjeOaFsLRnxO8OgbdK_d-Z_e3iy0s,2610
61
- datacontract/templates/datacontract.html,sha256=nXP_0YZtB8yG8mGfItO7jbujoPw1Bt3-_6Ri2mqqWg0,28099
62
- datacontract/templates/style/output.css,sha256=kbDuhgaN0RYfmMKPPJPo5p_aoWmY2gUDtrxUQCkq_-g,23673
63
- datacontract_cli-0.10.2.dist-info/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
64
- datacontract_cli-0.10.2.dist-info/METADATA,sha256=pvvtIUZP0zPDqL37FX1crtUdERKqA-euP86IE20IXRo,63241
65
- datacontract_cli-0.10.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
66
- datacontract_cli-0.10.2.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
67
- datacontract_cli-0.10.2.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
68
- datacontract_cli-0.10.2.dist-info/RECORD,,
65
+ datacontract/publish/publish.py,sha256=rWnQWWneCjokCpwYv88EAtAlFnA-3hZgl-1k6dak_8w,1191
66
+ datacontract/templates/datacontract.html,sha256=GeXjcQU43IRKZE7KSDU_PnLkRao17JC15quzSo2YPr0,12306
67
+ datacontract/templates/index.html,sha256=75djB-wLl-acKD-VpZWf0DCDH4ysy800wc0tRs2B3uE,12514
68
+ datacontract/templates/partials/datacontract_information.html,sha256=Q55v2XZcOdG_G9paEDHdNl_kIcAAB65qCzDusMWAJtc,2478
69
+ datacontract/templates/partials/datacontract_servicelevels.html,sha256=ed3QgB11B0Qq2h_NwaroGZ4pQMBPEhfeQaoS-qEipqY,11401
70
+ datacontract/templates/partials/datacontract_terms.html,sha256=ASgoxLjT4Rd11Uhyv0PSoQDR3xUFPGnv5tPCYZDoMmc,1595
71
+ datacontract/templates/partials/definition.html,sha256=p0ICZL34gbIUMZvSZYIFCxWrv-euMyL7jhEzwCWnfHs,6404
72
+ datacontract/templates/partials/example.html,sha256=F1dWbHDIXQScgfs4OVgqM1lR4uV4xX5j6suasXHNM88,1204
73
+ datacontract/templates/partials/model_field.html,sha256=Xy8fauErx61HuTSPLLQHgAHfX3_ilRbE0c17-nX9jAY,5072
74
+ datacontract/templates/partials/server.html,sha256=CINXVsdVAzDzrABtBOw4lD2qBUWb8kwcOsgZi_y8ZeU,4505
75
+ datacontract/templates/style/output.css,sha256=Xsj8LL0KhS5EUdWHuTEkKh0g0ixzZyOYFtAJV1u_I-c,24959
76
+ datacontract_cli-0.10.4.dist-info/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
77
+ datacontract_cli-0.10.4.dist-info/METADATA,sha256=U3jRkOxxmABzMLlR0jJP7BYHsMKmToC6ufgnbd0WBiI,67105
78
+ datacontract_cli-0.10.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
79
+ datacontract_cli-0.10.4.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
80
+ datacontract_cli-0.10.4.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
81
+ datacontract_cli-0.10.4.dist-info/RECORD,,