forked from ERGO-Code/HiGHS
-
Notifications
You must be signed in to change notification settings - Fork 2
/
pyproject.toml
205 lines (163 loc) · 6.43 KB
/
pyproject.toml
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
[project.urls]
"Source Code" = "https://github.com/ERGO-Code/HiGHS"
"Bug Tracker" = "https://github.com/ERGO-Code/HiGHS/issues"
[build-system]
requires = ["scikit-build-core>=0.3.3", "pybind11", "numpy"]
build-backend = "scikit_build_core.build"
[project]
name = "highspy"
version = "1.8.0"
description = "A thin set of pybind11 wrappers to HiGHS"
authors = [{ name = "HiGHS developers", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.8"
dependencies = ["numpy"]
classifiers = [
# "Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"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",
"Typing :: Typed",
]
[project.optional-dependencies]
test = ["pytest", "numpy"]
[tool.scikit-build]
cmake.args = ["-DPYTHON_BUILD_SETUP=ON"]
wheel.expand-macos-universal-tags = true
# A list of packages to auto-copy into the wheel. If this is not set, it will
# default to the first of ``src/<package>``, ``python/<package>``, or
# ``<package>`` if they exist. The prefix(s) will be stripped from the package
# name inside the wheel.
wheel.packages = ["src/highspy"]
# Files to include in the SDist even if they are skipped by default. Supports
# gitignore syntax.
sdist.include = [
"src/highspy/highs.py",
"src/highspy/__init__.py",
"src/highspy/__init__.pyi",
"src/highspy/_core/*.pyi",
"tests/test_highspy.py",
"Version.txt",
"LICENSE",
"README.md",
"src/HConfig.h.in",
"src",
"external",
"cmake",
]
sdist.exclude = [
".github",
".gitattributes",
".gitignore",
".github",
"app",
"build",
"check",
"docs",
"subprojects",
".coin-or",
"build_webdemo.sh",
".clang-format",
"__setup.py",
"BUILD.bazel",
"meson*",
"MODS.md",
"WORKSPACE",
]
# # Verbose printout when building.
# cmake.verbose = false
# # The build type to use when building the project. Valid options are: "Debug",
# # "Release", "RelWithDebInfo", "MinSizeRel", "", etc.
# cmake.build-type = "Release"
# # The versions of Ninja to allow. If Ninja is not present on the system or does
# # not pass this specifier, it will be downloaded via PyPI if possible. An empty
# # string will disable this check.
# ninja.version = ">=1.5"
# # If CMake is not present on the system or is older required, it will be
# # downloaded via PyPI if possible. An empty string will disable this check.
# ninja.make-fallback = true
# # The logging level to display, "DEBUG", "INFO", "WARNING", and "ERROR" are
# # possible options.
# logging.level = "WARNING"
# # If set to True, try to build a reproducible distribution (Unix and Python 3.9+
# # recommended). ``SOURCE_DATE_EPOCH`` will be used for timestamps, or a fixed
# # value if not set.
# sdist.reproducible = true
# # If set to True, CMake will be run before building the SDist.
# sdist.cmake = false
# # The Python tags. The default (empty string) will use the default Python
# # version. You can also set this to "cp37" to enable the CPython 3.7+ Stable ABI
# # / Limited API (only on CPython and if the version is sufficient, otherwise
# # this has no effect). Or you can set it to "py3" or "py2.py3" to ignore Python
# # ABI compatibility. The ABI tag is inferred from this tag.
# wheel.py-api = ""
# # Fill out extra tags that are not required. This adds "x86_64" and "arm64" to
# # the list of platforms when "universal2" is used, which helps older Pip's
# # (before 21.0.1) find the correct wheel.
# # wheel.expand-macos-universal-tags = false
# # The install directory for the wheel. This is relative to the platlib root. You
# # might set this to the package name. The original dir is still at
# # SKBUILD_PLATLIB_DIR (also SKBUILD_DATA_DIR, etc. are available). EXPERIMENTAL:
# # An absolute path will be one level higher than the platlib root, giving access
# # to "/platlib", "/data", "/headers", and "/scripts".
# # wheel.install-dir = ""
# # A list of license files to include in the wheel. Supports glob patterns.
# wheel.license-files = ["LICEN[CS]E*", "COPYING*", "NOTICE*", "AUTHORS*"]
# # If set to True (the default), CMake will be run before building the wheel.
# wheel.cmake = true
# # Target the platlib or the purelib. If not set, the default is to target the
# # platlib if wheel.cmake is true, and the purelib otherwise.
# # wheel.platlib = ""
# # A set of patterns to exclude from the wheel. This is additive to the SDist
# # exclude patterns. This applies to the final paths in the wheel, and can
# # exclude files from CMake output as well. Editable installs may not respect
# # this exclusion.
# wheel.exclude = []
# # The build tag to use for the wheel. If empty, no build tag is used.
# wheel.build-tag = ""
# # If CMake is less than this value, backport a copy of FindPython. Set to 0
# # disable this, or the empty string.
# backport.find-python = "3.26.1"
# # Select the editable mode to use. Can be "redirect" (default) or "inplace".
# editable.mode = "redirect"
# # Turn on verbose output for the editable mode rebuilds.
# editable.verbose = true
# # Rebuild the project when the package is imported. The build-directory must be
# # set.
# editable.rebuild = false
# # The components to install. If empty, all default components are installed.
# install.components = []
# # Whether to strip the binaries. True for scikit-build-core 0.5+.
# install.strip = false
# # List dynamic metadata fields and hook locations in this table.
# metadata = {}
# # Strictly check all config options. If False, warnings will be printed for
# # unknown options. If True, an error will be raised.
# strict-config = true
# # Enable early previews of features not finalized yet.
# experimental = false
# # If set, this will provide a method for backward compatibility.
# # minimum-version = "0.8" # current version
# # The build directory. Defaults to a temporary directory, but can be set.
# # build-dir = ""
[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
log_cli_level = "INFO"
filterwarnings = ["error"]
testpaths = ["tests"]
[tool.cibuildwheel]
build = "*"
skip = "cp3{6,7}-*"
# Enable free-threaded support
free-threaded-support = true
test-command = "pytest {project}/tests"
test-extras = ["test", "numpy"]
test-skip = ["*universal2:arm64"]
build-verbosity = 1