fsspec / fsspec/filesystem_spec

indicate read-only / immutable filesystems

Open
#1,511 3 comments 1 reaction 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.