pure-eval 是一个 Python 库,它提供了一种安全的方式来评估 Python 表达式,即在不允许访问任何外部资源的情况下,对表达式进行求值。
pure-eval 库使用 ast 模块将表达式转换为抽象语法树,并通过限制 ast 模块的访问权限来确保安全性。具体来说,pure-eval 库禁止访问 ast.Module、ast.FunctionDef、ast.AsyncFunctionDef、ast.ClassDef、ast.Delete、ast.Assign、ast.AugAssign、ast.Import、ast.ImportFrom、ast.Global、ast.Nonlocal、ast.Expr、ast.Await、ast.Yield 和 ast.YieldFrom 等节点,从而防止对 Python 解释器外部的资源进行访问。
以下是 pure-eval 库的示例代码:
from pure_eval import Evaluator
# 创建 Evaluator 对象
evaluator = Evaluator(