[Zope-CMF] Custom factories?

Charlie Clark charlie at begeistert.org
Mon Mar 3 16:48:57 EST 2008


Hi,

I've been working on some very lightweight content types that differ  
minimally from each other so I'd like to use attributes rather than  
different classes. I've come across a couple of problems while working  
on this: if I put the attributes into the factory I need to make my  
basic object into a callable because it gets called when the factory  
gets registered.

Currently I have something like this:

class SpecialDocument:
	def __init__(self, **kw):
		pass

	def __call__(self, text_type=None):
		self.text_type = text_type

HTMLDocFactory = Factory(SpecialDocument(text_type='text/html')
PlainTextDocFactory = Factory(SpecialDocument(text_type='text/plain')

This is extended with additional registrations of the content class  
with additional meta_types.

This seems to be the most minimal configuration I can use and seems  
reasonably Pythonic but I'm worried about unexpected side effects and  
whether there is a different way of doing this, ie. using local  
utilities as these content types are going to be site specific. I was  
going to try this approach (similar to the KitchenTools example in  
Philip's book) but wasn't sure about some of the other things I was  
going to need.

Comments much appreciated.

On a personal note: over this last month, thanks to the list but also  
to Philip's and Martin's books I've really started to understand and  
appreciate the Zope 3 approach to stuff: it has a great deal of  
elegance even if it takes a while to get used to!

Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226





More information about the Zope-CMF mailing list