-
Notifications
You must be signed in to change notification settings - Fork 41
/
setup.py
126 lines (112 loc) · 3.66 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
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
#!/usr/bin/env python
import os
import pkgutil
import subprocess
import sys
from setuptools import setup, find_packages, Extension, Command
from setuptools.command.test import test as TestCommand
# allows you to build sphinx docs from the package
# main directory with "python setup.py build_sphinx"
try:
from sphinx.cmd.build import build_main
from sphinx.setup_command import BuildDoc
class BuildSphinx(BuildDoc):
"""Build Sphinx documentation after compiling C source files"""
description = 'Build Sphinx documentation'
def initialize_options(self):
BuildDoc.initialize_options(self)
def finalize_options(self):
BuildDoc.finalize_options(self)
def run(self):
build_cmd = self.reinitialize_command('build_ext')
build_cmd.inplace = 1
self.run_command('build_ext')
build_main(['-b', 'html', './docs', './docs/_build/html'])
except ImportError:
class BuildSphinx(Command):
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
print('!\n! Sphinx is not installed!\n!', file=sys.stderr)
exit(1)
DOCS_REQUIRE = [
'nbsphinx',
'sphinx',
'sphinx-automodapi',
'sphinx-rtd-theme',
'stsci-rtd-theme',
'extension-helpers'
]
TESTS_REQUIRE = [
'pytest',
]
setup(
name='mirage',
description='Create simulated JWST data',
long_description=('A tool to create simulated NIRCam, NIRISS,'
'and FGS exposures'
'using an input dark current exposure and a'
'noiseless seed image, which can be produced'
'from source catalogs. Data can optionally be'
'dispersed as well, to simulate wide field'
'slitless data files.'),
author='STScI (Hilbert, Volk, Chambers, Sahlmann, Filippazzo et al.)',
author_email='[email protected]',
url='https://github.com/spacetelescope/mirage',
keywords=['astronomy'],
classifiers=[
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Topic :: Scientific/Engineering :: Astronomy',
'Topic :: Software Development :: Libraries :: Python Modules',
],
packages=find_packages(exclude=["examples"]),
package_data={'mirage': ['tests/test_data/*/*.yaml',
'tests/test_data/*/*.list',
'tests/test_data/*/*.xml',
'tests/test_data/*/*.pointing',
'config/*.*']
},
use_scm_version=True,
setup_requires=['setuptools_scm'],
install_requires=[
'asdf>=3.4.0',
'astropy>=6.1.3',
'astroquery>=0.4.7',
'bokeh>=3.5.2',
'batman-package',
'crds>=11.18.4',
'grismconf',
'gwcs>=0.21.0',
'h5py>=3.11.0',
'hotsoss>=0.1.10',
'ipython',
'jupyter',
'jwst',
'jwst-backgrounds>=1.3.0',
'jwst_gtvt>=1.0.1',
'lxml>=5.3.0',
'matplotlib>=3.9.2',
'nircam_gsim>=1.71',
'numpy<2.0',
'photutils>=1.13.0',
'pysiaf>=0.23.1',
'scipy>=1.14.1',
'synphot>=1.4.0',
'webbpsf>=1.4.0',
'pyyaml>=6.0.2'
],
include_package_data=True,
extras_require={
'docs': DOCS_REQUIRE,
'test': TESTS_REQUIRE,
},
tests_require=TESTS_REQUIRE,
cmdclass={
'build_sphinx': BuildSphinx
},)