A modern Python development toolkit.
Project description
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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jbussdieker_project-0.4.1.tar.gz.
File metadata
- Download URL: jbussdieker_project-0.4.1.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
745c649f654489fac66e71f78dbd32584b65dc7e12004e1597efbfed107c8ac1
|
|
| MD5 |
84a8df1277c30d548ffd3fd90b682bfb
|
|
| BLAKE2b-256 |
5250972c2056e60a8b6a42cb56c694964a2f71b86a5c963d3a5481c1e2eb384b
|
File details
Details for the file jbussdieker_project-0.4.1-py3-none-any.whl.
File metadata
- Download URL: jbussdieker_project-0.4.1-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95c7d2e90c1d5b1f93d6d0eb5b021dbbdd182243578a56b01d85b4a3f14d4a68
|
|
| MD5 |
9f9faacdc34efee1fc42a77ca1130a8a
|
|
| BLAKE2b-256 |
90efffec418a3b934a07ae80e3446db56f13bb224057e45a3d35e09340c8638e
|