from abc import ABCMeta, abstractmethod
from typing import Tuple, Any, Dict
from .IStartStop import IStartStop
from pyobs.utils.enums import WeatherSensors
class IWeather(IStartStop, metaclass=ABCMeta):
"""The module acts as a weather station."""
__module__ = "pyobs.interfaces"
[docs] @abstractmethod
async def get_weather_status(self, **kwargs: Any) -> Dict[str, Any]:
"""Returns status of object in form of a dictionary. See other interfaces for details."""
...
[docs] @abstractmethod
async def is_weather_good(self, **kwargs: Any) -> bool:
"""Whether the weather is good to observe."""
...
[docs] @abstractmethod
async def get_current_weather(self, **kwargs: Any) -> Dict[str, Any]:
"""Returns current weather.
Returns:
Dictionary containing entries for time, good, and sensor, with the latter being another dictionary
with sensor information, which contain a value and a good flag.
"""
...
[docs] @abstractmethod
async def get_sensor_value(self, station: str, sensor: WeatherSensors, **kwargs: Any) -> Tuple[str, float]:
"""Return value for given sensor.
Args:
station: Name of weather station to get value from.
sensor: Name of sensor to get value from.
Returns:
Tuple of current value of given sensor or None and time of measurement or None.
"""
...
__all__ = ["IWeather"]