Skip to content

Function

Source code in src/library_analyzer/processing/api/model/_api.py
@dataclass(frozen=True)
class Function:
    id: str
    qname: str
    decorators: list[str]
    parameters: list[Parameter]
    results: list[Result]
    is_public: bool
    reexported_by: list[str]
    docstring: FunctionDocstring
    code: str

    @staticmethod
    def from_dict(d: dict[str, Any]) -> Function:
        return Function(
            d["id"],
            d["qname"],
            d.get("decorators", []),
            [Parameter.from_dict(parameter_json) for parameter_json in d.get("parameters", [])],
            [Result.from_dict(result_json) for result_json in d.get("results", [])],
            d.get("is_public", True),
            d.get("reexported_by", []),
            FunctionDocstring(description=d.get("description", "")),
            d.get("code", ""),
        )

    @property
    def name(self) -> str:
        return self.qname.rsplit(".", maxsplit=1)[-1]

    def to_dict(self) -> dict[str, Any]:
        return {
            "id": self.id,
            "name": self.name,
            "qname": self.qname,
            "decorators": self.decorators,
            "parameters": [parameter.to_dict() for parameter in self.parameters],
            "results": [result.to_dict() for result in self.results],
            "is_public": self.is_public,
            "reexported_by": self.reexported_by,
            "description": self.docstring.description,
            "code": self.code,
        }

    def get_formatted_code(self, *, cut_documentation: bool = False) -> str:
        formatted_code = _generate_formatted_code(self)
        if cut_documentation:
            formatted_code = _cut_documentation_from_code(formatted_code, self)
        return formatted_code

code: str instance-attribute

decorators: list[str] instance-attribute

docstring: FunctionDocstring instance-attribute

id: str instance-attribute

is_public: bool instance-attribute

name: str property

parameters: list[Parameter] instance-attribute

qname: str instance-attribute

reexported_by: list[str] instance-attribute

results: list[Result] instance-attribute

__init__(id, qname, decorators, parameters, results, is_public, reexported_by, docstring, code)

from_dict(d) staticmethod

Source code in src/library_analyzer/processing/api/model/_api.py
@staticmethod
def from_dict(d: dict[str, Any]) -> Function:
    return Function(
        d["id"],
        d["qname"],
        d.get("decorators", []),
        [Parameter.from_dict(parameter_json) for parameter_json in d.get("parameters", [])],
        [Result.from_dict(result_json) for result_json in d.get("results", [])],
        d.get("is_public", True),
        d.get("reexported_by", []),
        FunctionDocstring(description=d.get("description", "")),
        d.get("code", ""),
    )

get_formatted_code(*, cut_documentation=False)

Source code in src/library_analyzer/processing/api/model/_api.py
def get_formatted_code(self, *, cut_documentation: bool = False) -> str:
    formatted_code = _generate_formatted_code(self)
    if cut_documentation:
        formatted_code = _cut_documentation_from_code(formatted_code, self)
    return formatted_code

to_dict()

Source code in src/library_analyzer/processing/api/model/_api.py
def to_dict(self) -> dict[str, Any]:
    return {
        "id": self.id,
        "name": self.name,
        "qname": self.qname,
        "decorators": self.decorators,
        "parameters": [parameter.to_dict() for parameter in self.parameters],
        "results": [result.to_dict() for result in self.results],
        "is_public": self.is_public,
        "reexported_by": self.reexported_by,
        "description": self.docstring.description,
        "code": self.code,
    }