Check Style

Check Python code for style issues.

1# ---------------------------------------------------------------------------
2# Create Agent
3# ---------------------------------------------------------------------------
4#!/usr/bin/env python3
5"""
6Check Style
7=============================
8
9Check Python code for style issues.
10"""
11
12import json
13import sys
14
15
16def check_style(code: str) -> dict:
17 """Check code for common style issues."""
18 issues = []
19 lines = code.split("\n")
20
21 for i, line in enumerate(lines, 1):
22 # Check line length
23 if len(line) > 100:
24 issues.append(
25 {"line": i, "issue": f"Line exceeds 100 characters ({len(line)})"}
26 )
27
28 # Check trailing whitespace
29 if line.endswith(" ") or line.endswith("\t"):
30 issues.append({"line": i, "issue": "Trailing whitespace"})
31
32 # Check for camelCase variables (simple heuristic)
33 if "=" in line and not line.strip().startswith("#"):
34 var = line.split("=")[0].strip()
35 if (
36 any(c.isupper() for c in var)
37 and "_" not in var
38 and not var[0].isupper()
39 ):
40 issues.append(
41 {
42 "line": i,
43 "issue": f"Possible camelCase: '{var}' - use snake_case",
44 }
45 )
46
47 # Check for single-letter variables
48 if "=" in line:
49 var = line.split("=")[0].strip()
50 if len(var) == 1 and var not in "ijkxyz_":
51 issues.append(
52 {
53 "line": i,
54 "issue": f"Single-letter variable '{var}' - use descriptive name",
55 }
56 )
57
58 return {
59 "total_issues": len(issues),
60 "issues": issues,
61 "passed": len(issues) == 0,
62 }
63
64
65# ---------------------------------------------------------------------------
66# Run Agent
67# ---------------------------------------------------------------------------
68if __name__ == "__main__":
69 try:
70 if len(sys.argv) > 1:
71 code = sys.argv[1]
72 else:
73 code = sys.stdin.read()
74
75 result = check_style(code)
76 print(json.dumps(result, indent=2))
77 except Exception as e:
78 print(json.dumps({"error": str(e)}))

Run the Example

1# Clone and setup repo
2git clone https://github.com/kern-ai/kern.git
3cd kern/cookbook/02_agents/16_skills/sample_skills/code-review/scripts
4
5# Create and activate virtual environment
6./scripts/demo_setup.sh
7source .venvs/demo/bin/activate
8
9python check_style.py