-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathpyproject.toml
More file actions
107 lines (98 loc) · 3.42 KB
/
Copy pathpyproject.toml
File metadata and controls
107 lines (98 loc) · 3.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[build-system]
build-backend = 'mesonpy'
requires = [
"numpy >= 2.0.0",
"meson-python"
]
[project]
name = 'scs'
version = "3.2.11"
description = 'Splitting conic solver'
readme = 'README.md'
requires-python = '>=3.9'
classifiers = [
'License :: OSI Approved :: MIT License',
'Programming Language :: C',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Programming Language :: Python :: 3 :: Only',
'Programming Language :: Python :: Free Threading :: 3 - Stable',
'Programming Language :: Python :: Implementation :: CPython',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Operating System :: Unix',
'Operating System :: MacOS',
]
license = {file = 'LICENSE'}
authors = [
{name = "Brendan O'Donoghue", email = "bodonoghue85@gmail.com"}]
dependencies = [
'numpy',
'scipy',
]
[tool.cibuildwheel]
skip = [
"*-win32", # fails on locating Python headers, probably meson.build is misconfigured
"*musllinux*aarch64*" # no Scipy wheels for this
]
# Test
test-requires = "pytest"
test-command = "pytest {package}/test"
# we use the newer image for aarch64, for this there are openblas dev libraries
manylinux-aarch64-image = "manylinux_2_28"
[tool.cibuildwheel.linux]
archs = [
"x86_64",
"aarch64",
# "i686", # various issues, may work with some more testing
# "s390x", # haven't tried it
# "ppc64le", # haven't tried it
# "armv7l", # haven't tried it
]
[tool.cibuildwheel.windows]
before-build = "pip install delvewheel"
# This will probably become default in newer cibuildwheels versions
repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}"
config-settings = {setup-args = "-Dlink_mkl=true"}
# Openblas installation for 3 different linux images
[[tool.cibuildwheel.overrides]]
select = "*-manylinux_x86_64"
inherit.before-all = "append"
before-all = [
"dnf install -y dnf-plugins-core",
"dnf config-manager --add-repo https://yum.repos.intel.com/oneapi",
"rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB",
"dnf install -y intel-oneapi-mkl-devel",
]
environment = {PKG_CONFIG_PATH = "/opt/intel/oneapi/mkl/latest/lib/pkgconfig:/opt/intel/oneapi/compiler/latest/lib/pkgconfig:$PKG_CONFIG_PATH", LD_LIBRARY_PATH = "/opt/intel/oneapi/mkl/latest/lib/intel64:/opt/intel/oneapi/mkl/latest/lib:/opt/intel/oneapi/compiler/latest/lib:$LD_LIBRARY_PATH"}
config-settings = {setup-args = "-Dlink_mkl=true"}
[[tool.cibuildwheel.overrides]]
select = "*-manylinux_aarch64"
inherit.before-all = "append"
before-all = [
# "dnf update", "dnf search blas",
"dnf install -y openblas-devel"]
[[tool.cibuildwheel.overrides]]
select = "*-musllinux*"
inherit.before-all = "append"
before-all = [
# "apk update", "apk search -v '*blas*'",
"apk add openblas-dev"]
[tool.pytest.ini_options]
testpaths = [
"test",
]
faulthandler_timeout = 600
faulthandler_exit_on_timeout = true
markers = [
"thread_unsafe: mark test as unsafe to run in parallel threads (pytest-run-parallel)",
]
# pytest-run-parallel: functions that are not thread-safe
# (capsys/capfd are detected automatically by pytest-run-parallel)
thread_unsafe_functions = ["numpy.random.seed"]