Arslan1997 commited on
Commit
69d683b
·
1 Parent(s): 5896fac
Files changed (1) hide show
  1. src/routes/code_routes.py +32 -43
src/routes/code_routes.py CHANGED
@@ -10,7 +10,6 @@ from scripts.format_response import execute_code_from_markdown, format_code_bloc
10
  from src.utils.logger import Logger
11
  from src.routes.session_routes import get_session_id_dependency
12
  from src.agents.agents import code_edit, code_fix
13
- from src.agents.deep_agents import score_code # IMPORT THE CORRECT score_code
14
  from src.db.schemas.models import CodeExecution
15
  from src.db.init_db import get_session
16
  import dspy
@@ -64,48 +63,38 @@ logger = Logger("code_routes", see_time=True, console_log=False)
64
  try_logger = Logger("try_code_routes", see_time=True, console_log=False)
65
 
66
 
67
- # REMOVE THE LOCAL score_code FUNCTION (lines 66-85)
68
- # def score_code(args, code):
69
- # """
70
- # Simple code scorer that checks if code runs successfully.
71
- #
72
- # Args:
73
- # args: Arguments (unused but required for dspy.Refine)
74
- # code: Code object with combined_code attribute
75
- #
76
- # Returns:
77
- # int: Score (0=error, 1=success)
78
- # """
79
- # code_text = code.fixed_code
80
- # try:
81
- # # Fix try statement syntax
82
- # code_text = code_text.replace('try\n', 'try:\n')
83
- # code_text = code_text.replace('```python', '').replace('```', '')
84
- #
85
- # # Remove code patterns that would make the code unrunnable
86
- # invalid_patterns = [
87
- # '```', '\\n', '\\t', '\\r'
88
- # ]
89
- #
90
- # for pattern in invalid_patterns:
91
- # if pattern in code_text:
92
- # code_text = code_text.replace(pattern, '')
93
- #
94
- # # Remove .show() method calls to prevent blocking
95
- # cleaned_code = re.sub(r"plt\.show\(\).*?(\n|$)", '', code_text)
96
- # cleaned_code = re.sub(r'\.show\([^)]*\)', '', cleaned_code)
97
- #
98
- # cleaned_code = remove_main_block(cleaned_code)
99
- #
100
- # # Execute code in a new namespace
101
- # local_vars = {}
102
- # exec(cleaned_code, globals(), local_vars)
103
- #
104
- # # If we get here, code executed successfully
105
- # return 1
106
- #
107
- # except Exception as e:
108
- # return 0
109
 
110
 
111
  # Remove the global refine_fixer declaration
 
10
  from src.utils.logger import Logger
11
  from src.routes.session_routes import get_session_id_dependency
12
  from src.agents.agents import code_edit, code_fix
 
13
  from src.db.schemas.models import CodeExecution
14
  from src.db.init_db import get_session
15
  import dspy
 
63
  try_logger = Logger("try_code_routes", see_time=True, console_log=False)
64
 
65
 
66
+ def score_code(args, code, datasets=None):
67
+ """
68
+ Simple code scorer that checks if code runs successfully.
69
+ Handles both deep analysis (combined_code) and fix (fixed_code) scenarios.
70
+
71
+ Args:
72
+ args: Arguments (unused but required for dspy.Refine)
73
+ code: Code object with combined_code, fixed_code, or string content
74
+ datasets: Dictionary of datasets from session state (optional)
75
+
76
+ Returns:
77
+ int: Score (0=error, 1=success)
78
+ """
79
+ try:
80
+ # Handle different attribute names based on context
81
+ if hasattr(code, 'combined_code'):
82
+ code_to_execute = code.combined_code # Deep analysis
83
+ elif hasattr(code, 'fixed_code'):
84
+ code_to_execute = code.fixed_code # Code fix
85
+ else:
86
+ code_to_execute = str(code) # Fallback to string
87
+
88
+ # Make datasets available if provided
89
+ local_vars = {}
90
+ if datasets:
91
+ local_vars.update(datasets)
92
+
93
+ # Execute the code to test if it works
94
+ exec(code_to_execute, local_vars)
95
+ return 1 # Success
96
+ except Exception as e:
97
+ return 0 # Error
 
 
 
 
 
 
 
 
 
 
98
 
99
 
100
  # Remove the global refine_fixer declaration