"""Module for NumPy."""
from jumpy.numpy import linalg
from jumpy.numpy._factory_fns import (
    arange,
    array,
    atleast_1d,
    atleast_2d,
    atleast_3d,
    eye,
    linspace,
    meshgrid,
    ones,
    ones_like,
    reshape,
    zeros,
    zeros_like,
)
from jumpy.numpy._transform_data import (
    abs,
    all,
    amax,
    amin,
    any,
    arccos,
    arcsin,
    arctan2,
    arctanh,
    argmax,
    argmin,
    clip,
    concatenate,
    cos,
    cross,
    diag,
    dot,
    exp,
    expand_dims,
    floor,
    logical_and,
    logical_not,
    logical_or,
    matmul,
    maximum,
    mean,
    minimum,
    multiply,
    outer,
    repeat,
    roll,
    safe_arccos,
    safe_arcsin,
    sign,
    sin,
    sqrt,
    square,
    stack,
    sum,
    take,
    tanh,
    tile,
    var,
    where,
)
from jumpy.numpy._types import dtype, float32, inf, int32, ndarray, pi, uint8

__all__ = [
    # === primitives ===
    "dtype",
    "pi",
    "inf",
    "float32",
    "int32",
    "ndarray",
    "uint8",
    # === sub-modules ===
    "linalg",
    # === create data functions ===
    "array",
    "arange",
    "atleast_1d",
    "atleast_2d",
    "atleast_3d",
    "eye",
    "linspace",
    "meshgrid",
    "ones",
    "ones_like",
    "reshape",
    "zeros",
    "zeros_like",
    # === manipulation data functions ===
    "abs",
    "all",
    "amax",
    "amin",
    "any",
    "arccos",
    "arcsin",
    "arctan2",
    "arctanh",
    "argmax",
    "argmin",
    "clip",
    "concatenate",
    "cos",
    "cross",
    "diag",
    "dot",
    "exp",
    "expand_dims",
    "floor",
    "logical_and",
    "logical_not",
    "logical_or",
    "matmul",
    "maximum",
    "mean",
    "minimum",
    "multiply",
    "outer",
    "repeat",
    "roll",
    "safe_arccos",
    "safe_arcsin",
    "sign",
    "sin",
    "sqrt",
    "square",
    "stack",
    "sum",
    "take",
    "tanh",
    "tile",
    "var",
    "where",
]
