From 0724bdd6b026a6e0683a99de1fbaad18447b327c Mon Sep 17 00:00:00 2001 From: Travis Rivers <trivers@contractor.usgs.gov> Date: Thu, 9 Apr 2020 08:44:27 -0600 Subject: [PATCH] add validators to observatory --- geomagio/api/ws/observatory.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/geomagio/api/ws/observatory.py b/geomagio/api/ws/observatory.py index dae8dd01e..8e018bec6 100644 --- a/geomagio/api/ws/observatory.py +++ b/geomagio/api/ws/observatory.py @@ -1,4 +1,5 @@ -from pydantic import BaseModel +from pydantic import BaseModel, validator +from typing import Dict class Observatory(BaseModel): @@ -12,6 +13,33 @@ class Observatory(BaseModel): declination_base: int sensor_orientation: str + @validator("agency_name", always=true) + def validate_agency_name(cls, agency_name: str, values: Dict) -> str: + agency = values.get("agency") + if not agency_name: + if agency == "USGS": + agency_name = "United States Geological Survey (USGS)" + if agency == "GSC": + agency_name = "Geological Survey of Canada (GSC)" + if agency == "BGS": + agency_name = "British Geological Survey (BGS)" + if agency == "SANSA": + agency_name = "South African National Space Agency (SANSA)" + if agency == "JMA": + agency_name = "Japan Meteorological Agency (JMA)" + return agency_name + + @validator("sensor_orientation", always=true) + def validate_sensor_orientation(cls, sensor_orientation: str, values: Dict) -> str: + agency = values.get("agency") + + if not sensor_orientation: + if agency == "GSC": + sensor_orientation = "XYZF" + else: + sensor_orientation = "HDZF" + return sensor_orientation + OBSERVATORIES = [ Observatory( -- GitLab