Assemble per-quantile forecasts into one non-crossing band.
Calls predict on each fitted forecaster from :func:quantile_lgbm_forecaster_factory and stacks the results into columns named q_<level> (e.g. q_0.1), in ascending quantile order. Because the quantile heads are fitted independently they can cross (a higher quantile predicting below a lower one); with enforce_monotonic the rows are sorted ascending (the Chernozhukov rearrangement), a deterministic post-hoc fix that restores monotonicity without changing the marginal quantile levels.
╭─────────────────────────────── IgnoredArgumentWarning ───────────────────────────────╮│ The number of bins has been reduced from 10 to 4 due to duplicated edges caused by ││ repeated predicted values. ││││ Category : spotforecast2.exceptions.IgnoredArgumentWarning ││ Location : ││ /home/runner/work/spotforecast2-safe/spotforecast2-safe/src/spotforecast2_safe/prepr ││ ocessing/_binner.py:259 ││ Suppress : warnings.simplefilter('ignore', category=IgnoredArgumentWarning) │╰──────────────────────────────────────────────────────────────────────────────────────╯