Introduction¶
Lunchbox is a library of various tools for common python tasks.
See documentation for details.
Installation¶
Python¶
pip install lunchbox
Docker¶
Install docker-desktop
docker pull thenewflesh/lunchbox:latest
Docker For Developers¶
Install docker-desktop
Ensure docker-desktop has at least 4 GB of memory allocated to it.
git clone git@github.com:theNewFlesh/lunchbox.git
cd lunchbox
chmod +x bin/lunchbox
bin/lunchbox docker-start
The service should take a few minutes to start up.
Run bin/lunchbox --help
for more help on the command line tool.
Production CLI¶
Lunchbox comes with a command line interface defined in command.py.
Its usage pattern is: lunchbox COMMAND [ARGS] [-h --help]
Commands¶
Command |
Description |
Args |
---|---|---|
slack |
Posts a slack message to a given channel |
url, channel, message |
bash-completion |
Prints BASH completion code to be written to a _lunchbox completion file |
|
zsh-completion |
Prints ZSH completion code to be written to a _lunchbox completion file |
Development CLI¶
bin/lunchbox is a command line interface (defined in cli.py) that works with any version of python 2.7 and above, as it has no dependencies.
Its usage pattern is: bin/lunchbox COMMAND [-a --args]=ARGS [-h --help] [--dryrun]
Commands¶
Command |
Description |
---|---|
build-package |
Build production version of repo for publishing |
build-prod |
Publish pip package of repo to PyPi |
build-publish |
Run production tests first then publish pip package of repo to PyPi |
build-test |
Build test version of repo for prod testing |
docker-build |
Build image of lunchbox |
docker-build-prod |
Build production image of lunchbox |
docker-container |
Display the Docker container id of lunchbox |
docker-destroy |
Shutdown lunchbox container and destroy its image |
docker-destroy-prod |
Shutdown lunchbox production container and destroy its image |
docker-image |
Display the Docker image id of lunchbox |
docker-prod |
Start lunchbox production container |
docker-push |
Push lunchbox production image to Dockerhub |
docker-remove |
Remove lunchbox Docker image |
docker-restart |
Restart lunchbox container |
docker-start |
Start lunchbox container |
docker-stop |
Stop lunchbox container |
docs |
Generate sphinx documentation |
docs-architecture |
Generate architecture.svg diagram from all import statements |
docs-full |
Generate documentation, coverage report, diagram and code |
docs-metrics |
Generate code metrics report, plots and tables |
library-add |
Add a given package to a given dependency group |
library-graph-dev |
Graph dependencies in dev environment |
library-graph-prod |
Graph dependencies in prod environment |
library-install-dev |
Install all dependencies into dev environment |
library-install-prod |
Install all dependencies into prod environment |
library-list-dev |
List packages in dev environment |
library-list-prod |
List packages in prod environment |
library-lock-dev |
Resolve dev.lock file |
library-lock-prod |
Resolve prod.lock file |
library-remove |
Remove a given package from a given dependency group |
library-search |
Search for pip packages |
library-sync-dev |
Sync dev environment with packages listed in dev.lock |
library-sync-prod |
Sync prod environment with packages listed in prod.lock |
library-update |
Update dev dependencies |
library-update-pdm |
Update PDM |
session-lab |
Run jupyter lab server |
session-python |
Run python session with dev dependencies |
state |
State of lunchbox |
test-coverage |
Generate test coverage report |
test-dev |
Run all tests |
test-fast |
Test all code excepts tests marked with SKIP_SLOWS_TESTS decorator |
test-lint |
Run linting and type checking |
test-prod |
Run tests across all support python versions |
version |
Full resolution of repo: dependencies, linting, tests, docs, etc |
version-bump-major |
Bump pyproject major version |
version-bump-minor |
Bump pyproject minor version |
version-bump-patch |
Bump pyproject patch version |
zsh |
Run ZSH session inside lunchbox container |
zsh-complete |
Generate oh-my-zsh completions |
zsh-root |
Run ZSH session as root inside lunchbox container |
Flags¶
Short |
Long |
Description |
---|---|---|
-a |
–args |
Additional arguments, this can generally be ignored |
-h |
–help |
Prints command help message to stdout |
–dryrun |
Prints command that would otherwise be run to stdout |