def topna(cls, d: Dict[Node, float], pred: Pred = None, k: Union[int, None] = 1) -> List[NodeA]: '''Returns a list of the top k nodes in d, by activation, restricted to nodes of 'type' and that pass 'filter'.''' pred: Callable[[Any], bool] = as_pred(pred) nas = [NodeA(node, a) for (node, a) in d.items() if pred(node)] if k is None: return sorted(nas, key=attrgetter('a'), reverse=True) else: return nlargest(k, nas, key=attrgetter('a'))
def test_as_pred_type(self) -> None: pred = as_pred(Equation) self.assertFalse(pred(After)) self.assertTrue(pred(Equation.make([5, 4], plus))) self.assertFalse(pred(Equation))
def ldisable(*args: Pred) -> None: '''Disables logging for args.''' for arg in args: enabled_for_logging.discard(as_pred(arg))
def lenable(*args: Pred) -> None: '''Enables logging for args.''' for arg in args: enabled_for_logging.add(as_pred(arg))
def tss(self, pred: Pred = None) -> List[NodeTimeseries]: '''pred selects Nodes.''' pred: Callable[[Any], bool] = as_pred(pred) return [ts for ts in self.tsd.values() if pred(ts.node)]
def tagmatch(tag: Any, pred: Pred) -> bool: if isinstance(tag, PTag) and not isinstance(pred, PTag): return as_pred(pred)(tag.tagpred) else: return as_pred(pred)(tag)