31 lines
939 B
Python
Executable File
31 lines
939 B
Python
Executable File
#!/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="") |