For every class/function definition we're maintaining a fully qualified namespace including filename, eg.
codebase/path/to/file.py//ClassName//MemberFunctionName
This should facilitate combining the graphs of multiple files declaratively.
Some challenges we need to solve in order to achieve this -
-
Resolve file path from module name Javascript imports Python imports
-
Correctly associating assignment graphs
While building callgraph for file abc.py, we may not already have information about one of its imported files - pqr.py . Hence, entire relationship needs to be built after all files are parsed. It is a bit tricky to associate the relationships as a post-processing step with minimal information
-
Decide when to accumulate results
We can either combine results of all files or accumulate all graphs as we process (this can pose concurrency issues)
For every class/function definition we're maintaining a fully qualified namespace including filename, eg.
This should facilitate combining the graphs of multiple files declaratively.
Some challenges we need to solve in order to achieve this -
Resolve file path from module name Javascript imports Python imports
Correctly associating assignment graphs
While building callgraph for file
abc.py, we may not already have information about one of its imported files -pqr.py. Hence, entire relationship needs to be built after all files are parsed. It is a bit tricky to associate the relationships as a post-processing step with minimal informationDecide when to accumulate results
We can either combine results of all files or accumulate all graphs as we process (this can pose concurrency issues)