[Mailman-Developers] The one-giant-object approach

Barry Warsaw barry at python.org
Fri Oct 20 04:22:08 CEST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Oct 19, 2006, at 3:45 PM, emf wrote:

> Take MailList. Aside from its own namespace, it mixes in 11 other
> classes, leading to 255 names if you dir(list).
>
> Is this large, flat namespace a preference? It seems to me like it  
> mixes
> together many bits of functionality that aren't always needed by
> whatever code needs a 'list'.


Personally I'm not very fond of the mix-in architecture of the  
MailList classes.  I believe it was originally intended to allow for  
easy addition of functionality, but it just makes things more  
complicated than necessary.

> It seems to me that if things were broken up a little bit they'd be
> conceptually easier to follow, and it'd be easier to make  
> improvements.

I agree, but I think that will be difficult to impossible for 2.2.   
OTOH, you can ignore many of the MailList attributes.  If you emulate  
what MailList.Save() does, you'll be fine.  OTOH, ignore anything  
that starts with an underscore or that is a MethodType.

> While I understand that a unified DB likely won't make it into 2.2, I
> would like to break out some functionality, and I just wanted to make
> sure that keeping a flat namespace wasn't a design goal.

BTW, I'd love to get a database approach for mailing list data,  
rather than the current pickle approach.  What we've always taken off  
the table for 2.2 is the unified user database (i.e. one record per  
user instead of one record per user per list).  Even if all that data  
was stored in a database, it would still be great if you could access  
those values via attribute access syntax off the MailList instance.   
Given the ability of Python to interpose attribute access, I think  
that's possible.  That does point to a flat namespace as a  
simplifying principle.

- -Barry

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iQCVAwUBRTgy0HEjvBPtnXfVAQJmxAQAsbBwBbwbpdaLYfvFIGSdJzqRJRVOYqbW
/iE51+WplcGHqjECGMitKSaoSTkRhH1bv6Wbmw++fe6ggEevFHUWpQ6eLqfx0Bup
YXGaWpuUBcuRRNGmkxXu2UHygt8/TJoxUtIPZfa/GeDr0Mmr/YOSDLNVwB8W5MCL
sObBU0xJhfw=
=6NVN
-----END PGP SIGNATURE-----


More information about the Mailman-Developers mailing list