kumar-aditya commited on
Commit
8462f06
·
verified ·
1 Parent(s): 15504d3

Create schemas.py

Browse files
Files changed (1) hide show
  1. schemas.py +58 -0
schemas.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ from typing import Any, Dict, List, Optional
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+
8
+ class Spec(BaseModel):
9
+ problem_summary: str
10
+ input_format: str
11
+ output_format: str
12
+ constraints: List[str] = Field(default_factory=list)
13
+ edge_cases: List[str] = Field(default_factory=list)
14
+ hidden_cases: List[str] = Field(default_factory=list)
15
+ notes: List[str] = Field(default_factory=list)
16
+
17
+
18
+ class CodeAnalysis(BaseModel):
19
+ loops: List[str] = Field(default_factory=list)
20
+ conditions: List[str] = Field(default_factory=list)
21
+ risks: List[str] = Field(default_factory=list)
22
+ assumptions: List[str] = Field(default_factory=list)
23
+
24
+
25
+ class TestPlan(BaseModel):
26
+ categories: List[str]
27
+ targets: Dict[str, int]
28
+ strategy_notes: List[str] = Field(default_factory=list)
29
+
30
+
31
+ class TestCase(BaseModel):
32
+ category: str
33
+ input: Any
34
+ expected: Optional[Any] = None
35
+ explanation: str
36
+
37
+
38
+ class TestCaseList(BaseModel):
39
+ cases: List[TestCase]
40
+
41
+
42
+ class StudentTestSuite(BaseModel):
43
+ student_id: int
44
+ cases: List[TestCase]
45
+
46
+
47
+ class FeedbackSignal(BaseModel):
48
+ needs_refine: bool
49
+ issues: List[str] = Field(default_factory=list)
50
+ recommendations: List[str] = Field(default_factory=list)
51
+
52
+
53
+ class FinalReport(BaseModel):
54
+ spec: Spec
55
+ analysis: CodeAnalysis
56
+ plan: TestPlan
57
+ suites: List[StudentTestSuite]
58
+ feedback: FeedbackSignal