Models

Configuration models for pypreset.

class pypreset.models.LayoutStyle[source]

Bases: StrEnum

Project directory layout style.

See https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/

SRC = 'src'
FLAT = 'flat'
__new__(value)
class pypreset.models.TypingLevel[source]

Bases: StrEnum

Python typing strictness level.

NONE = 'none'
BASIC = 'basic'
STRICT = 'strict'
__new__(value)
class pypreset.models.TestingFramework[source]

Bases: StrEnum

Supported testing frameworks.

PYTEST = 'pytest'
UNITTEST = 'unittest'
NONE = 'none'
__new__(value)
class pypreset.models.FormattingTool[source]

Bases: StrEnum

Supported formatting/linting tools.

RUFF = 'ruff'
BLACK = 'black'
NONE = 'none'
__new__(value)
class pypreset.models.TypeChecker[source]

Bases: StrEnum

Supported type checking tools.

MYPY = 'mypy'
PYRIGHT = 'pyright'
TY = 'ty'
NONE = 'none'
__new__(value)
class pypreset.models.CreationPackageManager[source]

Bases: StrEnum

Package manager for project creation.

POETRY = 'poetry'
UV = 'uv'
SETUPTOOLS = 'setuptools'
__new__(value)
class pypreset.models.ContainerRuntime[source]

Bases: StrEnum

Container runtime for Dockerfile/Containerfile generation.

DOCKER = 'docker'
PODMAN = 'podman'
__new__(value)
class pypreset.models.CoverageTool[source]

Bases: StrEnum

Coverage service integration.

CODECOV = 'codecov'
NONE = 'none'
__new__(value)
class pypreset.models.DocumentationTool[source]

Bases: StrEnum

Documentation generator.

SPHINX = 'sphinx'
MKDOCS = 'mkdocs'
NONE = 'none'
__new__(value)
class pypreset.models.FileTemplate[source]

Bases: BaseModel

A file template definition.

Parameters:

data (Any)

path: str
template: str | None
content: str | None
executable: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.DirectoryStructure[source]

Bases: BaseModel

Directory structure definition.

Parameters:

data (Any)

directories: list[str]
files: list[FileTemplate]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.DependencyGroup[source]

Bases: BaseModel

A group of dependencies.

Parameters:

data (Any)

