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.13.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.13-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.13.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.13.tar.gz
Algorithm Hash digest
SHA256 afa83bbc2bba40fccbb3f82d67618587738fb8831ca05890c2e5ecf456e32f99
MD5 d726545159245700085ce6f3b451c323
BLAKE2b-256 6aafe2ab3a054a7b15d4a9aef5e5f42e66ceeea1c03f884d9a1c6cd7418dd4fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.13-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.13-py3-none-any.whl
Algorithm Hash digest
SHA256 ae3aaf22b79966e0b1a6e42810b6056c409d2008dfa3f8e8d6e80d04623bc90f
MD5 5d1da7cad9d7a6aa8ceb1901f144403d
BLAKE2b-256 047c4f31dd3b60826a3a8e42620a073d77964f5b130f97f277d3729608f83e91

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