acryl-datahub 1.0.0.1rc5__py3-none-any.whl → 1.0.0.1rc6__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.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/METADATA +2578 -2578
- {acryl_datahub-1.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/RECORD +24 -24
- datahub/_version.py +1 -1
- datahub/cli/specific/dataset_cli.py +26 -10
- datahub/emitter/mcp_builder.py +8 -0
- datahub/emitter/rest_emitter.py +13 -5
- datahub/ingestion/graph/client.py +2 -2
- datahub/ingestion/sink/datahub_rest.py +2 -2
- datahub/ingestion/source/common/subtypes.py +1 -0
- datahub/ingestion/source/iceberg/iceberg.py +159 -102
- datahub/ingestion/source/iceberg/iceberg_profiler.py +21 -18
- datahub/ingestion/source/powerbi/config.py +31 -4
- datahub/ingestion/source/powerbi/m_query/data_classes.py +1 -0
- datahub/ingestion/source/powerbi/m_query/pattern_handler.py +111 -10
- datahub/ingestion/source/powerbi/m_query/resolver.py +10 -0
- datahub/ingestion/source/powerbi/powerbi.py +12 -1
- datahub/ingestion/source/sigma/config.py +3 -4
- datahub/ingestion/source/sigma/sigma.py +10 -6
- datahub/ingestion/source/sql/oracle.py +51 -4
- datahub/ingestion/source/usage/usage_common.py +0 -65
- {acryl_datahub-1.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.0.0.1rc5.dist-info → acryl_datahub-1.0.0.1rc6.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
acryl_datahub-1.0.0.
|
|
1
|
+
acryl_datahub-1.0.0.1rc6.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=7kPZA7tlu74CuyNJP7xcQUj0ju3f89-XcI4tNSrX7u0,323
|
|
5
5
|
datahub/entrypoints.py,sha256=2TYgHhs3sCxJlojIHjqfxzt3_ImPwPzq4vBtsUuMqu4,8885
|
|
6
6
|
datahub/errors.py,sha256=bwtiNzFdVFze0IVKDEXQutkwk5j7cZkfXCUYCZIDSYg,565
|
|
7
7
|
datahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -86,7 +86,7 @@ datahub/cli/specific/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
|
86
86
|
datahub/cli/specific/assertions_cli.py,sha256=q0ODpyWS3LVR8UbF3NM6KRisabodJ0UUwyPty9a8AIk,5375
|
|
87
87
|
datahub/cli/specific/datacontract_cli.py,sha256=IkBovwuPT5jNB8X-8AQJRO4C9cFSNm1at8v4YctLFgQ,2531
|
|
88
88
|
datahub/cli/specific/dataproduct_cli.py,sha256=wSksU4xjGvAZJiiI7rSyjSItTu72oBPiXZ0-UL81zn0,15091
|
|
89
|
-
datahub/cli/specific/dataset_cli.py,sha256=
|
|
89
|
+
datahub/cli/specific/dataset_cli.py,sha256=SYxhGLzv8ZClTiE3rZE99blxh15ZMyQCQqpJWx9SRKc,8570
|
|
90
90
|
datahub/cli/specific/file_loader.py,sha256=YMyv_evdKyHSft5Tm_kOcqJ4ALpRmMm54ZJAyl7Nxqs,773
|
|
91
91
|
datahub/cli/specific/forms_cli.py,sha256=OLVeG8NtK1eDBuUKCT5Ald35np8__f8mLzbZM_zUfWU,1484
|
|
92
92
|
datahub/cli/specific/group_cli.py,sha256=xPUYk48VbVXLMj-z9VNW0RZzXOe4rQsc2jLwSOGCoec,1967
|
|
@@ -122,11 +122,11 @@ datahub/emitter/generic_emitter.py,sha256=i37ZFm9VR_tmiZm9kIypEkQEB_cLKbzj_tJvVi
|
|
|
122
122
|
datahub/emitter/kafka_emitter.py,sha256=Uix1W1WaXF8VqUTUfzdRZKca2XrR1w50Anx2LVkROlc,5822
|
|
123
123
|
datahub/emitter/mce_builder.py,sha256=i-iLLdnuy7h1JrzwC2sCtQthbso-cNj1uijOQZKHbeA,16717
|
|
124
124
|
datahub/emitter/mcp.py,sha256=hAAYziDdkwjazQU0DtWMbQWY8wS09ACrKJbqxoWXdgc,9637
|
|
125
|
-
datahub/emitter/mcp_builder.py,sha256=
|
|
125
|
+
datahub/emitter/mcp_builder.py,sha256=JyAC8obvkf6ZpINJ8I2p-Ofr52-tuoQBDbxp-bhjyrM,11871
|
|
126
126
|
datahub/emitter/mcp_patch_builder.py,sha256=u7cpW6DkiN7KpLapmMaXgL_FneoN69boxiANbVgMdSI,4564
|
|
127
127
|
datahub/emitter/request_helper.py,sha256=HpI9a9W0TzoVbrs584rF8P8w-IT_iKLmvYmO_6IHhXs,1008
|
|
128
128
|
datahub/emitter/response_helper.py,sha256=h2hrZYiv4xfauD_lHPW_fN_AV8KhWNM4CVd-Lat2vT0,4608
|
|
129
|
-
datahub/emitter/rest_emitter.py,sha256=
|
|
129
|
+
datahub/emitter/rest_emitter.py,sha256=PzZkt0JlCnexJgqzYQxSQgMcHj-qDg8lIsmhUn4GPfU,30631
|
|
130
130
|
datahub/emitter/serialization_helper.py,sha256=q12Avmf70Vy4ttQGMJoTKlE5EsybMKNg2w3MQeZiHvk,3652
|
|
131
131
|
datahub/emitter/sql_parsing_builder.py,sha256=Cr5imZrm3dYDSCACt5MFscgHCtVbHTD6IjUmsvsKoEs,11991
|
|
132
132
|
datahub/emitter/synchronized_file_emitter.py,sha256=s4ATuxalI4GDAkrZTaGSegxBdvvNPZ9jRSdtElU0kNs,1805
|
|
@@ -171,7 +171,7 @@ datahub/ingestion/glossary/classifier.py,sha256=daLxnVv_JlfB_jBOxH5LrU_xQRndrsGo
|
|
|
171
171
|
datahub/ingestion/glossary/classifier_registry.py,sha256=yFOYLQhDgCLqXYMG3L1BquXafeLcZDcmp8meyw6k9ts,307
|
|
172
172
|
datahub/ingestion/glossary/datahub_classifier.py,sha256=O7wm6gQT1Jf2QSKdWjJQbS5oSzJwplXzfza26Gdq5Mg,7555
|
|
173
173
|
datahub/ingestion/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
174
|
-
datahub/ingestion/graph/client.py,sha256=
|
|
174
|
+
datahub/ingestion/graph/client.py,sha256=791U-QMJXG3_RuNiQ4ennQ6NsOPQToSeKELHbncwzIQ,65573
|
|
175
175
|
datahub/ingestion/graph/config.py,sha256=_oha8Je7P80ZmrkZUAaRHyYbdMmTkMI5JkYjEP2Ri1Q,751
|
|
176
176
|
datahub/ingestion/graph/connections.py,sha256=9462L0ZWGKURyypAln25eMPhK3pcufBar9tNDoqspXs,741
|
|
177
177
|
datahub/ingestion/graph/entity_versioning.py,sha256=nrcNz0Qm6kpE6oTu_mrYUQDx14KPspBTc6R9SyFUY6c,6901
|
|
@@ -190,7 +190,7 @@ datahub/ingestion/sink/blackhole.py,sha256=-jYcWo4i8q7312bCIoHrGr7nT9JdPvA7c4jvS
|
|
|
190
190
|
datahub/ingestion/sink/console.py,sha256=TZfhA0Ec2eNCrMH7RRy2JOdUE-U-hkoIQrPm1CmKLQs,591
|
|
191
191
|
datahub/ingestion/sink/datahub_kafka.py,sha256=_cjuXu5I6G0zJ2UK7hMbaKjMPZXeIwRMgm7CVeTiNtc,2578
|
|
192
192
|
datahub/ingestion/sink/datahub_lite.py,sha256=7u2aWm7ENLshKHl-PkjJg6Mrw4bWs8sTfKIBz4mm8Ak,1879
|
|
193
|
-
datahub/ingestion/sink/datahub_rest.py,sha256=
|
|
193
|
+
datahub/ingestion/sink/datahub_rest.py,sha256=0te9kxDXAJU8A7wfEhDb4R9VDBYYDpy-YMPJZWEEKCM,12982
|
|
194
194
|
datahub/ingestion/sink/file.py,sha256=SxXJPJpkIGoaqRjCcSmj2ZE3xE4rLlBABBGwpTj5LWI,3271
|
|
195
195
|
datahub/ingestion/sink/sink_registry.py,sha256=JRBWx8qEYg0ubSTyhqwgSWctgxwyp6fva9GoN2LwBao,490
|
|
196
196
|
datahub/ingestion/source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -272,7 +272,7 @@ datahub/ingestion/source/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
272
272
|
datahub/ingestion/source/common/data_platforms.py,sha256=HhuP3YIEi2WpyKDjUU8RiM0a2qjHWQcvc8kcqub0cVo,548
|
|
273
273
|
datahub/ingestion/source/common/data_reader.py,sha256=XbSxiRTYrk6seOz0ZjVjzSpGvP8lEjmqXrNI4cdYYmQ,1819
|
|
274
274
|
datahub/ingestion/source/common/gcp_credentials_config.py,sha256=_NapGkAqZMbXNClLlmOfANS7U6rChhdthRX9s9iUv9k,2411
|
|
275
|
-
datahub/ingestion/source/common/subtypes.py,sha256=
|
|
275
|
+
datahub/ingestion/source/common/subtypes.py,sha256=UZca0ZQUQdoXr5Z-3AIUT9gIlPt-XwbMNjj7WEEiR_4,3107
|
|
276
276
|
datahub/ingestion/source/data_lake_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
277
277
|
datahub/ingestion/source/data_lake_common/config.py,sha256=qUk83B01hjuBKHvVz8SmXnVCy5eFj-2-2QLEOrAdbgk,359
|
|
278
278
|
datahub/ingestion/source/data_lake_common/data_lake_utils.py,sha256=nxu7osuzqxScPFc-1ODA2M1c_xPNPpRH_SMMU7zKOIE,6212
|
|
@@ -333,9 +333,9 @@ datahub/ingestion/source/hex/hex.py,sha256=DPpsi5e-sdUgbS0Okyvx1mvc00Adu47zA65oF
|
|
|
333
333
|
datahub/ingestion/source/hex/mapper.py,sha256=6dsGvvhPAOAbAG1ayxLwipgJGt1q7YanWYfMX3rZeiM,12603
|
|
334
334
|
datahub/ingestion/source/hex/model.py,sha256=hmMfOLEGZcKjwy2DW29OPf_9_Q_TesgnUTCen2br_fA,1471
|
|
335
335
|
datahub/ingestion/source/iceberg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
336
|
-
datahub/ingestion/source/iceberg/iceberg.py,sha256=
|
|
336
|
+
datahub/ingestion/source/iceberg/iceberg.py,sha256=i9o0ia2vQUGqoagN7GgsoaUlhjj9xKBNP-3ia2cMgHY,30762
|
|
337
337
|
datahub/ingestion/source/iceberg/iceberg_common.py,sha256=VGosqYPmn_j6GETSnDHZ8Ay1BVOedmx2x5LHxw16I3A,12278
|
|
338
|
-
datahub/ingestion/source/iceberg/iceberg_profiler.py,sha256=
|
|
338
|
+
datahub/ingestion/source/iceberg/iceberg_profiler.py,sha256=9iwp2vpQTi4OMbIKoDZV5lAdvjMR0ls6Llpck9grJIE,9875
|
|
339
339
|
datahub/ingestion/source/identity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
340
340
|
datahub/ingestion/source/identity/azure_ad.py,sha256=9Hrvm4CSfc02yjnPUsCYSY4Qw9fXPnDFWLexab0mcpc,28559
|
|
341
341
|
datahub/ingestion/source/identity/okta.py,sha256=jC21myJuMRTaPgj0OD9heaC-mz8ECjqpy2hSJwlUSwM,31943
|
|
@@ -375,16 +375,16 @@ datahub/ingestion/source/metadata/lineage.py,sha256=2iK-hsORWm7NSvMZcG4D5hb8_PH5
|
|
|
375
375
|
datahub/ingestion/source/neo4j/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
376
376
|
datahub/ingestion/source/neo4j/neo4j_source.py,sha256=O3jjdnsx7IyYPBLbxowL85Qo4zs4H-maMOH4-6ZNCk4,13063
|
|
377
377
|
datahub/ingestion/source/powerbi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
378
|
-
datahub/ingestion/source/powerbi/config.py,sha256=
|
|
378
|
+
datahub/ingestion/source/powerbi/config.py,sha256=5rG62dspGF9jIo8l6HLpB6ECv5n-t1un2ZyGiisD784,24219
|
|
379
379
|
datahub/ingestion/source/powerbi/dataplatform_instance_resolver.py,sha256=-njW1kJOy-LY5JFwJLhVQ0bMBj9NQz5TZhQqsSi_KsM,2285
|
|
380
380
|
datahub/ingestion/source/powerbi/powerbi-lexical-grammar.rule,sha256=5df3qvalCS9hZ46DPXs6XDcw9-IofGf8Eol_rUC7LHI,20329
|
|
381
|
-
datahub/ingestion/source/powerbi/powerbi.py,sha256=
|
|
381
|
+
datahub/ingestion/source/powerbi/powerbi.py,sha256=a5itVuGmg-0xAQK5a-cXB5UxpR3rLJx0o2x_lz-8ox8,55955
|
|
382
382
|
datahub/ingestion/source/powerbi/m_query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
383
|
-
datahub/ingestion/source/powerbi/m_query/data_classes.py,sha256=
|
|
383
|
+
datahub/ingestion/source/powerbi/m_query/data_classes.py,sha256=yDi0C13ko2dVxdLJBYvUuGbT4Q2hxQRse3sL7Ul1ZU0,2050
|
|
384
384
|
datahub/ingestion/source/powerbi/m_query/native_sql_parser.py,sha256=zzKVDGeUM3Yv3-zNah4D6mSnr6jXsstNuLmzczcPQEE,3683
|
|
385
385
|
datahub/ingestion/source/powerbi/m_query/parser.py,sha256=5KqhUwj9H9yL9ZMPP9oSeVGiZjvXjw6Iu_HrGr95E5M,5876
|
|
386
|
-
datahub/ingestion/source/powerbi/m_query/pattern_handler.py,sha256=
|
|
387
|
-
datahub/ingestion/source/powerbi/m_query/resolver.py,sha256=
|
|
386
|
+
datahub/ingestion/source/powerbi/m_query/pattern_handler.py,sha256=aOhAb8U4OEZnO4ufnb-Cm3KMpdy-JF6r9YMK3RNZs5A,35906
|
|
387
|
+
datahub/ingestion/source/powerbi/m_query/resolver.py,sha256=ISH8Xjx51q2S81fn2v5RhCCU-kRAW3juxM0rMFs4TDo,17413
|
|
388
388
|
datahub/ingestion/source/powerbi/m_query/tree_function.py,sha256=NIKNNHAE4kTJefTM1WR-StJi9NuingaRYn_mS_kV6A8,6180
|
|
389
389
|
datahub/ingestion/source/powerbi/m_query/validator.py,sha256=crG-VZy2XPieiDliP9yVMgiFcc8b2xbZyDFEATXqEAQ,1155
|
|
390
390
|
datahub/ingestion/source/powerbi/rest_api_wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -438,9 +438,9 @@ datahub/ingestion/source/schema_inference/json.py,sha256=p5S-3idn65V2uad5T8txs1U
|
|
|
438
438
|
datahub/ingestion/source/schema_inference/object.py,sha256=dhSOtxVJHbTDY0hWeHwdLYHnOsW07Omk7Y4DPeztie0,5847
|
|
439
439
|
datahub/ingestion/source/schema_inference/parquet.py,sha256=CdqsNuiabLLCulWbuPMssijeFmKLv3M5MKFIhlatpWA,3456
|
|
440
440
|
datahub/ingestion/source/sigma/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
441
|
-
datahub/ingestion/source/sigma/config.py,sha256=
|
|
441
|
+
datahub/ingestion/source/sigma/config.py,sha256=yfdKQYvI5hKVl8gNAKIcJe-VW3klvdDqYbUP76gJQDI,3812
|
|
442
442
|
datahub/ingestion/source/sigma/data_classes.py,sha256=YZkkzwftV34mq5c_4jlC2PCSiRKt4hvHjmqikLQhl1I,2012
|
|
443
|
-
datahub/ingestion/source/sigma/sigma.py,sha256=
|
|
443
|
+
datahub/ingestion/source/sigma/sigma.py,sha256=ApVtToI1cnpscvdEMcC-3EuTYnczW9CH-s912z-pDpk,24262
|
|
444
444
|
datahub/ingestion/source/sigma/sigma_api.py,sha256=SVvbUs2vjueUdDa-3FzeMsaX5pNpApVI192P7EZzPcI,17870
|
|
445
445
|
datahub/ingestion/source/slack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
446
446
|
datahub/ingestion/source/slack/slack.py,sha256=3N7Yp-u9DvBmo536Z6-pQTrJgSJ3i742GePSgjlBOUU,27616
|
|
@@ -475,7 +475,7 @@ datahub/ingestion/source/sql/hive.py,sha256=n0XCGkNkVAe-TEyXbxlefvohbmtALbWaC1a0
|
|
|
475
475
|
datahub/ingestion/source/sql/hive_metastore.py,sha256=HW0zoHKarBYb8oVCy5fHvPOn-pTo25LctW_AusmH0hQ,36252
|
|
476
476
|
datahub/ingestion/source/sql/mariadb.py,sha256=Hm102kmfs_1rd4lsTYhzVMZq5S3B6cyfvpHSzJjqvMw,737
|
|
477
477
|
datahub/ingestion/source/sql/mysql.py,sha256=nDWK4YbqomcJgnit9b8geUGrp_3eix4bt0_k94o7g-0,3350
|
|
478
|
-
datahub/ingestion/source/sql/oracle.py,sha256=
|
|
478
|
+
datahub/ingestion/source/sql/oracle.py,sha256=PhQZGiZbf_rRtNMlNV-MXSoN3geDBb9zXsGJRVvaKbo,29831
|
|
479
479
|
datahub/ingestion/source/sql/postgres.py,sha256=uC1kYEI8VdxiZ1Y9IxMWzwmg11wtMqYN0e2fkok1rxo,11972
|
|
480
480
|
datahub/ingestion/source/sql/presto.py,sha256=PB-CS5MX2dSRFRHjlxfkLHGXLZXFNCsVAAyRBtY6HMg,3611
|
|
481
481
|
datahub/ingestion/source/sql/sql_common.py,sha256=jsweel_-vesNtcPonnfS11OUrlcZnS3wGt5r0dYTPnM,48637
|
|
@@ -533,7 +533,7 @@ datahub/ingestion/source/unity/usage.py,sha256=0wETBAaZvHI_EGgBlxX3bKsVHEAdnUV8_
|
|
|
533
533
|
datahub/ingestion/source/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
534
534
|
datahub/ingestion/source/usage/clickhouse_usage.py,sha256=jJ-EUJdS7t4d9RVjLWQQ2e36wmYzs8xtpD632z6pLiw,9974
|
|
535
535
|
datahub/ingestion/source/usage/starburst_trino_usage.py,sha256=O3EDEZsXPNdsKGD-jStREA8e4-iTlnqd3ocqtAYFKNA,10544
|
|
536
|
-
datahub/ingestion/source/usage/usage_common.py,sha256=
|
|
536
|
+
datahub/ingestion/source/usage/usage_common.py,sha256=uuCgIduhlRL2zIAN8rymZ5cZn1WF6akZ-ZbbaVYo9_w,9813
|
|
537
537
|
datahub/ingestion/source/vertexai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
538
538
|
datahub/ingestion/source/vertexai/vertexai.py,sha256=TXTa-Cm1C7xkbTNXNmKr_hi2FDJ9VG-ahrxk9yuxaTg,43635
|
|
539
539
|
datahub/ingestion/source/vertexai/vertexai_config.py,sha256=uMnsv3b6TsPRH26u_JE_v1u0db7ANEAFlVxU5A6ELRM,989
|
|
@@ -1043,8 +1043,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
|
|
|
1043
1043
|
datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
|
|
1044
1044
|
datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
|
|
1045
1045
|
datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
|
|
1046
|
-
acryl_datahub-1.0.0.
|
|
1047
|
-
acryl_datahub-1.0.0.
|
|
1048
|
-
acryl_datahub-1.0.0.
|
|
1049
|
-
acryl_datahub-1.0.0.
|
|
1050
|
-
acryl_datahub-1.0.0.
|
|
1046
|
+
acryl_datahub-1.0.0.1rc6.dist-info/METADATA,sha256=8vR0C58PC28apLdQmFrOElrjYK-ArD0warcqjSc-fD8,176849
|
|
1047
|
+
acryl_datahub-1.0.0.1rc6.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
1048
|
+
acryl_datahub-1.0.0.1rc6.dist-info/entry_points.txt,sha256=o3mDeJXSKhsy7XLkuogihraiabBdLn9HaizYXPrxmk0,9710
|
|
1049
|
+
acryl_datahub-1.0.0.1rc6.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
|
|
1050
|
+
acryl_datahub-1.0.0.1rc6.dist-info/RECORD,,
|
datahub/_version.py
CHANGED
|
@@ -29,13 +29,16 @@ def dataset() -> None:
|
|
|
29
29
|
name="upsert",
|
|
30
30
|
)
|
|
31
31
|
@click.option("-f", "--file", required=True, type=click.Path(exists=True))
|
|
32
|
+
@click.option(
|
|
33
|
+
"-n", "--dry-run", type=bool, is_flag=True, default=False, help="Perform a dry run"
|
|
34
|
+
)
|
|
32
35
|
@upgrade.check_upgrade
|
|
33
36
|
@telemetry.with_telemetry()
|
|
34
|
-
def upsert(file: Path) -> None:
|
|
37
|
+
def upsert(file: Path, dry_run: bool) -> None:
|
|
35
38
|
"""Upsert attributes to a Dataset in DataHub."""
|
|
36
39
|
# Call the sync command with to_datahub=True to perform the upsert operation
|
|
37
40
|
ctx = click.get_current_context()
|
|
38
|
-
ctx.invoke(sync, file=str(file), to_datahub=True)
|
|
41
|
+
ctx.invoke(sync, file=str(file), dry_run=dry_run, to_datahub=True)
|
|
39
42
|
|
|
40
43
|
|
|
41
44
|
@dataset.command(
|
|
@@ -167,11 +170,16 @@ def file(lintcheck: bool, lintfix: bool, file: str) -> None:
|
|
|
167
170
|
)
|
|
168
171
|
@click.option("-f", "--file", required=True, type=click.Path(exists=True))
|
|
169
172
|
@click.option("--to-datahub/--from-datahub", required=True, is_flag=True)
|
|
173
|
+
@click.option(
|
|
174
|
+
"-n", "--dry-run", type=bool, is_flag=True, default=False, help="Perform a dry run"
|
|
175
|
+
)
|
|
170
176
|
@upgrade.check_upgrade
|
|
171
177
|
@telemetry.with_telemetry()
|
|
172
|
-
def sync(file: str, to_datahub: bool) -> None:
|
|
178
|
+
def sync(file: str, to_datahub: bool, dry_run: bool) -> None:
|
|
173
179
|
"""Sync a Dataset file to/from DataHub"""
|
|
174
180
|
|
|
181
|
+
dry_run_prefix = "[dry-run]: " if dry_run else "" # prefix to use in messages
|
|
182
|
+
|
|
175
183
|
failures: List[str] = []
|
|
176
184
|
with get_default_graph() as graph:
|
|
177
185
|
datasets = Dataset.from_yaml(file)
|
|
@@ -189,7 +197,7 @@ def sync(file: str, to_datahub: bool) -> None:
|
|
|
189
197
|
click.secho(
|
|
190
198
|
"\n\t- ".join(
|
|
191
199
|
[
|
|
192
|
-
f"Skipping Dataset {dataset.urn} due to missing entity references: "
|
|
200
|
+
f"{dry_run_prefix}Skipping Dataset {dataset.urn} due to missing entity references: "
|
|
193
201
|
]
|
|
194
202
|
+ missing_entity_references
|
|
195
203
|
),
|
|
@@ -199,13 +207,18 @@ def sync(file: str, to_datahub: bool) -> None:
|
|
|
199
207
|
continue
|
|
200
208
|
try:
|
|
201
209
|
for mcp in dataset.generate_mcp():
|
|
202
|
-
|
|
203
|
-
|
|
210
|
+
if not dry_run:
|
|
211
|
+
graph.emit(mcp)
|
|
212
|
+
click.secho(
|
|
213
|
+
f"{dry_run_prefix}Update succeeded for urn {dataset.urn}.",
|
|
214
|
+
fg="green",
|
|
215
|
+
)
|
|
204
216
|
except Exception as e:
|
|
205
217
|
click.secho(
|
|
206
|
-
f"Update failed for id {id}. due to {e}",
|
|
218
|
+
f"{dry_run_prefix}Update failed for id {id}. due to {e}",
|
|
207
219
|
fg="red",
|
|
208
220
|
)
|
|
221
|
+
failures.append(dataset.urn)
|
|
209
222
|
else:
|
|
210
223
|
# Sync from DataHub
|
|
211
224
|
if graph.exists(dataset.urn):
|
|
@@ -215,13 +228,16 @@ def sync(file: str, to_datahub: bool) -> None:
|
|
|
215
228
|
existing_dataset: Dataset = Dataset.from_datahub(
|
|
216
229
|
graph=graph, urn=dataset.urn, config=dataset_get_config
|
|
217
230
|
)
|
|
218
|
-
|
|
231
|
+
if not dry_run:
|
|
232
|
+
existing_dataset.to_yaml(Path(file))
|
|
233
|
+
else:
|
|
234
|
+
click.secho(f"{dry_run_prefix}Will update file {file}")
|
|
219
235
|
else:
|
|
220
|
-
click.secho(f"Dataset {dataset.urn} does not exist")
|
|
236
|
+
click.secho(f"{dry_run_prefix}Dataset {dataset.urn} does not exist")
|
|
221
237
|
failures.append(dataset.urn)
|
|
222
238
|
if failures:
|
|
223
239
|
click.secho(
|
|
224
|
-
f"\
|
|
240
|
+
f"\n{dry_run_prefix}Failed to sync the following Datasets: {', '.join(failures)}",
|
|
225
241
|
fg="red",
|
|
226
242
|
)
|
|
227
243
|
raise click.Abort()
|
datahub/emitter/mcp_builder.py
CHANGED
|
@@ -117,6 +117,14 @@ class ContainerKey(DatahubKey):
|
|
|
117
117
|
PlatformKey = ContainerKey
|
|
118
118
|
|
|
119
119
|
|
|
120
|
+
class NamespaceKey(ContainerKey):
|
|
121
|
+
"""
|
|
122
|
+
For Iceberg namespaces (databases/schemas)
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
namespace: str
|
|
126
|
+
|
|
127
|
+
|
|
120
128
|
class DatabaseKey(ContainerKey):
|
|
121
129
|
database: str
|
|
122
130
|
|
datahub/emitter/rest_emitter.py
CHANGED
|
@@ -41,7 +41,7 @@ from datahub.configuration.common import (
|
|
|
41
41
|
TraceTimeoutError,
|
|
42
42
|
TraceValidationError,
|
|
43
43
|
)
|
|
44
|
-
from datahub.emitter.aspect import JSON_CONTENT_TYPE
|
|
44
|
+
from datahub.emitter.aspect import JSON_CONTENT_TYPE, JSON_PATCH_CONTENT_TYPE
|
|
45
45
|
from datahub.emitter.generic_emitter import Emitter
|
|
46
46
|
from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
|
47
47
|
from datahub.emitter.request_helper import make_curl_command
|
|
@@ -109,9 +109,9 @@ class RestSinkEndpoint(ConfigEnum):
|
|
|
109
109
|
OPENAPI = auto()
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
DEFAULT_REST_EMITTER_ENDPOINT = pydantic.parse_obj_as(
|
|
113
113
|
RestSinkEndpoint,
|
|
114
|
-
os.getenv("
|
|
114
|
+
os.getenv("DATAHUB_REST_EMITTER_DEFAULT_ENDPOINT", RestSinkEndpoint.RESTLI),
|
|
115
115
|
)
|
|
116
116
|
|
|
117
117
|
|
|
@@ -229,7 +229,9 @@ class DataHubRestEmitter(Closeable, Emitter):
|
|
|
229
229
|
ca_certificate_path: Optional[str] = None,
|
|
230
230
|
client_certificate_path: Optional[str] = None,
|
|
231
231
|
disable_ssl_verification: bool = False,
|
|
232
|
-
openapi_ingestion: bool =
|
|
232
|
+
openapi_ingestion: bool = (
|
|
233
|
+
DEFAULT_REST_EMITTER_ENDPOINT == RestSinkEndpoint.OPENAPI
|
|
234
|
+
),
|
|
233
235
|
default_trace_mode: bool = False,
|
|
234
236
|
):
|
|
235
237
|
if not gms_server:
|
|
@@ -359,8 +361,14 @@ class DataHubRestEmitter(Closeable, Emitter):
|
|
|
359
361
|
)["aspect"]["json"]
|
|
360
362
|
else:
|
|
361
363
|
obj = mcp.aspect.to_obj()
|
|
362
|
-
|
|
364
|
+
content_type = obj.get("contentType")
|
|
365
|
+
if obj.get("value") and content_type == JSON_CONTENT_TYPE:
|
|
366
|
+
# Undo double serialization.
|
|
363
367
|
obj = json.loads(obj["value"])
|
|
368
|
+
elif content_type == JSON_PATCH_CONTENT_TYPE:
|
|
369
|
+
raise NotImplementedError(
|
|
370
|
+
"Patches are not supported for OpenAPI ingestion. Set the endpoint to RESTLI."
|
|
371
|
+
)
|
|
364
372
|
aspect_value = pre_json_transform(obj)
|
|
365
373
|
return (
|
|
366
374
|
url,
|
|
@@ -33,7 +33,7 @@ from datahub.emitter.aspect import TIMESERIES_ASPECT_MAP
|
|
|
33
33
|
from datahub.emitter.mce_builder import DEFAULT_ENV, Aspect
|
|
34
34
|
from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
|
35
35
|
from datahub.emitter.rest_emitter import (
|
|
36
|
-
|
|
36
|
+
DEFAULT_REST_EMITTER_ENDPOINT,
|
|
37
37
|
DEFAULT_REST_TRACE_MODE,
|
|
38
38
|
DatahubRestEmitter,
|
|
39
39
|
RestSinkEndpoint,
|
|
@@ -147,7 +147,7 @@ class DataHubGraph(DatahubRestEmitter, EntityVersioningAPI):
|
|
|
147
147
|
ca_certificate_path=self.config.ca_certificate_path,
|
|
148
148
|
client_certificate_path=self.config.client_certificate_path,
|
|
149
149
|
disable_ssl_verification=self.config.disable_ssl_verification,
|
|
150
|
-
openapi_ingestion=
|
|
150
|
+
openapi_ingestion=DEFAULT_REST_EMITTER_ENDPOINT == RestSinkEndpoint.OPENAPI,
|
|
151
151
|
default_trace_mode=DEFAULT_REST_TRACE_MODE == RestTraceMode.ENABLED,
|
|
152
152
|
)
|
|
153
153
|
|
|
@@ -20,7 +20,7 @@ from datahub.emitter.mcp import MetadataChangeProposalWrapper
|
|
|
20
20
|
from datahub.emitter.mcp_builder import mcps_from_mce
|
|
21
21
|
from datahub.emitter.rest_emitter import (
|
|
22
22
|
BATCH_INGEST_MAX_PAYLOAD_LENGTH,
|
|
23
|
-
|
|
23
|
+
DEFAULT_REST_EMITTER_ENDPOINT,
|
|
24
24
|
DEFAULT_REST_TRACE_MODE,
|
|
25
25
|
DataHubRestEmitter,
|
|
26
26
|
RestSinkEndpoint,
|
|
@@ -70,7 +70,7 @@ _DEFAULT_REST_SINK_MODE = pydantic.parse_obj_as(
|
|
|
70
70
|
|
|
71
71
|
class DatahubRestSinkConfig(DatahubClientConfig):
|
|
72
72
|
mode: RestSinkMode = _DEFAULT_REST_SINK_MODE
|
|
73
|
-
endpoint: RestSinkEndpoint =
|
|
73
|
+
endpoint: RestSinkEndpoint = DEFAULT_REST_EMITTER_ENDPOINT
|
|
74
74
|
default_trace_mode: RestTraceMode = DEFAULT_REST_TRACE_MODE
|
|
75
75
|
|
|
76
76
|
# These only apply in async modes.
|