本文整理汇总了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;未经允许,请勿转载。 |
请发表评论