types-array-api 1.1.3__tar.gz → 1.1.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {types_array_api-1.1.3/src/types_array_api.egg-info → types_array_api-1.1.5}/PKG-INFO +2 -2
  2. {types_array_api-1.1.3 → types_array_api-1.1.5}/pyproject.toml +2 -2
  3. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/_2022_12.py +375 -1
  4. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/_2023_12.py +373 -1
  5. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/_2024_12.py +357 -3
  6. types_array_api-1.1.5/src/array_api/__init__.py +1 -0
  7. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/_draft.py +357 -3
  8. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/cli/_main.py +22 -1
  9. {types_array_api-1.1.3 → types_array_api-1.1.5/src/types_array_api.egg-info}/PKG-INFO +2 -2
  10. types_array_api-1.1.3/src/array_api/__init__.py +0 -1
  11. {types_array_api-1.1.3 → types_array_api-1.1.5}/LICENSE +0 -0
  12. {types_array_api-1.1.3 → types_array_api-1.1.5}/LICENSE-MIT +0 -0
  13. {types_array_api-1.1.3 → types_array_api-1.1.5}/README.md +0 -0
  14. {types_array_api-1.1.3 → types_array_api-1.1.5}/setup.cfg +0 -0
  15. {types_array_api-1.1.3 → types_array_api-1.1.5}/setup.py +0 -0
  16. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/__main__.py +0 -0
  17. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/cli/__init__.py +0 -0
  18. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/cli/cli.py +0 -0
  19. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api/py.typed +0 -0
  20. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/array_api_compat/__init__.pyi +0 -0
  21. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/types_array_api.egg-info/SOURCES.txt +0 -0
  22. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/types_array_api.egg-info/dependency_links.txt +0 -0
  23. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/types_array_api.egg-info/entry_points.txt +0 -0
  24. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/types_array_api.egg-info/requires.txt +0 -0
  25. {types_array_api-1.1.3 → types_array_api-1.1.5}/src/types_array_api.egg-info/top_level.txt +0 -0
  26. {types_array_api-1.1.3 → types_array_api-1.1.5}/tests/test_cli.py +0 -0
  27. {types_array_api-1.1.3 → types_array_api-1.1.5}/tests/test_dunder_main.py +0 -0
  28. {types_array_api-1.1.3 → types_array_api-1.1.5}/tests/test_main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: types-array-api
3
- Version: 1.1.3
3
+ Version: 1.1.5
4
4
  Summary: Typing for array API and array-api-compat
5
5
  Author-email: 34j <34j.95a2p@simplelogin.com>
6
6
  License-Expression: MIT AND Apache-2.0
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
20
  Classifier: Topic :: Software Development :: Libraries
21
- Requires-Python: >=3.9
21
+ Requires-Python: >=3.12
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  License-File: LICENSE-MIT
@@ -4,14 +4,14 @@ requires = [ "setuptools" ]
4
4
 
5
5
  [project]
6
6
  name = "types-array-api"
7
- version = "1.1.3"
7
+ version = "1.1.5"
8
8
  description = "Typing for array API and array-api-compat"
9
9
  readme = "README.md"
10
10
  license = "MIT AND Apache-2.0"
11
11
  authors = [
12
12
  { name = "34j", email = "34j.95a2p@simplelogin.com" },
13
13
  ]
