diff --git a/lib/versioning/pep440/index.js b/lib/versioning/pep440/index.js
index 323a7adae70e0d9cd7e77b99f121d402d886f1be..cc103596d2dd4dbd90de47b17353b6926f4bbef2 100644
--- a/lib/versioning/pep440/index.js
+++ b/lib/versioning/pep440/index.js
@@ -1,7 +1,6 @@
 const pep440 = require('@renovate/pep440');
 const { filter } = require('@renovate/pep440/lib/specifier');
 const { rangify } = require('./range');
-const semantic = require('./semantic');
 
 const {
   compare: sortVersions,
@@ -10,11 +9,11 @@ const {
   validRange,
   explain,
   gt: isGreaterThan,
+  major: getMajor,
+  minor: getMinor,
   eq: equals,
 } = pep440;
 
-const { major: getMajor, minor: getMinor } = semantic;
-
 const isStable = input => {
   const version = explain(input);
   if (!version) {
diff --git a/lib/versioning/pep440/semantic.js b/lib/versioning/pep440/semantic.js
deleted file mode 100644
index 6f23ee2a7298161180f25494fdd3084f63e492af..0000000000000000000000000000000000000000
--- a/lib/versioning/pep440/semantic.js
+++ /dev/null
@@ -1,26 +0,0 @@
-const pep440 = require('@renovate/pep440');
-
-const major = input => {
-  const version = pep440.explain(input);
-  if (!version) {
-    throw new TypeError('Invalid Version: ' + input);
-  }
-  return version.release[0];
-};
-
-const minor = input => {
-  const version = pep440.explain(input);
-  if (!version) {
-    throw new TypeError('Invalid Version: ' + input);
-  }
-  if (version.release.length < 2) {
-    return 0;
-  }
-  return version.release[1];
-};
-
-// those notation are borrowed from semver, not sure if should be moved to @renovate/pep440
-module.exports = {
-  major,
-  minor,
-};
diff --git a/package.json b/package.json
index 6b79b3e818ae44f9186db38877621e36ac36015d..a5be50794a8a83cb7711f29fa2b6a69d59b1afde 100644
--- a/package.json
+++ b/package.json
@@ -49,6 +49,7 @@
     "node": ">= 8.11.0"
   },
   "dependencies": {
+    "@renovate/pep440": "0.2.0",
     "@yarnpkg/lockfile": "1.0.1",
     "bunyan": "1.8.12",
     "cacache": "11.0.2",
@@ -86,7 +87,6 @@
     "openpgp": "2.6.2",
     "p-all": "1.0.0",
     "parse-link-header": "1.0.1",
-    "@renovate/pep440": "0.1.1",
     "pnpm": "2.2.2",
     "registry-auth-token": "3.3.2",
     "root-require": "0.3.1",
@@ -101,6 +101,7 @@
     "upath": "1.1.0",
     "validator": "10.2.0",
     "vso-node-api": "6.5.0",
+    "xregexp": "4.1.1",
     "yarn": "1.7.0"
   },
   "devDependencies": {
diff --git a/yarn.lock b/yarn.lock
index 2fb10aa11e00a6091a392add04debfa294325f9f..e5c0c0e69ecb9f6b22d89b533b58f9be24b3a66f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -30,9 +30,9 @@
     node-fetch "^2.1.1"
     url-template "^2.0.8"
 
-"@renovate/pep440@0.1.1":
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/@renovate/pep440/-/pep440-0.1.1.tgz#1f52f35a3fb536b184376059b547a1f48cdf95a5"
+"@renovate/pep440@0.2.0":
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/@renovate/pep440/-/pep440-0.2.0.tgz#dbfea48b726a6cada912031c2a06c02eccfe9753"
   dependencies:
     xregexp "^4.1.1"
 
@@ -7078,7 +7078,7 @@ xml-name-validator@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
 
-xregexp@^4.1.1:
+xregexp@4.1.1, xregexp@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.1.1.tgz#eb8a032aa028d403f7b1b22c47a5f16c24b21d8d"