Skip to main content

A tool for creating and managing Python projects

Project description

๐Ÿš€ PyInit

Your All-in-One Python Project Manager

Version Python License PRs Welcome

PyInit is a powerful, all-in-one command-line tool for managing Python projects professionally. From project creation to deployment, PyInit provides everything you need! ๐ŸŽฏ

Installation โ€ข Features โ€ข Quick Start โ€ข Commands โ€ข Documentation


โœจ Features

๐ŸŽจ Project Management

  • โœ… Initialize existing directories
  • โœ… Clean temporary & build files
  • โœ… Comprehensive project health checks

๐Ÿ“ฆ Dependency Management

  • โœ… Add & update packages effortlessly
  • โœ… Visualize dependency graphs
  • โœ… Auto-sync dependencies

๐Ÿ”ง Development Tools

  • โœ… Format code with Black & isort
  • โœ… Lint code with Ruff
  • โœ… Run tests with Pytest
  • โœ… Virtual environment management

๐Ÿšข Build & Deployment

  • โœ… Build wheels & source distributions
  • โœ… Semantic version management

๐Ÿ“ฅ Installation

Install From PIP

pip install pyinit-tool

Install From AUR (Arch Users Repository) using yay/paru

yay -S python-pyinit
paru -S python-pyinit

Install from source

git clone https://github.com/mrbooo895/pyinit.git
cd pyinit
pip install -e .

Requirements

  • Python 3.10+
  • pip
  • Git (optional, for version control)

๐Ÿš€ Quick Start

Create a New Project

# Create Your Project
pyinit create my_project

Initialize an Existing Directory

cd my_existing_code
pyinit init

Run Your Project

pyinit run

Add Dependencies

pyinit install requests
pyinit install flask numpy pandas

Remove Modules

pyinit uninstall requests
pyinit uninstall flask numpy pandas

๐Ÿ“š Commands

๐Ÿ†• Project Creation & Initialization

Command Description
pyinit create <name> Create a new Python project
pyinit init Initialize PyInit structure in existing directory
pyinit info Display comprehensive project information

โ–ถ๏ธ Running & Testing

Command Description
pyinit run [args] Run your project's main file
pyinit test [pytest-args] Run tests with pytest

๐Ÿ“ฆ Dependency Management

Command Description
pyinit install <package> Install a package to your project
pyinit uninstall <package> uninstall a package from your project
pyinit update Check for outdated modules
pyinit update --upgrade Upgrade project dependencies
pyinit graph Display dependency tree

๐Ÿ”ง Code Quality

Command Description
pyinit format Format code with Black & isort
pyinit check [ruff-args] Lint code with Ruff
pyinit scan Scan project for issues
pyinit clean Remove temporary files

๐Ÿ—๏ธ Building & Releasing

Command Description
pyinit build Build distributable packages
pyinit release <major|minor|patch> Increment version number

๐ŸŒ Environment & Deployment

Command Description
pyinit venv create Create virtual environment
pyinit venv remove Remove virtual environment

๐ŸŽฏ Usage Examples

Complete Workflow Example

# 1. Create a new project
pyinit create awesome_project

# 2. Navigate to the project
cd awesome_project

# 3. Add dependencies
pyinit install requests beautifulsoup4 pandas

# 4. Write your code in src/awesome_project/

# 5. Run the project
pyinit run

# 6. Add tests in tests/

# 7. Run tests
pyinit test

# 8. Format and check code
pyinit format
pyinit check

# 9. Build the package
pyinit build

# 10. Increment version
pyinit release patch

๐Ÿ“ Project Structure

PyInit creates a clean, standardized project structure:

my_project/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ my_project/
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ””โ”€โ”€ main.py
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ docs/
โ”œโ”€โ”€ venv/
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

๐Ÿ” Project Health Check

Run a comprehensive health check on your project:

pyinit scan

Checks include:

  • โœ… pyproject.toml validity
  • โœ… Source directory structure
  • โœ… Virtual environment existence
  • โœ… Dependency synchronization
  • โœ… Git repository initialization
  • โœ… .gitignore presence
  • โœ… Tests directory existence

๐Ÿ› ๏ธ Advanced Features

Semantic Versioning

# Increment patch version (1.0.0 โ†’ 1.0.1)
pyinit release patch

# Increment minor version (1.0.0 โ†’ 1.1.0)
pyinit release minor

# Increment major version (1.0.0 โ†’ 2.0.0)
pyinit release major

Dependency Graph Visualization

pyinit graph

View your project's complete dependency tree with pipdeptree.


๐Ÿ“– Documentation

Full HTML documentation is available in the docs/html/ directory. Open index.html in your browser to explore:

  • API Reference
  • Module Documentation
  • Function Signatures
  • Class Diagrams
  • Dependency Graphs

๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2025 mrbooo895

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...

๐Ÿ™ Acknowledgments

  • Rich - Beautiful terminal formatting
  • Black & isort - Code formatting
  • Ruff - Fast Python linter
  • Pytest - Testing framework
  • Build - PEP 517 build backend

๐Ÿ“ž Support


โญ If you find PyInit useful, please consider giving it a star!

Made with โค๏ธ by mrbooo895

โฌ† Back to Top

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

pyinit_tool-1.0.11.tar.gz (32.0 kB view details)

Uploaded Source

Built Distribution

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

pyinit_tool-1.0.11-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file pyinit_tool-1.0.11.tar.gz.

File metadata

  • Download URL: pyinit_tool-1.0.11.tar.gz
  • Upload date:
  • Size: 32.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyinit_tool-1.0.11.tar.gz
Algorithm Hash digest
SHA256 b0ee23681b6d9e050450b372f605133738627f011f13248cdb9212854c95a5de
MD5 f5a5d5b926a6241d28c0351701c2ae72
BLAKE2b-256 eb559bbdaacb0ee4e9d016a45736280f5546f43f1e9a58b31247438ed77c049c

See more details on using hashes here.

File details

Details for the file pyinit_tool-1.0.11-py3-none-any.whl.

File metadata

  • Download URL: pyinit_tool-1.0.11-py3-none-any.whl
  • Upload date:
  • Size: 40.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyinit_tool-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 aa15869bb31489ca9a4609fa94643a58bea8f6c00414e2da883230b6e0c472ab
MD5 d068784e483ddb99ddde506ac450684b
BLAKE2b-256 36c3f2b0357e078f6f95b7415047cb352b9b98ac78f82a958a8c2f593e6b025e

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