O repositório oficial PyPI há muito se transformou em um lixão, onde se coloca de tudo: desde frameworks prontos para produção até cheats para Among Us e pacotes de teste de estudantes.

Um entusiasta não teve preguiça e visualizou todo esse ecossistema na forma de um grafo.

Como foi feito tecnicamente:
1️⃣ Através do BigQuery, foram extraídos os metadados de todos os pacotes.
2️⃣ Em seguida, o conjunto de dados foi passado por filtros. Jogamos fora o lixo óbvio sem campos preenchidos e pacotes com menos de duas dependências. Restaram cerca de 100.000 nós.
3️⃣ Tudo foi renderizado usando o algoritmo de minimização de energia Force Atlas 2 (algoritmo de layout de força para grafos).

O que a visualização mostrou:
▫️ Clusters semânticos. Os pacotes não estão no vácuo. Em torno do numpy, agrupam-se previsivelmente scikit-learn, seaborn e tensorflow. Existem zonas claramente definidas de criptografia ou desenvolvimento web.
▫️ Anomalias e cópia. O grafo destaca perfeitamente o lixo. Foram encontrados clusters inteiros de pacotes gerados a partir de um único modelo (por exemplo, centenas de variações de python-smshub-org). Uma ferramenta ideal para busca automática de malware.
▫️ Monopólios corporativos. Visualmente, é fácil avaliar o vendor lock-in. São visíveis grandes "ninhos corporativos": Odoo (mais de 3000 pacotes derivados), Triton (>300), Airbyte (320), PyObjC (167) etc.

O código do projeto está aqui 👈🏻