fix: Evaluate bench execute args for each site

This commit is contained in:
Corentin Forler 2024-09-30 14:35:31 +02:00
parent 92ee2ce291
commit bea742f624
No known key found for this signature in database

View file

@ -260,16 +260,16 @@ def execute(context: CliCtxObj, method, args=None, kwargs=None, profile=False):
if args: if args:
try: try:
args = eval(args) fn_args = eval(args)
except NameError: except NameError:
args = [args] fn_args = [args]
else: else:
args = () fn_args = ()
if kwargs: if kwargs:
kwargs = eval(kwargs) fn_kwargs = eval(kwargs)
else: else:
kwargs = {} fn_kwargs = {}
if profile: if profile:
import cProfile import cProfile
@ -278,13 +278,13 @@ def execute(context: CliCtxObj, method, args=None, kwargs=None, profile=False):
pr.enable() pr.enable()
try: try:
ret = frappe.get_attr(method)(*args, **kwargs) ret = frappe.get_attr(method)(*fn_args, **fn_kwargs)
except Exception: except Exception:
# eval is safe here because input is from console # eval is safe here because input is from console
code = compile(method, "<bench execute>", "eval") code = compile(method, "<bench execute>", "eval")
ret = eval(code, globals(), locals()) # nosemgrep ret = eval(code, globals(), locals()) # nosemgrep
if callable(ret): if callable(ret):
suffix = "(*args, **kwargs)" suffix = "(*fn_args, **fn_kwargs)"
code = compile(method + suffix, "<bench execute>", "eval") code = compile(method + suffix, "<bench execute>", "eval")
ret = eval(code, globals(), locals()) # nosemgrep ret = eval(code, globals(), locals()) # nosemgrep