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
-~----------~----~----~----~------~----~------~--~---