66from typing import TYPE_CHECKING
77
88from gitingest .config import MAX_DIRECTORY_DEPTH , MAX_FILES , MAX_TOTAL_SIZE_BYTES
9- from gitingest .output_formatter import format_node
10- from gitingest .schemas import FileSystemNode , FileSystemNodeType , FileSystemStats , Context
9+ from gitingest .output_formatter import DefaultFormatter
10+ from gitingest .schemas import FileSystemNode , FileSystemStats , Context
11+ from gitingest .schemas .filesystem import FileSystemDirectory , FileSystemFile , FileSystemSymlink
1112from gitingest .utils .ingestion_utils import _should_exclude , _should_include
1213
1314if TYPE_CHECKING :
@@ -51,11 +52,16 @@ def ingest_query(query: IngestionQuery) -> Context:
5152
5253 relative_path = path .relative_to (query .local_path )
5354
54- file_node = FileSystemNode (
55+ # file_node = FileSystemNode(
56+ # name=path.name,
57+ # type=FileSystemNodeType.FILE,
58+ # size=path.stat().st_size,
59+ # file_count=1,
60+ # path_str=str(relative_path),
61+ # path=path,
62+ # )
63+ file_node = FileSystemFile (
5564 name = path .name ,
56- type = FileSystemNodeType .FILE ,
57- size = path .stat ().st_size ,
58- file_count = 1 ,
5965 path_str = str (relative_path ),
6066 path = path ,
6167 )
@@ -64,11 +70,16 @@ def ingest_query(query: IngestionQuery) -> Context:
6470 msg = f"File { file_node .name } has no content"
6571 raise ValueError (msg )
6672
67- return Context ([file_node ])
73+ return Context ([file_node ], DefaultFormatter (), query )
6874
69- root_node = FileSystemNode (
75+ # root_node = FileSystemNode(
76+ # name=path.name,
77+ # type=FileSystemNodeType.DIRECTORY,
78+ # path_str=str(path.relative_to(query.local_path)),
79+ # path=path,
80+ # )
81+ root_node = FileSystemDirectory (
7082 name = path .name ,
71- type = FileSystemNodeType .DIRECTORY ,
7283 path_str = str (path .relative_to (query .local_path )),
7384 path = path ,
7485 )
@@ -77,7 +88,7 @@ def ingest_query(query: IngestionQuery) -> Context:
7788
7889 _process_node (node = root_node , query = query , stats = stats )
7990
80- return Context ([root_node ])
91+ return Context ([root_node ], DefaultFormatter (), query )
8192
8293
8394def _process_node (node : FileSystemNode , query : IngestionQuery , stats : FileSystemStats ) -> None :
@@ -114,9 +125,8 @@ def _process_node(node: FileSystemNode, query: IngestionQuery, stats: FileSystem
114125 continue
115126 _process_file (path = sub_path , parent_node = node , stats = stats , local_path = query .local_path )
116127 elif sub_path .is_dir ():
117- child_directory_node = FileSystemNode (
128+ child_directory_node = FileSystemDirectory (
118129 name = sub_path .name ,
119- type = FileSystemNodeType .DIRECTORY ,
120130 path_str = str (sub_path .relative_to (query .local_path )),
121131 path = sub_path ,
122132 depth = node .depth + 1 ,
@@ -154,9 +164,8 @@ def _process_symlink(path: Path, parent_node: FileSystemNode, stats: FileSystemS
154164 The base path of the repository or directory being processed.
155165
156166 """
157- child = FileSystemNode (
167+ child = FileSystemSymlink (
158168 name = path .name ,
159- type = FileSystemNodeType .SYMLINK ,
160169 path_str = str (path .relative_to (local_path )),
161170 path = path ,
162171 depth = parent_node .depth + 1 ,
@@ -166,7 +175,7 @@ def _process_symlink(path: Path, parent_node: FileSystemNode, stats: FileSystemS
166175 parent_node .file_count += 1
167176
168177
169- def _process_file (path : Path , parent_node : FileSystemNode , stats : FileSystemStats , local_path : Path ) -> None :
178+ def _process_file (path : Path , parent_node : FileSystemDirectory , stats : FileSystemStats , local_path : Path ) -> None :
170179 """Process a file in the file system.
171180
172181 This function checks the file's size, increments the statistics, and reads its content.
@@ -176,7 +185,7 @@ def _process_file(path: Path, parent_node: FileSystemNode, stats: FileSystemStat
176185 ----------
177186 path : Path
178187 The full path of the file.
179- parent_node : FileSystemNode
188+ parent_node : FileSystemDirectory
180189 The dictionary to accumulate the results.
181190 stats : FileSystemStats
182191 Statistics tracking object for the total file count and size.
@@ -196,11 +205,8 @@ def _process_file(path: Path, parent_node: FileSystemNode, stats: FileSystemStat
196205 stats .total_files += 1
197206 stats .total_size += file_size
198207
199- child = FileSystemNode (
208+ child = FileSystemFile (
200209 name = path .name ,
201- type = FileSystemNodeType .FILE ,
202- size = file_size ,
203- file_count = 1 ,
204210 path_str = str (path .relative_to (local_path )),
205211 path = path ,
206212 depth = parent_node .depth + 1 ,
0 commit comments