Automatic, AST-based dependency inference from Python imports. Stop writing dependencies twice.
Project description
pypm – Python Package Manager
pypm is a zero-config CLI tool that automatically infers dependencies from your Python source code.
Stop writing dependencies twice. Let your imports define your project.
pypm parses your project using Python’s AST, detects imports, resolves them to their correct PyPI package names (e.g., PIL → Pillow, cv2 → opencv-python), and generates a modern pyproject.toml for you.
🚀 Installation
Install from PyPI:
pip install pypm-cli
After installation, you can run:
pypm --help
⚡ Quick Start
1️⃣ Infer Dependencies
Scan the current directory and generate/update pyproject.toml:
pypm infer
2️⃣ Infer + Install Dependencies
Infer and install packages automatically:
pypm install
Note: If
uvis available, it will be used for faster installs. Otherwise, it falls back topip.
✨ Features
- Blazing Fast: Scans 1000+ files in under 1 second using aggressive parallelism and local caching.
- Offline-First Mapping: Uses a bundled database of popular packages to resolve dependencies instantly without network.
- Smart Inference: Recursively scans your project for
.pyfiles and extracts all imports. - Automatic Resolution: Maps module names to actual PyPI packages (e.g.,
PIL→Pillow). - Standard Library Detection: Automatically ignores Python built-in and stdlib modules.
- Modern Standards: Generates PEP 621–compliant
pyproject.toml.
📌 Example Workflow
# Inside your Python project
pypm infer
# Review generated pyproject.toml
cat pyproject.toml
# Install dependencies
pypm install
🧠 Why pypm?
Manually maintaining dependencies leads to:
- Duplicate effort
- Forgotten imports
- Mismatched environments
- Dirty
requirements.txtfiles
pypm makes your imports the single source of truth.
📚 Documentation
See full documentation in: docs/
🔧 Development Setup
If you want to contribute or run locally:
git clone https://github.com/Suriyakumardurai/pypm.git
cd pypm
pip install -e .
📦 Project
Available on PyPI: https://pypi.org/project/pypm-cli/
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 pypm_cli-0.0.3.tar.gz.
File metadata
- Download URL: pypm_cli-0.0.3.tar.gz
- Upload date:
- Size: 5.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a92fc590a12a43b9ec0575416ca82f4cc12923c67095f3c1ab7b63fdaf3257a
|
|
| MD5 |
7e121ade6d44717809e1616f2fe09afc
|
|
| BLAKE2b-256 |
4182eb7657d357162791fe9a9205e038f6ed193c0b690e8c5d5d1581317e6dc1
|
File details
Details for the file pypm_cli-0.0.3-py3-none-any.whl.
File metadata
- Download URL: pypm_cli-0.0.3-py3-none-any.whl
- Upload date:
- Size: 22.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39c8cab7b5d31a4fd8596d26d691c67850351f8e57767ca37fa25f22e070094d
|
|
| MD5 |
407d5b52e0c9df741d10880ddb5eff76
|
|
| BLAKE2b-256 |
9be3f28bca7f77ed2b05fe4ce9d12d44c68650c9e5099c969b8a031407146122
|