Cleanup guarantees?
Alf P. Steinbach
alfps at start.no
Sat Apr 10 12:57:49 EDT 2010
* Gabriel Genellina:
> En Fri, 09 Apr 2010 01:13:37 -0300, Alf P. Steinbach <alfps at start.no>
> escribió:
>
> > <code language="Py3">
> > import urllib.request # urlopen
> > import codecs # getreader
> > import sys # stderr
> >
> > def text_stream_from( url, encoding ):
> > text_reader = codecs.getreader( encoding )
> > connection = urllib.request.urlopen( url )
> > return text_reader( connection )
> >
> > def list_text( url, encoding ):
> > lines = text_stream_from( url, encoding )
> > for line in lines:
> > print( line, end = "" )
> > lines.close() # Undocumented?
> >
> > url = "http://www.rfc-editor.org/rfc/rfc1149.txt"
> > list_text( url, "ascii" )
> > </code>
> >
> > First, I'm unable to find documentation that there /is/ a close
> method in the
> > text_reader object, and I'm unable to find documentation that there
> is a close
> > method in the file like connection object; is there such documentation?
>
> codecs.getreader returns a StreamReader instance (see [1])
> StreamReader is documented here [2] and it says "In addition to the
> above methods, the StreamReader must also inherit all other methods and
> attributes from the underlying stream." -- the stream being
> 'connection', from urllib.request.urlopen.
> The 3.x version of the documentation in [3] doesn't provide any details
> except being "a file-like object". The 2.x version [4] is much more
> clear: "a file-like object is returned. This supports the following
> methods: read(), readline(), readlines(), fileno(), close(), info(),
> getcode() and geturl(). It also has proper support for the iterator
> protocol."
>
> [1] http://docs.python.org/py3k/library/codecs.html#codecs.getreader
> [2] http://docs.python.org/py3k/library/codecs.html#codecs.StreamReader
> [3]
> http://docs.python.org/py3k/library/urllib.request.html#urllib.request.urlopen
>
> [4] http://docs.python.org/library/urllib.html#urllib.urlopen
Thanks.
> > Second, I'm unable to find documentation of when they're called and
> what they
> > do. It seems that (A) when the connection object's st
> method is called automatically, and (B) that when the
> > text_reader object's close method is called it calls the close method
> of the
> > wrapped stream (i.e. on the connection object). But where is this
> documented?
>
> Nowhere, AFAIK.
> I bet documentation patches are welcome.
Well, I think I know too little about intentions to do any documentation patches.
Cheers,
- Alf
More information about the Python-list
mailing list