Title: Documentation for done attribute of FieldStorage class
Type: enhancement Stage:
Components: Documentation Versions: Python 3.0, Python 2.6, Python 2.5
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: jafo Nosy List: bkline, fdrake, jafo
Priority: normal Keywords: patch

Created on 2007-09-17 19:19 by bkline, last changed 2007-09-18 23:40 by jafo. This issue is now closed.

File name Uploaded Description Edit
cgi.rst.diff bkline, 2007-09-17 19:19
Messages (6)
msg55975 - (view) Author: Bob Kline (bkline) * Date: 2007-09-17 19:19
I have attached a patch which adds partial documentation for the done
attribute of the cgi.FieldStorage class.  This addition is needed in
order to make it safe to rely on the current behavior of the class,
which sets this attribute to the value -1 when an uploaded file from a
CGI form does not arrive intact.

If I have sufficient free time to do so at some point in the future, I
would like to submit a more extensive modification for the module's
documentation, using a format which matches that used for most of the
other modules (that is, including documentation of all of the methods
and attributes intended for public use), and I'd be inclined to modify
the module itself, to use a less opaque approach for conveying
the failure than the 'done' attribute.  I'd want some indication that
there was a reasonable chance that if I were to invest the work on this
improvement the results would actually be used (I see my latest patch
for the module has been languishing in the 'ignored' pile for over a
year).  If anyone else is doing some overhaul work in this area, please
speak up so we don't end up with duplication of effort.

I would think that this module would be one of the most commonly used in
the entire Python library, and would thus warrant careful maintenance
(including addressing all of the "XXX let's fix this ..." comments.

msg55997 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2007-09-18 15:27
Patch looks good to me.  Fred?

Comments on "should I do more fixes": Just straight documentation
changes are, in my experience, fairly likely to be processed quickly. 
Changes to the code may take quite a lot more discussion.  Smaller,
individual patches are likely to be taken much more than large mega
patches that change many things.

So, my recommendation would be to do individual efforts: Fix the current
documentation, fix "XXX fix me" parts, do enhancements.

I understand where you're coming from, I spent a full day implementing
string.rsplit() including documentation, only to have it languish for
around a year before other people re-opening the rejected submission
finally got it accepted.  However, python definitely benefits from the
attention.  Sometimes things do get dropped, because of other
commitments from the maintainers.

Assign your issue that has been ignored to me and I'll take a look at it.
msg56001 - (view) Author: Fred L. Drake, Jr. (fdrake) (Python committer) Date: 2007-09-18 16:55
Looks good to me too.  This should be committed.
msg56004 - (view) Author: Bob Kline (bkline) * Date: 2007-09-18 17:59
Thanks for the very quick follow-up.  I may be shooting myself in the
foot here, but Sean's encouragement about getting patches to the actual
code lead me to wonder if it might be better to go straight for the
optimal solution here.  As I implied in my original message for this
issue, there are approaches for exposing the ability to detect failure
which would be more straightforward than testing for field.done == -1. 
A step in the right direction might be an attribute named something like
'incomplete' (True|False).  Or perhaps an access method?  Based on my
more recent experience with getting code patches accepted, I had settled
on just documenting the existing code more fully as a minimal solution,
but if Sean's more optimistic advice is justified, I'd be happy to wait
a little longer for a cleaner solution (and to pitch in for the work to
create it, if that's appropriate).  I know I have more than one bit of
Python code I wrote years ago for situations similar to this where if I
had to do it over again I would have thrown an exception, and maybe
that's the right thing to do here, with an optional argument to the
constructor which suppresses the exception.  Perhaps Guido might want to
weigh in with his own preferences (this is his code, and he's still
listed as the current maintainer of the module).  But I'd rather have
the documentation patch for the existing code than nothing at all.

msg56005 - (view) Author: Bob Kline (bkline) * Date: 2007-09-18 18:09
Sean Reifschneider wrote:
> Assign your issue that has been ignored to me and I'll take a 
> look at it.

I tried, but it doesn't look like I have sufficient permission to change
the assignment.  It's

msg56018 - (view) Author: Sean Reifschneider (jafo) * (Python committer) Date: 2007-09-18 23:40
Committed in trunk revision 58199
Committed in 25-maint revision 58200
Committed in py3k revision 58201
Date User Action Args
2007-09-18 23:40:00jafosetstatus: open -> closed
messages: + msg56018
2007-09-18 18:09:00bklinesetmessages: + msg56005
2007-09-18 17:59:21bklinesetmessages: + msg56004
2007-09-18 16:55:19fdrakesetassignee: fdrake -> jafo
messages: + msg56001
resolution: accepted
versions: + Python 2.5, Python 3.0
2007-09-18 15:27:28jafosetversions: + Python 2.6
nosy: + fdrake, jafo
messages: + msg55997
priority: normal
assignee: fdrake
keywords: + patch
2007-09-17 19:19:47bklinecreate