| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import os
- from .files import FileStore
- class InMemoryFileStore(FileStore):
- files: dict[str, str]
- def __init__(self):
- self.files = {}
- def write(self, path: str, contents: str) -> None:
- self.files[path] = contents
- def read(self, path: str) -> str:
- if path not in self.files:
- raise FileNotFoundError(path)
- return self.files[path]
- def list(self, path: str) -> list[str]:
- files = []
- for file in self.files:
- if not file.startswith(path):
- continue
- suffix = file.removeprefix(path)
- parts = suffix.split('/')
- if parts[0] == '':
- parts.pop(0)
- if len(parts) == 1:
- files.append(file)
- else:
- dir_path = os.path.join(path, parts[0])
- if dir_path not in files:
- files.append(dir_path)
- return files
- def delete(self, path: str) -> None:
- del self.files[path]
|