hum.... yeah, looks kind of crappy... looked better before submitting.
I'll try again:


class init():
    def __init__(self):
        ... some unrelated stuff here


    * earlier, a bunch of tasks have been defined.
    * the tasks are defined in a module (we may or may not
      know the module)
    * the following retrieves the these descriptions from a table


    def loadBuildCmd(self, builtins=None):
        #Use dictFunctionObject (DFO), to step through tasks
        # dictionary object is like your 'storage' but uses xml
        # as a starting point (converts/switched back and forth
        # depending on what is needed

        #1) retrieve required/defined tasks submitted to the DB

        rows = self.db(self.db.buildData.id>0).select()
        last_row = rows.last()
        dfo_main = cPickle.loads(last_row.get('dfo_main'))

        # 2) retrieve related data to submitted task (I.e. to


        rows = self.db(self.db.cmdObjects.id>0).select()
        '''--- * 3) retrieve cmd_Init DFO from cmdObjects table
                    retrieve all cmds/pyModules specified in build
file ---'''
        for row in rows:
            '''--- load serialized (pickled) data from data ---'''
            cmdInit =
cPickle.loads(row.get('dfo_objCmd'))
            '''--- iter through ---'''
            if 'Cmd' in cmdInit.keys():
                '''---
                pyModule (i.e. blueLite.pyModules.cmdInit) is the
path
to
                the module to be invoked. Pass pyModule to blueCmd
---'''
                pyModule =
cmdInit.Cmd.pyModule
                try:
                    self.blueCmd(pyModule,row.name)
                except  Exception as
errObj:
                    err = cmdException.cmdPlugin(self.db,row.name)
err.blueCmd(errObj,pyModule,all)
    def blueCmd(self,
                chloe,
                rowName,
                builtIn_CmdName=None):
        '''---
             chloe is the module to be __imported__
---'''
        if chloe is not None:
            print("{0} will be processed by blueLite".format(chloe))
            '''---
                miaZoe is the named py class going to sys.modules
 
---'''
            try:
                miaZoe = __import__(chloe)
                components = chloe.split('.')
                '''---
                    split the path to named module, and collect
attributes
---'''
                for comp in components[1:]:
                    miaZoe = getattr(miaZoe,
                                     comp)
                '''---
                caraAnne is now the object reference to class Chloe,
no need to
                worry about __imported__ class since they inherit
from
base class
                call cmdPlugin, then blueCmd()
                                                         ---'''
                caraAnne = miaZoe.cmdPlugin(self.db,
                                            rowName)
                '''---
                step logic is in <pyModule>.cmd().
                                            ---'''
                caraAnne.blueCmd()
                '''---
                step is done, chuck object and class reference
                                                          ---'''
                if caraAnne is not None:
                    del caraAnne
                del miaZoe




