sdss-almanac 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sdss_almanac-0.2.1/LICENSE.md +29 -0
- sdss_almanac-0.2.1/PKG-INFO +201 -0
- sdss_almanac-0.2.1/README.md +142 -0
- sdss_almanac-0.2.1/pyproject.toml +115 -0
- sdss_almanac-0.2.1/setup.cfg +4 -0
- sdss_almanac-0.2.1/src/almanac/__init__.py +4 -0
- sdss_almanac-0.2.1/src/almanac/apogee.py +300 -0
- sdss_almanac-0.2.1/src/almanac/cli.py +556 -0
- sdss_almanac-0.2.1/src/almanac/config.py +110 -0
- sdss_almanac-0.2.1/src/almanac/data_models/__init__.py +3 -0
- sdss_almanac-0.2.1/src/almanac/data_models/exposure.py +350 -0
- sdss_almanac-0.2.1/src/almanac/data_models/fps.py +109 -0
- sdss_almanac-0.2.1/src/almanac/data_models/plate.py +142 -0
- sdss_almanac-0.2.1/src/almanac/data_models/types.py +87 -0
- sdss_almanac-0.2.1/src/almanac/data_models/utils.py +185 -0
- sdss_almanac-0.2.1/src/almanac/database.py +22 -0
- sdss_almanac-0.2.1/src/almanac/display.py +422 -0
- sdss_almanac-0.2.1/src/almanac/etc/__init__.py +0 -0
- sdss_almanac-0.2.1/src/almanac/etc/bad_exposures.csv +432 -0
- sdss_almanac-0.2.1/src/almanac/io.py +320 -0
- sdss_almanac-0.2.1/src/almanac/logger.py +27 -0
- sdss_almanac-0.2.1/src/almanac/qa.py +24 -0
- sdss_almanac-0.2.1/src/almanac/stash/data_models.py +0 -0
- sdss_almanac-0.2.1/src/almanac/stash/plugmap_models.py +165 -0
- sdss_almanac-0.2.1/src/almanac/utils.py +141 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/PKG-INFO +201 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/SOURCES.txt +30 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/dependency_links.txt +1 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/entry_points.txt +2 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/not-zip-safe +1 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/requires.txt +37 -0
- sdss_almanac-0.2.1/src/sdss_almanac.egg-info/top_level.txt +1 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
BSD 3-Clause License
|
2
|
+
|
3
|
+
Copyright (c) 2017, SDSS
|
4
|
+
All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
8
|
+
|
9
|
+
* Redistributions of source code must retain the above copyright notice, this
|
10
|
+
list of conditions and the following disclaimer.
|
11
|
+
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
14
|
+
and/or other materials provided with the distribution.
|
15
|
+
|
16
|
+
* Neither the name of the copyright holder nor the names of its
|
17
|
+
contributors may be used to endorse or promote products derived from
|
18
|
+
this software without specific prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1,201 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: sdss-almanac
|
3
|
+
Version: 0.2.1
|
4
|
+
Summary: Everything we've got
|
5
|
+
Author-email: Andy Casey <andrew.casey@monash.edu>
|
6
|
+
License: BSD 3-Clause License
|
7
|
+
Project-URL: Homepage, https://github.com/sdss/almanac
|
8
|
+
Project-URL: Documentation, https://sdss-almanac.readthedocs.org
|
9
|
+
Project-URL: Repository, https://github.com/sdss/almanac
|
10
|
+
Keywords: astronomy,software
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
12
|
+
Classifier: Natural Language :: English
|
13
|
+
Classifier: Operating System :: OS Independent
|
14
|
+
Classifier: Programming Language :: Python
|
15
|
+
Classifier: Programming Language :: Python :: 3.6
|
16
|
+
Classifier: Programming Language :: Python :: 3.7
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
18
|
+
Classifier: Topic :: Documentation :: Sphinx
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
20
|
+
Requires-Python: >=3.8
|
21
|
+
Description-Content-Type: text/markdown
|
22
|
+
License-File: LICENSE.md
|
23
|
+
Requires-Dist: numpy
|
24
|
+
Requires-Dist: astropy
|
25
|
+
Requires-Dist: h5py
|
26
|
+
Requires-Dist: tqdm
|
27
|
+
Requires-Dist: click
|
28
|
+
Requires-Dist: pydl
|
29
|
+
Requires-Dist: sdssdb
|
30
|
+
Requires-Dist: colorlog
|
31
|
+
Requires-Dist: rich
|
32
|
+
Provides-Extra: dev
|
33
|
+
Requires-Dist: ipython>=7.9.0; extra == "dev"
|
34
|
+
Requires-Dist: matplotlib>=3.1.1; extra == "dev"
|
35
|
+
Requires-Dist: flake8>=3.7.9; extra == "dev"
|
36
|
+
Requires-Dist: doc8>=0.8.0; extra == "dev"
|
37
|
+
Requires-Dist: pytest>=5.2.2; extra == "dev"
|
38
|
+
Requires-Dist: pytest-asyncio>=0.10.0; extra == "dev"
|
39
|
+
Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
|
40
|
+
Requires-Dist: pytest-mock>=1.13.0; extra == "dev"
|
41
|
+
Requires-Dist: pytest-sugar>=0.9.2; extra == "dev"
|
42
|
+
Requires-Dist: isort>=4.3.21; extra == "dev"
|
43
|
+
Requires-Dist: codecov>=2.0.15; extra == "dev"
|
44
|
+
Requires-Dist: coverage[toml]>=5.0; extra == "dev"
|
45
|
+
Requires-Dist: ipdb>=0.12.3; extra == "dev"
|
46
|
+
Requires-Dist: invoke>=1.3.0; extra == "dev"
|
47
|
+
Requires-Dist: twine>=3.1.1; extra == "dev"
|
48
|
+
Requires-Dist: wheel>=0.33.6; extra == "dev"
|
49
|
+
Requires-Dist: sphinx>=3.0.0; extra == "dev"
|
50
|
+
Provides-Extra: docs
|
51
|
+
Requires-Dist: Sphinx<8.0.0,>=5.0.0; extra == "docs"
|
52
|
+
Requires-Dist: furo>=2023.3.27; extra == "docs"
|
53
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.12.0; extra == "docs"
|
54
|
+
Requires-Dist: myst-parser>=0.18.0; extra == "docs"
|
55
|
+
Requires-Dist: sphinxcontrib-bibtex>=2.4.0; extra == "docs"
|
56
|
+
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
|
57
|
+
Requires-Dist: linkify-it-py; extra == "docs"
|
58
|
+
Dynamic: license-file
|
59
|
+
|
60
|
+
## almanac
|
61
|
+
`almanac` scrapes headers from raw image files and cross-matches those against the SDSS database to create a comprehensive summary of everything ever observed with an APOGEE instrument.
|
62
|
+
|
63
|
+
## Getting Started
|
64
|
+
|
65
|
+
Here are a few example cases of how `almanac` might be helpful:
|
66
|
+
|
67
|
+
List all exposures taken yesterday from either telescope:
|
68
|
+
```bash
|
69
|
+
almanac --mjd -1 -vv
|
70
|
+
```
|
71
|
+
|
72
|
+
Or just from Apache Point Observatory:
|
73
|
+
```bash
|
74
|
+
almanac --mjd -1 -vv --apo
|
75
|
+
```
|
76
|
+
|
77
|
+
Write out all exposures taken in the last month to `january.h5`:
|
78
|
+
```bash
|
79
|
+
almanac -o january.h5 --mjd-start -30
|
80
|
+
```
|
81
|
+
|
82
|
+
Write out all fiber observations during 2021, where we switched from plates to robotic fiber positioners:
|
83
|
+
```bash
|
84
|
+
almanac -vv --date-start 2021-01-01 --date-end 2021-31-12 --fibers
|
85
|
+
```
|
86
|
+
|
87
|
+
And it looks pretty, even when it warns you about missing exposures:
|
88
|
+
|
89
|
+

