## io.sink_from()


A sink that hands the node's whole table to [fn](sql.Dialect.md#sverify.sql.Dialect.fn) whenever it


Usage

``` python
io.sink_from(
    fn,
    *,
    name,
)
```


changes: `node.write(sink_from(save, name="paid"))`.

Each state is written once per process: a refresh that changes nothing does not call [fn](sql.Dialect.md#sverify.sql.Dialect.fn). A restarted job calls it again with the table it computes.


## Parameters


`fn: Callable[[pa.Table], Any]`  
Called with the table (an Arrow table) to store; what it returns is ignored.

`name: str`  
The stored table's name in the plans that read it.


## Returns


`Sink`  
The sink.


## Examples

``` python
import pyarrow as pa
import sverify as sv
from sverify.io import StaticSource, sink_from

orders = StaticSource(pa.table({"id": [1, 2], "amount": [30, 5]}), name="orders")


@sv.transform()
def big_orders(orders):
    return orders.filter(orders.amount > 10)


big = big_orders(orders).write(
    sink_from(lambda t: t.to_pandas().to_csv("big.csv"), name="big")
)
```
