The GitHub Actions job "Tests (AMD)" on airflow.git/partition-fanout-max-keys 
has failed.
Run started by GitHub user Lee-W (triggered by Lee-W).

Head commit for run:
0b4c0b978a1a531764af12d0bacf2a007302e76e / Wei Lee <[email protected]>
feat(core): add per-mapper max_fan_out override for partition fan-out cap

Add a `max_fan_out: int | None = None` parameter to both the SDK and core
`PartitionMapper` base classes, threaded through every subclass constructor
that defines its own `__init__`. The validator rejects 0, negatives, floats,
strings, and booleans (bool is an int subclass — excluded explicitly).

Serialization is updated in two parallel paths:
- Per-class `serialize()` / `deserialize()` methods (custom-mapper path).
- `encoders.py` singledispatch overrides (built-in-mapper path).

Both paths write `max_fan_out` only when non-None, preserving byte-identical
output for default-constructed mappers (zero-bloat contract).

In `manager.py`, the single-shot `max_downstream_keys` read is deleted;
the mapper object is retained after the `to_downstream` call so its
`max_fan_out` attribute is readable at the boundary check. The effective
cap is computed per target-Dag as either the mapper's own cap or the
global `[scheduler] partition_fanout_max_keys`. The `Log.extra` string
uses `max_fan_out=N` when the per-mapper cap trips, and keeps the existing
`[scheduler] partition_fanout_max_keys=N` wording when the global trips.

Co-Authored-By: [email protected]

Report URL: https://github.com/apache/airflow/actions/runs/26101509683

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to