Skip to content

Commit

Permalink
Use gaia_validators's empty in update validation models
Browse files Browse the repository at this point in the history
  • Loading branch information
vaamb committed Jan 30, 2025
1 parent 469c8a0 commit ec41a8d
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 39 deletions.
12 changes: 6 additions & 6 deletions src/ouranos/web_server/validate/calendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from pydantic import field_validator

import gaia_validators as gv
from gaia_validators import safe_enum_from_name
from gaia_validators import empty, safe_enum_from_name

from ouranos.core.validate.base import BaseModel

Expand All @@ -31,11 +31,11 @@ def parse_datetime(cls, value):


class EventUpdatePayload(BaseModel):
level: gv.WarningLevel | None = None
title: str | None = None
description: str | None = None
start_time: datetime | None = None
end_time: datetime | None = None
level: gv.WarningLevel | empty = empty
title: str | empty = empty
description: str | None | empty = empty
start_time: datetime | empty = empty
end_time: datetime | empty = empty

@field_validator("level", mode="before")
def parse_level(cls, value):
Expand Down
39 changes: 20 additions & 19 deletions src/ouranos/web_server/validate/gaia/ecosystem.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from pydantic import ConfigDict, Field, field_serializer, field_validator

import gaia_validators as gv
from gaia_validators import safe_enum_from_name
from gaia_validators import empty, safe_enum_from_name

from ouranos.core.database.models.gaia import Ecosystem, ActuatorState
from ouranos.core.validate.base import BaseModel
Expand Down Expand Up @@ -47,8 +47,8 @@ def parse_time(cls, value):


class EcosystemBaseInfoUpdatePayload(BaseModel):
name: str | None = None
status: bool | None = None
name: str | empty = empty
status: bool | empty = empty


EcosystemInfo = sqlalchemy_to_pydantic(
Expand All @@ -67,14 +67,14 @@ class EcosystemBaseInfoUpdatePayload(BaseModel):
# Ecosystem management
# ---------------------------------------------------------------------------
class EcosystemManagementUpdatePayload(BaseModel):
sensors: bool | None = None
light: bool | None = None
climate: bool | None = None
watering: bool | None = None
health: bool | None = None
alarms: bool | None = None
pictures: bool | None = None
database: bool | None = None
sensors: bool | empty = empty
light: bool | empty = empty
climate: bool | empty = empty
watering: bool | empty = empty
health: bool | empty = empty
alarms: bool | empty = empty
pictures: bool | empty = empty
database: bool | empty = empty


class ManagementInfo(BaseModel):
Expand Down Expand Up @@ -118,11 +118,11 @@ class EcosystemLightInfo(gv.LightingHours, _EcosystemLightInfo):


class NycthemeralCycleUpdatePayload(BaseModel):
span: gv.NycthemeralSpanMethod | None = None
lighting: gv.LightingMethod | None = None
target: str | None = None
day: time | None = None
night: time | None = None
span: gv.NycthemeralSpanMethod | empty = empty
lighting: gv.LightingMethod | empty = empty
target: str | None | empty = empty
day: time | empty = empty
night: time | empty = empty

@field_validator("span", mode="before")
def parse_span(cls, value):
Expand Down Expand Up @@ -153,9 +153,10 @@ class EnvironmentParameterCreationPayload(gv.ClimateConfig):


class EnvironmentParameterUpdatePayload(BaseModel):
day: float | None = None
night: float | None = None
hysteresis: float | None = None
day: float | empty = empty
night: float | empty = empty
hysteresis: float | empty = empty
alarm: float | None | empty= empty


class EnvironmentParameterInfo(BaseModel):
Expand Down
18 changes: 9 additions & 9 deletions src/ouranos/web_server/validate/gaia/hardware.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from pydantic import ConfigDict, field_serializer, field_validator

import gaia_validators as gv
from gaia_validators import safe_enum_from_name
from gaia_validators import empty, safe_enum_from_name

from ouranos.core.validate.base import BaseModel

Expand All @@ -30,14 +30,14 @@ class HardwareType(BaseModel):


class HardwareUpdatePayload(gv.AnonymousHardwareConfig):
name: str | None = None
level: gv.HardwareLevel | None = None
address: str | None = None
type: gv.HardwareType | None = None
model: str | None = None
status: bool | None = None
measures: list[str] | None = None
plant_uid: list[str] | None = None
name: str | empty = empty
level: gv.HardwareLevel | empty = empty
address: str | empty = empty
type: gv.HardwareType | empty = empty
model: str | empty = empty
status: bool | empty = empty
measures: list[str] | empty = empty
plant_uid: list[str] | empty = empty

@field_validator("type", mode="before")
def parse_level(cls, value):
Expand Down
8 changes: 5 additions & 3 deletions src/ouranos/web_server/validate/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

from datetime import datetime

from gaia_validators import empty

from ouranos.core.database.models.app import RoleName
from ouranos.core.validate.base import BaseModel

Expand All @@ -18,6 +20,6 @@ class UserDescription(BaseModel):


class UserUpdatePayload(BaseModel):
email: str | None = None
firstname: str | None = None
lastname: str | None = None
email: str | empty = empty
firstname: str | None | empty = empty
lastname: str | None | empty = empty
6 changes: 4 additions & 2 deletions src/ouranos/web_server/validate/wiki.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
from anyio import Path as ioPath
from pydantic import Field, field_validator

from gaia_validators import empty

from ouranos.core.database.models.app import ModificationType
from ouranos.core.validate.base import BaseModel

Expand Down Expand Up @@ -51,8 +53,8 @@ class WikiArticleCreationPayload(BaseModel):

class WikiArticleUpdatePayload(BaseModel):
# topic is provided by the route
# name is provided by the route
content: str
name : str | empty = empty
content: str | empty = empty
# author_id is provided by the route


Expand Down

0 comments on commit ec41a8d

Please sign in to comment.