ComputationalReflection / PythonSourceCodeAnalysis

Python Source Code Analysis
MIT License
0 stars 0 forks source link

Implementación del visitor principal de extracción de información del AST #5

Open UO284262 opened 9 months ago

UO284262 commented 9 months ago

Se pretende realizar el visitor principal que se encargue de rellenar las entidades con la información necesaria para ser almacenada en la BD

UO284262 commented 9 months ago

Se ha realizado la asignación de IDs a todas las entidades y la asignación de los IDs relativos a otros nodos (parent_id, import_id, etc...) [Hecho a 05-01-2024]

UO284262 commented 9 months ago

Se ha realizado la asignación de tipos a las entidades que lo requieren (Expressions y Statements principalmente), así como la asignación de las _parenttable y los _parenttype cuando son necesarios. [Hecho a 06/01/2024]

UO284262 commented 9 months ago

La estructura del visitor se ha modificado. Se ha aprovechado la implementación de la clase ast.NodeVisitor, que utiliza reflexión para no necesitar de métodos accept() y utilizar el método visit correspondiente a cada nodo AST. Esta implementación se ha modificado y se ha creado un NodeVisitor personalizado para poder pasar un parámetro extra a los métodos visit. [Hecho a 18/01/2024]

UO284262 commented 8 months ago

Se está realizando la implementación de la propagación del visitor a sus hijos, así como el paso de parámetros a los mismos (centrándose en pasar los roles que ocupa cada hijo). Se ha realizado por ahora la propagación de todos los Statements. [Hecho a 26/01/2024]

UO284262 commented 8 months ago

Se ha finalizado la propagación del visitor en las expressions y en los nodos secundarios. [Hecho a 28/01/2024]

UO284262 commented 8 months ago

Se ha realizado el calculo y asignación de los datos relativos a los nodos principales (FunctionDef, AsyncFunctionDef, Module y ClassDef), también se han asociado los datos relativos a los Statements. [Hecho a 07/02/2024]

UO284262 commented 8 months ago

Se ha finalizado con la primera implementación del visitor, a falta de añadir los atributos user_id y expertice_level. [Hecho a 11/02/2024]

UO284262 commented 7 months ago

Se ha desarrollado un sistema preliminar de detección de proyectos, basado en la presencia de archivos python en diferentes niveles de la jerarquía de directorios. [Hecho a 22/02/2024]

UO284262 commented 7 months ago

Se ha probado con éxito el visitor para recoger la información de un programa python trivial. Se ha de modificar el visitor para añadir los cambios relativos a las expresiones lambda y a los hijos de los nodos expression. [Hecho a 23/02/2024]

UO284262 commented 7 months ago

Se ha añadido el tratamiento de los ficheros de alumnos. Se han realizado los cambios pertinentes en las expresiones lambda y en los hijos de los nodos expression. También se ha realizado la detección de source folder para el tratamiento del visit del nodo program. [Hecho a 01/03/24]