コード例 #1
0
def combinate(l, repeat=2, **kwargs):
    st = eftl.dflt_kwargs("sort", False, **kwargs)
    rslt = [each for each in itertools.combinations(l, repeat)]
    rslt = list(rslt)
    rslt = elel.mapv(rslt, list, [])
    rslt = elel.mapv(rslt, sorted, []) if (st) else rslt
    return (rslt)
コード例 #2
0
def product(l, repeat=2, **kwargs):
    st = eftl.dflt_kwargs("sort", False, **kwargs)
    rslt = itertools.product(l, repeat=repeat)
    rslt = list(rslt)
    rslt = elel.mapv(rslt, list, [])
    rslt = elel.mapv(rslt, sorted, []) if (st) else rslt
    return (rslt)
コード例 #3
0
ファイル: eobjtool.py プロジェクト: ihgazni2/efuntool
def get_attrs_chain(obj):
    '''
        >>> class tst():
        ...     def __init__(self):
        ...         self._u = "_u"
        ...         self.u = "u"
        ...
        >>> t = tst()
        >>>
        >>> parr(get_attrs_chain(t))
        ['_u', 'u']
        ['__dict__', '__module__', '__weakref__']
        ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
        >>>
    '''
    mros = get_mros(obj)
    chain = elel.mapv(mros, get_all_attrs)
    st_chain = elel.mapv(chain, set)
    lngth = len(chain)
    owns = []
    for i in range(0, lngth - 1):
        ownattrs = st_chain[i].difference(st_chain[i + 1])
        owns.append(ownattrs)
    owns.append(st_chain[-1])
    owns = elel.mapv(owns, lambda st: elel.sort(list(st)))
    return (owns)
コード例 #4
0
ファイル: eobj.py プロジェクト: ihgazni2/eobj
def wfsm2orb(wfsm, jobj):
    o = orb.Orb()
    eles = wfsmat.wfs_eles(wfsm)
    fpls = elel.mapv(eles, lambda ele: ele.fpl)
    fapls = elel.mapv(eles, lambda ele: ele.fapl)
    tpls = elel.mapv(eles, lambda ele: ele['type'])
    ptpls = elel.mapv(eles, lambda ele: ele['ptype'])
    #im_pjobj  intermediate-pjobj 例如set 对应成list
    impjobjs = elel.mapv(eles, lambda ele: ele['im_pjobj'])
    for i in range(len(fapls)):
        fapl = fapls[i]
        fpl = fpls[i]
        tp = tpls[i]
        ptp = ptpls[i]
        pjobj = impjobjs[i]
        dflt = orb.Orb()
        del dflt._data
        #super trick!
        dflt.__setattr__(orb._INTERNAL_ATTR_MAP['fpl'], fpl)
        dflt.__setattr__('_data', jobj)
        dflt.__setattr__('_type', tp)
        dflt.__setattr__('_ptype', ptp)
        dflt.__setattr__('_im_pjobj', pjobj)
        afplfuncs.setdflt_fpl(o, fapl, value=dflt, _inited=True)
    #this is a trick
    o._ζ = True
    return (o)
コード例 #5
0
ファイル: ide.py プロジェクト: ihgazni2/dlixhict-didactic
def creat_api_names(pre,verb,suf):
    params = creat_apifix(pre)
    rtrns = creat_apifix(suf)
    tl = list(itertools.product(params,rtrns))
    tl = elel.mapv(rtrns,lambda ele:("",ele)) if(len(params)==0) else tl
    tl = elel.mapv(params,lambda ele:(ele,"")) if(len(rtrns)==0) else tl
    names = elel.mapv(tl,lambda ele:ele[0]+verb+ele[1])
    return(names)
コード例 #6
0
def creat_usage_from_code(cd):
    root = ast.parse(cd)
    d = wfsdig(root)
    body = d['body']
    funcs = elel.cond_select_all(d['body'],cond_func=lambda ele:ele['_type'] == 'FunctionDef')
    kl = elel.mapv(funcs,lambda func:func['name'])
    vl = elel.mapv(funcs,lambda func:[func['body'][0]['value']['s']])
    usage = creat_rst(kl,vl)
    return(usage)
