-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpyproject.toml
executable file
·127 lines (113 loc) · 4.19 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
# pyproject.toml
[project]
name = "tallem"
repository = "https://github.com/peekxc/tallem"
# poetry build -vvv + pip install dist/*.whl works! successfully loads the extension modules, *.so are in the wheel
# python -m build --wheel + pip install dist/*.whl also works!
# setuptools is only non-working builder
[build-system]
requires = ["setuptools>=42", "build", "wheel", "poetry>=1.0.10", "meson>=0.60", "ninja", "cmake", "Cython", "numpy==1.20", "scipy>=1.5"]
build-backend = "poetry.masonry.api" # for developing using poetry
# requires = ["setuptools>=42", "build", "wheel", "meson>=0.60", "ninja", "cmake", "Cython", "numpy", "scipy>=1.6"]
# build-backend = "setuptools.build_meta"
[tool.poetry]
name = "tallem"
version = "0.2.5"
description = "Topological Assembly of Locally Euclidean Models"
license = "Apache-2.0"
authors = ["Matt Piekenbrock <matt.piekenbrock@gmail.com>"]
readme = "README.md"
repository = "https://github.com/peekxc/tallem"
classifiers = [
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Intended Audience :: Science/Research"
]
build = "setup.py"
packages = [
{ include = "tallem", from = "src" }, # from = "src/tallem"
# { include = "extensions", from = "src/tallem" }
]
include = [
{ path = "src/**/*.so", format = "wheel" },
{ path = "src/**/*.pyd", format = "wheel" },
"README.md"
] # TODO: configure this to add/remove things
[tool.poetry.dependencies]
python = ">=3.8,<3.10"
scipy = ">=1.5"
numpy = "==1.20"
autograd = {version = ">=.3", optional = true}
pymanopt = {version = ">=0.2.5", optional = true}
scikit-learn = {version = ">=1.0", optional = true}
# Need to keep build-time dependencies as dev-dependencies
# for now, see: https://github.com/python-poetry/poetry/issues/2789
[tool.poetry.dev-dependencies]
Cython = ">=0.29"
meson = ">=0.60"
ninja = ">=1.10"
cmake = ">=3"
numpy = "==1.20"
scipy = ">=1.5"
pytest = ">=3.4"
## Original requirements manually compiled from the list generated by " pipdeptree | grep -e '^\S' " specified in the src/tallem directory
[tool.poetry.extras]
autograd = ["autograd"]
pymanopt = ["pymanopt"]
scikit-learn = ["scikit-learn"]
# Consider wheelbin
[tool.cibuildwheel]
test-requires = "pytest"
test-command = "pytest {project}/tests"
archs = "auto64"
# manylinux-x86_64_image = "manylinux2014" # specifies precisely the manylinux container
# manylinux-x86_64-image = "dockcross/manylinux-x64"
# manylinux-i686-image = "dockcross/manylinux-x86"
build = "cp38-manylinux_x86_64" #["cp38-win*", "cp38-manylinux*", "cp38-macosx_x86_64"]
build-frontend = "build" # cibuildwheel run command: python -m build --wheel
build-verbosity = 1
skip = ["*-win32", "*-manylinux_i686", "*-musllinux*", "pp*"] # Skip 32-bit, MUSL linux, and PyPy builds
# Bash: export CIBW_MANYLINUX_X86_64_IMAGE="manylinux2014" && cibuildwheel ...
[[tool.cibuildwheel.overrides]]
select = "cp38-manylinux*"
archs = ["auto64"] # "aarch64"
before-all = [
"yum update",
"yum install gcc openssl-devel bzip2-devel libffi-devel hdf5 -y",
"yum install blas blas-devel lapack lapack-devel -y"
]
# [tool.mesonpep517.entry-points]
# console_scripts = [
# 'build = build:build'
# ]
# requires = ["mesonpep517", "build", "wheel", "meson>=0.59.0", "ninja", "cmake", "Cython", "numpy", "scipy>=1.6"]
# build-backend = "mesonpep517.buildapi"
# [tool.mesonpep517.metadata]
# platforms = "any"
# summary = "Topological Assembly of Locally Euclidean Model"
# author = "Matt Piekenbrock"
# author-email = "matt.piekenbrock@gmail.com"
# # authors = ["Matt Piekenbrock <matt.piekenbrock@gmail.com>"]
# # authors = [
# # name = "Matt Piekenbrock",
# # email = "matt.piekenbrock@gmail.com"
# # ]
# # description = "Topological Assembly of Locally Euclidean Models"
# description-file = "README.md"
# # license = "Apache-2.0"
# # readme = "README.md"
# classifiers = [
# "Development Status :: 3 - Alpha",
# "License :: OSI Approved :: Apache Software License",
# "Operating System :: OS Independent",
# "Programming Language :: Python :: 3",
# "Intended Audience :: Science/Research"
# ]
# requires-python = ">=3.8,<3.10"
# requires = [
# "scipy >= 1.6",
# "numpy >= 1.20"
# ]
# version = "0.2.0"