should this be in web2py? Pros/cons?

Massimo

On Feb 8, 5:38 pm, Robin B <[email protected]> wrote:
> Here is another version of mod_import() that does not use string
> splitting:
>
> def mod_import(name):
>     import sys
>     mod = sys.modules.get(name,None)
>     if mod is None:
>         __import__(name)
>         mod = sys.modules[name]
>     return mod
>
> Robin
>
> On Jan 8, 1:07 pm, "Yarko Tymciurak" <[email protected]> wrote:
>
> > Ooooh! starting to look yummy...  :-)
>
> > On Thu, Jan 8, 2009 at 1:04 PM, Robin B <[email protected]> wrote:
>
> > > > def mod_import(name,request=None):
> > > >   if request: name='applications.%s.modules.%s' %
> > > > (request.application, name)
> > > >   mod = __import__(name)
> > > >   for part in name.split('.')[1:]:
> > > >     mod = getattr(mod,part)
> > > >   return mod
>
> > > Nice,  I like how t2 collects helpers under a single object without
> > > polluting the global namespace.  What if these helpers could be
> > > collected under a single object like t2?
>
> > > # in gluon/helpers.py or something
> > > def mod_import(name):
> > >  mod = __import__(name)
> > >  for part in name.split('.')[1:]:
> > >    mod = getattr(mod,part)
> > >  return mod
>
> > > class Helpers(...):
> > >  def __init__(self,request):
> > >    self.request = request
>
> > >  def  import(self,name):
> > >    return mod_import('applications.%s.modules.%s'%
> > > (self.request.application,name))
>
> > > # in models/0.py
> > > T2 = helpers.import('t2').T2
>
> > > > On Jan 8, 12:23 pm, Robin B <[email protected]> wrote:
>
> > > > > def mod_import(name):
> > > > >   mod = __import__(name)
> > > > >   for part in name.split('.')[1:]:
> > > > >     mod = getattr(mod,part)
> > > > >   return mod
>
> > > > > T2 = mod_import('applications.%s.modules.t2'%request.application).T2
> > > > > t2=T2(request,response,session,cache,T,db)
> > > > > ...
>
> > > > > Benefits: does not modify sys.path and does not resort to exec'ing.
>
> > > > > Robin
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to