def standard_t(
    df: float,
    size: NdShapeLike | None = None,
    dtype: npt.DTypeLike = np.float64,
) -> ndarray:
    """
    standard_t(df, size=None)

    Draw samples from a standard Student's t distribution with `df` degrees
    of freedom.

    A special case of the hyperbolic distribution.  As `df` gets
    large, the result resembles that of the standard normal
    distribution (`standard_normal`).

    Parameters
    ----------
    df : float
        Degrees of freedom, must be > 0.
    size : int or tuple of ints, optional
        Output shape.  If the given shape is, e.g., ``(m, n, k)``, then
        ``m * n * k`` samples are drawn.  Default is None, in which case a
        single value is returned.

    Returns
    -------
    out : ndarray or scalar
        Drawn samples from the parameterized standard Student's t distribution.

    See Also
    --------
    numpy.random.standard_t

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    """
    return get_static_generator().standard_t(df, size, dtype)

    standard_t(df, size=None)

    Draw samples from a standard Student's t distribution with `df` degrees
    of freedom.

    A special case of the hyperbolic distribution.  As `df` gets
    large, the result resembles that of the standard normal
    distribution (`standard_normal`).

    Parameters
    ----------
    df : float
        Degrees of freedom, must be > 0.
    size : int or tuple of ints, optional
        Output shape.  If the given shape is, e.g., ``(m, n, k)``, then
        ``m * n * k`` samples are drawn.  Default is None, in which case a
        single value is returned.

    Returns
    -------
    out : ndarray or scalar
        Drawn samples from the parameterized standard Student's t distribution.

    See Also
    --------
    numpy.random.standard_t

    Availability
    --------
    Multiple GPUs, Multiple CPUs
    
cupynumeric/random/_random.py