Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Dec 13, 2024
1 parent 49fe4d7 commit 261a1b6
Show file tree
Hide file tree
Showing 29 changed files with 267 additions and 285 deletions.
4 changes: 2 additions & 2 deletions src/ravenpy/config/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ def __len__(self):

class ParameterList(Record):
name: str = ""
values: Sequence[Union[Sym, str, None]] = ()
values: Sequence[Sym | str | None] = ()

@model_validator(mode="before")
@classmethod
Expand All @@ -273,7 +273,7 @@ def __str__(self):

class GenericParameterList(Command):
parameters: Sequence[str] = Field(alias="Parameters", description="Parameter names")
units: Optional[Sequence[str]] = Field(None, alias="Units")
units: Sequence[str] | None = Field(None, alias="Units")
pl: Sequence[ParameterList]

@model_validator(mode="after")
Expand Down
72 changes: 36 additions & 36 deletions src/ravenpy/config/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class Process(Command):
"""

algo: str = "RAVEN_DEFAULT"
source: Optional[str] = None
source: str | None = None
to: Sequence[str] = ()

_sub = ""
Expand Down Expand Up @@ -221,7 +221,7 @@ class SubBasin(Record):
profile: str = "NONE"
reach_length: float = 0
gauged: bool = True
gauge_id: Optional[str] = "" # This attribute is not rendered to RVH
gauge_id: str | None = "" # This attribute is not rendered to RVH

def __str__(self):
d = self.model_dump()
Expand Down Expand Up @@ -261,7 +261,7 @@ class HRU(Record):
aspect: Annotated[float, Field(ge=0, le=360)] = 0.0
# This field is not part of the Raven config, it is needed for serialization,
# to specify which HRU subclass to use when necessary
hru_type: Optional[str] = None
hru_type: str | None = None

def __str__(self):
import numpy as np
Expand Down Expand Up @@ -522,7 +522,7 @@ def to_rv(self):
class ReadFromNetCDF(FlatCommand):
# TODO: When encoding Path, return only path.name
# Order of HttpUrl, Path is important to avoid casting strings to Path.
file_name_nc: Union[HttpUrl, Path] = Field(
file_name_nc: HttpUrl | Path = Field(
..., alias="FileNameNC", description="NetCDF file name."
)
var_name_nc: str = Field(
Expand All @@ -534,15 +534,15 @@ class ReadFromNetCDF(FlatCommand):
alias="StationIdx",
description="NetCDF index along station dimension. Starts at 1.",
)
time_shift: Optional[float] = Field(
time_shift: float | None = Field(
None, alias="TimeShift", description="Time stamp shift in days."
)
linear_transform: Optional[LinearTransform] = Field(None, alias="LinearTransform")
deaccumulate: Optional[bool] = Field(None, alias="Deaccumulate")
linear_transform: LinearTransform | None = Field(None, alias="LinearTransform")
deaccumulate: bool | None = Field(None, alias="Deaccumulate")

latitude_var_name_nc: Optional[str] = Field(None, alias="LatitudeVarNameNC")
longitude_var_name_nc: Optional[str] = Field(None, alias="LongitudeVarNameNC")
elevation_var_name_nc: Optional[str] = Field(None, alias="ElevationVarNameNC")
latitude_var_name_nc: str | None = Field(None, alias="LatitudeVarNameNC")
longitude_var_name_nc: str | None = Field(None, alias="LongitudeVarNameNC")
elevation_var_name_nc: str | None = Field(None, alias="ElevationVarNameNC")

@field_validator("dim_names_nc")
@classmethod
Expand Down Expand Up @@ -592,12 +592,12 @@ class GriddedForcing(ReadFromNetCDF):
"""GriddedForcing command (RVT)."""

name: str = ""
forcing_type: Optional[options.Forcings] = Field(None, alias="ForcingType")
grid_weights: Union[GridWeights, RedirectToFile] = Field(
forcing_type: options.Forcings | None = Field(None, alias="ForcingType")
grid_weights: GridWeights | RedirectToFile = Field(
GridWeights(), alias="GridWeights"
)
# StationIdx is not relevant to GriddedForcing
station_idx: Optional[int] = None
station_idx: int | None = None

@property
def _template(self):
Expand Down Expand Up @@ -678,29 +678,29 @@ class Gauge(FlatCommand):
name: str = "default"
latitude: float = Field(..., alias="Latitude")
longitude: float = Field(..., alias="Longitude")
elevation: Optional[float] = Field(None, alias="Elevation")
elevation: float | None = Field(None, alias="Elevation")

rain_correction: Optional[Sym] = Field(
rain_correction: Sym | None = Field(
None, alias="RainCorrection", description="Rain correction"
)
snow_correction: Optional[Sym] = Field(
snow_correction: Sym | None = Field(
None, alias="SnowCorrection", description="Snow correction"
)

monthly_ave_evaporation: Optional[Sequence] = Field(
monthly_ave_evaporation: Sequence | None = Field(
None, alias="MonthlyAveEvaporation"
)
monthly_ave_temperature: Optional[Sequence] = Field(
monthly_ave_temperature: Sequence | None = Field(
None, alias="MonthlyAveTemperature"
)
monthly_min_temperature: Optional[Sequence] = Field(
monthly_min_temperature: Sequence | None = Field(
None, alias="MonthlyMinTemperature"
)
monthly_max_temperature: Optional[Sequence] = Field(
monthly_max_temperature: Sequence | None = Field(
None, alias="MonthlyMaxTemperature"
)

data: Optional[Sequence[Data]] = Field(None, alias="Data")
data: Sequence[Data] | None = Field(None, alias="Data")

_nested: bool = False

Expand All @@ -722,12 +722,12 @@ def confirm_monthly(cls, v):
@classmethod
def from_nc(
cls,
fn: Union[str, Path, Sequence[Path]],
data_type: Optional[Sequence[str]] = None,
fn: str | Path | Sequence[Path],
data_type: Sequence[str] | None = None,
station_idx: int = 1,
alt_names: Optional[dict[str, str]] = None,
alt_names: dict[str, str] | None = None,
mon_ave: bool = False,
data_kwds: Optional[dict[str, Any]] = None,
data_kwds: dict[str, Any] | None = None,
engine: str = "h5netcdf",
**kwds,
) -> "Gauge":
Expand Down Expand Up @@ -924,8 +924,8 @@ class BasinIndex(Command, coerce_numbers_to_str=True):
channel_storage: float = Field(0.0, alias="ChannelStorage")
rivulet_storage: float = Field(0.0, alias="RivuletStorage")
qout: Sequence[float] = Field((1.0, 0.0, 0.0), alias="Qout")
qlat: Optional[Sequence[float]] = Field(None, alias="Qlat")
qin: Optional[Sequence[float]] = Field(None, alias="Qin")
qlat: Sequence[float] | None = Field(None, alias="Qlat")
qin: Sequence[float] | None = Field(None, alias="Qin")

# model_config = ConfigDict(coerce_numbers_to_str=True)

Expand Down Expand Up @@ -980,8 +980,8 @@ class SoilClass(Record):
"""SoilClass."""

name: str
mineral: Optional[tuple[float, float, float]] = None
organic: Optional[float] = None
mineral: tuple[float, float, float] | None = None
organic: float | None = None

@field_validator("mineral")
@classmethod
Expand Down Expand Up @@ -1060,7 +1060,7 @@ class TerrainClass(Record):
name: str
hillslope_length: Sym
drainage_density: Sym
topmodel_lambda: Optional[Sym] = None
topmodel_lambda: Sym | None = None

def __str__(self):
out = f"{self.name:<16},{self.hillslope_length:>18},{self.drainage_density:>18}"
Expand Down Expand Up @@ -1114,26 +1114,26 @@ def __str__(self):


class SubBasinProperties(Command):
parameters: Optional[Sequence[options.SubBasinProperties]] = Field(
parameters: Sequence[options.SubBasinProperties] | None = Field(
None, alias="Parameters"
)
records: Optional[Sequence[SubBasinProperty]] = Field(None)
records: Sequence[SubBasinProperty] | None = Field(None)


class SoilParameterList(GenericParameterList):
parameters: Optional[Sequence[options.SoilParameters]] = Field(
parameters: Sequence[options.SoilParameters] | None = Field(
None, alias="Parameters"
)


class VegetationParameterList(GenericParameterList):
parameters: Optional[Sequence[options.VegetationParameters]] = Field(
parameters: Sequence[options.VegetationParameters] | None = Field(
None, alias="Parameters"
)


class LandUseParameterList(GenericParameterList):
parameters: Optional[Sequence[options.LandUseParameters]] = Field(
parameters: Sequence[options.LandUseParameters] | None = Field(
None, alias="Parameters"
)

Expand Down Expand Up @@ -1161,7 +1161,7 @@ class ForcingPerturbation(LineCommand):


class AssimilatedState(LineCommand):
state: Union[options.StateVariables, Literal["STREAMFLOW"]]
state: options.StateVariables | Literal["STREAMFLOW"]
group: str


Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/blended.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class Blended(Config):
netcdf_attribute: dict[str, str] = {"model_id": "Blended"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
routing: o.Routing = Field("ROUTE_NONE", alias="Routing")
catchment_route: o.CatchmentRoute = Field("ROUTE_DUMP", alias="CatchmentRouting")
Expand All @@ -90,7 +90,7 @@ class Blended(Config):
)
soil_model: rc.SoilModel = Field(3, alias="SoilModel")

hydrologic_processes: Sequence[Union[rc.Process, p.ProcessGroup]] = Field(
hydrologic_processes: Sequence[rc.Process | p.ProcessGroup] = Field(
[
p.Precipitation(algo="RAVEN_DEFAULT", source="ATMOS_PRECIP", to="MULTIPLE"),
p.ProcessGroup(
Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/canadianshield.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class CanadianShield(Config):
netcdf_attribute: dict[str, str] = {"model_id": "CanadianShield"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
land_use_classes: LandUseClasses = Field(
[rc.LU(name="FOREST", impermeable_frac=0.0, forest_coverage=0.02345)],
Expand Down Expand Up @@ -103,7 +103,7 @@ class CanadianShield(Config):
monthly_interpolation_method: o.MonthlyInterpolationMethod = Field(
o.MonthlyInterpolationMethod.LINEAR_MID, alias="MonthlyInterpolationMethod"
)
hydrologic_processes: Sequence[Union[rc.Process, p.Conditional]] = Field(
hydrologic_processes: Sequence[rc.Process | p.Conditional] = Field(
[
p.SnowRefreeze(algo="FREEZE_DEGREE_DAY", source="SNOW_LIQ", to="SNOW"),
p.Precipitation(algo="PRECIP_RAVEN", source="ATMOS_PRECIP", to="MULTIPLE"),
Expand Down
10 changes: 5 additions & 5 deletions src/ravenpy/config/emulators/gr4jcn.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class HRUs(rc.HRUs):
Pydantic is able to automatically detect if an HRU is Land or Lake if `hru_type` is provided.
"""

