1import numpy as np 2 3c16 = np.complex128() 4f8 = np.float64() 5i8 = np.int64() 6u8 = np.uint64() 7 8c8 = np.complex64() 9f4 = np.float32() 10i4 = np.int32() 11u4 = np.uint32() 12 13dt = np.datetime64(0, "D") 14td = np.timedelta64(0, "D") 15 16b_ = np.bool_() 17 18b = bool() 19c = complex() 20f = float() 21i = int() 22 23AR = np.array([0], dtype=np.float64) 24AR.setflags(write=False) 25 26# unary ops 27 28reveal_type(-c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 29reveal_type(-c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 30reveal_type(-f8) # E: numpy.floating[numpy.typing._64Bit] 31reveal_type(-f4) # E: numpy.floating[numpy.typing._32Bit] 32reveal_type(-i8) # E: numpy.signedinteger[numpy.typing._64Bit] 33reveal_type(-i4) # E: numpy.signedinteger[numpy.typing._32Bit] 34reveal_type(-u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 35reveal_type(-u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 36reveal_type(-td) # E: numpy.timedelta64 37reveal_type(-AR) # E: Any 38 39reveal_type(+c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 40reveal_type(+c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 41reveal_type(+f8) # E: numpy.floating[numpy.typing._64Bit] 42reveal_type(+f4) # E: numpy.floating[numpy.typing._32Bit] 43reveal_type(+i8) # E: numpy.signedinteger[numpy.typing._64Bit] 44reveal_type(+i4) # E: numpy.signedinteger[numpy.typing._32Bit] 45reveal_type(+u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 46reveal_type(+u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 47reveal_type(+td) # E: numpy.timedelta64 48reveal_type(+AR) # E: Any 49 50reveal_type(abs(c16)) # E: numpy.floating[numpy.typing._64Bit] 51reveal_type(abs(c8)) # E: numpy.floating[numpy.typing._32Bit] 52reveal_type(abs(f8)) # E: numpy.floating[numpy.typing._64Bit] 53reveal_type(abs(f4)) # E: numpy.floating[numpy.typing._32Bit] 54reveal_type(abs(i8)) # E: numpy.signedinteger[numpy.typing._64Bit] 55reveal_type(abs(i4)) # E: numpy.signedinteger[numpy.typing._32Bit] 56reveal_type(abs(u8)) # E: numpy.unsignedinteger[numpy.typing._64Bit] 57reveal_type(abs(u4)) # E: numpy.unsignedinteger[numpy.typing._32Bit] 58reveal_type(abs(td)) # E: numpy.timedelta64 59reveal_type(abs(b_)) # E: numpy.bool_ 60reveal_type(abs(AR)) # E: Any 61 62# Time structures 63 64reveal_type(dt + td) # E: numpy.datetime64 65reveal_type(dt + i) # E: numpy.datetime64 66reveal_type(dt + i4) # E: numpy.datetime64 67reveal_type(dt + i8) # E: numpy.datetime64 68reveal_type(dt - dt) # E: numpy.timedelta64 69reveal_type(dt - i) # E: numpy.datetime64 70reveal_type(dt - i4) # E: numpy.datetime64 71reveal_type(dt - i8) # E: numpy.datetime64 72 73reveal_type(td + td) # E: numpy.timedelta64 74reveal_type(td + i) # E: numpy.timedelta64 75reveal_type(td + i4) # E: numpy.timedelta64 76reveal_type(td + i8) # E: numpy.timedelta64 77reveal_type(td - td) # E: numpy.timedelta64 78reveal_type(td - i) # E: numpy.timedelta64 79reveal_type(td - i4) # E: numpy.timedelta64 80reveal_type(td - i8) # E: numpy.timedelta64 81reveal_type(td / f) # E: numpy.timedelta64 82reveal_type(td / f4) # E: numpy.timedelta64 83reveal_type(td / f8) # E: numpy.timedelta64 84reveal_type(td / td) # E: numpy.floating[numpy.typing._64Bit] 85reveal_type(td // td) # E: numpy.signedinteger[numpy.typing._64Bit] 86 87# boolean 88 89reveal_type(b_ / b) # E: numpy.floating[numpy.typing._64Bit] 90reveal_type(b_ / b_) # E: numpy.floating[numpy.typing._64Bit] 91reveal_type(b_ / i) # E: numpy.floating[numpy.typing._64Bit] 92reveal_type(b_ / i8) # E: numpy.floating[numpy.typing._64Bit] 93reveal_type(b_ / i4) # E: numpy.floating[numpy.typing._64Bit] 94reveal_type(b_ / u8) # E: numpy.floating[numpy.typing._64Bit] 95reveal_type(b_ / u4) # E: numpy.floating[numpy.typing._64Bit] 96reveal_type(b_ / f) # E: numpy.floating[numpy.typing._64Bit] 97reveal_type(b_ / f8) # E: numpy.floating[numpy.typing._64Bit] 98reveal_type(b_ / f4) # E: numpy.floating[numpy.typing._32Bit] 99reveal_type(b_ / c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 100reveal_type(b_ / c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 101reveal_type(b_ / c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 102 103reveal_type(b / b_) # E: numpy.floating[numpy.typing._64Bit] 104reveal_type(b_ / b_) # E: numpy.floating[numpy.typing._64Bit] 105reveal_type(i / b_) # E: numpy.floating[numpy.typing._64Bit] 106reveal_type(i8 / b_) # E: numpy.floating[numpy.typing._64Bit] 107reveal_type(i4 / b_) # E: numpy.floating[numpy.typing._64Bit] 108reveal_type(u8 / b_) # E: numpy.floating[numpy.typing._64Bit] 109reveal_type(u4 / b_) # E: numpy.floating[numpy.typing._64Bit] 110reveal_type(f / b_) # E: numpy.floating[numpy.typing._64Bit] 111reveal_type(f8 / b_) # E: numpy.floating[numpy.typing._64Bit] 112reveal_type(f4 / b_) # E: numpy.floating[numpy.typing._32Bit] 113reveal_type(c / b_) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 114reveal_type(c16 / b_) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 115reveal_type(c8 / b_) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 116 117# Complex 118 119reveal_type(c16 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 120reveal_type(c16 + f8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 121reveal_type(c16 + i8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 122reveal_type(c16 + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 123reveal_type(c16 + f4) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 124reveal_type(c16 + i4) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 125reveal_type(c16 + b_) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 126reveal_type(c16 + b) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 127reveal_type(c16 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 128reveal_type(c16 + f) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 129reveal_type(c16 + i) # E: numpy.complexfloating[Any, Any] 130reveal_type(c16 + AR) # E: Any 131 132reveal_type(c16 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 133reveal_type(f8 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 134reveal_type(i8 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 135reveal_type(c8 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 136reveal_type(f4 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 137reveal_type(i4 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 138reveal_type(b_ + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 139reveal_type(b + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 140reveal_type(c + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 141reveal_type(f + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 142reveal_type(i + c16) # E: numpy.complexfloating[Any, Any] 143reveal_type(AR + c16) # E: Any 144 145reveal_type(c8 + c16) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 146reveal_type(c8 + f8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 147reveal_type(c8 + i8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 148reveal_type(c8 + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 149reveal_type(c8 + f4) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 150reveal_type(c8 + i4) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 151reveal_type(c8 + b_) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 152reveal_type(c8 + b) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 153reveal_type(c8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 154reveal_type(c8 + f) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 155reveal_type(c8 + i) # E: numpy.complexfloating[Any, Any] 156reveal_type(c8 + AR) # E: Any 157 158reveal_type(c16 + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 159reveal_type(f8 + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 160reveal_type(i8 + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 161reveal_type(c8 + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 162reveal_type(f4 + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 163reveal_type(i4 + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 164reveal_type(b_ + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 165reveal_type(b + c8) # E: numpy.complexfloating[numpy.typing._32Bit, numpy.typing._32Bit] 166reveal_type(c + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 167reveal_type(f + c8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 168reveal_type(i + c8) # E: numpy.complexfloating[Any, Any] 169reveal_type(AR + c8) # E: Any 170 171# Float 172 173reveal_type(f8 + f8) # E: numpy.floating[numpy.typing._64Bit] 174reveal_type(f8 + i8) # E: numpy.floating[numpy.typing._64Bit] 175reveal_type(f8 + f4) # E: numpy.floating[numpy.typing._64Bit] 176reveal_type(f8 + i4) # E: numpy.floating[numpy.typing._64Bit] 177reveal_type(f8 + b_) # E: numpy.floating[numpy.typing._64Bit] 178reveal_type(f8 + b) # E: numpy.floating[numpy.typing._64Bit] 179reveal_type(f8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 180reveal_type(f8 + f) # E: numpy.floating[numpy.typing._64Bit] 181reveal_type(f8 + i) # E: numpy.floating[Any] 182reveal_type(f8 + AR) # E: Any 183 184reveal_type(f8 + f8) # E: numpy.floating[numpy.typing._64Bit] 185reveal_type(i8 + f8) # E: numpy.floating[numpy.typing._64Bit] 186reveal_type(f4 + f8) # E: numpy.floating[numpy.typing._64Bit] 187reveal_type(i4 + f8) # E: numpy.floating[numpy.typing._64Bit] 188reveal_type(b_ + f8) # E: numpy.floating[numpy.typing._64Bit] 189reveal_type(b + f8) # E: numpy.floating[numpy.typing._64Bit] 190reveal_type(c + f8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 191reveal_type(f + f8) # E: numpy.floating[numpy.typing._64Bit] 192reveal_type(i + f8) # E: numpy.floating[Any] 193reveal_type(AR + f8) # E: Any 194 195reveal_type(f4 + f8) # E: numpy.floating[numpy.typing._64Bit] 196reveal_type(f4 + i8) # E: numpy.floating[numpy.typing._64Bit] 197reveal_type(f4 + f4) # E: numpy.floating[numpy.typing._32Bit] 198reveal_type(f4 + i4) # E: numpy.floating[numpy.typing._32Bit] 199reveal_type(f4 + b_) # E: numpy.floating[numpy.typing._32Bit] 200reveal_type(f4 + b) # E: numpy.floating[numpy.typing._32Bit] 201reveal_type(f4 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 202reveal_type(f4 + f) # E: numpy.floating[numpy.typing._64Bit] 203reveal_type(f4 + i) # E: numpy.floating[Any] 204reveal_type(f4 + AR) # E: Any 205 206reveal_type(f8 + f4) # E: numpy.floating[numpy.typing._64Bit] 207reveal_type(i8 + f4) # E: numpy.floating[numpy.typing._64Bit] 208reveal_type(f4 + f4) # E: umpy.floating[numpy.typing._32Bit] 209reveal_type(i4 + f4) # E: umpy.floating[numpy.typing._32Bit] 210reveal_type(b_ + f4) # E: umpy.floating[numpy.typing._32Bit] 211reveal_type(b + f4) # E: umpy.floating[numpy.typing._32Bit] 212reveal_type(c + f4) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 213reveal_type(f + f4) # E: numpy.floating[numpy.typing._64Bit] 214reveal_type(i + f4) # E: numpy.floating[Any] 215reveal_type(AR + f4) # E: Any 216 217# Int 218 219reveal_type(i8 + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 220reveal_type(i8 + u8) # E: Any 221reveal_type(i8 + i4) # E: numpy.signedinteger[numpy.typing._64Bit] 222reveal_type(i8 + u4) # E: Any 223reveal_type(i8 + b_) # E: numpy.signedinteger[numpy.typing._64Bit] 224reveal_type(i8 + b) # E: numpy.signedinteger[numpy.typing._64Bit] 225reveal_type(i8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 226reveal_type(i8 + f) # E: numpy.floating[numpy.typing._64Bit] 227reveal_type(i8 + i) # E: numpy.signedinteger[Any] 228reveal_type(i8 + AR) # E: Any 229 230reveal_type(u8 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 231reveal_type(u8 + i4) # E: Any 232reveal_type(u8 + u4) # E: numpy.unsignedinteger[numpy.typing._64Bit] 233reveal_type(u8 + b_) # E: numpy.unsignedinteger[numpy.typing._64Bit] 234reveal_type(u8 + b) # E: numpy.unsignedinteger[numpy.typing._64Bit] 235reveal_type(u8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 236reveal_type(u8 + f) # E: numpy.floating[numpy.typing._64Bit] 237reveal_type(u8 + i) # E: Any 238reveal_type(u8 + AR) # E: Any 239 240reveal_type(i8 + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 241reveal_type(u8 + i8) # E: Any 242reveal_type(i4 + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 243reveal_type(u4 + i8) # E: Any 244reveal_type(b_ + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 245reveal_type(b + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 246reveal_type(c + i8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 247reveal_type(f + i8) # E: numpy.floating[numpy.typing._64Bit] 248reveal_type(i + i8) # E: numpy.signedinteger[Any] 249reveal_type(AR + i8) # E: Any 250 251reveal_type(u8 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 252reveal_type(i4 + u8) # E: Any 253reveal_type(u4 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 254reveal_type(b_ + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 255reveal_type(b + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 256reveal_type(c + u8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit] 257reveal_type(f + u8) # E: numpy.floating[numpy.typing._64Bit] 258reveal_type(i + u8) # E: Any 259reveal_type(AR + u8) # E: Any 260 261reveal_type(i4 + i8) # E: numpy.signedinteger[numpy.typing._64Bit] 262reveal_type(i4 + i4) # E: numpy.signedinteger[numpy.typing._32Bit] 263reveal_type(i4 + i) # E: numpy.signedinteger[Any] 264reveal_type(i4 + b_) # E: numpy.signedinteger[numpy.typing._32Bit] 265reveal_type(i4 + b) # E: numpy.signedinteger[numpy.typing._32Bit] 266reveal_type(i4 + AR) # E: Any 267 268reveal_type(u4 + i8) # E: Any 269reveal_type(u4 + i4) # E: Any 270reveal_type(u4 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit] 271reveal_type(u4 + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 272reveal_type(u4 + i) # E: Any 273reveal_type(u4 + b_) # E: numpy.unsignedinteger[numpy.typing._32Bit] 274reveal_type(u4 + b) # E: numpy.unsignedinteger[numpy.typing._32Bit] 275reveal_type(u4 + AR) # E: Any 276 277reveal_type(i8 + i4) # E: numpy.signedinteger[numpy.typing._64Bit] 278reveal_type(i4 + i4) # E: numpy.signedinteger[numpy.typing._32Bit] 279reveal_type(i + i4) # E: numpy.signedinteger[Any] 280reveal_type(b_ + i4) # E: numpy.signedinteger[numpy.typing._32Bit] 281reveal_type(b + i4) # E: numpy.signedinteger[numpy.typing._32Bit] 282reveal_type(AR + i4) # E: Any 283 284reveal_type(i8 + u4) # E: Any 285reveal_type(i4 + u4) # E: Any 286reveal_type(u8 + u4) # E: numpy.unsignedinteger[numpy.typing._64Bit] 287reveal_type(u4 + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 288reveal_type(b_ + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 289reveal_type(b + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit] 290reveal_type(i + u4) # E: Any 291reveal_type(AR + u4) # E: Any 292