__init__.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. from marshmallow import Schema, fields, validate
  2. from flexmeasures.data.schemas.sources import DataSourceIdField
  3. from flexmeasures.data.schemas import AwareDateTimeField, DurationField
  4. from flexmeasures.data.schemas.io import Input, Output
  5. class ReporterConfigSchema(Schema):
  6. """
  7. This schema is used to validate Reporter class configurations (config).
  8. Inherit from this class to extend this schema with your own parameters.
  9. """
  10. pass
  11. class ReporterParametersSchema(Schema):
  12. """
  13. This schema is used to validate the parameters to the method `compute` of
  14. the Reporter class.
  15. Inherit from this class to extend this schema with your own parameters.
  16. """
  17. input = fields.List(
  18. fields.Nested(Input()),
  19. required=True,
  20. validator=validate.Length(min=1),
  21. )
  22. output = fields.List(fields.Nested(Output()), validate=validate.Length(min=1))
  23. start = AwareDateTimeField(required=True)
  24. end = AwareDateTimeField(required=True)
  25. resolution = DurationField(required=False)
  26. belief_time = AwareDateTimeField(required=False)
  27. check_output_resolution = fields.Bool(required=False)
  28. belief_horizon = DurationField(required=False)
  29. class BeliefsSearchConfigSchema(Schema):
  30. """
  31. This schema implements the required fields to perform a TimedBeliefs search
  32. using the method flexmeasures.data.models.time_series:Sensor.search_beliefs
  33. """
  34. event_starts_after = AwareDateTimeField()
  35. event_ends_before = AwareDateTimeField()
  36. beliefs_before = AwareDateTimeField()
  37. beliefs_after = AwareDateTimeField()
  38. horizons_at_least = DurationField()
  39. horizons_at_most = DurationField()
  40. source = DataSourceIdField()
  41. source_types = fields.List(fields.Str())
  42. exclude_source_types = fields.List(fields.Str())
  43. most_recent_beliefs_only = fields.Boolean()
  44. most_recent_events_only = fields.Boolean()
  45. one_deterministic_belief_per_event = fields.Boolean()
  46. one_deterministic_belief_per_event_per_source = fields.Boolean()
  47. resolution = DurationField()
  48. sum_multiple = fields.Boolean()
  49. class StatusSchema(Schema):
  50. max_staleness = DurationField(required=True)
  51. max_future_staleness = DurationField(required=True)
  52. staleness_search = fields.Nested(BeliefsSearchConfigSchema(), required=True)