コード例 #7
0
ファイル: tz.py プロジェクト: ihgazni2/pynoz
def creat_timezones_prompt_orb():
    root = Orb()
    all_timezones = pytz.all_timezones
    arr = elel.mapv(all_timezones, lambda ele: ele.split('/'))
    arr = elel.mapv(arr, lambda ele: zone_to_an_arr_map_func(ele))
    arr.sort()
    for i in range(len(arr)):
        pl = arr[i]
        set_via_pl_from_root(root, pl, an_arr_to_leaf)
    return (root)
コード例 #8
0
def get_word_abbr(ounhandled, regex=re.compile('[-_ ]')):
    cond = isinstance(regex, type(re.compile('')))
    regex = regex if (cond) else re.compile(regex)
    unhandled = elel.mapv(ounhandled, lambda r: eses.split(r, regex))
    unhandled = elel.mapv(unhandled, lambda r: padding_entry(r))
    unhandled = elel.mapv(unhandled, lambda r: elel.interleave(*r))
    unhandled = elel.mapv(unhandled, lambda r: elel.join(r, ''))
    refd = eded.kvlist2d(unhandled, ounhandled)
    abbr = get_one_word_abbr(unhandled)
    for k in abbr:
        v = abbr[k]
        abbr[k] = refd[v]
    return (abbr)
コード例 #9
0
def _repl_cols(df,poses,*args,**kwargs):
    df = copy.deepcopy(df)
    args = list(args)
    if(isinstance(args[0],dict)):
        kl,vl = eded.d2kvlist(args[0])
    else:
        if(isinstance(args[1],list)):
            kl =  elel.select_evens(args)
            vl =  elel.select_odds(args)
        else:
            kl,vl = elel.brkl2kvlist(args,df.index.__len__()+1)
    if(isinstance(poses[0],int)):
        pass
    else:
        colnames = poses 
        clocs_array = []
        for i in range(colnames.__len__()):
            clocs = _cn2clocs(colnames[i],**kwargs)
            clocs_array.append((clocs,i))
        if("whiches" in kwargs):
            whiches = kwargs['whiches']
            clocs_array = elel.mapv(clocs_array,lambda ele:ele[0])
            clocs = elel.batexec(lambda clocs,which:clocs[which],clocs_array,whiches)
            poses = clocs
        else:
            #by default replace all
            nkl = []
            nvl = []
            nclocs = []
            for i in range(clocs_array.__len__()):
                clocs = clocs_array[i][0]
                index = clocs_array[i][1]
                tmpkl = elel.init(clocs.__len__(),kl[i])
                tmpvl = elel.init(clocs.__len__(),vl[i])
                nkl = elel.concat(nkl,tmpkl)
                nvl = elel.concat(nvl,tmpvl)
                nclocs = elel.concat(nclocs,clocs)
            #batsort
            poses = nclocs
            kl,vl = elel.batsorted(nclocs,nkl,nvl)
    poses = elel.mapv(poses,lambda pos:pos+1)
    poses.sort()
    for i in range(0,poses.__len__()):
        pos = poses[i]
        df.insert(pos,kl[i],vl[i],kwargs['allow_duplicates'])
        pos = pos -1
        all_clocs = elel.init_range(0,df.columns.__len__(),1)
        all_clocs.remove(pos)
        df = df.iloc[:,all_clocs]
    return(df)
コード例 #10
0
ファイル: dtable.py プロジェクト: ihgazni2/dtable
def qtbl2dtb(qtbl):
    '''
        from qtable.qtable import *
        from xdict.jprint import pobj,pdir,parr
        qtbl
        qtbl = Qtable(mat= np.arange(25).reshape((5,5)),index=['a','c','d','a','e'],columns=['one', 'two', 'three','one','four'])
        parr(qtbl2dtb(qtbl))
        >>> qtbl
           one  two  three  one  four
        a    0    1      2    3     4
        c    5    6      7    8     9
        d   10   11     12   13    14
        a   15   16     17   18    19
        e   20   21     22   23    24
        >>>
        >>> parr(qtbl2dtb(qtbl))
        {'one': 3, 'two': 1, 'three': 2, 'four': 4}
        {'one': 8, 'two': 6, 'three': 7, 'four': 9}
        {'one': 13, 'two': 11, 'three': 12, 'four': 14}
        {'one': 18, 'two': 16, 'three': 17, 'four': 19}
        {'one': 23, 'two': 21, 'three': 22, 'four': 24}
    '''
    ks = qtbl.columns
    mat = qtbl.to_mat()
    depth = len(qtbl.index)
    dtb = elel.mapv(mat,lambda row:eded.kvlist2d(ks,row))
    return(dtb)