|
90
|
+
|
91
|
+
|
92
|
+
## Installation
|
93
|
+
|
94
|
+
|
95
|
+
### At Utah
|
96
|
+
|
97
|
+
If you want to use this at Utah, you can install it with:
|
98
|
+
|
99
|
+
```bash
|
100
|
+
module load almanac
|
101
|
+
```
|
102
|
+
|
103
|
+
> [!TIP]
|
104
|
+
> We recommend you manage your own Python environment, but if you don't have one set up at Utah then you can use `module load miniconda/3.8.5_astra`.
|
105
|
+
|
106
|
+
### Anywhere else
|
107
|
+
|
108
|
+
`almanac` needs local disk access to raw APOGEE data frames. If you are going to run it somewhere else, you should set up a Globus transfer of raw APOGEE frames, and ensure your internet address is whitelisted to remotely access the SDSS database.
|
109
|
+
|
110
|
+
We recommend using `uv` to manage Python environments. Using `uv`, you can install `almanac` with:
|
111
|
+
```bash
|
112
|
+
uv pip install git+https://github.com/sdss/almanac
|
113
|
+
```
|
114
|
+
|
115
|
+
## Usage
|
116
|
+
|
117
|
+
Use `almanac` to see details on data taken today from both observatories, or specify the observatory:
|
118
|
+
|
119
|
+
```bash
|
120
|
+
almanac
|
121
|
+
almanac --apo # Apache Point Observatory
|
122
|
+
almanac --lco # Las Campanas Observatory
|
123
|
+
```
|
124
|
+
|
125
|
+
### Specifying a date
|
126
|
+
|
127
|
+
If you want a particular day, either use the ``--mjd`` or ``--date`` (UTC) flags:
|
128
|
+
|
129
|
+
```bash
|
130
|
+
almanac --mjd 59300
|
131
|
+
almanac --date 2021-01-01
|
132
|
+
```
|
133
|
+
|
134
|
+
You can use negative MJD values to indicate days relative to today:
|
135
|
+
|
136
|
+
```bash
|
137
|
+
almanac --mjd -1 # Yesterday
|
138
|
+
almanac --mjd -7 # Last week
|
139
|
+
```
|
140
|
+
|
141
|
+
You can also specify a range of days:
|
142
|
+
|
143
|
+
```bash
|
144
|
+
almanac --mjd-start 59300 --mjd-end 59310 # Give me these 10 days
|
145
|
+
almanac --date-start 2021-01-01 --date-end 2021-01-31 # Give me all of January 2021
|
146
|
+
```
|
147
|
+
|
148
|
+
### Fiber mappings
|
149
|
+
|
150
|
+
You can also use `almanac` to see the fiber mappings for a given plate (SDSS-IV) or FPS pointing (SDSS-V) by specifing the ``--fibers`` (or ``--fibres``) flag. This will give you the mapping of fibers to targets, and the target properties.
|
151
|
+
|
152
|
+
```bash
|
153
|
+
almanac --mjd 60000 --fibres
|
154
|
+
```
|
155
|
+
|
156
|
+
The fiber mapping tables are cross-matched to the SDSS database to include the SDSS identifiers for each target. If you don't want to do this cross-match, you can use the ``--no-x-match`` flag. The ``--no-x-match`` flag is ignored if ``--fibers`` is not used.
|
157
|
+
|
158
|
+
### Verbosity
|
159
|
+
|
160
|
+
By default there is minimal output to the terminal. You can adjust the verbosity level using `-v`:
|
161
|
+
- `-v`: show progress display only
|
162
|
+
- `-vv`: show progress display and exposure metadata
|
163
|
+
|
164
|
+
In verbose mode you can see exposure information in the terminal, and additional per-fiber metadata is stored in the HDF5 files that `almanac` creates.
|
165
|
+
|
166
|
+

