diff options
author | 2021-04-10 21:07:48 -0400 | |
---|---|---|
committer | 2021-04-10 21:07:48 -0400 | |
commit | 341908df150b6129055c970c7d2a8d36d76a4bfe (patch) | |
tree | 32d8f8ea094fe5212dce56319d981a42de929089 /bot/exts/internal_eval/_helpers.py | |
parent | Removed rogue variable (diff) |
Blind Fixes at Linting
Both my pre-commit and flake8 runs are telling me
everything is fine and it's all passed. Github actions
is saying otherwise but isn't saying *where*.
So here I am with useless linting commits.
Diffstat (limited to 'bot/exts/internal_eval/_helpers.py')
-rw-r--r-- | bot/exts/internal_eval/_helpers.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bot/exts/internal_eval/_helpers.py b/bot/exts/internal_eval/_helpers.py index 5c602e4d..a8ae5bef 100644 --- a/bot/exts/internal_eval/_helpers.py +++ b/bot/exts/internal_eval/_helpers.py @@ -74,6 +74,7 @@ def format_internal_eval_exception(exc_info: ExcInfo, code: str) -> str: class EvalContext: """ Represents the current `internal eval` context. + The context remembers names set during earlier runs of `internal eval`. To clear the context, use the `?internal clear` command. """ @@ -93,6 +94,7 @@ class EvalContext: def dependencies(self) -> typing.Dict[str, typing.Any]: """ Return a mapping of the dependencies for the wrapper function. + By using a property descriptor, the mapping can't be accidentally mutated during evaluation. This ensures the dependencies are always available. @@ -194,6 +196,7 @@ class WrapEvalCodeTree(ast.NodeTransformer): def visit_Pass(self, node: ast.Pass) -> typing.List[ast.AST]: # noqa: N802 """ Replace the `_ast.Pass` node in the wrapper function by the eval AST. + This method works on the assumption that there's a single `pass` statement in the wrapper function. """ @@ -211,6 +214,7 @@ class CaptureLastExpression(ast.NodeTransformer): def visit_Expr(self, node: ast.Expr) -> typing.Union[ast.Expr, ast.Assign]: # noqa: N802 """ Replace the Expr node that is last child node of Module with an assignment. + We use an assignment to capture the value of the last node, if it's a loose Expr node. Normally, the value of an Expr node is lost, meaning we don't get the output of such a last "loose" expression. By assigning it a name, we can |