flexmeasures.data.schemas.times
Classes
- class flexmeasures.data.schemas.times.AwareDateTimeField(*args, **kwargs)
Field that de-serializes to a timezone aware datetime and serializes back to a string.
- _deserialize(value: str, attr, obj, **kwargs) datetime
Work-around until this PR lands: https://github.com/marshmallow-code/marshmallow/pull/1787
- class flexmeasures.data.schemas.times.DurationField(*args, **kwargs)
Field that deserializes to a ISO8601 Duration and serializes back to a string.
- _deserialize(value, attr, obj, **kwargs) timedelta | isodate.Duration
Use the isodate library to turn an ISO8601 string into a timedelta. For some non-obvious cases, it will become an isodate.Duration, see ground_from for more. This method throws a ValidationError if the string is not ISO norm.
- _serialize(value, attr, data, **kwargs)
An implementation of _serialize. It is not guaranteed to return the same string as was input, if ground_from has been used!
- static ground_from(duration: timedelta | isodate.Duration, start: datetime | None) timedelta
For some valid duration strings (such as “P1M”, a month), converting to a datetime.timedelta is not possible (no obvious number of days). In this case, _deserialize returned an isodate.Duration. We can derive the timedelta by grounding to an actual time span, for which we require a timezone-aware start datetime.
- class flexmeasures.data.schemas.times.PlanningDurationField(*args, **kwargs)
- classmethod load_default()
Use this with the load_default arg to __init__ if you want the default FlexMeasures planning horizon.
- class flexmeasures.data.schemas.times.TimeIntervalField(*args, **kwargs)
Field that de-serializes to a TimeInverval defined with start and duration.
- _deserialize(value: str, attr, obj, **kwargs) dict
Deserialize value. Concrete
Field
classes should implement this method.- Parameters:
value – The value to be deserialized.
attr – The attribute/key in data to be deserialized.
data – The raw input data passed to the Schema.load.
kwargs – Field-specific keyword arguments.
- Raises:
ValidationError – In case of formatting or validation failure.
- Returns:
The deserialized value.
Changed in version 2.0.0: Added
attr
anddata
parameters.Changed in version 3.0.0: Added
**kwargs
to signature.
- class flexmeasures.data.schemas.times.TimeIntervalSchema(*, only: types.StrSequenceOrSet | None = None, exclude: types.StrSequenceOrSet = (), many: bool = False, context: dict | None = None, load_only: types.StrSequenceOrSet = (), dump_only: types.StrSequenceOrSet = (), partial: bool | types.StrSequenceOrSet | None = None, unknown: str | None = None)
Exceptions