/
__init__.py
50 lines (36 loc) · 1.56 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from marshmallow import Schema, fields, validate
from flexmeasures.data.schemas.sensors import SensorIdField
from flexmeasures.data.schemas.sources import DataSourceIdField
from flexmeasures.data.schemas import AwareDateTimeField, DurationField
class TimeBeliefQueryConfigSchema(Schema):
"""
This schema implements the required fields to perform a TimeBeliefs search
using the method flexmeasures.data.models.time_series:TimedBelief.search
"""
sensor = SensorIdField(required=True)
alias = fields.Str()
event_starts_after = AwareDateTimeField()
event_ends_before = AwareDateTimeField()
belief_time = AwareDateTimeField()
horizons_at_least = DurationField()
horizons_at_most = DurationField()
source = DataSourceIdField()
# user_source_ids: Optional[Union[int, List[int]]] = None,
source_types = fields.List(fields.Str())
exclude_source_types = fields.List(fields.Str())
most_recent_beliefs_only = fields.Boolean()
most_recent_events_only = fields.Boolean()
one_deterministic_belief_per_event = fields.Boolean()
one_deterministic_belief_per_event_per_source = fields.Boolean()
resolution = DurationField()
sum_multiple = fields.Boolean()
class ReporterConfigSchema(Schema):
"""
This schema is used to validate Reporter class configurations (reporter_config).
Inherit from this to extend this schema with your own parameters.
"""
tb_query_config = fields.List(
fields.Nested(TimeBeliefQueryConfigSchema()),
required=True,
validator=validate.Length(min=1),
)