コード例 #11
0
def plmat2edfspls(plmat):
    plmat = wfsfpls2plmat(wfsfpls,**kwargs)
    plmat = plmat_fill_pbreadth(plmat)
    plmat = plmat_fill_children(plmat)
    edfsel = m2edfsel(plmat)
    edfspls = elel.mapv(edfsel,lambda ele:ele.fpl)
    return(edfspls)
コード例 #12
0
def m2full_fpls(m):
    """
        包括start 与 end 的 全路径
    """
    fdfs_locl = m2full_dfs_locl(m)
    full_fpls = elel.mapv(fdfs_locl,lambda loc:loc2ele(loc,m).fpl)
    return(full_fpls)
コード例 #13
0
ファイル: catimg.py プロジェクト: ihgazni/catimg
def linefill(line, c):
    def map_func(colorId, c):
        c = spaint.paint_str(c, color_sec=[(0, 2, colorId, colorId)])
        return (c)

    line = elel.mapv(line, map_func, [c])
    return (line)
コード例 #14
0
def get_cates():
    res = req.get(URL)
    html_txt = res.text
    root = LXHTML(html_txt)
    cates = engine.xpath(root,"//h3")
    for i in range(len(cates)):
        nd = cates[i]
        cate = CATEGORY_MD[nd.text]
        tb = engine.rsib(nd)
        a = engine.xpath(tb,"tr/td/a")
        tags = elel.mapv(a,lambda ele:ele.text[1:-1])
        ntags = []
        for tag in tags:
            if(tag == "!DOCTYPE"):
                tag = "<doctype>"
                ntags.append(tag)
            elif(tag == "!--...--"):
                tag = "<comment>"
                ntags.append(tag)
            elif(tag == 'h1> to <h6'):
                arr = ["h1","h2","h3","h4","h5","h6"]
                ntags.extend(arr)
            else:
                ntags.append(tag)
        CATES[cate] = ntags
    fs.rjson("category.json",CATES)
    return(CATES)
コード例 #15
0
def csv2jsd(src_fn,colname0,colname1,**kwargs):
    from_file = efun.dflt_kwargs('from_file',True)
    fmt_key = efun.dflt_kwargs('fmt_key',fmt_mime_key)
    dtb = csv2dtb(src_fn,from_file)
    l = elel.mapv(dtb,lambda ele:{js_key_encd(fmt_key(ele[colname0])):ele[colname1]})
    d = dldl.dlist2dict(l)
    return(d)
コード例 #16
0
ファイル: dtable.py プロジェクト: ihgazni2/dtable
def append_rows(dtb,*rowargs):
    '''
        >>> parr(dtb)
        {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}
        {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}
        {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}
        {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}
        {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}
        {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}
        {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}
        >>>
        >>> parr(append_rows(dtb,[1,2,3],[11,22,33]))
        {'three': 'aa', 'x': 'xx1', 'y': 'yy1'}
        {'three': 'bb', 'x': 'xx2', 'y': 'yy2'}
        {'three': 'cc', 'x': 'xx3', 'y': 'yy3'}
        {'three': 'dd', 'x': 'xx4', 'y': 'yy4'}
        {'three': 'ee', 'x': 'xx5', 'y': 'yy5'}
        {'three': 'ff', 'x': 'xx6', 'y': 'yy6'}
        {'three': 'gg', 'x': 'xx7', 'y': 'yy7'}
        {'three': 1, 'x': 2, 'y': 3}
        {'three': 11, 'x': 22, 'y': 33}
        >>>
    '''
    cnl = get_cnl(dtb)
    rows = elel.mapv(rowargs,rowarg2row,[cnl])
    dtb.extend(rows)
    return(dtb)
