datacontract-cli 0.10.23__py3-none-any.whl → 0.10.24__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/__init__.py +13 -0
  2. datacontract/catalog/catalog.py +2 -2
  3. datacontract/data_contract.py +5 -3
  4. datacontract/engines/data_contract_test.py +13 -4
  5. datacontract/engines/fastjsonschema/s3/s3_read_files.py +3 -2
  6. datacontract/engines/soda/check_soda_execute.py +16 -3
  7. datacontract/engines/soda/connections/duckdb_connection.py +61 -5
  8. datacontract/engines/soda/connections/kafka.py +3 -2
  9. datacontract/export/avro_converter.py +8 -1
  10. datacontract/export/bigquery_converter.py +1 -1
  11. datacontract/export/duckdb_type_converter.py +57 -0
  12. datacontract/export/odcs_v3_exporter.py +6 -5
  13. datacontract/export/protobuf_converter.py +163 -69
  14. datacontract/imports/avro_importer.py +31 -6
  15. datacontract/imports/csv_importer.py +111 -57
  16. datacontract/imports/importer.py +1 -0
  17. datacontract/imports/importer_factory.py +5 -0
  18. datacontract/imports/odcs_v3_importer.py +48 -6
  19. datacontract/imports/protobuf_importer.py +266 -0
  20. datacontract/lint/resolve.py +23 -8
  21. datacontract/model/data_contract_specification.py +2 -2
  22. datacontract/model/run.py +3 -0
  23. datacontract/output/__init__.py +0 -0
  24. datacontract/templates/datacontract.html +2 -1
  25. datacontract/templates/index.html +2 -1
  26. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info}/METADATA +276 -194
  27. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info}/RECORD +31 -30
  28. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info}/WHEEL +1 -1
  29. datacontract/export/csv_type_converter.py +0 -36
  30. datacontract/lint/linters/quality_schema_linter.py +0 -52
  31. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info}/entry_points.txt +0 -0
  32. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info/licenses}/LICENSE +0 -0
  33. {datacontract_cli-0.10.23.dist-info → datacontract_cli-0.10.24.dist-info}/top_level.txt +0 -0
@@ -1,39 +1,39 @@
1
- datacontract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1
+ datacontract/__init__.py,sha256=ThDdxDJsd7qNErLoh628nK5M7RzhJNYCmN-C6BAJFoo,405
2
2
  datacontract/api.py,sha256=qZJr8I5MI4wZlvjUEAvqna9Xj5Ic2GCBxSyogBlKEbE,8166
3
3
  datacontract/cli.py,sha256=7jvwNDLe4TqaegpPiNOjMeHIg2qFxK6AGBWUkzqH7AM,16880
4
- datacontract/data_contract.py,sha256=H9ogUTj41javVW8gcLWYDKZDJMJQHyc_Q4LxLqFrRoo,10686
4
+ datacontract/data_contract.py,sha256=unt7wnThY4qMtexdCc4fYU0gCEwdhDdYjHn_u_Ya6_Q,10740
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
- datacontract/catalog/catalog.py,sha256=wmv_2BBxHhNBlilAmQHHhNe4tK14DowkyIOVaQW2DWU,2691
9
+ datacontract/catalog/catalog.py,sha256=nTamEVc_G7gRvz-jwt5aic0Kea8l7H60_JX1Sahn5vk,2727
10
10
  datacontract/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  datacontract/engines/data_contract_checks.py,sha256=wjnKh1FxG9qXB1zOPjrGmjW7uCpRsxXICMIvyFwpVt4,26622
12
- datacontract/engines/data_contract_test.py,sha256=8TUpKKausMcOoM_7PX_cqjHK_WKsvSvy09SwvJmJoOM,2855
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
15
15
  datacontract/engines/fastjsonschema/check_jsonschema.py,sha256=-knTZ-NsHpBWCoR7r1JP5iYSWx697mugijmqUPx0pEY,10307
16
- datacontract/engines/fastjsonschema/s3/s3_read_files.py,sha256=vuz_hLF2VD8LR_prjQpPLBU8Is-iHLAvqp4KwclOv9I,1157
16
+ datacontract/engines/fastjsonschema/s3/s3_read_files.py,sha256=0sTDWvuu0AzSgn7fKWJxGaTmPww00TFYyDK-X0s5T3c,1193
17
17
  datacontract/engines/soda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
