diff --git a/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap index 42dc4dcea0258789e1d1e50b220f39e547ea0081..1af50f1d6d055b0a2af5f95e9f527bfb8e03dda5 100644 --- a/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap +++ b/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap @@ -265,9 +265,6 @@ exports[`modules/datasource/pypi/index getReleases respects constraints 1`] = ` { "registryUrl": "https://pypi.org/pypi", "releases": [ - { - "version": "0.4.0", - }, { "version": "0.4.1", }, diff --git a/lib/modules/datasource/pypi/index.ts b/lib/modules/datasource/pypi/index.ts index 57356aae4cd3f820893eb12123158705dd602fc1..dd87ed2f23490dee03cb00d8202c1ae80f52d4ef 100644 --- a/lib/modules/datasource/pypi/index.ts +++ b/lib/modules/datasource/pypi/index.ts @@ -1,4 +1,5 @@ import url from 'node:url'; +import is from '@sindresorhus/is'; import changelogFilenameRegex from 'changelog-filename-regex'; import { logger } from '../../../logger'; import { coerceArray } from '../../../util/array'; @@ -156,9 +157,11 @@ export class PypiDatasource extends Datasource { result.isDeprecated = isDeprecated; } // There may be multiple releases with different requires_python, so we return all in an array + const pythonConstraints = releases + .map(({ requires_python }) => requires_python) + .filter(is.string); result.constraints = { - // TODO: string[] isn't allowed here - python: releases.map(({ requires_python }) => requires_python) as any, + python: Array.from(new Set(pythonConstraints)), }; return result; });