Skip to content
Snippets Groups Projects

No extra params

All threads resolved!
Files
3
@@ -4,7 +4,7 @@ import os
from typing import Dict, List, Union
from obspy import UTCDateTime
from pydantic import BaseModel, root_validator, validator
from pydantic import BaseModel, Extra, root_validator, validator
from ... import pydantic_utcdatetime
from .Element import ELEMENTS
@@ -40,25 +40,23 @@ class SamplingPeriod(float, enum.Enum):
DAY = 86400.0
class DataApiQuery(BaseModel):
class DataApiQuery(BaseModel, extra=Extra.forbid):
id: str
starttime: UTCDateTime = None
endtime: UTCDateTime = None
elements: List[str] = DEFAULT_ELEMENTS
sampling_period: SamplingPeriod = SamplingPeriod.MINUTE
data_type: Union[DataType, str] = DataType.VARIATION
type: Union[DataType, str] = DataType.VARIATION
format: OutputFormat = OutputFormat.IAGA2002
@validator("data_type")
def validate_data_type(
cls, data_type: Union[DataType, str]
) -> Union[DataType, str]:
if data_type not in DataType.values() and len(data_type) != 2:
@validator("type")
def validate_data_type(cls, type: Union[DataType, str]) -> Union[DataType, str]:
if type not in DataType.values() and len(type) != 2:
raise ValueError(
f"Bad data type value '{data_type}'."
f"Bad data type value '{type}'."
f" Valid values are: {', '.join(DataType.values())}"
)
return data_type
return type
@validator("elements", pre=True, always=True)
def validate_elements(cls, elements: List[str]) -> List[str]:
Loading