Skip to content
Snippets Groups Projects
Commit 9d3cc8d5 authored by Frederik Hennig's avatar Frederik Hennig
Browse files

Doc comments for CFunction

parent b80a4c7c
No related branches found
No related tags found
2 merge requests!378Customizability Extensions: CFunction Signatures and Code Literals,!374Uniqueness of Data Type Instances
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment