package documentation

Scalpel is a Python library integrating classical program anaysis algorithms with tailored features for Python language. It aims to provide simple and efficient solutions to software engineering researchers that are accessible to everybody and reusable in various contexts. For more information, please see Scalpel: [The Python Static Analysis Framework](https://github.com/SMAT-Lab/Scalpel)

Package call_graph A call graph depicts calling relationships between subroutines in a computer program. It is an essential component in most static analysis and can be leveraged to build more sophisicated applications such as profiling, vunerability propagation and refactoring.
Package cfg The control-flow graph(CFG) is an essential component in static flow analysis with applications such as program optimization and taint analysis. scalpel.cfg module is used to construct the control flow graph for given python programs...
Package core This module provides some of the core utilities of the Scalpel framework. This includes Visitor functions for classes, function definitions and calls, as well as other visitor utilities. This module also provides an interface for MNode class...
Module duc This module implements a DUC class for define-use chain construction.
Module file_system FileSystem module for Scalpel. The original import graph will be removed while the similar functionalities are implemented in this module. The purpose of this component is to support modelling large Python project structure in a simplified way...
Package import_graph scalpel.import_graph is data structure for contructing an import graph of a python project. An import graph represents the dependency relationship of module files in the given project. This information can be important to understand the import flow, hierarchy, encapsulation as well as software architecture...
Module rewriter The objective of rewriting module of Scalpel is to provide APIs that allow users to rewrite their code implementation. This can be used for various purposes such as code desugaring (removing code sugar usages), testing and code instrumentation...
Package SSA Static Single Assignment (SSA) is a technique of IR in the compiling thoery, it also shows great benefits to static anaysis tasks such as constant propagation, dead code elimination and etc. Constant propagation is also a matured technique in static anaysis...
Package typeinfer scalpel.typeinfer is provided for automatic type inference to facilitate static analysis for Python programs. The analyser takes a python file or the root folder of a whole package as input, and will output a dictionary of detailed type information for each variable...
Module util The module provides utility functions such as finding all the files with specified flag (i.e., py files) and checking python extensions.

From __init__.py:

Variable __version__ Undocumented
__version__: str = (source)

Undocumented