diff options
author | Josh Wilson <person142@users.noreply.github.com> | 2020-06-06 15:31:33 -0700 |
---|---|---|
committer | Josh Wilson <person142@users.noreply.github.com> | 2020-06-06 15:31:33 -0700 |
commit | 11b95d15f10c2bc652ed19d5e27efa0384396cb8 (patch) | |
tree | 8d6f2020f6982fc9f2389796daca1429387f576e /numpy/tests/pass/scalars.py | |
parent | a5d021a1b6f439a19812926bc4d796ef5f346c44 (diff) | |
download | numpy-11b95d15f10c2bc652ed19d5e27efa0384396cb8.tar.gz |
ENH: add type stubs from numpy-stubs
Add the type stubs and tests from numpy-stubs. Things this entails:
- Copy over the stubs (numpy/__init__.pyi and
numpy/core/_internal.pyi)
- The only modification made was removing `ndarray.tostring` since
it is deprecated
- Update some setup.py files to include pyi files
- Move the tests from numpy-stubs/tests into numpy/tests
- Skip them if mypy is not installed (planning on setting up CI in a
future PR)
- Add a mypy.ini; use it to configure mypy in the tests
- It tells mypy where to find NumPy in the test env
- It ignores internal NumPy type errors (since we only want to
consider errors from the tests cases)
- Some small edits were made to fix test cases that were emitting
deprecation warnings
- Add numpy/py.typed so that the types are picked up in an
installed version of NumPy
Diffstat (limited to 'numpy/tests/pass/scalars.py')
-rw-r--r-- | numpy/tests/pass/scalars.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/numpy/tests/pass/scalars.py b/numpy/tests/pass/scalars.py new file mode 100644 index 000000000..bd055673b --- /dev/null +++ b/numpy/tests/pass/scalars.py @@ -0,0 +1,88 @@ +import numpy as np + + +# Construction +class C: + def __complex__(self): + return 3j + + +class B: + def __int__(self): + return 4 + + +class A: + def __float__(self): + return 4.0 + + +np.complex64(3j) +np.complex64(C()) +np.complex128(3j) +np.complex128(C()) + +np.int8(4) +np.int16(3.4) +np.int32(4) +np.int64(-1) +np.uint8(B()) +np.uint32() + +np.float16(A()) +np.float32(16) +np.float64(3.0) + +np.bytes_(b"hello") +np.str_("hello") + +# Protocols +float(np.int8(4)) +int(np.int16(5)) +np.int8(np.float32(6)) + +# TODO(alan): test after https://github.com/python/typeshed/pull/2004 +# complex(np.int32(8)) + +abs(np.int8(4)) + +# Array-ish semantics +np.int8().real +np.int16().imag +np.int32().data +np.int64().flags + +np.uint8().itemsize * 2 +np.uint16().ndim + 1 +np.uint32().strides +np.uint64().shape + +# Time structures +np.datetime64() +np.datetime64(0, "D") +np.datetime64("2019") +np.datetime64("2019", "D") + +np.timedelta64() +np.timedelta64(0) +np.timedelta64(0, "D") + +dt_64 = np.datetime64(0, "D") +td_64 = np.timedelta64(1, "h") + +dt_64 + td_64 +dt_64 - dt_64 +dt_64 - td_64 + +td_64 + td_64 +td_64 - td_64 +td_64 / 1.0 +td_64 / td_64 +td_64 % td_64 + +np.void(1) +np.void(np.int64(1)) +np.void(True) +np.void(np.bool_(True)) +np.void(b"test") +np.void(np.bytes_("test")) |