how to change a factory use of rfc822.Message to mhlib.Message

Steve Holden sholden at holdenweb.com
Mon Aug 30 20:09:41 EDT 2004


John Doe wrote:

> I've never used a factory and would like to get some help.
> The class
> mailbox.UnixMailbox has a defination for a factory.
> 
> __init__(self, fp, factory=<class rfc822.Message>)
> 
> where fp is a file pointer. 
> 
> I don't want to use rfc822.Message. I'd like to use mhlib.Message instead.
> 
> rfc822.Message requires:
> __init__(self, fp, seekable=1)
> 
> mhlib.Message requires:
> __init__(self, f, n, fp=None)
> 
> where f think the is a folder name. I've seen '.'  used.
> (The documentation is very unclear here). And 'n' is the seekable.
> 
> How do I call mailbox.UnixMailbox( fp ... ) with mhlib.Message?


You'll need to write a "wrapper" class or function around mhlib.Message 
to make it look sufficiently similar to rfc822.Message. Then you provide 
the wrapper as the factory argument when you create your UnixMailbox.

Clearly the __init__() signature of whatever factory you provide has to 
match that of rfc822.Message otherwise you'll get an error when the 
mailbox code tries to create a message instance.

regards
  Steve



More information about the Python-list mailing list