Skip to content

Commit c07338d

Browse files
committed
meson-python
Signed-off-by: Lucas Colley <lucas.colley8@gmail.com>
1 parent 440e728 commit c07338d

File tree

6 files changed

+116
-8
lines changed

6 files changed

+116
-8
lines changed

.github/workflows/publish-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141

4242
- name: Install python-build and twine
4343
run: |
44-
python -m pip install --upgrade pip "setuptools<=67"
44+
python -m pip install --upgrade pip meson-python
4545
python -m pip install build twine
4646
python -m pip list
4747

meson.build

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
project(
2+
'array_api_compat',
3+
version: '1.15.0.dev0',
4+
license: 'MIT',
5+
license_files: ['LICENSE']
6+
)
7+
8+
py = import('python').find_installation()
9+
10+
sources = {
11+
'array_api_compat': files(
12+
'array_api_compat/__init__.py',
13+
'array_api_compat/_internal.py',
14+
),
15+
16+
'array_api_compat/common': files(
17+
'array_api_compat/common/__init__.py',
18+
'array_api_compat/common/_aliases.py',
19+
'array_api_compat/common/_fft.py',
20+
'array_api_compat/common/_helpers.py',
21+
'array_api_compat/common/_linalg.py',
22+
'array_api_compat/common/_typing.py',
23+
),
24+
25+
'array_api_compat/cupy': files(
26+
'array_api_compat/cupy/__init__.py',
27+
'array_api_compat/cupy/_aliases.py',
28+
'array_api_compat/cupy/_info.py',
29+
'array_api_compat/cupy/_typing.py',
30+
'array_api_compat/cupy/fft.py',
31+
'array_api_compat/cupy/linalg.py',
32+
),
33+
34+
'array_api_compat/dask': files(
35+
'array_api_compat/dask/__init__.py',
36+
),
37+
38+
'array_api_compat/dask/array': files(
39+
'array_api_compat/dask/array/__init__.py',
40+
'array_api_compat/dask/array/_aliases.py',
41+
'array_api_compat/dask/array/_info.py',
42+
'array_api_compat/dask/array/fft.py',
43+
'array_api_compat/dask/array/linalg.py',
44+
),
45+
46+
'array_api_compat/numpy': files(
47+
'array_api_compat/numpy/__init__.py',
48+
'array_api_compat/numpy/_aliases.py',
49+
'array_api_compat/numpy/_info.py',
50+
'array_api_compat/numpy/_typing.py',
51+
'array_api_compat/numpy/fft.py',
52+
'array_api_compat/numpy/linalg.py',
53+
),
54+
55+
'array_api_compat/torch': files(
56+
'array_api_compat/torch/__init__.py',
57+
'array_api_compat/torch/_aliases.py',
58+
'array_api_compat/torch/_info.py',
59+
'array_api_compat/torch/_typing.py',
60+
'array_api_compat/torch/fft.py',
61+
'array_api_compat/torch/linalg.py',
62+
),
63+
}
64+
65+
foreach subdir, files : sources
66+
py.install_sources(files, subdir: subdir)
67+
endforeach
68+
69+
subdir('tests')
70+
subdir('vendor_test')

pyproject.toml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[build-system]
2-
requires = ["setuptools"]
3-
build-backend = "setuptools.build_meta"
2+
requires = ["meson-python"]
3+
build-backend = "mesonpy"
44

55
[project]
66
name = "array-api-compat"
@@ -54,10 +54,6 @@ dev = [
5454
homepage = "https://data-apis.org/array-api-compat/"
5555
repository = "https://github.com/data-apis/array-api-compat/"
5656

57-
[tool.setuptools.packages.find]
58-
include = ["array_api_compat*"]
59-
namespaces = false
60-
6157

6258
# Pixi
6359

@@ -73,7 +69,7 @@ name = "pixi-build-python"
7369
version = "*"
7470

7571
[tool.pixi.package.host-dependencies]
76-
setuptools = "*"
72+
meson-python = "*"
7773

7874
### workspace environments ###
7975

tests/meson.build

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
py.install_sources([
2+
'__init__.py',
3+
'_helpers.py',
4+
'test_all.py',
5+
'test_array_namespace.py',
6+
'test_common.py',
7+
'test_copies_or_views.py',
8+
'test_cupy.py',
9+
'test_dask.py',
10+
'test_isdtype.py',
11+
'test_jax.py',
12+
'test_no_dependencies.py',
13+
'test_torch.py',
14+
'test_vendoring.py',
15+
],
16+
subdir: 'array_api_compat/tests'
17+
)

vendor_test/meson.build

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
py.install_sources([
2+
'__init__.py',
3+
'uses_cupy.py',
4+
'uses_dask.py',
5+
'uses_numpy.py',
6+
'uses_torch.py',
7+
],
8+
subdir: 'array_api_compat/vendor_test'
9+
)
10+
11+
subdir('vendored')

vendor_test/vendored/meson.build

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
py.install_sources([
2+
'__init__.py',
3+
],
4+
subdir: 'array_api_compat/vendor_test/vendored'
5+
)
6+
7+
# refers to the sources defined at the top level
8+
foreach subdir, files : sources
9+
py.install_sources(
10+
files,
11+
subdir: subdir.replace('array_api_compat/', 'array_api_compat/vendor_test/vendored/_compat/'),
12+
)
13+
endforeach
14+

0 commit comments

Comments
 (0)