- datacontract/engines/soda/check_soda_execute.py,sha256=ve7Td5uy3ZvVyM5H3xz3ndsP-vYK8RP6j8PiSRi26Hs,8295
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=_usG-Ci7FaAdEsU3_70zUVGVQlqvVpupP44RYZOa6AE,6772
22
- datacontract/engines/soda/connections/kafka.py,sha256=j6I9loXixzaV-SU56dIodCykPDAnWnsNRfKG4wOtzvs,8570
21
+ datacontract/engines/soda/connections/duckdb_connection.py,sha256=hy2HxktSSt1tFB7rVI7tDOe6WeTNvHSKqsEk9uIkntU,9114
22
+ datacontract/engines/soda/connections/kafka.py,sha256=icUcsGy9lFQRTz_mXD35tahFKIIxK5aS3RCzu_YfBaQ,8625
23
23
  datacontract/engines/soda/connections/postgres.py,sha256=9GTF4Es3M5vb7ocSGqAxXmslvkS5CjsPQGIuo020CFc,626
24
24
  datacontract/engines/soda/connections/snowflake.py,sha256=rfG2ysuqNM6TkvyqQKcGHFsTGJ6AROmud5VleUDRrb0,749
25
25
  datacontract/engines/soda/connections/sqlserver.py,sha256=RzGLbCUdRyfmDcqtM_AB9WZ-Xk-XYX91nkXpVNpYbvc,1440
26
26
  datacontract/engines/soda/connections/trino.py,sha256=JvKUP9aFg_n095oWE0-bGmfbETSWEOURGEZdQuG8txA,718
27
27
  datacontract/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- datacontract/export/avro_converter.py,sha256=gPPSPSoQaHMMg9iOfiywt1IMYEsuTu8kCYWrSa7PJNs,4626
28
+ datacontract/export/avro_converter.py,sha256=0_MOAwJYOMxQpmgYKSQ5TJjOTeuqVWfm4kTxmaSVH3A,4882
29
29
  datacontract/export/avro_idl_converter.py,sha256=SGO7JfI9UGXLYFR5wMGNUH1qf6kt9lF6dUU9roVqnFo,9878
30
- datacontract/export/bigquery_converter.py,sha256=VSBdVGWrlar18ETzgNArxDzk8Zt5JcAc_wKjfwLpG_A,4734
31
- datacontract/export/csv_type_converter.py,sha256=ZZuJwBgQnafZC7PPvAXsBf2IajPJq8TYZ1l8Qq0GYeI,1290
30
+ datacontract/export/bigquery_converter.py,sha256=9mm-XP3klu1C5J87L9EL5ZyMCJhLBwsixo3aAw9QmRI,4738
32
31
  datacontract/export/custom_converter.py,sha256=xb8KbkRRgHmT4ewwC7XxtnKpe_ZMSJWBjYOaKjmO_KQ,1216
33
32
  datacontract/export/data_caterer_converter.py,sha256=eSEuy3TbqUIG_lHYEBOydAgp_CJNoGArXrcJvh81wcw,5984
34
33
  datacontract/export/dbml_converter.py,sha256=f_OZEFwRUyL-Kg2yn_G58I8iz1VfFrZh8Nbw3Wq0JDo,4777
35
34
  datacontract/export/dbt_converter.py,sha256=_CpRg3BD6UZvJJUMI4lzdiQj136rOjvXYVBMHvxEYqs,10548
36
35
  datacontract/export/dcs_exporter.py,sha256=RALQ7bLAjak7EsoFFL2GFX2Oju7pnCDPCdRN_wo9wHM,210
36
+ datacontract/export/duckdb_type_converter.py,sha256=hUAAbImhJUMJOXEG-UoOKQqYGrJM6UILpn2YjUuAUOw,2216
37
37
  datacontract/export/exporter.py,sha256=XrNmoIH_5Myb8jx-vaS1ZCF11RTw5zf5JATkqXWunXE,3025
38
38
  datacontract/export/exporter_factory.py,sha256=0XmU51fQNZVQdC78gDy_82CatazhioMmcd6qdCl8muU,5847
39
39
  datacontract/export/go_converter.py,sha256=Ttvbfu3YU-3GBwRD6nwCsFyZuc_hiIvJD-Jg2sT5WLw,3331
