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-
101class PyImport (BaseModel ):
112 from_statement : str
123 imports : List [str ]
@@ -22,12 +13,19 @@ class PyCallSite(BaseModel):
2213 end_column : int
2314
2415
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+
2525class PyMethod (BaseModel ):
2626 code_body : str
2727 method_name : str
2828 full_signature : str
29- num_params : int
30- modifier : str
3129 is_constructor : bool
3230 is_static : bool
3331 formal_params : List [PyArg ]
@@ -36,30 +34,41 @@ class PyMethod(BaseModel):
3634 class_signature : str
3735 start_line : int
3836 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 ]
5037
5138
5239class PyModule (BaseModel ):
5340 qualified_name : str
5441 functions : List [PyMethod ]
5542 classes : List [PyClass ]
5643 imports : List [PyImport ]
57- #expressions: str
44+
45+
46+ class PyArg (BaseModel ):
47+ arg_name : str
48+ arg_type : str
5849
5950
6051class PyBuildAttributes (BaseModel ):
6152 """Handles all the project build tool (requirements.txt/poetry/setup.py) attributes"""
6253
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+
6365
6466class PyConfig (BaseModel ):
6567 """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