rsync: Modeled after fsspec.generic.rsync this uses two fs explicitly #1403
+98
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addressing #1398
Pretty much identical to the generic one but doesn't create the directories async. The generic one defines a make_many_dirs which tries to make them async if it can and falls back to serial, this just uses the simpler version of non async. Can do the same helper function though.
This is needed for cases of syncing two different storage systems that might have the same protocol. An example would be two different s3 buckets that use different credentials. This allows you to make two different s3fs instances each passing different parameters and still sync them.
The generic interface is great for giving a simple implicit way to sync things, but often we need fine grained control of what our filesystem parameters are so having an explicit method as well is useful. (Zen of Python line 2)