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)
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()
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')
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()