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