(code, env, fn_name)
| 639 | from sqlalchemy.util.compat import inspect_getfullargspec |
| 640 | |
| 641 | def _exec_code_in_env(code, env, fn_name): |
| 642 | # note this is affected by "from __future__ import annotations" at |
| 643 | # the top; exec'ed code will use non-evaluated annotations |
| 644 | # which allows us to be more flexible with code rendering |
| 645 | # in format_argpsec_plus() |
| 646 | exec(code, env) |
| 647 | return env[fn_name] |
| 648 | |
| 649 | def decorate(fn, add_positional_parameters=()): |
| 650 | spec = inspect_getfullargspec(fn) |