Bases: Expression
Class for unknown function calls.
Attributes:
| Name |
Type |
Description |
call |
Call | None
|
|
inferred_def |
FunctionDef | None
|
The inferred function definition for the call if it is known.
|
name |
str
|
|
Source code in src/library_analyzer/processing/api/purity_analysis/model/_purity.py
| @dataclass
class UnknownFunctionCall(Expression):
"""Class for unknown function calls.
Attributes
----------
call :
The call node.
inferred_def :
The inferred function definition for the call if it is known.
name :
The name of the call.
"""
call: astroid.Call | None = None
inferred_def: astroid.FunctionDef | None = None
name: str = field(init=False)
def __post_init__(self) -> None:
if self.inferred_def is not None:
self.name = f"{self.inferred_def.root().name}.{self.inferred_def.name}"
elif self.call is None:
self.name = "UNKNOWN"
elif isinstance(self.call, MemberAccessValue):
self.name = self.call.name
elif isinstance(self.call.func, astroid.Attribute):
self.name = self.call.func.attrname
elif isinstance(self.call.func, astroid.Name):
self.name = self.call.func.name
else:
self.name = "UNKNOWN"
def __str__(self) -> str:
return f"{self.__class__.__name__}.{self.name}"
|
call: astroid.Call | None = None
class-attribute
instance-attribute
inferred_def: astroid.FunctionDef | None = None
class-attribute
instance-attribute
name: str = field(init=False)
class-attribute
instance-attribute
__init__(call=None, inferred_def=None)
__post_init__()
Source code in src/library_analyzer/processing/api/purity_analysis/model/_purity.py
| def __post_init__(self) -> None:
if self.inferred_def is not None:
self.name = f"{self.inferred_def.root().name}.{self.inferred_def.name}"
elif self.call is None:
self.name = "UNKNOWN"
elif isinstance(self.call, MemberAccessValue):
self.name = self.call.name
elif isinstance(self.call.func, astroid.Attribute):
self.name = self.call.func.attrname
elif isinstance(self.call.func, astroid.Name):
self.name = self.call.func.name
else:
self.name = "UNKNOWN"
|
__str__()
Source code in src/library_analyzer/processing/api/purity_analysis/model/_purity.py
| def __str__(self) -> str:
return f"{self.__class__.__name__}.{self.name}"
|