from __future__ import annotations

from typing import Any

import numpy.typing as npt
from paddle import Tensor

def data(name: Any, shape: Any, dtype: Any | None = ..., lod_level: int = ...): ...

class InputSpec:
    shape: Any = ...
    dtype: Any = ...
    name: Any = ...
    def __init__(self, shape: Any, dtype: str = ..., name: str | None = ..., stop_gradient: bool = ...) -> None: ...
    @classmethod
    def from_tensor(cls, tensor: Tensor, name: str | None = ...) -> InputSpec: ...
    @classmethod
    def from_numpy(cls, ndarray: npt.NDArray[Any], name: str | None = ...) -> InputSpec: ...
    def batch(self, batch_size: Any): ...
    def unbatch(self): ...
    def __hash__(self) -> Any: ...
    def __eq__(self, other: object) -> Any: ...
    def __ne__(self, other: object) -> Any: ...
