| | import os |
| | from pathlib import Path |
| | from typing import Union |
| |
|
| |
|
| | class FileIO: |
| | def __init__(self, path: Union[os.PathLike, str]): |
| | if isinstance(path, str): |
| | path = Path(path) |
| | self.path = path |
| |
|
| | def read(self): |
| | |
| | |
| | |
| | with open(self.path, 'rb') as f: |
| | return f.read() |
| |
|
| | def get_last_modified(self): |
| | """ |
| | Returns float - timestamp or None, if path doesn't exist. |
| | """ |
| | try: |
| | return os.path.getmtime(self.path) |
| | except FileNotFoundError: |
| | return None |
| |
|
| | def __repr__(self): |
| | return '%s(%s)' % (self.__class__.__name__, self.path) |
| |
|
| |
|
| | class KnownContentFileIO(FileIO): |
| | def __init__(self, path, content): |
| | super().__init__(path) |
| | self._content = content |
| |
|
| | def read(self): |
| | return self._content |
| |
|