Donutsever commited on
Commit
477f237
·
verified ·
1 Parent(s): ae7a494

Added Linter python tool

Browse files
Files changed (1) hide show
  1. app.py +31 -8
app.py CHANGED
@@ -7,16 +7,39 @@ from tools.final_answer import FinalAnswerTool
7
 
8
  from Gradio_UI import GradioUI
9
 
10
- # Below is an example of a tool that does nothing. Amaze us with your creativity !
11
- @tool
12
- def my_custom_tool(arg1:str, arg2:int)-> str: #it's import to specify the return type
13
- #Keep this format for the description / args / args description but feel free to modify the tool
14
- """A tool that does nothing yet
 
 
 
15
  Args:
16
- arg1: the first argument
17
- arg2: the second argument
 
 
18
  """
19
- return "What magic will you build ?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  @tool
22
  def get_current_time_in_timezone(timezone: str) -> str:
 
7
 
8
  from Gradio_UI import GradioUI
9
 
10
+ import ast
11
+ import pyflakes.api
12
+ import pyflakes.reporter
13
+ import io
14
+
15
+ def detect_code_issues(code: str) -> list:
16
+ """Analyzes Python code for common issues using AST and Pyflakes.
17
+
18
  Args:
19
+ code: The Python code as a string.
20
+
21
+ Returns:
22
+ A list of detected issues.
23
  """
24
+ issues = []
25
+
26
+ # Check for syntax errors
27
+ try:
28
+ ast.parse(code)
29
+ except SyntaxError as e:
30
+ issues.append(f"SyntaxError: {e.msg} at line {e.lineno}")
31
+
32
+ # Use Pyflakes to check for other issues (e.g., unused imports, undefined variables)
33
+ output_stream = io.StringIO()
34
+ reporter = pyflakes.reporter.Reporter(output_stream, output_stream)
35
+ pyflakes.api.check(code, filename="<user_code>", reporter=reporter)
36
+ output = output_stream.getvalue()
37
+
38
+ if output:
39
+ issues.extend(output.strip().split("\n"))
40
+
41
+ return issues
42
+
43
 
44
  @tool
45
  def get_current_time_in_timezone(timezone: str) -> str: