Skip to main content

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 configuration
  • README.md: Project documentation template
  • LICENSE: MIT license with your name
  • .gitignore: Python-specific Git ignore rules
  • Makefile: 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 initialization
  • tests/: 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

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

jbussdieker_project-0.4.1.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jbussdieker_project-0.4.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for jbussdieker_project-0.4.1.tar.gz
Algorithm Hash digest
SHA256 745c649f654489fac66e71f78dbd32584b65dc7e12004e1597efbfed107c8ac1
MD5 84a8df1277c30d548ffd3fd90b682bfb
BLAKE2b-256 5250972c2056e60a8b6a42cb56c694964a2f71b86a5c963d3a5481c1e2eb384b

See more details on using hashes here.

File details

Details for the file jbussdieker_project-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for jbussdieker_project-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 95c7d2e90c1d5b1f93d6d0eb5b021dbbdd182243578a56b01d85b4a3f14d4a68
MD5 9f9faacdc34efee1fc42a77ca1130a8a
BLAKE2b-256 90efffec418a3b934a07ae80e3446db56f13bb224057e45a3d35e09340c8638e

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