|
167
|
+
|
168
|
+
### Outputs
|
169
|
+
|
170
|
+
You can write the outputs to a structured HDF5 file by specifying an output path with the ``--output`` (or ``-O``) flag. If the output path already exists, the default behaviour is to overwrite existing entries *only*. So if you run `almanac` once for MJD 60000 and output to a file, and then run it again for MJD 60001 and output to the same file, your file will have data for both MJDs.
|
171
|
+
|
172
|
+
```bash
|
173
|
+
almanac --output /path/to/file.h5 # Append today's data to existing file
|
174
|
+
```
|
175
|
+
|
176
|
+
An example structure of the HDF5 file is below:
|
177
|
+
|
178
|
+
```
|
179
|
+
apo/59300/exposures # a data table of exposures
|
180
|
+
apo/59300/sequences # a Nx2 array of exposure numbers (inclusive) that form a sequence
|
181
|
+
apo/59300/fibers/fps/1 # a data table of fiber mappings for FPS configuration id 1
|
182
|
+
apo/59300/fibers/plates/2 # a data table of fiber mappings for plate id 2
|
183
|
+
```
|
184
|
+
|
185
|
+
## Configuration
|
186
|
+
|
187
|
+
You can view and change the `almanac` configuration settings through the `almanac config` interface. To view all current settings and to see the configuration file path:
|
188
|
+
|
189
|
+
```bash
|
190
|
+
almanac config show
|
191
|
+
```
|
192
|
+
|
193
|
+
### To get a single configuration value
|
194
|
+
```bash
|
195
|
+
almanac config get logging_level
|
196
|
+
```
|
197
|
+
|
198
|
+
### To set a configuration value
|
199
|
+
```bash
|
200
|
+
almanac config set logging_level 10
|
201
|
+
```
|
@@ -0,0 +1,142 @@
|
|
1
|
+
## almanac
|
2
|
+
`almanac` scrapes headers from raw image files and cross-matches those against the SDSS database to create a comprehensive summary of everything ever observed with an APOGEE instrument.
|
3
|
+
|
4
|
+
## Getting Started
|
5
|
+
|
6
|
+
Here are a few example cases of how `almanac` might be helpful:
|
7
|
+
|
8
|
+
List all exposures taken yesterday from either telescope:
|
9
|
+
```bash
|
10
|
+
almanac --mjd -1 -vv
|
11
|
+
```
|
12
|
+
|
13
|
+
Or just from Apache Point Observatory:
|
14
|
+
```bash
|
15
|
+
almanac --mjd -1 -vv --apo
|
16
|
+
```
|
17
|
+
|
18
|
+
Write out all exposures taken in the last month to `january.h5`:
|
19
|
+
```bash
|
20
|
+
almanac -o january.h5 --mjd-start -30
|
21
|
+
```
|
22
|
+
|
23
|
+
Write out all fiber observations during 2021, where we switched from plates to robotic fiber positioners:
|
24
|
+
```bash
|
25
|
+
almanac -vv --date-start 2021-01-01 --date-end 2021-31-12 --fibers
|
26
|
+
```
|
27
|
+
|
28
|
+
And it looks pretty, even when it warns you about missing exposures:
|
29
|
+
|
30
|
+

