18.6.3 BaseHandler Objects
BaseHandler objects provide a couple of methods that are directly useful, and others that are meant to be used by derived classes. These are intended for direct use:
- Add a director as parent.
- Remove any parents.
The following members and methods should only be used by classes derived from BaseHandler. Note: The convention has been adopted that subclasses defining protocol_request() or protocol_response() methods are named *Processor; all others are named *Handler.
- A valid OpenerDirector, which can be used to open using a different protocol, or handle errors.
-
This method is not defined in BaseHandler, but
subclasses should define it if they want to catch all URLs.
This method, if implemented, will be called by the parent OpenerDirector. It should return a file-like object as described in the return value of the open() of OpenerDirector, or
None
. It should raise URLError, unless a truly exceptional thing happens (for example, MemoryError should not be mapped to URLError).This method will be called before any protocol-specific open method.
-
This method is not defined in BaseHandler, but
subclasses should define it if they want to handle URLs with the given
protocol.
This method, if defined, will be called by the parent OpenerDirector. Return values should be the same as for default_open().
-
This method is not defined in BaseHandler, but
subclasses should define it if they want to catch all URLs with no
specific registered handler to open it.
This method, if implemented, will be called by the parent OpenerDirector. Return values should be the same as for default_open().
-
This method is not defined in BaseHandler, but
subclasses should override it if they intend to provide a catch-all
for otherwise unhandled HTTP errors. It will be called automatically
by the OpenerDirector getting the error, and should not
normally be called in other circumstances.
req will be a Request object, fp will be a file-like object with the HTTP error body, code will be the three-digit code of the error, msg will be the user-visible explanation of the code and hdrs will be a mapping object with the headers of the error.
Return values and exceptions raised should be the same as those of urlopen().
-
nnn should be a three-digit HTTP error code. This method is
also not defined in BaseHandler, but will be called, if it
exists, on an instance of a subclass, when an HTTP error with code
nnn occurs.
Subclasses should override this method to handle specific HTTP errors.
Arguments, return values and exceptions raised should be the same as for http_error_default().
-
This method is not defined in BaseHandler, but
subclasses should define it if they want to pre-process requests of
the given protocol.
This method, if defined, will be called by the parent OpenerDirector. req will be a Request object. The return value should be a Request object.
-
This method is not defined in BaseHandler, but
subclasses should define it if they want to post-process responses of
the given protocol.
This method, if defined, will be called by the parent OpenerDirector. req will be a Request object. response will be an object implementing the same interface as the return value of urlopen(). The return value should implement the same interface as the return value of urlopen().
See About this document... for information on suggesting changes.