Skip to main content

ProJect management toolkit

Project description

pj

PyPI PyPI - Downloads

Three commands: pj init creates the entire nbdev project infrastructure and pushes to GitHub, pj sync runs nbdev_prepare then commits and pushes, pj kill stops background processes. That’s it.

Install

Install from PyPI:

$ 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.

The Three Phases

  1. Checks - Validate prerequisites
  2. Setup - Create repo, nbdev structure, venv, kernel, direnv
  3. Sync - Prepare nbdev, commit, push

Design Principles

  • 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 conda and pypi respectively.

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.3.tar.gz (16.4 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.3-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file pj_sh-0.0.3.tar.gz.

File metadata

  • Download URL: pj_sh-0.0.3.tar.gz
  • Upload date:
  • Size: 16.4 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.3.tar.gz
Algorithm Hash digest
SHA256 130dd0d481ee9fcaeabf1b5b1141824b87dad1354cc7d357a0ee717057e7c7f1
MD5 077248b0825a6232ccd9cf7aed8746e4
BLAKE2b-256 4c1f6d2cc51b5d7d3c0cb00a725a99f4802f765f49c8ec771aca1cb8000f7fe8

See more details on using hashes here.

File details

Details for the file pj_sh-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pj_sh-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 14.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ba6df97679ef5e58ce04f1dcf6355a72b91b373acd125e19bbd7a4813bf0dc78
MD5 7e487b999182bddcfdabae682e1c7d63
BLAKE2b-256 8bde3d124090db4e23717bf7c71fd38c8bd23dc8c044618326427544a7d5ab7b

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