Skip to main content

project shell > hyperspace velocity

Project description

pj

PyPI

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 commit and push.

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.

  1. Checks - Validate prerequisites
  2. Setup - Create repo, nbdev structure, venv, kernel, direnv
  3. 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

pj_sh-0.0.4.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pj_sh-0.0.4-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

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

Hashes for pj_sh-0.0.4.tar.gz
Algorithm Hash digest
SHA256 8f14ded7b1a2463c3a6c49cace41289c04d41e886d23cbd086283680129d5711
MD5 ada504303c58ef0741919a643481f5c1
BLAKE2b-256 06935b971a12c7a2032392ff3ba56b6e9bb5921766828c3bd5415dcc939e6248

See more details on using hashes here.

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

Hashes for pj_sh-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a248df7785c6e4f28235e29e701378ba27e157ee2c847dc4edf8a0bb2dacf2d1
MD5 6961def65c3fdf928c495cc87c30dc50
BLAKE2b-256 46de0f3806afb2a38a7100299172b7af2fe985bedabd0d4ba62670b22494e054

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page