Example #1
0
    def _setup_blocks_spec(self):
        uspec = self._genspec

        # Blocchi verticali (righe) della tabella
        vspec = get_list(self.get('BLOCK'))

        #### Cosa deve fare qui:
        # per ogni elemento in vspec controllare se è un block
        # o una row
        # nel caso sia un block verificare che esista la stanza apposita
        # (se non c'è?)
        # nel caso sia una row surrogare un block
        #
        _vspec = []
        for _vs in vspec:
            if uspec.has_key(_vs):
                # c'è la stanza
                _svs = udict(uspec[_vs])
                if isofkind(_svs,'block'):
                   _vspec.append(_svs)
                elif isofkind(_svs,'line'):
                    _d = udict({ 'kind': 'block',
                                 'model': _vs ,
                                 'headers': 'no'})
                    if len(_vspec)==0:
                        _d['headers']='yes'
                    _vspec.append(_d)
                elif not _svs.has_key('kind'):
                    _d = udict({ 'kind': 'block',
                                 'model': _vs ,
                                 'headers': 'no'})
                    if len(_vspec)==0: _d['headers']= 'yes'
                    _vspec.append(_d)
            else:
                _d = udict({ 'kind': 'block',
                             'model': _vs })
                _vspec.append(_d)
        # LOGGER.debug("VSPEC=%s",','.join(vspec))
        return (_vspec,vspec)
Example #2
0
 def go(self,label,config=None):
     logger.debug("%s %s",label,config)
     self._setup(label,config) 
     #pprint(self)
     if isofkind(self,'pipe'):
         logger.debug("?!?")
         if self.has_key('PHASES'):
             logger.debug("PHASES %s",self['PHASES'])
             for _s in get_list(self['PHASES']):                    
                 logger.debug("PHASE %s",_s)
                 if self._global.has_key(_s):
                     s = PipePhase(label,_s,self._global)
                     s.go()
Example #3
0
 def check_BASE(self):
     """
     : If BASE exists then exists BASE JOBS
     if exists section BASE of JF then 
         set CBASES as collector(BASE)
         foreach V is list{JF{BASE}.JOBS}
             collect (exists V of JF) in CBASES{V}
     """
     self.setup_base()
     if self._base:
         if not self._base.has_key('JOBLIST'):
             return            
         base_jl = get_list(self._base['JOBLIST'])
         print base_jl
         for _joblist in base_jl:
             print _joblist
             if not self._gen.has_key(_joblist):
                 self.error('E#JF#003',(_joblist,)) 
                 continue                    
             joblist_c = self._gen[_joblist]
             if isofkind(joblist_c,'joblist'):                    
                 self.error('E#JF#004')
                 continue
             if not joblist_c.has_key('JOBS'):
                 self.error('E#JF#005')
                 continue
             joblist = joblist_c.get('JOBS',None)
             if joblist:
                 print "joblist=",joblist
                 # Verify that all called jobs are defined
                 jobs = get_list(joblist)
                 jobs = set(jobs)
                 jobspecs = self._gen.select(*jobs,regexp=False)
                 jobspecs = set(jobspecs.keys())
                 residuals = jobs ^ jobspecs
                 if len(residuals)>0:
                     pprint(residuals)
                     pprint(jobs)
                     for r in residuals:
                         if r in jobspecs:
                             self.warn('W#JF#001', (r,))
                         if r in jobs:
                             print r
                             self.error('E#JF#003',(r,))
     else:
         if self._options.name is None and self._options.only is None:
             self.error('E#JF#002')
         else:
             self.warn('W#JF#002')
Example #4
0
    def go(self):
        # 1. update code
        import pysvn

        self.client = pysvn.Client()
        self.client.callback_get_login = get_login
        if exists(join(self.svndir,'.svn')):
            logger.debug("update %s",self.svndir)
            self.client.update(self.svndir)
        else:
            logger.debug("checkout %s from %s",self.svndir,self['SVN'])
            self.client.checkout(self['SVN'],self.svndir)

        #pprint(self)
        # 2. 
        if isofkind(self,'STEP'):
            if self.has_key('STEPS'):
                for _s in get_list(self['STEPS']):               
                    logger.debug("STEP %s",_s)
                    if self._global.has_key(s):
                        s = PipePhase(_s,self._global)
                        s.go()