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

1"""footman's own first-party task plugins — one module per family. 

2 

3Each family is its own `footman.tasks` entry point, and a plugin's name is 

4its command path (see `compose.mount_plugins`): 

5 

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. 

11 

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""" 

18 

19from __future__ import annotations