Release notes - SonarPython - 4.24
Bug
SONARPY-2209 Avoid duplicating re-exported stub symbols when deserializing stubs
SONARPY-2216 Type of aliased ImportFrom is not propagated
SONARPY-2249 Fix descriptor to symbol conversion when an ambiguous descriptor has multiple candidates having the same fully qualified name
SONARPY-2276 Fix FP on S930 when an object method assigned to a variable
New Feature
SONARPY-2201 Introduce a type checker to check a type full name
SONARPY-2203 Migrate S2201 IgnoredPureOperationsCheck to the new type model
SONARPY-2204 Migrate S5795 IdentityComparisonWithCachedTypesCheck to the new type model
SONARPY-2207 Migrate S6740 PandasReadNoDataTypeCheck to the new type model
Sub-task
SONARPY-2256 Resolve fully qualified names for class members descriptors
False Positive
SONARPY-2229 Fix FP on S2201 when instantiating the result of a "type" call
SONARPY-2255 Aliased class types shouldn't create FPs on S5756
SONARPY-2284 Fix FP on S2638 when an imported class has a decorator on a function that is overriden in sub classes.
Task
SONARPY-1772 Represent decorators in FunctionType
SONARPY-2194 Prevent the creation of ObjectType[UnknownType] when converting VariableDescriptor
SONARPY-2199 Remove usage of V1 types in V2 type inference visitor
SONARPY-2200 Rename LazyType#fullyQualifiedName to LazyType#importPath
SONARPY-2296 Fix quality issues: ensure calls to Name#symbolV2 are checked for null
SONARPY-2326 Add Version 3.13 as supported version of Python
SONARPY-2336 Ensure ClassDescriptor and FunctionDescriptor fullyQualifiedName are not nullable
SONARPY-2340 Add tests for Python 3.13 showing error-free parsing
SONARPY-2355 Update license to SONAR Source-Available License v1.0 (SSALv1)
Improvement
SONARPY-2110 Make the ProjectLevelSymbolTable return the Descriptor model instead of the v1 Symbol model
SONARPY-2111 Implement the creation of Descriptor models out of a file's SymbolV2 / PythonType state map
SONARPY-2187 Extract the SymbolV2 / PythonType state map at the end of a module execution
SONARPY-2188 Introduce the concept of UnresolvedImportType
SONARPY-2189 Represent Django views in the updated project level symbol table
SONARPY-2191 Integrate class definition statements in the Python CFG
SONARPY-2192 Extract the SymbolV2 / PythonType state map in presence of try/except
SONARPY-2215 Extract the SymbolV2 / PythonType state map when the cfg is null
SONARPY-2250 Need to resolve a type when it is pointing to nested class