project shell > hyperspace velocity
Project description
pj
pj, the project shell, has four commands:
pj init creates the entire nbdev project infrastructure and pushes to
GitHub,
pj sync runs nbdev_prepare then commits and pushes,
pj ship bumps up GitHub version and releases to PyPI.org, pj kill
stops background processes.
That’s it.
Install
Install from PyPI, ideally with
uv:
$ uv tool install pj-sh
or latest from the GitHub repository:
$ uv tool install git+https://github.com/kitled/pj.git
Usage
pj init my-project # start
pj sync # work
pj kill # end
Create complete nbdev project with pj init: GitHub repository, virtual
environment, registered Jupyter kernel, direnv activation, dark theme
toggle, initial commit pushed.
Subsequent pj sync runs the full export-test-clean-add-commit-push
workflow in one invocation.
Find all options with --help after any command.
pj --help
pj init --help
init
Create new project
Start with pj init proj_name to create a GitHub repo, setup nbdev
fully, and push ready to code.
pj init my-project -v \
--desc "ML utilities" \
--public \
--python 3.12 \
--license apache2
Everything is logged to init.log by default; use -v flag to see
stdin/out.
sync
Automated
nbdev_prepare,git commitandpush.
Use pj sync to update remote;
flag -m "commit message" (default: “save”).
pj sync -m "Add new feature"
kill
Stop all servers
pj kill will terminate all running Jupyter, nbdev, Quarto processes on
the host.
Why pj?
Purpose
Create a fully-configured GitHub + nbdev project with one command.
No manual setup, no forgotten steps. From zero to ready-to-code.
- Checks - Validate prerequisites
- Setup - Create repo, nbdev structure, venv, kernel, direnv
- Sync - Prepare nbdev, commit, push
Features
- Clean output: One line per operation
- Verbose mode: Show commands and boxed output with
-v - Fail fast: Stop on first error
- Sensible defaults: Private repos, log to
init.log, push immediately
Devs
If you are new to using nbdev here are some useful pointers to get you
started.
Install pj in Development mode
# make sure pj package is installed in development mode
uv pip install -e .
# make changes under nbs/ directory
# ...
# compile to have changes apply to pj
nbdev_prepare
Documentation
Documentation can be found hosted on this GitHub
repository’s
pages.
Additionally you can find package manager specific guidelines on
pypi.
See also uv docs if needed.
Project details
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 pj_sh-0.0.4.tar.gz.
File metadata
- Download URL: pj_sh-0.0.4.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f14ded7b1a2463c3a6c49cace41289c04d41e886d23cbd086283680129d5711
|
|
| MD5 |
ada504303c58ef0741919a643481f5c1
|
|
| BLAKE2b-256 |
06935b971a12c7a2032392ff3ba56b6e9bb5921766828c3bd5415dcc939e6248
|
File details
Details for the file pj_sh-0.0.4-py3-none-any.whl.
File metadata
- Download URL: pj_sh-0.0.4-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a248df7785c6e4f28235e29e701378ba27e157ee2c847dc4edf8a0bb2dacf2d1
|
|
| MD5 |
6961def65c3fdf928c495cc87c30dc50
|
|
| BLAKE2b-256 |
46de0f3806afb2a38a7100299172b7af2fe985bedabd0d4ba62670b22494e054
|