Package org.sonar.python.semantic
Class ProjectLevelSymbolTable
java.lang.Object
org.sonar.python.semantic.ProjectLevelSymbolTable
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddModule(FileInput fileInput, String packageName, PythonFile pythonFile) voidaddProjectPackage(String projectPackage) descriptorsForModule(String moduleName) static ProjectLevelSymbolTableempty()static ProjectLevelSymbolTablefrom(Map<String, Set<Descriptor>> globalDescriptorsByModuleName) getDescriptorsFromModule(String moduleName) getDjangoViewInfo(String fqn) getSymbol(String fullyQualifiedName, String localSymbolName, Map<Descriptor, Symbol> createdSymbolsByDescriptor, Map<String, Symbol> createdSymbolsByFqn) getSymbolsFromModule(String moduleName) booleanhasModuleWithPrefix(String prefix) Checks if any registered module name starts with the given prefix followed by a dot.voidinsertEntry(String moduleName, Set<Descriptor> descriptors) booleanisDjangoView(String fqn) voidremoveModule(String packageName, String fileName) Returns stub symbols to be used by SonarSecurity.
-
Method Details
-
empty
-
from
public static ProjectLevelSymbolTable from(Map<String, Set<Descriptor>> globalDescriptorsByModuleName) -
removeModule
-
addModule
-
getSymbol
-
getSymbol
-
getSymbol
-
getSymbolsFromModule
-
getDescriptorsFromModule
-
importsByModule
-
insertEntry
-
descriptorsForModule
-
isDjangoView
-
getDjangoViewInfo
-
addProjectPackage
-
projectBasePackages
-
hasModuleWithPrefix
Checks if any registered module name starts with the given prefix followed by a dot. This is used to detect namespace packages (PEP 420) - packages without __init__.py that contain subpackages.- Parameters:
prefix- The module prefix to check (e.g., "acme")- Returns:
- true if any module starts with "prefix." (e.g., "acme.math" exists)
-
typeShedDescriptorsProvider
-
stubFilesSymbols
Returns stub symbols to be used by SonarSecurity. Ambiguous symbols that only contain class symbols are disambiguated with latest Python version.
-