Добавить в корзинуПозвонить
Найти в Дзене
PythonTalk

A Map of Python: интерактивный граф пакетов

🌍 Официальный репозиторий PyPI давно превратился в помойку, куда тащат всё подряд: от production-ready фреймворков до читов на Among Us и тестовых пакетов школьников. Один энтузиаст не поленился и визуализировал всю эту экосистему в виде графа. Как это сделано технически: 1️⃣ Через BigQuery были выгружены метаданные всех пакетов. 2️⃣ Дальше датасет прогнали через фильтры. Выкинули откровенный мусор без заполненных полей и пакеты, у которых меньше двух зависимостей. Осталось около 100 000 узлов. 3️⃣ Отрисовали всё это через алгоритм минимизации энергии Force Atlas 2 (силовой алгоритм компоновки графов). Что показала визуализация: ▫️ Семантические кластеры. Пакеты не висят в вакууме. Вокруг numpy ожидаемо кучкуются scikit-learn, seaborn и tensorflow. Есть четко выраженные зоны криптографии или веб-разработки. ▫️ Аномалии и копипаста. Граф отлично подсвечивает мусор. Нашлись целые кластеры пакетов, сгенерированных из одного шаблона (например, сотни вариаций python-smshub-org). Идеаль

A Map of Python: интерактивный граф пакетов 🌍

Официальный репозиторий PyPI давно превратился в помойку, куда тащат всё подряд: от production-ready фреймворков до читов на Among Us и тестовых пакетов школьников.

Один энтузиаст не поленился и визуализировал всю эту экосистему в виде графа.

Как это сделано технически:

1️⃣ Через BigQuery были выгружены метаданные всех пакетов.

2️⃣ Дальше датасет прогнали через фильтры. Выкинули откровенный мусор без заполненных полей и пакеты, у которых меньше двух зависимостей. Осталось около 100 000 узлов.

3️⃣ Отрисовали всё это через алгоритм минимизации энергии Force Atlas 2 (силовой алгоритм компоновки графов).

Что показала визуализация:

▫️ Семантические кластеры. Пакеты не висят в вакууме. Вокруг numpy ожидаемо кучкуются scikit-learn, seaborn и tensorflow. Есть четко выраженные зоны криптографии или веб-разработки.

▫️ Аномалии и копипаста. Граф отлично подсвечивает мусор. Нашлись целые кластеры пакетов, сгенерированных из одного шаблона (например, сотни вариаций python-smshub-org). Идеальный инструмент для автоматического поиска малвари.

▫️ Корпоративные монополии. Визуально легко оценить вендор-лок. Видны крупные "корпоративные гнезда": Odoo (более 3000 дочерних пакетов), Triton (>300), Airbyte (320), PyObjC (167) и пр.

Код проекта здесь 👈🏻