diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-10 17:53:22 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 17:53:22 +0000 |
| commit | e62e2e217a55b8d05ff0d6fd4d2b93b3db00d0fc (patch) | |
| tree | 9efced1ee3afdd5d365f40acd0cfe9dcd7adc3d9 | |
| parent | 744afeb2a2232d39c1caa7f842834806fe46ddb3 (diff) | |
automatic import of python-bookstore
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-bookstore.spec | 405 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 407 insertions, 0 deletions
@@ -0,0 +1 @@ +/bookstore-2.5.1.tar.gz 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: + +[](https://bookstore.readthedocs.io/en/latest/?badge=latest) +[](https://travis-ci.org/nteract/bookstore) +[](https://circleci.com/gh/nteract/bookstore) +[](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: + +[](https://bookstore.readthedocs.io/en/latest/?badge=latest) +[](https://travis-ci.org/nteract/bookstore) +[](https://circleci.com/gh/nteract/bookstore) +[](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: + +[](https://bookstore.readthedocs.io/en/latest/?badge=latest) +[](https://travis-ci.org/nteract/bookstore) +[](https://circleci.com/gh/nteract/bookstore) +[](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 @@ -0,0 +1 @@ +d9660de478e82e2ce5572a102387da5d bookstore-2.5.1.tar.gz |
