Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
3.3 KiB
title, description
| title | description |
|---|---|
| Python Package Manager Support | Python/pip dependencies support in Renovate |
Python package manager support
Renovate supports several Python package managers, including pip, pipenv, poetry, etc.
See all supported managers.
Versioning support
We've written a JavaScript version of the PEP440 specification so we can use it in Renovate bot.
You can find this project in our renovatebot/pep440 repository.
Our PEP440 implementation supports pinned versions and ranges.
Legacy versions with the === prefix are ignored.
How it works
- Renovate searches through each repository for package files
- Existing dependencies are extracted from the package files
- Renovate searches for the latest version on PyPI to decide if there are upgrades
- If the source package includes a GitHub URL as its source, and has a "changelog" file or uses GitHub releases, a Release Note will be embedded in the generated PR
Alternative file names
For the pip_requirements manager, the default file matching regex for requirements.txt follows common file name conventions.
It will match requirements.txt and requirements.pip, and any file in the format requirements-*.txt or requirements-*.pip, to allow for common filename patterns such as requirements-dev.txt.
But Renovate may not find all your files.
You can tell Renovate where to find your file(s) by setting your own fileMatch regex:
{
"pip_requirements": {
"fileMatch": ["my/specifically-named.file", "\\.requirements$"]
}
}
Alternate registries
By default Renovate checks for upgrades on the pypi.org registry.
If you want, you can set alternative index URLs. There are three ways to do this:
- index-url in
requirements.txt - sources in
Pipfile - sources in
pyproject.toml - set URL in Renovate configuration
index-url in requirements.txt
You can set the index URL in the first line of the requirements.txt, for example:
--index-url http://example.com/private-pypi/
some-package==0.3.1
some-other-package==1.0.0
Sources in Pipfile
Renovate finds and uses any custom sources in your Pipfile.
Sources in pyproject.toml
Renovate detects any custom-configured sources in pyproject.toml and uses them.
Specify URL in configuration
Create a python object and put a registryUrls array in it.
Fill the array with alternate index URL(s).
{
"python": {
"registryUrls": ["http://example.com/private-pypi/"]
}
}
!!! tip
If a requirements.txt file has an index-url then Renovate follows that link, instead of following any link set in the registryUrls array.
To override the URL found in requirements.txt, you must create a custom packageRules setting.
This is because packageRules are applied after package file extraction.
Disabling Python support
To disable all managers with language set to python in Renovate, do this:
{
"python": {
"enabled": false
}
}
Alternatively, you can use enabledManagers to tell Renovate what package managers it can use.
For example, if you only want to use Renovate's npm package manager:
{
"enabledManagers": ["npm"]
}