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