python warehouse pypi voir les anciennes versions du paquet




python warehouse (5)

C'est peut-être un peu inélégant, mais il semble que vous pouvez aller à l'URL

https://pypi.python.org/simple/<package>

Et vous obtiendrez un tas de liens vers les archives tar pour le paquet.

Ex:

https://pypi.python.org/simple/django-filebrowser-no-grappelli/

C'est le paquet qui m'intéresse:

https://pypi.python.org/pypi/django-filebrowser-no-grappelli/

Cependant, la dernière version ne prend plus en charge Django 1.3. J'ai besoin de trouver une version qui le fasse. Comment puis-je voir la liste des anciennes versions?


En utilisant pip vous pouvez trouver toutes les versions disponibles de ce paquet:

pip install django-filebrowser-no-grappelli==randomwords

Cela produira une sortie de tous les paquets disponibles:

 Could not find a version that satisfies the requirement 
   django-filebrowser-no-grappelli==randomwords  
 (from versions: 3.1.1, 3.5.6, 3.5.7, 3.5.8, 3.6.1, 3.6.2, 3.7.0, 3.7.1, 3.7.2)
    No matching distribution found for 
    django-filebrowser-no-grappelli==randomwords

Ceci est visible dans la nouvelle interface utilisateur de pypi:

https://pypi.org/project/<package>/#history

Par exemple:

https://pypi.org/project/django-filebrowser-no-grappelli/#history

Stockez le code suivant dans le fichier get_version.py :

import json
import sys
import urllib2

from distutils.version import LooseVersion

name = sys.argv[1]

resp = urllib2.urlopen("https://pypi.python.org/pypi/{}/json".format(name))
data = json.load(resp)

for ver in sorted([LooseVersion(version) for version in data["releases"].keys()]):
    print ver.vstring

Exécuter pour obtenir une liste triée de toutes les versions du paquet:

python get_version.py %PACKAGE-NAME%

Vous pouvez utiliser ce court extrait Python3 pour récupérer la liste des versions disponibles pour un package de PyPI :

>>> import requests
>>> from pkg_resources import parse_version
>>> 
>>> def versions(name):
...     url = "https://pypi.python.org/pypi/{}/json".format(name)
...     return sorted(requests.get(url).json()["releases"], key=parse_version)
... 
>>> print(*reversed(versions("Django")), sep="\n")
1.10.3
1.10.2
1.10.1
1.10
1.10rc1
1.10b1
1.10a1
...




pypi