def runDynTask(task): ''' Run a dynamic task and return the result. Example: foo = runDynTask( ('baz.faz.Foo', (), {} ) ) ''' func = getDynLocal(task[0]) if func is None: raise s_exc.NoSuchFunc(name=task[0]) return func(*task[1], **task[2])
def _ctorCmprAt(self, valu): if valu is None or valu == (None, None): def cmpr(item): return False return cmpr if isinstance(valu, (str, int)): norm = self.norm(valu)[0] elif isinstance(valu, (list, tuple)): minv, maxv = self._normByTickTock(valu)[0] # Use has input the nullset in a comparison operation. if minv >= maxv: def cmpr(item): return False return cmpr else: norm = (minv, maxv) else: raise s_exc.NoSuchFunc(name=self.name, mesg='no norm for @= operator: %r' % (type(valu), )) def cmpr(item): if item is None: return False if item == (None, None): return False othr, info = self.norm(item) if othr[0] >= norm[1]: return False if othr[1] <= norm[0]: return False return True return cmpr
def norm(self, valu): ''' Normalize the value for a given type. Args: valu (obj): The value to normalize. Returns: ((obj,dict)): The normalized valu, info tuple. Notes: The info dictionary uses the following key conventions: subs (dict): The normalized sub-fields as name: valu entries. ''' func = self._type_norms.get(type(valu)) if func is None: raise s_exc.NoSuchFunc(name=self.name, mesg='no norm for type: %r' % (type(valu),)) return func(valu)