forked from 21cmfast/21cmFAST
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsetup.py
98 lines (86 loc) · 3.03 KB
/
setup.py
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
#!/usr/bin/env python
"""Setup the package."""
from setuptools import find_packages, setup
import glob
import io
import os
import re
import shutil
from os.path import dirname, expanduser, join
def _read(*names, **kwargs):
return open(
join(dirname(__file__), *names), encoding=kwargs.get("encoding", "utf8")
).read()
pkgdir = os.path.dirname(os.path.abspath(__file__))
# Enable code coverage for C code: we can't use CFLAGS=-coverage in tox.ini, since that
# may mess with compiling dependencies (e.g. numpy). Therefore we set SETUPPY_
# CFLAGS=-coverage in tox.ini and copy it to CFLAGS here (after deps have been safely installed).
if "TOXENV" in os.environ and "SETUPPY_CFLAGS" in os.environ:
os.environ["CFLAGS"] = os.environ["SETUPPY_CFLAGS"]
test_req = [
"pre-commit",
"pytest>=5.0",
"pytest-cov",
"tox",
"pytest-remotedata>=0.3.2",
"powerbox",
"pytest-plt",
"questionary",
]
doc_req = ["nbsphinx", "numpydoc", "sphinx >= 1.3", "sphinx-rtd-theme"]
setup(
name="exo21cmFAST",
license="GPL3",
description="A semi-numerical cosmological simulation code for the 21cm signal with exotic energy injection",
long_description="%s\n%s"
% (
re.compile("^.. start-badges.*^.. end-badges", re.M | re.S).sub(
"", _read("README.md")
),
re.sub(":[a-z]+:`~?(.*?)`", r"``\1``", _read("CHANGELOG.rst")),
),
author="Gaétan Facchinetti",
author_email="gaetan.facchinetti@ulb.be",
url="https://github.com/gaetanfacchinetti/exo21cmFAST",
packages=find_packages("src"),
package_dir={"": "src"},
include_package_data=True,
zip_safe=False,
classifiers=[
# complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GPL-3.0-only",
"Operating System :: Unix",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: Implementation :: CPython",
],
keywords=["Epoch of Reionization", "Cosmology", "Dark Matter"],
install_requires=[
"click",
"numpy",
"pyyaml",
"cffi>=1.0",
"scipy",
"astropy>=2.0",
"h5py>=2.8.0",
"cached_property",
"matplotlib",
"bidict",
],
extras_require={"tests": test_req, "docs": doc_req, "dev": test_req + doc_req},
setup_requires=["cffi>=1.0", "setuptools_scm"],
entry_points={"console_scripts": ["exo21cmfast = py21cmfast.cli:main"]},
cffi_modules=[f"{pkgdir}/build_cffi.py:ffi"],
use_scm_version={
"write_to": "src/py21cmfast/_version.py",
"parentdir_prefix_version": "exo21cmFAST-",
"fallback_version": "0.0.0",
},
)