• Stars
    star
    248
  • Rank 163,560 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A web frontend for scheduling Jupyter notebook reports

paperboy

Status

A web frontend for scheduling Jupyter Notebooks as reports

Overview

Build Status Azure DevOps coverage

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)
  • PhosphorJS for the frontend
  • Support for Python Virtualenvs via requirements.txt or custom Docker images via Dockerfiles 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
        • pdf
        • html
        • email
        • script
      • strip or keep code
  • To edit or create additional reports on a job, configure reports
    • run or publish
    • output
      • notebook
      • pdf
      • html
      • email
      • 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.

More Repositories

1

tdameritrade

Python interface to TD Ameritrade (https://developer.tdameritrade.com)
Python
521
star
2

lantern

Data exploration glue
Python
335
star
3

jupyterlab_miami_nights

Combination of VS Code's SynthWave '84 and JupyterLab's Neon Night
CSS
117
star
4

jupyterlab_iframe

View html as an embedded iframe in JupyterLab
JavaScript
98
star
5

ipydagred3

ipywidgets library for drawing directed acyclic graphs in jupyterlab using dagre-d3
Python
76
star
6

oreilly-latex-template

O'Reilly Latex Template by Joan Queralt translated to english from https://tex.stackexchange.com/questions/107862/oreilly-template
TeX
66
star
7

jupyterlab_email

A jupyterlab extension to email notebooks directly from JupyterLab.
Python
52
star
8

knowledgelab

KnowledgeRepo + JupyterLab
Python
47
star
9

jupyterlab_commands

Add arbitrary python commands to the jupyterlab command palette
Python
45
star
10

perspective-parquet

Parquet file reader and editor in Jupyterlab, built with `perspective` for pivoting, filtering, aggregating, etc
JavaScript
39
star
11

jupyterlab_powerpoint

Creating PowerPoints from jupyter notebooks and vice versa
JavaScript
25
star
12

pyEX-zipline

pyEX + Zipline
Python
23
star
13

jupyterlab_nbconvert_nocode

A simple helper library with 2 NBConvert exporters for PDF/HTML export with no code cells
Jinja
22
star
14

tornado-proxy-handlers

Tornado proxy handlers for HTTP requests and web sockets
Python
15
star
15

perspective-python

Python APIs for perspective front end
14
star
16

polygon-io-perspective

Demo application visualizing Polygon.io financial data in Perspective
JavaScript
12
star
17

perspective-dash-component

A dash component for perspective.
Python
11
star
18

nannotate

Automate ML dataset labelling
JavaScript
11
star
19

ta-lib

TA-lib built with CMake
CMake
11
star
20

nbcx

A framework for customizing NBConvert templates and building reports
CSS
10
star
21

fpga-board

A minimal complexity fpga board
10
star
22

bigbrother

An evil, awful, terrible, no-good library for watching objects for mutation. Do not use this library.
Python
10
star
23

pyEX-studies

Predefined financial metrics built on pyEX/IEX
6
star
24

finance-enums

Standard Financial Enumerations
Rust
5
star
25

arrow-cpp-python-nocopy

CMake
5
star
26

transports

Generic communication library
Python
5
star
27

polygon-io-examples

Example applications, dashboards, scripts, notebooks, and other utilities built using Polygon.io
Jupyter Notebook
5
star
28

pyEX-caching

Library for caching and querying IEX data
Python
5
star
29

daggre

A convenience layer on top of dagre-d3/dagre-d3-es, for use in ipydagred3
Python
4
star
30

tributary-rs

Streaming reactive and dataflow graphs in Rust
Rust
4
star
31

tornado-sqlalchemy-login

SQLAlchemy helpers doing login/logout/register in Tornado
Python
4
star
32

atomic-counter

Threadsafe atomic counter
Python
4
star
33

jupyter-templates

Support for notebook templates in jupyter and jupyterlab
JavaScript
4
star
34

organizeit2

This morning at dawn, you will take a new form - that of a fleshless, chattering skeleton when Zorp the Surveyor arrives and burns your flesh off with his volcano mouth
Python
4
star
35

jupyter-autoversion

Automatically version jupyter notebooks in Jupyter and JupyterLab
4
star
36

superstore

Categorical data generator
Python
3
star
37

temporal-cache

Time-based cache invalidation
Python
3
star
38

arrow-wasm-cpp

Standalone Apache Arrow compiled to WebAssembly, extracted from https://github.com/finos/perspective
CMake
3
star
39

tkp-stack-public

Public version of my personal ansible scripts
Python
3
star
40

regular-table-lumino

bugs and tests putting `regular-table` inside lumino widgets
JavaScript
2
star
41

con-pcie-x4

PCIe x4 edge which for some reason doesn't exist anywhere...
2
star
42

crowdsource

A streaming competition engine
Python
1
star
43

perspective-workspace-react-tornado

Example integrating Perspective Workspace + React + Tornado
JavaScript
1
star
44

perspective-summary

A `perspective-viewer` that provides summary statistics
Rust
1
star
45

finance-widgets

Library of reusable, composable javascript widgets for financial data.
1
star
46

requests-helper

Simple helper for requests
JavaScript
1
star
47

pyproject-cookiecutter

A Cookiecutter for my personal projects
JavaScript
1
star
48

iex-cloud-training

Comprehensive course for working programmatically with data.
Jupyter Notebook
1
star
49

jupyterlab_iex

JupyterLab Extensions for IEX Cloud
1
star
50

airflow-supervisor

Airflow utilities for running long-running or always-on jobs with supervisord
Makefile
1
star
51

tkp_utils_js

Whenever I have to write the same code over and over again, I'll put it here
TypeScript
1
star
52

timkpaine

HTML
1
star
53

cocktail-website

website for barrel cocktail co.
Svelte
1
star
54

voila-plain

Very simple template for Voila
Smarty
1
star
55

verilator-coverage-repro

repository for ventilator `--coverage` problem
Makefile
1
star
56

tkp_stack_public

Public helpers scripts and configuration
1
star
57

turtles

turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles turtles
1
star
58

pyproject-cookiecutter-example

An example instance of https://github.com/timkpaine/pyproject-cookiecutter, for testing
1
star
59

pyo3-pyclass-share-dylib

Experimenting with workarounds for https://github.com/PyO3/pyo3/issues/1444
Rust
1
star