[Zope-dev] merge zope.configuration dictactions branch

Charlie Clark charlie.clark at clark-consulting.eu
Mon Dec 5 20:31:43 UTC 2011


Hi Chris,

Am 05.12.2011, 04:02 Uhr, schrieb Chris McDonough <chrism at plope.com>:

> On the zope.configuration trunk (and in all past releases), each ZCML
> action is maintained as a tuple.  The tuple can be of any length up to
> seven elements, but mustn't exceed a length of seven.  A complex system
> of lengthening and shortening (in
> zope.configuration.config.resolveConflicts) tries to ensure that the
> tuple is of the smallest length required by chopping false elements off
> the end of each action tuple during storage and reconstituting them to
> 7-element tuples during processing and sorting.  I think this juke was
> purely to make doctests easier to write, but I'm not entirely sure.

eek! I'm sure there was a better reason for this in the first place. As  
things stand ZCML declarations are not orthogonal so a key-based approach  
seems the better fit.

> Up til now, pyramid_zcml could live with actions being at most 7
> elements.  But recent changes to the Pyramid trunk (adding
> "introspectables") blew out the presumption that an action tuple could
> be no longer than 7 elements (it now might need to be 8 elements).

> Rather than extend the structure of the zope.configuration tuple with a
> Pyramid-only "introspectables" argument, I've created the
> chrism-dictactions branch
> (http://svn.zope.org/zope.configuration/branches/chrism-dictactions/)
> which changes ZCML action structures to be dictionaries.  This allows
> each action to contain arbitrary keys.  This modification satisfies the
> immediate requirement (adding "introspectables") and allows us to never
> need to change the zope.config code again if more elements need to be
> added to actions.

+1 as all ZTK test pass.

> I could have instead added an "extras" dictionary on to the end of the
> tuple as an 8th element, but it seems six of one a half dozen of
> another, and the z.config code is much easier to understand when the
> action is just a dictionary instead of a pseudo-struct.

I'm trying to think of where I've seen that pattern of {'organised'....  
'others':{}} before... oh, yes in dodgy RDBMS schema.

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Kronenstr. 27a
Düsseldorf
D- 40217
Tel: +49-211-600-3657
Mobile: +49-178-782-6226


More information about the Zope-Dev mailing list