quantalogic 0.61.2__py3-none-any.whl → 0.61.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quantalogic/codeact/agent.py +1 -1
- quantalogic/codeact/cli.py +5 -5
- quantalogic/codeact/tools_manager.py +1 -1
- quantalogic/tools/action_gen_safe.py +340 -0
- quantalogic/tools/write_file_tool.py +7 -8
- {quantalogic-0.61.2.dist-info → quantalogic-0.61.3.dist-info}/METADATA +2 -1
- {quantalogic-0.61.2.dist-info → quantalogic-0.61.3.dist-info}/RECORD +10 -28
- quantalogic/python_interpreter/__init__.py +0 -23
- quantalogic/python_interpreter/assignment_visitors.py +0 -63
- quantalogic/python_interpreter/base_visitors.py +0 -20
- quantalogic/python_interpreter/class_visitors.py +0 -22
- quantalogic/python_interpreter/comprehension_visitors.py +0 -172
- quantalogic/python_interpreter/context_visitors.py +0 -59
- quantalogic/python_interpreter/control_flow_visitors.py +0 -88
- quantalogic/python_interpreter/exception_visitors.py +0 -109
- quantalogic/python_interpreter/exceptions.py +0 -39
- quantalogic/python_interpreter/execution.py +0 -202
- quantalogic/python_interpreter/function_utils.py +0 -386
- quantalogic/python_interpreter/function_visitors.py +0 -209
- quantalogic/python_interpreter/import_visitors.py +0 -28
- quantalogic/python_interpreter/interpreter_core.py +0 -358
- quantalogic/python_interpreter/literal_visitors.py +0 -74
- quantalogic/python_interpreter/misc_visitors.py +0 -148
- quantalogic/python_interpreter/operator_visitors.py +0 -108
- quantalogic/python_interpreter/scope.py +0 -10
- quantalogic/python_interpreter/visit_handlers.py +0 -110
- {quantalogic-0.61.2.dist-info → quantalogic-0.61.3.dist-info}/LICENSE +0 -0
- {quantalogic-0.61.2.dist-info → quantalogic-0.61.3.dist-info}/WHEEL +0 -0
- {quantalogic-0.61.2.dist-info → quantalogic-0.61.3.dist-info}/entry_points.txt +0 -0
@@ -1,108 +0,0 @@
|
|
1
|
-
import ast
|
2
|
-
from typing import Any
|
3
|
-
|
4
|
-
from .interpreter_core import ASTInterpreter
|
5
|
-
|
6
|
-
async def visit_BinOp(self: ASTInterpreter, node: ast.BinOp, wrap_exceptions: bool = True) -> Any:
|
7
|
-
left: Any = await self.visit(node.left, wrap_exceptions=wrap_exceptions)
|
8
|
-
right: Any = await self.visit(node.right, wrap_exceptions=wrap_exceptions)
|
9
|
-
op = node.op
|
10
|
-
if isinstance(op, ast.Add):
|
11
|
-
return left + right
|
12
|
-
elif isinstance(op, ast.Sub):
|
13
|
-
if isinstance(left, set) and isinstance(right, set):
|
14
|
-
return left - right
|
15
|
-
return left - right
|
16
|
-
elif isinstance(op, ast.Mult):
|
17
|
-
return left * right
|
18
|
-
elif isinstance(op, ast.Div):
|
19
|
-
return left / right
|
20
|
-
elif isinstance(op, ast.FloorDiv):
|
21
|
-
return left // right
|
22
|
-
elif isinstance(op, ast.Mod):
|
23
|
-
return left % right
|
24
|
-
elif isinstance(op, ast.Pow):
|
25
|
-
return left**right
|
26
|
-
elif isinstance(op, ast.LShift):
|
27
|
-
return left << right
|
28
|
-
elif isinstance(op, ast.RShift):
|
29
|
-
return left >> right
|
30
|
-
elif isinstance(op, ast.BitOr):
|
31
|
-
if isinstance(left, set) and isinstance(right, set):
|
32
|
-
return left | right
|
33
|
-
return left | right
|
34
|
-
elif isinstance(op, ast.BitXor):
|
35
|
-
return left ^ right
|
36
|
-
elif isinstance(op, ast.BitAnd):
|
37
|
-
if isinstance(left, set) and isinstance(right, set):
|
38
|
-
return left & right
|
39
|
-
return left & right
|
40
|
-
else:
|
41
|
-
raise Exception("Unsupported binary operator: " + str(op))
|
42
|
-
|
43
|
-
async def visit_UnaryOp(self: ASTInterpreter, node: ast.UnaryOp, wrap_exceptions: bool = True) -> Any:
|
44
|
-
operand: Any = await self.visit(node.operand, wrap_exceptions=wrap_exceptions)
|
45
|
-
op = node.op
|
46
|
-
if isinstance(op, ast.UAdd):
|
47
|
-
return +operand
|
48
|
-
elif isinstance(op, ast.USub):
|
49
|
-
return -operand
|
50
|
-
elif isinstance(op, ast.Not):
|
51
|
-
return not operand
|
52
|
-
elif isinstance(op, ast.Invert):
|
53
|
-
return ~operand
|
54
|
-
else:
|
55
|
-
raise Exception("Unsupported unary operator: " + str(op))
|
56
|
-
|
57
|
-
async def visit_Compare(self: ASTInterpreter, node: ast.Compare, wrap_exceptions: bool = True) -> bool:
|
58
|
-
left: Any = await self.visit(node.left, wrap_exceptions=wrap_exceptions)
|
59
|
-
for op, comparator in zip(node.ops, node.comparators):
|
60
|
-
right: Any = await self.visit(comparator, wrap_exceptions=wrap_exceptions)
|
61
|
-
if isinstance(op, ast.Eq):
|
62
|
-
if not (left == right):
|
63
|
-
return False
|
64
|
-
elif isinstance(op, ast.NotEq):
|
65
|
-
if not (left != right):
|
66
|
-
return False
|
67
|
-
elif isinstance(op, ast.Lt):
|
68
|
-
if not (left < right):
|
69
|
-
return False
|
70
|
-
elif isinstance(op, ast.LtE):
|
71
|
-
if not (left <= right):
|
72
|
-
return False
|
73
|
-
elif isinstance(op, ast.Gt):
|
74
|
-
if not (left > right):
|
75
|
-
return False
|
76
|
-
elif isinstance(op, ast.GtE):
|
77
|
-
if not (left >= right):
|
78
|
-
return False
|
79
|
-
elif isinstance(op, ast.Is):
|
80
|
-
if left is not right:
|
81
|
-
return False
|
82
|
-
elif isinstance(op, ast.IsNot):
|
83
|
-
if not (left is not right):
|
84
|
-
return False
|
85
|
-
elif isinstance(op, ast.In):
|
86
|
-
if left not in right:
|
87
|
-
return False
|
88
|
-
elif isinstance(op, ast.NotIn):
|
89
|
-
if not (left not in right):
|
90
|
-
return False
|
91
|
-
else:
|
92
|
-
raise Exception("Unsupported comparison operator: " + str(op))
|
93
|
-
left = right
|
94
|
-
return True
|
95
|
-
|
96
|
-
async def visit_BoolOp(self: ASTInterpreter, node: ast.BoolOp, wrap_exceptions: bool = True) -> bool:
|
97
|
-
if isinstance(node.op, ast.And):
|
98
|
-
for value in node.values:
|
99
|
-
if not await self.visit(value, wrap_exceptions=wrap_exceptions):
|
100
|
-
return False
|
101
|
-
return True
|
102
|
-
elif isinstance(node.op, ast.Or):
|
103
|
-
for value in node.values:
|
104
|
-
if await self.visit(value, wrap_exceptions=wrap_exceptions):
|
105
|
-
return True
|
106
|
-
return False
|
107
|
-
else:
|
108
|
-
raise Exception("Unsupported boolean operator: " + str(node.op))
|
@@ -1,110 +0,0 @@
|
|
1
|
-
from .base_visitors import (
|
2
|
-
visit_Module,
|
3
|
-
visit_Expr,
|
4
|
-
visit_Pass,
|
5
|
-
visit_TypeIgnore,
|
6
|
-
)
|
7
|
-
|
8
|
-
from .import_visitors import (
|
9
|
-
visit_Import,
|
10
|
-
visit_ImportFrom,
|
11
|
-
)
|
12
|
-
|
13
|
-
from .literal_visitors import (
|
14
|
-
visit_Constant,
|
15
|
-
visit_Name,
|
16
|
-
visit_List,
|
17
|
-
visit_Tuple,
|
18
|
-
visit_Dict,
|
19
|
-
visit_Set,
|
20
|
-
visit_Attribute,
|
21
|
-
visit_Subscript,
|
22
|
-
visit_Slice,
|
23
|
-
visit_Index,
|
24
|
-
visit_Starred,
|
25
|
-
visit_JoinedStr,
|
26
|
-
visit_FormattedValue,
|
27
|
-
)
|
28
|
-
|
29
|
-
from .operator_visitors import (
|
30
|
-
visit_BinOp,
|
31
|
-
visit_UnaryOp,
|
32
|
-
visit_Compare,
|
33
|
-
visit_BoolOp,
|
34
|
-
)
|
35
|
-
|
36
|
-
from .assignment_visitors import (
|
37
|
-
visit_Assign,
|
38
|
-
visit_AugAssign,
|
39
|
-
visit_AnnAssign,
|
40
|
-
visit_NamedExpr,
|
41
|
-
)
|
42
|
-
|
43
|
-
from .control_flow_visitors import (
|
44
|
-
visit_If,
|
45
|
-
visit_While,
|
46
|
-
visit_For,
|
47
|
-
visit_AsyncFor,
|
48
|
-
visit_Break,
|
49
|
-
visit_Continue,
|
50
|
-
visit_Return,
|
51
|
-
visit_IfExp,
|
52
|
-
)
|
53
|
-
|
54
|
-
from .function_visitors import (
|
55
|
-
visit_FunctionDef,
|
56
|
-
visit_AsyncFunctionDef,
|
57
|
-
visit_AsyncGeneratorDef,
|
58
|
-
visit_Call,
|
59
|
-
visit_Await,
|
60
|
-
visit_Lambda,
|
61
|
-
)
|
62
|
-
|
63
|
-
from .comprehension_visitors import (
|
64
|
-
visit_ListComp,
|
65
|
-
visit_DictComp,
|
66
|
-
visit_SetComp,
|
67
|
-
visit_GeneratorExp,
|
68
|
-
)
|
69
|
-
|
70
|
-
from .exception_visitors import (
|
71
|
-
visit_Try,
|
72
|
-
visit_TryStar,
|
73
|
-
visit_Raise,
|
74
|
-
)
|
75
|
-
|
76
|
-
from .class_visitors import (
|
77
|
-
visit_ClassDef,
|
78
|
-
)
|
79
|
-
|
80
|
-
from .context_visitors import (
|
81
|
-
visit_With,
|
82
|
-
visit_AsyncWith,
|
83
|
-
)
|
84
|
-
|
85
|
-
from .misc_visitors import (
|
86
|
-
visit_Global,
|
87
|
-
visit_Nonlocal,
|
88
|
-
visit_Delete,
|
89
|
-
visit_Assert,
|
90
|
-
visit_Yield,
|
91
|
-
visit_YieldFrom,
|
92
|
-
visit_Match,
|
93
|
-
_match_pattern,
|
94
|
-
)
|
95
|
-
|
96
|
-
__all__ = [
|
97
|
-
"visit_Import", "visit_ImportFrom", "visit_ListComp", "visit_Module", "visit_Expr",
|
98
|
-
"visit_Constant", "visit_Name", "visit_BinOp", "visit_UnaryOp", "visit_Assign",
|
99
|
-
"visit_AugAssign", "visit_AnnAssign", "visit_Compare", "visit_BoolOp", "visit_If",
|
100
|
-
"visit_While", "visit_For", "visit_Break", "visit_Continue", "visit_FunctionDef",
|
101
|
-
"visit_AsyncFunctionDef", "visit_AsyncGeneratorDef", "visit_Call", "visit_Await",
|
102
|
-
"visit_Return", "visit_Lambda", "visit_List", "visit_Tuple", "visit_Dict",
|
103
|
-
"visit_Set", "visit_Attribute", "visit_Subscript", "visit_Slice", "visit_Index",
|
104
|
-
"visit_Starred", "visit_Pass", "visit_TypeIgnore", "visit_Try", "visit_TryStar",
|
105
|
-
"visit_Nonlocal", "visit_JoinedStr", "visit_FormattedValue", "visit_GeneratorExp",
|
106
|
-
"visit_ClassDef", "visit_With", "visit_AsyncWith", "visit_Raise", "visit_Global",
|
107
|
-
"visit_IfExp", "visit_DictComp", "visit_SetComp", "visit_Yield", "visit_YieldFrom",
|
108
|
-
"visit_Match", "visit_Delete", "visit_AsyncFor", "visit_Assert", "visit_NamedExpr",
|
109
|
-
"_match_pattern",
|
110
|
-
]
|
File without changes
|
File without changes
|
File without changes
|