acryl-datahub 0.15.0.5rc8__py3-none-any.whl → 0.15.0.5rc10__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.

Files changed (46) hide show
  1. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/METADATA +2525 -2523
  2. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/RECORD +46 -45
  3. datahub/_version.py +1 -1
  4. datahub/entrypoints.py +9 -0
  5. datahub/ingestion/api/incremental_lineage_helper.py +4 -0
  6. datahub/ingestion/glossary/classification_mixin.py +6 -0
  7. datahub/ingestion/glossary/classifier.py +3 -2
  8. datahub/ingestion/graph/client.py +2 -1
  9. datahub/ingestion/graph/entity_versioning.py +201 -0
  10. datahub/ingestion/source/abs/report.py +2 -2
  11. datahub/ingestion/source/aws/sagemaker_processors/common.py +3 -2
  12. datahub/ingestion/source/bigquery_v2/bigquery_report.py +1 -1
  13. datahub/ingestion/source/delta_lake/report.py +2 -2
  14. datahub/ingestion/source/dynamodb/dynamodb.py +2 -1
  15. datahub/ingestion/source/elastic_search.py +2 -1
  16. datahub/ingestion/source/ge_profiling_config.py +11 -7
  17. datahub/ingestion/source/iceberg/iceberg_common.py +3 -2
  18. datahub/ingestion/source/identity/azure_ad.py +6 -14
  19. datahub/ingestion/source/identity/okta.py +2 -1
  20. datahub/ingestion/source/kafka/kafka.py +2 -1
  21. datahub/ingestion/source/kafka_connect/common.py +2 -1
  22. datahub/ingestion/source/ldap.py +2 -1
  23. datahub/ingestion/source/looker/lookml_config.py +9 -5
  24. datahub/ingestion/source/mode.py +2 -4
  25. datahub/ingestion/source/mongodb.py +2 -1
  26. datahub/ingestion/source/nifi.py +2 -1
  27. datahub/ingestion/source/powerbi/config.py +2 -2
  28. datahub/ingestion/source/powerbi_report_server/report_server.py +2 -1
  29. datahub/ingestion/source/redash.py +5 -5
  30. datahub/ingestion/source/salesforce.py +4 -1
  31. datahub/ingestion/source/snowflake/snowflake_config.py +7 -0
  32. datahub/ingestion/source/snowflake/snowflake_report.py +2 -1
  33. datahub/ingestion/source/snowflake/snowflake_v2.py +1 -0
  34. datahub/ingestion/source/tableau/tableau.py +2 -1
  35. datahub/ingestion/source/unity/ge_profiler.py +55 -4
  36. datahub/ingestion/source/unity/report.py +1 -0
  37. datahub/ingestion/source_report/pulsar.py +5 -4
  38. datahub/metadata/schema.avsc +5 -5
  39. datahub/metadata/schemas/DashboardInfo.avsc +5 -5
  40. datahub/metadata/schemas/MetadataChangeEvent.avsc +5 -5
  41. datahub/specific/dashboard.py +43 -1
  42. datahub/upgrade/upgrade.py +13 -5
  43. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/LICENSE +0 -0
  44. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/WHEEL +0 -0
  45. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/entry_points.txt +0 -0
  46. {acryl_datahub-0.15.0.5rc8.dist-info → acryl_datahub-0.15.0.5rc10.dist-info}/top_level.txt +0 -0
