Skip to content

Commit a994f3a

Browse files
authored
Merge pull request #64 from saltastroops/salt-facility
Salt facility
2 parents a90af60 + 022dd55 commit a994f3a

63 files changed

Lines changed: 10784 additions & 16 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ name: CI
44
on:
55
# Triggers the workflow on push or pull request events but only for the "main" branch
66
push:
7-
branches: ["main"]
7+
branches: [ "main" ]
88
pull_request:
9-
branches: ["main"]
9+
branches: [ "main" ]
1010

1111
# Allows you to run this workflow manually from the Actions tab
1212
workflow_dispatch:
@@ -44,7 +44,7 @@ jobs:
4444
python-version: ${{ matrix.python-version }}
4545

4646
- name: Install the project
47-
run: uv sync --dev --extra eso --extra lt
47+
run: uv sync --dev --extra eso --extra lt --extra salt
4848

4949
- name: Run tests
5050
run: uv run pytest

README.md

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ A suite of modules to enable TDA/MMA observations
77
[issues](https://github.com/AEONplus/AEONlib/issues)
88

99
# Configuration
10+
1011
Many of the facilities and services accessed by AEONlib require specific configuration such
1112
as api keys, urls, etc. All configuration can be supplied by either supplying a .env file or
1213
setting environmental variables in the execution environment.
@@ -33,8 +34,8 @@ Environmental variables take precedence over .env files. See the
3334
[pydantic-settings](https://docs.pydantic.dev/latest/concepts/pydantic_settings/) documentation
3435
for more details.
3536

36-
3737
# Testing
38+
3839
This project uses [pytest](https://docs.pytest.org/) to run tests:
3940

4041
```bash
@@ -59,6 +60,7 @@ pytest -m "not side_effect"
5960
CI does not run tests marked as online.
6061

6162
## Viewing logs during tests
63+
6264
Aeonlib turns on the Pytest
6365
[Live Logging](https://docs.pytest.org/en/stable/how-to/logging.html#live-logs) feature.
6466
By default any logging calls with a level above `WARNING` will be displayed to the console
@@ -70,9 +72,11 @@ pytest -m online --log-cli-level=debug
7072
```
7173

7274
# Linting
75+
7376
All code is formatted via [ruff](https://astral.sh/ruff).
7477

7578
# Code Generation
79+
7680
Las Cumbres Observatory [instrument classes](src/aeonlib/ocs/lco/instruments.py)
7781
are generated via the [generator.py](codegen/lco/generator.py) script. This script
7882
takes as input the [OCS instruments api](https://observe.lco.global/api/instruments/)
@@ -105,22 +109,26 @@ LCO instruments definition file:
105109
```bash
106110
curl https://observe.lco.global/api/instruments/ | codegen/lco/generator.py {facility} > src/aeonlib/ocs/lco/instruments.py
107111
```
112+
108113
# Supported Facilities
109114

110115
This list is a work in progress.
111116

112117
## Las Cumbres Observatory (LCO)
113118

114119
### Dependency group
120+
115121
Las Cumbres Observatory requires no additional dependency groups to be installed.
116122

117123
### Configuration Values
124+
118125
See [configuration](#configuration) for instructions on setting these values.
119126

120127
```python
121128
lco_token: str = ""
122129
lco_api_root: str = "https://observe.lco.global/api/"
123130
```
131+
124132
### Helpful links
125133

126134
* [LCO Observation Portal](https://observe.lco.global/)
@@ -132,46 +140,55 @@ lco_api_root: str = "https://observe.lco.global/api/"
132140
SOAR is functionally the same as LCO, but has its own set of instruments and can be configured separately.
133141

134142
### Dependency group
143+
135144
SOAR requires no additional dependency groups to be installed.
136145

137146
### Configuration Values
147+
138148
See [configuration](#configuration) for instructions on setting these values.
139149

140150
```python
141151
soar_token: str = ""
142152
soar_api_root: str = "https://observe.lco.global/api/"
143153
```
154+
144155
Note: the soar API token will default to the same value as lco_token, if it is set.
145156

146157
## BLANCO
147158

148159
BLANCO is functionally the same as LCO, but has its own set of instruments and can be configured separately.
149160

150161
### Dependency group
162+
151163
BLANCO requires no additional dependency groups to be installed.
152164

153165
### Configuration Values
166+
154167
See [configuration](#configuration) for instructions on setting these values.
155168

156169
```python
157170
blanco_token: str = ""
158171
blanco_api_root: str = "https://observe.lco.global/api/"
159172
```
173+
160174
Note: the blanco API token will default to the same value as lco_token, if it is set.
161175

162176
## ESO (European Southern Observatory)
163177

164178
Full documentation: TODO
165179

166180
### Dependency Group
181+
167182
To use the ESO facility, you must install the `eso` group:
183+
168184
```bash
169185
pip install aeonlib[eso]
170186
uv sync --extra eso
171187
poetry install --with eso
172188
```
173189

174190
### Configuration Values
191+
175192
See [configuration](#configuration) for instructions on setting these values.
176193

177194
```python
@@ -185,17 +202,20 @@ eso_password: str = ""
185202
* [ESO Phase 2 API](https://www.eso.org/sci/observing/phase2/p2intro/Phase2API.html)
186203
* [ESO Phase 2 Demo Application](https://www.eso.org/p2demo/home)
187204

188-
189205
## LT (Liverpool Telescope)
190206

191207
### Dependency Group
208+
192209
To use the LT facility, you must install the `lt` group:
210+
193211
```bash
194212
pip install aeonlib[lt]
195213
uv sync --extra lt
196214
poetry install --with lt
197215
```
216+
198217
### Configuration Values
218+
199219
See [configuration](#configuration) for instructions on setting these values.
200220

201221
```python
@@ -204,17 +224,43 @@ lt_password: str = ""
204224
lt_host: str = ""
205225
lt_port: str = ""
206226
```
227+
207228
### Helpful links
208-
* [LT Phase 2 Information](https://telescope.livjm.ac.uk/PropInst/Phase2/)
209229

230+
* [LT Phase 2 Information](https://telescope.livjm.ac.uk/PropInst/Phase2/)
210231

211232
## SAAO (South African Astronomical Observatory)
212233

213234
### Configuration Values
235+
214236
```python
215237
saao_token: str = ""
216-
saao_api_root: str = "https://ocsio.saao.ac.za/api/"
238+
saao_api_root: str = "https://ocsio.saao.ac.za/api/"
217239
```
218240

219241
### Helpful links
242+
220243
* [SAAO Observatory Control System](https://ocsio.saao.ac.za/create)
244+
245+
## SALT (Southern African Large Telescope)
246+
247+
### Dependency Group
248+
249+
To use the SALT facility, you must install the `salt` group:
250+
251+
```bash
252+
pip install aeonlib[salt]
253+
uv sync --extra salt
254+
poetry install --with salt
255+
```
256+
257+
### Configuration values
258+
259+
See [configuration](#configuration) for instructions on setting these values.
260+
261+
```python
262+
salt_username: str = ""
263+
salt_password = ""
264+
```
265+
266+
The username and password are those you would use for the [SALT Web Manager](https://www.salt.ac.za/wm/).

0 commit comments

Comments
 (0)