import sys
import contextlib
from collections.abc import Callable
from typing import Any
import numpy as np
import numpy.typing as npt
from numpy._core.arrayprint import _FormatOptions
if sys.version_info >= (3, 11):
from typing import assert_type
else:
from typing_extensions import assert_type
AR: npt.NDArray[np.int64]
func_float: Callable[[np.floating[Any]], str]
func_int: Callable[[np.integer[Any]], str]
assert_type(np.get_printoptions(), _FormatOptions)
assert_type(
np.array2string(AR, formatter={'float_kind': func_float, 'int_kind': func_int}),
str,
)
assert_type(np.format_float_scientific(1.0), str)
assert_type(np.format_float_positional(1), str)
assert_type(np.array_repr(AR), str)
assert_type(np.array_str(AR), str)
assert_type(np.printoptions(), contextlib._GeneratorContextManager[_FormatOptions])
with np.printoptions() as dct:
assert_type(dct, _FormatOptions)