PyPI
kind: pypi
| source | condition | target |
|---|---|---|
✔ | ✔ | ✗ |
source
The PyPI "source" retrieves the latest version of a Python package from a PyPI-compatible registry matching a specific version filter. PEP 440 pre-release versions (alpha, beta, rc) are automatically normalized to semver for filtering.
condition
The PyPI "condition" tests that a specific version exists on a PyPI-compatible registry.
target
The PyPI "target" is not supported.
Parameter
| Name | Type | Description | Required |
|---|---|---|---|
| name | string | Name defines the PyPI package name. | |
| token | string | Token defines the Bearer token for private registries. | |
| url | string | URL defines the PyPI-compatible registry URL (defaults to https://pypi.org/). | |
| version | string | Version defines a specific package version for condition checks. | |
| versionfilter | object | VersionFilter provides parameters to specify version pattern and its type. | |
| kind | string | specifies the version kind such as semver, regex, or latest | |
| pattern | string | specifies the version pattern according the version kind for semver, it is a semver constraint for regex, it is a regex pattern for time, it is a date format | |
| regex | string | specifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used. | |
| replaceall | object | replaceAll applies a regex replacement to version strings before filtering. This is useful for transforming versions (e.g., curl-8_15_0 to curl-8.15.0) before regex extraction. | |
| strict | boolean | strict enforce strict versioning rule. Only used for semantic versioning at this time |
Example
# updatecli.yaml
name: PyPI resource example
sources:
requests:
name: Get latest requests version from PyPI
kind: pypi
spec:
name: requests
flask:
name: Get latest flask version matching >=3.0
kind: pypi
spec:
name: flask
versionfilter:
kind: semver
pattern: ">=3.0.0"
conditions:
requests:
name: Test that requests version 2.31.0 exists on PyPI
kind: pypi
disablesourceinput: true
spec:
name: requests
version: 2.31.0
targets:
# Targets are not supported