Skip to main content

Github Actions Status PyPI Shield npm version

ballet-submit-labextension

Submit ballet modules from within JupyterLab

This extension is composed of a Python package named ballet-submit-labextension for the server extension and a NPM package also named ballet-submit-labextension for the frontend extension.

Requirements

  • JupyterLab >= 2.0

Install

Installation can be done completely using pip, which installs both the server and the frontend extensions. The frontend extension only can be installed using jupyter labextension install but will not function properly without the corresponding server extension.

pip install ballet-submit-labextension
jupyter lab build

Note: You will need NodeJS to install the extension; the installation process will complain if it is not found.

Authenticate with GitHub

The extension provides an in-lab experience for authenticating with GitHub. When you open a notebook, you should see the GitHub icon to the right on the Notebook toolbar. The icon should be grey at first, indicating you are not authenticated. Click the icon to open a login window, in which you can enter your GitHub username and password. These will be exchanged by the extension for an OAuth token and will be used to propose changes to the upstream Ballet project on your behalf (if you attempt to submit features).

Alternately, you can provide a personal access token directly using the configuration approaches below.

Configure

The extension ties into the same configuration system as Jupyter [Lab] itself. You can configure the extension with command line arguments or via the config file, just like you configure Jupyter Notebook or Jupyter Lab.

All configuration options

The following configuration options are available:

$ python -c 'from ballet_submit_labextension.app import print_help;print_help()'

BalletApp options
-----------------
--BalletApp.access_token_timeout=<Int>
    Default: 60
    timeout to receive access token from server via polling
--BalletApp.ballet_yml_path=<Unicode>
    Default: ''
    path to ballet.yml file of Ballet project (if Lab is not run from project
    directory)
--BalletApp.debug=<Bool>
    Default: False
    enable debug mode (no changes made on GitHub), will read from $BALLET_DEBUG
    if present
--BalletApp.github_token=<Unicode>
    Default: ''
    github access token, will read from $GITHUB_TOKEN if present
--BalletApp.oauth_gateway_url=<Unicode>
    Default: 'https://github-oauth-gateway.herokuapp.com/'
    url to github-oauth-gateway server

Command line arguments

Invoke Jupyter Lab with command line arguments providing config to the ballet extension, for example:

jupyter lab --BalletApp.debug=True

Config file

  1. Determine the path to your jupyter config file (you may have to create it if it does not exist):

    touch "$(jupyter --config-dir)/jupyter_notebook_config.py"
    
  2. Append desired config to the end of the file, for example:

    c.BalletApp.debug = True
    

Troubleshoot

If you are see the frontend extension but it is not working, check that the server extension is enabled:

jupyter serverextension list

If the server extension is installed and enabled but your not seeing the frontend, check the frontend is installed:

jupyter labextension list

If it is installed, try:

jupyter lab clean
jupyter lab build

Contributing

Development Install

The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab. You may use yarn or npm in lieu of jlpm below.

# Clone the repo to your local environment
# Move to ballet-submit-labextension directory
# Install server extension
pip install -e .
# Register server extension
jupyter serverextension enable --py ballet-submit-labextension
# Install dependencies
jlpm
# Build Typescript source
jlpm build
# Link your development version of the extension with JupyterLab
jupyter labextension link .

# Rebuild Typescript source after making changes
jlpm build
# Rebuild JupyterLab after making any changes
jupyter lab build

You can watch the source directory and run JupyterLab in watch mode to watch for changes in the extension's source and automatically rebuild the extension and application.

# Watch the source directory in another terminal tab
jlpm watch
# Run jupyterlab in watch mode in one terminal tab
jupyter lab --watch

Uninstall

pip uninstall ballet-submit-labextension
jupyter labextension uninstall ballet-submit-labextension

Release process

bumpversion <part>
make release

Metadata

Release files for ballet-submit-labextension 0.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ballet-submit-labextension 0.7.2
File Size Uploaded Provenance
ballet-submit-labextension-0.7.2.tar.gz 24.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ballet-submit-labextension 0.7.2
File Interpreter ABI Platform
ballet_submit_labextension-0.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 43.3 kB

Release files / ballet-submit-labextension-0.7.2.tar.gz

Download URL ballet-submit-labextension-0.7.2.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
384452677663bfd48a01f99306ebff2d32e4804565ad248dd8360a5cbd10a818
BLAKE2b-256 checksum
How to use checksums
82a7f482588dc19678af2e06536ca33737cafefd29c6e86eee376d86b02f26d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

Release files / ballet_submit_labextension-0.7.2-py3-none-any.whl

Download URL ballet_submit_labextension-0.7.2-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f775ec13963d397e43b413aae985a5717efc60c750eb2f6e4a229ad197d2e860
BLAKE2b-256 checksum
How to use checksums
8bcdda7ebf663081d44e203c6cfc8459298ae0f4f4d483dbea48031ec9524fa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3

Security for ballet-submit-labextension 0.7.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page