En commençant par la déclaration résumée de Cairnarvon :
"On dirait que la principale raison pour laquelle PyPI a besoin de miroirs est qu'elle en a."
Je modifierais légèrement ceci :
C'est peut-être plus le chemin PyPI fonctionne réellement et doit donc être mis en miroir, ce qui pourrait contribuer à ajouter un bit supplémentaire (ou deux :-) à l'image de marque de l'entreprise. réel trafic.
Pour le moment, je pense que vous DEVEZ interagir avec l'index principal pour savoir ce qu'il faut mettre à jour dans votre référentiel. L'état n'est pas simplement accessible par des timestamps sur une hiérarchie de dossiers accessible au public. Donc, la mauvaise chose est que rsync est hors de l'équation. La bonne chose est que vous POUVEZ parler à l'index par le biais d'interfaces JSON, OAuth, XML-RPC ou HTTP.
Pour XML-RPC :
$> python
>>> import xmlrpclib
>>> import pprint
>>> client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
>>> client.package_releases('PartitionSets')
['0.1.1']
Pour JSON par exemple. :
$> curl https://pypi.python.org/pypi/PartitionSets/0.1.1/json
S'il y a environ 30.000 paquets hébergés [ 1 ], certains étant téléchargés de 50 000 à 300 000 fois par semaine [ 2 ] (comme distribute, pip, requests, paramiko, lxml, boto, paramike, redis et d'autres) vous avez vraiment besoin de miroirs, au moins du point de vue de l'accessibilité. Imaginez ce que fait un utilisateur lorsque pip install NeedThisPackage
échoue : Attendez ? De même, les miroirs PyPI à l'échelle de l'entreprise sont assez courants et agissent comme des proxies pour des réseaux autrement non routables. Enfin, il ne faut pas oublier la merveilleuse vérification des versions multiples rendue possible par virtualenv et ses amis. Ce sont toutes des utilisations légitimes et potentiellement merveilleuses des paquets...
Au final, vous ne savez jamais ce qu'un agent vraiment fait avec un paquet téléchargé : les utilisateurs doivent-ils vraiment l'utiliser ou simplement l'écraser la prochaine fois ? et après tout, les auteurs de paquets devraient se soucier davantage de nombre et nature des utilisations que le pur nombre d'utilisateurs potentiels ;-)
Réf : Les chiffres estimés proviennent de https://pypi.python.org/pypi (29303 paquets) et http://pypi-ranking.info/week (pour les chiffres hebdomadaires, demandés le 2013-03-23).