◐ Shell
clean mode source ↗

Listing or returning items with UoW raises sqlalchemy.orm.exc.DetachedInstanceError

Hi. I have a simple list endpoint as follows:

@app.get("/items/", response_model=list[schemas.Item])
async def read_items(uow: AbstractUnitOfWork = Depends(get_uow)) -> List[models.Item]:
    with uow:
        items = uow.repo.list()
    return items

items is a list of models.Item which is my domain model (dataclass). But when exiting the uow (closing the session) the items' attributes are refreshed by the ORM automatically and I get the sqlalchemy.orm.exc.DetachedInstanceError exception.

I would expect such a dataclass not to mutate since it is not an ORM model.
What would be the best approach in this case?

The same applies for the creation of an item.

Thanks!