## kernels.from_arrow()


Reconstruct whatever [to_arrow()](kernels.to_arrow.md#ibnr.kernels.to_arrow) wrote, dispatching on `ibnr.kind`.


Usage

``` python
kernels.from_arrow(
    data,
    *,
    expect=None,
    **kwargs,
)
```


`expect` names the kind the caller is prepared to receive, and anything else is refused rather than decoded. Routing on the payload's own kind is right for a router that will hand the result on, and wrong everywhere a caller has already committed to a type - which is why every typed [from_arrow](kernels.from_arrow.md#ibnr.kernels.from_arrow) classmethod in this package passes its own kind here. Without it `PredictiveDistribution.from_arrow(triangle_bytes)` returns a Triangle: a real, correctly decoded artifact of the wrong type, whose error surfaces somewhere else as a missing attribute.

`kwargs` reach the per-kind decoder; today only [Triangle](Triangle.md#ibnr.Triangle) takes one (`backend=`).
