datacontract-cli 0.10.10__py3-none-any.whl → 0.10.12__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 (39) hide show
  1. datacontract/cli.py +19 -3
  2. datacontract/data_contract.py +17 -17
  3. datacontract/engines/fastjsonschema/check_jsonschema.py +15 -1
  4. datacontract/engines/fastjsonschema/s3/s3_read_files.py +2 -0
  5. datacontract/engines/soda/check_soda_execute.py +2 -8
  6. datacontract/engines/soda/connections/duckdb.py +23 -20
  7. datacontract/engines/soda/connections/kafka.py +81 -23
  8. datacontract/engines/soda/connections/snowflake.py +8 -5
  9. datacontract/export/avro_converter.py +12 -2
  10. datacontract/export/dbml_converter.py +42 -19
  11. datacontract/export/exporter.py +2 -1
  12. datacontract/export/exporter_factory.py +6 -0
  13. datacontract/export/jsonschema_converter.py +1 -4
  14. datacontract/export/spark_converter.py +4 -0
  15. datacontract/export/sql_type_converter.py +64 -29
  16. datacontract/export/sqlalchemy_converter.py +169 -0
  17. datacontract/imports/avro_importer.py +1 -0
  18. datacontract/imports/bigquery_importer.py +2 -2
  19. datacontract/imports/dbml_importer.py +112 -0
  20. datacontract/imports/dbt_importer.py +67 -91
  21. datacontract/imports/glue_importer.py +64 -54
  22. datacontract/imports/importer.py +3 -2
  23. datacontract/imports/importer_factory.py +5 -0
  24. datacontract/imports/jsonschema_importer.py +106 -120
  25. datacontract/imports/odcs_importer.py +1 -1
  26. datacontract/imports/spark_importer.py +29 -10
  27. datacontract/imports/sql_importer.py +5 -1
  28. datacontract/imports/unity_importer.py +1 -1
  29. datacontract/integration/{publish_datamesh_manager.py → datamesh_manager.py} +33 -5
  30. datacontract/integration/{publish_opentelemetry.py → opentelemetry.py} +1 -1
  31. datacontract/model/data_contract_specification.py +6 -2
  32. datacontract/templates/partials/model_field.html +10 -2
  33. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/METADATA +283 -113
  34. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/RECORD +38 -37
  35. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/WHEEL +1 -1
  36. datacontract/publish/publish.py +0 -32
  37. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/LICENSE +0 -0
  38. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/entry_points.txt +0 -0
  39. {datacontract_cli-0.10.10.dist-info → datacontract_cli-0.10.12.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  datacontract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- datacontract/cli.py,sha256=LZYYECXjCk-AZmPaihuRJkknEAuM8OxvGoK40WpAeAs,14261
3
- datacontract/data_contract.py,sha256=o7lY-n97JXtumt1OX-9cDbXa_nvWlC9f3hivWPFd28s,13842
2
+ datacontract/cli.py,sha256=IFwIjs3q2SLEmBq02njzSGYUxGNPrJa15U3JTfThnn4,14931
3
+ datacontract/data_contract.py,sha256=zW2Mfju4cv5NzjWvfy9EFZHFYxvZaTWs4ILB7mS66wg,13883
4
4
  datacontract/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  datacontract/web.py,sha256=Ov50NJVbQiaxjHXnVOvRw9moMkKHHcxFhdzwbA13QOw,2134
6
6
  datacontract/breaking/breaking.py,sha256=l0ZwUX8G4QK_0nLRLJHArpwgTWTD7WQYMuAp3l_y1bY,12184
@@ -10,55 +10,57 @@ datacontract/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
10
10
  datacontract/engines/datacontract/check_that_datacontract_contains_valid_servers_configuration.py,sha256=TXO47ON3NjwYI4Y2eBYklMOCo7vAtYzqLPAhZhii6dg,1565
11
11
  datacontract/engines/datacontract/check_that_datacontract_file_exists.py,sha256=XHvxX6BrTdZk2wN55zd6ER4k7ILDyGzjbCbZxQAJ2iE,665
12
12
  datacontract/engines/datacontract/check_that_datacontract_str_is_valid.py,sha256=CsxFGyInjpsylmoofByV1b-wpFhG1jtRWxSUpp-BXk8,1525
13
- datacontract/engines/fastjsonschema/check_jsonschema.py,sha256=rXGfGDu9-RJomj9WcVe8vEfluR25vn2rOS7BeOVQ0XA,5748
14
- datacontract/engines/fastjsonschema/s3/s3_read_files.py,sha256=HS1dgwkUp3CwuI6VtZnRpOUnTd04E3yMgLbkK5jcW7o,1057
13
+ datacontract/engines/fastjsonschema/check_jsonschema.py,sha256=tI5mfdxilAn-zmq02s8t6pNww9-uJYTOjooO0HimwQo,6321
14
+ datacontract/engines/fastjsonschema/s3/s3_read_files.py,sha256=vuz_hLF2VD8LR_prjQpPLBU8Is-iHLAvqp4KwclOv9I,1157
15
15
  datacontract/engines/soda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- datacontract/engines/soda/check_soda_execute.py,sha256=mqCqVdBFTuJwOiQBf15KSj48ccQgbewFPSMzrAWF_Hk,7820
16
+ datacontract/engines/soda/check_soda_execute.py,sha256=BcPPq2kjOk5dMMjlVC-cspU3a1rpRfvRJ8XoXeBu79Y,7724
17
17
  datacontract/engines/soda/connections/bigquery.py,sha256=C-8kxmzpYe88bJp80ObHFLMh4rpnIjnUQ7XOj0Ke7lk,903
18
18
  datacontract/engines/soda/connections/dask.py,sha256=Yy6Et2n_vDVsdjtqyBWDSZt7mnjPzPk_MZ-92VZHfnY,1496
19
19
  datacontract/engines/soda/connections/databricks.py,sha256=lpMju-o_TzLZeF0EEVwePPr8JahqvFnj5xRYjF15fc8,561
20
- datacontract/engines/soda/connections/duckdb.py,sha256=0IqIGKsWarz8MgfC3Uzj6_Vj9nKgoGtW5IX6yOq6Tz8,6537
21
- datacontract/engines/soda/connections/kafka.py,sha256=vh7z-4ZsmpXiYcogf3oTkagrAPcq6HG2SccnxNwFeVQ,5635
20
+ datacontract/engines/soda/connections/duckdb.py,sha256=OVaxDO9HwfD4M6FYDIDS4zwnUJ20uAM1jz_Fy3EkClo,6271
21
+ datacontract/engines/soda/connections/kafka.py,sha256=VPbH0GfJO_YuBGTyQ3xehjm-sVzSGn4y0bt-fZqPcok,7481
22
22
  datacontract/engines/soda/connections/postgres.py,sha256=9GTF4Es3M5vb7ocSGqAxXmslvkS5CjsPQGIuo020CFc,626
23
- datacontract/engines/soda/connections/snowflake.py,sha256=y1t2a1DWY4_tr5k-X5_nhLE6v1rfCwTahzhtHR91x9A,719
23
+ datacontract/engines/soda/connections/snowflake.py,sha256=rfG2ysuqNM6TkvyqQKcGHFsTGJ6AROmud5VleUDRrb0,749
24
24
  datacontract/engines/soda/connections/sqlserver.py,sha256=RzGLbCUdRyfmDcqtM_AB9WZ-Xk-XYX91nkXpVNpYbvc,1440
25
25
  datacontract/engines/soda/connections/trino.py,sha256=JvKUP9aFg_n095oWE0-bGmfbETSWEOURGEZdQuG8txA,718
26
26
  datacontract/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- datacontract/export/avro_converter.py,sha256=CbrGsGQCi-RNrQ7FfxnuGv3oeT9tHrkSl8dhFbLZyjU,3788
27
+ datacontract/export/avro_converter.py,sha256=n14GtP88c5lpcxyxF5W86k7xYGiwc6j0PIedElbeWjM,4171
28
28
  datacontract/export/avro_idl_converter.py,sha256=-zZxV0OAC76tMkAA9hXbEtp2wtpildKJb0OIbPhgoJE,9794
29
29
  datacontract/export/bigquery_converter.py,sha256=chAxgbYybyLG5v6SwqIweK9PePvE-36FStR7fyA_F_4,4577
30
30
  datacontract/export/csv_type_converter.py,sha256=ZZuJwBgQnafZC7PPvAXsBf2IajPJq8TYZ1l8Qq0GYeI,1290
31
- datacontract/export/dbml_converter.py,sha256=dIx7iMxLrJkDPFt_pCc_r5VkremGjsoUpNWNYNSzet4,3693
31
+ datacontract/export/dbml_converter.py,sha256=Lmg0so_YP652UvDiNYyhAzzxtYvaHQBWFMUHzWadSDA,4739
32
32
  datacontract/export/dbt_converter.py,sha256=QfapVeunwab7bWn_B9-J_1U8fm1wdsPBW_Ws2b99o1E,9390
33
- datacontract/export/exporter.py,sha256=Z1t9ctQSwTLNpM1wYBFeLDgBwwCJVqdk8bBAW72qz8I,2844
34
- datacontract/export/exporter_factory.py,sha256=CgYTx5m11Ec0vQV_-5tHxilTIH3qpRvUDvifsOybiZk,4756
33
+ datacontract/export/exporter.py,sha256=BKUAUT6vifrBn0ktIZ7V0HHAMWhmQMohM2v-TBoHOlA,2875
34
+ datacontract/export/exporter_factory.py,sha256=cKyoHolVw3HrUtaqMKyh5NppvlNd_v54xJFC5bOD0gI,4931
35
35
  datacontract/export/go_converter.py,sha256=oWkEjOXBIGN8emTaxeJD8xpB3VYP4sVaNzKX-Oeqgw0,3330
36
36
  datacontract/export/great_expectations_converter.py,sha256=LIuWHn3h7xRrDDs1YoibHOI8NVF2Izh5IZOQFLeWN7k,5302
37
37
  datacontract/export/html_export.py,sha256=i7jckL80osA8incF0YoJdq3NaYmV1_3OU0cZBfPdNDs,2578
38
- datacontract/export/jsonschema_converter.py,sha256=xxJMB4b78m66X30RUb_-qWVwvffLdj0zeiojBt9r7ks,5044
38
+ datacontract/export/jsonschema_converter.py,sha256=Zqx4K7RZWfE9n_F4CMext82jd2Gr6EoqOnBXChRJgfM,4948
39
39
  datacontract/export/odcs_converter.py,sha256=WngHoTF7R9uMDLCedBso7m2s0yDJQS5HTACtH3AhG-E,4673
40
40
  datacontract/export/protobuf_converter.py,sha256=Baqq2uvRg0AHFo6gR-hEYdLyiYRWziC1Q4AujlHgCzo,3192
41
41
  datacontract/export/pydantic_converter.py,sha256=1Lt9F8i6zyQYb44MyQtsXwCWWXYxZ47SmzArr_uPqsU,5579
42
42
  datacontract/export/rdf_converter.py,sha256=nNYVKJ5bQEq-rRz3yHwpvbsNbvjoOMwkCfkev8Y11H0,6436
43
43
  datacontract/export/sodacl_converter.py,sha256=Uv3BOsq20YKCHmSU6mN-6L2hPPF4V9fPxDoJ42okfHs,7280
44
- datacontract/export/spark_converter.py,sha256=aVOlVUAcQ0wexqUohXUckU8A4WQh8NdhPnKQSGpb-Mg,6733
44
+ datacontract/export/spark_converter.py,sha256=wyJLxsyE6lQx_JyMsPtkN67ogggNUef0TE4kcIicZaA,6990
45
45
  datacontract/export/sql_converter.py,sha256=grDTj3MGhVc5BbJbZ__LFawJtrsnv4ApmOMX4ohPnCQ,4802
46
- datacontract/export/sql_type_converter.py,sha256=aUPsHCOm7m9X4NdZ0C_FguOZwnTzu-1pyz9DVlFkniE,10052
46
+ datacontract/export/sql_type_converter.py,sha256=hxIpkCZ3Isi_8Hj06D6PP0r92091J3lSy1QzSQdfeLw,10854
47
+ datacontract/export/sqlalchemy_converter.py,sha256=x2_MVvDMfqgf_c5yfWimSC0um718EYYUpFiCe1-HN4g,6469
47
48
  datacontract/export/terraform_converter.py,sha256=IFwn-6BWPVkfwDQbj_Gl0GwbJdMKiwKgXCXz5A64cEs,2163
48
- datacontract/imports/avro_importer.py,sha256=ZlqBuWl1CIOtccm_EHyycRdIUJCS9r9lV6IHfpx9tsI,9886
49
- datacontract/imports/bigquery_importer.py,sha256=frBs5a9GuNVtNWF3DtEvsOiIemGI3dfDOEH475l1_84,8399
50
- datacontract/imports/dbt_importer.py,sha256=IPfMIsV1qzKEyfodgGmZRcF0nqN-oW1VixOoPJe-d6k,3390
51
- datacontract/imports/glue_importer.py,sha256=YO-ATDMeUx7WCsuaVzk_VhvKGqks9925qmDkpz5oLbs,8031
52
- datacontract/imports/importer.py,sha256=-hN92fruu__bJAbY3bILWcX1zmikVHt8q3KL83ICpu8,772
53
- datacontract/imports/importer_factory.py,sha256=xfVyEKY2HXIqKVS9GtWnc5xYrmcJZ-WEpVtExLudyYQ,2999
54
- datacontract/imports/jsonschema_importer.py,sha256=dvugek0rkUVbfqy1xb6y3msQjziCgooF0HKc2vWBTIw,6776
55
- datacontract/imports/odcs_importer.py,sha256=0SQUON2lkTBFopdiUg-s3HVt1ES1oqaVYRP42hZh_7I,7453
56
- datacontract/imports/spark_importer.py,sha256=5_zMcQlHzIBGznxxL6d5wevivq1XwPI8MbKbftUrtYA,4220
57
- datacontract/imports/sql_importer.py,sha256=nNrFJonNgEv8xwaN_SFq9M26LKdmLP0yHvbx31ErmQo,2723
58
- datacontract/imports/unity_importer.py,sha256=f2VZYYY9DjxzttPHK6mU0bv5Nv5QKWmxo1r3Lb-1png,5583
49
+ datacontract/imports/avro_importer.py,sha256=HkzaMCa9A20D3Z0O_7I67TRcqyNV9XGYX_0JAF51qF8,9937
50
+ datacontract/imports/bigquery_importer.py,sha256=zQU-eMOcY3ZRDXwyA4RYMorLKrSK0kgGRekuEPthh-A,8419
51
+ datacontract/imports/dbml_importer.py,sha256=iWX8EmCRqGfVCtpI2oojVCQQA7oTahtsMUUm_3gPRcE,3869
52
+ datacontract/imports/dbt_importer.py,sha256=f96-eGbdkDMh8B6iKhWy4qfAskE-b4dpWYHfenjTX8Y,3236
53
+ datacontract/imports/glue_importer.py,sha256=QuMvuga4rfiYm59AopFrscGPaiJkgrjtbu0-09_uF_A,8368
54
+ datacontract/imports/importer.py,sha256=FE9YsrcNunLiEpNGXd6PAHb_Zs8_dVUQPPBqOVAMBcE,812
55
+ datacontract/imports/importer_factory.py,sha256=0D8imN7WvQyvASkYHN8JTvNO9VLBllwHlyTeZNUD9Js,3155
56
+ datacontract/imports/jsonschema_importer.py,sha256=cY70b2bFx9Kfsnq5vNj0iy_GvNOIcBH8xeFjrsxv4bQ,4925
57
+ datacontract/imports/odcs_importer.py,sha256=uDBCzWi8mKCslw6Og5t-037dVVVZVsbJjK3EHJH_zQI,7474
58
+ datacontract/imports/spark_importer.py,sha256=fEOtUPVBRkhvaxsdk6fgRd_j-ka1TDwdrh6KkTLvv30,4942
59
+ datacontract/imports/sql_importer.py,sha256=CiOzSthTwyjCHxYQNVO7j4udchEFER8gtXrr_IyX2dU,2890
60
+ datacontract/imports/unity_importer.py,sha256=5qoU-PRq8ABXxiqVll--L2_6V0iAVQgkooWcvRuchLU,5604
59
61
  datacontract/init/download_datacontract_file.py,sha256=pj_4mhWKlEtfueWohDgkb1nyuG5ERDipUDszxKwpZUs,413
60
- datacontract/integration/publish_datamesh_manager.py,sha256=TuLRVdZs21UBet-qCqIywd_7WH5m6m-G83tw515G3hI,1489
61
- datacontract/integration/publish_opentelemetry.py,sha256=PjU9XH2wgisg0dBP34bUvQazxVZjp37Zfck_xEu5sPQ,3812
62
+ datacontract/integration/datamesh_manager.py,sha256=iNjDrcZfH8vyNbyQPbxkv7XMfG5rtbcLZXIlfMJ0c8c,2752
63
+ datacontract/integration/opentelemetry.py,sha256=0XsqOsc06qNtXC5KqZCxyeC_IGlIi63lYWHh3KKlOO0,3828
62
64
  datacontract/lint/files.py,sha256=tg0vq_w4LQsEr_8A5qr4hUJmHeGalUpsXJXC1t-OGC0,471
63
65
  datacontract/lint/lint.py,sha256=GhgBwfDgihXfWIu1WUfYeJoxfYacVJrwq3L2KO4Z2Io,5076
64
66
  datacontract/lint/resolve.py,sha256=KOGKrf5wZYgsa5-Uc0x5-C5GX1aVt6TSftIwD8zxy_Y,8815
@@ -73,10 +75,9 @@ datacontract/lint/linters/notice_period_linter.py,sha256=oHSOLU2uXd7BDvfEd_VjeXS
73
75
  datacontract/lint/linters/quality_schema_linter.py,sha256=-zaI49okETJYo-qR-J6rQqMRI9QX17UK9ASf1GxgYnk,2181
74
76
  datacontract/lint/linters/valid_constraints_linter.py,sha256=GeeE2hojMt24EoHuSHE1lURA2v2p5Dmxc7Qq8IvZQH0,4915
75
77
  datacontract/model/breaking_change.py,sha256=BIDEUo1U2CQLVT2-I5PyFttxAj6zQPI1UUkEoOOQXMY,2249
76
- datacontract/model/data_contract_specification.py,sha256=1tbaMfV9PVuLbf9wymWvdnJoclLiDNwhbyS8peRtluc,6016
78
+ datacontract/model/data_contract_specification.py,sha256=T_BEZojXRYC_1nc4wJf2Zlp0xZ9WWCqcC8VIGM6doS0,6073
77
79
  datacontract/model/exceptions.py,sha256=zW9NoyzwsND-c9UqgyTVuezUVGEc6KK1Uc2zl12loyo,1178
78
80
  datacontract/model/run.py,sha256=v7QNsPwYS1otQrpjeOaFsLRnxO8OgbdK_d-Z_e3iy0s,2610
79
- datacontract/publish/publish.py,sha256=rWnQWWneCjokCpwYv88EAtAlFnA-3hZgl-1k6dak_8w,1191
80
81
  datacontract/templates/datacontract.html,sha256=w9xGnjYFtFmmsU90_I1NHVLNcuS22flPw51oIAn56WY,13442
81
82
  datacontract/templates/index.html,sha256=dggq8ng61xZEeu6-6tbTQqjNcRFT0JTkn7y75087U58,12503
82
83
  datacontract/templates/partials/datacontract_information.html,sha256=7ZBxgEgi2XndKBypeOpe03oCSRPOujC6NVlN7zexGNM,6221
@@ -84,12 +85,12 @@ datacontract/templates/partials/datacontract_servicelevels.html,sha256=ed3QgB11B
84
85
  datacontract/templates/partials/datacontract_terms.html,sha256=1cnJcOTpxwot2BCuZmkLF_SPfiVloLs3c8mj9WfE4sc,1865
85
86
  datacontract/templates/partials/definition.html,sha256=jEvjThHghHT2bo4oMAfe3H0lzc4ZuqDsJFOpN9w3Nho,7085
86
87
  datacontract/templates/partials/example.html,sha256=F1dWbHDIXQScgfs4OVgqM1lR4uV4xX5j6suasXHNM88,1204
87
- datacontract/templates/partials/model_field.html,sha256=w5BNqIxr03-T3r7lynvzi_i4LUGgOJMqe-5zF1_XRck,6762
88
+ datacontract/templates/partials/model_field.html,sha256=kh_ZIqJuayyxN-zDNIUPIoXOZeehGxXQxiImYB6G5qY,6946
88
89
  datacontract/templates/partials/server.html,sha256=WkWFbz1ZvhIAUQQhH5Lkwb0HZRW907ehEnFmJSkpquQ,6235
89
90
  datacontract/templates/style/output.css,sha256=F3oEhUpuv8kA_dWr4pJymBS_Ju6huIIZdLMkJzPzMmU,25647
90
- datacontract_cli-0.10.10.dist-info/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
91
- datacontract_cli-0.10.10.dist-info/METADATA,sha256=b3U9R8eE7T7eO9VMADNMx55Oqj15VZkMOHnhCjGTaes,80778
92
- datacontract_cli-0.10.10.dist-info/WHEEL,sha256=YiKiUUeZQGmGJoR_0N1Y933DOBowq4AIvDe2-UIy8E4,91
93
- datacontract_cli-0.10.10.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
94
- datacontract_cli-0.10.10.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
95
- datacontract_cli-0.10.10.dist-info/RECORD,,
91
+ datacontract_cli-0.10.12.dist-info/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
92
+ datacontract_cli-0.10.12.dist-info/METADATA,sha256=Kg7oXLjfYrIU1uNuhJMh5VSlwOBYX9NukWQpznbcQow,88281
93
+ datacontract_cli-0.10.12.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
94
+ datacontract_cli-0.10.12.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
95
+ datacontract_cli-0.10.12.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
96
+ datacontract_cli-0.10.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.0.2)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,32 +0,0 @@
1
- import os
2
-
3
- import requests
4
-
5
- from datacontract.data_contract import DataContract
6
-
7
-
8
- def publish_to_datamesh_manager(data_contract: DataContract):
9
- try:
10
- headers = {"Content-Type": "application/json", "x-api-key": _require_datamesh_manager_api_key()}
11
- spec = data_contract.get_data_contract_specification()
12
- id = spec.id
13
- url = "https://api.datamesh-manager.com/api/datacontracts/{0}".format(id)
14
- request_body = spec.model_dump_json().encode("utf-8")
15
- response = requests.put(
16
- url=url,
17
- data=request_body,
18
- headers=headers,
19
- )
20
- if response.status_code != 200:
21
- print(f"Error publishing data contract to Data Mesh Manager: {response.text}")
22
- exit(1)
23
- print(f"Published data contract to {url}")
24
- except Exception as e:
25
- print(f"Failed publishing data contract. Error: {str(e)}")
26
-
27
-
28
- def _require_datamesh_manager_api_key():
29
- datamesh_manager_api_key = os.getenv("DATAMESH_MANAGER_API_KEY")
30
- if datamesh_manager_api_key is None:
31
- raise Exception("Cannot publish data contract, as DATAMESH_MANAGER_API_KEY is not set")
32
- return datamesh_manager_api_key