Source code for pjkm.core.tasks.defaults
"""Default task registry with all built-in tasks."""
from __future__ import annotations
from pjkm.core.tasks.configure.apply_groups import ApplyGroupsTask
from pjkm.core.tasks.configure.configure_linting import ConfigureLintingTask
from pjkm.core.tasks.configure.setup_git_lfs import SetupGitLfsTask
from pjkm.core.tasks.install.pdm_install import PdmInstallTask
from pjkm.core.tasks.install.pre_commit_install import PreCommitInstallTask
from pjkm.core.tasks.registry import TaskRegistry
from pjkm.core.tasks.scaffold.init_git import InitGitTask
from pjkm.core.tasks.scaffold.init_project import InitProjectTask
from pjkm.core.tasks.scaffold.setup_remote import SetupRemoteTask
from pjkm.core.tasks.verify.verify_structure import VerifyStructureTask
[docs]
def create_default_registry() -> TaskRegistry:
"""Create a TaskRegistry with all built-in tasks registered."""
registry = TaskRegistry()
# Scaffold phase
registry.register(InitProjectTask())
registry.register(InitGitTask())
registry.register(SetupRemoteTask())
# Configure phase
registry.register(ApplyGroupsTask())
registry.register(ConfigureLintingTask())
registry.register(SetupGitLfsTask())
# Install phase
registry.register(PdmInstallTask())
registry.register(PreCommitInstallTask())
# Verify phase
registry.register(VerifyStructureTask())
# Load plugin tasks
from importlib.metadata import entry_points
from pjkm.core.tasks.base import BaseTask
for ep in entry_points(group="pjkm.tasks"):
try:
task = ep.load()()
if isinstance(task, BaseTask):
registry.register(task)
except Exception:
pass # Skip broken plugins silently
return registry