Either there must be an instance attribute which defaults to file, or an additional argument passed to open().
The problem: take() can take an already open file, but the open operation itself might block for a significant period. The workaround would be deferToThread()'ing it, which is precisely the sort of things txfileio tries to abstract away.