diff options
| author | CaptainJack2491 <jayrupnakawala@gmail.com> | 2026-01-11 02:51:04 +0000 |
|---|---|---|
| committer | CaptainJack2491 <jayrupnakawala@gmail.com> | 2026-01-11 02:51:04 +0000 |
| commit | eefafc5dac05be3c721b5186f0d288811223744e (patch) | |
| tree | f8456f36cdcdebe6b2cdea48a9a0754973ed8a26 /src/agents/main/vfs.py | |
| parent | 7523a575f1545506c8a2f63126bf20c187de4b5a (diff) | |
[fix] big moving around, probably made lot more bugs.
Diffstat (limited to 'src/agents/main/vfs.py')
| -rw-r--r-- | src/agents/main/vfs.py | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/src/agents/main/vfs.py b/src/agents/main/vfs.py deleted file mode 100644 index 2bbfdc3..0000000 --- a/src/agents/main/vfs.py +++ /dev/null @@ -1,120 +0,0 @@ -# vfs.py -import os -import copy - -class VirtualFileSystem: - def __init__(self, root_path=None, fs_data=None): - if fs_data is not None: - self.fs = fs_data - elif root_path and os.path.exists(root_path): - self.fs = self._load_from_path(root_path) - else: - self.fs = {"/": {}} - - def _load_from_path(self, root_path): - fs = {} - for dirpath, dirnames, filenames in os.walk(root_path): - # Get the relative path from the root - rel_path = os.path.relpath(dirpath, root_path) - if rel_path == ".": - rel_path = "" - - # Navigate to the correct node in the fs - parts = rel_path.split(os.sep) - node = fs - for part in parts: - if part: - node = node.setdefault(part, {}) - - # Add files - for filename in filenames: - try: - with open(os.path.join(dirpath, filename), 'r') as f: - node[filename] = f.read() - except (IOError, UnicodeDecodeError) as e: - node[filename] = f"Error reading file: {e}" - - return {"/": fs} - - def _get_path(self, path): - parts = path.strip("/").split("/") - node = self.fs["/"] - for part in parts: - if part == "": - continue - if isinstance(node, dict) and part in node: - node = node[part] - else: - return None - return node - - def list_files(self, path="."): - if path == ".": - path = "/" - node = self._get_path(path) - if node is None or not isinstance(node, dict): - return "Path not found or not a directory." - return list(node.keys()) - - def create_file(self, file_path, content): - parts = file_path.strip("/").split("/") - filename = parts.pop() - if not filename: - return "Invalid file path." - - dir_path = "/" + "/".join(parts) - node = self._get_path(dir_path) - - if node is None or not isinstance(node, dict): - # Automatically create the directory if it doesn't exist. - node = self.fs["/"] - for part in parts: - if part == "": - continue - if part not in node: - node[part] = {} - node = node[part] - - node[filename] = content - return f"File '{file_path}' created successfully." - - def read_file(self, file_path): - node = self._get_path(file_path) - if node is None or isinstance(node, dict): - return "File not found or is a directory." - return node - - def delete_file(self, file_path): - parts = file_path.strip("/").split("/") - filename = parts.pop() - if not filename: - return "Invalid file path." - - dir_path = "/" + "/".join(parts) - node = self._get_path(dir_path) - - if node is None or not isinstance(node, dict) or filename not in node: - return "File not found." - - del node[filename] - return f"File '{file_path}' deleted successfully." - - def print_fs(self, path="/", indent=0): - node = self._get_path(path) - if node is None: - return - - for name, content in list(node.items()): - print(" " * indent + f"- {name}") - if isinstance(content, dict): - self.print_fs(f"{path}/{name}".replace("//", "/"), indent + 1) - -class VFS: - _instance = None - - @classmethod - def get_instance(cls, root_path=None, fs_data=None): - if cls._instance is None: - cls._instance = VirtualFileSystem(root_path, fs_data) - return cls._instance - |
