ما هي طريقة أنيقة العثور على إصدارات حزم على pypi حزمة المؤشر ؟

StackOverflow https://stackoverflow.com/questions/646515

  •  22-07-2019
  •  | 
  •  

سؤال

حاليا أنا باستخدام قبيحة جدا النهج القائم على regex إيجاد الروابط و أخذ منهم على حدة.

أنا غير سعيد مع رمز ، لذا أنا أطلب أجمل الحلول ، ويفضل أن يكون ذلك فقط باستخدام stdlib.

تحرير

المهمة في متناول اليد 2 أجزاء:

  1. إيجاد جميع التوزيعات التي تطابق معايير معينة (مثل بادئة اسم).
  2. إيجاد جميع الإصدارات المتاحة في كل وجدت التوزيع.

النتيجة المتوقعة هي رسم خرائط توزيع -> إصدارات> الملفات.

هل كانت مفيدة؟

المحلول 3

المؤسف ، ولكن بسبب عدم وجود xmlrpc على فهارس أنا بحاجة للحفاظ على الحل

نصائح أخرى

هناك XML-RPC واجهة.ترى Python.org صفحة ويكي على الجبن المحل (الاسم القديم ل PyPi) API.

مقتطفات من الويكي:

>>> import xmlrpclib
>>> server = xmlrpclib.Server('http://pypi.python.org/pypi')
>>> server.package_releases('roundup')
['1.1.2']
>>> server.package_urls('roundup', '1.1.2')
[{'has_sig': True, 'comment_text': '', 'python_version': 'source', 'url': 'http://pypi.python.org/packages/source/r/roundup/roundup-1.1.2.tar.gz', 'md5_digest': '7c395da56412e263d7600fa7f0afa2e5', 'downloads': 2989, 'filename': 'roundup-1.1.2.tar.gz', 'packagetype': 'sdist', 'size': 876455}, {'has_sig': True, 'comment_text': '', 'python_version': 'any', 'url': 'http://pypi.python.org/packages/any/r/roundup/roundup-1.1.2.win32.exe', 'md5_digest': '983d565b0b87f83f1b6460e54554a845', 'downloads': 2020, 'filename': 'roundup-1.1.2.win32.exe', 'packagetype': 'bdist_wininst', 'size': 614270}]

list_packages و package_releases يبدو أن يكون بالضبط ما كنت أبحث عنه.

@روني تعليق

عليك فقط كتابة بعض التعليمات البرمجية في بيثون لتحديد أي من المدرجة حزم تفي بالمعيار ؛ أيإذا كان اسم حزمة يجب أن تبدأ مع foo:

>>> packages = server.list_packages()
>>> match_foo = [package for package in packages if package.startswith('foo')]
>>> print len(match_foo)
2

نحن ذاهبون إلى إطلاق سراح distutils2 إلى PyPI في المدى القصير في المستقبل.أنه يحتوي على distutils2.pypi وحدة الذي يتيح لك البحث PyPI من كود بايثون و pysetup البرنامج الذي سطر أوامر البرنامج النصي أن تفعل الشيء نفسه (من بين آخرين).الطبيب لا يزال التقدم في العمل ، ولكن هناك بعض الأمثلة API المرجعية:

في buildout الوصول pypi أنا دبوس الإصدارات مثل هذا:

والمنتجات.PloneFormGen==1.2.5

ومن هنا يبحث عن الإصدار 1.2.5 وهو يستخدم هذا..

لا أعرف إذا كان هذا هو ما ش تبحث عن...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top