The noteable API interface
Project description
papermill-origami
A papermill engine for running Noteable notebooks
Install | Getting Started | Documentation | License | Code of Conduct | Contributing
Intro to Papermill-Origami
Papermill-Origami is the bridge library between the Origami Noteable SDK and Papermill. The papermill engine can talk to Noteable APIs to run Notebooks.
Requirements
Python 3.8+
Installation
Poetry
poetry add papermill-origami
Pip
pip install papermill-origami
Getting Started
API Token
Get your access token from your User Settings -> API Tokens
or alternatively you can generate a post request to generate a new token
curl -X 'POST' \
'https://app.noteable.io/gate/api/v1/tokens' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"ttl": 31536000,
"name": "my_token"
}'
Engine Registration
The noteable
engine keyword will use the following environment variables by default:
NOTEABLE_DOMAIN = app.noteable.io
NOTEABLE_TOKEN = MY_TOKEN_VALUE_HERE
Then the engine is enabled by running papermill as normal. But now you have access to
the noteable://
scheme as well as the ability to tell papermill to use Noteable as
the execution location for your notebook.
import papermill as pm
file_id = '...'
pm.execute_notebook(
f'noteable://{file_id}',
None, # Set no particular output notebook, but a log of the resulting exeuction link still prints
# This turns on the Noteable API interface
engine_name='noteable', # exclude this kwarg to run the Notebook locally
)
Advanced Setup
For more advanced control or reuse of a NoteableClient SDK object you can use the async await pattern around a client constructor. This reuses the connection throughout the life cycle of the context block.
import papermill as pm
from papermill.iorw import papermill_io
from papermill_origami import ClientConfig, NoteableClient, NoteableHandler
domain = 'app.noteable.io'
token = MY_TOKEN_VALUE_HERE
file_id = '...'
async with NoteableClient(token, config=ClientConfig(domain=domain)) as client:
file = await client.get_notebook(file_id)
papermill_io.register("noteable://", NoteableHandler(client))
pm.execute_notebook(
f'noteable://{file_id}',
None,
engine_name='noteable',
# Noteable-specific kwargs
file=file,
client=client,
)
Contributing
See CONTRIBUTING.md.
Open sourced with ❤️ by Noteable for the community.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for papermill_origami-0.0.28-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75f20027437ae4da203fe50fe9b2d515c451cd0c5d3047414f3216a1b44a4a31 |
|
MD5 | 8cad0f3cecdb5a7544168436423bd51f |
|
BLAKE2b-256 | bad2b7436e82582084460a294ef404388237cb5d91a98ff148730f565efa000d |