summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/char.pyi53
-rw-r--r--numpy/compat/__init__.pyi26
-rw-r--r--numpy/core/__init__.pyi425
-rw-r--r--numpy/ctypeslib.pyi8
-rw-r--r--numpy/emath.pyi11
-rw-r--r--numpy/lib/__init__.pyi177
-rw-r--r--numpy/ma/__init__.pyi225
-rw-r--r--numpy/matrixlib/__init__.pyi6
-rw-r--r--numpy/random/__init__.pyi61
-rw-r--r--numpy/rec.pyi5
-rw-r--r--numpy/testing/__init__.pyi44
-rw-r--r--numpy/tests/typing/fail/modules.py3
-rw-r--r--numpy/tests/typing/reveal/modules.py4
13 files changed, 1024 insertions, 24 deletions
diff --git a/numpy/char.pyi b/numpy/char.pyi
index 3938d68de..0e7342c0b 100644
--- a/numpy/char.pyi
+++ b/numpy/char.pyi
@@ -1,4 +1,53 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+equal: Any
+not_equal: Any
+greater_equal: Any
+less_equal: Any
+greater: Any
+less: Any
+str_len: Any
+add: Any
+multiply: Any
+mod: Any
+capitalize: Any
+center: Any
+count: Any
+decode: Any
+encode: Any
+endswith: Any
+expandtabs: Any
+find: Any
+index: Any
+isalnum: Any
+isalpha: Any
+isdigit: Any
+islower: Any
+isspace: Any
+istitle: Any
+isupper: Any
+join: Any
+ljust: Any
+lower: Any
+lstrip: Any
+partition: Any
+replace: Any
+rfind: Any
+rindex: Any
+rjust: Any
+rpartition: Any
+rsplit: Any
+rstrip: Any
+split: Any
+splitlines: Any
+startswith: Any
+strip: Any
+swapcase: Any
+title: Any
+translate: Any
+upper: Any
+zfill: Any
+isnumeric: Any
+isdecimal: Any
+array: Any
+asarray: Any
diff --git a/numpy/compat/__init__.pyi b/numpy/compat/__init__.pyi
index 3938d68de..ff55ccfde 100644
--- a/numpy/compat/__init__.pyi
+++ b/numpy/compat/__init__.pyi
@@ -1,4 +1,26 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+getargspec: Any
+formatargspec: Any
+bytes: Any
+asbytes: Any
+isfileobj: Any
+getexception: Any
+strchar: Any
+unicode: Any
+asunicode: Any
+asbytes_nested: Any
+asunicode_nested: Any
+asstr: Any
+open_latin1: Any
+long: Any
+basestring: Any
+sixu: Any
+integer_types: Any
+is_pathlib_path: Any
+npy_load_module: Any
+Path: Any
+pickle: Any
+contextlib_nullcontext: Any
+os_fspath: Any
+os_PathLike: Any
diff --git a/numpy/core/__init__.pyi b/numpy/core/__init__.pyi
index 3938d68de..9e3cf3d75 100644
--- a/numpy/core/__init__.pyi
+++ b/numpy/core/__init__.pyi
@@ -1,4 +1,425 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+char: Any
+rec: Any
+memmap: Any
+newaxis: Any
+ndarray: Any
+flatiter: Any
+nditer: Any
+nested_iters: Any
+ufunc: Any
+arange: Any
+array: Any
+zeros: Any
+count_nonzero: Any
+empty: Any
+broadcast: Any
+dtype: Any
+fromstring: Any
+fromfile: Any
+frombuffer: Any
+where: Any
+argwhere: Any
+copyto: Any
+concatenate: Any
+fastCopyAndTranspose: Any
+lexsort: Any
+set_numeric_ops: Any
+can_cast: Any
+promote_types: Any
+min_scalar_type: Any
+result_type: Any
+isfortran: Any
+empty_like: Any
+zeros_like: Any
+ones_like: Any
+correlate: Any
+convolve: Any
+inner: Any
+dot: Any
+outer: Any
+vdot: Any
+roll: Any
+rollaxis: Any
+moveaxis: Any
+cross: Any
+tensordot: Any
+little_endian: Any
+fromiter: Any
+array_equal: Any
+array_equiv: Any
+indices: Any
+fromfunction: Any
+isclose: Any
+isscalar: Any
+binary_repr: Any
+base_repr: Any
+ones: Any
+identity: Any
+allclose: Any
+compare_chararrays: Any
+putmask: Any
+flatnonzero: Any
+Inf: Any
+inf: Any
+infty: Any
+Infinity: Any
+nan: Any
+NaN: Any
+False_: Any
+True_: Any
+bitwise_not: Any
+CLIP: Any
+RAISE: Any
+WRAP: Any
+MAXDIMS: Any
+BUFSIZE: Any
+ALLOW_THREADS: Any
+ComplexWarning: Any
+full: Any
+full_like: Any
+matmul: Any
+shares_memory: Any
+may_share_memory: Any
+MAY_SHARE_BOUNDS: Any
+MAY_SHARE_EXACT: Any
+TooHardError: Any
+AxisError: Any
+alen: Any
+all: Any
+alltrue: Any
+amax: Any
+amin: Any
+any: Any
+argmax: Any
+argmin: Any
+argpartition: Any
+argsort: Any
+around: Any
+choose: Any
+clip: Any
+compress: Any
+cumprod: Any
+cumproduct: Any
+cumsum: Any
+diagonal: Any
+mean: Any
+ndim: Any
+nonzero: Any
+partition: Any
+prod: Any
+product: Any
+ptp: Any
+put: Any
+ravel: Any
+repeat: Any
+reshape: Any
+resize: Any
+round_: Any
+searchsorted: Any
+shape: Any
+size: Any
+sometrue: Any
+sort: Any
+squeeze: Any
+std: Any
+sum: Any
+swapaxes: Any
+take: Any
+trace: Any
+transpose: Any
+var: Any
+_UFUNC_API: Any
+ERR_CALL: Any
+ERR_DEFAULT: Any
+ERR_IGNORE: Any
+ERR_LOG: Any
+ERR_PRINT: Any
+ERR_RAISE: Any
+ERR_WARN: Any
+FLOATING_POINT_SUPPORT: Any
+FPE_DIVIDEBYZERO: Any
+FPE_INVALID: Any
+FPE_OVERFLOW: Any
+FPE_UNDERFLOW: Any
+NAN: Any
+NINF: Any
+NZERO: Any
+PINF: Any
+PZERO: Any
+SHIFT_DIVIDEBYZERO: Any
+SHIFT_INVALID: Any
+SHIFT_OVERFLOW: Any
+SHIFT_UNDERFLOW: Any
+UFUNC_BUFSIZE_DEFAULT: Any
+UFUNC_PYVALS_NAME: Any
+_add_newdoc_ufunc: Any
+absolute: Any
+add: Any
+arccos: Any
+arccosh: Any
+arcsin: Any
+arcsinh: Any
+arctan: Any
+arctan2: Any
+arctanh: Any
+bitwise_and: Any
+bitwise_or: Any
+bitwise_xor: Any
+cbrt: Any
+ceil: Any
+conj: Any
+conjugate: Any
+copysign: Any
+cos: Any
+cosh: Any
+deg2rad: Any
+degrees: Any
+divide: Any
+divmod: Any
+e: Any
+equal: Any
+euler_gamma: Any
+exp: Any
+exp2: Any
+expm1: Any
+fabs: Any
+floor: Any
+floor_divide: Any
+float_power: Any
+fmax: Any
+fmin: Any
+fmod: Any
+frexp: Any
+frompyfunc: Any
+gcd: Any
+geterrobj: Any
+greater: Any
+greater_equal: Any
+heaviside: Any
+hypot: Any
+invert: Any
+isfinite: Any
+isinf: Any
+isnan: Any
+isnat: Any
+lcm: Any
+ldexp: Any
+left_shift: Any
+less: Any
+less_equal: Any
+log: Any
+log10: Any
+log1p: Any
+log2: Any
+logaddexp: Any
+logaddexp2: Any
+logical_and: Any
+logical_not: Any
+logical_or: Any
+logical_xor: Any
+maximum: Any
+minimum: Any
+mod: Any
+modf: Any
+multiply: Any
+negative: Any
+nextafter: Any
+not_equal: Any
+pi: Any
+positive: Any
+power: Any
+rad2deg: Any
+radians: Any
+reciprocal: Any
+remainder: Any
+right_shift: Any
+rint: Any
+seterrobj: Any
+sign: Any
+signbit: Any
+sin: Any
+sinh: Any
+spacing: Any
+sqrt: Any
+square: Any
+subtract: Any
+tan: Any
+tanh: Any
+true_divide: Any
+trunc: Any
+sctypeDict: Any
+typeDict: Any
+sctypes: Any
+ScalarType: Any
+obj2sctype: Any
+cast: Any
+nbytes: Any
+sctype2char: Any
+maximum_sctype: Any
+issctype: Any
+typecodes: Any
+find_common_type: Any
+issubdtype: Any
+datetime_data: Any
+datetime_as_string: Any
+busday_offset: Any
+busday_count: Any
+is_busday: Any
+busdaycalendar: Any
+byte: Any
+ubyte: Any
+short: Any
+ushort: Any
+uint: Any
+intp: Any
+uintp: Any
+long: Any
+longlong: Any
+ulonglong: Any
+half: Any
+double: Any
+longdouble: Any
+cfloat: Any
+cdouble: Any
+clongdouble: Any
+unicode: Any
+void: Any
+generic: Any
+number: Any
+integer: Any
+inexact: Any
+signedinteger: Any
+unsignedinteger: Any
+floating: Any
+complexfloating: Any
+flexible: Any
+character: Any
+bool8: Any
+int64: Any
+uint64: Any
+float16: Any
+float32: Any
+float64: Any
+complex64: Any
+complex128: Any
+object0: Any
+bytes0: Any
+str0: Any
+void0: Any
+datetime64: Any
+timedelta64: Any
+Bytes0: Any
+Datetime64: Any
+Str0: Any
+Uint64: Any
+int32: Any
+uint32: Any
+int16: Any
+uint16: Any
+int8: Any
+uint8: Any
+complex_: Any
+int0: Any
+uint0: Any
+single: Any
+csingle: Any
+singlecomplex: Any
+float_: Any
+intc: Any
+uintc: Any
+int_: Any
+longfloat: Any
+clongfloat: Any
+longcomplex: Any
+bool_: Any
+bytes_: Any
+string_: Any
+str_: Any
+unicode_: Any
+object_: Any
+array2string: Any
+array_str: Any
+array_repr: Any
+set_string_function: Any
+set_printoptions: Any
+get_printoptions: Any
+printoptions: Any
+format_float_positional: Any
+format_float_scientific: Any
+asarray: Any
+asanyarray: Any
+ascontiguousarray: Any
+asfortranarray: Any
+require: Any
+seterr: Any
+geterr: Any
+setbufsize: Any
+getbufsize: Any
+seterrcall: Any
+geterrcall: Any
+errstate: Any
+alen: Any
+all: Any
+alltrue: Any
+amax: Any
+amin: Any
+any: Any
+argmax: Any
+argmin: Any
+argpartition: Any
+argsort: Any
+around: Any
+choose: Any
+clip: Any
+compress: Any
+cumprod: Any
+cumproduct: Any
+cumsum: Any
+diagonal: Any
+mean: Any
+ndim: Any
+nonzero: Any
+partition: Any
+prod: Any
+product: Any
+ptp: Any
+put: Any
+ravel: Any
+repeat: Any
+reshape: Any
+resize: Any
+round_: Any
+searchsorted: Any
+shape: Any
+size: Any
+sometrue: Any
+sort: Any
+squeeze: Any
+std: Any
+sum: Any
+swapaxes: Any
+take: Any
+trace: Any
+transpose: Any
+var: Any
+record: Any
+recarray: Any
+format_parser: Any
+chararray: Any
+logspace: Any
+linspace: Any
+geomspace: Any
+MachAr: Any
+finfo: Any
+iinfo: Any
+atleast_1d: Any
+atleast_2d: Any
+atleast_3d: Any
+block: Any
+hstack: Any
+stack: Any
+vstack: Any
+einsum: Any
+einsum_path: Any
diff --git a/numpy/ctypeslib.pyi b/numpy/ctypeslib.pyi
index 3938d68de..c71d2dda2 100644
--- a/numpy/ctypeslib.pyi
+++ b/numpy/ctypeslib.pyi
@@ -1,4 +1,8 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+load_library: Any
+ndpointer: Any
+ctypes_load_library: Any
+c_intp: Any
+as_ctypes: Any
+as_array: Any
diff --git a/numpy/emath.pyi b/numpy/emath.pyi
index 3938d68de..032ec9505 100644
--- a/numpy/emath.pyi
+++ b/numpy/emath.pyi
@@ -1,4 +1,11 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+sqrt: Any
+log: Any
+log2: Any
+logn: Any
+log10: Any
+power: Any
+arccos: Any
+arcsin: Any
+arctanh: Any
diff --git a/numpy/lib/__init__.pyi b/numpy/lib/__init__.pyi
index 3938d68de..413e2ae1b 100644
--- a/numpy/lib/__init__.pyi
+++ b/numpy/lib/__init__.pyi
@@ -1,4 +1,177 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+emath: Any
+math: Any
+tracemalloc_domain: Any
+Arrayterator: Any
+iscomplexobj: Any
+isrealobj: Any
+imag: Any
+iscomplex: Any
+isreal: Any
+nan_to_num: Any
+real: Any
+real_if_close: Any
+typename: Any
+asfarray: Any
+mintypecode: Any
+asscalar: Any
+common_type: Any
+ravel_multi_index: Any
+unravel_index: Any
+mgrid: Any
+ogrid: Any
+r_: Any
+c_: Any
+s_: Any
+index_exp: Any
+ix_: Any
+ndenumerate: Any
+ndindex: Any
+fill_diagonal: Any
+diag_indices: Any
+diag_indices_from: Any
+select: Any
+piecewise: Any
+trim_zeros: Any
+copy: Any
+iterable: Any
+percentile: Any
+diff: Any
+gradient: Any
+angle: Any
+unwrap: Any
+sort_complex: Any
+disp: Any
+flip: Any
+rot90: Any
+extract: Any
+place: Any
+vectorize: Any
+asarray_chkfinite: Any
+average: Any
+bincount: Any
+digitize: Any
+cov: Any
+corrcoef: Any
+msort: Any
+median: Any
+sinc: Any
+hamming: Any
+hanning: Any
+bartlett: Any
+blackman: Any
+kaiser: Any
+trapz: Any
+i0: Any
+add_newdoc: Any
+add_docstring: Any
+meshgrid: Any
+delete: Any
+insert: Any
+append: Any
+interp: Any
+add_newdoc_ufunc: Any
+quantile: Any
+column_stack: Any
+row_stack: Any
+dstack: Any
+array_split: Any
+split: Any
+hsplit: Any
+vsplit: Any
+dsplit: Any
+apply_over_axes: Any
+expand_dims: Any
+apply_along_axis: Any
+kron: Any
+tile: Any
+get_array_wrap: Any
+take_along_axis: Any
+put_along_axis: Any
+broadcast_to: Any
+broadcast_arrays: Any
+diag: Any
+diagflat: Any
+eye: Any
+fliplr: Any
+flipud: Any
+tri: Any
+triu: Any
+tril: Any
+vander: Any
+histogram2d: Any
+mask_indices: Any
+tril_indices: Any
+tril_indices_from: Any
+triu_indices: Any
+triu_indices_from: Any
+fix: Any
+isneginf: Any
+isposinf: Any
+pad: Any
+poly: Any
+roots: Any
+polyint: Any
+polyder: Any
+polyadd: Any
+polysub: Any
+polymul: Any
+polydiv: Any
+polyval: Any
+poly1d: Any
+polyfit: Any
+RankWarning: Any
+issubclass_: Any
+issubsctype: Any
+issubdtype: Any
+deprecate: Any
+deprecate_with_doc: Any
+get_include: Any
+info: Any
+source: Any
+who: Any
+lookfor: Any
+byte_bounds: Any
+safe_eval: Any
+ediff1d: Any
+intersect1d: Any
+setxor1d: Any
+union1d: Any
+setdiff1d: Any
+unique: Any
+in1d: Any
+isin: Any
+savetxt: Any
+loadtxt: Any
+genfromtxt: Any
+ndfromtxt: Any
+mafromtxt: Any
+recfromtxt: Any
+recfromcsv: Any
+load: Any
+loads: Any
+save: Any
+savez: Any
+savez_compressed: Any
+packbits: Any
+unpackbits: Any
+fromregex: Any
+DataSource: Any
+nansum: Any
+nanmax: Any
+nanmin: Any
+nanargmax: Any
+nanargmin: Any
+nanmean: Any
+nanmedian: Any
+nanpercentile: Any
+nanvar: Any
+nanstd: Any
+nanprod: Any
+nancumsum: Any
+nancumprod: Any
+nanquantile: Any
+histogram: Any
+histogramdd: Any
+histogram_bin_edges: Any
diff --git a/numpy/ma/__init__.pyi b/numpy/ma/__init__.pyi
index 3938d68de..d1259abcc 100644
--- a/numpy/ma/__init__.pyi
+++ b/numpy/ma/__init__.pyi
@@ -1,4 +1,225 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+core: Any
+extras: Any
+MAError: Any
+MaskError: Any
+MaskType: Any
+MaskedArray: Any
+abs: Any
+absolute: Any
+add: Any
+all: Any
+allclose: Any
+allequal: Any
+alltrue: Any
+amax: Any
+amin: Any
+angle: Any
+anom: Any
+anomalies: Any
+any: Any
+append: Any
+arange: Any
+arccos: Any
+arccosh: Any
+arcsin: Any
+arcsinh: Any
+arctan: Any
+arctan2: Any
+arctanh: Any
+argmax: Any
+argmin: Any
+argsort: Any
+around: Any
+array: Any
+asanyarray: Any
+asarray: Any
+bitwise_and: Any
+bitwise_or: Any
+bitwise_xor: Any
+bool_: Any
+ceil: Any
+choose: Any
+clip: Any
+common_fill_value: Any
+compress: Any
+compressed: Any
+concatenate: Any
+conjugate: Any
+convolve: Any
+copy: Any
+correlate: Any
+cos: Any
+cosh: Any
+count: Any
+cumprod: Any
+cumsum: Any
+default_fill_value: Any
+diag: Any
+diagonal: Any
+diff: Any
+divide: Any
+empty: Any
+empty_like: Any
+equal: Any
+exp: Any
+expand_dims: Any
+fabs: Any
+filled: Any
+fix_invalid: Any
+flatten_mask: Any
+flatten_structured_array: Any
+floor: Any
+floor_divide: Any
+fmod: Any
+frombuffer: Any
+fromflex: Any
+fromfunction: Any
+getdata: Any
+getmask: Any
+getmaskarray: Any
+greater: Any
+greater_equal: Any
+harden_mask: Any
+hypot: Any
+identity: Any
+ids: Any
+indices: Any
+inner: Any
+innerproduct: Any
+isMA: Any
+isMaskedArray: Any
+is_mask: Any
+is_masked: Any
+isarray: Any
+left_shift: Any
+less: Any
+less_equal: Any
+log: Any
+log10: Any
+log2: Any
+logical_and: Any
+logical_not: Any
+logical_or: Any
+logical_xor: Any
+make_mask: Any
+make_mask_descr: Any
+make_mask_none: Any
+mask_or: Any
+masked: Any
+masked_array: Any
+masked_equal: Any
+masked_greater: Any
+masked_greater_equal: Any
+masked_inside: Any
+masked_invalid: Any
+masked_less: Any
+masked_less_equal: Any
+masked_not_equal: Any
+masked_object: Any
+masked_outside: Any
+masked_print_option: Any
+masked_singleton: Any
+masked_values: Any
+masked_where: Any
+max: Any
+maximum: Any
+maximum_fill_value: Any
+mean: Any
+min: Any
+minimum: Any
+minimum_fill_value: Any
+mod: Any
+multiply: Any
+mvoid: Any
+ndim: Any
+negative: Any
+nomask: Any
+nonzero: Any
+not_equal: Any
+ones: Any
+outer: Any
+outerproduct: Any
+power: Any
+prod: Any
+product: Any
+ptp: Any
+put: Any
+putmask: Any
+ravel: Any
+remainder: Any
+repeat: Any
+reshape: Any
+resize: Any
+right_shift: Any
+round: Any
+round_: Any
+set_fill_value: Any
+shape: Any
+sin: Any
+sinh: Any
+size: Any
+soften_mask: Any
+sometrue: Any
+sort: Any
+sqrt: Any
+squeeze: Any
+std: Any
+subtract: Any
+sum: Any
+swapaxes: Any
+take: Any
+tan: Any
+tanh: Any
+trace: Any
+transpose: Any
+true_divide: Any
+var: Any
+where: Any
+zeros: Any
+apply_along_axis: Any
+apply_over_axes: Any
+atleast_1d: Any
+atleast_2d: Any
+atleast_3d: Any
+average: Any
+clump_masked: Any
+clump_unmasked: Any
+column_stack: Any
+compress_cols: Any
+compress_nd: Any
+compress_rowcols: Any
+compress_rows: Any
+count_masked: Any
+corrcoef: Any
+cov: Any
+diagflat: Any
+dot: Any
+dstack: Any
+ediff1d: Any
+flatnotmasked_contiguous: Any
+flatnotmasked_edges: Any
+hsplit: Any
+hstack: Any
+isin: Any
+in1d: Any
+intersect1d: Any
+mask_cols: Any
+mask_rowcols: Any
+mask_rows: Any
+masked_all: Any
+masked_all_like: Any
+median: Any
+mr_: Any
+notmasked_contiguous: Any
+notmasked_edges: Any
+polyfit: Any
+row_stack: Any
+setdiff1d: Any
+setxor1d: Any
+stack: Any
+unique: Any
+union1d: Any
+vander: Any
+vstack: Any
diff --git a/numpy/matrixlib/__init__.pyi b/numpy/matrixlib/__init__.pyi
index 3938d68de..b240bb327 100644
--- a/numpy/matrixlib/__init__.pyi
+++ b/numpy/matrixlib/__init__.pyi
@@ -1,4 +1,6 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+matrix: Any
+bmat: Any
+mat: Any
+asmatrix: Any
diff --git a/numpy/random/__init__.pyi b/numpy/random/__init__.pyi
index 3938d68de..f7c3cfafe 100644
--- a/numpy/random/__init__.pyi
+++ b/numpy/random/__init__.pyi
@@ -1,4 +1,61 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+beta: Any
+binomial: Any
+bytes: Any
+chisquare: Any
+choice: Any
+dirichlet: Any
+exponential: Any
+f: Any
+gamma: Any
+geometric: Any
+get_state: Any
+gumbel: Any
+hypergeometric: Any
+laplace: Any
+logistic: Any
+lognormal: Any
+logseries: Any
+multinomial: Any
+multivariate_normal: Any
+negative_binomial: Any
+noncentral_chisquare: Any
+noncentral_f: Any
+normal: Any
+pareto: Any
+permutation: Any
+poisson: Any
+power: Any
+rand: Any
+randint: Any
+randn: Any
+random: Any
+random_integers: Any
+random_sample: Any
+ranf: Any
+rayleigh: Any
+sample: Any
+seed: Any
+set_state: Any
+shuffle: Any
+standard_cauchy: Any
+standard_exponential: Any
+standard_gamma: Any
+standard_normal: Any
+standard_t: Any
+triangular: Any
+uniform: Any
+vonmises: Any
+wald: Any
+weibull: Any
+zipf: Any
+Generator: Any
+RandomState: Any
+SeedSequence: Any
+MT19937: Any
+Philox: Any
+PCG64: Any
+SFC64: Any
+default_rng: Any
+BitGenerator: Any
diff --git a/numpy/rec.pyi b/numpy/rec.pyi
index 3938d68de..c70ee5374 100644
--- a/numpy/rec.pyi
+++ b/numpy/rec.pyi
@@ -1,4 +1,5 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+record: Any
+recarray: Any
+format_parser: Any
diff --git a/numpy/testing/__init__.pyi b/numpy/testing/__init__.pyi
index 3938d68de..c394a387d 100644
--- a/numpy/testing/__init__.pyi
+++ b/numpy/testing/__init__.pyi
@@ -1,4 +1,44 @@
from typing import Any
-# TODO: remove when the full numpy namespace is defined
-def __getattr__(name: str) -> Any: ...
+assert_equal: Any
+assert_almost_equal: Any
+assert_approx_equal: Any
+assert_array_equal: Any
+assert_array_less: Any
+assert_string_equal: Any
+assert_array_almost_equal: Any
+assert_raises: Any
+build_err_msg: Any
+decorate_methods: Any
+jiffies: Any
+memusage: Any
+print_assert_equal: Any
+raises: Any
+rundocs: Any
+runstring: Any
+verbose: Any
+measure: Any
+assert_: Any
+assert_array_almost_equal_nulp: Any
+assert_raises_regex: Any
+assert_array_max_ulp: Any
+assert_warns: Any
+assert_no_warnings: Any
+assert_allclose: Any
+IgnoreException: Any
+clear_and_catch_warnings: Any
+SkipTest: Any
+KnownFailureException: Any
+temppath: Any
+tempdir: Any
+IS_PYPY: Any
+HAS_REFCOUNT: Any
+suppress_warnings: Any
+assert_array_compare: Any
+_assert_valid_refcount: Any
+_gen_alignment_data: Any
+assert_no_gc_cycles: Any
+break_cycles: Any
+HAS_LAPACK64: Any
+TestCase: Any
+run_module_suite: Any
diff --git a/numpy/tests/typing/fail/modules.py b/numpy/tests/typing/fail/modules.py
new file mode 100644
index 000000000..e7ffe8920
--- /dev/null
+++ b/numpy/tests/typing/fail/modules.py
@@ -0,0 +1,3 @@
+import numpy as np
+
+np.testing.bob # E: Module has no attribute
diff --git a/numpy/tests/typing/reveal/modules.py b/numpy/tests/typing/reveal/modules.py
index 736aae10c..16709496b 100644
--- a/numpy/tests/typing/reveal/modules.py
+++ b/numpy/tests/typing/reveal/modules.py
@@ -18,5 +18,5 @@ reveal_type(np.rec) # E: ModuleType
reveal_type(np.testing) # E: ModuleType
reveal_type(np.version) # E: ModuleType
-# TODO: Remove when annotations have been added to `np.linalg.norm`
-reveal_type(np.linalg.norm) # E: Any
+# TODO: Remove when annotations have been added to `np.testing.assert_equal`
+reveal_type(np.testing.assert_equal) # E: Any