Source code for hydpy.models.dam.dam_variables

# pylint: disable=missing-module-docstring

import abc

from hydpy.core import parametertools
from hydpy.core import variabletools
from hydpy.models.dam import dam_control


[docs] class MixinLogEntries(variabletools.Variable, abc.ABC): """Mixin class for 1-dimensional log sequences whose shape depends on the value of parameter |dam_control.NmbLogEntries|. We take the log sequence |LoggedTotalRemoteDischarge| as an example: >>> from hydpy.models.dam import * >>> parameterstep() >>> nmblogentries(3) >>> logs.loggedtotalremotedischarge loggedtotalremotedischarge(nan, nan, nan) To prevent losing information, updating parameter |dam_control.NmbLogEntries| resets the shape only when necessary: >>> logs.loggedtotalremotedischarge = 1.0 >>> nmblogentries(3) >>> logs.loggedtotalremotedischarge loggedtotalremotedischarge(1.0, 1.0, 1.0) >>> nmblogentries(2) >>> logs.loggedtotalremotedischarge loggedtotalremotedischarge(nan, nan) """ def __hydpy__let_par_set_shape__(self, p: parametertools.NmbParameter, /) -> None: if isinstance(p, dam_control.NmbLogEntries): self.__hydpy__change_shape_if_necessary__((p.value,))