Commonsense Jupyter/Docker/Git integrations.
Project description
gsmo
Commonsense Jupyter/Docker/Git integrations.
gsmo streamlines mounting and working with Git repositories in Docker containers.
A purpose-built Docker image+container are created (see gsmo.yml for configuration options), and Git configs are embedded so that commits inside the Docker container exist outside it (with correct permissions, authorship info, etc.).
Local notebooks or scripts can be executed non-interactively (with results automatically committed to Git), or a Jupyter server or Bash shell can be booted for interactive work.
Usage
gsmo run: execute notebooks non-interactively
gsmo helps run notebooks and scripts in a reproducible fashion (inside Docker containers), and pass-through changes (especially Git commits) to the host machine:
Running:
gsmo run
in a project directory will:
- load configs (
gsmo.yml) - build a Docker image
- run a container from that image
- run the project's
run.ipynbnotebook inside that container - Git-commit results
Interactive
Jupyter Server
Build a Docker image from the current directory, and launch a Jupyter server with the current directory mounted (and various Git- and OS-level configs set, so that changes/commits are reflected on the host machine):
gsmo jupyter # or: gsmo j
- runs at a "random" but stable port (derived from a hash of the module name)
- easily configure Python/Linux environment using
gsmo.yml
Bash shell
Build a Docker image from the current directory, and launch a Bash shell with it mounted (and various Git- and OS-level configs set, so that changes/commits are reflected on the host machine):
gsmo sh
Module configuration:
gsmo.yml
When you run gsmo in a directory, it will look for a gsmo.yml file in the current directory with any of the following fields and build a corresponding Docker image:
Docker configs
name(str; default: project directory's basename): module name; also used as repository for built Docker imagepip(strorList[str]):piplibraries to installapt(strorList[str]):aptlibraries to installenv(strorList[str]): environment variables to setenv_file(str): file with environment variablesgroup(strorList[str]): OS groups to add to the user inside the container- paths are accepted, in which case the group that owns that path will be used
tag(strorList[str]): additional Docker tags withinnamerepositorymount(strorList[str]): Docker mounts, in several convenient formats:<path>: equivalent to<path>:/<path>; easily pass local project subdirectories into Docker container, e.g.home/.bashrc,etc/pip.conf, etc.- standard Docker
<src>:<dst>syntax is also supported - in all cases,
~and env vars are expanded
image(str; default:runsascoded/gsmo:<gsmo version>): base Docker image to build from;<gsmo version>will be the pip version ofgsmothat was installedroot(bool; defaultFalse)- when set, run as
rootinside container - by default, host-machine uid+gid are used
- when set, run as
dst(str: default/src): path inside container to mount current directory to
gsmo run configs
These configs are passed into the Docker container / pertain to the running of a script or notebook inside the container (see non-interactive mode):
run(str; default:run.ipynb): notebook to rundir(str; default: current directory): resolve paths (incl. mounts) relative to this directoryyaml(strorList[str]): YAML string(s) with configuration settings for the module being runyaml_path(strorList[str]): YAML file(s) with configuration settings for the module being runcommit(strorList[str]; default:outconfig dir): paths to Git commit after a run (in non-interactive mode)out(str; defaultnbs): directory to write executed notebooks to
gsmo jupyter configs
Dockerfile
When building the Docker image (in any of the above modes), if a Dockerfile is present in the repository, it will be built and used as the base image (and any gsmo.yml configs applied on top of it).
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gsmo-0.0.19.tar.gz.
File metadata
- Download URL: gsmo-0.0.19.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71971d5e836cff0a0ea2d4a9afb45d6673fdc353f340c11d7f16e39a435ca222
|
|
| MD5 |
d7a5d979fff5cad554c90b79cc7e578b
|
|
| BLAKE2b-256 |
6d015b5607db122e367df3b4cf3eaf8255e80188bcfc01a8aac05cda7a3f7d09
|
File details
Details for the file gsmo-0.0.19-py3-none-any.whl.
File metadata
- Download URL: gsmo-0.0.19-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac893fd9887f0a71d6aeab6568949435fa6e5c9b0d85028eb67866f1f031bdf0
|
|
| MD5 |
065296c02ef9431ccd73c7399a59820c
|
|
| BLAKE2b-256 |
620063a26a45d048f89023c0e5d462d4f30058632cdad7910e1a63b175cea230
|