@@ -42,9 +42,9 @@ datacontract/export/html_export.py,sha256=ojazWrb0AwSc7Vr72M_otMo-3PA8mfi8tfIy9B
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/odcs_v3_exporter.py,sha256=w8PGyTczrZrRMKye_onYZCpB47OM0pEJCt5WIum2O5U,13130
45
+ datacontract/export/odcs_v3_exporter.py,sha256=-nGpIbdqV3OATWlJt_gDvtM8SscPEHk0RDGmFVWPlHw,13242
46
46
  datacontract/export/pandas_type_converter.py,sha256=464pQ3JQKFQa1TO0HBNcEoZvQye_yUbY6jQtiBaphSc,1117
47
- datacontract/export/protobuf_converter.py,sha256=9K0fzBGbqlj9AhQumw2oq53hyn_QDCT3UlyH2uXJdC0,3192
47
+ datacontract/export/protobuf_converter.py,sha256=DHLl8BW26xqltBsd7Qhz0RhTl9YZQKCbkmjNpECgubg,7928
48
48
  datacontract/export/pydantic_converter.py,sha256=1Lt9F8i6zyQYb44MyQtsXwCWWXYxZ47SmzArr_uPqsU,5579
49
49
  datacontract/export/rdf_converter.py,sha256=4gnKus37Geth4MJ3Ruc8AbnpD_Ll9OCx8oTIEKScvh8,6435
50
50
  datacontract/export/sodacl_converter.py,sha256=lQCOcNiT7i6KGaJ1Ua4MYBYGm-EyktTGrL4FLZDi14c,1102
@@ -53,19 +53,20 @@ datacontract/export/sql_converter.py,sha256=BGjmOAlzB5QfzJiXP61ajV0wj4M5oJrmNZZe
53
53
  datacontract/export/sql_type_converter.py,sha256=qjm8Fdyihq3VBL4x2D7RHdWoOm6HWIJe28U4XboYCk8,13436
54
54
  datacontract/export/sqlalchemy_converter.py,sha256=0DMncvA811lTtd5q4ZORREQ9YH1vQm1lJeqMWsFvloE,6463
55
55
  datacontract/export/terraform_converter.py,sha256=ExFoEvErVk-gBnWJiqC38SxDUmUEydpACWc917l5RyM,2163
56
- datacontract/imports/avro_importer.py,sha256=hpGvO6uv2zcupJC8-wC-c-vbjNb83IQ560a5F3MsEFA,9937
56
+ datacontract/imports/avro_importer.py,sha256=yvI3oupVkfWaTfVr9q6ruLCheirVN1GQ-fs_DDsZF24,10947
57
57
  datacontract/imports/bigquery_importer.py,sha256=7TcP9FDsIas5LwJZ-HrOPXZ-NuR056sxLfDDh3vjo8E,8419
58
- datacontract/imports/csv_importer.py,sha256=NT9N9kOSZe6YSJVsYOKF9-d7fqih3Q1zssQzem0finM,2921
58
+ datacontract/imports/csv_importer.py,sha256=pDwQ37KVc38B3iLauLTtVwUEKcawlJuM751xf01M0Lc,5330
59
59
  datacontract/imports/dbml_importer.py,sha256=o0IOgvXN34lU1FICDHm_QUTv0DKsgwbHPHUDxQhIapE,3872
60
60
  datacontract/imports/dbt_importer.py,sha256=hQwqD9vbvwLLc6Yj3tQbar5ldI0pV-ynSiz7CZZ0JCc,8290
61
61
  datacontract/imports/glue_importer.py,sha256=fiJPkvfwOCsaKKCGW19-JM5CCGXZ2mkNrVtUzp2iw6g,8370
62
62
  datacontract/imports/iceberg_importer.py,sha256=vadGJVqQKgG-j8swUytZALFB8QjbGRqZPCcPcCy0vco,5923
63
- datacontract/imports/importer.py,sha256=X4M0SZiRQsz8TGm-FSRuh6bs6qny7V8odyQ7l_1DwNg,876
64
- datacontract/imports/importer_factory.py,sha256=8ed9-ceJlFMf-AIAyuI6Uzs05CqEs1nPlLA-tvfI0bU,3639
63
+ datacontract/imports/importer.py,sha256=a3QF1pA5HavsSdczfyzGepoaMCkX1vfWr6abl6Maxmc,902
64
+ datacontract/imports/importer_factory.py,sha256=XbUooE1icPT-dZxipDnnCeIaGsI1XwpH9y45pSaUVps,3807
65
65
  datacontract/imports/jsonschema_importer.py,sha256=67H__XLugV4vguHrIqzW02dtx27zYTWnOms4D1ma3bk,4961
