Skip to content

Remove _fix_bad_spools #23

@shardros

Description

@shardros

Due to a python bug not all of the interfaces are compatible.

The fastapi.UploadFile type inherits from SpooledTemporaryFile a builtin
which does not specify the abstract for IOBase and does not support the
seekable method which is required for writing to the file sys. There is
some work to fix this:

https://bugs.python.org/issue26175

A fix for this has been merged in into the 3.11 rc so hopefully this will be
fixed soon:

python/cpython@78e70be

For now we reach in to the object to try and patch it ourselves.
This will not work for files larger than UploadFile._max_size as the
attributes change:

https://stackoverflow.com/a/47169185/5006710

We make sure that the object has a large enough size in
increase_max_file_size

When 3.11 rolls out (and we are able to use it) _fix_bad_spools and
increase_max_file_size can be deleted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdependenciesPull requests that update a dependency file

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions