Легче собирать метаданные пакета из экосистемы пакетов PyPI, если знать правильный путь.


Кредиты изображений:

Вы можете проверить мой профиль здесь на среде.

В 2019 году я работал над проектом, который помог мне понять, как работает экосистема PyPI. Было много проблем, с которыми я столкнулся. Я пишу эту статью, которая может помочь кому-то в сборе метаданных, связанных с пакетом (отдельный пакет или что-то другое).

Общие метаданные

Первое место для поиска информации о пакете это JSON-API PyPI. Используя это, можно получить все метаданные, связанные с пакетом, за несколько простых шагов.

GET /pypi/<project_name>/json

Дает информацию о пакете. Вы можете заменить <имя_проекта> тег с соответствующим именем проекта PyPI. Например, если вы хотите собрать метаданные пакета пустышка (один из самых загружаемых пакетов на PyPI), вы можете сделать чтобы получить данные в json формат для соответствующего пакета. Если вы используете python, вы можете сделать это, просто используя Запросы упаковка:

import requests
import json
url = “
r = requests.get(url + “your_project” + “/json”).json()

Не забудьте добавить классику try and except обработка ошибок для сбора ошибок или неверных запросов, если таковые имеются.

Количество загрузок

Получение количества загрузок конкретного пакета сложнее, чем получение только метаданных. PyPI JSON API не предоставляет эту информацию (по крайней мере, на момент написания этой статьи). По этому адресу есть статья (python.org), который я проверил прежде всего. Но, есть ещё простой способ. Проверьте этот проект (это один из моих любимых, так как он также дает общее количество загрузок для пакета), который имеет действительно классный веб-интерфейс, и вы можете легко получить нужную информацию, написав быстрый скрипт, используя красивыйсуп или все, что вы хотели бы. Например, вы можете получить количество загрузок вашего любимого пакета, используя https://pepy.tech/project/имя-пакета. Есть также некоторые другие доступные проекты, что-то вроде это.


Список пакетов с наибольшим номером. загрузок — данные извлеченные мной для проекта

Список всех доступных версий пакетов для загрузки

Теперь, используя приведенную выше информацию, можно легко получить все метаданные, связанные с пакетом. Что делать, если кто-то хочет загрузить определенную версию определенного пакета и ему нужен список всех доступных версий. Они, безусловно, могут сделать это, перейдя на PyPI (например, панды ) веб-сайт и поиск определенного пакета. Но тогда они должны выбрать конкретную версию, а затем проверить наличие доступных загрузок. Что, если им нужен список загруженных пакетов для всех версий/дистрибутивов? Есть гораздо более простой, но выдающийся способ сделать это. Простой репозиторий PyPI — это репозиторий, содержащий все загружаемые версии, доступные для всех пакетов в экосистеме PyPI. Например, можно загрузить определенную версию пакета urllib3 на https://pypi.org/simple/urllib3/.

Список всех пакетов

Можно получить список всех доступных пакетов в экосистеме PyPI, выполнив что-то вроде (в python):

import xmlrpc.client as xc
# ‘packages’ contains a list of names of all the available packages # on PyPI
packages = client.list_packages()

Вывод

Сбор и анализ метаданных пакета может быть полезен для получения подробной информации о конкретном пакете. Это можно использовать для определения популярности конкретного пакета (или вообще, что, черт возьми, происходит). Более глубокий анализ экосистемы можно также провести, углубившись в репозиторий пакетов, чтобы получить интересную информацию.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *