DataHub Python Builds

These prebuilt wheel files can be used to install our Python packages as of a specific commit.

Build context

Built at 2026-08-21T12:35:32.159835+00:00.

{
  "timestamp": "2026-08-21T12:35:32.159835+00:00",
  "branch": "feat/powerbi-shared-expressions",
  "commit": {
    "hash": "a3d8f6e3cc0a64e269e3086f129a1a3151777161",
    "message": "fix(ingest/powerbi): close gaps in following references between queries\n\nFive things the first pass got wrong.\n\nThe native_query_parsing opt-out only ever looked at the table's own\nexpression. A native query one reference away was parsed regardless, so the\nflag could be bypassed by hiding the query behind another one. Withhold\nthose expressions up front, where the same check already lives.\n\nA query that fails to parse was recorded nowhere and logged at debug, which\nis the shape of failure this whole area is meant to stop producing. Record\nit against the walk and warn once per table, naming the queries.\n\nThe parse cache stored successes only, so a query that timed out was retried\nby every route that reached it -- each retry paying the full timeout. Cache\nthe failure too.\n\nOnly parse, bridge and timeout failures are caught now. Anything else coming\nout of the bridge is a defect rather than bad input and should not be turned\ninto missing lineage.\n\nDeduplicating upstreams also skipped the column lineage attached to the\nsecond route, so mappings only that route had were dropped. Deduplicate the\nupstream alone and leave column lineage as it was.\n\n`expressions` sits after `dependent_on_artifact_id` so positional\nconstruction of PowerBIDataset keeps its meaning. Every caller in the repo\npasses keywords, so nothing here changes; it is the external contract that\nmatters."
  },
  "base": {
    "hash": "0c3d423da30de283fb8d2ad019d4c0169f5aedef",
    "message": "fix(ingest/powerbi): resolve M-Query names against enclosing let scopes\n\nThe walk carried one let at a time. Descending into a nested let replaced\nthe enclosing scope instead of adding to it, so a nested body could not\nreach any step its parents bound:\n\n    Source = Databricks.Catalogs(...),\n    db     = Source{[Name=\"cat\", Kind=\"Database\"]}[Data],\n    sch    = db{[Name=\"sch\", Kind=\"Schema\"]}[Data],\n    out    = let tbl = sch{[Name=\"tbl\", Kind=\"Table\"]}[Data] in tbl\n\n`sch` was unreachable from the inner let, so the table produced no lineage\nat all. Nested lets are common in Power BI-generated M and `Source` is the\ndefault step name, so this is not an unusual shape.\n\nCarry the enclosing scopes as a chain, innermost last, and look a name up\nfrom the inside out so the nearest binding wins.\n\nThe chain is truncated at the scope that binds the name, because a step\nbound by an outer let is evaluated in that let's scope and cannot see names\na nested one introduces. Without that, `a = sch{...}` at the outer level\nresolves against a nested `sch` and invents an upstream from an expression\nPower BI itself would reject -- verified, it produces `cat.inner.tbl`.\n\nThe circular-reference guard now keys on the scope that actually bound the\nname rather than whichever let happened to be current."
  },
  "pr": {
    "number": 19372,
    "title": "feat(ingest/powerbi): follow references into queries the model does not load",
    "url": "https://github.com/datahub-project/datahub/pull/19372"
  }
}

Usage

Current base URL: unknown

Package Size Install command
acryl-datahub 5.021 MB uv pip install 'acryl-datahub @ <base-url>/artifacts/wheels/acryl_datahub-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-actions 0.117 MB uv pip install 'acryl-datahub-actions @ <base-url>/artifacts/wheels/acryl_datahub_actions-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-airflow-plugin 0.072 MB uv pip install 'acryl-datahub-airflow-plugin @ <base-url>/artifacts/wheels/acryl_datahub_airflow_plugin-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-dagster-plugin 0.021 MB uv pip install 'acryl-datahub-dagster-plugin @ <base-url>/artifacts/wheels/acryl_datahub_dagster_plugin-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-gx-plugin 0.019 MB uv pip install 'acryl-datahub-gx-plugin @ <base-url>/artifacts/wheels/acryl_datahub_gx_plugin-0.0.0.dev1-py3-none-any.whl'
prefect-datahub 0.011 MB uv pip install 'prefect-datahub @ <base-url>/artifacts/wheels/prefect_datahub-0.0.0.dev1-py3-none-any.whl'