Skip to content

Commit

Permalink
Set default ToO window at instatiation (#71)
Browse files Browse the repository at this point in the history
* Set default window at instatiation

* Set default window at instatiation
  • Loading branch information
robertdstein authored May 29, 2024
1 parent 55e8f24 commit 13843b8
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 3 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "wintertoo"
version = "1.6.1"
version = "1.6.2"
description = ""
authors = [
{name = "Robert Stein", email = "rdstein@caltech.edu"},
Expand Down
35 changes: 33 additions & 2 deletions wintertoo/models/too.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,14 @@ class ToORequest(BaseModel):
get_default_value("ditherStepSize"), ge=0.0, title="dither distance (arcsec)"
)
start_time_mjd: Optional[float] = Field(
default=Time.now().mjd + 0.01,
default=None,
title="ToO validity start (MJD)",
example=Time.now().mjd,
)
end_time_mjd: Optional[float] = Field(
default=Time.now().mjd + 1, ge=Time.now().mjd, title="ToO validity end (MJD)"
default=None,
example=Time.now().mjd + 1,
title="ToO validity end (MJD)",
)
max_airmass: Optional[float] = Field(
default=get_default_value("maxAirmass"),
Expand All @@ -92,6 +95,34 @@ def single_exposure_time(self) -> float:
"""
return self.total_exposure_time / self.n_dither

@model_validator(mode="after")
def validate_date_order(self):
"""
Ensure that the start date is before the end date
:return: validated field value
"""
if self.start_time_mjd is None:
self.start_time_mjd = Time.now().mjd

if self.end_time_mjd is None:
self.end_time_mjd = Time.now().mjd + 7

if self.start_time_mjd > self.end_time_mjd:
raise WinterValidationError(
f"Start time ({self.start_time_mjd}) is "
f"after end time ({self.end_time_mjd})"
)

now = Time.now().mjd

if self.end_time_mjd < now:
raise WinterValidationError(
f"End date ({self.end_time_mjd}) is in the past, (time now is {now})"
)

return self

@model_validator(mode="after")
def validate_end_time(self):
"""
Expand Down

0 comments on commit 13843b8

Please sign in to comment.