paperboy
A web frontend for scheduling Jupyter Notebooks as reports
Overview
Paperboy is a production-grade application for scheduling reports. It has a flexible architecture and extensible APIs, and can integrate into a wide variety of deployments. It is composed of various industrial-strength technologies from the open source world.
- Jupyter Notebooks for the reports themselves
- Jupyter notebooks are an ideal report template, and with NBConvert support a wide variety of output types, including PDFs, HTML, Emails, etc
- Papermill to parameterize notebooks
- SQLAlchemy for Storage (default)
- Apache Airflow for Scheduling (default)
- Dask for Airflow Workers
- Luigi as a scheduling alternative for
Airflow(relies oncron)
- PhosphorJS for the frontend
- Support for Python Virtualenvs via
requirements.txtor custom Docker images viaDockerfiles on a per-notebook level - Traitlets parameterization of storage and scheduler classes for easy integration with custom storage backends and custom schedulers
- Single click notebook deployment with Voila and Dokku
Process Flow
- Upload notebook
- Configure job
- start time
- interval
- papermill parameters to autoconfigure reports
- if autoconfiguring reports from papermill:
- run or publish
- output
- notebook
- html
- script
- strip or keep code
- To edit or create additional reports on a job, configure reports
- run or publish
- output
- notebook
- html
- script
- strip or keep code
Installation from source
Paperboy requires Python and Node.js, which can be installed from conda-forge if conda is available.
Clone the repository and run following commands to install and launch the application:
- npm install
- npm run build
- pip install -e .
- python -m paperboy
Visit http://0.0.0.0:8080 in a browser to view the application.
The default authentication backend requires the registration of a username that can be used on subsequent launches.
Metadata
Release files for jupyter-paperboy 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| jupyter_paperboy-0.1.2.tar.gz | 1.5 MB | Without provenance | Details for jupyter_paperboy-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jupyter_paperboy-0.1.2-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for jupyter_paperboy-0.1.2-py2.py3-none-any.whl |
Total release size: 3.0 MB
Release files / jupyter_paperboy-0.1.2.tar.gz
| Download URL | jupyter_paperboy-0.1.2.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0387457121152b2f793890852364d5c871731cf45ae90c6383e19eda7d9326c
|
|
BLAKE2b-256 checksum How to use checksums |
006ecec0ae58fd178980fd13c59503af425d45bb640193a1abcad9081dd0db51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
|
Release files / jupyter_paperboy-0.1.2-py2.py3-none-any.whl
| Download URL | jupyter_paperboy-0.1.2-py2.py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
50212fa50653a123a1b0f5ba89531e2cd79f618816d0b5a2dee132689f4e9845
|
|
BLAKE2b-256 checksum How to use checksums |
bd46a780829a9bc4c7ef7ca5392a45bf83ca5b91340bc7c8cfe2ab3f2ae11db8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3
|
Security for jupyter-paperboy 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.