def root_get_wfsnds(rnd,nds): # init nonleaf_unhandled cond = is_leaf(rnd) nonleaf_unhandled = [] if(cond) else [rnd] wfsnds = [rnd] # while(len(nonleaf_unhandled) > 0): childrens = elel.mapv(nonleaf_unhandled,get_children,[nds]) lyr = elel.concat_seqs(childrens) # get_children 函数叶子节点可以是None, 也可以是lid,rid 均为None的节点 # 所以要过滤一次 lyr = elel.filter(lyr,lambda nd:(nd != None)) wfsnds = wfsnds + lyr nonleaf_unhandled = elel.filter(lyr,lambda nd:not(is_leaf(nd))) return(wfsnds)
def encd_arguments(args): ''' args = [ { 'content': None, 'name': None, 'value': -50.0, 'arguments': None, 'unit': None, 'type': 'percentage' }, { 'content': None, 'name': None, 'value': ',', 'arguments': None, 'unit': None, 'type': 'literal' }, { 'content': None, 'name': None, 'value': -50.0, 'arguments': None, 'unit': None, 'type': 'percentage' }, ], encd_arguments(args) ''' args = elel.filter(args, lambda ele: (ele['type'] != 'whitespace')) args = elel.array_map(args, encd_one) s = '(' + elel.join(args, '') + ')' return (s)
def _get_permutation_index(arr): indexes = [] lngth = len(arr) for i in range(lngth): lefted = arr[i:lngth] lefted = sorted(lefted) indexes.append(lefted.index(arr[i])) indexes = elel.filter(indexes, lambda index: index > 0) acc = 0 for i in range(len(indexes)): acc = acc + indexes[i] * math.factorial(lngth - i - 1) return (acc)
def get_sibs(tree, nd, including_self=False): parent = get_parent(tree, nd) sibs = [] if (parent != None): sibs = get_children(tree, parent) else: sibs = [nd] if (including_self): pass else: sibs = elel.filter(sibs, lambda sib: sib["_id"] != nd["_id"]) return (sibs)
def get_rules_from_str(input, codec='utf-8'): cssbyts = input.encode(codec) rules, codec = tycss.parse_stylesheet_bytes(cssbyts) rules = elel.filter(rules, lambda rule: (rule.type != 'whitespace')) return (rules)
def slct_at_all(rules, atsel, mode="loose"): rules = elel.filter(rules, slct_at_cond_func, atsel, mode) return (rules)
def slct_all(rules, sel, mode="loose"): sel = sel_fmt(sel) rules = elel.filter(rules, slct_cond_func, sel, mode) return (rules)