pjkm.core.models.project

Project configuration and archetype definitions.

Classes

Archetype

Supported project archetypes.

ProjectConfig

Central configuration describing what the user wants to build.

Module Contents

class pjkm.core.models.project.Archetype[source]

Bases: enum.StrEnum

Supported project archetypes.

SINGLE_PACKAGE = 'single_package'[source]
SERVICE = 'service'[source]
POLY_REPO = 'poly_repo'[source]
SCRIPT_TOOL = 'script_tool'[source]
class pjkm.core.models.project.ProjectConfig(/, **data)[source]

Bases: pydantic.BaseModel

Central configuration describing what the user wants to build.

Parameters:

data (Any)

project_name: str = None[source]
archetype: Archetype[source]
python_version: str = None[source]
author_name: str = None[source]
author_email: str = None[source]
license: str = None[source]
description: str = None[source]
selected_groups: list[str] = None[source]
target_dir: pathlib.Path = None[source]
dry_run: bool = False[source]
template_overrides: dict[str, str] = None[source]
property project_slug: str[source]

Normalized project name for use in Python package paths.

Return type:

str

property project_dir: pathlib.Path[source]

Full path to the project directory that will be created.

Return type:

pathlib.Path

classmethod validate_python_version(v)[source]
Parameters:

v (str)

Return type:

str