Files
renovate/lib/modules/datasource/python-version
Will Gordon 11f39d5106 fix(datasource/python-version): gracefully handle python.org 429 rate limiting (#41180)
fix(datasource/python-version): gracefully handles python.org 429 rate limiting

When python.org returns HTTP 429, falls back to containerbase prebuild
releases instead of aborting the entire repository with ExternalHostError.
2026-02-20 16:54:35 +00:00
..

This datasource returns Python releases from the python.org API.

It also fetches deprecated versions from the Endoflife Date datasource.

Because Renovate depends on containerbase/python-prebuild it will also fetch releases from the GitHub API.

Example custom manager

Below is a custom regex manager to update the Python versions in a Dockerfile. Python versions sometimes drop the dot that separate the major and minor number: so 3.11 becomes 311. The example below handles this case.

ARG PYTHON_VERSION=311
FROM image-python${PYTHON_VERSION}-builder:1.0.0
{
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": ["/^Dockerfile$/"],
      "matchStringsStrategy": "any",
      "matchStrings": [
        "ARG PYTHON_VERSION=\"?(?<currentValue>3(?<minor>\\d+))\"?\\s"
      ],
      "autoReplaceStringTemplate": "ARG PYTHON_VERSION={{{replace '\\.' '' newValue}}}\n",
      "currentValueTemplate": "3.{{{minor}}}",
      "datasourceTemplate": "python-version",
      "versioningTemplate": "python",
      "depNameTemplate": "python"
    }
  ]
}