{"id":30848362,"url":"https://github.com/nikithshetty/pybake","last_synced_at":"2025-09-07T03:09:04.393Z","repository":{"id":310392941,"uuid":"1039623347","full_name":"NikithShetty/pybake","owner":"NikithShetty","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-17T19:34:43.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-17T21:11:46.599Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NikithShetty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-17T16:28:32.000Z","updated_at":"2025-08-17T19:34:45.000Z","dependencies_parsed_at":"2025-08-17T21:11:51.451Z","dependency_job_id":"de97c46d-f011-4e40-bae6-a96ce60ea39d","html_url":"https://github.com/NikithShetty/pybake","commit_stats":null,"previous_names":["nikithshetty/pybake"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/NikithShetty/pybake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikithShetty%2Fpybake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikithShetty%2Fpybake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikithShetty%2Fpybake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikithShetty%2Fpybake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NikithShetty","download_url":"https://codeload.github.com/NikithShetty/pybake/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NikithShetty%2Fpybake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273990267,"owners_count":25203311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-07T03:08:57.736Z","updated_at":"2025-09-07T03:09:04.372Z","avatar_url":"https://github.com/NikithShetty.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PyBake CLI\n\nA powerful CLI tool that creates new Python projects with modern tooling setup, including uv, pyright, ruff, beartype, pytest, pre-commit, and GitHub Actions.\n\n## 🚀 Features\n\n- **Modern Python Project Structure**: Creates well-organized projects with src layout\n- **Dependency Management**: Configures uv for fast package management\n- **Static Analysis**: Sets up pyright for comprehensive type checking\n- **Code Quality**: Configures ruff for linting and formatting\n- **Runtime Validation**: Integrates beartype for runtime type checking\n- **Testing**: Sets up pytest with coverage reporting\n- **Git Hooks**: Configures pre-commit for automated quality checks\n- **CI/CD**: Creates GitHub Actions workflows for automated testing\n- **Interactive Setup**: Guided project creation with prompts\n- **Multiple Templates**: Support for different project types\n\n## 📋 Requirements\n\n- Python 3.12+\n- uv (for running the tool)\n\n## 🛠️ Installation\n\n### Using uvx (Recommended - No Installation Required)\n\nThe easiest way to use PyBake is with `uvx`, which runs the tool directly from the repository without any installation:\n\n```bash\n# Run directly without installation\nuvx pybake --help\n\n# Create a new project\nuvx pybake create my-awesome-project\n\n# List available templates\nuvx pybake list-templates\n\n# Show tool information\nuvx pybake info\n```\n\n### Alternative: Local Development Setup\n\nIf you want to contribute to PyBake or run it locally:\n\n```bash\n# Clone the repository\ngit clone https://github.com/NikithShetty/pybake.git\ncd pybake\n\n# Install dependencies\nuv sync\n\n# Run locally\nuv run pybake --help\n```\n\n## 🎯 Usage\n\n### Create a New Project\n\n```bash\n# Basic usage with uvx\nuvx pybake create my-awesome-project\n\n# With custom options\nuvx pybake create my-awesome-project \\\n    --python 3.12 \\\n    --description \"My awesome Python project\" \\\n    --author \"Your Name\" \\\n    --email \"your.email@example.com\" \\\n    --path /path/to/projects\n```\n\n### Available Commands\n\n```bash\n# Show help\nuvx pybake --help\n\n# Create a new project\nuvx pybake create \u003cproject-name\u003e [options]\n\n# List available templates\nuvx pybake list-templates\n\n# Show tool information\nuvx pybake info\n```\n\n### Command Options\n\n- `--path, -p`: Path where to create the project (default: current directory)\n- `--python, -py`: Python version requirement (default: 3.12)\n- `--description, -d`: Project description\n- `--author, -a`: Project author name\n- `--email, -e`: Author email address\n- `--no-interactive`: Disable interactive mode\n\n## 🏗️ Generated Project Structure\n\n```bash\nmy-awesome-project/\n├── src/\n│   └── my_awesome_project/\n│       ├── __init__.py\n│       └── main.py\n├── tests/\n│   ├── __init__.py\n│   └── test_my_awesome_project.py\n├── docs/\n│   └── README.md\n├── .github/\n│   └── workflows/\n│       └── ci.yml\n├── pyproject.toml\n├── .python-version\n├── .gitignore\n├── README.md\n└── .pre-commit-config.yaml\n```\n\n## 🛠️ Tools Included\n\n### 1. Environment \u0026 Dependency Management\n- **uv**: Fast Python package installer and resolver\n\n### 2. Typing \u0026 Static Analysis\n- **pyright**: Microsoft's static type checker for Python\n- **ruff**: Extremely fast Python linter and formatter\n- **beartype**: Runtime type checking decorator\n\n### 3. Testing\n- **pytest**: Testing framework with powerful features\n- **pytest-cov**: Coverage reporting for pytest\n- **pre-commit**: Git hooks for code quality\n- **GitHub Actions**: Automated CI/CD workflows\n\n## 🔧 Configuration Files\n\n### pyproject.toml\n- Project metadata and dependencies\n- Tool configurations for ruff, pyright, pytest, and coverage\n- Build system configuration with hatchling\n- uv-specific configuration for development dependencies\n\n### .pre-commit-config.yaml\n- Git hooks for code quality\n- Automated formatting and linting on commit\n\n### GitHub Actions (ci.yml)\n- Automated testing on push/PR\n- Coverage reporting and quality checks\n\n## 🚀 Quick Start\n\n1. **Run the tool directly** (recommended):\n   ```bash\n   uvx pybake create my-project\n   ```\n\n2. **Navigate to your project**:\n   ```bash\n   cd my-project\n   ```\n\n3. **Initialize git and install dependencies**:\n   ```bash\n   git init\n   uv sync\n   ```\n\n4. **Activate virtual environment and run tests**:\n   ```bash\n   uv shell\n   pytest\n   ```\n\n## 🧪 Testing\n\n```bash\n# Run tests\npytest\n\n# Run tests with coverage\npytest --cov=src\n\n# Run specific test file\npytest tests/test_my_awesome_project.py\n```\n\n## 🔍 Code Quality\n\n```bash\n# Lint code\nruff check .\n\n# Format code\nruff format .\n\n# Type checking\npyright\n\n# Run all pre-commit hooks\npre-commit run --all-files\n```\n\n## 📚 Development\n\n### Project Structure\n\n```bash\npybake/\n├── src/\n│   └── pybake/\n│       ├── __init__.py\n│       ├── cli.py              # Main CLI application\n│       ├── config.py            # Configuration classes\n│       ├── project_generator.py # Project generation logic\n│       ├── templates.py         # Project templates\n│       └── __main__.py          # Module entry point\n├── tests/                       # Test files\n├── pyproject.toml              # Project configuration\n├── main.py                     # Alternative entry point\n└── README.md                   # This file\n```\n\n### Adding New Templates\n\n1. Update `templates.py` with new template configuration\n2. Modify `project_generator.py` to handle template-specific logic\n3. Add template-specific file generation methods\n\n### Adding New Tools\n\n1. Update `pyproject.toml` with new dependencies\n2. Add tool configuration files in `project_generator.py`\n3. Update documentation and help text\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Run tests and quality checks\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [uv](https://github.com/astral-sh/uv) - Fast Python package manager\n- [uvx](https://github.com/astral-sh/uvx) - Run Python packages directly from git\n- [pyright](https://github.com/microsoft/pyright) - Static type checker\n- [ruff](https://github.com/astral-sh/ruff) - Fast Python linter\n- [beartype](https://github.com/beartype/beartype) - Runtime type checking\n- [pytest](https://github.com/pytest-dev/pytest) - Testing framework\n- [pre-commit](https://github.com/pre-commit/pre-commit) - Git hooks\n- [Typer](https://github.com/tiangolo/typer) - CLI framework\n- [Rich](https://github.com/Textualize/rich) - Rich text and formatting\n\n## 📞 Support\n\nIf you encounter any issues or have questions:\n\n1. Check the [Issues](https://github.com/NikithShetty/pybake/issues) page\n2. Create a new issue with detailed information\n3. Join our community discussions\n\n---\n\n**Happy coding! 🚀**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikithshetty%2Fpybake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikithshetty%2Fpybake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikithshetty%2Fpybake/lists"}