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.9.tar.gz (31.9 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.9-py3-none-any.whl (40.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.9.tar.gz
  • Upload date:
  • Size: 31.9 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.9.tar.gz
Algorithm Hash digest
SHA256 383c999c3b6565d4f7dadcb62b50d39f8ec005ec9147184c80e1e6bb0a735ae8
MD5 e169b1110da6b2cfcf7c3eb9ac2803f8
BLAKE2b-256 9e3e1933d0ee63c572b2b8d7c0892c70c4351e93902e726bc7e0bb16df5267cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 40.6 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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e3fbe35d48fcfb2af4b794ad67beab274d4f42ebcec70534614ad8a6ba2bbd19
MD5 c7550465bffea210225da37d4349cb49
BLAKE2b-256 6a1897702527396069c5a90d321a25751d80de4b04d87d7ca74c4df19c300e7d

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