self.fp.close()
self.fp = None
+ # These implementations are for the benefit of io.BufferedReader.
+
+ # XXX This class should probably be revised to act more like
+ # the "raw stream" that BufferedReader expects.
+
+ @property
+ def closed(self):
+ return self.isclosed()
+
+ def flush(self):
+ self.fp.flush()
+
+ # End of "raw stream" methods
+
def isclosed(self):
# NOTE: it is possible that we will not ever call self.close(). This
# case occurs when will_close is TRUE, length is None, and we
# Pick apart the HTTPResponse object to get the addinfourl
# object initialized properly.
+ # XXX Should an HTTPResponse object really be passed to
+ # BufferedReader? If so, we should change httplib to support
+ # this use directly.
+
# Add some fake methods to the reader to satisfy BufferedReader.
r.readable = lambda: True
r.writable = r.seekable = lambda: False
def connect_ftp(self, user, passwd, host, port, dirs, timeout):
fw = ftpwrapper(user, passwd, host, port, dirs, timeout)
-## fw.ftp.set_debuglevel(1)
return fw
class CacheFTPHandler(FTPHandler):