def meta_filter(self, files, meta_exp): #print("meta_filter: args:", args) if meta_exp is not None: out = [] for f in files: #print("_FileEvaluator.meta_filter: f:", f, f.Metadata) if self.evaluate_meta_expression(f, meta_exp): out.append(f) return DBFileSet(self.DB, out) return DBFileSet( self.DB, (f for f in files if self.evaluate_meta_expression(f, meta_exp))) else: return files
def meta_filter(self, args, meta): assert len(args) == 1 #print("meta_filter: args:", args) files = args[0] meta_exp = meta #print("Evaluator.meta_filter: files:", files, " meta_exp:", None if meta_exp is None else meta_exp.pretty()) if meta_exp is not None: out = [] for f in files: #print("_FileEvaluator.meta_filter: f:", f, f.Metadata) if self.evaluate_meta_expression(f, meta_exp): out.append(f) return DBFileSet(self.DB, out) return DBFileSet(self.DB, (f for f in files if self.evaluate_meta_expression(f, meta_exp))) else: return files
def filter(self, *inputs, name=None, params=[]): #print("Evaluator.filter: inputs:", inputs) assert name is not None filter_function = self.Filters[name] return DBFileSet(self.DB, filter_function(inputs, params))
def join(self, *args): return DBFileSet.join(self.DB, args)
def union(self, *args): #print("Evaluator.union: args:", args) return DBFileSet.union(self.DB, args)
def basic_file_query(self, *args, query=None): assert isinstance(query, BasicFileQuery) #print("_FileEvaluator:basic_file_query: q.WithMeta:", meta.WithMeta) return DBFileSet.from_basic_query(self.DB, query, self.WithMeta or query.WithMeta, self.Limit)
def filter(self, args, meta): name, params = meta inputs = args #print("Evaluator.filter: inputs:", inputs) filter_function = self.Filters[name] return DBFileSet(self.DB, filter_function(inputs, params))
def join(self, args, meta): return DBFileSet.join(self.DB, args)