acryl-datahub 1.2.0.4rc2__py3-none-any.whl → 1.2.0.4rc4__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 acryl-datahub might be problematic. Click here for more details.
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/METADATA +2265 -2264
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/RECORD +25 -24
- datahub/_version.py +1 -1
- datahub/cli/specific/assertions_cli.py +37 -2
- datahub/cli/specific/datacontract_cli.py +54 -4
- datahub/ingestion/api/report.py +21 -2
- datahub/ingestion/source/data_lake_common/path_spec.py +5 -1
- datahub/ingestion/source/dbt/dbt_cloud.py +6 -3
- datahub/ingestion/source/fivetran/fivetran_log_api.py +4 -3
- datahub/ingestion/source/grafana/models.py +6 -0
- datahub/ingestion/source/tableau/tableau.py +1 -1
- datahub/ingestion/transformer/base_transformer.py +8 -5
- datahub/metadata/_internal_schema_classes.py +513 -513
- datahub/metadata/_urns/urn_defs.py +1684 -1684
- datahub/metadata/schema.avsc +16745 -16348
- datahub/metadata/schemas/DatasetUsageStatistics.avsc +8 -0
- datahub/sdk/search_client.py +3 -0
- datahub/specific/aspect_helpers/fine_grained_lineage.py +76 -0
- datahub/specific/datajob.py +15 -1
- datahub/specific/dataset.py +37 -59
- datahub/utilities/server_config_util.py +2 -1
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.2.0.4rc2.dist-info → acryl_datahub-1.2.0.4rc4.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
acryl_datahub-1.2.0.
|
|
1
|
+
acryl_datahub-1.2.0.4rc4.dist-info/licenses/LICENSE,sha256=9xNHpsD0uYF5ONzXsKDCuHHB-xbiCrSbueWXqrTNsxk,11365
|
|
2
2
|
datahub/__init__.py,sha256=aq_i5lVREmoLfYIqcx_pEQicO855YlhD19tWc1eZZNI,59
|
|
3
3
|
datahub/__main__.py,sha256=pegIvQ9hzK7IhqVeUi1MeADSZ2QlP-D3K0OQdEg55RU,106
|
|
4
|
-
datahub/_version.py,sha256=
|
|
4
|
+
datahub/_version.py,sha256=QaLopy9Ah6-37qM0KRkhlm-r1BRJTfxbvgArP3vAugU,323
|
|
5
5
|
datahub/entrypoints.py,sha256=9Qf-37rNnTzbGlx8S75OCDazIclFp6zWNcCEL1zCZto,9015
|
|
6
6
|
datahub/errors.py,sha256=p5rFAdAGVCk4Lqolol1YvthceadUSwpaCxLXRcyCCFQ,676
|
|
7
7
|
datahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -89,8 +89,8 @@ datahub/cli/state_cli.py,sha256=RDXYCb17sqjW49nNdkoGAqNPRRHOKw5lcgcs5QvHeOM,1142
|
|
|
89
89
|
datahub/cli/telemetry.py,sha256=xw3SiAn2je48Qv4kXPYN5EPVKHWEWZc2LGoF7UzGs8U,489
|
|
90
90
|
datahub/cli/timeline_cli.py,sha256=Wc_Mo7khFFHXgRSl2FgtvB8m0QhuCEhkpaFCIOPpHJE,7584
|
|
91
91
|
datahub/cli/specific/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
-
datahub/cli/specific/assertions_cli.py,sha256=
|
|
93
|
-
datahub/cli/specific/datacontract_cli.py,sha256=
|
|
92
|
+
datahub/cli/specific/assertions_cli.py,sha256=4YvlafrxBIUMmDSnWW9g7qwpuPRu4V4yqTDx0_jAthU,6555
|
|
93
|
+
datahub/cli/specific/datacontract_cli.py,sha256=7Ropg-EOn_n4dcttFDokpC07bbm0IzhR_e1z1AjSLAU,4062
|
|
94
94
|
datahub/cli/specific/dataproduct_cli.py,sha256=6jGdWisx7vxItYPOlKcjziSlyJF_268T5iytKjuhPlA,14951
|
|
95
95
|
datahub/cli/specific/dataset_cli.py,sha256=MaIr3PrE1NP6Q_O4CXHm-eyuPah6ypFEgLWP0r-tgBw,8463
|
|
96
96
|
datahub/cli/specific/file_loader.py,sha256=YMyv_evdKyHSft5Tm_kOcqJ4ALpRmMm54ZJAyl7Nxqs,773
|
|
@@ -148,7 +148,7 @@ datahub/ingestion/api/incremental_properties_helper.py,sha256=KzdxdrQtaMV2XMHfPs
|
|
|
148
148
|
datahub/ingestion/api/ingestion_job_checkpointing_provider_base.py,sha256=3lLdkkxVqE9MVc26cdXImPeWy16az5BwgcorWxeBV50,1759
|
|
149
149
|
datahub/ingestion/api/pipeline_run_listener.py,sha256=5uBP__LbMQxJ2utlf07cIzQINqPbUOKiZyOJta6a0og,713
|
|
150
150
|
datahub/ingestion/api/registry.py,sha256=LbdZr89465Lj7ptQRVB4vI1JR1igWABvQFj9-WX63bI,7454
|
|
151
|
-
datahub/ingestion/api/report.py,sha256=
|
|
151
|
+
datahub/ingestion/api/report.py,sha256=jdAfqkAn1tlwBJBmC_t0-6KzKhKBxO8N3y_NziyBXSU,17889
|
|
152
152
|
datahub/ingestion/api/report_helpers.py,sha256=WbUC1kQeaKqIagGV3XzfPmPs7slAT1mfNY4og2BH2A8,994
|
|
153
153
|
datahub/ingestion/api/sink.py,sha256=GZt48PV56FAhNoma-V5EwwRZvezhb40YH_zprm8_Yo0,4961
|
|
154
154
|
datahub/ingestion/api/source.py,sha256=uf0fNbiOy0bS_aKFOcNv6NvuZe0LSDIDdNza9hraP7s,21857
|
|
@@ -290,7 +290,7 @@ datahub/ingestion/source/data_lake_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-
|
|
|
290
290
|
datahub/ingestion/source/data_lake_common/config.py,sha256=qUk83B01hjuBKHvVz8SmXnVCy5eFj-2-2QLEOrAdbgk,359
|
|
291
291
|
datahub/ingestion/source/data_lake_common/data_lake_utils.py,sha256=IYr5y8vy_6CtMtITqzn6OqovzH1cpe1i30M-75PouXo,7768
|
|
292
292
|
datahub/ingestion/source/data_lake_common/object_store.py,sha256=i9Hgb8Ww23QD_jEjzj_2qxA8Nr56krnZfo1qyOWmH9M,23608
|
|
293
|
-
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=
|
|
293
|
+
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=mIwyuysba7mD_qupG1-ARlXrAcqAQU5Zjd_vHXIEdPY,23783
|
|
294
294
|
datahub/ingestion/source/datahub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
295
295
|
datahub/ingestion/source/datahub/config.py,sha256=bjR1U3F85FbtgqmLDW-f_4dQvuw5AsJQxdQlOUeHDUk,5126
|
|
296
296
|
datahub/ingestion/source/datahub/datahub_api_reader.py,sha256=hlKADVEPoTFiRGKqRsMF5mL4fSu_IrIW8Nx7LpEzvkM,2134
|
|
@@ -300,7 +300,7 @@ datahub/ingestion/source/datahub/datahub_source.py,sha256=mpBrHxf3sitdPZni5B5atl
|
|
|
300
300
|
datahub/ingestion/source/datahub/report.py,sha256=VHBfCbwFRzdLdB7hQG9ST4EiZxl_vBCU0XxGcZR6Xxs,940
|
|
301
301
|
datahub/ingestion/source/datahub/state.py,sha256=PZoT7sSK1wadVf5vN6phrgr7I6LL7ePP-EJjP1OO0bQ,3507
|
|
302
302
|
datahub/ingestion/source/dbt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
303
|
-
datahub/ingestion/source/dbt/dbt_cloud.py,sha256=
|
|
303
|
+
datahub/ingestion/source/dbt/dbt_cloud.py,sha256=ILkP6ui48VU8pClDQz6jaFR026gcF7lyUX4gt9im8Vg,18428
|
|
304
304
|
datahub/ingestion/source/dbt/dbt_common.py,sha256=3NcCYsJSDfC5j7ajC_Mr3MnA_sF9DTq1ka6ft3b0u6A,85997
|
|
305
305
|
datahub/ingestion/source/dbt/dbt_core.py,sha256=WVI2ZYXOMxgFzJnJqsqmEGS-5xdfiVIDsCb78lvSeQ0,24930
|
|
306
306
|
datahub/ingestion/source/dbt/dbt_tests.py,sha256=pOZJaP4VsbaE5j4qVlE_E3ifno_KQpidfGTvOi5fr6I,9839
|
|
@@ -328,7 +328,7 @@ datahub/ingestion/source/fivetran/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
|
328
328
|
datahub/ingestion/source/fivetran/config.py,sha256=00jc9srBZUQ18RSSCnHiOoJ4_F6I_rp--z-V7d9wXNY,9031
|
|
329
329
|
datahub/ingestion/source/fivetran/data_classes.py,sha256=ecdUJH5BEze0yv-uFpKWPNaNmV1gORDA2XMFk0zhcBw,595
|
|
330
330
|
datahub/ingestion/source/fivetran/fivetran.py,sha256=s8wcECtmuugUoZ0Zdthq0SIPpTLvziZXuhhUX9bJ5N4,14492
|
|
331
|
-
datahub/ingestion/source/fivetran/fivetran_log_api.py,sha256=
|
|
331
|
+
datahub/ingestion/source/fivetran/fivetran_log_api.py,sha256=PNzuykiiFTU8FhBIfUbW6udURZpz_35aq7rfffbpIfA,13010
|
|
332
332
|
datahub/ingestion/source/fivetran/fivetran_query.py,sha256=c1begMnLtWoLBmaKBiarpMZ6HTVAI6hDPKn26DYuMYI,5343
|
|
333
333
|
datahub/ingestion/source/gc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
334
334
|
datahub/ingestion/source/gc/datahub_gc.py,sha256=EXO-Stj6gGMLTSTbSBC-C3_zpjpQtFN9pAMWR95ma0I,12830
|
|
@@ -347,7 +347,7 @@ datahub/ingestion/source/grafana/grafana_api.py,sha256=pSbaHGPQ4HajCyVnvfEjl9zr2
|
|
|
347
347
|
datahub/ingestion/source/grafana/grafana_config.py,sha256=l1vLcd_mbWOC6G9Mr329bW2Tm__SG9SZjkJdoz7UzEE,3674
|
|
348
348
|
datahub/ingestion/source/grafana/grafana_source.py,sha256=tUYW0bXvnwhfBpSRQh4KobhOThXhezdH4hy2IPBkgag,21727
|
|
349
349
|
datahub/ingestion/source/grafana/lineage.py,sha256=qDWCiceOotVApOpcGhRK9OTqyRJIPqXcJi6CKnfK8z0,7178
|
|
350
|
-
datahub/ingestion/source/grafana/models.py,sha256=
|
|
350
|
+
datahub/ingestion/source/grafana/models.py,sha256=FpP7AtZv5_Ob3bbhHhujgvrVsgvpfye3TlAeTe0Jeak,4467
|
|
351
351
|
datahub/ingestion/source/grafana/report.py,sha256=LTRxjXYCYHwOaj1zrenCDAvFBE5U5tAv6Wh5LlfsgfE,2963
|
|
352
352
|
datahub/ingestion/source/grafana/types.py,sha256=Bz0-FIPBXHaBjfFHYGJhE20c2vYZwAsXr70MVGjSu6s,443
|
|
353
353
|
datahub/ingestion/source/hex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -547,7 +547,7 @@ datahub/ingestion/source/state_provider/datahub_ingestion_checkpointing_provider
|
|
|
547
547
|
datahub/ingestion/source/state_provider/file_ingestion_checkpointing_provider.py,sha256=DziD57PbHn2Tcy51tYXCG-GQgyTGMUxnkuzVS_xihFY,4079
|
|
548
548
|
datahub/ingestion/source/state_provider/state_provider_registry.py,sha256=SVq4mIyGNmLXE9OZx1taOiNPqDoQp03-Ot9rYnB5F3k,401
|
|
549
549
|
datahub/ingestion/source/tableau/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
550
|
-
datahub/ingestion/source/tableau/tableau.py,sha256=
|
|
550
|
+
datahub/ingestion/source/tableau/tableau.py,sha256=aadKU4hFzsD2zhaFysTReUyg6FOAGE_HtZjuoLsIy28,155885
|
|
551
551
|
datahub/ingestion/source/tableau/tableau_common.py,sha256=4cUm3E8wLfjLSjcAXXWDWVUXAEho_hbsQa2BzAF-vtM,27012
|
|
552
552
|
datahub/ingestion/source/tableau/tableau_constant.py,sha256=4ngrOwqxf4cgbLR3i0OKI4pUxmHMABKyywfhXQ0GazA,2592
|
|
553
553
|
datahub/ingestion/source/tableau/tableau_server_wrapper.py,sha256=nSyx9RzC6TCQDm-cTVJ657qT8iDwzk_8JMKpohhmOc4,1046
|
|
@@ -591,7 +591,7 @@ datahub/ingestion/transformer/add_dataset_schema_terms.py,sha256=ftoZ4DJE0lJTKnz
|
|
|
591
591
|
datahub/ingestion/transformer/add_dataset_tags.py,sha256=eyvQpb0hntSmaP9HSHcIiHLvLFtkEeX-BKmHVtuaF3Y,4737
|
|
592
592
|
datahub/ingestion/transformer/add_dataset_terms.py,sha256=F3DgVFJfm_Ofh4NOt7caKbVx4FQE-tOns17E0qDn43o,5799
|
|
593
593
|
datahub/ingestion/transformer/auto_helper_transformer.py,sha256=MuxoHr0_SPi8LpHbYYOYaEO8d-7XBu2zRn-PDnqrIHU,2843
|
|
594
|
-
datahub/ingestion/transformer/base_transformer.py,sha256=
|
|
594
|
+
datahub/ingestion/transformer/base_transformer.py,sha256=TQDkD-KNtGxb0xuAFfrF7X8FhYRTm53uMNhMzc5FZiM,12558
|
|
595
595
|
datahub/ingestion/transformer/dataset_domain.py,sha256=WWvATUs9Z59_m5F6ZUA5fktJ6OBWzrJuJ2VAjdmHrCI,9032
|
|
596
596
|
datahub/ingestion/transformer/dataset_domain_based_on_tags.py,sha256=HN3QapXNg2CTj54F4mY3f-XkAIB-rMu0mG7ThOCE5fI,3092
|
|
597
597
|
datahub/ingestion/transformer/dataset_transformer.py,sha256=dOK0oO6R6dbuxk5i5Za6hkzy8xCEpQxG8iKjXeIZKM4,5305
|
|
@@ -626,12 +626,12 @@ datahub/lite/lite_registry.py,sha256=bpH0kasP-LtwwUFNA2QsOIehfekAYfJtN-AkQLmSWnw
|
|
|
626
626
|
datahub/lite/lite_server.py,sha256=p9Oa2nNs65mqcssSIVOr7VOzWqfVstz6ZQEdT4f82S0,1949
|
|
627
627
|
datahub/lite/lite_util.py,sha256=G0LQHKkyEb1pc_q183g6hflShclGx7kikgMaOxtVVcs,4545
|
|
628
628
|
datahub/metadata/__init__.py,sha256=AjhXPjI6cnpdcrBRrE5gOWo15vv2TTl2ctU4UAnUN7A,238
|
|
629
|
-
datahub/metadata/_internal_schema_classes.py,sha256=
|
|
630
|
-
datahub/metadata/schema.avsc,sha256=
|
|
629
|
+
datahub/metadata/_internal_schema_classes.py,sha256=fziGi3e9XS6oX1Zybgltkp5fVLGEgRluZGblASjn7rU,1051205
|
|
630
|
+
datahub/metadata/schema.avsc,sha256=OBrzAfnlzwBkg3zgALyHpWETEC-H-OmE8E0VedKjoZ4,740578
|
|
631
631
|
datahub/metadata/schema_classes.py,sha256=tPT8iHCak4IsZi_oL0nirbPpI8ETTPTZzapqLRpeKU4,1326
|
|
632
632
|
datahub/metadata/urns.py,sha256=nfrCTExR-k2P9w272WVtWSN3xW1VUJngPwP3xnvULjU,1217
|
|
633
633
|
datahub/metadata/_urns/__init__.py,sha256=cOF3GHMDgPhmbLKbN02NPpuLGHSu0qNgQyBRv08eqF0,243
|
|
634
|
-
datahub/metadata/_urns/urn_defs.py,sha256=
|
|
634
|
+
datahub/metadata/_urns/urn_defs.py,sha256=S-xwY4JrGqT-wMusm2qe3X70oHiuV5yGTEzwACeyqAU,143154
|
|
635
635
|
datahub/metadata/com/__init__.py,sha256=gsAIuTxzfJdI7a9ybZlgMIHMAYksM1SxGxXjtySgKSc,202
|
|
636
636
|
datahub/metadata/com/linkedin/__init__.py,sha256=gsAIuTxzfJdI7a9ybZlgMIHMAYksM1SxGxXjtySgKSc,202
|
|
637
637
|
datahub/metadata/com/linkedin/events/__init__.py,sha256=s_dR0plZF-rOxxIbE8ojekJqwiHzl2WYR-Z3kW6kKS0,298
|
|
@@ -808,7 +808,7 @@ datahub/metadata/schemas/DatasetKey.avsc,sha256=51gyLo-nOcAGchs9pGAfv2vCpWR2y0hN
|
|
|
808
808
|
datahub/metadata/schemas/DatasetProfile.avsc,sha256=3ZCU9JD6l2razACp0AY6LLMgnkMTj6D_5Xk9np6WWRM,9965
|
|
809
809
|
datahub/metadata/schemas/DatasetProperties.avsc,sha256=DFJn75feqaoQk84zin_o_lqsFFhqkwya5LGC5LLJXbU,4209
|
|
810
810
|
datahub/metadata/schemas/DatasetUpstreamLineage.avsc,sha256=PjAWPbsqwH7FjX2kFDy0dE6ENYOwRynH9vJerWisr2A,5365
|
|
811
|
-
datahub/metadata/schemas/DatasetUsageStatistics.avsc,sha256=
|
|
811
|
+
datahub/metadata/schemas/DatasetUsageStatistics.avsc,sha256=jgF1u31kP1XAnnV2B0X8cpCczWZiPEDKHxhwW2ZzHjc,7228
|
|
812
812
|
datahub/metadata/schemas/Deprecation.avsc,sha256=p8SBIuKP3XVGeaBI7rROpLNACuoX8eMLRlZz8lGOYV8,1354
|
|
813
813
|
datahub/metadata/schemas/DisplayProperties.avsc,sha256=MTa_g2s0roxNFFggWU8rslUH3UFe3xe11uUXyh0Go_I,1732
|
|
814
814
|
datahub/metadata/schemas/Documentation.avsc,sha256=9vIJG9B08FFrC3y5c1XVaT5U3c-b5sOAc5foUxMnyCs,4836
|
|
@@ -961,7 +961,7 @@ datahub/sdk/main_client.py,sha256=jxe_59hu68F95aw4c9DsaAA108D5NuJtyu2CatAMAZU,56
|
|
|
961
961
|
datahub/sdk/mlmodel.py,sha256=cO5R8BYVljmQ0w33RIOuZmj4nq8OJCDVAZGTQI6YFS8,12628
|
|
962
962
|
datahub/sdk/mlmodelgroup.py,sha256=wlZZHny0UORpF0fRYuVkWLSQwIHX_fWl5lPb1NKR6dM,8194
|
|
963
963
|
datahub/sdk/resolver_client.py,sha256=nKMAZJt2tRSGfKSzoREIh43PXqjM3umLiYkYHJjo1io,3243
|
|
964
|
-
datahub/sdk/search_client.py,sha256=
|
|
964
|
+
datahub/sdk/search_client.py,sha256=f2L_aOy-pPB9Mk7WdLSJ6Htp3OT4cEgDIrqnCweNtM8,3592
|
|
965
965
|
datahub/sdk/search_filters.py,sha256=g0Hj2kxq797eB3oouIiQmSAQ5Z0gPqUN6l0UbTggWiI,17785
|
|
966
966
|
datahub/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
967
967
|
datahub/secret/datahub_secret_store.py,sha256=xyNAZY62d6KSz_kYF9wN7RDMLvNhu2ayOzcYvubOX1E,2519
|
|
@@ -971,13 +971,14 @@ datahub/secret/secret_store.py,sha256=2VP_Vd336Cy7C-2kwp4rx8MAqtYgtwv8XyzzNTXE5x
|
|
|
971
971
|
datahub/specific/__init__.py,sha256=r5RYM5mDnskLzin3vc87HV-9GSz3P6uQw8AlsN14LaI,88
|
|
972
972
|
datahub/specific/chart.py,sha256=EUIRzcYNTs6tXoxVwYjJfD74Jw80kAjXyySjjEoTfw4,6685
|
|
973
973
|
datahub/specific/dashboard.py,sha256=3AsXZ1Cp03uaTHsOmJqEiXzJjZUBgDbX-zmgwMw908o,11514
|
|
974
|
-
datahub/specific/datajob.py,sha256=
|
|
974
|
+
datahub/specific/datajob.py,sha256=ZXB39I8AiUg0ll0inFDvTv53LxDbgwgsNquXQ2lDhtw,14371
|
|
975
975
|
datahub/specific/dataproduct.py,sha256=xJbVEACTbwQq7FJO1DAtjCERu3KLU9satU5nwZ5O390,3015
|
|
976
|
-
datahub/specific/dataset.py,sha256=
|
|
976
|
+
datahub/specific/dataset.py,sha256=x_7BPoVN59t48sVUYFh3kVeZq8-k8H_aZcEwc2M43Yo,9313
|
|
977
977
|
datahub/specific/form.py,sha256=hbxmmBWHma0d4NCZEGR6Nr6R-5A5gYgl1mmkGgnM97o,3834
|
|
978
978
|
datahub/specific/structured_property.py,sha256=NZ2yppDgtqrH04Wn3_m5IupyLeWoBCMygyr3nEi1A3o,4038
|
|
979
979
|
datahub/specific/aspect_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
980
980
|
datahub/specific/aspect_helpers/custom_properties.py,sha256=a7w4Ml3mEFX31TwZLEpPE_-wrjQ0tGmw9bbq1DBjTf8,2247
|
|
981
|
+
datahub/specific/aspect_helpers/fine_grained_lineage.py,sha256=gXpP26gvNaoOqJCxunaO4ZHicmqC1h-hGFq5G87bGTI,2731
|
|
981
982
|
datahub/specific/aspect_helpers/ownership.py,sha256=rNYiJSqb_FJQhFRSIQScg4mfxgYhPvjeaYyvutY6CN0,1861
|
|
982
983
|
datahub/specific/aspect_helpers/structured_properties.py,sha256=EVnFS025r-PG5PAC7VENVJO-JvDYif2VeYonsC3Z8m8,2255
|
|
983
984
|
datahub/specific/aspect_helpers/tags.py,sha256=YHcKfRaIvv12wcmfMc8-Dk6gf6xIvJedkn451uBuz-Y,1254
|
|
@@ -1046,7 +1047,7 @@ datahub/utilities/sample_data.py,sha256=DMwN3yAqJPrF_rZF6CU0_iLSNBFfsAQ-no0KQhgw
|
|
|
1046
1047
|
datahub/utilities/search_utils.py,sha256=BdZfixXrB6lcD_ec6pCotGtVKQ4ekTtmaZDFGyeZfBg,9683
|
|
1047
1048
|
datahub/utilities/sentinels.py,sha256=p299J2YR62K2Mbuy-2lrGH4BnF9dkRqGo59Wub0hYV4,417
|
|
1048
1049
|
datahub/utilities/serialized_lru_cache.py,sha256=R9enyN5BlatknX4KFq9euYc2yiE1rRMucPbAHg09Goc,3247
|
|
1049
|
-
datahub/utilities/server_config_util.py,sha256=
|
|
1050
|
+
datahub/utilities/server_config_util.py,sha256=_mkscT9I1F3JwLR8EylBjKu1p_aRKqMkUWQb8IRpr_s,9945
|
|
1050
1051
|
datahub/utilities/sql_formatter.py,sha256=tYXIsKjKmpKh0JXGxeAPrHkUWYd1SwJNLjUZsfQP2h0,1016
|
|
1051
1052
|
datahub/utilities/sqlalchemy_query_combiner.py,sha256=ZWGPG5mrKuumSSEQMrUSjUjSKTaDXw71KWI7Ytnv2xE,15027
|
|
1052
1053
|
datahub/utilities/sqlalchemy_type_converter.py,sha256=H4S4xnnyPozDBHFhBh4rjjoXa5novFzYIUBJy2KSrVc,9805
|
|
@@ -1101,8 +1102,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
|
|
|
1101
1102
|
datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
|
|
1102
1103
|
datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
|
|
1103
1104
|
datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
|
|
1104
|
-
acryl_datahub-1.2.0.
|
|
1105
|
-
acryl_datahub-1.2.0.
|
|
1106
|
-
acryl_datahub-1.2.0.
|
|
1107
|
-
acryl_datahub-1.2.0.
|
|
1108
|
-
acryl_datahub-1.2.0.
|
|
1105
|
+
acryl_datahub-1.2.0.4rc4.dist-info/METADATA,sha256=8kdPkPvnS6pQ9t36mC4p2p6QgwGcuVRSkFwowm6Y0zk,182056
|
|
1106
|
+
acryl_datahub-1.2.0.4rc4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1107
|
+
acryl_datahub-1.2.0.4rc4.dist-info/entry_points.txt,sha256=bnGf6eX9UhiW8yVHtt6MJCVcmLErvrVQxTJAayA-PKc,9885
|
|
1108
|
+
acryl_datahub-1.2.0.4rc4.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
|
|
1109
|
+
acryl_datahub-1.2.0.4rc4.dist-info/RECORD,,
|
datahub/_version.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
"""
|
|
2
|
+
DEPRECATED: This assertions CLI is no longer supported and will be removed in a future version.
|
|
3
|
+
Please use alternative methods for managing assertions in DataHub.
|
|
4
|
+
"""
|
|
5
|
+
|
|
1
6
|
import logging
|
|
2
7
|
import os
|
|
3
8
|
from pathlib import Path
|
|
@@ -26,7 +31,18 @@ REPORT_FILE_NAME = "compile_report.json"
|
|
|
26
31
|
|
|
27
32
|
@click.group(cls=DefaultGroup, default="upsert")
|
|
28
33
|
def assertions() -> None:
|
|
29
|
-
"""A group of commands to interact with the Assertion entity in DataHub.
|
|
34
|
+
"""A group of commands to interact with the Assertion entity in DataHub.
|
|
35
|
+
|
|
36
|
+
⚠️ DEPRECATED: This assertions CLI is no longer supported and will be removed
|
|
37
|
+
in a future version. Please use alternative methods for managing assertions in DataHub.
|
|
38
|
+
"""
|
|
39
|
+
click.secho(
|
|
40
|
+
"⚠️ WARNING: The assertions CLI is deprecated and no longer supported. "
|
|
41
|
+
"It may be removed in a future version. Please use alternative methods for managing assertions in DataHub.",
|
|
42
|
+
fg="yellow",
|
|
43
|
+
bold=True,
|
|
44
|
+
err=True,
|
|
45
|
+
)
|
|
30
46
|
pass
|
|
31
47
|
|
|
32
48
|
|
|
@@ -34,7 +50,16 @@ def assertions() -> None:
|
|
|
34
50
|
@click.option("-f", "--file", required=True, type=click.Path(exists=True))
|
|
35
51
|
@upgrade.check_upgrade
|
|
36
52
|
def upsert(file: str) -> None:
|
|
37
|
-
"""Upsert (create or update) a set of assertions in DataHub.
|
|
53
|
+
"""Upsert (create or update) a set of assertions in DataHub.
|
|
54
|
+
|
|
55
|
+
⚠️ DEPRECATED: This command is deprecated and no longer supported.
|
|
56
|
+
"""
|
|
57
|
+
click.secho(
|
|
58
|
+
"⚠️ WARNING: The 'upsert' command is deprecated and no longer supported.",
|
|
59
|
+
fg="yellow",
|
|
60
|
+
bold=True,
|
|
61
|
+
err=True,
|
|
62
|
+
)
|
|
38
63
|
|
|
39
64
|
assertions_spec: AssertionsConfigSpec = AssertionsConfigSpec.from_yaml(file)
|
|
40
65
|
|
|
@@ -78,7 +103,15 @@ def compile(
|
|
|
78
103
|
In future, we may introduce separate command to automatically apply these compiled changes
|
|
79
104
|
in assertion platform. Currently, generated result artifacts are stored in target folder
|
|
80
105
|
unless another folder is specified using option `--output-to <folder>`.
|
|
106
|
+
|
|
107
|
+
⚠️ DEPRECATED: This command is deprecated and no longer supported.
|
|
81
108
|
"""
|
|
109
|
+
click.secho(
|
|
110
|
+
"⚠️ WARNING: The 'compile' command is deprecated and no longer supported.",
|
|
111
|
+
fg="yellow",
|
|
112
|
+
bold=True,
|
|
113
|
+
err=True,
|
|
114
|
+
)
|
|
82
115
|
|
|
83
116
|
if platform not in ASSERTION_PLATFORMS:
|
|
84
117
|
click.secho(
|
|
@@ -146,3 +179,5 @@ def extras_list_to_dict(extras: List[str]) -> Dict[str, str]:
|
|
|
146
179
|
# Later:
|
|
147
180
|
# 3. execute compiled assertions on assertion platform (Later, requires connection details to platform),
|
|
148
181
|
# 4. cleanup assertions from assertion platform (generate artifacts. optionally execute)
|
|
182
|
+
#
|
|
183
|
+
# NOTE: This entire assertions CLI is deprecated and these TODOs will not be implemented.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import warnings
|
|
2
3
|
from typing import Optional
|
|
3
4
|
|
|
4
5
|
import click
|
|
@@ -14,15 +15,52 @@ logger = logging.getLogger(__name__)
|
|
|
14
15
|
|
|
15
16
|
@click.group(cls=DefaultGroup, default="upsert")
|
|
16
17
|
def datacontract() -> None:
|
|
17
|
-
"""
|
|
18
|
-
|
|
18
|
+
"""
|
|
19
|
+
A group of commands to interact with the DataContract entity in DataHub.
|
|
20
|
+
|
|
21
|
+
WARNING: This CLI is DEPRECATED and no longer supported.
|
|
22
|
+
Please migrate to alternative data contract solutions.
|
|
23
|
+
"""
|
|
24
|
+
# Issue deprecation warning
|
|
25
|
+
warnings.warn(
|
|
26
|
+
"The datacontract CLI is deprecated and no longer supported. "
|
|
27
|
+
"Please migrate to alternative data contract solutions.",
|
|
28
|
+
DeprecationWarning,
|
|
29
|
+
stacklevel=2,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Log deprecation message for runtime visibility
|
|
33
|
+
logger.warning(
|
|
34
|
+
"DEPRECATED: The datacontract CLI is no longer supported and will be removed in a future version. "
|
|
35
|
+
"Please migrate to alternative data contract solutions."
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# Display deprecation message to user
|
|
39
|
+
click.secho(
|
|
40
|
+
"⚠️ WARNING: This datacontract CLI is DEPRECATED and no longer supported.",
|
|
41
|
+
fg="yellow",
|
|
42
|
+
bold=True,
|
|
43
|
+
)
|
|
44
|
+
click.secho("Please migrate to alternative data contract solutions.", fg="yellow")
|
|
19
45
|
|
|
20
46
|
|
|
21
47
|
@datacontract.command()
|
|
22
48
|
@click.option("-f", "--file", required=True, type=click.Path(exists=True))
|
|
23
49
|
@upgrade.check_upgrade
|
|
24
50
|
def upsert(file: str) -> None:
|
|
25
|
-
"""
|
|
51
|
+
"""
|
|
52
|
+
Upsert (create or update) a Data Contract in DataHub.
|
|
53
|
+
|
|
54
|
+
WARNING: This command is DEPRECATED and no longer supported.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
click.secho(
|
|
58
|
+
"⚠️ WARNING: The 'upsert' command is deprecated and no longer supported.",
|
|
59
|
+
fg="yellow",
|
|
60
|
+
bold=True,
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
logger.warning("DEPRECATED: datacontract upsert command is no longer supported")
|
|
26
64
|
|
|
27
65
|
data_contract: DataContract = DataContract.from_yaml(file)
|
|
28
66
|
urn = data_contract.urn
|
|
@@ -59,7 +97,19 @@ def upsert(file: str) -> None:
|
|
|
59
97
|
@click.option("--hard/--soft", required=False, is_flag=True, default=False)
|
|
60
98
|
@upgrade.check_upgrade
|
|
61
99
|
def delete(urn: Optional[str], file: Optional[str], hard: bool) -> None:
|
|
62
|
-
"""
|
|
100
|
+
"""
|
|
101
|
+
Delete a Data Contract in DataHub. Defaults to a soft-delete. Use --hard to completely erase metadata.
|
|
102
|
+
|
|
103
|
+
WARNING: This command is DEPRECATED and no longer supported.
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
click.secho(
|
|
107
|
+
"⚠️ WARNING: The 'delete' command is deprecated and no longer supported.",
|
|
108
|
+
fg="yellow",
|
|
109
|
+
bold=True,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
logger.warning("DEPRECATED: datacontract delete command is no longer supported")
|
|
63
113
|
|
|
64
114
|
if not urn:
|
|
65
115
|
if not file:
|
datahub/ingestion/api/report.py
CHANGED
|
@@ -186,11 +186,19 @@ class ExamplesReport(Report, Closeable):
|
|
|
186
186
|
aspects: Dict[str, Dict[str, int]] = field(
|
|
187
187
|
default_factory=lambda: defaultdict(lambda: defaultdict(int))
|
|
188
188
|
)
|
|
189
|
+
# This counts existence of aspects for each entity/subtype
|
|
190
|
+
# This is used for the UI to calculate %age of entities with the aspect
|
|
189
191
|
aspects_by_subtypes: Dict[str, Dict[str, Dict[str, int]]] = field(
|
|
190
192
|
default_factory=lambda: defaultdict(
|
|
191
193
|
lambda: defaultdict(lambda: defaultdict(int))
|
|
192
194
|
)
|
|
193
195
|
)
|
|
196
|
+
# This counts all aspects for each entity/subtype
|
|
197
|
+
aspects_by_subtypes_full_count: Dict[str, Dict[str, Dict[str, int]]] = field(
|
|
198
|
+
default_factory=lambda: defaultdict(
|
|
199
|
+
lambda: defaultdict(lambda: defaultdict(int))
|
|
200
|
+
)
|
|
201
|
+
)
|
|
194
202
|
samples: Dict[str, Dict[str, List[str]]] = field(
|
|
195
203
|
default_factory=lambda: defaultdict(lambda: defaultdict(list))
|
|
196
204
|
)
|
|
@@ -399,6 +407,9 @@ class ExamplesReport(Report, Closeable):
|
|
|
399
407
|
entity_subtype_aspect_counts: Dict[str, Dict[str, Dict[str, int]]] = (
|
|
400
408
|
defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
|
|
401
409
|
)
|
|
410
|
+
entity_subtype_aspect_counts_exist: Dict[str, Dict[str, Dict[str, int]]] = (
|
|
411
|
+
defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
|
|
412
|
+
)
|
|
402
413
|
for row in self._file_based_dict.sql_query(query):
|
|
403
414
|
entity_type = row["entityType"]
|
|
404
415
|
sub_type = row["subTypes"]
|
|
@@ -410,15 +421,23 @@ class ExamplesReport(Report, Closeable):
|
|
|
410
421
|
entity_subtype_aspect_counts[entity_type][sub_type][aspect] += (
|
|
411
422
|
aspect_count * count
|
|
412
423
|
)
|
|
424
|
+
entity_subtype_aspect_counts_exist[entity_type][sub_type][aspect] += (
|
|
425
|
+
count
|
|
426
|
+
)
|
|
413
427
|
|
|
414
428
|
self.aspects.clear()
|
|
415
429
|
self.aspects_by_subtypes.clear()
|
|
416
|
-
|
|
430
|
+
self.aspects_by_subtypes_full_count.clear()
|
|
417
431
|
for entity_type, subtype_counts in entity_subtype_aspect_counts.items():
|
|
418
432
|
for sub_type, aspect_counts in subtype_counts.items():
|
|
419
433
|
for aspect, count in aspect_counts.items():
|
|
420
434
|
self.aspects[entity_type][aspect] += count
|
|
421
|
-
|
|
435
|
+
self.aspects_by_subtypes_full_count[entity_type][sub_type] = dict(
|
|
436
|
+
aspect_counts
|
|
437
|
+
)
|
|
438
|
+
|
|
439
|
+
for entity_type, subtype_counts in entity_subtype_aspect_counts_exist.items():
|
|
440
|
+
for sub_type, aspect_counts in subtype_counts.items():
|
|
422
441
|
self.aspects_by_subtypes[entity_type][sub_type] = dict(aspect_counts)
|
|
423
442
|
|
|
424
443
|
self.samples.clear()
|
|
@@ -455,7 +455,11 @@ class PathSpec(ConfigModel):
|
|
|
455
455
|
partition = partition.rsplit("/", 1)[0]
|
|
456
456
|
for partition_key in partition.split("/"):
|
|
457
457
|
if partition_key.find("=") != -1:
|
|
458
|
-
|
|
458
|
+
key_value = partition_key.split(
|
|
459
|
+
"=", 1
|
|
460
|
+
) # Split into at most 2 parts
|
|
461
|
+
if len(key_value) == 2:
|
|
462
|
+
partition_keys.append((key_value[0], key_value[1]))
|
|
459
463
|
else:
|
|
460
464
|
partition_split = partition.rsplit("/", 1)
|
|
461
465
|
if len(partition_split) == 1:
|
|
@@ -370,9 +370,12 @@ class DBTCloudSource(DBTSourceBase, TestableSource):
|
|
|
370
370
|
name = node["alias"]
|
|
371
371
|
|
|
372
372
|
comment = node.get("comment", "")
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
373
|
+
|
|
374
|
+
# In dbt sources, there are two types of descriptions:
|
|
375
|
+
# - description: table-level description (specific to the source table)
|
|
376
|
+
# - sourceDescription: schema-level description (describes the overall source schema)
|
|
377
|
+
# The table-level description should take precedence since it's more specific.
|
|
378
|
+
description = node["description"] or node.get("sourceDescription", "")
|
|
376
379
|
|
|
377
380
|
if node["resourceType"] == "model":
|
|
378
381
|
materialization = node["materializedType"]
|
|
@@ -69,9 +69,10 @@ class FivetranLogAPI:
|
|
|
69
69
|
fivetran_log_query.set_schema(bigquery_destination_config.dataset)
|
|
70
70
|
|
|
71
71
|
# The "database" should be the BigQuery project name.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
result = engine.execute("SELECT @@project_id").fetchone()
|
|
73
|
+
if result is None:
|
|
74
|
+
raise ValueError("Failed to retrieve BigQuery project ID")
|
|
75
|
+
fivetran_log_database = result[0]
|
|
75
76
|
else:
|
|
76
77
|
raise ConfigurationError(
|
|
77
78
|
f"Destination platform '{destination_platform}' is not yet supported."
|
|
@@ -12,6 +12,7 @@ from typing import Any, Dict, List, Optional
|
|
|
12
12
|
|
|
13
13
|
from pydantic import BaseModel, Field
|
|
14
14
|
|
|
15
|
+
from datahub.configuration.pydantic_migration_helpers import PYDANTIC_VERSION_2
|
|
15
16
|
from datahub.emitter.mcp_builder import ContainerKey
|
|
16
17
|
|
|
17
18
|
# Grafana-specific type definitions for better type safety
|
|
@@ -106,6 +107,11 @@ class Folder(BaseModel):
|
|
|
106
107
|
title: str
|
|
107
108
|
description: Optional[str] = ""
|
|
108
109
|
|
|
110
|
+
if PYDANTIC_VERSION_2:
|
|
111
|
+
from pydantic import ConfigDict
|
|
112
|
+
|
|
113
|
+
model_config = ConfigDict(coerce_numbers_to_str=True) # type: ignore
|
|
114
|
+
|
|
109
115
|
|
|
110
116
|
class FolderKey(ContainerKey):
|
|
111
117
|
"""Key for identifying a Grafana folder."""
|
|
@@ -1184,7 +1184,7 @@ class TableauSiteSource:
|
|
|
1184
1184
|
self.report.warning(
|
|
1185
1185
|
title="Incomplete project hierarchy",
|
|
1186
1186
|
message="Project details missing. Child projects will be ingested without reference to their parent project. We generally need Site Administrator Explorer permissions to extract the complete project hierarchy.",
|
|
1187
|
-
context=f"Missing {project.parent_id}, referenced by {project.id} {project.
|
|
1187
|
+
context=f"Missing {project.parent_id}, referenced by {project.id} {project.name}",
|
|
1188
1188
|
)
|
|
1189
1189
|
project.parent_id = None
|
|
1190
1190
|
|
|
@@ -281,11 +281,14 @@ class BaseTransformer(Transformer, metaclass=ABCMeta):
|
|
|
281
281
|
)
|
|
282
282
|
)
|
|
283
283
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
284
|
+
if mcp.entityUrn:
|
|
285
|
+
record_metadata = _update_work_unit_id(
|
|
286
|
+
envelope=envelope,
|
|
287
|
+
aspect_name=mcp.aspect.get_aspect_name(), # type: ignore
|
|
288
|
+
urn=mcp.entityUrn,
|
|
289
|
+
)
|
|
290
|
+
else:
|
|
291
|
+
record_metadata = envelope.metadata.copy()
|
|
289
292
|
|
|
290
293
|
yield RecordEnvelope(
|
|
291
294
|
record=mcp,
|