diff options
Diffstat (limited to 'extension/examples/filesystem/filesystem.py')
-rw-r--r-- | extension/examples/filesystem/filesystem.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/extension/examples/filesystem/filesystem.py b/extension/examples/filesystem/filesystem.py new file mode 100644 index 00000000..eb5c2043 --- /dev/null +++ b/extension/examples/filesystem/filesystem.py @@ -0,0 +1,45 @@ +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 |