コード例 #17
0
def get_dirs(cfgdict):
    rslt = d2h(cfgdict)
    prdict = rslt['prdict']
    dirs = list(prdict['h:o'].values())
    dirs.remove([])
    dirs = elel.mapv(dirs, fs.pl2path)
    return (dirs)
コード例 #18
0
def get_children(plnd):
    '''
        这一步会填充ele.pbreadth,因为get_children之后,父节点就脱离了,完全依赖pbreadth
        这一步会填充ele.ftag,因为当前层的key(dict) seq(list,tuple)  dummy_seq(set)会在这一层决定
        这一步会填充ele.sibseq, 在兄弟中是第几个
        这一步会填充ele.depth, 在兄弟中是第几个
        这一步会填充ele.fpl, 在兄弟中是第几个
        这一步会填充ele['type'] 这个spec info
    '''
    fpl = plnd.ele.fpl  #current fpl  will be used as children pfpl
    jobj = plnd.jobj  #current jobj
    if (isinstance(jobj, dict)):
        ftagl, _ = eded.d2kvlist(jobj)  #get keys-list (ftagl)
    elif (isinstance(jobj, list) or isinstance(jobj, tuple)
          or isinstance(jobj, set)):
        ftagl = elel.init_range(0, len(jobj), 1)
    else:
        ftagl = []  #others all leaf-plnds
    #####
    pfpl = fpl
    chfpls = elel.mapv(ftagl, plfunc.ppl2pl,
                       [pfpl])  #get children-full-pathlist
    #######
    pjobj = jobj
    pele = plnd.ele
    children = elel.mapiv(
        chfpls, init_plnd, [pele, pjobj]
    )  #get all-children,init_plnd-will-fill-pbreadth=ftag=sibseq,fill-parent-ele-children
    return (children)
コード例 #19
0
def sdfspls2wfspls(sdfspls,**kwargs):
    groups = sdfspls2groups(sdfspls,**kwargs)
    vname = eftl.dflt_kwargs("vname","fpl",**kwargs)
    plmat = emem.mapv(groups,map_func=lambda ele:ele[vname])
    plmat = ltlt.to_list(plmat)
    wfsel = m2wfsel(plmat)
    wfspls = elel.mapv(wfsel,lambda ele:ele['fpl'])
    return(wfspls)
コード例 #20
0
ファイル: dtable.py プロジェクト: ihgazni2/dtable
def get_cvl(dtb,colname):
    '''
        >>> get_cvl(dtb,'one')
        [3, 8, 13, 18, 23]
        >>>
    '''
    
    return(elel.mapv(dtb,lambda row:row[colname]))
コード例 #21
0
ファイル: global_event.py プロジェクト: ihgazni2/dummybom
def get_global_events():
    res = req.get(URL)
    html_txt = res.text
    root = LXHTML(html_txt)
    ele = engine.xpath(root, "//div[@id='intro']")[0]
    sibs = engine.following_sibs(ele)[:-2]
    global_events = elel.mapv(sibs, engine.xpath, ["table"])
    for i in range(len(global_events)):
        tb = global_events[i][0]
        tds = engine.xpath(tb, "tr/td")
        ns = elel.select_interval(tds, 3)
        descs = elel.select_interval(tds[2:], 3)
        ns = elel.mapv(ns, lambda ele: txt.iter_text(ele).strip(" "))
        descs = elel.mapv(descs, lambda ele: txt.iter_text(ele).strip(" "))
        GLOBAL_EVENTS[CATEGORY_EN[i]] = eded.kvlist2d(ns, descs)
    fs.wjson("global_events.json", GLOBAL_EVENTS)
    return (GLOBAL_EVENTS)
コード例 #22
0
ファイル: pathlist_funcs.py プロジェクト: ihgazni2/eobj
def fapl2fpl(fapl):
    '''
        >>> plfuncs.fapl2fpl(['body', 'l0_', 'type'])
        ['body', 0, 'type']
        >>>
    '''
    fpl = elel.mapv(fapl,kastr.fatag2ftag)
    return(fpl)
