Create Remote Manager
MEMBER
@lhoestq I have refactorized the logic. Instead of the previous hierarchy call (local temp file opening -> remote call -> use again temp local file logic but from within the remote caller scope), now it is flattened. Schematically:
```python
with src.open() as src_file, dst.open() as dst_file:
    src_file.fetch(dst_file)
```

I have created `RemotePath` (analogue to Path) with method `.open()` that returns `FtpFile`/`HttpFile` (analogue to file-like).

Now I am going to implement `RemotePath.exists()` method (analogue to the Path's method) to check if remote resource is accessible, using `Ftp/Http.head()`.
2021-02-23T08:16:07Z
https://github.com/huggingface/datasets/pull/1882#issuecomment-783995736
https://api.github.com/repos/huggingface/datasets/issues/1882
MDEyOklzc3VlQ29tbWVudDc4Mzk5NTczNg==
https://api.github.com/repos/huggingface/datasets/issues/comments/783995736/reactions
2021-02-23T08:16:07Z
https://api.github.com/repos/huggingface/datasets/issues/comments/783995736
https://avatars.githubusercontent.com/u/8515462?v=4
https://api.github.com/users/albertvillanova/events{/privacy}
https://api.github.com/users/albertvillanova/followers
https://api.github.com/users/albertvillanova/following{/other_user}
https://api.github.com/users/albertvillanova/gists{/gist_id}
https://github.com/albertvillanova
albertvillanova
MDQ6VXNlcjg1MTU0NjI=
https://api.github.com/users/albertvillanova/orgs
https://api.github.com/users/albertvillanova/received_events
https://api.github.com/users/albertvillanova/repos
https://api.github.com/users/albertvillanova/starred{/owner}{/repo}
https://api.github.com/users/albertvillanova/subscriptions
User
https://api.github.com/users/albertvillanova
public
MEMBER
Quick update on this one:
we discussed offline with @albertvillanova on this PR and I think using `fsspec` can help a lot, since it already implements many parts of the abstraction we need to have nice download tools for both http and ftp (and others !)
2021-03-08T16:15:09Z
https://github.com/huggingface/datasets/pull/1882#issuecomment-792867799
https://api.github.com/repos/huggingface/datasets/issues/1882
MDEyOklzc3VlQ29tbWVudDc5Mjg2Nzc5OQ==
https://api.github.com/repos/huggingface/datasets/issues/comments/792867799/reactions
2021-03-08T16:15:09Z
https://api.github.com/repos/huggingface/datasets/issues/comments/792867799
https://avatars.githubusercontent.com/u/42851186?v=4
https://api.github.com/users/lhoestq/events{/privacy}
https://api.github.com/users/lhoestq/followers
https://api.github.com/users/lhoestq/following{/other_user}
https://api.github.com/users/lhoestq/gists{/gist_id}
https://github.com/lhoestq
lhoestq
MDQ6VXNlcjQyODUxMTg2
https://api.github.com/users/lhoestq/orgs
https://api.github.com/users/lhoestq/received_events
https://api.github.com/users/lhoestq/repos
https://api.github.com/users/lhoestq/starred{/owner}{/repo}
https://api.github.com/users/lhoestq/subscriptions
User
https://api.github.com/users/lhoestq
public
Refactoring to separate the concern of remote (HTTP/FTP requests) management.