https://github.com/nteract/bookstore
π Notebook storage and publishing workflows for the masses
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
βCITATION.cff file
-
βcodemeta.json file
-
β.zenodo.json file
-
βDOI references
-
βAcademic publication links
-
βCommitters with academic emails
1 of 5 committers (20.0%) from academic institutions -
βInstitutional organization owner
-
βJOSS paper metadata
-
βScientific vocabulary similarity
Low similarity (13.2%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
π Notebook storage and publishing workflows for the masses
Basic Info
- Host: GitHub
- Owner: nteract
- License: bsd-3-clause
- Language: Python
- Default Branch: master
- Homepage: https://bookstore.readthedocs.io
- Size: 704 KB
Statistics
- Stars: 201
- Watchers: 18
- Forks: 19
- Open Issues: 35
- Releases: 0
Topics
Metadata Files
README.md
bookstore :books:
bookstore :books: provides tooling and workflow recommendations for storing :cd:, scheduling :calendar:, and publishing :book: notebooks.
The full documentation is hosted on ReadTheDocs.
How does bookstore work
Automatic Notebook Versioning
Every save of a notebook creates an immutable copy of the notebook on object storage.
To simplify implementation, we currently rely on S3 as the object store, using versioned buckets.
Storage Paths
All notebooks are archived to a single versioned S3 bucket with specific prefixes denoting the lifecycle of the notebook:
/workspace- where users edit/published- public notebooks (to an organization)
Each notebook path is a namespace that an external service ties into the schedule. We archive off versions, keeping the path intact (until a user changes them).
| Prefix | Intent |
|-----------------------------------------|------------------------|
| /workspace/kylek/notebooks/mine.ipynb | Notebook in βdraftβ |
| /published/kylek/notebooks/mine.ipynb | Current published copy |
Scheduled notebooks will also be referred to by the notebook key. In addition, we'll need to be able to surface version IDs as well.
Transitioning to this Storage Plan
Since most people are on a regular filesystem, we'll start with writing to the
/workspace prefix as Archival Storage (writing on save using a post_save_hook
for a Jupyter contents manager).
Publishing
The bookstore publishing endpoint is a serverextension to the classic Jupyter
server. This means you will need to explicitly enable the serverextension
to use the endpoint.
To do so, run:
jupyter serverextension enable --py bookstore
To enable it only for the current environment, run:
jupyter serverextension enable --py bookstore --sys-prefix
Installation
bookstore requires Python 3.6 or higher.
Note: Supports installation on Jupyter servers running Python 3.6 and above. Your notebooks can still be run in Python 2 or Python 3.
- Clone this repo.
- At the repo's root, enter in the Terminal:
python3 -m pip install .(Tip: don't forget the dot at the end of the command)
Configuration
```python
jupyter config
At ~/.jupyter/jupyternotebookconfig.py for user installs on macOS
See https://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html for other places to plop this
from bookstore import BookstoreContentsArchiver
c.NotebookApp.contentsmanagerclass = BookstoreContentsArchiver
All Bookstore settings are centralized on one config object so you don't have to configure it for each class
c.BookstoreSettings.workspaceprefix = "/workspace/kylek/notebooks" c.BookstoreSettings.publishedprefix = "/published/kylek/notebooks"
c.BookstoreSettings.s3_bucket = "
Note: if bookstore is used from an EC2 instance with the right IAM role, you don't
have to specify these
c.BookstoreSettings.s3accesskeyid =
Developing
If you are developing on bookstore you will want to run the ci tests locally and to make releases.
Use CONTRIBUTING.md to learn more about contributing. Use runningcilocally.md to learn more about running ci tests locally. Use runningpythontests.md to learn about running tests locally. Use RELEASING.md to learn more about releasing bookstore.
Owner
- Name: nteract
- Login: nteract
- Kind: organization
- Website: http://nteract.io
- Repositories: 107
- Profile: https://github.com/nteract
Interactive computing experiences that allow people to collaborate with ease
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| M Pacer | m****r@b****u | 250 |
| Carol Willing | c****e@w****m | 232 |
| Kyle Kelley | r****k@g****m | 26 |
| Safia Abdalla | s****a@s****s | 2 |
| Peter | c****o@n****m | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 28
- Total pull requests: 72
- Average time to close issues: about 2 months
- Average time to close pull requests: 4 days
- Total issue authors: 10
- Total pull request authors: 4
- Average comments per issue: 2.21
- Average comments per pull request: 2.75
- Merged pull requests: 66
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mpacer (14)
- willingc (5)
- groodt (2)
- mjbeyeler (1)
- rakeshpatri (1)
- NeolithEra (1)
- vlbrown (1)
- MSeal (1)
- timkpaine (1)
- rgbkrk (1)
Pull Request Authors
- mpacer (36)
- willingc (20)
- rgbkrk (13)
- chyzzqo2 (3)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 99 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 4
(may contain duplicates) - Total versions: 21
- Total maintainers: 4
pypi.org: bookstore
Storage Workflows for Notebooks
- Homepage: https://github.com/nteract/bookstore
- Documentation: https://bookstore.readthedocs.io
- License: BSD
-
Latest release: 2.5.1
published about 6 years ago
Rankings
Maintainers (4)
Funding
- https://nteract.io
conda-forge.org: bookstore
bookstore provides tooling and workflow recommendations for storing, scheduling, and publishing notebooks.
- Homepage: http://github.com/nteract/bookstore
- License: BSD
-
Latest release: 2.5.1
published about 6 years ago