当前位置: 首页>>代码示例>>Python>>正文


Python tools.subexpr_from_unbalanced函数代码示例

本文整理汇总了Python中xonsh.tools.subexpr_from_unbalanced函数的典型用法代码示例。如果您正苦于以下问题:Python subexpr_from_unbalanced函数的具体用法?Python subexpr_from_unbalanced怎么用?Python subexpr_from_unbalanced使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了subexpr_from_unbalanced函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: attr_complete

 def attr_complete(self, prefix, ctx):
     """Complete attributes of an object."""
     attrs = set()
     m = RE_ATTR.match(prefix)
     if m is None:
         return attrs
     expr, attr = m.group(1, 3)
     expr = subexpr_from_unbalanced(expr, '(', ')')
     expr = subexpr_from_unbalanced(expr, '[', ']')
     expr = subexpr_from_unbalanced(expr, '{', '}')
     try:
         val = builtins.evalx(expr, glbs=ctx)
     except:  # pylint:disable=bare-except
         try:
             val = builtins.evalx(expr, glbs=builtins.__dict__)
         except:  # pylint:disable=bare-except
             return attrs  # anything could have gone wrong!
     opts = dir(val)
     if len(attr) == 0:
         opts = [o for o in opts if not o.startswith('_')]
     else:
         opts = [o for o in opts if o.startswith(attr)]
     prelen = len(prefix)
     for opt in opts:
         a = getattr(val, opt)
         rpl = opt + '(' if callable(a) else opt
         # note that prefix[:prelen-len(attr)] != prefix[:-len(attr)]
         # when len(attr) == 0.
         comp = prefix[:prelen-len(attr)] + rpl
         attrs.add(comp)
     return attrs
开发者ID:jbartonthomas,项目名称:xonsh,代码行数:31,代码来源:completer.py

示例2: attr_complete

def attr_complete(prefix, ctx, filter_func):
    """Complete attributes of an object."""
    attrs = set()
    m = RE_ATTR.match(prefix)
    if m is None:
        return attrs
    expr, attr = m.group(1, 3)
    expr = xt.subexpr_from_unbalanced(expr, '(', ')')
    expr = xt.subexpr_from_unbalanced(expr, '[', ']')
    expr = xt.subexpr_from_unbalanced(expr, '{', '}')
    _ctx = None
    xonsh_safe_eval = builtins.__xonsh_execer__.eval
    try:
        val = xonsh_safe_eval(expr, ctx, transform=False)
        _ctx = ctx
    except:  # pylint:disable=bare-except
        try:
            val = xonsh_safe_eval(expr, builtins.__dict__, transform=False)
            _ctx = builtins.__dict__
        except:  # pylint:disable=bare-except
            return attrs  # anything could have gone wrong!
    if len(attr) == 0:
        opts = [o for o in dir(val) if not o.startswith('_')]
    else:
        opts = [o for o in dir(val) if filter_func(o, attr)]
    prelen = len(prefix)
    for opt in opts:
        # check whether these options actually work (e.g., disallow 7.imag)
        try:
            _val = '{0}.{1}'.format(expr, opt)
            xonsh_safe_eval(_val, _ctx, transform=False)
        except:  # pylint:disable=bare-except
            continue
        a = getattr(val, opt)
        if builtins.__xonsh_env__['COMPLETIONS_BRACKETS']:
            if callable(a):
                rpl = opt + '('
            elif isinstance(a, (cabc.Sequence, cabc.Mapping)):
                rpl = opt + '['
            else:
                rpl = opt
        else:
            rpl = opt
        # note that prefix[:prelen-len(attr)] != prefix[:-len(attr)]
        # when len(attr) == 0.
        comp = prefix[:prelen - len(attr)] + rpl
        attrs.add(comp)
    return attrs
开发者ID:janschulz,项目名称:xonsh,代码行数:48,代码来源:python.py

