acryl-datahub 1.2.0.11rc1__py3-none-any.whl → 1.2.0.11rc3__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.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/METADATA +2557 -2557
- {acryl_datahub-1.2.0.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/RECORD +39 -37
- datahub/_version.py +1 -1
- datahub/cli/docker_cli.py +1 -1
- datahub/configuration/common.py +11 -0
- datahub/configuration/kafka.py +19 -1
- datahub/configuration/validate_field_removal.py +3 -0
- datahub/ingestion/autogenerated/capability_summary.json +2 -2
- datahub/ingestion/graph/client.py +7 -7
- datahub/ingestion/graph/filters.py +30 -11
- datahub/ingestion/source/aws/s3_boto_utils.py +4 -1
- datahub/ingestion/source/data_lake_common/path_spec.py +39 -2
- datahub/ingestion/source/looker/looker_common.py +6 -0
- datahub/ingestion/source/looker/looker_constant.py +4 -0
- datahub/ingestion/source/looker/looker_lib_wrapper.py +36 -3
- datahub/ingestion/source/looker/looker_view_id_cache.py +1 -1
- datahub/ingestion/source/looker/lookml_concept_context.py +1 -1
- datahub/ingestion/source/looker/lookml_config.py +30 -2
- datahub/ingestion/source/looker/lookml_refinement.py +1 -1
- datahub/ingestion/source/looker/lookml_source.py +42 -29
- datahub/ingestion/source/looker/view_upstream.py +494 -1
- datahub/ingestion/source/s3/source.py +125 -164
- datahub/ingestion/source/snaplogic/snaplogic.py +4 -4
- datahub/ingestion/source/snaplogic/snaplogic_config.py +4 -4
- datahub/ingestion/source/snowflake/snowflake_utils.py +9 -9
- datahub/metadata/_internal_schema_classes.py +1 -1
- datahub/metadata/schema.avsc +1 -1
- datahub/metadata/schemas/CorpUserEditableInfo.avsc +1 -1
- datahub/metadata/schemas/MetadataChangeEvent.avsc +1 -1
- datahub/sdk/search_filters.py +122 -1
- datahub/secret/datahub_secret_store.py +3 -0
- datahub/secret/environment_secret_store.py +29 -0
- datahub/secret/file_secret_store.py +49 -0
- datahub/specific/aspect_helpers/structured_properties.py +27 -0
- datahub/sql_parsing/sqlglot_lineage.py +6 -1
- {acryl_datahub-1.2.0.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.2.0.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.2.0.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.2.0.11rc1.dist-info → acryl_datahub-1.2.0.11rc3.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
acryl_datahub-1.2.0.
|
|
1
|
+
acryl_datahub-1.2.0.11rc3.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=NCAi9sjvJm9IaM8-kY2BCXIjwGS5PqRR_MzW1NKfjF8,324
|
|
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
|
|
@@ -73,7 +73,7 @@ datahub/cli/config_utils.py,sha256=EeBGfhmf4AxYoTfnZ4GSiGIgpzJFkduNjN_FwmxZGhA,4
|
|
|
73
73
|
datahub/cli/container_cli.py,sha256=D0zWP3_3aww8_RTkMugOoOlILz3dPJ0TE9asQDLCm6E,1697
|
|
74
74
|
datahub/cli/delete_cli.py,sha256=0YJeWuXPGY0kbSn1AXK1-8SfCGBxb78ZbO53RAgyjQg,26515
|
|
75
75
|
datahub/cli/docker_check.py,sha256=CE6YNdX4XsXT8GYiQOLbOLi2x_-kK2aQqmTl0ZP0Uu4,12976
|
|
76
|
-
datahub/cli/docker_cli.py,sha256=
|
|
76
|
+
datahub/cli/docker_cli.py,sha256=3pzoe_qbWLhG27-M2wBU5MLLJM0xPlmC-EyoueoQEL4,33091
|
|
77
77
|
datahub/cli/env_utils.py,sha256=RQzjg4JE29hjPt4v7p-RuqoOr99w8E3DBHWiN2Sm7T4,252
|
|
78
78
|
datahub/cli/exists_cli.py,sha256=1cUYNh3GqNgVHWTrfMRGJoo9tFZNXcLetMaDbLaig6o,1233
|
|
79
79
|
datahub/cli/get_cli.py,sha256=OUnXomfpki0uWbNqXoSvQDyQJcKjNLgg77e8jVvynKY,2327
|
|
@@ -100,14 +100,14 @@ datahub/cli/specific/structuredproperties_cli.py,sha256=rgx8fhI7WYq8QLwIttkMysX7
|
|
|
100
100
|
datahub/cli/specific/user_cli.py,sha256=HaASGg25b82Q18hKyOn98gPoQfmj1gW0utDMs0iR5WY,1897
|
|
101
101
|
datahub/configuration/__init__.py,sha256=5TN3a7CWNsLRHpdj-sv2bxKWF2IslvJwE6EpNMFrIS4,123
|
|
102
102
|
datahub/configuration/_config_enum.py,sha256=ul2hr5gMmdLvBINicFkMNMi1ApmnmZSwNdUYYted5nk,1447
|
|
103
|
-
datahub/configuration/common.py,sha256=
|
|
103
|
+
datahub/configuration/common.py,sha256=HvMrc-q2ZocbAHj5KgBHUaQOjdWLvk_wRGDkTUVbhtU,11742
|
|
104
104
|
datahub/configuration/config_loader.py,sha256=hRzPFxkz-w9IqkpSa5vwCzSra1p49DyfeJNeyqGa8-4,6827
|
|
105
105
|
datahub/configuration/connection_resolver.py,sha256=UsnV1_X8yivOykiifllkoKRn19eO6j_NTBWHC2Ob5Xg,1625
|
|
106
106
|
datahub/configuration/datetimes.py,sha256=nayNc0mmlVKH6oVv9ud6C1dDUiZPGabW-YZxvrkosPg,2870
|
|
107
107
|
datahub/configuration/git.py,sha256=OiqF2w6d9YWqrlHv_2jZ-cRiL-g0SeS4ecVtQwXWpnc,6415
|
|
108
108
|
datahub/configuration/import_resolver.py,sha256=asGu7t6SLdasbV_rlldnXVWhU7tdOOiUCbQt7xKFraw,491
|
|
109
109
|
datahub/configuration/json_loader.py,sha256=vIDnjwXWi9yHDO8KW64EupOzOb_sspehGCD7xGHzg84,302
|
|
110
|
-
datahub/configuration/kafka.py,sha256
|
|
110
|
+
datahub/configuration/kafka.py,sha256=-Bqy0mhlUG6EyWwbaZv-sPXa-MVnOWhn96A3gsHry2w,3167
|
|
111
111
|
datahub/configuration/kafka_consumer_config.py,sha256=LivsObTt9yC3WoGnslJbF_x4ojfNdxMIMEhb8vvJfcA,2133
|
|
112
112
|
datahub/configuration/pattern_utils.py,sha256=Q5IB9RfWOOo5FvRVBU7XkhiwHCxSQ1NTMfUlWtWI9qc,699
|
|
113
113
|
datahub/configuration/pydantic_migration_helpers.py,sha256=NKoQUS2SM4FFdBxmPqgzJdYT1X-OXn-PrlgdfIDZpX0,1397
|
|
@@ -115,7 +115,7 @@ datahub/configuration/source_common.py,sha256=G4fkFw-dG0zVMSSsXOZn1ua_w4QJBpVMMq
|
|
|
115
115
|
datahub/configuration/time_window_config.py,sha256=c4mbrgmTobt4t_j6unDeYvmGSlbRB2hAgAst6yq4nHA,5412
|
|
116
116
|
datahub/configuration/toml.py,sha256=Ohc5sAWLPoAinPYL8njyheZ3ak81fC2Sp8IbBbESPGg,380
|
|
117
117
|
datahub/configuration/validate_field_deprecation.py,sha256=szzs0130AXcK6aoYMmvEK5oWXPKcnf-EqRqvE6SuW-U,1377
|
|
118
|
-
datahub/configuration/validate_field_removal.py,sha256=
|
|
118
|
+
datahub/configuration/validate_field_removal.py,sha256=LWVmUD8aDS0WkuNCqBCuIG_wOSZ3G-ANv8WyvKOEdDo,1285
|
|
119
119
|
datahub/configuration/validate_field_rename.py,sha256=o_MPYuVLiLRalhDa-p2pUxzx4_rBU-tQ-3wZFHXAOTg,2287
|
|
120
120
|
datahub/configuration/validate_host_port.py,sha256=dgR9XPreNV_fABOmv2UHYF-OSN6AHD92Zi2nKsfdTiE,867
|
|
121
121
|
datahub/configuration/validate_multiline_string.py,sha256=j5EABUvFOpV7c21eBWZSwy2ryIA2PI67lN5ebyrHv00,1370
|
|
@@ -159,7 +159,7 @@ datahub/ingestion/api/auto_work_units/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
159
159
|
datahub/ingestion/api/auto_work_units/auto_dataset_properties_aspect.py,sha256=ID_6N3nWl2qohsSGizUCqo3d2MNyDeVbyWroQpSOSsc,5059
|
|
160
160
|
datahub/ingestion/api/auto_work_units/auto_ensure_aspect_size.py,sha256=0BwkpLhORbsiTHq0g_N_1cVVoZYdLR3qz02mNmsV9-M,4444
|
|
161
161
|
datahub/ingestion/autogenerated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
|
-
datahub/ingestion/autogenerated/capability_summary.json,sha256=
|
|
162
|
+
datahub/ingestion/autogenerated/capability_summary.json,sha256=9Ns5gYfVq0LYogaYtb0ioDPfu8SVhftiq9R7l0irQwg,111506
|
|
163
163
|
datahub/ingestion/autogenerated/lineage.json,sha256=8BdZF-5V5kJbX4mfFav8Zg-jHjzfkAEGk-pu1atLN4I,10029
|
|
164
164
|
datahub/ingestion/autogenerated/lineage_helper.py,sha256=I_k1pZSCCCjDbUVifPTfy6fkmV8jqdVhbirE8EkpmxI,4748
|
|
165
165
|
datahub/ingestion/extractor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -181,11 +181,11 @@ datahub/ingestion/glossary/classifier.py,sha256=daLxnVv_JlfB_jBOxH5LrU_xQRndrsGo
|
|
|
181
181
|
datahub/ingestion/glossary/classifier_registry.py,sha256=yFOYLQhDgCLqXYMG3L1BquXafeLcZDcmp8meyw6k9ts,307
|
|
182
182
|
datahub/ingestion/glossary/datahub_classifier.py,sha256=O7wm6gQT1Jf2QSKdWjJQbS5oSzJwplXzfza26Gdq5Mg,7555
|
|
183
183
|
datahub/ingestion/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
184
|
-
datahub/ingestion/graph/client.py,sha256=
|
|
184
|
+
datahub/ingestion/graph/client.py,sha256=W42py2iVwAmxPw8P2BQmOVBrwRXvEtpV_PIybs2RXy4,75077
|
|
185
185
|
datahub/ingestion/graph/config.py,sha256=rmkcqAL8fJoY9QyAeS0Xm8HvwHzV3pCjY-Om-50JJTI,1015
|
|
186
186
|
datahub/ingestion/graph/connections.py,sha256=9462L0ZWGKURyypAln25eMPhK3pcufBar9tNDoqspXs,741
|
|
187
187
|
datahub/ingestion/graph/entity_versioning.py,sha256=nrcNz0Qm6kpE6oTu_mrYUQDx14KPspBTc6R9SyFUY6c,6901
|
|
188
|
-
datahub/ingestion/graph/filters.py,sha256=
|
|
188
|
+
datahub/ingestion/graph/filters.py,sha256=WMZpLGjuaOWyScrEJHqOtR_nw2DR23s9sJnigVpZTDI,9461
|
|
189
189
|
datahub/ingestion/graph/links.py,sha256=UwWSdx-j0dPttfJOjfTf4ZmlO7iIsRz5p3nIsqGVHUA,2169
|
|
190
190
|
datahub/ingestion/reporting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
191
191
|
datahub/ingestion/reporting/datahub_ingestion_run_summary_provider.py,sha256=w-OvKG4Xm6s91czFxkhtawskMOReHyso7WjPlGGY1Rw,10073
|
|
@@ -241,7 +241,7 @@ datahub/ingestion/source/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
241
241
|
datahub/ingestion/source/aws/aws_common.py,sha256=DN49pHY-AOVHqI3smF9cVPwvPmh5UqOF4ga-wga_gPc,17928
|
|
242
242
|
datahub/ingestion/source/aws/glue.py,sha256=dUaMWcI5Ed-TzbbSrF6suT4L1vcRHoHfFCdTvAINc4w,67423
|
|
243
243
|
datahub/ingestion/source/aws/platform_resource_repository.py,sha256=0eUfGy1FbaBltCSNTtXyLrkrdqTc1KkTgDJB1Gd-Ydk,853
|
|
244
|
-
datahub/ingestion/source/aws/s3_boto_utils.py,sha256=
|
|
244
|
+
datahub/ingestion/source/aws/s3_boto_utils.py,sha256=rGlWAkKZpkeA1_wMvcJvSDvobvduShszowU-KcrQudg,7011
|
|
245
245
|
datahub/ingestion/source/aws/s3_util.py,sha256=OFypcgmVC6jnZM90-gjcPpAMtTV1lbnreCaMhCzNlzs,2149
|
|
246
246
|
datahub/ingestion/source/aws/sagemaker.py,sha256=Bl2tkBYnrindgx61VHYgNovUF_Kp_fXNcivQn28vC2w,5254
|
|
247
247
|
datahub/ingestion/source/aws/tag_entities.py,sha256=Y9clf_0bAXd0lhINVcPcNZqM3TjegHTZY58t6qRO2rQ,10732
|
|
@@ -291,7 +291,7 @@ datahub/ingestion/source/data_lake_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-
|
|
|
291
291
|
datahub/ingestion/source/data_lake_common/config.py,sha256=qUk83B01hjuBKHvVz8SmXnVCy5eFj-2-2QLEOrAdbgk,359
|
|
292
292
|
datahub/ingestion/source/data_lake_common/data_lake_utils.py,sha256=IYr5y8vy_6CtMtITqzn6OqovzH1cpe1i30M-75PouXo,7768
|
|
293
293
|
datahub/ingestion/source/data_lake_common/object_store.py,sha256=i9Hgb8Ww23QD_jEjzj_2qxA8Nr56krnZfo1qyOWmH9M,23608
|
|
294
|
-
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=
|
|
294
|
+
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=T6KwPMDdAC37wpe_KvVSf5KgOvJLuu6JBZQgKccObWQ,25139
|
|
295
295
|
datahub/ingestion/source/datahub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
296
296
|
datahub/ingestion/source/datahub/config.py,sha256=zS-OgE6n-OnXHeCo5-OYx0i6E828H70JyHQNqokwp6A,5256
|
|
297
297
|
datahub/ingestion/source/datahub/datahub_api_reader.py,sha256=hlKADVEPoTFiRGKqRsMF5mL4fSu_IrIW8Nx7LpEzvkM,2134
|
|
@@ -383,26 +383,26 @@ datahub/ingestion/source/kafka_connect/sink_connectors.py,sha256=QTMY0FmOHkTxfIC
|
|
|
383
383
|
datahub/ingestion/source/kafka_connect/source_connectors.py,sha256=A9q-u5IoV35swvoyMrzT75FVV9-SBeYGhLKDYRge-IQ,23845
|
|
384
384
|
datahub/ingestion/source/looker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
385
385
|
datahub/ingestion/source/looker/lkml_patched.py,sha256=XShEU7Wbz0DubDhYMjKf9wjKZrBJa2XPg9MIjp8rPhk,733
|
|
386
|
-
datahub/ingestion/source/looker/looker_common.py,sha256=
|
|
386
|
+
datahub/ingestion/source/looker/looker_common.py,sha256=vXD6w1VAhxKlFp283WZkRcccGQt1uKij175o5oqO1HM,67912
|
|
387
387
|
datahub/ingestion/source/looker/looker_config.py,sha256=4aYK9FQvH2BOH3IdtcL93QreFKqNC8_gm5OPRjcT2XA,13905
|
|
388
388
|
datahub/ingestion/source/looker/looker_connection.py,sha256=yDmC6lDsHmL2e_Pw8ULylwOIHPWPp_6gT1iyLvD0fTw,2075
|
|
389
|
-
datahub/ingestion/source/looker/looker_constant.py,sha256=
|
|
389
|
+
datahub/ingestion/source/looker/looker_constant.py,sha256=6v8DeeLOgnWXaz5t6Ghl514PYoqe0DTXykX_MJ2kYf0,530
|
|
390
390
|
datahub/ingestion/source/looker/looker_dataclasses.py,sha256=MrDeZ4Nd0wQnJbCoI1qePYlYeObnUw5dvpWcmhKuNgc,12346
|
|
391
391
|
datahub/ingestion/source/looker/looker_file_loader.py,sha256=gb2Z97_w28MsybYe01JFMMqlvBbn2occyUEknf_mYMA,4882
|
|
392
|
-
datahub/ingestion/source/looker/looker_lib_wrapper.py,sha256=
|
|
392
|
+
datahub/ingestion/source/looker/looker_lib_wrapper.py,sha256=M6dVvTLWi58f7WRY1kFkKwA3vRQO_QgtKYvjIjXlRBQ,12708
|
|
393
393
|
datahub/ingestion/source/looker/looker_liquid_tag.py,sha256=27WnOuTghayaH-HL4lLoq0IcHvNm1UybMqMnoaxN8Cs,5383
|
|
394
394
|
datahub/ingestion/source/looker/looker_query_model.py,sha256=N0jBbFruiCIIGT6sJn6tNeppeQ78KGTkOwTLirhxFNc,2144
|
|
395
395
|
datahub/ingestion/source/looker/looker_source.py,sha256=7mRlIJq2DoM1h2y-heNdNoqok8sNl7Qmpwsx0dQsYP8,67273
|
|
396
396
|
datahub/ingestion/source/looker/looker_template_language.py,sha256=5fZFPKFP3IYbJg3jLifjaji4wWg8wRy-1XDvc8Qucus,17949
|
|
397
397
|
datahub/ingestion/source/looker/looker_usage.py,sha256=qFBX7OHtIcarYIqFe0jQMrDV8MMPV_nN4PZrZRUznTw,23029
|
|
398
|
-
datahub/ingestion/source/looker/looker_view_id_cache.py,sha256=
|
|
399
|
-
datahub/ingestion/source/looker/lookml_concept_context.py,sha256=
|
|
400
|
-
datahub/ingestion/source/looker/lookml_config.py,sha256=
|
|
401
|
-
datahub/ingestion/source/looker/lookml_refinement.py,sha256=
|
|
402
|
-
datahub/ingestion/source/looker/lookml_source.py,sha256=
|
|
398
|
+
datahub/ingestion/source/looker/looker_view_id_cache.py,sha256=smgH0Z3OlugaDKU0xSlSA4cggZVhuX8p5TNbeqX24II,4447
|
|
399
|
+
datahub/ingestion/source/looker/lookml_concept_context.py,sha256=s3eSNKchikE9gg30rdW-kOmV2uki_wYUldhW4SgrISU,18066
|
|
400
|
+
datahub/ingestion/source/looker/lookml_config.py,sha256=Z6sqKMwuJWJzE4pIX9Pm1ERtUgx5v0g-PM-SME4Q06M,13138
|
|
401
|
+
datahub/ingestion/source/looker/lookml_refinement.py,sha256=_FV7-8zdZJhntkAaS3FuWXjibq7LQa91fQuolAdav4c,9559
|
|
402
|
+
datahub/ingestion/source/looker/lookml_source.py,sha256=aaFntJjISMV1QeQqzEpMxjvFod0-CX9ONEaAfFvAxOA,43475
|
|
403
403
|
datahub/ingestion/source/looker/str_functions.py,sha256=zceEX2ka_4WaWwWgEdyknUSz7X3GrO951BkwSbF2afo,766
|
|
404
404
|
datahub/ingestion/source/looker/urn_functions.py,sha256=4VvqEfGvIMq3rNHHps0-HlPurMPnpqdxNtDAOOHIZww,528
|
|
405
|
-
datahub/ingestion/source/looker/view_upstream.py,sha256=
|
|
405
|
+
datahub/ingestion/source/looker/view_upstream.py,sha256=Ajc9G1NKWTS7neuN5OOgg9maePrla8aKc1tokiNs7Ic,47489
|
|
406
406
|
datahub/ingestion/source/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
407
407
|
datahub/ingestion/source/metadata/business_glossary.py,sha256=sGOw_5IQxlLxqw7NvvQX4QeCaursuDg4aOyoAN973g4,19709
|
|
408
408
|
datahub/ingestion/source/metadata/lineage.py,sha256=8jtlZqlgrHOfk1SpJ0lXWcyNfNxr0uYB_kvsqTyqFHo,9618
|
|
@@ -461,7 +461,7 @@ datahub/ingestion/source/s3/config.py,sha256=lElFXgEpKDT9SVoiXvtx98wV6Gp880qP4pL
|
|
|
461
461
|
datahub/ingestion/source/s3/datalake_profiler_config.py,sha256=FfrcgK-JEF94vw-l3q6pN6FENXb-wZzW2w1VUZVkwW8,3620
|
|
462
462
|
datahub/ingestion/source/s3/profiling.py,sha256=yKNCKpr6w7qpCH-baeSkNE9VjkN6eBot_weD-2_Jxzk,17579
|
|
463
463
|
datahub/ingestion/source/s3/report.py,sha256=9Ej1UCChw963UpGw1-7asi5vFrOM232gfgG8bRdKPp0,667
|
|
464
|
-
datahub/ingestion/source/s3/source.py,sha256=
|
|
464
|
+
datahub/ingestion/source/s3/source.py,sha256=rokdUHb2rPXc6JbHwq5GDYdK4COlhm6_E84jHNk-EAE,58063
|
|
465
465
|
datahub/ingestion/source/sac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
466
466
|
datahub/ingestion/source/sac/sac.py,sha256=0s_JxHGOhit3Wvgbg7qQi-Z9j9_TgBX_I1yOR3L6-rA,30243
|
|
467
467
|
datahub/ingestion/source/sac/sac_common.py,sha256=-xQTDBtgH56AnpRXWGDnlmQqUuLRx-7wF1U1kQFWtX8,998
|
|
@@ -483,8 +483,8 @@ datahub/ingestion/source/sigma/sigma_api.py,sha256=7PK5AQa838hYeaQ5L0dioi4n4bLrp
|
|
|
483
483
|
datahub/ingestion/source/slack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
484
484
|
datahub/ingestion/source/slack/slack.py,sha256=JWanUfzFGynV_PWcH0YzJIbRcmL880DA6dEI9QW-QiQ,25800
|
|
485
485
|
datahub/ingestion/source/snaplogic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
486
|
-
datahub/ingestion/source/snaplogic/snaplogic.py,sha256=
|
|
487
|
-
datahub/ingestion/source/snaplogic/snaplogic_config.py,sha256=
|
|
486
|
+
datahub/ingestion/source/snaplogic/snaplogic.py,sha256=T72zCO97xbQkC6DLq6Ka_h_kI5ZQZG6YRFJAHl_N5c0,13540
|
|
487
|
+
datahub/ingestion/source/snaplogic/snaplogic_config.py,sha256=lYXKeaD0lvLoZ8eJmPNHhuLlOnCPbelZMyihgUXbxD8,1445
|
|
488
488
|
datahub/ingestion/source/snaplogic/snaplogic_lineage_extractor.py,sha256=IzCYwXLN6IfRFqns7XXtZxzQjjHC-XNTGXgEMeSfW8U,3776
|
|
489
489
|
datahub/ingestion/source/snaplogic/snaplogic_parser.py,sha256=q5dRfWtOpSELPZrpyLbszOD49MJBXNbKgnITLMPiyGI,5783
|
|
490
490
|
datahub/ingestion/source/snaplogic/snaplogic_utils.py,sha256=SVrV9ZXVE2cKKPfoVsxjBN2fIcpYbs2PBLiyQIcJMVQ,1068
|
|
@@ -507,7 +507,7 @@ datahub/ingestion/source/snowflake/snowflake_shares.py,sha256=maZyFkfrbVogEFM0tT
|
|
|
507
507
|
datahub/ingestion/source/snowflake/snowflake_summary.py,sha256=5Li4H8KuS4qBKR98L2P-JZI79UXsOjcAFxZZyio9NU0,5787
|
|
508
508
|
datahub/ingestion/source/snowflake/snowflake_tag.py,sha256=eA9xh-G1Ydr1OwUUtrbXUWp26hE1jF0zvyKNky_i_nQ,8887
|
|
509
509
|
datahub/ingestion/source/snowflake/snowflake_usage_v2.py,sha256=mM0v9b4PHRJAT-SdRids3wdzc5O96gWCCww3e42itV8,24982
|
|
510
|
-
datahub/ingestion/source/snowflake/snowflake_utils.py,sha256=
|
|
510
|
+
datahub/ingestion/source/snowflake/snowflake_utils.py,sha256=1c1YNmAxxOwAKy8IEFqVdp6x-EvCYJkN6UZ_RwUUVv0,15062
|
|
511
511
|
datahub/ingestion/source/snowflake/snowflake_v2.py,sha256=c6wg_s97Hrckqi0BgAbmnnRQRDDda1-BHFLlnRx0xuw,35753
|
|
512
512
|
datahub/ingestion/source/snowflake/stored_proc_lineage.py,sha256=rOb78iHiWiK8v8WdVs1xDwVut4Y0OHmszej6IopQfCo,5341
|
|
513
513
|
datahub/ingestion/source/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -642,8 +642,8 @@ datahub/lite/lite_registry.py,sha256=bpH0kasP-LtwwUFNA2QsOIehfekAYfJtN-AkQLmSWnw
|
|
|
642
642
|
datahub/lite/lite_server.py,sha256=p9Oa2nNs65mqcssSIVOr7VOzWqfVstz6ZQEdT4f82S0,1949
|
|
643
643
|
datahub/lite/lite_util.py,sha256=G0LQHKkyEb1pc_q183g6hflShclGx7kikgMaOxtVVcs,4545
|
|
644
644
|
datahub/metadata/__init__.py,sha256=AjhXPjI6cnpdcrBRrE5gOWo15vv2TTl2ctU4UAnUN7A,238
|
|
645
|
-
datahub/metadata/_internal_schema_classes.py,sha256=
|
|
646
|
-
datahub/metadata/schema.avsc,sha256=
|
|
645
|
+
datahub/metadata/_internal_schema_classes.py,sha256=FYFjU83woitdWMNTk-fZhtCfuUVLv05-syASUGMVwGM,1069868
|
|
646
|
+
datahub/metadata/schema.avsc,sha256=AS5vIh4JGmKVeY_b0fNjUihKBmACH0voLdyxuDqqAXo,771809
|
|
647
647
|
datahub/metadata/schema_classes.py,sha256=tPT8iHCak4IsZi_oL0nirbPpI8ETTPTZzapqLRpeKU4,1326
|
|
648
648
|
datahub/metadata/urns.py,sha256=nfrCTExR-k2P9w272WVtWSN3xW1VUJngPwP3xnvULjU,1217
|
|
649
649
|
datahub/metadata/_urns/__init__.py,sha256=cOF3GHMDgPhmbLKbN02NPpuLGHSu0qNgQyBRv08eqF0,243
|
|
@@ -755,7 +755,7 @@ datahub/metadata/schemas/CorpGroupEditableInfo.avsc,sha256=sItWMAGfQdYwmF5xLzMnY
|
|
|
755
755
|
datahub/metadata/schemas/CorpGroupInfo.avsc,sha256=G83lndR7C6WPfccFg7qFE5Ely5vrdxC8x7zJB3fW3Sw,4740
|
|
756
756
|
datahub/metadata/schemas/CorpGroupKey.avsc,sha256=B_RMHAFF_nd86qtO2p1slAZnxruCmBM7DUfILAU_UaI,953
|
|
757
757
|
datahub/metadata/schemas/CorpUserCredentials.avsc,sha256=S7FkV9K_DGxhb4GFYbM5_lPvtPsOWKffjSOpfzicl-o,980
|
|
758
|
-
datahub/metadata/schemas/CorpUserEditableInfo.avsc,sha256=
|
|
758
|
+
datahub/metadata/schemas/CorpUserEditableInfo.avsc,sha256=giomIxglSQGL-v1b_phavL-aIdA-qlMGoLb7I3wNSZg,3766
|
|
759
759
|
datahub/metadata/schemas/CorpUserInfo.avsc,sha256=oObOza-5FLjZyCjj0FN4MNV1DodgTwJSV4APduAggjk,3955
|
|
760
760
|
datahub/metadata/schemas/CorpUserKey.avsc,sha256=01sbbdr8G-ZP1yc2UfY3gR-YN6b7AvDbCbNpZJ-02J4,1025
|
|
761
761
|
datahub/metadata/schemas/CorpUserSettings.avsc,sha256=38_ZXslpkgJC1PlRxPnas9cHBi5dQYUcsl1X4WSn5Gc,6806
|
|
@@ -902,7 +902,7 @@ datahub/metadata/schemas/MLModelProperties.avsc,sha256=hDCBHxGe-cmCBeU1k0ANuQlKj
|
|
|
902
902
|
datahub/metadata/schemas/MLPrimaryKeyKey.avsc,sha256=F3lgpMnHBhXsqGncHE9x06P-0RiNCrzbUUWlMkPJxFI,1132
|
|
903
903
|
datahub/metadata/schemas/MLPrimaryKeyProperties.avsc,sha256=URIuOpS93RVk8MZVcbZ-dmTwu_cN3KSOKxSR8fm-eTo,6744
|
|
904
904
|
datahub/metadata/schemas/MLTrainingRunProperties.avsc,sha256=WGgj0MuQrGD4UgvyHCJHzTnHja2LlJTOr1gLu8SySj0,4269
|
|
905
|
-
datahub/metadata/schemas/MetadataChangeEvent.avsc,sha256=
|
|
905
|
+
datahub/metadata/schemas/MetadataChangeEvent.avsc,sha256=xEHSnOcZYlUEDbBZuNxxF9gLSmjiol1Q8bBiC9w81qA,381264
|
|
906
906
|
datahub/metadata/schemas/MetadataChangeLog.avsc,sha256=soCmgrcEBE5yS-mQIm-RIefhb74ONj9Fqayxa0-59KE,13254
|
|
907
907
|
datahub/metadata/schemas/MetadataChangeProposal.avsc,sha256=pT14vUmpj7VJ8hinQ0pcCUtRKx6RAGHWh1eJixkqaE8,12647
|
|
908
908
|
datahub/metadata/schemas/Metrics.avsc,sha256=O7DJGjOwmHbb1x_Zj7AuM_HaHKjBvkfJKfUsX8icXD4,690
|
|
@@ -980,10 +980,12 @@ datahub/sdk/mlmodel.py,sha256=cO5R8BYVljmQ0w33RIOuZmj4nq8OJCDVAZGTQI6YFS8,12628
|
|
|
980
980
|
datahub/sdk/mlmodelgroup.py,sha256=wlZZHny0UORpF0fRYuVkWLSQwIHX_fWl5lPb1NKR6dM,8194
|
|
981
981
|
datahub/sdk/resolver_client.py,sha256=nKMAZJt2tRSGfKSzoREIh43PXqjM3umLiYkYHJjo1io,3243
|
|
982
982
|
datahub/sdk/search_client.py,sha256=f2L_aOy-pPB9Mk7WdLSJ6Htp3OT4cEgDIrqnCweNtM8,3592
|
|
983
|
-
datahub/sdk/search_filters.py,sha256=
|
|
983
|
+
datahub/sdk/search_filters.py,sha256=EAIsO12rwTDJexQcxiiCsuk_TjKRk8Cx8G1ENqYYnUc,22056
|
|
984
984
|
datahub/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
985
|
-
datahub/secret/datahub_secret_store.py,sha256=
|
|
985
|
+
datahub/secret/datahub_secret_store.py,sha256=qW7JI_k2xJdTZyluiJDaG5B3C68VnDpQk_M_L-Uz2vY,2583
|
|
986
986
|
datahub/secret/datahub_secrets_client.py,sha256=nDmhziKdvseJHlaDVUcAwK8Fv8maeAaG-ktZtWG2b70,1316
|
|
987
|
+
datahub/secret/environment_secret_store.py,sha256=JbTAswfmYycjZc7xQyVOELb-3nc0Kswme_Ml7pjMpic,824
|
|
988
|
+
datahub/secret/file_secret_store.py,sha256=At_EdN_KXNpPh3_zJVa9FPBBxUbA2D43Sua36MXvpL8,1614
|
|
987
989
|
datahub/secret/secret_common.py,sha256=g4anQtYPm7cI6kEJUZHjpBqeCyiUKIim2rJQByaeOoY,2864
|
|
988
990
|
datahub/secret/secret_store.py,sha256=2VP_Vd336Cy7C-2kwp4rx8MAqtYgtwv8XyzzNTXE5x8,1124
|
|
989
991
|
datahub/specific/__init__.py,sha256=r5RYM5mDnskLzin3vc87HV-9GSz3P6uQw8AlsN14LaI,88
|
|
@@ -999,7 +1001,7 @@ datahub/specific/aspect_helpers/custom_properties.py,sha256=a7w4Ml3mEFX31TwZLEpP
|
|
|
999
1001
|
datahub/specific/aspect_helpers/fine_grained_lineage.py,sha256=gXpP26gvNaoOqJCxunaO4ZHicmqC1h-hGFq5G87bGTI,2731
|
|
1000
1002
|
datahub/specific/aspect_helpers/ownership.py,sha256=rNYiJSqb_FJQhFRSIQScg4mfxgYhPvjeaYyvutY6CN0,1861
|
|
1001
1003
|
datahub/specific/aspect_helpers/siblings.py,sha256=91S7ocBbppPXCqWPTrl9n-N191t9RvMrny0_Nm5tMSU,2126
|
|
1002
|
-
datahub/specific/aspect_helpers/structured_properties.py,sha256=
|
|
1004
|
+
datahub/specific/aspect_helpers/structured_properties.py,sha256=LPFd-Vk0BlCpCgcA_0djr19kH9O-HXPh8jXtGtr9TpA,3175
|
|
1003
1005
|
datahub/specific/aspect_helpers/tags.py,sha256=YHcKfRaIvv12wcmfMc8-Dk6gf6xIvJedkn451uBuz-Y,1254
|
|
1004
1006
|
datahub/specific/aspect_helpers/terms.py,sha256=l8xoOLQ2RsIl3UnKhLisQNwrGTFIPrzfvP4zjH-AhwI,1352
|
|
1005
1007
|
datahub/sql_parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1013,7 +1015,7 @@ datahub/sql_parsing/split_statements.py,sha256=doCACwQ_Fx6m1djo7t3BnU9ZHki4EV2KJ
|
|
|
1013
1015
|
datahub/sql_parsing/sql_parsing_aggregator.py,sha256=kxxSVe3YNoz_T2OG6-F30ZuXNSXuBZ-E54RqObo6qTI,72323
|
|
1014
1016
|
datahub/sql_parsing/sql_parsing_common.py,sha256=cZ4WvVyHZuXDGjnBvKMX2_fz2EMextB5WQWcK0_saBo,3155
|
|
1015
1017
|
datahub/sql_parsing/sql_parsing_result_utils.py,sha256=prwWTj1EB2fRPv1eMB4EkpFNafIYAt-X8TIK0NWqank,796
|
|
1016
|
-
datahub/sql_parsing/sqlglot_lineage.py,sha256=
|
|
1018
|
+
datahub/sql_parsing/sqlglot_lineage.py,sha256=Zli78TtN8ow-uqNl_oloWT642a5bDGn22-FF0O0tqrs,66658
|
|
1017
1019
|
datahub/sql_parsing/sqlglot_utils.py,sha256=zH8V9tAcSVO7Y8I3sIKPhs0D_9HzdNBlranBDmk1NB4,15454
|
|
1018
1020
|
datahub/sql_parsing/tool_meta_extractor.py,sha256=5JsLPcKjuXSrPGxNIhRvX72dFPmlV33-hyvhJwlWxCY,7543
|
|
1019
1021
|
datahub/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1121,8 +1123,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
|
|
|
1121
1123
|
datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
|
|
1122
1124
|
datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
|
|
1123
1125
|
datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
|
|
1124
|
-
acryl_datahub-1.2.0.
|
|
1125
|
-
acryl_datahub-1.2.0.
|
|
1126
|
-
acryl_datahub-1.2.0.
|
|
1127
|
-
acryl_datahub-1.2.0.
|
|
1128
|
-
acryl_datahub-1.2.0.
|
|
1126
|
+
acryl_datahub-1.2.0.11rc3.dist-info/METADATA,sha256=DjrRkkPjZr9X962jox6AsQtASrlic419YuFGPy_LF3o,184162
|
|
1127
|
+
acryl_datahub-1.2.0.11rc3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1128
|
+
acryl_datahub-1.2.0.11rc3.dist-info/entry_points.txt,sha256=pzsBoTx-D-iTcmpX8oCGCyzlHP2112EygUMzZWz56M8,10105
|
|
1129
|
+
acryl_datahub-1.2.0.11rc3.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
|
|
1130
|
+
acryl_datahub-1.2.0.11rc3.dist-info/RECORD,,
|
datahub/_version.py
CHANGED
datahub/cli/docker_cli.py
CHANGED
|
@@ -363,7 +363,7 @@ EBEAN_DATASOURCE_DRIVER=com.mysql.jdbc.Driver
|
|
|
363
363
|
ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-gms/resources/entity-registry.yml
|
|
364
364
|
GRAPH_SERVICE_IMPL=elasticsearch
|
|
365
365
|
KAFKA_BOOTSTRAP_SERVER=broker:29092
|
|
366
|
-
KAFKA_SCHEMAREGISTRY_URL=http://datahub-gms:8080/schema-registry/api/
|
|
366
|
+
KAFKA_SCHEMAREGISTRY_URL=http://datahub-gms:8080${DATAHUB_GMS_BASE_PATH}/schema-registry/api/
|
|
367
367
|
SCHEMA_REGISTRY_TYPE=INTERNAL
|
|
368
368
|
|
|
369
369
|
ELASTICSEARCH_HOST=search
|
datahub/configuration/common.py
CHANGED
|
@@ -169,6 +169,17 @@ class PermissiveConfigModel(ConfigModel):
|
|
|
169
169
|
extra = Extra.allow
|
|
170
170
|
|
|
171
171
|
|
|
172
|
+
class ConnectionModel(BaseModel):
|
|
173
|
+
"""Represents the config associated with a connection"""
|
|
174
|
+
|
|
175
|
+
class Config:
|
|
176
|
+
if PYDANTIC_VERSION_2: # noqa: SIM108
|
|
177
|
+
extra = "allow"
|
|
178
|
+
else:
|
|
179
|
+
extra = Extra.allow
|
|
180
|
+
underscore_attrs_are_private = True
|
|
181
|
+
|
|
182
|
+
|
|
172
183
|
class TransformerSemantics(ConfigEnum):
|
|
173
184
|
"""Describes semantics for aspect changes"""
|
|
174
185
|
|
datahub/configuration/kafka.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
1
3
|
from pydantic import Field, validator
|
|
2
4
|
|
|
3
5
|
from datahub.configuration.common import ConfigModel, ConfigurationError
|
|
@@ -5,12 +7,28 @@ from datahub.configuration.kafka_consumer_config import CallableConsumerConfig
|
|
|
5
7
|
from datahub.configuration.validate_host_port import validate_host_port
|
|
6
8
|
|
|
7
9
|
|
|
10
|
+
def _get_schema_registry_url() -> str:
|
|
11
|
+
"""Get schema registry URL with proper base path handling."""
|
|
12
|
+
explicit_url = os.getenv("KAFKA_SCHEMAREGISTRY_URL")
|
|
13
|
+
if explicit_url:
|
|
14
|
+
return explicit_url
|
|
15
|
+
|
|
16
|
+
base_path = os.getenv("DATAHUB_GMS_BASE_PATH", "")
|
|
17
|
+
if base_path in ("/", ""):
|
|
18
|
+
base_path = ""
|
|
19
|
+
|
|
20
|
+
return f"http://localhost:8080{base_path}/schema-registry/api/"
|
|
21
|
+
|
|
22
|
+
|
|
8
23
|
class _KafkaConnectionConfig(ConfigModel):
|
|
9
24
|
# bootstrap servers
|
|
10
25
|
bootstrap: str = "localhost:9092"
|
|
11
26
|
|
|
12
27
|
# schema registry location
|
|
13
|
-
schema_registry_url: str =
|
|
28
|
+
schema_registry_url: str = Field(
|
|
29
|
+
default_factory=_get_schema_registry_url,
|
|
30
|
+
description="Schema registry URL. Can be overridden with KAFKA_SCHEMAREGISTRY_URL environment variable, or will use DATAHUB_GMS_BASE_PATH if not set.",
|
|
31
|
+
)
|
|
14
32
|
|
|
15
33
|
schema_registry_config: dict = Field(
|
|
16
34
|
default_factory=dict,
|
|
@@ -24,6 +24,9 @@ def pydantic_removed_field(
|
|
|
24
24
|
values.pop(field)
|
|
25
25
|
return values
|
|
26
26
|
|
|
27
|
+
# Mark the function as handling a removed field for doc generation
|
|
28
|
+
_validate_field_removal._doc_removed_field = field # type: ignore[attr-defined]
|
|
29
|
+
|
|
27
30
|
# Hack: Pydantic maintains unique list of validators by referring its __name__.
|
|
28
31
|
# https://github.com/pydantic/pydantic/blob/v1.10.9/pydantic/main.py#L264
|
|
29
32
|
# This hack ensures that multiple field removals do not overwrite each other.
|
|
@@ -2984,7 +2984,7 @@
|
|
|
2984
2984
|
},
|
|
2985
2985
|
{
|
|
2986
2986
|
"capability": "PLATFORM_INSTANCE",
|
|
2987
|
-
"description": "
|
|
2987
|
+
"description": "SnapLogic does not support platform instances",
|
|
2988
2988
|
"subtype_modifier": null,
|
|
2989
2989
|
"supported": false
|
|
2990
2990
|
},
|
|
@@ -2997,7 +2997,7 @@
|
|
|
2997
2997
|
],
|
|
2998
2998
|
"classname": "datahub.ingestion.source.snaplogic.snaplogic.SnaplogicSource",
|
|
2999
2999
|
"platform_id": "snaplogic",
|
|
3000
|
-
"platform_name": "
|
|
3000
|
+
"platform_name": "SnapLogic",
|
|
3001
3001
|
"support_status": "TESTING"
|
|
3002
3002
|
},
|
|
3003
3003
|
"snowflake": {
|
|
@@ -207,7 +207,7 @@ class DataHubGraph(DatahubRestEmitter, EntityVersioningAPI):
|
|
|
207
207
|
Note: Only supported with DataHub Cloud.
|
|
208
208
|
"""
|
|
209
209
|
|
|
210
|
-
if not self.server_config:
|
|
210
|
+
if not hasattr(self, "server_config") or not self.server_config:
|
|
211
211
|
self.test_connection()
|
|
212
212
|
|
|
213
213
|
base_url = self.server_config.raw_config.get("baseUrl")
|
|
@@ -838,11 +838,11 @@ class DataHubGraph(DatahubRestEmitter, EntityVersioningAPI):
|
|
|
838
838
|
def _bulk_fetch_schema_info_by_filter(
|
|
839
839
|
self,
|
|
840
840
|
*,
|
|
841
|
-
platform:
|
|
841
|
+
platform: Union[None, str, List[str]] = None,
|
|
842
842
|
platform_instance: Optional[str] = None,
|
|
843
843
|
env: Optional[str] = None,
|
|
844
844
|
query: Optional[str] = None,
|
|
845
|
-
container:
|
|
845
|
+
container: Union[None, str, List[str]] = None,
|
|
846
846
|
status: RemovedStatusFilter = RemovedStatusFilter.NOT_SOFT_DELETED,
|
|
847
847
|
batch_size: int = 100,
|
|
848
848
|
extraFilters: Optional[List[RawSearchFilterRule]] = None,
|
|
@@ -914,11 +914,11 @@ class DataHubGraph(DatahubRestEmitter, EntityVersioningAPI):
|
|
|
914
914
|
self,
|
|
915
915
|
*,
|
|
916
916
|
entity_types: Optional[Sequence[str]] = None,
|
|
917
|
-
platform:
|
|
917
|
+
platform: Union[None, str, List[str]] = None,
|
|
918
918
|
platform_instance: Optional[str] = None,
|
|
919
919
|
env: Optional[str] = None,
|
|
920
920
|
query: Optional[str] = None,
|
|
921
|
-
container:
|
|
921
|
+
container: Union[None, str, List[str]] = None,
|
|
922
922
|
status: Optional[RemovedStatusFilter] = RemovedStatusFilter.NOT_SOFT_DELETED,
|
|
923
923
|
batch_size: int = 5000,
|
|
924
924
|
extraFilters: Optional[List[RawSearchFilterRule]] = None,
|
|
@@ -1018,11 +1018,11 @@ class DataHubGraph(DatahubRestEmitter, EntityVersioningAPI):
|
|
|
1018
1018
|
self,
|
|
1019
1019
|
*,
|
|
1020
1020
|
entity_types: Optional[List[str]] = None,
|
|
1021
|
-
platform:
|
|
1021
|
+
platform: Union[None, str, List[str]] = None,
|
|
1022
1022
|
platform_instance: Optional[str] = None,
|
|
1023
1023
|
env: Optional[str] = None,
|
|
1024
1024
|
query: Optional[str] = None,
|
|
1025
|
-
container:
|
|
1025
|
+
container: Union[None, str, List[str]] = None,
|
|
1026
1026
|
status: RemovedStatusFilter = RemovedStatusFilter.NOT_SOFT_DELETED,
|
|
1027
1027
|
batch_size: int = 5000,
|
|
1028
1028
|
extra_and_filters: Optional[List[RawSearchFilterRule]] = None,
|
|
@@ -76,11 +76,21 @@ class RemovedStatusFilter(enum.Enum):
|
|
|
76
76
|
"""Search only soft-deleted entities."""
|
|
77
77
|
|
|
78
78
|
|
|
79
|
+
def _validate_or_filter_structure(
|
|
80
|
+
or_filters: List[Dict[str, List[SearchFilterRule]]],
|
|
81
|
+
) -> None:
|
|
82
|
+
for filter_list in or_filters:
|
|
83
|
+
if "and" not in filter_list:
|
|
84
|
+
raise ValueError(f"Invalid or filter: {filter_list}")
|
|
85
|
+
if not isinstance(filter_list["and"], list):
|
|
86
|
+
raise ValueError(f"Invalid or filter: {filter_list}")
|
|
87
|
+
|
|
88
|
+
|
|
79
89
|
def generate_filter(
|
|
80
|
-
platform:
|
|
90
|
+
platform: Union[None, str, List[str]],
|
|
81
91
|
platform_instance: Optional[str],
|
|
82
92
|
env: Optional[str],
|
|
83
|
-
container:
|
|
93
|
+
container: Union[None, str, List[str]],
|
|
84
94
|
status: Optional[RemovedStatusFilter],
|
|
85
95
|
extra_filters: Optional[List[RawSearchFilterRule]],
|
|
86
96
|
extra_or_filters: Optional[RawSearchFilter] = None,
|
|
@@ -93,8 +103,7 @@ def generate_filter(
|
|
|
93
103
|
:param container: The container to filter by.
|
|
94
104
|
:param status: The status to filter by.
|
|
95
105
|
:param extra_filters: Extra AND filters to apply.
|
|
96
|
-
:param extra_or_filters: Extra OR filters to apply. These are combined with
|
|
97
|
-
the AND filters using an OR at the top level.
|
|
106
|
+
:param extra_or_filters: Extra OR filters to apply. These are combined with the AND filters using an OR at the top level.
|
|
98
107
|
"""
|
|
99
108
|
and_filters: List[RawSearchFilterRule] = []
|
|
100
109
|
|
|
@@ -218,23 +227,31 @@ def _get_status_filter(status: RemovedStatusFilter) -> Optional[SearchFilterRule
|
|
|
218
227
|
raise ValueError(f"Invalid status filter: {status}")
|
|
219
228
|
|
|
220
229
|
|
|
221
|
-
def _get_container_filter(container: str) -> SearchFilterRule:
|
|
230
|
+
def _get_container_filter(container: Union[str, List[str]]) -> SearchFilterRule:
|
|
231
|
+
if not isinstance(container, list):
|
|
232
|
+
container = [container]
|
|
233
|
+
|
|
222
234
|
# Warn if container is not a fully qualified urn.
|
|
223
235
|
# TODO: Change this once we have a first-class container urn type.
|
|
224
|
-
|
|
225
|
-
|
|
236
|
+
for cont in container:
|
|
237
|
+
if guess_entity_type(cont) != "container":
|
|
238
|
+
raise ValueError(f"Invalid container urn: {cont}")
|
|
226
239
|
|
|
227
240
|
return SearchFilterRule(
|
|
228
241
|
field="browsePathV2",
|
|
229
|
-
values=
|
|
242
|
+
values=container,
|
|
230
243
|
condition="CONTAIN",
|
|
231
244
|
)
|
|
232
245
|
|
|
233
246
|
|
|
234
247
|
def _get_platform_instance_filter(
|
|
235
|
-
platform:
|
|
248
|
+
platform: Union[None, str, List[str]], platform_instance: str
|
|
236
249
|
) -> SearchFilterRule:
|
|
237
250
|
if platform:
|
|
251
|
+
if isinstance(platform, list):
|
|
252
|
+
raise ValueError(
|
|
253
|
+
"Platform instance filter cannot be combined with a multi-value platform filter."
|
|
254
|
+
)
|
|
238
255
|
# Massage the platform instance into a fully qualified urn, if necessary.
|
|
239
256
|
platform_instance = make_dataplatform_instance_urn(platform, platform_instance)
|
|
240
257
|
|
|
@@ -250,9 +267,11 @@ def _get_platform_instance_filter(
|
|
|
250
267
|
)
|
|
251
268
|
|
|
252
269
|
|
|
253
|
-
def _get_platform_filter(platform: str) -> SearchFilterRule:
|
|
270
|
+
def _get_platform_filter(platform: Union[str, List[str]]) -> SearchFilterRule:
|
|
271
|
+
if not isinstance(platform, list):
|
|
272
|
+
platform = [platform]
|
|
254
273
|
return SearchFilterRule(
|
|
255
274
|
field="platform.keyword",
|
|
256
275
|
condition="EQUAL",
|
|
257
|
-
values=[make_data_platform_urn(platform
|
|
276
|
+
values=[make_data_platform_urn(plt) for plt in platform],
|
|
258
277
|
)
|
|
@@ -126,7 +126,10 @@ def list_folders_path(
|
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
def list_objects_recursive_path(
|
|
129
|
-
s3_uri: str,
|
|
129
|
+
s3_uri: str,
|
|
130
|
+
*,
|
|
131
|
+
startswith: str = "",
|
|
132
|
+
aws_config: Optional[AwsConnectionConfig] = None,
|
|
130
133
|
) -> Iterable["ObjectSummary"]:
|
|
131
134
|
"""
|
|
132
135
|
Given an S3 URI to a folder or bucket, return all objects underneath that URI, optionally
|
|
@@ -194,6 +194,9 @@ class PathSpec(ConfigModel):
|
|
|
194
194
|
return True
|
|
195
195
|
|
|
196
196
|
def dir_allowed(self, path: str) -> bool:
|
|
197
|
+
if not path.endswith("/"):
|
|
198
|
+
path += "/"
|
|
199
|
+
|
|
197
200
|
if self.glob_include.endswith("**"):
|
|
198
201
|
return self.allowed(path, ignore_ext=True)
|
|
199
202
|
|
|
@@ -221,9 +224,8 @@ class PathSpec(ConfigModel):
|
|
|
221
224
|
):
|
|
222
225
|
return False
|
|
223
226
|
|
|
224
|
-
file_name_pattern = self.include.rsplit("/", 1)[1]
|
|
225
227
|
table_name, _ = self.extract_table_name_and_path(
|
|
226
|
-
|
|
228
|
+
path + self.get_remaining_glob_include(path)
|
|
227
229
|
)
|
|
228
230
|
if not self.tables_filter_pattern.allowed(table_name):
|
|
229
231
|
return False
|
|
@@ -571,3 +573,38 @@ class PathSpec(ConfigModel):
|
|
|
571
573
|
"/".join(path.split("/")[:depth]) + "/" + parsed_vars.named["table"]
|
|
572
574
|
)
|
|
573
575
|
return self._extract_table_name(parsed_vars.named), table_path
|
|
576
|
+
|
|
577
|
+
def has_correct_number_of_directory_components(self, path: str) -> bool:
|
|
578
|
+
"""
|
|
579
|
+
Checks that a given path has the same number of components as the path spec
|
|
580
|
+
has directory components. Useful for checking if a path needs to descend further
|
|
581
|
+
into child directories or if the source can switch into file listing mode. If the
|
|
582
|
+
glob form of the path spec ends in "**", this always returns False.
|
|
583
|
+
"""
|
|
584
|
+
if self.glob_include.endswith("**"):
|
|
585
|
+
return False
|
|
586
|
+
|
|
587
|
+
if not path.endswith("/"):
|
|
588
|
+
path += "/"
|
|
589
|
+
path_slash = path.count("/")
|
|
590
|
+
glob_slash = self.glob_include.count("/")
|
|
591
|
+
if path_slash == glob_slash:
|
|
592
|
+
return True
|
|
593
|
+
return False
|
|
594
|
+
|
|
595
|
+
def get_remaining_glob_include(self, path: str) -> str:
|
|
596
|
+
"""
|
|
597
|
+
Given a path, return the remaining components of the path spec (if any
|
|
598
|
+
exist) in glob form. If the glob form of the path spec ends in "**", this
|
|
599
|
+
function's return value also always ends in "**", regardless of how
|
|
600
|
+
many components the input path has.
|
|
601
|
+
"""
|
|
602
|
+
if not path.endswith("/"):
|
|
603
|
+
path += "/"
|
|
604
|
+
path_slash = path.count("/")
|
|
605
|
+
remainder = "/".join(self.glob_include.split("/")[path_slash:])
|
|
606
|
+
if remainder:
|
|
607
|
+
return remainder
|
|
608
|
+
if self.glob_include.endswith("**"):
|
|
609
|
+
return "**"
|
|
610
|
+
return ""
|
|
@@ -307,6 +307,12 @@ class ViewFieldType(Enum):
|
|
|
307
307
|
UNKNOWN = "Unknown"
|
|
308
308
|
|
|
309
309
|
|
|
310
|
+
class ViewFieldDimensionGroupType(Enum):
|
|
311
|
+
# Ref: https://cloud.google.com/looker/docs/reference/param-field-dimension-group
|
|
312
|
+
TIME = "time"
|
|
313
|
+
DURATION = "duration"
|
|
314
|
+
|
|
315
|
+
|
|
310
316
|
class ViewFieldValue(Enum):
|
|
311
317
|
NOT_AVAILABLE = "NotAvailable"
|
|
312
318
|
|