root: Sequence[Union[LandHRU, LakeHRU]]
root: Sequence[LandHRU | LakeHRU]


class GR4JCN(Config):
Expand All @@ -89,17 +89,17 @@ class GR4JCN(Config):
netcdf_attribute: dict[str, str] = {"model_id": "GR4JCN"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
uniform_initial_conditions: Union[dict[str, Sym], None] = Field(
uniform_initial_conditions: dict[str, Sym] | None = Field(
{"SOIL[0]": P.GR4J_X1 * 1000 / 2, "SOIL[1]": 15},
alias="UniformInitialConditions",
)
evaporation: o.Evaporation = Field("PET_OUDIN", alias="Evaporation")
rain_snow_fraction: o.RainSnowFraction = Field(
"RAINSNOW_DINGMAN", alias="RainSnowFraction"
)
soil_model: Union[int, SoilModel] = Field(4, alias="SoilModel")
soil_model: int | SoilModel = Field(4, alias="SoilModel")
routing: o.Routing = Field("ROUTE_NONE", alias="Routing")
catchment_route: o.CatchmentRoute = Field("ROUTE_DUMP", alias="CatchmentRoute")
potential_melt: o.PotentialMeltMethod = Field(
Expand All @@ -112,7 +112,7 @@ class GR4JCN(Config):
o.OroPrecipCorrect.SIMPLELAPSE, alias="OroPrecipCorrect"
)

hydrologic_processes: Sequence[Union[Process, p.Conditional]] = Field(
hydrologic_processes: Sequence[Process | p.Conditional] = Field(
[
p.Precipitation(algo="PRECIP_RAVEN", source="ATMOS_PRECIP", to="MULTIPLE"),
p.SnowTempEvolve(algo="SNOTEMP_NEWTONS", source="SNOW_TEMP"),
Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/hbvec.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class HBVEC(Config):
netcdf_attribute: dict[str, str] = {"model_id": "HBVEC"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
interpolation: o.Interpolation = Field(
"INTERP_NEAREST_NEIGHBOR", alias="Interpolation"
Expand Down Expand Up @@ -171,7 +171,7 @@ class HBVEC(Config):
)
soil_model: rc.SoilModel = Field(3, alias="SoilModel")
lake_storage: o.StateVariables = Field("SOIL[2]", alias="LakeStorage")
hydrologic_processes: Sequence[Union[Process, p.Conditional]] = Field(
hydrologic_processes: Sequence[Process | p.Conditional] = Field(
[
p.SnowRefreeze(algo="FREEZE_DEGREE_DAY", source="SNOW_LIQ", to="SNOW"),
p.Precipitation(algo="PRECIP_RAVEN", source="ATMOS_PRECIP", to="MULTIPLE"),
Expand Down
2 changes: 1 addition & 1 deletion src/ravenpy/config/emulators/hmets.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class HMETS(Config):
netcdf_attribute: dict[str, str] = {"model_id": "HMETS"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
uniform_initial_conditions: dict[str, Sym] = Field(
{"SOIL[0]": P.TOPSOIL / 2, "SOIL[1]": P.PHREATIC / 2},
Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/hypr.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class HYPR(Config):
netcdf_attribute: dict[str, str] = {"model_id": "HYPR"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
routing: o.Routing = Field("ROUTE_NONE", alias="Routing")
catchment_route: o.CatchmentRoute = Field(
Expand Down Expand Up @@ -139,7 +139,7 @@ class HYPR(Config):
)
soil_model: rc.SoilModel = Field(3, alias="SoilModel")

hydrologic_processes: Sequence[Union[rc.Process, p.Conditional]] = Field(
hydrologic_processes: Sequence[rc.Process | p.Conditional] = Field(
[
p.SnowRefreeze(algo="FREEZE_DEGREE_DAY", source="SNOW_LIQ", to="SNOW"),
p.Precipitation(algo="PRECIP_RAVEN", source="ATMOS_PRECIP", to="MULTIPLE"),
Expand Down
2 changes: 1 addition & 1 deletion src/ravenpy/config/emulators/mohyse.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class Mohyse(Config):
netcdf_attribute: dict[str, str] = {"model_id": "Mohyse"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
soil_classes: rc.SoilClasses = Field(
[{"name": "TOPSOIL"}, {"name": "GWSOIL"}], alias="SoilClasses"
Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/routing.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class HRUs(rc.HRUs):
Pydantic is able to automatically detect if an HRU is Land or Lake if `hru_type` is provided.
"""

root: Sequence[Union[LandHRU, LakeHRU]]
root: Sequence[LandHRU | LakeHRU]


class BasicRoute(Config):
Expand All @@ -45,7 +45,7 @@ class BasicRoute(Config):
netcdf_attribute: dict[str, str] = {"model_id": "BasicRoute"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
catchment_route: o.CatchmentRoute = Field(
"ROUTE_DUMP",
Expand Down
4 changes: 2 additions & 2 deletions src/ravenpy/config/emulators/sacsma.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class SACSMA(Config):
netcdf_attribute: dict[str, str] = {"model_id": "SACSMA"}
sub_basins: rc.SubBasins = Field([rc.SubBasin()], alias="SubBasins")
write_netcdf_format: bool = Field(True, alias="WriteNetcdfFormat")
time_step: Union[float, str] = Field(1.0, alias="TimeStep")
time_step: float | str = Field(1.0, alias="TimeStep")
calendar: o.Calendar = Field("PROLEPTIC_GREGORIAN", alias="Calendar")
routing: o.Routing = Field("ROUTE_NONE", alias="Routing")
catchment_route: o.CatchmentRoute = Field(
Expand All @@ -81,7 +81,7 @@ class SACSMA(Config):
)
soil_model: rc.SoilModel = Field(7, alias="SoilModel")

hydrologic_processes: Sequence[Union[rc.Process, p.Conditional]] = Field(
hydrologic_processes: Sequence[rc.Process | p.Conditional] = Field(
[
p.SnowBalance(algo="SNOBAL_SIMPLE_MELT", source="SNOW", to="PONDED_WATER"),
p.Precipitation(algo="RAVEN_DEFAULT", source="ATMOS_PRECIP", to="MULTIPLE"),
Expand Down
2 changes: 1 addition & 1 deletion src/ravenpy/config/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def output_files(run_name: str, path: Path):
return out


def parse_outputs(run_name: str, outputdir: Optional[Union[str, Path]] = None):
def parse_outputs(run_name: str, outputdir: str | Path | None = None):
"""Parse outputs from model execution.
Parameters
Expand Down
Loading

0 comments on commit 261a1b6

Please sign in to comment.