Coverage for src/footman/tasks/__init__.py: 100%
1 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-24 13:38 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-07-24 13:38 +0000
1"""footman's own first-party task plugins — one module per family.
3Each family is its own `footman.tasks` entry point, and a plugin's name is
4its command path (see `compose.mount_plugins`):
6* `footman.docs` → `footman.tasks.docs:tasks` — task-documentation
7 generation (`fm footman docs …`). The end-user-facing family.
8* `footman.tools` → `footman.tasks.tools:tasks` — the `tools.*` stub
9 toolkit and its provisioning (`fm footman tools …`). Maintainer-facing,
10 rarely what a user wants.
12They mount independently: `plugins = ["footman.docs"]` takes just the docs
13family, and both share the `footman` namespace group without either owning
14it. Nothing here is imported by a bare `import footman`, or on the
15completion hot path — a family imports only when its plugin is mounted, so
16this package imports neither submodule at package-init time.
17"""
19from __future__ import annotations