From 9d3cc8d5a229d8bf29af90a28a54505fbe5dc286 Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Sun, 21 Apr 2024 16:03:41 +0200 Subject: [PATCH] Doc comments for CFunction --- src/pystencils/backend/functions.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/pystencils/backend/functions.py b/src/pystencils/backend/functions.py index 7a95c4183..28c9788d6 100644 --- a/src/pystencils/backend/functions.py +++ b/src/pystencils/backend/functions.py @@ -72,12 +72,24 @@ class PsFunction(ABC): class CFunction(PsFunction): - """A concrete C function.""" + """A concrete C function. + + Instances of this class represent a C function by its name, parameter types, and return type. + + Args: + name: Function name + param_types: Types of the function parameters + return_type: The function's return type + """ __match_args__ = ("name", "argument_types", "return_type") @staticmethod def parse(obj) -> CFunction: + """Parse the signature of a Python callable object to obtain a CFunction object. + + The callable must be fully annotated with type-like objects convertible by `create_type`. + """ import inspect from pystencils.types import create_type @@ -93,14 +105,14 @@ class CFunction(PsFunction): return CFunction(func_name, arg_types, ret_type) - def __init__(self, name: str, arg_types: Sequence[PsType], return_type: PsType): - super().__init__(name, len(arg_types)) + def __init__(self, name: str, param_types: Sequence[PsType], return_type: PsType): + super().__init__(name, len(param_types)) - self._arg_types = tuple(arg_types) + self._arg_types = tuple(param_types) self._return_type = return_type @property - def argument_types(self) -> tuple[PsType, ...]: + def parameter_types(self) -> tuple[PsType, ...]: return self._arg_types @property -- GitLab