示例3: attr_complete

 def attr_complete(self, prefix, ctx):
     """Complete attributes of an object."""
     attrs = set()
     m = RE_ATTR.match(prefix)
     if m is None:
         return attrs
     expr, attr = m.group(1, 3)
     expr = subexpr_from_unbalanced(expr, '(', ')')
     expr = subexpr_from_unbalanced(expr, '[', ']')
     expr = subexpr_from_unbalanced(expr, '{', '}')
     _ctx = None
     try:
         val = eval(expr, ctx)
         _ctx = ctx
     except:  # pylint:disable=bare-except
         try:
             val = eval(expr, builtins.__dict__)
             _ctx = builtins.__dict__
         except:  # pylint:disable=bare-except
             return attrs  # anything could have gone wrong!
     _opts = dir(val)
     # check whether these options actually work (e.g., disallow 7.imag)
     opts = []
     for i in _opts:
         try:
             eval('{0}.{1}'.format(expr, i), _ctx)
         except:  # pylint:disable=bare-except
             continue
         else:
             opts.append(i)
     if len(attr) == 0:
         opts = [o for o in opts if not o.startswith('_')]
     else:
         csc = builtins.__xonsh_env__.get('CASE_SENSITIVE_COMPLETIONS')
         startswither = startswithnorm if csc else startswithlow
         attrlow = attr.lower()
         opts = [o for o in opts if startswither(o, attr, attrlow)]
     prelen = len(prefix)
     for opt in opts:
         a = getattr(val, opt)
         rpl = opt + '(' if callable(a) else opt
         # note that prefix[:prelen-len(attr)] != prefix[:-len(attr)]
         # when len(attr) == 0.
         comp = prefix[:prelen - len(attr)] + rpl
         attrs.add(comp)
     return attrs
开发者ID:mwiebe,项目名称:xonsh,代码行数:46,代码来源:completer.py

示例4: test_subexpr_from_unbalanced_parens

def test_subexpr_from_unbalanced_parens():
    cases = [
        ('f(x.', 'x.'),
        ('f(1,x.', 'x.'),
        ('f((1,10),x.y', 'x.y'),
        ]
    for expr, exp in cases:
        obs = subexpr_from_unbalanced(expr, '(', ')')
        yield assert_equal, exp, obs
开发者ID:gforsyth,项目名称:xonsh,代码行数:9,代码来源:test_tools.py

示例5: attr_complete

def attr_complete(prefix, ctx, filter_func):
    """Complete attributes of an object."""
    attrs = set()
    m = RE_ATTR.match(prefix)
    if m is None:
        return attrs
    expr, attr = m.group(1, 3)
    expr = xt.subexpr_from_unbalanced(expr, '(', ')')
    expr = xt.subexpr_from_unbalanced(expr, '[', ']')
    expr = xt.subexpr_from_unbalanced(expr, '{', '}')
    val, _ctx = _safe_eval(expr, ctx)
    if val is None and _ctx is None:
        return attrs
    if len(attr) == 0:
        opts = [o for o in dir(val) if not o.startswith('_')]
    else:
        opts = [o for o in dir(val) if filter_func(o, attr)]
    prelen = len(prefix)
    for opt in opts:
        # check whether these options actually work (e.g., disallow 7.imag)
        _expr = '{0}.{1}'.format(expr, opt)
        _val_, _ctx_ = _safe_eval(_expr, _ctx)
        if _val_ is None and _ctx_ is None:
            continue
        a = getattr(val, opt)
        if builtins.__xonsh_env__['COMPLETIONS_BRACKETS']:
            if callable(a):
                rpl = opt + '('
            elif isinstance(a, (cabc.Sequence, cabc.Mapping)):
                rpl = opt + '['
            else:
                rpl = opt
        else:
            rpl = opt
        # note that prefix[:prelen-len(attr)] != prefix[:-len(attr)]
        # when len(attr) == 0.
        comp = prefix[:prelen - len(attr)] + rpl
        attrs.add(comp)
    return attrs
开发者ID:laerus,项目名称:xonsh,代码行数:39,代码来源:python.py

示例6: test_subexpr_from_unbalanced_parens

def test_subexpr_from_unbalanced_parens(inp, exp):
    obs = subexpr_from_unbalanced(inp, "(", ")")
    assert exp == obs
开发者ID:mitnk,项目名称:xonsh,代码行数:3,代码来源:test_tools.py


注:本文中的xonsh.tools.subexpr_from_unbalanced函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。