classification
Title: asynchat documentation issues
Type: Stage: resolved
Components: Documentation Versions: Python 3.1, Python 3.2, Python 2.7, Python 2.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, giampaolo.rodola, josiah.carlson, josiahcarlson, r.david.murray
Priority: normal Keywords:

Created on 2010-04-27 00:21 by giampaolo.rodola, last changed 2010-04-29 20:52 by giampaolo.rodola. This issue is now closed.

Messages (3)
msg104292 - (view) Author: Giampaolo Rodola' (giampaolo.rodola) * (Python committer) Date: 2010-04-27 00:21
I recently took a look at asynchat doc and found out it has some issues which should be addressed.
In my opinion the following methods and functions should NOT be mentioned:


- async_chat.refill_buffer()

this has been removed in Python 2.6 and no longer exists, plus there was no reason to override it in the first place as it was an internal method


 - asynchat.find_prefix_at_end(haystack, needle)

there's really no reason to mention this one, it is just used internally by async_chat class to implement the terminator logic


- async_chat.handle_close()
- async_chat.readable()
- async_chat.writable()
- async_chat.handle_read()
- async_chat.handle_write()

all inherited from asyncore, plus, aside from handle_close(), they should *NOT* be overridden as they implement the entire logic behind asynchat module


- class asynchat.simple_producer(data[, buffer_size=512])
- class asynchat.fifo([list=None])

as discussed in issue 6916 these are very old classes which are no longer used; imho not worth to be mentioned in the doc


- async_chat._collect_incoming_data(data)
- async_chat._get_data()

both added in 2.6 (this isn't mentioned), not sure if it's worth mentioning them (I wouldn't) but they're basically private methods which are never used in the base class and only provide a sample implementation


I think asynchat documentation should focus more on showing those parts of the API which are really going to be used, basically push*(), close_when_done() and terminator-related methods.
All other methods like handle_*(), etc..., are deliberately not supposed to be used and only create confusion.

I think I'm going to attach a patch tomorrow but I'd like to hear the opinion of Josiah Carlson before doing anything.
msg104343 - (view) Author: Josiah Carlson (josiahcarlson) * (Python triager) Date: 2010-04-27 18:04
The suggested documentation changes sound good to me.  Those items that aren't documented may need a note that they are deprecated and will be removed in the future, but I'd consider that optional.
msg104587 - (view) Author: Giampaolo Rodola' (giampaolo.rodola) * (Python committer) Date: 2010-04-29 20:52
As per discussion with Josiah I'm leaving fifo class alone as it can still be used also with the newer producer_fifo implementation (changed in Python 2.6).
The other changes described in my comments above still hold.
Committed in r80631 (2.7), r80632 (2.6), r80633 (3.2) and r80634 (3.1).
History
Date User Action Args
2010-04-29 20:52:57giampaolo.rodolasetstatus: open -> closed
resolution: fixed
messages: + msg104587

stage: resolved
2010-04-27 18:04:29josiahcarlsonsetmessages: + msg104343
2010-04-27 00:21:54giampaolo.rodolacreate