66
66
  datacontract/imports/odcs_importer.py,sha256=vv2dHLGL0Cdivv1CdKn5euJwGNKmiZmXCoxUYAXsHX8,2126
67
- datacontract/imports/odcs_v3_importer.py,sha256=ev-qvtbRsG52I--We15P3T_OB7mvS7Zj9-6MOI-8vUQ,13061
67
+ datacontract/imports/odcs_v3_importer.py,sha256=icCndBIFLXGLO4K_t6cSBKyZ0xQjO694YPpnxebj6xo,14997
68
68
  datacontract/imports/parquet_importer.py,sha256=W_0_16mX4stwDUt4GM2L7dnGmTpAySab5k13-OlTCCc,3095
69
+ datacontract/imports/protobuf_importer.py,sha256=AGwtsTHsawyCCM-dqXq3ZGDFyAIyA3Jq_HSXuxiJAi4,10842
69
70
  datacontract/imports/spark_importer.py,sha256=h2na1YtdJYu9Oz07tSvwx8L4RX6aLCCDVkAv-RTKyVA,5100
70
71
  datacontract/imports/sql_importer.py,sha256=ElFS2LILDOvWzW-X4emSIKltFV42i78TEoyg0bvn3II,9322
71
72
  datacontract/imports/unity_importer.py,sha256=UcPYABhLZaWNl5IkCazwAuMoVDdujsu_QteuV_Q9hgI,6737
@@ -73,7 +74,7 @@ datacontract/init/init_template.py,sha256=BMawR-AF_vXyn_-Co-XoT8Dxj9b55V8xKk2KkJ
73
74
  datacontract/integration/datamesh_manager.py,sha256=6_mHRQAqw-KCfVtejNxULN4ihBZTZikf_5p0pYHer7g,2849
74
75
  datacontract/lint/files.py,sha256=tg0vq_w4LQsEr_8A5qr4hUJmHeGalUpsXJXC1t-OGC0,471
75
76
  datacontract/lint/lint.py,sha256=Ew0n3ooXxmCVnUxJ_cDoacsD82QdMZYnKrxnG9J0sWQ,5077
76
- datacontract/lint/resolve.py,sha256=58Z48Bkkjl4QWLNA3sPvqjh46sh1KQGgUzo3cG1BQvI,11431
77
+ datacontract/lint/resolve.py,sha256=PTx3BxNlIMaaDPLo4A6kD0u3MpeFncLUoTYm_f9vkoM,12096
77
78
  datacontract/lint/resources.py,sha256=nfeZmORh1aP7EKpMKCmfbS04Te8pQ0nz64vJVkHOq3c,647
78
79
  datacontract/lint/schema.py,sha256=4pYX6JX6SkASftyqaWTodKFRVPi2qV0_Z60tvaCOk80,1813
79
80
  datacontract/lint/urls.py,sha256=giac0eAYa6hha8exleL3KsiPtiFlOq8l53axtAmCilw,2529
@@ -82,20 +83,20 @@ datacontract/lint/linters/description_linter.py,sha256=7fla7FQwDa-1UrLFCFKFoeUzk
82
83
  datacontract/lint/linters/field_pattern_linter.py,sha256=lreGvOW3v_Glah_SriVe9ejZ7EuR6_gJsdr2tEORB_8,1084
83
84
  datacontract/lint/linters/field_reference_linter.py,sha256=65GnbBtazn55dXslujOho3YIHCwNy9DDp0m56pNMkUk,2021
84
85
  datacontract/lint/linters/notice_period_linter.py,sha256=6r413aEVOVHWJHb33-68ecVTAUNzbxL4me6ebmPcgpE,2130
85
- datacontract/lint/linters/quality_schema_linter.py,sha256=ZXFHlMLFV1GZejizbUdfW6-msffFECoDGNsdynaPnog,2182
86
86
  datacontract/lint/linters/valid_constraints_linter.py,sha256=qTFh1X3I9wOtAxuXlvbGesCQ3GQ6iWc-MT_ttIybRsw,4916
87
- datacontract/model/data_contract_specification.py,sha256=1bEE7hQJEjzoL4XtCQBmPe6VWclU_D_YiUJW2oNRNos,8655
87
+ datacontract/model/data_contract_specification.py,sha256=5-59qU0BD1mM4D7LuUGuJeUFSG9vkICEVYI9bA2wsI4,8673
88
88
  datacontract/model/exceptions.py,sha256=5BMuEH2qWuckNP4FTfpUEeEu6rjgGcLOD0GQugKRQ1U,1242