packages: list[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.Dependencies[source]

Bases: BaseModel

Project dependencies configuration.

Parameters:

data (Any)

main: list[str]
dev: list[str]
optional: dict[str, list[str]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.CoverageConfig[source]

Bases: BaseModel

Coverage service configuration.

Parameters:

data (Any)

enabled: bool
tool: CoverageTool
threshold: int | None
ignore_patterns: list[str]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.TestingConfig[source]

Bases: BaseModel

Testing configuration.

Parameters:

data (Any)

enabled: bool
framework: TestingFramework
coverage: bool | CoverageConfig
property coverage_config: CoverageConfig

Always return a CoverageConfig, coercing bool if needed.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.FormattingConfig[source]

Bases: BaseModel

Code formatting configuration.

Parameters:

data (Any)

enabled: bool
tool: FormattingTool
line_length: int
radon: bool
pre_commit: bool
version_bumping: bool
type_checker: TypeChecker
version_sync_guard: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.DependabotConfig[source]

Bases: BaseModel

Dependabot configuration for automatic dependency updates.

Parameters:

data (Any)

enabled: bool
schedule: Literal['daily', 'weekly', 'monthly']
open_pull_requests_limit: int
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.DockerConfig[source]

Bases: BaseModel

Docker/Podman configuration for generating Dockerfile/Containerfile.

Parameters:

data (Any)

enabled: bool
base_image: str | None
devcontainer: bool
container_runtime: ContainerRuntime
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.DocumentationConfig[source]

Bases: BaseModel

Documentation generator configuration.

Parameters:

data (Any)

enabled: bool
tool: DocumentationTool
deploy_gh_pages: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.ToxConfig[source]

Bases: BaseModel

tox configuration for multi-environment testing.

Parameters:

data (Any)

enabled: bool
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.Metadata[source]

Bases: BaseModel

Project metadata (mirrors pyproject.toml).

Parameters:

data (Any)

name: str
version: str
description: str
authors: list[str]
license: str | None
readme: str
readme_template: str | None
python_version: str
keywords: list[str]
classifiers: list[str]
repository_url: str | None
homepage_url: str | None
documentation_url: str | None
bug_tracker_url: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.EntryPoint[source]

Bases: BaseModel

Script entry point configuration.

Parameters:

data (Any)

name: str
module: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialMetadata[source]

Bases: BaseModel

Partial metadata for preset configs (all fields optional).

Parameters:

data (Any)

name: str | None
version: str | None
description: str | None
authors: list[str] | None
license: str | None
readme: str | None
readme_template: str | None
python_version: str | None
keywords: list[str] | None
classifiers: list[str] | None
repository_url: str | None
homepage_url: str | None
documentation_url: str | None
bug_tracker_url: str | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialDirectoryStructure[source]

Bases: BaseModel

Partial directory structure for preset configs.

Parameters:

data (Any)

directories: list[str] | None
files: list[FileTemplate] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialDependencies[source]

Bases: BaseModel

Partial dependencies for preset configs.

Parameters:

data (Any)

main: list[str] | None
dev: list[str] | None
optional: dict[str, list[str]] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialCoverageConfig[source]

Bases: BaseModel

Partial coverage config for preset configs.

Parameters:

data (Any)

enabled: bool | None
tool: CoverageTool | None
threshold: int | None
ignore_patterns: list[str] | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialTestingConfig[source]

Bases: BaseModel

Partial testing config for preset configs.

Parameters:

data (Any)

enabled: bool | None
framework: TestingFramework | None
coverage: bool | PartialCoverageConfig | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialFormattingConfig[source]

Bases: BaseModel

Partial formatting config for preset configs.

Parameters:

data (Any)

enabled: bool | None
tool: FormattingTool | None
line_length: int | None
radon: bool | None
pre_commit: bool | None
version_bumping: bool | None
type_checker: TypeChecker | None
version_sync_guard: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialDependabotConfig[source]

Bases: BaseModel

Partial dependabot config for preset configs.

Parameters:

data (Any)

enabled: bool | None
schedule: Literal['daily', 'weekly', 'monthly'] | None
open_pull_requests_limit: int | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialDockerConfig[source]

Bases: BaseModel

Partial docker config for preset configs.

Parameters:

data (Any)

enabled: bool | None
base_image: str | None
devcontainer: bool | None
container_runtime: ContainerRuntime | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialDocumentationConfig[source]

Bases: BaseModel

Partial documentation config for preset configs.

Parameters:

data (Any)

enabled: bool | None
tool: DocumentationTool | None
deploy_gh_pages: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PartialToxConfig[source]

Bases: BaseModel

Partial tox config for preset configs.

Parameters:

data (Any)

enabled: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.ProjectConfig[source]

Bases: BaseModel

Complete project configuration.

Parameters:

data (Any)

metadata: Metadata
structure: DirectoryStructure
dependencies: Dependencies
testing: TestingConfig
formatting: FormattingConfig
dependabot: DependabotConfig
docker: DockerConfig
documentation: DocumentationConfig
tox: ToxConfig
typing_level: TypingLevel
layout: LayoutStyle
package_manager: CreationPackageManager
pyenv: bool
entry_points: list[EntryPoint]
extras: dict[str, Any]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.PresetConfig[source]

Bases: BaseModel

Preset configuration that can be extended/overridden.

Parameters:

data (Any)

name: str
description: str
base: str | None
metadata: PartialMetadata
structure: PartialDirectoryStructure
dependencies: PartialDependencies
testing: PartialTestingConfig
formatting: PartialFormattingConfig
dependabot: PartialDependabotConfig
docker: PartialDockerConfig
documentation: PartialDocumentationConfig
tox: PartialToxConfig
typing_level: TypingLevel | None
layout: LayoutStyle | None
package_manager: CreationPackageManager | None
pyenv: bool | None
entry_points: list[EntryPoint]
extras: dict[str, Any]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pypreset.models.OverrideOptions[source]

Bases: BaseModel

Options that can override preset defaults at runtime.

Parameters:

data (Any)

testing_enabled: bool | None
formatting_enabled: bool | None
radon_enabled: bool | None
pre_commit_enabled: bool | None
version_bumping_enabled: bool | None
python_version: str | None
layout: LayoutStyle | None
extra_packages: list[str]
extra_dev_packages: list[str]
typing_level: TypingLevel | None
type_checker: TypeChecker | None
package_manager: CreationPackageManager | None
docker_enabled: bool | None
devcontainer_enabled: bool | None
container_runtime: ContainerRuntime | None
coverage_enabled: bool | None
coverage_tool: CoverageTool | None
coverage_threshold: int | None
docs_enabled: bool | None
docs_tool: DocumentationTool | None
docs_deploy_gh_pages: bool | None
tox_enabled: bool | None
version_sync_guard_enabled: bool | None
pyenv_enabled: bool | None
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].