
Официальный репозиторий 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) и пр.
Код проекта здесь 👈🏻