CodeQL for Python ================= Experiment and learn how to write effective and efficient queries for CodeQL databases generated from Python codebases. .. toctree:: :hidden: introduce-libraries-python functions statements-expressions pointsto-type-infer control-flow taint-tracking - `Basic Python query `__ : Learn to write and run a simple CodeQL query using LGTM. - :doc:`CodeQL library for Python `: When you need to analyze a Python program, you can make use of the large collection of classes in the CodeQL library for Python. - :doc:`Functions in Python `: You can use syntactic classes from the standard CodeQL library to find Python functions and identify calls to them. - :doc:`Expressions and statements in Python `: You can use syntactic classes from the CodeQL library to explore how Python expressions and statements are used in a codebase. - :doc:`Analyzing control flow in Python `: You can write CodeQL queries to explore the control-flow graph of a Python program, for example, to discover unreachable code or mutually exclusive blocks of code. - :doc:`Pointer analysis and type inference in Python `: At runtime, each Python expression has a value with an associated type. You can learn how an expression behaves at runtime by using type-inference classes from the standard CodeQL library. - :doc:`Analyzing data flow and tracking tainted data in Python `: You can use CodeQL to track the flow of data through a Python program. Tracking user-controlled, or tainted, data is a key technique for security researchers. Further reading --------------- - For examples of how to query common Python elements, see the `JavaScript cookbook `__. - For the queries used in LGTM, display a `Python query `__ and click **Open in query console** to see the code used to find alerts. - For more information about the library for JavaScript see the `CodeQL library for Python `__.