Spaces:
Running
on
Zero
Running
on
Zero
| import fsspec | |
| from luigi.target import FileSystem, FileSystemTarget | |
| class FSSpecFileSystem(FileSystem): | |
| def __init__(self, fs: fsspec.AbstractFileSystem): | |
| self.fs = fs | |
| def exists(self, path): | |
| return self.fs.exists() | |
| def remove(self, path, recursive=True, skip_trash=True): | |
| raise NotImplementedError() | |
| def isdir(self, path): | |
| return self.fs.isdir(path) | |
| def listdir(self, path): | |
| return self.fs.ls(path) | |
| class FSSpecTarget(FileSystemTarget): | |
| def __init__(self, path, fs: fsspec.AbstractFileSystem | None = None): | |
| self.path = path | |
| if fs is None: | |
| self.fsspec_fs = fsspec.filesystem("file") | |
| else: | |
| self.fsspec_fs = fs | |
| self._fs = None | |
| def fs(self): | |
| if self._fs is None: | |
| self._fs = FSSpecFileSystem(self.fsspec_fs) | |
| return self._fs | |
| def open(self, mode): | |
| return self.fs.open(self.path, mode=mode) | |