Python Target Configuration
To configure Python target, use [py] in genotype.toml.
This configuration reference lists all available Python configuration options.
See the Genotype Configuration for global settings and Common Target Options.
py.enabled - Enable Target
Section titled “py.enabled - Enable Target”Set to true to generate Python. Defaults to false; see enable target.
[py]enabled = trueGeneration
Section titled “Generation”py.version - Python Version
Section titled “py.version - Python Version”version selects the Python syntax generation mode:
"latest"(default): Python 3.13 and later, using modern syntax such astypealiases."legacy": Python 3.8 and later, using older typing constructs and typing-extensions where needed.
[py]enabled = trueversion = "latest"Package
Section titled “Package”py.package - Package Generation
Section titled “py.package - Package Generation”Overrides package generation for Python. Inherits the global setting when omitted; see target package generation.
py.dist - Output Directory
Section titled “py.dist - Output Directory”Defaults to "py", relative to the global output directory. See target output directory.
py.manager - Package Manager
Section titled “py.manager - Package Manager”manager selects the generated Python manifest format:
"poetry"(default): Poetry metadata under[tool.poetry]."uv": Package metadata under[project].
[py]enabled = trueversion = "latest"manager = "uv"py.module - Module Name
Section titled “py.module - Module Name”module sets the generated Python package’s importable module name. It defaults to "module":
[py]enabled = trueversion = "latest"module = "bookstore_types"With package generation enabled, source files go into this directory inside the target output directory, e.g., dist/py/bookstore_types.
[py.manifest] - pyproject.toml
Section titled “[py.manifest] - pyproject.toml”Manifest options in [py.manifest] follow the pyproject.toml structure. The default package name uses kebab-case. The location of package name and version overrides depends on manager:
[py]enabled = trueversion = "latest"manager = "poetry"
[py.manifest.tool.poetry]name = "bookstore-types"version = "0.2.0"description = "Shared bookstore types"
[py.manifest.tool.poetry.dependencies]bookstore-shared = "^1.0.0"[py]enabled = trueversion = "latest"manager = "uv"
[py.manifest.project]name = "bookstore-types"version = "0.2.0"description = "Shared bookstore types"With uv, Genotype replaces project.dependencies with its detected runtime dependencies. Additional dependencies configured in that array aren’t preserved.
Modules
Section titled “Modules”[py.dependencies] - External Modules
Section titled “[py.dependencies] - External Modules”Values in dependencies are Python module import paths, which may differ from their distribution names:
[py]enabled = trueversion = "latest"
[py.dependencies]shared_types = "bookstore_shared"Formatting
Section titled “Formatting”py.formatters - Formatters
Section titled “py.formatters - Formatters”Adds formatters for Python; defaults to []. See target formatters for execution order and formatter configuration for commands and presets.