emcd-projectsΒΆ

Package Version PyPI - Status Tests Status Code Coverage Percentage Project License Python Versions

πŸ› οΈ Administration utilities for managing projects built from the emcd/python-project-common Copier template.

Installation πŸ“¦ΒΆ

Method: Install Executable ScriptΒΆ

Install via the uv tool command:

uv tool install emcd-projects

or, run directly with uvx:

uvx --from emcd-projects emcdproj

Or, install via pipx:

pipx install emcd-projects

Method: Install Python PackageΒΆ

Install via uv pip command:

uv pip install emcd-projects

Or, install via pip:

pip install emcd-projects

FeaturesΒΆ

🌐 Static Website Maintenance
  • Generates badges/shields based on test coverage.

  • Maintains index of versioned documentation and coverage reports.

  • No need for Codecov, ReadTheDocs, etc…; static site can be hosted anywhere which can deploy from a Git repo branch (GitHub Pages, etc…).

More FlairΒΆ

GitHub last commit Copier Hatch pre-commit Pyright Ruff PyPI - Implementation PyPI - Wheel

ArchitectureΒΆ

The emcdproj package provides maintenance tooling for projects generated from the python-project-common Copier template. It is one component of a larger repository that also contains the template itself, reusable GitHub Actions workflows, and shared documentation.

Package ModulesΒΆ

emcdproj/
β”œβ”€β”€ __/                      # Centralized import hub
β”‚   β”œβ”€β”€ __init__.py          # Re-exports core utilities
β”‚   β”œβ”€β”€ imports.py           # External library imports
β”‚   └── nomina.py            # emcd-projects-specific naming constants
β”œβ”€β”€ __init__.py              # Package entry point and version
β”œβ”€β”€ __main__.py              # CLI entry point for `python -m emcdproj`
β”œβ”€β”€ cli.py                   # Command-line interface implementation
β”œβ”€β”€ exceptions.py            # Package exception hierarchy
β”œβ”€β”€ filesystem.py            # File system operations
β”œβ”€β”€ interfaces.py            # Common interface definitions
β”œβ”€β”€ website.py               # Static website generation and maintenance
└── _typedecls/              # Type declaration stubs

Modules generally use the standard __ import pattern for external dependencies, with exceptions for entry points (__main__.py) and subsystems with direct import requirements.

Key Subsystem ContractsΒΆ

Static Site Publisher (website.py)

Generates and maintains a static documentation site with versioned content, coverage badges, and stable/development aliases. Invoked by the release workflow after documentation and coverage artifacts are available.

Integration with Reusable Workflows

The xrepo--documenter workflow invokes emcdproj website update as part of documentation publication. The xrepo--reporter workflow produces coverage artifacts consumed by the site publisher.

Table of ContentsΒΆ

IndicesΒΆ