Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
def slct_at_all(rules, atsel, mode="loose"):
    rules = elel.filter(rules, slct_at_cond_func, atsel, mode)
    return (rules)
Exemple #7
0
def slct_all(rules, sel, mode="loose"):
    sel = sel_fmt(sel)
    rules = elel.filter(rules, slct_cond_func, sel, mode)
    return (rules)