add name to custom var operation

This commit is contained in:
Khaleel Al-Adhami 2024-10-15 12:54:08 -07:00
parent 270b227bc5
commit 2aa02d81c4

View File

@ -1498,6 +1498,7 @@ def var_operation(
} }
return CustomVarOperation.create( return CustomVarOperation.create(
name=func.__name__,
args=tuple(list(args_vars.items()) + list(kwargs_vars.items())), args=tuple(list(args_vars.items()) + list(kwargs_vars.items())),
return_var=func(*args_vars.values(), **kwargs_vars), # type: ignore return_var=func(*args_vars.values(), **kwargs_vars), # type: ignore
).guess_type() ).guess_type()
@ -2320,6 +2321,8 @@ def var_operation_return(
class CustomVarOperation(CachedVarOperation, Var[T]): class CustomVarOperation(CachedVarOperation, Var[T]):
"""Base class for custom var operations.""" """Base class for custom var operations."""
_name: str = dataclasses.field(default="")
_args: Tuple[Tuple[str, Var], ...] = dataclasses.field(default_factory=tuple) _args: Tuple[Tuple[str, Var], ...] = dataclasses.field(default_factory=tuple)
_return: CustomVarOperationReturn[T] = dataclasses.field( _return: CustomVarOperationReturn[T] = dataclasses.field(
@ -2354,6 +2357,7 @@ class CustomVarOperation(CachedVarOperation, Var[T]):
@classmethod @classmethod
def create( def create(
cls, cls,
name: str,
args: Tuple[Tuple[str, Var], ...], args: Tuple[Tuple[str, Var], ...],
return_var: CustomVarOperationReturn[T], return_var: CustomVarOperationReturn[T],
_var_data: VarData | None = None, _var_data: VarData | None = None,
@ -2361,6 +2365,7 @@ class CustomVarOperation(CachedVarOperation, Var[T]):
"""Create a CustomVarOperation. """Create a CustomVarOperation.
Args: Args:
name: The name of the operation.
args: The arguments to the operation. args: The arguments to the operation.
return_var: The return var. return_var: The return var.
_var_data: Additional hooks and imports associated with the Var. _var_data: Additional hooks and imports associated with the Var.
@ -2372,6 +2377,7 @@ class CustomVarOperation(CachedVarOperation, Var[T]):
_js_expr="", _js_expr="",
_var_type=return_var._var_type, _var_type=return_var._var_type,
_var_data=_var_data, _var_data=_var_data,
_name=name,
_args=args, _args=args,
_return=return_var, _return=return_var,
) )