
El repositorio oficial de PyPI hace tiempo que se convirtió en un vertedero donde se tira de todo: desde frameworks listos para producción hasta trampas para Among Us y paquetes de prueba de escolares.
Un entusiasta no perezoso y visualizó todo este ecosistema en forma de grafo.
Cómo se hizo técnicamente:
1️⃣ A través de BigQuery se descargaron los metadatos de todos los paquetes.
2️⃣ Luego el conjunto de datos se pasó por filtros. Se descartó la basura evidente sin campos completados y los paquetes con menos de dos dependencias. Quedaron alrededor de 100 000 nodos.
3️⃣ Se dibujó todo mediante el algoritmo de minimización de energía Force Atlas 2 (algoritmo de diseño de grafos por fuerzas).
Qué mostró la visualización:
▫️ Clústeres semánticos. Los paquetes no están en el vacío. Alrededor de
numpy se agrupan como era de esperar scikit-learn, seaborn y tensorflow. Hay zonas claramente definidas de criptografía o desarrollo web.▫️ Anomalías y copia-pega. El grafo resalta muy bien la basura. Se encontraron clústeres enteros de paquetes generados a partir de una misma plantilla (por ejemplo, cientos de variaciones de
python-smshub-org). Una herramienta ideal para la búsqueda automática de malware.▫️ Monopolios corporativos. Visualmente es fácil evaluar el vendor lock-in. Se ven grandes "nidos corporativos": Odoo (más de 3000 paquetes hijos), Triton (>300), Airbyte (320), PyObjC (167), etc.
El código del proyecto aquí 👈🏻
Comentarios
0Aún no hay comentarios.