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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 624478489c804942f90f66781b0b0a461d15fde48fa82a91567febdb148eb324
MD5 ba17302a226b916073428d2b6b19a5da
BLAKE2b-256 b19ac7a477684fb1860854d707bc3cce84762b3e82594810ced78ac313e0b158

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyinit_tool-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 39.8 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a3fd18ba454689a073e2a8f804d93a84a785350bafc7b26ea56c21ef8e025ca8
MD5 f1f46c48d785ae264bf271939627d12e
BLAKE2b-256 f26a2928b097ad497a738f6bc8507c2d13d9137bf193ed1fbf6026577417bc6a

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