analyze.py - For analyzing Python code
A module of useful functions for analyzing Python code.
- pyminifier.analyze.enumerate_builtins(tokens)[source]
Returns a list of all the builtins being used in tokens.
- pyminifier.analyze.enumerate_dynamic_imports(tokens)[source]
Returns a dictionary of all dynamically imported modules (those inside of classes or functions) in the form of {<func or class name>: [<modules>]}
- Example:
>>> enumerate_dynamic_imports(tokens) {"myfunc": ["zlib", "base64"]}
- pyminifier.analyze.enumerate_global_imports(tokens)[source]
Returns a list of all globally imported modules (skips modules imported inside of classes, methods, or functions). Example:
>>> enumerate_global_imports(tokens) ["sys", "os", "tokenize", "re"]
Note
Does not enumerate imports using the “from” or “as” keywords.
- pyminifier.analyze.enumerate_import_methods(tokens)[source]
Returns a list of imported module methods (such as re.compile) inside tokens.
- pyminifier.analyze.enumerate_imports(tokens)[source]
Iterates over tokens and returns a list of all imported modules.
Note
This ignores imports using the “as” and “from” keywords.
- pyminifier.analyze.enumerate_keyword_args(tokens)[source]
Iterates over tokens and returns a dictionary with function names as the keys and lists of keyword arguments as the values.
- pyminifier.analyze.enumerate_local_modules(tokens, path)[source]
Returns a list of modules inside tokens that are local to path.
Note: Will recursively look inside path for said modules.
- pyminifier.analyze.enumerate_method_calls(tokens, modules)[source]
Returns a list of all object (not module) method calls in the given tokens.
modules is expected to be a list of all global modules imported into the source code we’re working on.
- For example:
>>> enumerate_method_calls(tokens) ["re.compile", "sys.argv", "f.write"]