summaryrefslogtreecommitdiff
path: root/python-bookstore.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-bookstore.spec')
-rw-r--r--python-bookstore.spec405
1 files changed, 405 insertions, 0 deletions
diff --git a/python-bookstore.spec b/python-bookstore.spec
new file mode 100644
index 0000000..a2cd940
--- /dev/null
+++ b/python-bookstore.spec
@@ -0,0 +1,405 @@
+%global _empty_manifest_terminate_build 0
+Name: python-bookstore
+Version: 2.5.1
+Release: 1
+Summary: Storage Workflows for Notebooks
+License: BSD
+URL: https://github.com/nteract/bookstore
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/35/f8/ffab0bcfda118421e6a72d5f13ca65dbf78e280882fc29bdd9193f4f26b9/bookstore-2.5.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-future
+Requires: python3-ipython
+Requires: python3-notebook
+Requires: python3-tornado
+Requires: python3-aiobotocore
+Requires: python3-aioboto3
+Requires: python3-futures
+Requires: python3-sphinx
+Requires: python3-m2r
+Requires: python3-sphinxcontrib-napoleon
+Requires: python3-sphinxcontrib-openapi
+Requires: python3-codecov
+Requires: python3-coverage
+Requires: python3-mock
+Requires: python3-mypy
+Requires: python3-pytest
+Requires: python3-pytest-asyncio
+Requires: python3-pytest-cov
+Requires: python3-pytest-mock
+Requires: python3-black
+Requires: python3-tox
+
+%description
+# bookstore :books:
+
+[![Documentation Status](https://readthedocs.org/projects/bookstore/badge/?version=latest)](https://bookstore.readthedocs.io/en/latest/?badge=latest)
+[![Build Status](https://travis-ci.org/nteract/bookstore.svg?branch=master)](https://travis-ci.org/nteract/bookstore)
+[![CircleCI](https://circleci.com/gh/nteract/bookstore.svg?style=shield)](https://circleci.com/gh/nteract/bookstore)
+[![Codecov](https://codecov.io/gh/nteract/bookstore/branch/master/graph/badge.svg)](https://codecov.io/gh/nteract/bookstore)
+
+**bookstore** :books: provides tooling and workflow recommendations for storing :cd:, scheduling :calendar:, and publishing :book: notebooks.
+
+The full documentation is hosted on [ReadTheDocs](https://bookstore.readthedocs.io).
+
+## 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).
+
+<!--
+
+Include diagram for versioning
+
+-->
+
+### 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.
+
+1. Clone this repo.
+2. 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/jupyter_notebook_config.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.contents_manager_class = BookstoreContentsArchiver
+
+# All Bookstore settings are centralized on one config object so you don't have to configure it for each class
+c.BookstoreSettings.workspace_prefix = "/workspace/kylek/notebooks"
+c.BookstoreSettings.published_prefix = "/published/kylek/notebooks"
+
+c.BookstoreSettings.s3_bucket = "<bucket-name>"
+
+# Note: if bookstore is used from an EC2 instance with the right IAM role, you don't
+# have to specify these
+c.BookstoreSettings.s3_access_key_id = <AWS Access Key ID / IAM Access Key ID>
+c.BookstoreSettings.s3_secret_access_key = <AWS Secret Access Key / IAM Secret Access Key>
+```
+
+## Developing
+
+If you are developing on bookstore you will want to run the ci tests locally and to make releases.
+
+Use [CONTRIBUTING.md](./CONTRIBUTING.md) to learn more about contributing.
+Use [running_ci_locally.md](./running_ci_locally.md) to learn more about running ci tests locally.
+Use [running_python_tests.md](./running_python_tests.md) to learn about running tests locally.
+Use [RELEASING.md](./RELEASING.md) to learn more about releasing bookstore.
+
+
+
+
+%package -n python3-bookstore
+Summary: Storage Workflows for Notebooks
+Provides: python-bookstore
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-bookstore
+# bookstore :books:
+
+[![Documentation Status](https://readthedocs.org/projects/bookstore/badge/?version=latest)](https://bookstore.readthedocs.io/en/latest/?badge=latest)
+[![Build Status](https://travis-ci.org/nteract/bookstore.svg?branch=master)](https://travis-ci.org/nteract/bookstore)
+[![CircleCI](https://circleci.com/gh/nteract/bookstore.svg?style=shield)](https://circleci.com/gh/nteract/bookstore)
+[![Codecov](https://codecov.io/gh/nteract/bookstore/branch/master/graph/badge.svg)](https://codecov.io/gh/nteract/bookstore)
+
+**bookstore** :books: provides tooling and workflow recommendations for storing :cd:, scheduling :calendar:, and publishing :book: notebooks.
+
+The full documentation is hosted on [ReadTheDocs](https://bookstore.readthedocs.io).
+
+## 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).
+
+<!--
+
+Include diagram for versioning
+
+-->
+
+### 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.
+
+1. Clone this repo.
+2. 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/jupyter_notebook_config.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.contents_manager_class = BookstoreContentsArchiver
+
+# All Bookstore settings are centralized on one config object so you don't have to configure it for each class
+c.BookstoreSettings.workspace_prefix = "/workspace/kylek/notebooks"
+c.BookstoreSettings.published_prefix = "/published/kylek/notebooks"
+
+c.BookstoreSettings.s3_bucket = "<bucket-name>"
+
+# Note: if bookstore is used from an EC2 instance with the right IAM role, you don't
+# have to specify these
+c.BookstoreSettings.s3_access_key_id = <AWS Access Key ID / IAM Access Key ID>
+c.BookstoreSettings.s3_secret_access_key = <AWS Secret Access Key / IAM Secret Access Key>
+```
+
+## Developing
+
+If you are developing on bookstore you will want to run the ci tests locally and to make releases.
+
+Use [CONTRIBUTING.md](./CONTRIBUTING.md) to learn more about contributing.
+Use [running_ci_locally.md](./running_ci_locally.md) to learn more about running ci tests locally.
+Use [running_python_tests.md](./running_python_tests.md) to learn about running tests locally.
+Use [RELEASING.md](./RELEASING.md) to learn more about releasing bookstore.
+
+
+
+
+%package help
+Summary: Development documents and examples for bookstore
+Provides: python3-bookstore-doc
+%description help
+# bookstore :books:
+
+[![Documentation Status](https://readthedocs.org/projects/bookstore/badge/?version=latest)](https://bookstore.readthedocs.io/en/latest/?badge=latest)
+[![Build Status](https://travis-ci.org/nteract/bookstore.svg?branch=master)](https://travis-ci.org/nteract/bookstore)
+[![CircleCI](https://circleci.com/gh/nteract/bookstore.svg?style=shield)](https://circleci.com/gh/nteract/bookstore)
+[![Codecov](https://codecov.io/gh/nteract/bookstore/branch/master/graph/badge.svg)](https://codecov.io/gh/nteract/bookstore)
+
+**bookstore** :books: provides tooling and workflow recommendations for storing :cd:, scheduling :calendar:, and publishing :book: notebooks.
+
+The full documentation is hosted on [ReadTheDocs](https://bookstore.readthedocs.io).
+
+## 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](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).
+
+<!--
+
+Include diagram for versioning
+
+-->
+
+### 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.
+
+1. Clone this repo.
+2. 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/jupyter_notebook_config.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.contents_manager_class = BookstoreContentsArchiver
+
+# All Bookstore settings are centralized on one config object so you don't have to configure it for each class
+c.BookstoreSettings.workspace_prefix = "/workspace/kylek/notebooks"
+c.BookstoreSettings.published_prefix = "/published/kylek/notebooks"
+
+c.BookstoreSettings.s3_bucket = "<bucket-name>"
+
+# Note: if bookstore is used from an EC2 instance with the right IAM role, you don't
+# have to specify these
+c.BookstoreSettings.s3_access_key_id = <AWS Access Key ID / IAM Access Key ID>
+c.BookstoreSettings.s3_secret_access_key = <AWS Secret Access Key / IAM Secret Access Key>
+```
+
+## Developing
+
+If you are developing on bookstore you will want to run the ci tests locally and to make releases.
+
+Use [CONTRIBUTING.md](./CONTRIBUTING.md) to learn more about contributing.
+Use [running_ci_locally.md](./running_ci_locally.md) to learn more about running ci tests locally.
+Use [running_python_tests.md](./running_python_tests.md) to learn about running tests locally.
+Use [RELEASING.md](./RELEASING.md) to learn more about releasing bookstore.
+
+
+
+
+%prep
+%autosetup -n bookstore-2.5.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-bookstore -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.5.1-1
+- Package Spec generated