Skip to main content

A smart Python project initializer and dependency manager.

Project description

pinit: The Smart Python Project Initializer

pinit is a command-line tool that streamlines the process of starting and managing Python projects. It handles everything from creating a clean project structure and virtual environment to intelligently managing dependencies and running scripts.

It's designed to be a simple, all-in-one replacement for manually running venv, pip install, pip freeze, and managing requirements.txt.

Features

  • Interactive Setup: A wizard guides you through creating a new project.
  • Automatic Venv: Creates a venv and upgrades pip for you.
  • Smart Dependency Management: install and uninstall commands automatically update both a high-level project.json and a complete requirements.txt.
  • Intelligent Uninstall: Removing a package also removes its dependencies, unless they are required by another package in your project.
  • Script Runner: Run custom commands defined in your project.json with pinit run <script-name>.
  • Activated Shell: Jump into an activated virtual environment shell with the pinit shell command.

Installation

You can install pinit directly from PyPI:

pip install pinit-cli

Usage

1. Initialize a New Project

To start a new project, simply run pinit in the directory where you want to create it. The interactive wizard will handle the rest.

pinit

2. Manage Packages

pinit automatically detects and uses the local venv for all package operations.

# Add one or more new packages to the project
pinit install requests flask

# Uninstall a package and its orphaned dependencies
pinit uninstall flask

# Re-install all dependencies from project files
pinit install

3. Run Scripts

You can define custom script shortcuts in the scripts section of your project.json file.

// project.json
{
  ...
  "scripts": {
    "start": "python main.py",
    "test": "pytest"
  },
  ...
}

Run them from your terminal:

# Runs "python main.py" using the venv's interpreter
pinit run start

# Runs "pytest"
pinit run test

4. Use an Activated Shell

For interactive work or debugging, you can launch a new shell session with the virtual environment already activated.

pinit shell

Your terminal prompt will change, indicating you are inside the venv. Type exit to return to your normal shell.

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

pinit_cli-0.1.1.tar.gz (2.5 kB view details)

Uploaded Source

Built Distribution

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

pinit_cli-0.1.1-py3-none-any.whl (2.5 kB view details)

Uploaded Python 3

File details

Details for the file pinit_cli-0.1.1.tar.gz.

File metadata

  • Download URL: pinit_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 2.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pinit_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d7661a1a21592053157fb52664672336146208c2d016254a7aee45b341813af5
MD5 1437be1e2e5bfc8ebd1be12bd8a75c91
BLAKE2b-256 7e84c92a0f3ba2dd8565f84b18fceca7195c8e7606497591dd54a81d2b76c446

See more details on using hashes here.

File details

Details for the file pinit_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pinit_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pinit_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 41d4d4a10412b9baa7a714c6819648edfed691241ab974dce111b6bd98b37bc5
MD5 1b93ddc6ccb3221ce7304a60a2f060e5
BLAKE2b-256 b129a00b2e53b8797a9961651ff82ad461b3b9fc0df3dbe5746829ffd7b25fe9

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