From b6c32fbd3ccc58d3bd3941dbffa48417e1f74861 Mon Sep 17 00:00:00 2001 From: Harrison Deng Date: Tue, 18 Feb 2025 14:49:49 +0000 Subject: [PATCH] Re-added pypi package version fetching script --- Jenkinsfile | 2 +- pypi_latest_ver.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 pypi_latest_ver.py diff --git a/Jenkinsfile b/Jenkinsfile index db5fb3f..f593cc0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -51,7 +51,7 @@ pipeline { } steps { dir('auto-updated-bioconda-recipes') { - sh 'git commit -a -m "Automatically updated autobigs-engine bioconda recipe to $(python ../scripts/package_latest_version.py autoBIGS.engine)."' + sh 'git commit -a -m "Automatically updated autobigs-engine bioconda recipe to $(python ../pypi_latest_ver.py autoBIGS.engine)."' sh 'git push https://${TOKEN}@github.com/Syph-and-VPD-Lab/auto-updated-bioconda-recipes.git update-autobigs-engine' } } diff --git a/pypi_latest_ver.py b/pypi_latest_ver.py new file mode 100644 index 0000000..f08877d --- /dev/null +++ b/pypi_latest_ver.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +import sys +import requests +import json +try: + from packaging.version import parse +except ImportError: + from pip._vendor.packaging.version import parse + +# Courtesy of https://stackoverflow.com/questions/28774852/pypi-api-how-to-get-stable-package-version + +URL_PATTERN = 'https://pypi.python.org/pypi/{package}/json' + + +def get_version(package, url_pattern=URL_PATTERN): + """Return version of package on pypi.python.org using json.""" + req = requests.get(url_pattern.format(package=package)) + version = parse('0') + if req.status_code == requests.codes.ok: + j = json.loads(req.text.encode(req.encoding or "utf-8")) + releases = j.get('releases', []) + for release in releases: + ver = parse(release) + if not ver.is_prerelease: + version = max(version, ver) + return version + + +if __name__ == '__main__': + print(get_version(sys.argv[1]), end="") \ No newline at end of file