"""
Base interfaces for Sentinel sensors.
"""

from abc import ABC, abstractmethod


class TemperatureSensor(ABC):
    """
    Define the common interface for temperature sensors.
    """

    @abstractmethod
    def read_temperature_c(self) -> float:
        """
        Read and return a temperature in degrees Celsius.

        Returns:
            Temperature in degrees Celsius.
        """
        raise NotImplementedError


class CurrentSensor(ABC):
    """
    Define the common interface for electrical current sensors.
    """

    @abstractmethod
    def read_current_a(self) -> float:
        """
        Read and return electrical current in amperes.

        Returns:
            Electrical current in amperes.
        """
        raise NotImplementedError