def modify_states(text, turnon=[], turnoff=[]): """ Turns nodes on and off and comments out lines that contain assignment to any of the nodes Will use the main lexer. """ turnon = util.as_set(turnon) turnoff = util.as_set(turnoff) tokens = tokenize(text) init = init_tokens(tokens) init_lines = map(tok2line, init) # override the initial values init_lines.extend(['%s=True' % node for node in turnon]) init_lines.extend(['%s=False' % node for node in turnoff]) alter = turnon | turnoff update = update_tokens(tokens) update_lines = [] for token in update: line = tok2line(token) if token[0].value in alter or token[1].value in alter: line = '#' + line update_lines.append(line) all = init_lines + update_lines return '\n'.join(all)
def modify_states( text, turnon=[], turnoff=[] ): """ Turns nodes on and off and comments out lines that contain assignment to any of the nodes Will use the main lexer. """ turnon = util.as_set( turnon ) turnoff = util.as_set( turnoff ) tokens = tokenize( text ) init = init_tokens( tokens ) init_lines = map(tok2line, init) # override the initial values init_lines.extend( [ '%s=True' % node for node in turnon ] ) init_lines.extend( [ '%s=False' % node for node in turnoff ] ) alter = turnon | turnoff update = update_tokens ( tokens ) update_lines = [] for token in update: line = tok2line( token) if token[0].value in alter or token[1].value in alter: line = '#' + line update_lines.append( line ) all = init_lines + update_lines return '\n'.join( all )
def go(self, g, actor): if not self.glom: raise NeedArg(self, 'glom') #old_members = as_set(g.members_of(self.glom)) old_members = as_set( g.find_all(CTagged(Avail), subset=g.members_of(self.glom))) excluded = as_set(g.find_all(CTagged(Exclude), subset=old_members)) new_members = old_members - excluded g.remove_node(self.glom) if new_members: g.add_node(Glom, new_members) g.new_state(self.actor, Completed) else: # should signal failure TODO print('REGLOM FAILED', self.glom, old_members, excluded, new_members)
def jump(self, addr: Addr, relation: Values) -> Set[Addr]: addrs = as_set(addr) for r in as_iter(relation): new_addrs = set() for addr in addrs: new_addrs |= self._single_jump(addr, r) addrs = new_addrs return addrs
def go(self, g: 'G', actor: NRef, env: AcEnv) -> None: taggees = set() for name in self.names: v = self.get(g, actor, env, name) taggees |= as_set(v) env['taggees'] = taggees
def __init__(self, nodeset: Iterable[Node]): self.nodeset = as_set(nodeset) self.nodeclasses = defaultdict(set) for node in self.nodeset: self.nodeclasses[node.__class__].add(node)
def is_exact_match(self, g, node, kwargs): kwarg_mates = as_set(kwargs.get(self.this_port_label, empty_set)) node_mates = g.neighbors(node, port_label=self.this_port_label) return kwarg_mates == node_mates