...
with app.setup:
import numpy as np
@app.cell
def cell_uses_np():
# no np needed in signature
result = np....
The best part about this pattern is that it enables "pure" (only dependent on setup cell) functions to be addressable: with app.setup:
from typing import Optional, Any
@app.function
def my_fn(arg: Optional[Any]) -> Any:
...
but nice convergent design :) glad to see to see we're addressing pain points ```python
@app.cell
def my_cell():
x : int = 1
return (x,)
@app.cell
def consumer(x : int):
y = x
return
```
We've talked about building out implicit typing into our serialization- but that may be a larger can of worms.