|
31
|
+
|
32
|
+
|
33
|
+
## Installation
|
34
|
+
|
35
|
+
|
36
|
+
### At Utah
|
37
|
+
|
38
|
+
If you want to use this at Utah, you can install it with:
|
39
|
+
|
40
|
+
```bash
|
41
|
+
module load almanac
|
42
|
+
```
|
43
|
+
|
44
|
+
> [!TIP]
|
45
|
+
> We recommend you manage your own Python environment, but if you don't have one set up at Utah then you can use `module load miniconda/3.8.5_astra`.
|
46
|
+
|
47
|
+
### Anywhere else
|
48
|
+
|
49
|
+
`almanac` needs local disk access to raw APOGEE data frames. If you are going to run it somewhere else, you should set up a Globus transfer of raw APOGEE frames, and ensure your internet address is whitelisted to remotely access the SDSS database.
|
50
|
+
|
51
|
+
We recommend using `uv` to manage Python environments. Using `uv`, you can install `almanac` with:
|
52
|
+
```bash
|
53
|
+
uv pip install git+https://github.com/sdss/almanac
|
54
|
+
```
|
55
|
+
|
56
|
+
## Usage
|
57
|
+
|
58
|
+
Use `almanac` to see details on data taken today from both observatories, or specify the observatory:
|
59
|
+
|
60
|
+
```bash
|
61
|
+
almanac
|
62
|
+
almanac --apo # Apache Point Observatory
|
63
|
+
almanac --lco # Las Campanas Observatory
|
64
|
+
```
|
65
|
+
|
66
|
+
### Specifying a date
|
67
|
+
|
68
|
+
If you want a particular day, either use the ``--mjd`` or ``--date`` (UTC) flags:
|
69
|
+
|
70
|
+
```bash
|
71
|
+
almanac --mjd 59300
|
72
|
+
almanac --date 2021-01-01
|
73
|
+
```
|
74
|
+
|
75
|
+
You can use negative MJD values to indicate days relative to today:
|
76
|
+
|
77
|
+
```bash
|
78
|
+
almanac --mjd -1 # Yesterday
|
79
|
+
almanac --mjd -7 # Last week
|
80
|
+
```
|
81
|
+
|
82
|
+
You can also specify a range of days:
|
83
|
+
|
84
|
+
```bash
|
85
|
+
almanac --mjd-start 59300 --mjd-end 59310 # Give me these 10 days
|
86
|
+
almanac --date-start 2021-01-01 --date-end 2021-01-31 # Give me all of January 2021
|
87
|
+
```
|
88
|
+
|
89
|
+
### Fiber mappings
|
90
|
+
|
91
|
+
You can also use `almanac` to see the fiber mappings for a given plate (SDSS-IV) or FPS pointing (SDSS-V) by specifing the ``--fibers`` (or ``--fibres``) flag. This will give you the mapping of fibers to targets, and the target properties.
|
92
|
+
|
93
|
+
```bash
|
94
|
+
almanac --mjd 60000 --fibres
|
95
|
+
```
|
96
|
+
|
97
|
+
The fiber mapping tables are cross-matched to the SDSS database to include the SDSS identifiers for each target. If you don't want to do this cross-match, you can use the ``--no-x-match`` flag. The ``--no-x-match`` flag is ignored if ``--fibers`` is not used.
|
98
|
+
|
99
|
+
### Verbosity
|
100
|
+
|
101
|
+
By default there is minimal output to the terminal. You can adjust the verbosity level using `-v`:
|
102
|
+
- `-v`: show progress display only
|
103
|
+
- `-vv`: show progress display and exposure metadata
|
104
|
+
|
105
|
+
In verbose mode you can see exposure information in the terminal, and additional per-fiber metadata is stored in the HDF5 files that `almanac` creates.
|
106
|
+
|
107
|
+

