feat: solution for '8. Самописный поисковый агент на основе deep agents from scratch'
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
class VirtualFileSystem:
|
||||
"""
|
||||
A simple in-memory virtual file system that stores files as a dictionary.
|
||||
Provides methods to write, read, list, and export files to the real filesystem.
|
||||
"""
|
||||
def __init__(self):
|
||||
self.files = {} # dict of filename -> content
|
||||
|
||||
def write_file(self, name: str, content: str):
|
||||
"""
|
||||
Write content to a virtual file. Overwrites if the file already exists.
|
||||
"""
|
||||
self.files[name] = content
|
||||
|
||||
def read_file(self, name: str) -> str:
|
||||
"""
|
||||
Read content from a virtual file. Returns empty string if file does not exist.
|
||||
"""
|
||||
return self.files.get(name, "")
|
||||
|
||||
def list_files(self):
|
||||
"""
|
||||
Return a list of all virtual file names.
|
||||
"""
|
||||
return list(self.files.keys())
|
||||
|
||||
def export_to_disk(self, base_path: str):
|
||||
"""
|
||||
Export all virtual files to the real filesystem under the given base_path.
|
||||
Creates directories as needed.
|
||||
"""
|
||||
os.makedirs(base_path, exist_ok=True)
|
||||
for name, content in self.files.items():
|
||||
file_path = os.path.join(base_path, name)
|
||||
os.makedirs(os.path.dirname(file_path), exist_ok=True)
|
||||
with open(file_path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
Reference in New Issue
Block a user