pubtools¶
This module provides features for handling public (global) project data.
Module pubtools
implements the following members:
TimegridsProperty
DefaultProperty
specialised forTimegrids
objects.
Pub
Base class/module of modulepub
.
- class hydpy.core.pubtools.TimegridsProperty[source]¶
Bases:
_PubProperty
[Union
[Timegrids
,Timegrid
,Tuple
[Union
[Date
,datetime
,str
],Union
[Date
,datetime
,str
],Union
[Period
,timedelta
,str
]]],Timegrids
]DefaultProperty
specialised forTimegrids
objects.For convenience, property
TimegridsProperty
can create aTimegrids
object from a combination of a first and a last date (of typestr
orDate
) and a step size (of typestr
orPeriod
):>>> from hydpy import pub, Timegrid, Timegrids >>> pub.timegrids = "2000-01-01", "2010-01-01", "1d"
The given date and period information applies for the
init
, thesim
, and theeval_
attribute, as well:>>> pub.timegrids.init Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d") >>> pub.timegrids.sim Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d") >>> pub.timegrids.eval_ Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d")
Alternatively, you can assign a ready
Timegrids
object directly:>>> pub.timegrids = Timegrids(Timegrid("2000-01-01", "2010-01-01", "1d"), ... Timegrid("2000-01-01", "2001-01-01", "1d")) >>> pub.timegrids Timegrids(init=Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d"), sim=Timegrid("2000-01-01 00:00:00", "2001-01-01 00:00:00", "1d"), eval_=Timegrid("2000-01-01 00:00:00", "2001-01-01 00:00:00", "1d"))
- call_fset(obj: Any, value: timetools.Timegrids | Tuple[timetools.DateConstrArg, timetools.DateConstrArg, timetools.PeriodConstrArg]) None [source]¶
Try to convert the given input value(s).
- class hydpy.core.pubtools.Pub(name: str, doc: str | None = None)[source]¶
Bases:
module
Base class/module of module
pub
.After initialisation
pub
takes overPub
as its new base class. The reason for this complicated trick is that it makes the attribute handling ofpub
easier for users.You can import
pub
like other modules:>>> from hydpy import pub
However, if you try to access unprepared attributes,
Pub
returns the following error message:>>> pub.timegrids Traceback (most recent call last): ... hydpy.core.exceptiontools.AttributeNotReady: Attribute timegrids of module `pub` is not defined at the moment.
After setting an attribute value successfully, it is accessible (we select the timegrids attribute here, as its setter supplies a little magic to make defining new
Timegrids
objects more convenient:>>> pub.timegrids = None Traceback (most recent call last): ... ValueError: While trying to define a new `Timegrids` object based on the arguments `None`, the following error occurred: Initialising a `Timegrids` object either requires one, two, or three `Timegrid` objects or two dates objects (of type `Date`, `datetime`, or `str`) and one period object (of type `Period`, `timedelta`, or `str`), but objects of the types `None, None, and None` are given.
>>> pub.timegrids = "2000-01-01", "2001-01-01", "1d" >>> pub.timegrids Timegrids("2000-01-01 00:00:00", "2001-01-01 00:00:00", "1d")
After deleting, the attribute is not accessible anymore:
>>> del pub.timegrids >>> pub.timegrids Traceback (most recent call last): ... hydpy.core.exceptiontools.AttributeNotReady: Attribute timegrids of module `pub` is not defined at the moment.
- config: configutils.Config¶
- projectname¶
- indexer¶
- networkmanager¶
- controlmanager¶
- conditionmanager¶
- sequencemanager¶
- timegrids¶
DefaultProperty
specialised forTimegrids
objects.For convenience, property
TimegridsProperty
can create aTimegrids
object from a combination of a first and a last date (of typestr
orDate
) and a step size (of typestr
orPeriod
):>>> from hydpy import pub, Timegrid, Timegrids >>> pub.timegrids = "2000-01-01", "2010-01-01", "1d"
The given date and period information applies for the
init
, thesim
, and theeval_
attribute, as well:>>> pub.timegrids.init Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d") >>> pub.timegrids.sim Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d") >>> pub.timegrids.eval_ Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d")
Alternatively, you can assign a ready
Timegrids
object directly:>>> pub.timegrids = Timegrids(Timegrid("2000-01-01", "2010-01-01", "1d"), ... Timegrid("2000-01-01", "2001-01-01", "1d")) >>> pub.timegrids Timegrids(init=Timegrid("2000-01-01 00:00:00", "2010-01-01 00:00:00", "1d"), sim=Timegrid("2000-01-01 00:00:00", "2001-01-01 00:00:00", "1d"), eval_=Timegrid("2000-01-01 00:00:00", "2001-01-01 00:00:00", "1d"))
- selections¶
- options: optiontools.Options¶
- scriptfunctions: Dict[str, ScriptFunction]¶