-
Notifications
You must be signed in to change notification settings - Fork 4
/
pyproject.toml
98 lines (84 loc) · 2.68 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
[build-system]
requires = [
"wheel",
"cython==0.29.30",
"setuptools>=61.0.0",
"setuptools-scm[toml]>=6.2",
"numpy==1.23.2; python_version>='3.11'",
"numpy==1.21.3; python_version=='3.10'",
"numpy==1.19.3; python_version=='3.9'",
"numpy==1.19.0; python_version=='3.8'",
]
build-backend = "setuptools.build_meta"
[project]
name = "pyhtnorm"
authors = [
{name = "Zolisa Bleki", email = "[email protected]"}
]
description = "Fast Simulation of Hyperplane-Truncated Multivatiate Normal Distributions"
readme = "README.md"
dynamic = ["version"]
license = {text = "BSD 3-Clause License"}
requires-python = ">=3.8"
dependencies = ["numpy >= 1.19.0"]
keywords = [
'statistical sampling',
'multivariate gaussian distribution',
'hyperplane truncated multivariate normal',
'structured precision multivariate normal',
'sampling distribution',
'posterior sampling'
]
classifiers = [
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering",
"License :: OSI Approved :: BSD License",
"Programming Language :: C",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows :: Windows 10",
"Operating System :: MacOS :: MacOS X",
"Typing :: Typed",
]
[project.urls]
source = "https://github.com/zoj613/htnorm"
tracker = "https://github.com/zoj613/htnorm/issues"
[tool.setuptools]
packages = ["pyhtnorm"]
[tool.setuptools.exclude-package-data]
pyhtnorm = ["*.pyx"]
[tool.setuptools.data-files]
third_party_licenses = ["third_party_licenses/*"] # must add this here so it can be included in the wheel distribution.
[tool.setuptools_scm]
write_to = "pyhtnorm/_version.py"
[tool.coverage.run]
plugins = ["Cython.Coverage"]
[tool.cibuildwheel]
skip = ["pp3*", "*-musllinux*"]
test-command = [
"cd ~",
"""python -c '\
from pyhtnorm import hyperplane_truncated_mvnorm;\
import numpy as np;\
rng = np.random.default_rng();\
k1, k2 = 1000, 1;\
temp = rng.random((k1, k1));\
cov = temp @ temp.T;\
G = np.ones((k2, k1));\
r = np.zeros(k2);\
mean = rng.random(k1);\
o = hyperplane_truncated_mvnorm(mean, cov, G, r, random_state=rng);\
print(o.sum());\
hyperplane_truncated_mvnorm(mean, cov, G, r, out=o);'
""",
]
[tool.cibuildwheel.linux]
before-all = "yum -y install lapack-devel openblas-devel"
archs = ["auto64"]
[tool.cibuildwheel.macos]
before-all = "brew install openblas lapack"
archs = ["auto64"]
[[tool.cibuildwheel.overrides]]
select = "*-musllinux*"
before-all = "apk add openblas-dev lapack-dev" # musllinux image uses apk instead of yum for package managament