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-07-02T15:31:10.067457+00:00.

{
  "timestamp": "2026-07-02T15:31:10.067457+00:00",
  "branch": "fix-redshift-copy-credentials-fingerprint",
  "commit": {
    "hash": "415db2b6bee0b4c50e63ea2dedffc4dff4f967f5",
    "message": "fix(ingestion/redshift): handle COPY CREDENTIALS in query fingerprinting\n\nRedshift `COPY ... CREDENTIALS ''` crashed query fingerprinting\nwith `TypeError: 'Placeholder' object is not iterable`, which aborted\nusage extraction. Two defects combined to make it fatal:\n\n1. generalize_query replaced the credentials Literal with a Placeholder.\n   sqlglot's credentials_sql generator dispatches on isinstance(child,\n   Literal) to pick the Redshift scalar form over the Snowflake key=value\n   list; a Placeholder flips it onto the list path, which iterates the\n   node and raises. Redact the credentials literal to a constant string\n   instead: serialization stays on the scalar path, the secret never\n   lands in the generalized query text, and fingerprints stay independent\n   of the credential value.\n\n2. get_query_fingerprint_debug only caught ValueError/SqlglotError, so the\n   TypeError propagated and killed the pipeline. Widen the catch to include\n   TypeError so fingerprinting degrades to the raw-text fallback instead."
  },
  "base": {
    "hash": "4770fb5d8b00f34a1868c8af129333c791fd4cbb",
    "message": "fix(ingestion): emit fieldPath add op for editableSchemaMetadata field patches (#18138)\n\nCo-authored-by: Cursor "
  },
  "pr": {
    "number": 18141,
    "title": "fix(ingestion/redshift): handle COPY CREDENTIALS in query fingerprinting",
    "url": "https://github.com/datahub-project/datahub/pull/18141"
  }
}

Usage

Current base URL: unknown

Package Size Install command
acryl-datahub 4.300 MB uv pip install 'acryl-datahub @ <base-url>/artifacts/wheels/acryl_datahub-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-actions 0.116 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.011 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'