On Thu, Feb 17, 2005 at 07:32:55PM +0000, Grant Edwards wrote: > I want to subclass an IMAP connection so that most of the > methods raise an exception if the returned status isn't 'OK'. > This works, but there's got to be a way to do it that doesn't > involve so much duplication: > > class MyImap4_ssl(imaplib.IMAP4_SSL): > > def login(*args): > s,r = imaplib.IMAP4_SSL.login(*args) > if s!='OK': > raise NotOK((s,r)) > return r > > def list(*args): > s,r = imaplib.IMAP4_SSL.list(*args) > if s!='OK': > raise NotOK((s,r)) > return r > > def search(*args): > s,r = imaplib.IMAP4_SSL.search(*args) > if s!='OK': > raise NotOK((s,r)) > return r > > [and so on for another dozen methods] >
something like this:
def NotOKVerified(orig):
def f(*args):
s, r = orig(*args)
if s != 'OK':
raise NotOK((s,r))
return r
return f
class MyImap4_ssl(IMAP4_SSL):
pass
for method_name in ('login', 'list', 'search'):
setattr(MyImap4_ssl, method_name, getattr(IMAP4_SSL, method_name))
?
I'd usually put big fat warnings around this code, and explain exaclty
why I need to do things this way...
--
John Lenton ([EMAIL PROTECTED]) -- Random fortune:
"To vacillate or not to vacillate, that is the question ... or is it?"
signature.asc
Description: Digital signature
-- http://mail.python.org/mailman/listinfo/python-list
