Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create API specifications for Backends/Clients #56

Open
pjbull opened this issue Aug 30, 2020 · 0 comments
Open

Create API specifications for Backends/Clients #56

pjbull opened this issue Aug 30, 2020 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@pjbull
Copy link
Member

pjbull commented Aug 30, 2020

We don't have a full definition of what we rely on each backend function to do. For example, this just came up in #52 when we were discussing if _download_file should create non-existent parent directories.

Some example q's to specify:

  • Should functions create non-existent parent directories or not? For most blob store backends, _upload_file won't complain if a portion of the "path" does not exist. However, for _download_file, it's usually the case that pathlib won't create non-existent parent directories for you.
  • Should we overwrite existing files on the cloud or locally? (_move_file, _upload_file, _download_file)
  • Should _list_dir include itself?
  • Which functions should have "cloud native" implementations? (E.g., _move_file should prefer to issue commands to the backend rather than streaming files through the local machine).
  • Should _get_metadata have a specified return format or should we just let the relevant Path class handle picking out what a user should want from a dict?
  • Should we formalize _is_file_or_dir as a required method with enumerated responses?
@jayqi jayqi added the documentation Improvements or additions to documentation label Oct 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants