fsspec / fsspec/filesystem_spec
indicate read-only / immutable filesystems
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.4k
- Forks
- 490
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 38
Description
These are some early thoughts, but I just wanted to share in case anyone else will find this useful or will have any thoughts/comments.
Some fsspec filesystems might raise EROFS error if you try to actively write something to them, but it would be nice to indicate that for the whole filesystem without having to try to write to it. My logic here is following ro mount options in real filesystems.
The first example that comes to mind is gitfs, where, given a rev, nothing can change while the filesystem exists. Or, say, a tar archive or ipfs. So it would be useful if they could define fs.read_only set to True.
The next interesting property here might be immutability, meaning that litteraly nothing can ever change. For example gitfs on a branch is read-only, but not immutable as the branch can change, but gitfs with sha is read-only and immutable. So it would be useful if it could define fs.immutable as smth like return is_sha(self.rev).
This allows making some useful assumptions about the state of the filesystem, like not having to worry that something will change during a session or straight up not caring about metadata checks at all for immutable filesystems.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing filesystem implementations and the issue's examples of gitfs, tar archives, and IPFS to understand how write capability is currently exposed. The work is ready when the project agrees on the read_only and immutable API semantics and identifies how those properties should behave for the described revision cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100