jbussdieker-project
A modern Python development toolkit plugin for generating complete Python project structures using the jbussdieker CLI framework. This plugin creates fully configured Python projects with CI/CD workflows, testing setup, and all necessary development files.
🚀 Features
- Complete Project Generation: Creates fully structured Python projects with all necessary files
- CI/CD Integration: Includes GitHub Actions workflows for testing and publishing
- Testing Setup: Pre-configured test structure with pytest
- Modern Python Configuration: Uses pyproject.toml for modern Python packaging
- License and Documentation: Automatically generates LICENSE and README files
- Git Integration: Includes .gitignore and proper Git setup
- Customizable Templates: Uses configurable templates for all generated files
- Multi-Environment Support: Works across different Python versions and operating systems
📦 Installation
pip install jbussdieker-project --upgrade
🔧 Prerequisites
- Python 3.9 or higher
- jbussdieker CLI framework
- Git (for version control integration)
🎯 Usage
Basic Usage
Create a new Python project:
jbussdieker project my-awesome-project
This will create a complete project structure:
my-awesome-project/
├── .github/
│ └── workflows/
│ ├── ci.yml
│ └── publish.yml
├── src/
│ └── my-awesome-project/
│ └── __init__.py
├── tests/
│ ├── __init__.py
│ └── test_my-awesome-project.py
├── LICENSE
├── Makefile
├── README.md
├── pyproject.toml
└── .gitignore
Generated Project Structure
The plugin generates a complete Python project with:
- Source Code: Properly structured
src/layout - Testing: pytest configuration and test files
- CI/CD: GitHub Actions for testing and publishing
- Documentation: README and license files
- Build System: Modern pyproject.toml configuration
- Development Tools: Makefile with common development commands
🔍 Generated Files
Core Project Files
pyproject.toml: Modern Python project configurationREADME.md: Project documentation templateLICENSE: MIT license with your name.gitignore: Python-specific Git ignore rulesMakefile: Development commands and shortcuts
CI/CD Workflows
.github/workflows/ci.yml: Automated testing workflow.github/workflows/publish.yml: Automated publishing to PyPI
Source Structure
src/<project_name>/__init__.py: Main package initializationtests/: Complete testing structure with pytest
🛠️ Development
This plugin is part of the jbussdieker ecosystem. It integrates seamlessly with the jbussdieker CLI framework.
Project Structure
src/jbussdieker/project/
├── __init__.py
├── cli.py # CLI interface and argument parsing
├── generator.py # Core project generation logic
├── git_utils.py # Git integration utilities
├── template_loader.py # Template loading and substitution
└── templates/ # Project template files
├── pyproject.toml.tpl
├── README.md.tpl
├── LICENSE.tpl
├── Makefile.tpl
├── ci.yml.tpl
├── publish.yml.tpl
└── ...
Template System
The plugin uses a flexible template system that supports variable substitution for:
- Project name and description
- User information (name, email)
- GitHub organization
- Default branch name
- Version information
📝 License
This project is licensed under MIT.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📚 Related
- jbussdieker - The main CLI framework
- Python Packaging User Guide - Python packaging best practices
Metadata
Release files for jbussdieker-project 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jbussdieker_project-0.4.1.tar.gz | 15.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jbussdieker_project-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.7 kB
Release files / jbussdieker_project-0.4.1.tar.gz
| Download URL | jbussdieker_project-0.4.1.tar.gz |
|---|---|
| Size | 15.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
745c649f654489fac66e71f78dbd32584b65dc7e12004e1597efbfed107c8ac1
|
|
BLAKE2b-256 checksum How to use checksums |
5250972c2056e60a8b6a42cb56c694964a2f71b86a5c963d3a5481c1e2eb384b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|
Release files / jbussdieker_project-0.4.1-py3-none-any.whl
| Download URL | jbussdieker_project-0.4.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95c7d2e90c1d5b1f93d6d0eb5b021dbbdd182243578a56b01d85b4a3f14d4a68
|
|
BLAKE2b-256 checksum How to use checksums |
90efffec418a3b934a07ae80e3446db56f13bb224057e45a3d35e09340c8638e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|