Skip to content

Add Google cloud storage support#4

Open
coroa wants to merge 4 commits intomainfrom
feat/add-gcs
Open

Add Google cloud storage support#4
coroa wants to merge 4 commits intomainfrom
feat/add-gcs

Conversation

@coroa
Copy link
Member

@coroa coroa commented Feb 2, 2026

Contrarily to the other two storage options, we do not assume immutability, so quite some changes to track correctly the different lifetime between storage and local paths were added.

There is now a StorageProvider.is_immutable method which encodes whether a url of a certain StorageProvider may change or not.

immutable storages are returned with an mtime of 0 always, mutable ones (GCS) report the mtime of the server and update the local cache item if it is older than upstream.

Contrarily to the other two storage options, we do not assume immutability, so quite
some changes to track correctly the different lifetime between storage and local paths
were added.
@coroa coroa requested a review from lkstrp February 2, 2026 14:31
@coroa
Copy link
Member Author

coroa commented Feb 2, 2026

@lkstrp @daniel-rdt would one of you be able to review?

@coroa coroa mentioned this pull request Feb 2, 2026
Copy link
Member

@lkstrp lkstrp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fine for me, but I would rather see this as another argument for moving all the checksums to pypsa-eur itself. And then we reduce this storage plugin to it's caching functionality.

We are producing more and more overhead now, and we wanna expand this for any user to be able to set own storages (and even mirrors at some point). Currently we need to extend this plugin for every storage service. It's just much simpler when serving checksums in versions.csv and comes with all the other benefits

@coroa
Copy link
Member Author

coroa commented Feb 2, 2026

We are producing more and more overhead now, and we wanna expand this for any user to be able to set own storages (and even mirrors at some point). Currently we need to extend this plugin for every storage service. It's just much simpler when serving checksums in versions.csv and comes with all the other benefits

don't agree. i am actually surprised how extensible the structure already is. where is the overhead? you mean the metadata round trips?

sure, we'd want to refactor out these metadata storage options, ie. #6 . already have an idea how that should look. and i guess some config option to link URL prefixes with a metadata form works be good enough

@coroa
Copy link
Member Author

coroa commented Feb 3, 2026

Tests fail because zenodo is moody again, but otherwise this seems to work great now.

@coroa
Copy link
Member Author

coroa commented Feb 6, 2026

@daniel-rdt would you then please test once more. for me this is done

@daniel-rdt
Copy link

@daniel-rdt would you then please test once more. for me this is done

Will do, I am in the train now, so let's see if the internet is good enough. But it should be fine for testing the general implementation.

Copy link

@daniel-rdt daniel-rdt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @coroa. I tested your implementation again on the new retrieves introduced in open-energy-transition/open-tyndp#451 and it works now without any errors or bugs. Good to go for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants