class Query(object): """ Parameters ---------- position_cutoff : float Used by SequenceDB to keep only optimizer that are positioned before the cut_off point. """ def __init__(self, include, require=None, exclude=None, subquery=None, position_cutoff=None): self.include = OrderedSet(include) self.require = require or OrderedSet() self.exclude = exclude or OrderedSet() self.subquery = subquery or {} self.position_cutoff = position_cutoff if isinstance(self.require, (list, tuple)): self.require = OrderedSet(self.require) if isinstance(self.exclude, (list, tuple)): self.exclude = OrderedSet(self.exclude) def __str__(self): return ("Query{inc=%s,ex=%s,require=%s,subquery=%s," "position_cutoff=%d}" % (self.include, self.exclude, self.require, self.subquery, self.position_cutoff)) # add all opt with this tag def including(self, *tags): return Query(self.include.union(tags), self.require, self.exclude, self.subquery, self.position_cutoff) # remove all opt with this tag def excluding(self, *tags): return Query(self.include, self.require, self.exclude.union(tags), self.subquery, self.position_cutoff) # keep only opt with this tag. def requiring(self, *tags): return Query(self.include, self.require.union(tags), self.exclude, self.subquery, self.position_cutoff)
class Query(object): def __init__(self, include, require=None, exclude=None, subquery=None, position_cutoff=None): """ :type position_cutoff: float :param position_cutoff: Used by SequenceDB to keep only optimizer that are positioned before the cut_off point. """ self.include = OrderedSet(include) self.require = require or OrderedSet() self.exclude = exclude or OrderedSet() self.subquery = subquery or {} self.position_cutoff = position_cutoff if isinstance(self.require, (list, tuple)): self.require = OrderedSet(self.require) if isinstance(self.exclude, (list, tuple)): self.exclude = OrderedSet(self.exclude) def __str__(self): return ("Query{inc=%s,ex=%s,require=%s,subquery=%s," "position_cutoff=%d}" % (self.include, self.exclude, self.require, self.subquery, self.position_cutoff)) # add all opt with this tag def including(self, *tags): return Query(self.include.union(tags), self.require, self.exclude, self.subquery, self.position_cutoff) # remove all opt with this tag def excluding(self, *tags): return Query(self.include, self.require, self.exclude.union(tags), self.subquery, self.position_cutoff) # keep only opt with this tag. def requiring(self, *tags): return Query(self.include, self.require.union(tags), self.exclude, self.subquery, self.position_cutoff)
class Query: """ Parameters ---------- position_cutoff : float Used by SequenceDB to keep only optimizer that are positioned before the cut_off point. """ def __init__( self, include, require=None, exclude=None, subquery=None, position_cutoff=math.inf, extra_optimizations=None, ): self.include = OrderedSet(include) self.require = require or OrderedSet() self.exclude = exclude or OrderedSet() self.subquery = subquery or {} self.position_cutoff = position_cutoff if extra_optimizations is None: extra_optimizations = [] self.extra_optimizations = extra_optimizations if isinstance(self.require, (list, tuple)): self.require = OrderedSet(self.require) if isinstance(self.exclude, (list, tuple)): self.exclude = OrderedSet(self.exclude) def __str__(self): return ("Query{inc=%s,ex=%s,require=%s,subquery=%s," "position_cutoff=%f,extra_opts=%s}" % ( self.include, self.exclude, self.require, self.subquery, self.position_cutoff, self.extra_optimizations, )) def __setstate__(self, state): self.__dict__.update(state) if not hasattr(self, "extra_optimizations"): self.extra_optimizations = [] # add all opt with this tag def including(self, *tags): return Query( self.include.union(tags), self.require, self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations, ) # remove all opt with this tag def excluding(self, *tags): return Query( self.include, self.require, self.exclude.union(tags), self.subquery, self.position_cutoff, self.extra_optimizations, ) # keep only opt with this tag. def requiring(self, *tags): return Query( self.include, self.require.union(tags), self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations, ) def register(self, *optimizations): return Query( self.include, self.require, self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations + list(optimizations), )
class Query(object): """ Parameters ---------- position_cutoff : float Used by SequenceDB to keep only optimizer that are positioned before the cut_off point. """ def __init__(self, include, require=None, exclude=None, subquery=None, position_cutoff=None, extra_optimizations=None): self.include = OrderedSet(include) self.require = require or OrderedSet() self.exclude = exclude or OrderedSet() self.subquery = subquery or {} self.position_cutoff = position_cutoff if extra_optimizations is None: extra_optimizations = [] self.extra_optimizations = extra_optimizations if isinstance(self.require, (list, tuple)): self.require = OrderedSet(self.require) if isinstance(self.exclude, (list, tuple)): self.exclude = OrderedSet(self.exclude) def __str__(self): return ("Query{inc=%s,ex=%s,require=%s,subquery=%s," "position_cutoff=%d,extra_opts=%s}" % (self.include, self.exclude, self.require, self.subquery, self.position_cutoff, self.extra_optimizations)) def __setstate__(self, state): self.__dict__.update(state) if not hasattr(self, 'extra_optimizations'): self.extra_optimizations = [] # add all opt with this tag def including(self, *tags): return Query(self.include.union(tags), self.require, self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations) # remove all opt with this tag def excluding(self, *tags): return Query(self.include, self.require, self.exclude.union(tags), self.subquery, self.position_cutoff, self.extra_optimizations) # keep only opt with this tag. def requiring(self, *tags): return Query(self.include, self.require.union(tags), self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations) def register(self, *optimizations): return Query(self.include, self.require, self.exclude, self.subquery, self.position_cutoff, self.extra_optimizations + list(optimizations))