Skip to content

Instantly share code, notes, and snippets.

@mwcraig
Created September 10, 2024 22:06
Show Gist options
  • Save mwcraig/d4f2ff476043a3167b95f2c2e78663d1 to your computer and use it in GitHub Desktop.
Save mwcraig/d4f2ff476043a3167b95f2c2e78663d1 to your computer and use it in GitHub Desktop.
from typing import Annotated, List
from pydantic import BaseModel, Field
from stellarphot.settings.aavso_models import AAVSOFilters
class StarList(BaseModel):
x: float
y: float
ra: float
dec: float
tot_flux: float
flux_err: float
bkgd_flux: float
peak_flux: int
class SchemaHeader(BaseModel):
aavso_ver: str
obs_time: Annotated[
str, Field(format="date-time", description="UTC time at start of observation")
]
site_lat: Annotated[float, Field(ge=-90, le=90)]
site_lon: Annotated[float, Field(ge=-180, le=180)]
site_elev: float
observer: str
filter: AAVSOFilters
block_filter: str
exposure: float
tel_manufac: str
tel_model: str
tel_firmware: str
adc_depth: int
datamax: int
epoch: str
refframe: str
starlist: List[StarList]
# def sample_table_schema():
# data = dict(
# x=[1.0, -1.0],
# y=[2.0, -1.0],
# ra=[3.0, -1.0],
# dec=[4.0, -1.0],
# tot_flux=[5.0, -1.0],
# flux_err=[6.0, -1.0],
# bkgd_flux=[7.0, -1.0],
# peak_flux=[8.0, -1.0],
# )
# df = pd.DataFrame(data=data)
# return df.to_json(orient="table")
if __name__ == "__main__":
print(SchemaHeader.model_json_schema())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment