1
- from typing import List
2
- from pydantic import BaseModel
3
-
4
-
5
- class PyArg (BaseModel ):
6
- arg_name : str
7
- arg_type : str
8
-
9
-
10
1
class PyImport (BaseModel ):
11
2
from_statement : str
12
3
imports : List [str ]
@@ -22,12 +13,19 @@ class PyCallSite(BaseModel):
22
13
end_column : int
23
14
24
15
16
+ class PyClass (BaseModel ):
17
+ code_body : str
18
+ full_signature : str
19
+ super_classes : List [str ]
20
+ is_test_class : bool
21
+ class_name : str = None
22
+ methods : List [PyMethod ]
23
+
24
+
25
25
class PyMethod (BaseModel ):
26
26
code_body : str
27
27
method_name : str
28
28
full_signature : str
29
- num_params : int
30
- modifier : str
31
29
is_constructor : bool
32
30
is_static : bool
33
31
formal_params : List [PyArg ]
@@ -36,30 +34,41 @@ class PyMethod(BaseModel):
36
34
class_signature : str
37
35
start_line : int
38
36
end_line : int
39
- # incoming_calls: Optional[List["PyMethod"]] = None
40
- # outgoing_calls: Optional[List["PyMethod"]] = None
41
-
42
-
43
- class PyClass (BaseModel ):
44
- code_body : str
45
- full_signature : str
46
- super_classes : List [str ]
47
- is_test_class : bool
48
- class_name : str = None
49
- methods : List [PyMethod ]
50
37
51
38
52
39
class PyModule (BaseModel ):
53
40
qualified_name : str
54
41
functions : List [PyMethod ]
55
42
classes : List [PyClass ]
56
43
imports : List [PyImport ]
57
- #expressions: str
44
+
45
+
46
+ class PyArg (BaseModel ):
47
+ arg_name : str
48
+ arg_type : str
58
49
59
50
60
51
class PyBuildAttributes (BaseModel ):
61
52
"""Handles all the project build tool (requirements.txt/poetry/setup.py) attributes"""
62
53
54
+ # Name of the build file (e.g., 'setup.py', 'requirements.txt', 'pyproject.toml')
55
+ build_file_type : str
56
+ code_body : str
57
+ # Build tool used (e.g., 'setuptools', 'poetry', 'pip')
58
+ build_tool : str
59
+ package_name : str = None
60
+ version : str = None
61
+ dependencies : List [str ] = []
62
+ dev_dependencies : List [str ] = []
63
+ scripts : List [str ] = []
64
+
63
65
64
66
class PyConfig (BaseModel ):
65
67
"""Application configuration information"""
68
+
69
+ config_file_names : Dict [str , str ] # Name of the configuration file
70
+ code_body : str # The content of the configuration file
71
+ config_type : str # Type of config file (e.g., 'json', 'yaml', 'ini', 'python')
72
+ settings : Dict [str , Any ] = {} # Parsed settings from the config file
73
+ start_line : int = None
74
+ end_line : int = None
0 commit comments