@@ -258,16 +258,16 @@
258
258
  {
259
259
  "Relationship": {
260
260
  "/*/destinationUrn": {
261
- "createdActor": "datasetEdges/*/created/actor",
262
- "createdOn": "datasetEdges/*/created/time",
261
+ "createdActor": "dashboards/*/created/actor",
262
+ "createdOn": "dashboards/*/created/time",
263
263
  "entityTypes": [
264
264
  "dashboard"
265
265
  ],
266
266
  "isLineage": true,
267
267
  "name": "DashboardContainsDashboard",
268
- "properties": "datasetEdges/*/properties",
269
- "updatedActor": "datasetEdges/*/lastModified/actor",
270
- "updatedOn": "datasetEdges/*/lastModified/time"
268
+ "properties": "dashboards/*/properties",
269
+ "updatedActor": "dashboards/*/lastModified/actor",
270
+ "updatedOn": "dashboards/*/lastModified/time"
271
271
  }
272
272
  },
273
273
  "type": {
@@ -2049,16 +2049,16 @@
2049
2049
  {
2050
2050
  "Relationship": {
2051
2051
  "/*/destinationUrn": {
2052
- "createdActor": "datasetEdges/*/created/actor",
2053
- "createdOn": "datasetEdges/*/created/time",
2052
+ "createdActor": "dashboards/*/created/actor",
2053
+ "createdOn": "dashboards/*/created/time",
2054
2054
  "entityTypes": [
2055
2055
  "dashboard"
2056
2056
  ],
2057
2057
  "isLineage": true,
2058
2058
  "name": "DashboardContainsDashboard",
2059
- "properties": "datasetEdges/*/properties",
2060
- "updatedActor": "datasetEdges/*/lastModified/actor",
2061
- "updatedOn": "datasetEdges/*/lastModified/time"
2059
+ "properties": "dashboards/*/properties",
2060
+ "updatedActor": "dashboards/*/lastModified/actor",
2061
+ "updatedOn": "dashboards/*/lastModified/time"
2062
2062
  }
2063
2063
  },
2064
2064
  "type": {
@@ -161,7 +161,7 @@ class DashboardPatchBuilder(
161
161
  lastModified=self._mint_auditstamp(),
162
162
  )
163
163
 
164
- self._ensure_urn_type("dataset", [chart_edge], "add_chart_edge")
164
+ self._ensure_urn_type("chart", [chart_edge], "add_chart_edge")
165
165
  self._add_patch(
166
166
  DashboardInfo.ASPECT_NAME,
167
167
  "add",
@@ -271,6 +271,48 @@ class DashboardPatchBuilder(
271
271
 
272
272
  return self
273
273
 
274
+ def add_dashboard(
275
+ self, dashboard: Union[Edge, Urn, str]
276
+ ) -> "DashboardPatchBuilder":
277
+ """
278
+ Adds an dashboard to the DashboardPatchBuilder.
279
+
280
+ Args:
281
+ dashboard: The dashboard, which can be an Edge object, Urn object, or a string.
282
+
283
+ Returns:
284
+ The DashboardPatchBuilder instance.
285
+
286
+ Raises:
287
+ ValueError: If the dashboard is not a Dashboard urn.
288
+
289
+ Notes:
290
+ If `dashboard` is an Edge object, it is used directly. If `dashboard` is a Urn object or string,
291
+ it is converted to an Edge object and added with default audit stamps.
292
+ """
293
+ if isinstance(dashboard, Edge):
294
+ dashboard_urn: str = dashboard.destinationUrn
295
+ dashboard_edge: Edge = dashboard
296
+ elif isinstance(dashboard, (Urn, str)):
297
+ dashboard_urn = str(dashboard)
298
+ if not dashboard_urn.startswith("urn:li:dashboard:"):
299
+ raise ValueError(f"Input {dashboard} is not a Dashboard urn")
300
+
301
+ dashboard_edge = Edge(
302
+ destinationUrn=dashboard_urn,
303
+ created=self._mint_auditstamp(),
304
+ lastModified=self._mint_auditstamp(),
305
+ )
306
+
307
+ self._ensure_urn_type("dashboard", [dashboard_edge], "add_dashboard")
308
+ self._add_patch(
309
+ DashboardInfo.ASPECT_NAME,
310
+ "add",
311
+ path=("dashboards", dashboard_urn),
312
+ value=dashboard_edge,
313
+ )
314
+ return self
315
+
274
316
  def set_dashboard_url(
275
317
  self, dashboard_url: Optional[str]
276
318
  ) -> "DashboardPatchBuilder":
@@ -55,11 +55,19 @@ async def get_client_version_stats():
55
55
  async with session.get(pypi_url) as resp:
56
56
  response_json = await resp.json()
57
57
  try:
58
- releases = response_json.get("releases", [])
59
- sorted_releases = sorted(releases.keys(), key=lambda x: Version(x))
60
- latest_cli_release_string = [
61
- x for x in sorted_releases if "rc" not in x
62
- ][-1]
58
+ releases = response_json.get("releases", {})
59
+ filtered_releases = {
60
+ version: release_files
61
+ for version, release_files in releases.items()
62
+ if not all(
63
+ release_file.get("yanked") for release_file in release_files
64
+ )
65
+ and "rc" not in version
66
+ }
67
+ sorted_releases = sorted(
68
+ filtered_releases.keys(), key=lambda x: Version(x)
69
+ )
70
+ latest_cli_release_string = sorted_releases[-1]
63
71
  latest_cli_release = Version(latest_cli_release_string)
64
72
  current_version_info = releases.get(current_version_string)
65
73
  current_version_date = None