| 
									
										
										
										
											2025-04-30 17:28:02 +08:00
										 |  |  | from collections.abc import Callable | 
					
						
							|  |  |  | from typing import TYPE_CHECKING | 
					
						
							| 
									
										
										
										
											2024-10-21 10:43:49 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if TYPE_CHECKING: | 
					
						
							|  |  |  |     from core.tools.tool_file_manager import ToolFileManager | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-30 17:28:02 +08:00
										 |  |  | _tool_file_manager_factory: Callable[[], "ToolFileManager"] | None = None | 
					
						
							| 
									
										
										
										
											2024-09-10 17:00:20 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-23 19:58:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ToolFileParser: | 
					
						
							|  |  |  |     @staticmethod | 
					
						
							| 
									
										
										
										
											2024-09-10 17:00:20 +08:00
										 |  |  |     def get_tool_file_manager() -> "ToolFileManager": | 
					
						
							| 
									
										
										
										
											2025-04-30 17:28:02 +08:00
										 |  |  |         assert _tool_file_manager_factory is not None | 
					
						
							|  |  |  |         return _tool_file_manager_factory() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def set_tool_file_manager_factory(factory: Callable[[], "ToolFileManager"]) -> None: | 
					
						
							|  |  |  |     global _tool_file_manager_factory | 
					
						
							|  |  |  |     _tool_file_manager_factory = factory |