|
108
|
+
|
109
|
+
### Outputs
|
110
|
+
|
111
|
+
You can write the outputs to a structured HDF5 file by specifying an output path with the ``--output`` (or ``-O``) flag. If the output path already exists, the default behaviour is to overwrite existing entries *only*. So if you run `almanac` once for MJD 60000 and output to a file, and then run it again for MJD 60001 and output to the same file, your file will have data for both MJDs.
|
112
|
+
|
113
|
+
```bash
|
114
|
+
almanac --output /path/to/file.h5 # Append today's data to existing file
|
115
|
+
```
|
116
|
+
|
117
|
+
An example structure of the HDF5 file is below:
|
118
|
+
|
119
|
+
```
|
120
|
+
apo/59300/exposures # a data table of exposures
|
121
|
+
apo/59300/sequences # a Nx2 array of exposure numbers (inclusive) that form a sequence
|
122
|
+
apo/59300/fibers/fps/1 # a data table of fiber mappings for FPS configuration id 1
|
123
|
+
apo/59300/fibers/plates/2 # a data table of fiber mappings for plate id 2
|
124
|
+
```
|
125
|
+
|
126
|
+
## Configuration
|
127
|
+
|
128
|
+
You can view and change the `almanac` configuration settings through the `almanac config` interface. To view all current settings and to see the configuration file path:
|
129
|
+
|
130
|
+
```bash
|
131
|
+
almanac config show
|
132
|
+
```
|
133
|
+
|
134
|
+
### To get a single configuration value
|
135
|
+
```bash
|
136
|
+
almanac config get logging_level
|
137
|
+
```
|
138
|
+
|
139
|
+
### To set a configuration value
|
140
|
+
```bash
|
141
|
+
almanac config set logging_level 10
|
142
|
+
```
|
@@ -0,0 +1,115 @@
|
|
1
|
+
[build-system]
|
2
|
+
requires = ["setuptools>=61.0"]
|
3
|
+
build-backend = "setuptools.build_meta"
|
4
|
+
|
5
|
+
[project]
|
6
|
+
name = "sdss-almanac"
|
7
|
+
version = "0.2.1"
|
8
|
+
authors = [
|
9
|
+
{ name = "Andy Casey", email = "andrew.casey@monash.edu" }
|
10
|
+
]
|
11
|
+
description = "Everything we've got"
|
12
|
+
readme = "README.md"
|
13
|
+
requires-python = ">=3.8"
|
14
|
+
license = { text = "BSD 3-Clause License" }
|
15
|
+
keywords = ["astronomy", "software"]
|
16
|
+
classifiers = [
|
17
|
+
"Intended Audience :: Science/Research",
|
18
|
+
"Natural Language :: English",
|
19
|
+
"Operating System :: OS Independent",
|
20
|
+
"Programming Language :: Python",
|
21
|
+
"Programming Language :: Python :: 3.6",
|
22
|
+
"Programming Language :: Python :: 3.7",
|
23
|
+
"Programming Language :: Python :: 3.8",
|
24
|
+
"Topic :: Documentation :: Sphinx",
|
25
|
+
"Topic :: Software Development :: Libraries :: Python Modules"
|
26
|
+
]
|
27
|
+
dependencies = [
|
28
|
+
"numpy",
|
29
|
+
"astropy",
|
30
|
+
"h5py",
|
31
|
+
"tqdm",
|
32
|
+
"click",
|
33
|
+
"pydl",
|
34
|
+
"sdssdb",
|
35
|
+
"colorlog",
|
36
|
+
"rich"
|
37
|
+
]
|
38
|
+
|
39
|
+
[project.urls]
|
40
|
+
Homepage = "https://github.com/sdss/almanac"
|
41
|
+
Documentation = "https://sdss-almanac.readthedocs.org"
|
42
|
+
Repository = "https://github.com/sdss/almanac"
|
43
|
+
|
44
|
+
[project.optional-dependencies]
|
45
|
+
dev = [
|
46
|
+
"ipython>=7.9.0",
|
47
|
+
"matplotlib>=3.1.1",
|
48
|
+
"flake8>=3.7.9",
|
49
|
+
"doc8>=0.8.0",
|
50
|
+
"pytest>=5.2.2",
|
51
|
+
"pytest-asyncio>=0.10.0",
|
52
|
+
"pytest-cov>=2.8.1",
|
53
|
+
"pytest-mock>=1.13.0",
|
54
|
+
"pytest-sugar>=0.9.2",
|
55
|
+
"isort>=4.3.21",
|
56
|
+
"codecov>=2.0.15",
|
57
|
+
"coverage[toml]>=5.0",
|
58
|
+
"ipdb>=0.12.3",
|
59
|
+
"invoke>=1.3.0",
|
60
|
+
"twine>=3.1.1",
|
61
|
+
"wheel>=0.33.6",
|
62
|
+
"sphinx>=3.0.0"
|
63
|
+
]
|
64
|
+
docs = [
|
65
|
+
"Sphinx>=5.0.0,<8.0.0",
|
66
|
+
"furo>=2023.3.27",
|
67
|
+
"sphinx-autodoc-typehints>=1.12.0",
|
68
|
+
"myst-parser>=0.18.0",
|
69
|
+
"sphinxcontrib-bibtex>=2.4.0",
|
70
|
+
"sphinx-copybutton>=0.5.0",
|
71
|
+
"linkify-it-py"
|
72
|
+
]
|
73
|
+
|
74
|
+
[project.scripts]
|
75
|
+
almanac = "almanac.cli:main"
|
76
|
+
|
77
|
+
[tool.uv]
|
78
|
+
package = true
|
79
|
+
|
80
|
+
[tool.setuptools]
|
81
|
+
zip-safe = false
|
82
|
+
|
83
|
+
[tool.setuptools.packages.find]
|
84
|
+
where = ["src"]
|
85
|
+
include = ["almanac*"]
|
86
|
+
|
87
|
+
[tool.setuptools.package-data]
|
88
|
+
almanac = ["etc/*"]
|
89
|
+
|
90
|
+
[tool.isort]
|
91
|
+
line_length = 79
|
92
|
+
known_first_party = ["almanac"]
|
93
|
+
known_sdss_party = ["sdssdb", "sdsstools"]
|
94
|
+
balanced_wrapping = true
|
95
|
+
include_trailing_comma = false
|
96
|
+
lines_after_imports = 2
|
97
|
+
use_parentheses = true
|
98
|
+
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "SDSS", "FIRSTPARTY", "LOCALFOLDER"]
|
99
|
+
default_section = "THIRDPARTY"
|
100
|
+
|
101
|
+
[tool.flake8]
|
102
|
+
ignore = ["H101", "E722", "W504", "W505"]
|
103
|
+
per-file-ignores = ["*/__init__.py:E,W"]
|
104
|
+
max-line-length = 99
|
105
|
+
|
106
|
+
[tool.pytest.ini_options]
|
107
|
+
addopts = "--cov almanac --cov-report html -W ignore"
|
108
|
+
|
109
|
+
[tool.coverage.run]
|
110
|
+
branch = true
|
111
|
+
include = ["src/almanac/*"]
|
112
|
+
omit = ["*/utils/*.py", "*/__init__.py"]
|
113
|
+
|
114
|
+
[tool.coverage.report]
|
115
|
+
exclude_lines = []
|