14
- requires-python = ">=3.9"
14
+ requires-python = ">=3.12"
15
15
  classifiers = [
16
16
  "Development Status :: 2 - Pre-Alpha",
17
17
  "Intended Audience :: Developers",
@@ -9,11 +9,11 @@ from typing import (
9
9
  Any,
10
10
  Literal,
11
11
  Protocol,
12
+ Self,
12
13
  runtime_checkable,
13
14
  )
14
15
 
15
16
  from typing_extensions import CapsuleType as PyCapsule
16
- from typing_extensions import Self
17
17
 
18
18
  inf = float("inf")
19
19
 
@@ -1154,6 +1154,380 @@ class Array[TDtype, TDevice](Protocol):
1154
1154
  """
1155
1155
  ...
1156
1156
 
1157
+ def __radd__(self, other: int | float | complex | Self, /) -> Self:
1158
+ """
1159
+ Calculates the sum for each element of an array instance with the respective element of the array ``other``.
1160
+
1161
+ Parameters
1162
+ ----------
1163
+ self
1164
+ array instance (augend array). Should have a numeric data type.
1165
+ other: Union[int, float, complex, array]
1166
+ addend array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a numeric data type.
1167
+
1168
+ Returns
1169
+ -------
1170
+ out: array
1171
+ an array containing the element-wise sums. The returned array must have a data type determined by :ref:`type-promotion`.
1172
+
1173
+ Notes
1174
+ -----
1175
+
1176
+ .. note::
1177
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.add`.
1178
+
1179
+ .. versionchanged:: 2022.12
1180
+ Added complex data type support.
1181
+
1182
+ """
1183
+ ...
1184
+
1185
+ def __rand__(self, other: int | bool | Self, /) -> Self:
1186
+ """
1187
+ Evaluates ``self_i & other_i`` for each element of an array instance with the respective element of the array ``other``.
1188
+
1189
+ Parameters
1190
+ ----------
1191
+ self
1192
+ array instance. Should have an integer or boolean data type.
1193
+ other: Union[int, bool, array]
1194
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have an integer or boolean data type.
1195
+
1196
+ Returns
1197
+ -------
1198
+ out: array
1199
+ an array containing the element-wise results. The returned array must have a data type determined by :ref:`type-promotion`.
1200
+
1201
+
1202
+ .. note::
1203
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.bitwise_and`.
1204
+
1205
+ """
1206
+ ...
1207
+
1208
+ def __rfloordiv__(self, other: int | float | Self, /) -> Self:
1209
+ """
1210
+ Evaluates ``self_i // other_i`` for each element of an array instance with the respective element of the array ``other``.
1211
+
1212
+ .. note::
1213
+ For input arrays which promote to an integer data type, the result of division by zero is unspecified and thus implementation-defined.
1214
+
1215
+ Parameters
1216
+ ----------
1217
+ self
1218
+ array instance. Should have a real-valued data type.
1219
+ other: Union[int, float, array]
1220
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a real-valued data type.
1221
+
1222
+ Returns
1223
+ -------
1224
+ out: array
1225
+ an array containing the element-wise results. The returned array must have a data type determined by :ref:`type-promotion`.
1226
+
1227
+
1228
+ .. note::
1229
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.floor_divide`.
1230
+
1231
+ """
1232
+ ...
1233
+
1234
+ def __rlshift__(self, other: int | Self, /) -> Self:
1235
+ """
1236
+ Evaluates ``self_i << other_i`` for each element of an array instance with the respective element of the array ``other``.
1237
+
1238
+ Parameters
1239
+ ----------
1240
+ self
1241
+ array instance. Should have an integer data type.
1242
+ other: Union[int, array]
1243
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have an integer data type. Each element must be greater than or equal to ``0``.
1244
+
1245
+ Returns
1246
+ -------
1247
+ out: array
1248
+ an array containing the element-wise results. The returned array must have the same data type as ``self``.
1249
+
1250
+
1251
+ .. note::
1252
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.bitwise_left_shift`.
1253
+
1254
+ """
1255
+ ...
1256
+
1257
+ def __rmatmul__(self, other: Self, /) -> Self:
1258
+ """
1259
+ Computes the matrix product.
1260
+
1261
+ .. note::
1262
+ The ``matmul`` function must implement the same semantics as the built-in ``@`` operator (see `PEP 465 <https://www.python.org/dev/peps/pep-0465>`_).
1263
+
1264
+ Parameters
1265
+ ----------
1266
+ self
1267
+ array instance. Should have a numeric data type. Must have at least one dimension. If ``self`` is one-dimensional having shape ``(M,)`` and ``other`` has more than one dimension, ``self`` must be promoted to a two-dimensional array by prepending ``1`` to its dimensions (i.e., must have shape ``(1, M)``). After matrix multiplication, the prepended dimensions in the returned array must be removed. If ``self`` has more than one dimension (including after vector-to-matrix promotion), ``shape(self)[:-2]`` must be compatible with ``shape(other)[:-2]`` (after vector-to-matrix promotion) (see :ref:`broadcasting`). If ``self`` has shape ``(..., M, K)``, the innermost two dimensions form matrices on which to perform matrix multiplication.
1268
+ other: array
1269
+ other array. Should have a numeric data type. Must have at least one dimension. If ``other`` is one-dimensional having shape ``(N,)`` and ``self`` has more than one dimension, ``other`` must be promoted to a two-dimensional array by appending ``1`` to its dimensions (i.e., must have shape ``(N, 1)``). After matrix multiplication, the appended dimensions in the returned array must be removed. If ``other`` has more than one dimension (including after vector-to-matrix promotion), ``shape(other)[:-2]`` must be compatible with ``shape(self)[:-2]`` (after vector-to-matrix promotion) (see :ref:`broadcasting`). If ``other`` has shape ``(..., K, N)``, the innermost two dimensions form matrices on which to perform matrix multiplication.
1270
+
1271
+
1272
+ .. note::
1273
+ If either ``x1`` or ``x2`` has a complex floating-point data type, neither argument must be complex-conjugated or transposed. If conjugation and/or transposition is desired, these operations should be explicitly performed prior to computing the matrix product.
1274
+
1275
+ Returns
1276
+ -------
1277
+ out: array
1278
+ - if both ``self`` and ``other`` are one-dimensional arrays having shape ``(N,)``, a zero-dimensional array containing the inner product as its only element.
1279
+ - if ``self`` is a two-dimensional array having shape ``(M, K)`` and ``other`` is a two-dimensional array having shape ``(K, N)``, a two-dimensional array containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_ and having shape ``(M, N)``.
1280
+ - if ``self`` is a one-dimensional array having shape ``(K,)`` and ``other`` is an array having shape ``(..., K, N)``, an array having shape ``(..., N)`` (i.e., prepended dimensions during vector-to-matrix promotion must be removed) and containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_.
1281
+ - if ``self`` is an array having shape ``(..., M, K)`` and ``other`` is a one-dimensional array having shape ``(K,)``, an array having shape ``(..., M)`` (i.e., appended dimensions during vector-to-matrix promotion must be removed) and containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_.
1282
+ - if ``self`` is a two-dimensional array having shape ``(M, K)`` and ``other`` is an array having shape ``(..., K, N)``, an array having shape ``(..., M, N)`` and containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_ for each stacked matrix.
1283
+ - if ``self`` is an array having shape ``(..., M, K)`` and ``other`` is a two-dimensional array having shape ``(K, N)``, an array having shape ``(..., M, N)`` and containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_ for each stacked matrix.
1284
+ - if either ``self`` or ``other`` has more than two dimensions, an array having a shape determined by :ref:`broadcasting` ``shape(self)[:-2]`` against ``shape(other)[:-2]`` and containing the `conventional matrix product <https://en.wikipedia.org/wiki/Matrix_multiplication>`_ for each stacked matrix.
1285
+ - The returned array must have a data type determined by :ref:`type-promotion`.
1286
+
1287
+ Notes
1288
+ -----
1289
+
1290
+ .. note::
1291
+ Results must equal the results returned by the equivalent function :func:`~array_api.matmul`.
1292
+
1293
+ **Raises**
1294
+
1295
+ - if either ``self`` or ``other`` is a zero-dimensional array.
1296
+ - if ``self`` is a one-dimensional array having shape ``(K,)``, ``other`` is a one-dimensional array having shape ``(L,)``, and ``K != L``.
1297
+ - if ``self`` is a one-dimensional array having shape ``(K,)``, ``other`` is an array having shape ``(..., L, N)``, and ``K != L``.
1298
+ - if ``self`` is an array having shape ``(..., M, K)``, ``other`` is a one-dimensional array having shape ``(L,)``, and ``K != L``.
1299
+ - if ``self`` is an array having shape ``(..., M, K)``, ``other`` is an array having shape ``(..., L, N)``, and ``K != L``.
1300
+
1301
+ .. versionchanged:: 2022.12
1302
+ Added complex data type support.
1303
+
1304
+ """
1305
+ ...
1306
+
1307
+ def __rmod__(self, other: int | float | Self, /) -> Self:
1308
+ """
1309
+ Evaluates ``self_i % other_i`` for each element of an array instance with the respective element of the array ``other``.
1310
+
1311
+ .. note::
1312
+ For input arrays which promote to an integer data type, the result of division by zero is unspecified and thus implementation-defined.
1313
+
1314
+ Parameters
1315
+ ----------
1316
+ self
1317
+ array instance. Should have a real-valued data type.
1318
+ other: Union[int, float, array]
1319
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a real-valued data type.
1320
+
1321
+ Returns
1322
+ -------
1323
+ out: array
1324
+ an array containing the element-wise results. Each element-wise result must have the same sign as the respective element ``other_i``. The returned array must have a real-valued floating-point data type determined by :ref:`type-promotion`.
1325
+
1326
+
1327
+ .. note::
1328
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.remainder`.
1329
+
1330
+ """
1331
+ ...
1332
+
1333
+ def __rmul__(self, other: int | float | complex | Self, /) -> Self:
1334
+ """
1335
+ Calculates the product for each element of an array instance with the respective element of the array ``other``.
1336
+
1337
+ .. note::
1338
+ Floating-point multiplication is not always associative due to finite precision.
1339
+
1340
+ Parameters
1341
+ ----------
1342
+ self
1343
+ array instance. Should have a numeric data type.
1344
+ other: Union[int, float, complex, array]
1345
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a numeric data type.
1346
+
1347
+ Returns
1348
+ -------
1349
+ out: array
1350
+ an array containing the element-wise products. The returned array must have a data type determined by :ref:`type-promotion`.
1351
+
1352
+ Notes
1353
+ -----
1354
+
1355
+ .. note::
1356
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.multiply`.
1357
+
1358
+ .. versionchanged:: 2022.12
1359
+ Added complex data type support.
1360
+
1361
+ """
1362
+ ...
1363
+
1364
+ def __ror__(self, other: int | bool | Self, /) -> Self:
1365
+ """
1366
+ Evaluates ``self_i | other_i`` for each element of an array instance with the respective element of the array ``other``.
1367
+
1368
+ Parameters
1369
+ ----------
1370
+ self
1371
+ array instance. Should have an integer or boolean data type.
1372
+ other: Union[int, bool, array]
1373
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have an integer or boolean data type.
1374
+
1375
+ Returns
1376
+ -------
1377
+ out: array
1378
+ an array containing the element-wise results. The returned array must have a data type determined by :ref:`type-promotion`.
1379
+
1380
+ Notes
1381
+ -----
1382
+
1383
+ .. note::
1384
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.bitwise_or`.
1385
+
1386
+ """
1387
+ ...
1388
+
1389
+ def __rpow__(self, other: int | float | complex | Self, /) -> Self:
1390
+ """
1391
+ Calculates an implementation-dependent approximation of exponentiation by raising each element (the base) of an array instance to the power of ``other_i`` (the exponent), where ``other_i`` is the corresponding element of the array ``other``.
1392
+
1393
+ .. note::
1394
+ If both ``self`` and ``other`` have integer data types, the result of ``__pow__`` when `other_i` is negative (i.e., less than zero) is unspecified and thus implementation-dependent.
1395
+
1396
+ If ``self`` has an integer data type and ``other`` has a floating-point data type, behavior is implementation-dependent, as type promotion between data type "kinds" (e.g., integer versus floating-point) is unspecified.
1397
+
1398
+ Parameters
1399
+ ----------
1400
+ self
1401
+ array instance whose elements correspond to the exponentiation base. Should have a numeric data type.
1402
+ other: Union[int, float, complex, array]
1403
+ other array whose elements correspond to the exponentiation exponent. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a numeric data type.
1404
+
1405
+ Returns
1406
+ -------
1407
+ out: array
1408
+ an array containing the element-wise results. The returned array must have a data type determined by :ref:`type-promotion`.
1409
+
1410
+ Notes
1411
+ -----
1412
+
1413
+ .. note::
1414
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.pow`.
1415
+
1416
+ .. versionchanged:: 2022.12
1417
+ Added complex data type support.
1418
+
1419
+ """
1420
+ ...
1421
+
1422
+ def __rrshift__(self, other: int | Self, /) -> Self:
1423
+ """
1424
+ Evaluates ``self_i >> other_i`` for each element of an array instance with the respective element of the array ``other``.
1425
+
1426
+ Parameters
1427
+ ----------
1428
+ self
1429
+ array instance. Should have an integer data type.
1430
+ other: Union[int, array]
1431
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have an integer data type. Each element must be greater than or equal to ``0``.
1432
+
1433
+ Returns
1434
+ -------
1435
+ out: array
1436
+ an array containing the element-wise results. The returned array must have the same data type as ``self``.
1437
+
1438
+
1439
+ .. note::
1440
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.bitwise_right_shift`.
1441
+
1442
+ """
1443
+ ...
1444
+
1445
+ def __rsub__(self, other: int | float | complex | Self, /) -> Self:
1446
+ """
1447
+ Calculates the difference for each element of an array instance with the respective element of the array ``other``.
1448
+
1449
+ The result of ``self_i - other_i`` must be the same as ``self_i + (-other_i)`` and must be governed by the same floating-point rules as addition (see :meth:`array.__add__`).
1450
+
1451
+ Parameters
1452
+ ----------
1453
+ self
1454
+ array instance (minuend array). Should have a numeric data type.
1455
+ other: Union[int, float, complex, array]
1456
+ subtrahend array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a numeric data type.
1457
+
1458
+ Returns
1459
+ -------
1460
+ out: array
1461
+ an array containing the element-wise differences. The returned array must have a data type determined by :ref:`type-promotion`.
1462
+
1463
+ Notes
1464
+ -----
1465
+
1466
+ .. note::
1467
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.subtract`.
1468
+
1469
+ .. versionchanged:: 2022.12
1470
+ Added complex data type support.
1471
+
1472
+ """
1473
+ ...
1474
+
1475
+ def __rtruediv__(self, other: int | float | complex | Self, /) -> Self:
1476
+ """
1477
+ Evaluates ``self_i / other_i`` for each element of an array instance with the respective element of the array ``other``.
1478
+
1479
+ .. note::
1480
+ If one or both of ``self`` and ``other`` have integer data types, the result is implementation-dependent, as type promotion between data type "kinds" (e.g., integer versus floating-point) is unspecified.
1481
+
1482
+ Specification-compliant libraries may choose to raise an error or return an array containing the element-wise results. If an array is returned, the array must have a real-valued floating-point data type.
1483
+
1484
+ Parameters
1485
+ ----------
1486
+ self
1487
+ array instance. Should have a numeric data type.
1488
+ other: Union[int, float, complex, array]
1489
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have a numeric data type.
1490
+
1491
+ Returns
1492
+ -------
1493
+ out: array
1494
+ an array containing the element-wise results. The returned array should have a floating-point data type determined by :ref:`type-promotion`.
1495
+
1496
+ Notes
1497
+ -----
1498
+
1499
+ .. note::
1500
+ Element-wise results, including special cases, must equal the results returned by the equivalent element-wise function :func:`~array_api.divide`.
1501
+
1502
+ .. versionchanged:: 2022.12
1503
+ Added complex data type support.
1504
+
1505
+ """
1506
+ ...
1507
+
1508
+ def __rxor__(self, other: int | bool | Self, /) -> Self:
1509
+ """
1510
+ Evaluates ``self_i ^ other_i`` for each element of an array instance with the respective element of the array ``other``.
1511
+
1512
+ Parameters
1513
+ ----------
1514
+ self
1515
+ array instance. Should have an integer or boolean data type.
1516
+ other: Union[int, bool, array]
1517
+ other array. Must be compatible with ``self`` (see :ref:`broadcasting`). Should have an integer or boolean data type.
1518
+
1519
+ Returns
1520
+ -------
1521
+ out: array
1522
+ an array containing the element-wise results. The returned array must have a data type determined by :ref:`type-promotion`.
1523
+
1524
+
1525
+ .. note::
1526
+ Element-wise results must equal the results returned by the equivalent element-wise function :func:`~array_api.bitwise_xor`.
1527
+
1528
+ """
1529
+ ...
1530
+
1157
1531
 
1158
1532
  @runtime_checkable
1159
1533
  class astype[TArray: Array, TDtype](Protocol):