
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 👈🏻
Comentários
0Ainda não há comentários.