rlsbl v0.113.0 /rlsbl.pipelines.pypi
On this page

PyPI pipeline implementation that builds and publishes Python packages to PyPI, authenticating via PYPI_TOKEN or TWINE_PASSWORD credentials.

#rlsbl.pipelines.pypi

#rlsbl.pipelines.pypi

PyPI pipeline implementation that builds and publishes Python packages to PyPI, authenticating via PYPI_TOKEN or TWINE_PASSWORD credentials.

#normalize_module_name

python
def normalize_module_name(dist_name: str) -> str

Normalize a PyPI distribution name to an importable module name.

Lowercases and collapses runs of -, _, and . into a single underscore (the standard import-name form of a distribution name).

#launcher_module_name

python
def launcher_module_name(subdir: str) -> str

Resolve the launcher module dir name from the target's pyproject.toml.

The module directory is named after the distribution's normalized name so hatchling's default package auto-detection finds it. When the manifest is absent (scaffold hard-errors on this separately) or has no name, falls back to a neutral placeholder so callers that only need a non-publish path (e.g. publish-template resolution) do not crash.

#PypiPipeline

Pipeline that builds and publishes Python packages to PyPI.

Supports dual-token resolution: tries PYPI_TOKEN first, falls back to TWINE_PASSWORD. When token_var is explicitly set in pipeline config, only that variable is consulted.

#template_dir

python
def template_dir(self) -> str | None

Return the PyPI CI templates directory.

#template_mappings

python
def template_mappings(self, ctx) -> list[dict[str, str]]

Return publish workflow mappings, emitting launcher shims when configured.

#build_assets

python
def build_assets(self, dir_path: str, version: str, dist_dir: str, ctx) -> list[str]

Build sdist and wheel into dist_dir.

#publish

python
def publish(self, dir_path: str, version: str, ctx) -> None

Publish to PyPI with dual-token resolution (PYPI_TOKEN or TWINE_PASSWORD).

#_publish_command

python
def _publish_command(self, dir_path: str, version: str, token: str) -> None

Run uv build then uv publish with duplicate-version detection.

#required_env_vars

python
def required_env_vars(self) -> list[str]

Return the primary token var (PYPI_TOKEN) or explicit config override.

Search