89
89
  datacontract/model/odcs.py,sha256=9PXwm72FASjNwteF1Jn591iP3-St0aq16Cpsk0PkEW8,389
90
- datacontract/model/run.py,sha256=2HTISHW6gvu7NTke76hLw4wkH_kQAig9Z176OuttYSA,3004
90
+ datacontract/model/run.py,sha256=4UdEUaJl5RxEpN9S3swSu1vGJUVyNhOpRkdfbBZhh90,3146
91
+ datacontract/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
92
  datacontract/output/junit_test_results.py,sha256=hAT7UgxwbfNzA0f5uuGzM4OIwLfXbmA4dgsfxsclWh0,4822
92
93
  datacontract/output/output_format.py,sha256=_ZokDBo7-HXBs6czUv7kLLf9cYft_q5QaKzthsVnc58,212
93
94
  datacontract/output/test_results_writer.py,sha256=PWNLs3R_LQMH4xp5WDxLkQgY3xvj8Eyzw1jnfgkQxlc,2713
94
95
  datacontract/schemas/datacontract-1.1.0.init.yaml,sha256=_WQX6NRwimXlPVKcKeHLd4mFL0TJ2vYH0WnyMXZeQ8Y,1828
95
96
  datacontract/schemas/datacontract-1.1.0.schema.json,sha256=3Bu2rxEjkF6dNLcqi1GF4KoXBnEIopaJ87Qb8S4zUvg,62872
96
97
  datacontract/schemas/odcs-3.0.1.schema.json,sha256=bRZsSXA0fV0EmV_8f1K68PlXu1m4K7JcuHpLnY3ESwQ,72933
97
- datacontract/templates/datacontract.html,sha256=9rm5hLkST8EnOFwj0al9c0xPajzlyWlnfxT2iicSRCM,15179
98
- datacontract/templates/index.html,sha256=nyi9nrEsSPuOrXszKzqkqwZGveXsdy1PLJp2g9oDw0A,12517
98
+ datacontract/templates/datacontract.html,sha256=KxejmuQBnutQJY6rDiBtnWq3V0tdKPsCeyBomxazg5Q,15193
99
+ datacontract/templates/index.html,sha256=_e2J_NhOUPupDAQjBk8R68iCtrUa6lh6qVq6dYjm18s,12531
99
100
  datacontract/templates/partials/datacontract_information.html,sha256=7ZBxgEgi2XndKBypeOpe03oCSRPOujC6NVlN7zexGNM,6221
100
101
  datacontract/templates/partials/datacontract_servicelevels.html,sha256=ed3QgB11B0Qq2h_NwaroGZ4pQMBPEhfeQaoS-qEipqY,11401
101
102
  datacontract/templates/partials/datacontract_terms.html,sha256=1cnJcOTpxwot2BCuZmkLF_SPfiVloLs3c8mj9WfE4sc,1865
@@ -105,9 +106,9 @@ datacontract/templates/partials/model_field.html,sha256=2YBF95ypNCPFYuYKoeilRnDG
105
106
  datacontract/templates/partials/quality.html,sha256=ynEDWRn8I90Uje-xhGYgFcfwOgKI1R-CDki-EvTsauQ,1785
106
107
  datacontract/templates/partials/server.html,sha256=WkWFbz1ZvhIAUQQhH5Lkwb0HZRW907ehEnFmJSkpquQ,6235
107
108
  datacontract/templates/style/output.css,sha256=V1k6smSvlz07W2UNOkhcDFUb0HLmoas7DnNg_o8XUcA,25759
