Skip to content

UnknownClassInit

Bases: Expression

Class for unknown class initializations.

Attributes:

Name Type Description
call Call

The call node.

inferred_def ClassDef | None

The inferred class definition for the call if it is known.

name str

The name of the call.

Source code in src/library_analyzer/processing/api/purity_analysis/model/_purity.py
@dataclass
class UnknownClassInit(Expression):
    """Class for unknown class initializations.

    Attributes
    ----------
    call :
        The call node.
    inferred_def :
        The inferred class definition for the call if it is known.
    name :
        The name of the call.
    """

    call: astroid.Call
    inferred_def: astroid.ClassDef | 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 isinstance(self.call.func, astroid.Attribute):
            self.name = self.call.func.attrname
        else:
            self.name = self.call.func.name

    def __str__(self) -> str:
        return f"{self.__class__.__name__}.{self.name}"

call: astroid.Call instance-attribute

inferred_def: astroid.ClassDef | None = None class-attribute instance-attribute

name: str = field(init=False) class-attribute instance-attribute

__init__(call, 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 isinstance(self.call.func, astroid.Attribute):
        self.name = self.call.func.attrname
    else:
        self.name = self.call.func.name

__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}"