Re: Some notes on Configurator.add_directive

2011-01-21 Thread Chris McDonough


On Jan 16, 8:23 am, Andrey Popp 8may...@gmail.com wrote:
 Hello,

 I've just noticed[1] the adding of 'add_directive' method to 'Configurator' 
 which is allow to extend it with configuration methods. But I have some 
 questions:

     1. Isn't this way is not very documentable? I mean, how would framework 
 extenders document methods, they've added to 'Configurator'? For example, 
 another solution to this problem is to compose application configurator from 
 pyramid.config.Configurator mixed with some other extension classes (Mix-in 
 pattern) -- this way extension methods are documented in their respectable 
 mix-ins in usual way. See how I've done in in contentlet[2].

We've documented it in a number of places now.  I don't know how
successfully though:

http://docs.pylonsproject.org/projects/pyramid_handlers/dev/#setup

http://docs.pylonsproject.org/projects/pyramid_zcml/dev/#setup

But inheritance kinda sucks in general for extensibility, IMO.

     2. I'm afraid this way does not respect ZCML mechanism of configuration, 
 so developers should bother both of adding methods to configurator and also 
 of adding corresponding ZCML directives. How about using some kind of 
 reflection to generate ZCML directives for new methods -- this way we can 
 keep both configuration API in sync?

We're actually in a way better place for that than we used to be.
Basically all ZCML directives in the pyramid_zcml package (except ones
copied from Zope like utility) are plain method calls to a single
configurator method.  They used to be many, many lines long.  With a
call to config.include('somepackage'), a subsequent load_zcml can make
use of a prechewed configurator method that can be used
imperatively.  That used to not be the case and the imperative code
and the ZCML handler code were basically copies of one another.

-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.



Some notes on Configurator.add_directive

2011-01-16 Thread Andrey Popp
Hello,

I've just noticed[1] the adding of 'add_directive' method to 'Configurator' 
which is allow to extend it with configuration methods. But I have some 
questions:

1. Isn't this way is not very documentable? I mean, how would framework 
extenders document methods, they've added to 'Configurator'? For example, 
another solution to this problem is to compose application configurator from 
pyramid.config.Configurator mixed with some other extension classes (Mix-in 
pattern) -- this way extension methods are documented in their respectable 
mix-ins in usual way. See how I've done in in contentlet[2].

2. I'm afraid this way does not respect ZCML mechanism of configuration, so 
developers should bother both of adding methods to configurator and also of 
adding corresponding ZCML directives. How about using some kind of reflection 
to generate ZCML directives for new methods -- this way we can keep both 
configuration API in sync?

[1]: 
https://github.com/Pylons/pyramid/commit/659d5f6b1f7605daaa0666fab7061bba9848d241
[2]: http://packages.python.org/contentlet/#imperative-configuration

-- 
You received this message because you are subscribed to the Google Groups 
pylons-devel group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.