[Grok-dev] Creating an object from a path

Sebastian Ware sebastian at urbantalk.se
Fri Feb 6 10:18:28 EST 2009


Many thanks, combining both your answers gives me the solution I  
want! :)

Mvh Sebastian

6 feb 2009 kl. 16.11 skrev Santiago Videla:

> Hey,
>
> I think that you are looking for a Factory.
>
> an example from `Web Component Development with Zope 3` book:
>
>  from zope.component.interfaces import IFactory
>  from zope.interface import implementedBy
>
>  class RecipeFactory:
>      implements(IFactory)
>
>      title = u"Create a new recipe"
>      description = u"This factory instantiates new recipes."
>
>      def __call__(self):
>          return Recipe()
>
>      def getInterfaces(self):
>          return implementedBy(Recipe)
>
>
> <utility
>     factory=".recipe.RecipeFactory"
>     name="worldcookery.Recipe"
>     permission="zope.Public"
> />
>
>
> $ bin/debugzope
> >>> from zope.component import getUtility
> >>> from zope.component.interfaces import IFactory
> >>> recipe_factory = getUtility(IFactory, u"worldcookery.Recipe")
> >>> weisswurst = recipe_factory()
> >>> weisswurst
> <worldcookery.recipe.Recipe object at 0x30469c30>
>
>
> I try this myself on grok using grok.GlobalUtility to define the  
> Factory class and avoid the zcml, and works like a charm.
>
> hope it helps
>
> Regards
>
>
> On Fri, Feb 6, 2009 at 12:38 PM, Sebastian Ware <sebastian at urbantalk.se 
> > wrote:
> If I have a string:
>
>   "<class 'trigger.promotion.Promotion'>"
>
> can I create an object of the type [trigger.promotion.Promotion]?
>
> Mvh Sebastian
>
>
>
> _______________________________________________
> Grok-dev mailing list
> Grok-dev at zope.org
> http://mail.zope.org/mailman/listinfo/grok-dev
>
>
>
> -- 
> Santiago Videla
> www.revolucionesweb.com.ar
> http://www.linkedin.com/in/svidela
>
> Sigue la mata dando de que hablar siempre abajo y a la izquierda  
> donde el pensamiento que se hace corazón resplandece con la palabra  
> sencilla y humilde que l at s tod at s somos.



More information about the Grok-dev mailing list