bookstore icon indicating copy to clipboard operation
bookstore copied to clipboard

Interface for storage/publishing formats

Open jaipreet-s opened this issue 6 years ago • 10 comments

  • Refactor S3 into interface
  • Add Git

jaipreet-s avatar Feb 06 '19 19:02 jaipreet-s

As for S3 as an interface, I'd love to see that set up similarly to how papermill or dask abstracts object store level storage.

For git, are you thinking a commit blob per save?

rgbkrk avatar Feb 07 '19 00:02 rgbkrk

I believe that was the intention for git support.

I agree that having an abstract object store would help support this. Do you think we should be consolidating the abstract stores for notebooks into a central repository? Scrapbook and papermill both need the same interface capabilities.

MSeal avatar Feb 09 '19 21:02 MSeal

The only core difference I see is that bookstore, as a jupyter server extension, is wholly dependent on asyncio backed futures for remote requests. This is largely a requirement because of the tornado server.

rgbkrk avatar Feb 09 '19 21:02 rgbkrk

And that would add a python 3 only dependency.

We could release the package with only blocking methods on python2 and async + blocking methods in python3 perhaps?

MSeal avatar Feb 09 '19 21:02 MSeal

Or make an async package wrapping the blocking package for use in async python 3 clients

MSeal avatar Feb 09 '19 21:02 MSeal

Amusingly we wrapped the blocking package previously with a thread pool executor, only to recently tear it out in favor of aiobotocore. It's pretty lean and I'm pleased with the conciseness of the code.

There's a part of me that wonders if papermill, like jupyter notebook, could adopt Python3 as the release target (since it runs kernels directly). scrapbook however would need to remain Py2 and Py3 compatible.

rgbkrk avatar Feb 09 '19 21:02 rgbkrk

For papermill python 2 downloads is declining (26398 vs 105360 over past 6 months), but are still present.

https://docs.google.com/spreadsheets/d/1tkNxlxY-qlZATGpqC1IxDE30mwDW8Uedfov3KcH3iJk/edit?usp=sharing

MSeal avatar Feb 09 '19 22:02 MSeal

I do not think we should make this package python2 compatible. It's not worth the opportunity cost (clear, async/await native asynchronous calls) along with the additional support and testing burden when Python2 is being deprecated this year.

mpacer avatar Apr 05 '19 18:04 mpacer

There's a part of me that wonders if papermill, like jupyter notebook, could adopt Python3 as the release target (since it runs kernels directly). scrapbook however would need to remain Py2 and Py3 compatible.

I agree with this assessment.

mpacer avatar Apr 05 '19 18:04 mpacer

I marked python 2 as supported through the end of 2019 for papermill and scrapbook in the latest release's README for each project respectively. Sometime at the end of the year I was planning on ripping out python 2 support entirely.

MSeal avatar Apr 05 '19 18:04 MSeal