diff --git a/lib/modules/versioning/pep440/index.spec.ts b/lib/modules/versioning/pep440/index.spec.ts
index bb2ad28d78b03723b833f889f9361183f3710043..8ba12022fb4f46a1df22a90c92624df8135b843b 100644
--- a/lib/modules/versioning/pep440/index.spec.ts
+++ b/lib/modules/versioning/pep440/index.spec.ts
@@ -37,6 +37,14 @@ describe('modules/versioning/pep440/index', () => {
     expect(pep440.equals(a, b)).toBe(expected);
   });
 
+  it.each`
+    a          | b            | expected
+    ${'1.0'}   | ${'>=1.0.0'} | ${true}
+    ${'>=3.8'} | ${'>=3.9'}   | ${false}
+  `('matches($a, $b) === $expected', ({ a, b, expected }) => {
+    expect(pep440.matches(a, b)).toBe(expected);
+  });
+
   it.each`
     version       | isSingle
     ${'1.2.3'}    | ${true}
diff --git a/lib/modules/versioning/pep440/index.ts b/lib/modules/versioning/pep440/index.ts
index 6de5a74ad4931bcef2829238715f44a16a318614..f37b731ab0278ecd95fbe46be71267a36b07faaf 100644
--- a/lib/modules/versioning/pep440/index.ts
+++ b/lib/modules/versioning/pep440/index.ts
@@ -16,7 +16,7 @@ export const supportedRangeStrategies: RangeStrategy[] = [
 
 const {
   compare: sortVersions,
-  satisfies: matches,
+  satisfies,
   valid,
   validRange,
   explain,
@@ -74,6 +74,10 @@ export { isVersion, matches };
 const equals = (version1: string, version2: string): boolean =>
   isVersion(version1) && isVersion(version2) && eq(version1, version2);
 
+function matches(version: string, range: string): boolean {
+  return isVersion(version) && isValid(range) && satisfies(version, range);
+}
+
 export const api: VersioningApi = {
   equals,
   getMajor,