On Sunday, February 3, 2013 12:04:53 AM UTC+1, Brian Sutherland wrote:

> On Sat, Feb 02, 2013 at 12:58:02PM -0800, Mikołaj Siedlarek wrote: 
> > Hi, 
> > 
> > Is there any way I could use zope.components ZCML configuration in my 
> > Pyramid project *not losing* the ability to run multiple application in 
> one 
> > process? 
> > 
> > I know I could just use `Configurator.hook_zca` and use global 
> components 
> > site, but this wouldn't work for multiple apps in one process. 
> > 
> > I tried to use zope.configuration ZCML utilities on Pyramid configurator 
> > and it's attributes but they seem incompatible. There is some class in 
> > `pyramid.config` called `ActionState` that kind of resembles 
> > `ConfigurationMachine` from `zope.configuration`, but not enough to use 
> > `zope.configuration.xmlconfig` stuff on it. 
> > 
> > Am I missing something? 
>
> I do something similar with pretty hacky code like this. Basically 
> loading the adapters registered in the ZCML into the configurator's 
> registry rather than the global one: 
>
>     from pyramid.threadlocal import manager 
>     from pyramid.config import Configurator 
>     from zope.configuration import xmlconfig 
>
>     def set_up_app(): 
>         config = Configurator() 
>         config.hook_zca() 
>         manager.push(dict(registry=config.registry)) 
>         try: 
>             xmlconfig.file(site_zcml) 
>         finally: 
>             manager.pop() 
>

Good thinking, thanks. Works with pyramid_zcml also, as it's just 
abstraction over zope.configuration with some additional directives.
 

> Of course, not all zcml commands are created equal and some will 
> register components globally despite these gymnastics. 
> <tales:expressiontype> is one I know that does not work. <adapter> and 
> <utiltiy> from zope.component 3.9.3 and up do work. 
>
> http://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/ would be 
> another option, but I'm not familiar with it. 
>
> > 
> > Thanks, 
> > Mikołaj 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "pylons-discuss" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to [email protected] <javascript:>. 
> > To post to this group, send email to 
> > [email protected]<javascript:>. 
>
> > Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. 
>
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>
> -- 
> Brian Sutherland 
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to