acryl-datahub 1.0.0.3rc8__py3-none-any.whl → 1.0.0.3rc10__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.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/METADATA +2466 -2466
- {acryl_datahub-1.0.0.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/RECORD +60 -60
- {acryl_datahub-1.0.0.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/WHEEL +1 -1
- datahub/_version.py +1 -1
- datahub/api/circuit_breaker/operation_circuit_breaker.py +2 -2
- datahub/api/entities/datajob/dataflow.py +3 -3
- datahub/api/entities/dataset/dataset.py +9 -11
- datahub/api/entities/forms/forms.py +34 -35
- datahub/api/graphql/assertion.py +1 -1
- datahub/api/graphql/operation.py +4 -4
- datahub/cli/delete_cli.py +1 -1
- datahub/cli/docker_cli.py +2 -2
- datahub/configuration/common.py +5 -0
- datahub/configuration/source_common.py +1 -1
- datahub/emitter/request_helper.py +116 -3
- datahub/emitter/rest_emitter.py +44 -52
- datahub/ingestion/api/source.py +2 -5
- datahub/ingestion/api/source_helpers.py +1 -0
- datahub/ingestion/glossary/classification_mixin.py +4 -2
- datahub/ingestion/graph/client.py +3 -1
- datahub/ingestion/graph/config.py +1 -0
- datahub/ingestion/graph/filters.py +1 -1
- datahub/ingestion/source/aws/sagemaker_processors/feature_groups.py +1 -1
- datahub/ingestion/source/bigquery_v2/bigquery.py +24 -23
- datahub/ingestion/source/cassandra/cassandra_profiling.py +25 -24
- datahub/ingestion/source/datahub/datahub_database_reader.py +12 -11
- datahub/ingestion/source/dbt/dbt_cloud.py +2 -6
- datahub/ingestion/source/dbt/dbt_common.py +10 -2
- datahub/ingestion/source/dbt/dbt_core.py +82 -42
- datahub/ingestion/source/feast.py +4 -4
- datahub/ingestion/source/iceberg/iceberg_common.py +2 -2
- datahub/ingestion/source/ldap.py +1 -1
- datahub/ingestion/source/looker/looker_lib_wrapper.py +1 -1
- datahub/ingestion/source/looker/lookml_source.py +7 -1
- datahub/ingestion/source/mode.py +74 -28
- datahub/ingestion/source/neo4j/neo4j_source.py +85 -55
- datahub/ingestion/source/powerbi/config.py +1 -1
- datahub/ingestion/source/powerbi/rest_api_wrapper/data_resolver.py +2 -2
- datahub/ingestion/source/redshift/usage.py +10 -9
- datahub/ingestion/source/slack/slack.py +4 -52
- datahub/ingestion/source/snowflake/snowflake_connection.py +19 -1
- datahub/ingestion/source/sql/clickhouse.py +5 -1
- datahub/ingestion/source/sql/druid.py +7 -2
- datahub/ingestion/source/sql/oracle.py +6 -2
- datahub/ingestion/source/tableau/tableau_validation.py +1 -1
- datahub/ingestion/source/usage/clickhouse_usage.py +7 -3
- datahub/ingestion/source/usage/starburst_trino_usage.py +5 -3
- datahub/metadata/{_schema_classes.py → _internal_schema_classes.py} +490 -490
- datahub/metadata/_urns/urn_defs.py +1786 -1786
- datahub/metadata/schema.avsc +17364 -16988
- datahub/metadata/schema_classes.py +3 -3
- datahub/metadata/schemas/__init__.py +3 -3
- datahub/specific/dataset.py +12 -0
- datahub/testing/check_imports.py +1 -1
- datahub/utilities/logging_manager.py +8 -1
- datahub/utilities/sqlalchemy_query_combiner.py +4 -5
- datahub/utilities/urn_encoder.py +1 -1
- {acryl_datahub-1.0.0.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.0.0.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.0.0.3rc8.dist-info → acryl_datahub-1.0.0.3rc10.dist-info}/top_level.txt +0 -0
|
@@ -20,16 +20,16 @@ from datahub.utilities._custom_package_loader import get_custom_models_package
|
|
|
20
20
|
_custom_package_path = get_custom_models_package()
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING or not _custom_package_path:
|
|
23
|
-
from .
|
|
23
|
+
from ._internal_schema_classes import *
|
|
24
24
|
|
|
25
25
|
# Required explicitly because __all__ doesn't include _ prefixed names.
|
|
26
|
-
from .
|
|
26
|
+
from ._internal_schema_classes import __SCHEMA_TYPES
|
|
27
27
|
|
|
28
28
|
if IS_SPHINX_BUILD:
|
|
29
29
|
# Set __module__ to the current module so that Sphinx will document the
|
|
30
30
|
# classes as belonging to this module instead of the custom package.
|
|
31
31
|
for _cls in list(globals().values()):
|
|
32
|
-
if hasattr(_cls, "__module__") and "datahub.metadata.
|
|
32
|
+
if hasattr(_cls, "__module__") and "datahub.metadata._internal_schema_classes" in _cls.__module__:
|
|
33
33
|
_cls.__module__ = __name__
|
|
34
34
|
else:
|
|
35
35
|
_custom_package = importlib.import_module(_custom_package_path)
|
|
@@ -15,10 +15,10 @@ import pathlib
|
|
|
15
15
|
def _load_schema(schema_name: str) -> str:
|
|
16
16
|
return (pathlib.Path(__file__).parent / f"{schema_name}.avsc").read_text()
|
|
17
17
|
|
|
18
|
-
def getMetadataChangeProposalSchema() -> str:
|
|
19
|
-
return _load_schema("MetadataChangeProposal")
|
|
20
|
-
|
|
21
18
|
def getMetadataChangeEventSchema() -> str:
|
|
22
19
|
return _load_schema("MetadataChangeEvent")
|
|
23
20
|
|
|
21
|
+
def getMetadataChangeProposalSchema() -> str:
|
|
22
|
+
return _load_schema("MetadataChangeProposal")
|
|
23
|
+
|
|
24
24
|
# fmt: on
|
datahub/specific/dataset.py
CHANGED
|
@@ -292,3 +292,15 @@ class DatasetPatchBuilder(
|
|
|
292
292
|
value=timestamp,
|
|
293
293
|
)
|
|
294
294
|
return self
|
|
295
|
+
|
|
296
|
+
def set_external_url(
|
|
297
|
+
self, external_url: Optional[str] = None
|
|
298
|
+
) -> "DatasetPatchBuilder":
|
|
299
|
+
if external_url is not None:
|
|
300
|
+
self._add_patch(
|
|
301
|
+
DatasetProperties.ASPECT_NAME,
|
|
302
|
+
"add",
|
|
303
|
+
path=("externalUrl",),
|
|
304
|
+
value=external_url,
|
|
305
|
+
)
|
|
306
|
+
return self
|
datahub/testing/check_imports.py
CHANGED
|
@@ -9,7 +9,7 @@ def ensure_no_indirect_model_imports(dirs: List[pathlib.Path]) -> None:
|
|
|
9
9
|
# If our needs become more complex, we should move to a proper linter.
|
|
10
10
|
denied_imports = {
|
|
11
11
|
"src.": "datahub.*",
|
|
12
|
-
"datahub.metadata.
|
|
12
|
+
"datahub.metadata._internal_schema_classes": "datahub.metadata.schema_classes",
|
|
13
13
|
"datahub.metadata._urns": "datahub.metadata.urns",
|
|
14
14
|
}
|
|
15
15
|
ignored_files = {
|
|
@@ -161,6 +161,7 @@ class _LogBuffer:
|
|
|
161
161
|
self._buffer: Deque[str] = collections.deque(maxlen=maxlen)
|
|
162
162
|
|
|
163
163
|
def write(self, line: str) -> None:
|
|
164
|
+
# We do not expect `line` to have a trailing newline.
|
|
164
165
|
if len(line) > IN_MEMORY_LOG_BUFFER_MAX_LINE_LENGTH:
|
|
165
166
|
line = line[:IN_MEMORY_LOG_BUFFER_MAX_LINE_LENGTH] + "[truncated]"
|
|
166
167
|
|
|
@@ -188,7 +189,13 @@ class _BufferLogHandler(logging.Handler):
|
|
|
188
189
|
message = self.format(record)
|
|
189
190
|
except TypeError as e:
|
|
190
191
|
message = f"Error formatting log message: {e}\nMessage: {record.msg}, Args: {record.args}"
|
|
191
|
-
|
|
192
|
+
|
|
193
|
+
# For exception stack traces, the message is split over multiple lines,
|
|
194
|
+
# but we store it as a single string. Because we truncate based on line
|
|
195
|
+
# length, it's better for us to split it into multiple lines so that we
|
|
196
|
+
# don't lose any information on deeper stack traces.
|
|
197
|
+
for line in message.split("\n"):
|
|
198
|
+
self._storage.write(line)
|
|
192
199
|
|
|
193
200
|
|
|
194
201
|
def _remove_all_handlers(logger: logging.Logger) -> None:
|
|
@@ -272,11 +272,10 @@ class SQLAlchemyQueryCombiner:
|
|
|
272
272
|
self.report.uncombined_queries_issued += 1
|
|
273
273
|
return _sa_execute_underlying_method(conn, query, *args, **kwargs)
|
|
274
274
|
|
|
275
|
-
with _sa_execute_method_patching_lock
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
yield self
|
|
275
|
+
with _sa_execute_method_patching_lock, unittest.mock.patch(
|
|
276
|
+
"sqlalchemy.engine.Connection.execute", _sa_execute_fake
|
|
277
|
+
):
|
|
278
|
+
yield self
|
|
280
279
|
|
|
281
280
|
def run(self, method: Callable[[], None]) -> None:
|
|
282
281
|
"""
|
datahub/utilities/urn_encoder.py
CHANGED
|
@@ -4,7 +4,7 @@ from typing import List
|
|
|
4
4
|
# NOTE: Frontend relies on encoding these three characters. Specifically, we decode and encode schema fields for column level lineage.
|
|
5
5
|
# If this changes, make appropriate changes to datahub-web-react/src/app/lineage/utils/columnLineageUtils.ts
|
|
6
6
|
# We also rely on encoding these exact three characters when generating schemaField urns in our graphQL layer. Update SchemaFieldUtils if this changes.
|
|
7
|
-
# Also see https://
|
|
7
|
+
# Also see https://docs.datahub.com/docs/what/urn/#restrictions
|
|
8
8
|
RESERVED_CHARS = {",", "(", ")", "␟"}
|
|
9
9
|
RESERVED_CHARS_EXTENDED = RESERVED_CHARS.union({"%"})
|
|
10
10
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|