def import_named_file(file): """ TODO: implement """ file = Path(file) dir,name,ext = file.dir_base_ext(nodot=True) if dir in sys.path: #print dir pass
def import_named_file(file): """ TODO: implement """ file = Path(file) dir, name, ext = file.dir_base_ext(nodot=True) if dir in sys.path: #print dir pass
def __init__(self,**kwds): self.dir = Path(kwds["dir"]) self.prefix = kwds["prefix"] self.ignore = kwds["ignore"] ## self._all = list() self._all_py = list() ## self._load()
class Multirun(object): def __init__(self,**kwds): self.dir = Path(kwds["dir"]) self.prefix = kwds["prefix"] self.ignore = kwds["ignore"] ## self._all = list() self._all_py = list() ## self._load() def run(self,cmd): all_sorted = filter(lambda x: x.has_cmd(cmd),self._all) all_sorted.sort(lambda x,y:cmp(x.order(),y.order())) log.debug("running: %s %d/%d" % (cmd,len(all_sorted),len(self._all))) start_time = time.time() for part in all_sorted: succ = part.run(cmd) if not succ: log.error("%s: %s failed" % (cmd,part.file())) log.debug("used time %f" % (time.time() - start_time)) def list(self): return self._all def list_files(self): rl = list() for part in self._all: rl.append(part.file()) return rl def _load(self): for name in self.dir.list(): if self.is_ignorable(name): continue if not self.is_wanted(name): continue ## file = self.dir/name name,ext = file.base_ext(nodot=True) np = name.split('-') part = None if len(np) == 5: # with command if ext == 'py' and np[4] == 'mod': part = PyPart() self._all_py.append(part) else: part = CmdPart() part.command(np[4]) part.order(int(np[1])) part.context(np[2]) part.subject(np[3]) elif len(np) == 4: # no specific command part = InitPart() part.order(int(np[1])) part.context(np[2]) part.subject(np[3]) else: # error raise SyntaxError("error in %s" % name) part.file(file) self._all.append(part) ## self._load_mods() def _load_mods(self): for pypart in self._all_py: pypart.load() def is_ignorable(self,name): for ignore_glob in self.ignore: #print ignore_glob if fnm.fnmatch(name,ignore_glob): log.debug("ignoring %s",name) return True return False def is_wanted(self,name): if name.startswith(self.prefix): return True return False