diff options
Diffstat (limited to 'extension/examples/filesystem')
-rw-r--r-- | extension/examples/filesystem/filesystem.py | 45 | ||||
-rw-r--r-- | extension/examples/filesystem/real.py | 34 | ||||
-rw-r--r-- | extension/examples/filesystem/virtual.py | 39 |
3 files changed, 0 insertions, 118 deletions
diff --git a/extension/examples/filesystem/filesystem.py b/extension/examples/filesystem/filesystem.py deleted file mode 100644 index eb5c2043..00000000 --- a/extension/examples/filesystem/filesystem.py +++ /dev/null @@ -1,45 +0,0 @@ -from abc import ABC, abstractmethod -from typing import List - - -class FileSystem(ABC): - """An abstract filesystem that can read/write from a set of files.""" - @abstractmethod - def read(self, path) -> str: - raise NotImplementedError - - @abstractmethod - def readlines(self, path) -> List[str]: - raise NotImplementedError - - @abstractmethod - def write(self, path, content): - raise NotImplementedError - - @abstractmethod - def exists(self, path) -> bool: - raise NotImplementedError - - @abstractmethod - def rename_file(self, filepath: str, new_filepath: str): - raise NotImplementedError - - @abstractmethod - def walk(self, path: str) -> List[str]: - raise NotImplementedError - - @abstractmethod - def rename_directory(self, path: str, new_path: str): - raise NotImplementedError - - @abstractmethod - def delete_file(self, filepath: str): - raise NotImplementedError - - @abstractmethod - def delete_directory(self, path: str): - raise NotImplementedError - - @abstractmethod - def add_directory(self, path: str): - raise NotImplementedError diff --git a/extension/examples/filesystem/real.py b/extension/examples/filesystem/real.py deleted file mode 100644 index ec7aa693..00000000 --- a/extension/examples/filesystem/real.py +++ /dev/null @@ -1,34 +0,0 @@ -import os -from typing import List -from filesystem.filesystem import FileSystem - - -class RealFileSystem(FileSystem): - """A filesystem that reads/writes from the actual filesystem.""" - - def read(self, path) -> str: - with open(path, "r") as f: - return f.read() - - def readlines(self, path) -> List[str]: - with open(path, "r") as f: - return f.readlines() - - def write(self, path, content): - with open(path, "w") as f: - f.write(content) - - def exists(self, path) -> bool: - return os.path.exists(path) - - def rename_file(self, filepath: str, new_filepath: str): - os.rename(filepath, new_filepath) - - def rename_directory(self, path: str, new_path: str): - os.rename(path, new_path) - - def delete_file(self, filepath: str): - os.remove(filepath) - - def add_directory(self, path: str): - os.makedirs(path) diff --git a/extension/examples/filesystem/virtual.py b/extension/examples/filesystem/virtual.py deleted file mode 100644 index 91a10e7d..00000000 --- a/extension/examples/filesystem/virtual.py +++ /dev/null @@ -1,39 +0,0 @@ -from typing import Dict, List -from filesystem.filesystem import FileSystem - - -class VirtualFileSystem(FileSystem): - """A simulated filesystem from a mapping of filepath to file contents.""" - files: Dict[str, str] - - def __init__(self, files: Dict[str, str]): - self.files = files - - def read(self, path) -> str: - return self.files[path] - - def readlines(self, path) -> List[str]: - return self.files[path].splitlines() - - def write(self, path, content): - self.files[path] = content - - def exists(self, path) -> bool: - return path in self.files - - def rename_file(self, filepath: str, new_filepath: str): - self.files[new_filepath] = self.files[filepath] - del self.files[filepath] - - def rename_directory(self, path: str, new_path: str): - for filepath in self.files: - if filepath.startswith(path): - new_filepath = new_path + filepath[len(path):] - self.files[new_filepath] = self.files[filepath] - del self.files[filepath] - - def delete_file(self, filepath: str): - del self.files[filepath] - - def add_directory(self, path: str): - pass |