This commit is contained in:
Anthony Scopatz 2019-02-04 16:17:02 -05:00
parent b2faa470cd
commit a00cf04a5f
2 changed files with 46 additions and 19 deletions

View file

@ -64,7 +64,16 @@ def test_eval_recursive_callable_partial(xonsh_execer, xonsh_builtins):
def _return_to_sender_all(args, stdin, stdout, stderr, spec, stack):
return args, {"stdin": stdin, "stdout": stdout, "stderr": stderr, "spec": spec, "stack": stack}
return (
args,
{
"stdin": stdin,
"stdout": stdout,
"stderr": stderr,
"spec": spec,
"stack": stack,
},
)
def test_recursive_callable_partial_all(xonsh_execer, xonsh_builtins):

View file

@ -209,17 +209,22 @@ class PartialEvalAliasBase:
self.f = f
self.acc_args = acc_args
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin, stdout, stderr, spec, stack)
def __repr__(self):
return "{name}({f!r}, acc_args={acc_args!r})".format(name=self.__class__.__name__, f=self.f, acc_args=self.acc_args)
return "{name}({f!r}, acc_args={acc_args!r})".format(
name=self.__class__.__name__, f=self.f, acc_args=self.acc_args
)
class PartialEvalAlias0(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
if args:
msg = "callable alias {f!r} takes no arguments, but {args!f} provided. "
@ -229,48 +234,62 @@ class PartialEvalAlias0(PartialEvalAliasBase):
class PartialEvalAlias1(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args)
class PartialEvalAlias2(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin)
class PartialEvalAlias3(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin, stdout)
class PartialEvalAlias4(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin, stdout, stderr)
class PartialEvalAlias5(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin, stdout, stderr, spec)
class PartialEvalAlias6(PartialEvalAliasBase):
def __call__(self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None):
def __call__(
self, args, stdin=None, stdout=None, stderr=None, spec=None, stack=None
):
args = list(self.acc_args) + args
return self.f(args, stdin, stdout, stderr, spec, stack)
PARTIAL_EVAL_ALIASES = (PartialEvalAlias0, PartialEvalAlias1, PartialEvalAlias2, PartialEvalAlias3, PartialEvalAlias4, PartialEvalAlias5, PartialEvalAlias6)
PARTIAL_EVAL_ALIASES = (
PartialEvalAlias0,
PartialEvalAlias1,
PartialEvalAlias2,
PartialEvalAlias3,
PartialEvalAlias4,
PartialEvalAlias5,
PartialEvalAlias6,
)
def partial_eval_alias(f, acc_args=()):
@ -297,7 +316,6 @@ def partial_eval_alias(f, acc_args=()):
raise XonshError(e.format(", ".join(ALIAS_KWARG_NAMES), numargs))
#
# Actual aliases below
#