Skip to content

Commit 8e911db

Browse files
authored
update testing (#395)
1 parent 3cdcbd5 commit 8e911db

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

.github/workflows/run_tests.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@ jobs:
88
runs-on: ubuntu-latest
99
strategy:
1010
matrix:
11-
# TF didn't support 3.13, add when supported
12-
python-version: ['3.9', '3.11', '3.12']
13-
# currently there is conflict between tf, oneflow and paddle in protobuf versions.
11+
python-version: ['3.10', '3.11', '3.13']
12+
# there was (and likely still is) conflict between tf, oneflow and paddle in protobuf versions.
1413
# cupy is not tested because it demands gpu
1514
# oneflow testing is dropped, see details at https://github.com/Oneflow-Inc/oneflow/issues/10340
16-
# paddle was switched off because of divergence with numpy in py3.10, paddle==2.6.1
17-
frameworks: ['numpy pytorch tensorflow jax']
15+
# paddle testing is dropped because of divergence with numpy in py3.10, paddle==2.6.1
16+
frameworks: ['numpy pytorch tensorflow jax mlx']
1817
# The last pytensor release for 3.9 does not have a pin to numpy < 2, but not compatible with numpy 2,
1918
# so we skip it in testing
2019
include:

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,16 +311,24 @@ Einops works with ...
311311
- [tinygrad](https://github.com/tinygrad/tinygrad) (community)
312312
- [pytensor](https://github.com/pymc-devs/pytensor) (community)
313313

314-
Additionally, einops can be used with any framework that supports
314+
315+
316+
```python
317+
from einops import rearrange
318+
=> from einops.array_api import rearrange
319+
```
320+
321+
But actually it is even better: einops can be used with *any* framework that supports
315322
[Python array API standard](https://data-apis.org/array-api/latest/API_specification/index.html),
316-
which includes
323+
to name a few:
317324

318325
- numpy >= 2.0
319326
- [MLX](https://github.com/ml-explore/mlx) # yes, einops works with apple's framework
320327
- [pydata/sparse](https://github.com/pydata/sparse) >= 0.15 # and works with sparse tensors
321328
- [cubed](https://github.com/cubed-dev/cubed) # and with distributed tensors too
322329
- [quantco/ndonnx](https://github.com/Quantco/ndonnx)
323-
- recent releases of jax and cupy.
330+
- jax
331+
- cupy
324332
- dask is supported via [array-api-compat](https://github.com/data-apis/array-api-compat)
325333

326334

einops/tests/run_tests.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@ def main():
3434
"paddle": ["paddlepaddle"],
3535
"oneflow": ["oneflow==0.9.0"],
3636
"pytensor": ["pytensor"],
37-
"mlx": ["mlx"],
3837
}
38+
if sys.platform == "darwin":
39+
framework_name2installation["mlx"] = ["mlx"]
40+
if sys.platform.startswith("linux"):
41+
framework_name2installation["mlx"] = ["mlx[cpu]"]
3942

4043
usage = f"""
4144
Usage: python -m einops.tests.run_tests <frameworks> [--pip-install]

0 commit comments

Comments
 (0)