Jorey Bump wrote:
Are you sure there is anything to correct? In both cases, the object has the same methods available for manipulating files (t.write('a'), for example). They are not the same type of object, so they have different dir() output, but don't they have the same functionality? What specifically gets broken in util.FieldStorage?

At a minimum, the documentation:

"This is a file object. For file uploads it points to a temporary file. For simple values, it is a StringIO object, so you can read simple string values via this attribute instead of using the value attribute as well."

As I stated, it just may be enough to document here that it's a file -or- a file-type object. That's what the Python documentation for tempfile.TemporaryFile states, so maybe calling it a "bug" is wrong. But it's equally simple to return the actual file object, and in my opinion more convenient for programmers to do isinstance(field.file, file) to see if you have an uploaded file vs. some other kind of value. I don't know enough about Windows though to know what will happen if you garbage collect the tempfile._TemporaryFileWrapper object but keeping a reference to the file.

It's unfortunate that it's not possible to subclass a builtin type and overload its methods (that I know of).

Nick

Reply via email to