On Dec 30, 1:28 am, mdipierro <[email protected]> wrote:
> what does the attached code do? the indentation is all messed up?
>
> On Dec 30, 12:16 am, mart <[email protected]> wrote:
>
>
>
>
>
>
>
> > Really, I'm not trying to be funny... but where are the missing
> > modules? are they on the machine somewhere? or do they need to be
> > fetched from the net somewhere?
>
> > This does seem like a great idea! Do we mean to load "unknown" modules
> > or install missing software? or both? this is what I do for
> > "unknown" (like missing) modules ... they only get loaded at build
> > time, this way I don't need to care what the build system is doing...
>
> > hoep it helps, and apologies if you mean something else :)
>
> >     '''
> >     blueCmdHandler extends cmdBaseClass
> >     '''
> >     def loadBuildCmd(self,
> >                      builtins=None):
>
> >         '''--- Use dictFunctionObject (DFO), to step through main sets
> > ---'''
> >         '''--- * 1) retrieve _main_ sets DFO from objInit table
> > ---'''
> >         rows = self.db(self.db.buildData.id>0).select()
> >         last_row = rows.last()
> >         dfo_main = cPickle.loads(last_row.get('dfo_main'))
>
> >         '''--- * 2) retrieve cmd_Init DFO from cmdObjects table
> > ---'''
> >         rows = self.db(self.db.cmdObjects.id>0).select()
>
> >         '''--- * 3) retrieve cmd_Init DFO from cmdObjects table
> >                     retrieve all cmds/pyModules specified in build
> > file ---'''
> >         for row in rows:
> >             '''--- load serialized (pickled) data from data ---'''
> >             cmdInit =
> > cPickle.loads(row.get('dfo_objCmd'))
> >             '''--- iter through ---'''
> >             if 'Cmd' in cmdInit.keys():
> >                 '''---
> >                 pyModule (i.e. blueLite.pyModules.cmdInit) is the path
> > to
> >                 the module to be invoked. Pass pyModule to blueCmd
>
> > ---'''
> >                 pyModule =
> > cmdInit.Cmd.pyModule
> >                 try:
> >                     self.blueCmd(pyModule,row.name)
> >                 except  Exception as
> > errObj:
> >                     err = cmdException.cmdPlugin(self.db,row.name)
>
> > err.blueCmd(errObj,pyModule,all)
>
> >     def blueCmd(self,
> >                 chloe,
> >                 rowName,
> >                 builtIn_CmdName=None):
> >         '''---
> >              chloe is the module to be __imported__
>
> > ---'''
> >         if chloe is not None:
> >             print("{0} will be processed by blueLite".format(chloe))
> >             '''---
> >                 miaZoe is the named py class going to sys.modules
> >                                                                 ---'''
> >             try:
> >                 miaZoe = __import__(chloe)
> >                 components = chloe.split('.')
> >                 '''---
> >                     split the path to named module, and collect
> > attributes
>
> > ---'''
>
> >                 for comp in components[1:]:
> >                     miaZoe = getattr(miaZoe,
> >                                      comp)
>
> >                 '''---
> >                 caraAnne is now the object reference to class Chloe,
> > no need to
> >                 worry about __imported__ class since they inherit from
> > base class
> >                 call cmdPlugin, then blueCmd()
> >                                                          ---'''
>
> >                 caraAnne = miaZoe.cmdPlugin(self.db,
> >                                             rowName)
> >                 '''---
> >                 step logic is in <pyModule>.cmd().
> >                                             ---'''
> >                 caraAnne.blueCmd()
> >                 '''---
> >                 step is done, chuck object and class reference
> >                                                           ---'''
> >                 if caraAnne is not None:
> >                     del caraAnne
> >                 del miaZoe
>
> > On Dec 29, 11:47 pm, mdipierro <[email protected]> wrote:
>
> > > How about some code that is you try o timport a module that is not
> > > installed, trys to ez_install it?
>
> > > import sys, imp
> > > from ez_setup import use_setuptools
> > > use_setuptools()
> > > from setuptools.command.easy_install import main
>
> > > class SmartImporter(object):
> > >     tried_modules=set()
> > >     domain_modules = set()
>
> > >     def find_module(self, fullname, path=None):
> > >         if fullname in self.domain_modules:
> > >             return self
> > >         if fullname in self.tried_modules:
> > >             return None
> > >         else:
> > >             self.tried_modules.add(fullname)
> > >             try:
> > >                 main([fullname])
> > >                 return self
> > >             except:
> > >                 return None
>
> > >     def load_module(self, fullname):
> > >         if fullname in sys.modules:
> > >             return sys.modules[fullname]
> > >         mod = imp.new_module(fullname)
> > >         mod.__loader__ = self
> > >         sys.modules[fullname] = mod
> > >         if fullname not in self.domain_modules:
> > >             self.domain_modules.add(fullname)
> > >         return mod
>
> > > sys.meta_path = [SmartImporter()]
>
> > > import tornado # is not installed should install it!
> > > print tornado
>
> > > This does not quite works. I could use some help.
>
> > > Massimo

Reply via email to