108
- datacontract_cli-0.10.23.dist-info/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
109
- datacontract_cli-0.10.23.dist-info/METADATA,sha256=ls0fDH5tDEJLo2F1qkl2I0_jZJJHr1U6quP_nEE2QVw,102825
110
- datacontract_cli-0.10.23.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
111
- datacontract_cli-0.10.23.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
112
- datacontract_cli-0.10.23.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
113
- datacontract_cli-0.10.23.dist-info/RECORD,,
109
+ datacontract_cli-0.10.24.dist-info/licenses/LICENSE,sha256=23h64qnSeIZ0DKeziWAKC-zBCt328iSbRbWBrXoYRb4,2210
110
+ datacontract_cli-0.10.24.dist-info/METADATA,sha256=QqfRrDVFBpt6_oh7hLt-Qs6SvJq8l3Wv4Kvv128nqkY,103839
111
+ datacontract_cli-0.10.24.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
112
+ datacontract_cli-0.10.24.dist-info/entry_points.txt,sha256=D3Eqy4q_Z6bHauGd4ppIyQglwbrm1AJnLau4Ppbw9Is,54
113
+ datacontract_cli-0.10.24.dist-info/top_level.txt,sha256=VIRjd8EIUrBYWjEXJJjtdUgc0UAJdPZjmLiOR8BRBYM,13
114
+ datacontract_cli-0.10.24.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,36 +0,0 @@
1
- # https://duckdb.org/docs/data/csv/overview.html
2
- # ['SQLNULL', 'BOOLEAN', 'BIGINT', 'DOUBLE', 'TIME', 'DATE', 'TIMESTAMP', 'VARCHAR']
3
- def convert_to_duckdb_csv_type(field) -> None | str:
4
- type = field.type
5
- if type is None:
6
- return "VARCHAR"
7
- if type.lower() in ["string", "varchar", "text"]:
8
- return "VARCHAR"
9
- if type.lower() in ["timestamp", "timestamp_tz"]:
10
- return "TIMESTAMP"
11
- if type.lower() in ["timestamp_ntz"]:
12
- return "TIMESTAMP"
13
- if type.lower() in ["date"]:
14
- return "DATE"
15
- if type.lower() in ["time"]:
16
- return "TIME"
17
- if type.lower() in ["number", "decimal", "numeric"]:
18
- # precision and scale not supported by data contract
19
- return "VARCHAR"
20
- if type.lower() in ["float", "double"]:
21
- return "DOUBLE"
22
- if type.lower() in ["integer", "int", "long", "bigint"]:
23
- return "BIGINT"
24
- if type.lower() in ["boolean"]:
25
- return "BOOLEAN"
26
- if type.lower() in ["object", "record", "struct"]:
27
- # not supported in CSV
28
- return "VARCHAR"
29
- if type.lower() in ["bytes"]:
30
- # not supported in CSV
31
- return "VARCHAR"
32
- if type.lower() in ["array"]:
33
- return "VARCHAR"
34
- if type.lower() in ["null"]:
35
- return "SQLNULL"
36
- return "VARCHAR"
@@ -1,52 +0,0 @@
1
- import yaml
2
-
3
- from datacontract.model.data_contract_specification import DataContractSpecification, Model
4
-
5
- from ..lint import Linter, LinterResult
6
-
7
-
8
- class QualityUsesSchemaLinter(Linter):
9
- @property
10
- def name(self) -> str:
11
- return "Quality check(s) use model"
12
-
13
- @property
14
- def id(self) -> str:
15
- return "quality-schema"
16
-
17
- def lint_sodacl(self, check, models: dict[str, Model]) -> LinterResult:
18
- result = LinterResult()
19
- for sodacl_check in check.keys():
20
- table_name = sodacl_check[len("checks for ") :]
21
- if table_name not in models:
22
- result = result.with_error(f"Quality check on unknown model '{table_name}'")
23
- return result
24
-
25
- def lint_montecarlo(self, check, models: dict[str, Model]) -> LinterResult:
26
- return LinterResult().with_warning("Linting montecarlo checks is not currently implemented")
27
-
28
- def lint_great_expectations(self, check, models: dict[str, Model]) -> LinterResult:
29
- return LinterResult().with_warning("Linting great expectations checks is not currently implemented")
30
-
31
- def lint_implementation(self, contract: DataContractSpecification) -> LinterResult:
32
- result = LinterResult()
33
- models = contract.models
34
- check = contract.quality
35
- if not check:
36
- return LinterResult()
37
- if not check.specification:
38
- return LinterResult.cautious("Quality check without specification.")
39
- if isinstance(check.specification, str):
40
- check_specification = yaml.safe_load(check.specification)
41
- else:
42
- check_specification = check.specification
43
- match check.type:
44
- case "SodaCL":
45
- result = result.combine(self.lint_sodacl(check_specification, models))
46
- case "montecarlo":
47
- result = result.combine(self.lint_montecarlo(check_specification, models))
48
- case "great-expectations":
49
- result = result.combine(self.lint_great_expectations(check_specification, models))
50
- case _:
51
- result = result.with_warning("Can't lint quality check " f"with type '{check.type}'")
52
- return result