Sobre el proyecto

PyFlow es un framework de análisis de programas en fase alfa para Python, diseñado como un kit de herramientas de investigación que combina infraestructura de análisis de programas, pasos de optimización experimentales y verificación de seguridad. Proporciona una amplia gama de representaciones intermedias (CFG, CDG, DDG, PDG, CPG, IR de flujo de datos reducido y un modelo de grafo de almacenamiento compartido) y admite múltiples técnicas de análisis, incluida la construcción de grafos de llamadas, IFDS, alias, IPA, CPA, forma, vida útil y análisis de tipos. El framework incluye un pipeline de optimización modular con pasos como simplificación, optimización de llamadas a métodos, clonación, normalización de argumentos y eliminación de carga/almacenamiento. Para seguridad, ofrece motores de análisis de seguridad basados en coincidencia de patrones AST, flujo de datos basado en AST, basado en CPG y respaldado por IFDS. También incluye capacidades de análisis de cadena de suministro para generación local de SBOM, auditoría de integridad de distribución y extracción de metadatos de dependencias. PyFlow se distribuye con una CLI que admite comandos para volcado de IR, generación de grafos de llamadas, análisis de seguridad, análisis de alias, generación de entradas de prueba concolicas y operaciones de cadena de suministro. También proporciona modos de servidor LSP y MCP para integración con IDE y consultas semánticas. El proyecto incluye resultados de evaluación en el microbenchmark PySASTBench, mostrando métricas de precisión/recuerdo para sus motores de seguridad. La instalación requiere Python 3.10+ y Graphviz para visualización. Se puede instalar desde el código fuente mediante pip, con extras opcionales para desarrollo y algoritmos de grafos de llamadas respaldados por PyCG. El proyecto incluye suites de pruebas unitarias y de integración que cubren componentes de IR, frontend, API y verificadores.