-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathenvironment.py
More file actions
54 lines (45 loc) · 1.58 KB
/
environment.py
File metadata and controls
54 lines (45 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import datetime
from typing import Optional, ClassVar, Self, Literal
from src.models.interface import ApiBaseModel
class EnvironmentModel(ApiBaseModel):
NAME: ClassVar = 'environment'
METHODS: ClassVar = ('POST', 'GET', 'PUT', 'DELETE')
latitude: float
longitude: float
elevation: Optional[float] = 0.0
pressure: Optional[float | list[tuple[float, float]]] = None
temperature: Optional[float | list[tuple[float, float]]] = None
wind_u: Optional[float | list[tuple[float, float]]] = None
wind_v: Optional[float | list[tuple[float, float]]] = None
# Optional parameters
atmospheric_model_type: Literal[
'standard_atmosphere',
'custom_atmosphere',
'wyoming_sounding',
'forecast',
'reanalysis',
'ensemble',
] = 'standard_atmosphere'
atmospheric_model_file: Optional[str] = None
date: Optional[datetime.datetime] = (
datetime.datetime.today() + datetime.timedelta(days=1)
)
@staticmethod
def UPDATED():
return
@staticmethod
def DELETED():
return
@staticmethod
def CREATED(model_id: str):
from src.views.environment import EnvironmentCreated
return EnvironmentCreated(environment_id=model_id)
@staticmethod
def RETRIEVED(model_instance: type(Self)):
from src.views.environment import EnvironmentRetrieved, EnvironmentView
return EnvironmentRetrieved(
environment=EnvironmentView(
environment_id=model_instance.get_id(),
**model_instance.model_dump(),
)
)