コード例 #23
0
def nds2rsh(nds):
    '''
        rsh = nds2rsh(nds)
    '''
    sdfsnds = nds2sdfsnds(nds)
    depths = elel.mapv(sdfsnds,lambda nd:ndgetdepth(nd,nds))
    lns = elel.mapiv(depths,lambda i,depth:"    "*depth+"v"+str(sdfsnds[i].val))
    rsh = elel.join(lns,"\n")
    return(rsh)
コード例 #24
0
def binlist2num(binlist, **kwargs):
    bigend = eftl.dflt_kwargs('bigend', True, **kwargs)
    if (bigend):
        pass
    else:
        binlist = elel.fcp(binlist)
        binlist.reverse()
    arr = elel.mapv(binlist, str)
    s = elel.join(arr)
    return (int(s, 2))
コード例 #25
0
ファイル: tst.py プロジェクト: ihgazni2/minidoc
def creat_code_blk(cmds_arr):
    s = arr2str(cmds_arr)
    arr = s.split("\n")
    head1 = "    ::"
    head2 = "    "
    arr = elel.mapv(arr, lambda s: ("        " + s))
    arr = elel.prepend(arr, head2)
    arr = elel.prepend(arr, head1)
    s = elel.join(arr, "\n") + "\n\n"
    return (s)
コード例 #26
0
def _get_combination_num(combi, arr):
    '''
        >>> _get_combination_num(["c","e"],["a","b","c","d","e"])
        20     1 0 1 0 0
               e d c b a
        >>>
    '''
    mp = _get_combination_map(arr)
    combi = elel.mapv(combi, lambda ele: arr.index(ele))
    num = elel.reduce_left(combi, lambda acc, ele: acc + 2**ele, 0)
    return (num)
コード例 #27
0
ファイル: dtable.py プロジェクト: ihgazni2/dtable
def mat2dtb(m,cnl):
    '''
        >>> parr(mat2dtb(m,cnl))
        {'one': 3, 'two': 1, 'three': 2, 'four': 4}
        {'one': 8, 'two': 6, 'three': 7, 'four': 9}
        {'one': 13, 'two': 11, 'three': 12, 'four': 14}
        {'one': 18, 'two': 16, 'three': 17, 'four': 19}
        {'one': 23, 'two': 21, 'three': 22, 'four': 24}
        >>>
    '''
    return(elel.mapv(m,rvl2row,[cnl]))
コード例 #28
0
def s2d(s, sp="@"):
    s = s.strip("\n")
    lines = s.split("\n")
    tl = elel.mapv(lines, lambda line: tuple(line.split(sp)))
    d = eded.tlist2dict(tl)
    for k in d:
        v = d[k]
        d[k] = {}
        d[k]['cn_desc'] = v
        d[k]['return'] = {"cn_desc": "", "values": []}
    return (d)
コード例 #29
0
ファイル: tst.py プロジェクト: ihgazni2/minidoc
def creat_projhd(projname, desc):
    l0 = ".. contents:: Table of Contents\n"
    l1 = "   :depth: 5\n\n\n"
    l2 = "*" + projname + "*\n"
    l3 = "=" * (len(l2) - 1) + "\n"
    descs = desc.split("\n")
    descs = elel.mapv(descs, lambda ele: "- " + ele)
    l4 = elel.join(descs, "\n")
    l5 = "\n\n\n"
    s = l0 + l1 + l2 + l3 + l4 + l5
    print(s)
    return (s)
コード例 #30
0
ファイル: tst.py プロジェクト: ihgazni2/minidoc
def _infos2group(infos):
    def map_func(ele):
        ele.pop(0)
        return (ele)

    indexes = elel.cond_select_indexes_all(infos,
                                           cond_func=lambda info:
                                           (info.type == NEWLINE))
    groups = elel.broken_seqs(infos, indexes)
    groups = elel.remove_all(groups, [])
    groups = elel.mapv(groups, map_func)
    groups = elel.remove_all(groups, [])
    groups = elel.mapv(groups, _group2str)
    try:
        groups = elel.remove_last(groups, "\n")
        groups = elel.remove_first(groups, "\n")
    except:
        pass
    else:
        pass
    return (groups)