acryl-datahub 1.2.0.9rc2__py3-none-any.whl → 1.2.0.10__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.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/METADATA +2553 -2611
- {acryl_datahub-1.2.0.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/RECORD +118 -111
- {acryl_datahub-1.2.0.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/entry_points.txt +2 -0
- datahub/_version.py +1 -1
- datahub/api/entities/assertion/assertion.py +1 -1
- datahub/api/entities/corpgroup/corpgroup.py +1 -1
- datahub/api/entities/dataproduct/dataproduct.py +6 -3
- datahub/api/entities/dataset/dataset.py +9 -18
- datahub/api/entities/structuredproperties/structuredproperties.py +2 -2
- datahub/api/graphql/operation.py +10 -6
- datahub/cli/docker_check.py +2 -2
- datahub/configuration/common.py +29 -1
- datahub/configuration/connection_resolver.py +5 -2
- datahub/configuration/import_resolver.py +7 -4
- datahub/configuration/pydantic_migration_helpers.py +0 -9
- datahub/configuration/source_common.py +3 -2
- datahub/configuration/validate_field_deprecation.py +5 -2
- datahub/configuration/validate_field_removal.py +5 -2
- datahub/configuration/validate_field_rename.py +6 -5
- datahub/configuration/validate_multiline_string.py +5 -2
- datahub/ingestion/autogenerated/capability_summary.json +45 -1
- datahub/ingestion/run/pipeline_config.py +2 -2
- datahub/ingestion/source/azure/azure_common.py +1 -1
- datahub/ingestion/source/bigquery_v2/bigquery_config.py +28 -14
- datahub/ingestion/source/bigquery_v2/queries_extractor.py +4 -5
- datahub/ingestion/source/common/gcp_credentials_config.py +3 -1
- datahub/ingestion/source/data_lake_common/path_spec.py +16 -16
- datahub/ingestion/source/datahub/config.py +8 -9
- datahub/ingestion/source/dbt/dbt_common.py +65 -5
- datahub/ingestion/source/delta_lake/config.py +1 -1
- datahub/ingestion/source/dremio/dremio_config.py +3 -4
- datahub/ingestion/source/feast.py +8 -10
- datahub/ingestion/source/fivetran/config.py +1 -1
- datahub/ingestion/source/gcs/gcs_source.py +19 -2
- datahub/ingestion/source/ge_data_profiler.py +15 -2
- datahub/ingestion/source/ge_profiling_config.py +26 -22
- datahub/ingestion/source/grafana/grafana_config.py +2 -2
- datahub/ingestion/source/grafana/models.py +12 -14
- datahub/ingestion/source/hex/hex.py +6 -1
- datahub/ingestion/source/iceberg/iceberg_profiler.py +4 -2
- datahub/ingestion/source/kafka_connect/common.py +2 -2
- datahub/ingestion/source/looker/looker_common.py +76 -75
- datahub/ingestion/source/looker/looker_config.py +15 -4
- datahub/ingestion/source/looker/looker_source.py +493 -547
- datahub/ingestion/source/looker/lookml_config.py +1 -1
- datahub/ingestion/source/looker/lookml_source.py +46 -88
- datahub/ingestion/source/metabase.py +9 -2
- datahub/ingestion/source/metadata/business_glossary.py +7 -7
- datahub/ingestion/source/metadata/lineage.py +1 -1
- datahub/ingestion/source/mode.py +13 -5
- datahub/ingestion/source/nifi.py +1 -1
- datahub/ingestion/source/powerbi/config.py +14 -21
- datahub/ingestion/source/preset.py +1 -1
- datahub/ingestion/source/qlik_sense/data_classes.py +28 -8
- datahub/ingestion/source/redash.py +1 -1
- datahub/ingestion/source/redshift/config.py +6 -3
- datahub/ingestion/source/redshift/query.py +23 -19
- datahub/ingestion/source/s3/source.py +26 -24
- datahub/ingestion/source/salesforce.py +13 -9
- datahub/ingestion/source/schema/json_schema.py +14 -14
- datahub/ingestion/source/sigma/data_classes.py +3 -0
- datahub/ingestion/source/snaplogic/__init__.py +0 -0
- datahub/ingestion/source/snaplogic/snaplogic.py +355 -0
- datahub/ingestion/source/snaplogic/snaplogic_config.py +37 -0
- datahub/ingestion/source/snaplogic/snaplogic_lineage_extractor.py +107 -0
- datahub/ingestion/source/snaplogic/snaplogic_parser.py +168 -0
- datahub/ingestion/source/snaplogic/snaplogic_utils.py +31 -0
- datahub/ingestion/source/snowflake/snowflake_config.py +12 -15
- datahub/ingestion/source/snowflake/snowflake_connection.py +8 -3
- datahub/ingestion/source/snowflake/snowflake_lineage_v2.py +15 -2
- datahub/ingestion/source/snowflake/snowflake_queries.py +4 -5
- datahub/ingestion/source/sql/athena.py +2 -1
- datahub/ingestion/source/sql/clickhouse.py +12 -7
- datahub/ingestion/source/sql/cockroachdb.py +5 -3
- datahub/ingestion/source/sql/druid.py +2 -2
- datahub/ingestion/source/sql/hive.py +4 -3
- datahub/ingestion/source/sql/hive_metastore.py +7 -9
- datahub/ingestion/source/sql/mssql/source.py +2 -2
- datahub/ingestion/source/sql/mysql.py +2 -2
- datahub/ingestion/source/sql/oracle.py +3 -3
- datahub/ingestion/source/sql/presto.py +2 -1
- datahub/ingestion/source/sql/teradata.py +4 -4
- datahub/ingestion/source/sql/trino.py +2 -1
- datahub/ingestion/source/sql/two_tier_sql_source.py +2 -3
- datahub/ingestion/source/sql/vertica.py +1 -1
- datahub/ingestion/source/sql_queries.py +6 -6
- datahub/ingestion/source/state/checkpoint.py +5 -1
- datahub/ingestion/source/state/entity_removal_state.py +5 -2
- datahub/ingestion/source/state/stateful_ingestion_base.py +5 -8
- datahub/ingestion/source/superset.py +122 -15
- datahub/ingestion/source/tableau/tableau.py +68 -14
- datahub/ingestion/source/tableau/tableau_common.py +5 -0
- datahub/ingestion/source/tableau/tableau_constant.py +1 -0
- datahub/ingestion/source/tableau/tableau_server_wrapper.py +3 -0
- datahub/ingestion/source/unity/config.py +7 -3
- datahub/ingestion/source/usage/usage_common.py +3 -3
- datahub/ingestion/source_config/pulsar.py +3 -1
- datahub/ingestion/transformer/set_browse_path.py +112 -0
- datahub/metadata/_internal_schema_classes.py +728 -528
- datahub/metadata/_urns/urn_defs.py +1702 -1702
- datahub/metadata/com/linkedin/pegasus2avro/common/__init__.py +2 -0
- datahub/metadata/com/linkedin/pegasus2avro/settings/global/__init__.py +4 -0
- datahub/metadata/schema.avsc +17434 -17732
- datahub/metadata/schemas/GlobalSettingsInfo.avsc +72 -0
- datahub/metadata/schemas/InstitutionalMemory.avsc +22 -0
- datahub/metadata/schemas/LogicalParent.avsc +2 -1
- datahub/metadata/schemas/MLModelGroupKey.avsc +2 -1
- datahub/metadata/schemas/MetadataChangeEvent.avsc +22 -0
- datahub/sdk/_shared.py +126 -0
- datahub/sdk/chart.py +87 -30
- datahub/sdk/dashboard.py +79 -34
- datahub/sdk/entity_client.py +11 -4
- datahub/sdk/lineage_client.py +3 -3
- datahub/sdk/search_filters.py +1 -7
- datahub/sql_parsing/split_statements.py +13 -0
- {acryl_datahub-1.2.0.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.2.0.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.2.0.9rc2.dist-info → acryl_datahub-1.2.0.10.dist-info}/top_level.txt +0 -0
datahub/sdk/entity_client.py
CHANGED
|
@@ -98,11 +98,14 @@ class EntityClient:
|
|
|
98
98
|
except KeyError as e:
|
|
99
99
|
# Try to import cloud-specific entities if not found
|
|
100
100
|
try:
|
|
101
|
-
from acryl_datahub_cloud.
|
|
102
|
-
from acryl_datahub_cloud.
|
|
101
|
+
from acryl_datahub_cloud.sdk.entities.assertion import Assertion
|
|
102
|
+
from acryl_datahub_cloud.sdk.entities.monitor import Monitor
|
|
103
|
+
from acryl_datahub_cloud.sdk.entities.subscription import Subscription
|
|
103
104
|
|
|
104
105
|
if urn.entity_type == "assertion":
|
|
105
106
|
EntityClass = Assertion
|
|
107
|
+
elif urn.entity_type == "subscription":
|
|
108
|
+
EntityClass = Subscription
|
|
106
109
|
elif urn.entity_type == "monitor":
|
|
107
110
|
EntityClass = Monitor
|
|
108
111
|
else:
|
|
@@ -124,13 +127,17 @@ class EntityClient:
|
|
|
124
127
|
|
|
125
128
|
# Type narrowing for cloud-specific entities
|
|
126
129
|
if urn.entity_type == "assertion":
|
|
127
|
-
from acryl_datahub_cloud.
|
|
130
|
+
from acryl_datahub_cloud.sdk.entities.assertion import Assertion
|
|
128
131
|
|
|
129
132
|
assert isinstance(entity, Assertion)
|
|
130
133
|
elif urn.entity_type == "monitor":
|
|
131
|
-
from acryl_datahub_cloud.
|
|
134
|
+
from acryl_datahub_cloud.sdk.entities.monitor import Monitor
|
|
132
135
|
|
|
133
136
|
assert isinstance(entity, Monitor)
|
|
137
|
+
elif urn.entity_type == "subscription":
|
|
138
|
+
from acryl_datahub_cloud.sdk.entities.subscription import Subscription
|
|
139
|
+
|
|
140
|
+
assert isinstance(entity, Subscription)
|
|
134
141
|
|
|
135
142
|
return entity
|
|
136
143
|
|
datahub/sdk/lineage_client.py
CHANGED
|
@@ -905,9 +905,9 @@ class LineageClient:
|
|
|
905
905
|
direction: Literal["upstream", "downstream"],
|
|
906
906
|
) -> LineageResult:
|
|
907
907
|
"""Create a LineageResult from entity and entry data."""
|
|
908
|
-
platform = entity.get("platform"
|
|
909
|
-
"dataPlatformInstance"
|
|
910
|
-
).get("
|
|
908
|
+
platform = (entity.get("platform") or {}).get("name") or (
|
|
909
|
+
(entity.get("dataPlatformInstance") or {}).get("platform") or {}
|
|
910
|
+
).get("name")
|
|
911
911
|
|
|
912
912
|
result = LineageResult(
|
|
913
913
|
urn=entity["urn"],
|
datahub/sdk/search_filters.py
CHANGED
|
@@ -39,13 +39,7 @@ _OrFilters = List[_AndSearchFilterRule]
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
class _BaseFilter(ConfigModel):
|
|
42
|
-
|
|
43
|
-
# We can't wrap this in a TYPE_CHECKING block because the pydantic plugin
|
|
44
|
-
# doesn't recognize it properly. So unfortunately we'll need to live
|
|
45
|
-
# with the deprecation warning w/ pydantic v2.
|
|
46
|
-
allow_population_by_field_name = True
|
|
47
|
-
if PYDANTIC_VERSION_2:
|
|
48
|
-
populate_by_name = True
|
|
42
|
+
model_config = pydantic.ConfigDict(populate_by_name=True)
|
|
49
43
|
|
|
50
44
|
@abc.abstractmethod
|
|
51
45
|
def compile(self) -> _OrFilters: ...
|
|
@@ -52,6 +52,7 @@ class ParserState(Enum):
|
|
|
52
52
|
STRING = 2
|
|
53
53
|
COMMENT = 3
|
|
54
54
|
MULTILINE_COMMENT = 4
|
|
55
|
+
BRACKETED_IDENTIFIER = 5
|
|
55
56
|
|
|
56
57
|
|
|
57
58
|
class _StatementSplitter:
|
|
@@ -141,6 +142,10 @@ class _StatementSplitter:
|
|
|
141
142
|
self.state = ParserState.STRING
|
|
142
143
|
self.current_statement.append(c)
|
|
143
144
|
prev_real_char = c
|
|
145
|
+
elif c == "[":
|
|
146
|
+
self.state = ParserState.BRACKETED_IDENTIFIER
|
|
147
|
+
self.current_statement.append(c)
|
|
148
|
+
prev_real_char = c
|
|
144
149
|
elif c == "-" and next_char == "-":
|
|
145
150
|
self.state = ParserState.COMMENT
|
|
146
151
|
self.current_statement.append(c)
|
|
@@ -172,6 +177,14 @@ class _StatementSplitter:
|
|
|
172
177
|
elif c == "'":
|
|
173
178
|
self.state = ParserState.NORMAL
|
|
174
179
|
|
|
180
|
+
elif self.state == ParserState.BRACKETED_IDENTIFIER:
|
|
181
|
+
self.current_statement.append(c)
|
|
182
|
+
if c == "]" and next_char == "]":
|
|
183
|
+
self.current_statement.append(next_char)
|
|
184
|
+
self.i += 1
|
|
185
|
+
elif c == "]":
|
|
186
|
+
self.state = ParserState.NORMAL
|
|
187
|
+
|
|
175
188
|
elif self.state == ParserState.COMMENT:
|
|
176
189
|
self.current_statement.append(c)
|
|
177
190
|
if c == "\n":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|