From abc61d644f8c407bef42d4bee66d33781f7eb9c2 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 6 May 2024 13:31:06 +0200 Subject: [PATCH] fix(pypi): filter string only and deduplicate (#28865) --- .../datasource/pypi/__snapshots__/index.spec.ts.snap | 3 --- lib/modules/datasource/pypi/index.ts | 7 +++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/pypi/__snapshots__/index.spec.ts.snap index 42dc4dcea0..1af50f1d6d 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 57356aae4c..dd87ed2f23 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; }); -- GitLab