quantalogic 0.61.2__py3-none-any.whl → 0.80__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.
Files changed (67) hide show
  1. quantalogic/agent.py +0 -1
  2. quantalogic/codeact/TODO.md +14 -0
  3. quantalogic/codeact/agent.py +400 -421
  4. quantalogic/codeact/cli.py +42 -224
  5. quantalogic/codeact/cli_commands/__init__.py +0 -0
  6. quantalogic/codeact/cli_commands/create_toolbox.py +45 -0
  7. quantalogic/codeact/cli_commands/install_toolbox.py +20 -0
  8. quantalogic/codeact/cli_commands/list_executor.py +15 -0
  9. quantalogic/codeact/cli_commands/list_reasoners.py +15 -0
  10. quantalogic/codeact/cli_commands/list_toolboxes.py +47 -0
  11. quantalogic/codeact/cli_commands/task.py +215 -0
  12. quantalogic/codeact/cli_commands/tool_info.py +24 -0
  13. quantalogic/codeact/cli_commands/uninstall_toolbox.py +43 -0
  14. quantalogic/codeact/config.yaml +21 -0
  15. quantalogic/codeact/constants.py +1 -1
  16. quantalogic/codeact/events.py +12 -5
  17. quantalogic/codeact/examples/README.md +342 -0
  18. quantalogic/codeact/examples/agent_sample.yaml +29 -0
  19. quantalogic/codeact/executor.py +186 -0
  20. quantalogic/codeact/history_manager.py +94 -0
  21. quantalogic/codeact/llm_util.py +3 -22
  22. quantalogic/codeact/plugin_manager.py +92 -0
  23. quantalogic/codeact/prompts/generate_action.j2 +65 -14
  24. quantalogic/codeact/prompts/generate_program.j2 +32 -19
  25. quantalogic/codeact/react_agent.py +318 -0
  26. quantalogic/codeact/reasoner.py +185 -0
  27. quantalogic/codeact/templates/toolbox/README.md.j2 +10 -0
  28. quantalogic/codeact/templates/toolbox/pyproject.toml.j2 +16 -0
  29. quantalogic/codeact/templates/toolbox/tools.py.j2 +6 -0
  30. quantalogic/codeact/templates.py +7 -0
  31. quantalogic/codeact/tools_manager.py +242 -119
  32. quantalogic/codeact/utils.py +16 -89
  33. quantalogic/codeact/xml_utils.py +126 -0
  34. quantalogic/flow/flow.py +151 -41
  35. quantalogic/flow/flow_extractor.py +61 -1
  36. quantalogic/flow/flow_generator.py +34 -6
  37. quantalogic/flow/flow_manager.py +64 -25
  38. quantalogic/flow/flow_manager_schema.py +32 -0
  39. quantalogic/tools/action_gen.py +1 -1
  40. quantalogic/tools/action_gen_safe.py +340 -0
  41. quantalogic/tools/tool.py +531 -109
  42. quantalogic/tools/write_file_tool.py +7 -8
  43. {quantalogic-0.61.2.dist-info → quantalogic-0.80.dist-info}/METADATA +3 -2
  44. {quantalogic-0.61.2.dist-info → quantalogic-0.80.dist-info}/RECORD +47 -42
  45. {quantalogic-0.61.2.dist-info → quantalogic-0.80.dist-info}/WHEEL +1 -1
  46. quantalogic-0.80.dist-info/entry_points.txt +3 -0
  47. quantalogic/python_interpreter/__init__.py +0 -23
  48. quantalogic/python_interpreter/assignment_visitors.py +0 -63
  49. quantalogic/python_interpreter/base_visitors.py +0 -20
  50. quantalogic/python_interpreter/class_visitors.py +0 -22
  51. quantalogic/python_interpreter/comprehension_visitors.py +0 -172
  52. quantalogic/python_interpreter/context_visitors.py +0 -59
  53. quantalogic/python_interpreter/control_flow_visitors.py +0 -88
  54. quantalogic/python_interpreter/exception_visitors.py +0 -109
  55. quantalogic/python_interpreter/exceptions.py +0 -39
  56. quantalogic/python_interpreter/execution.py +0 -202
  57. quantalogic/python_interpreter/function_utils.py +0 -386
  58. quantalogic/python_interpreter/function_visitors.py +0 -209
  59. quantalogic/python_interpreter/import_visitors.py +0 -28
  60. quantalogic/python_interpreter/interpreter_core.py +0 -358
  61. quantalogic/python_interpreter/literal_visitors.py +0 -74
  62. quantalogic/python_interpreter/misc_visitors.py +0 -148
  63. quantalogic/python_interpreter/operator_visitors.py +0 -108
  64. quantalogic/python_interpreter/scope.py +0 -10
  65. quantalogic/python_interpreter/visit_handlers.py +0 -110
  66. quantalogic-0.61.2.dist-info/entry_points.txt +0 -6
  67. {quantalogic-0.61.2.dist-info → quantalogic-0.80.dist-info}/LICENSE +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,10 +0,0 @@
1
- # quantalogic/utils/scope.py
2
- class Scope:
3
- def __init__(self, env_stack):
4
- self.env_stack = env_stack
5
-
6
- def __enter__(self):
7
- self.env_stack.append({})
8
-
9
- def __exit__(self, exc_type, exc_value, traceback):
10
- self.env_stack.pop()
@@ -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
- ]
@@ -1,6 +0,0 @@
1
- [console_scripts]
2
- docs-build=quantalogic.docs_cli:build_docs
3
- docs-deploy=quantalogic.docs_cli:deploy_docs
4
- docs-serve=quantalogic.docs_cli:serve_docs
5
- quantalogic=quantalogic.main:cli
6
-