def __call__(self, argument: Any, /) -> Any:
    """Abstract call method for a layer.

    Layers are submodels that take a single input and produce a single output.
    By convention, almost all model components in a Penzai model are instances
    of Layer, making it possible to easily compose them with other layers and
    wrappers. If a layer needs to take multiple input arrays, its input can be
    a nested data structure.

    Most subclasses of Layer are encouraged to decorate ``__call__`` with
    `checked_layer_call`, which runs automatic shape checking and adds
    name scopes to aid debugging.

    Args:
      argument: An input value, or possibly a nested structure. Should be passed
        positionally by any caller; caller should not assume this is called
        "argument" exactly. Subclasses of Layer are free to rename this.

    Returns:
      An output value, or possibly a nested structure.
    """
    raise NotImplementedError(
        "__call__ must be overridden for Layer subclasses"
    )
Abstract call method for a layer.

    Layers are submodels that take a single input and produce a single output.
    By convention, almost all model components in a Penzai model are instances
    of Layer, making it possible to easily compose them with other layers and
    wrappers. If a layer needs to take multiple input arrays, its input can be
    a nested data structure.

    Most subclasses of Layer are encouraged to decorate ``__call__`` with
    `checked_layer_call`, which runs automatic shape checking and adds
    name scopes to aid debugging.

    Args:
      argument: An input value, or possibly a nested structure. Should be passed
        positionally by any caller; caller should not assume this is called
        "argument" exactly. Subclasses of Layer are free to rename this.

    Returns:
      An output value, or possibly a nested structure.
    
penzai/deprecated/v1/core/layer.py