<commit_before>"""
Support for NuHeat thermostats.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/climate.nuheat/
"""
import logging
from datetime import timedelta

from homeassistant.components.climate import (
    ClimateDevice,
    STATE_HEAT,
    STATE_IDLE)
from homeassistant.components.nuheat import DATA_NUHEAT
from homeassistant.const import (
    ATTR_TEMPERATURE,
    STATE_HOME,
    TEMP_CELSIUS,
    TEMP_FAHRENHEIT)
from homeassistant.util import Throttle

DEPENDENCIES = ["nuheat"]

_LOGGER = logging.getLogger(__name__)

MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)

# Hold modes
MODE_AUTO = STATE_HOME  # Run device schedule
MODE_AWAY = "away"
MODE_HOLD_TEMPERATURE = "temperature"
MODE_TEMPORARY_HOLD = "temporary_temperature"

OPERATION_LIST = [STATE_HEAT, STATE_IDLE]

SCHEDULE_HOLD = 3
SCHEDULE_RUN = 1
SCHEDULE_TEMPORARY_HOLD = 2


def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the NuHeat thermostat(s)."""
    if discovery_info is None:
        return

    _LOGGER.info("Loading NuHeat thermostat climate component")
    temperature_unit = hass.config.units.temperature_unit
    api, serial_numbers, min_away_temp = hass.data[DATA_NUHEAT]
    thermostats = [
        NuHeatThermostat(api, serial_number, min_away_temp, temperature_unit)
        for serial_number in serial_numbers
    ]
    add_devices(thermostats, True)


class NuHeatThermostat(ClimateDevice):
    """Representation of a NuHeat Thermostat."""
    def __init__(self, api, serial_number, min_away_temp, temperature_unit):
        self._thermostat = api.get_thermostat(serial_number)
        self._temperature_unit = temperature_unit
        self._min_away_temp = min_away_temp
        self._force_update = False

    @property
    def name(self):
        """Return the name of the thermostat."""
        return self._thermostat.room

    @property
    def temperature_unit(self):
        """Return the unit of measurement."""
        if self._temperature_unit == "C":
            return TEMP_CELSIUS

        return TEMP_FAHRENHEIT

    @property
    def current_temperature(self):
        """Return the current temperature."""
        if self._temperature_unit == "C":
            return self._thermostat.celsius

        return self._thermostat.fahrenheit

    @property
    def current_operation(self):
        """Return current operation. ie. heat, idle."""
        if self._thermostat.heating:
            return STATE_HEAT

        return STATE_IDLE

    @property
    def min_away_temp(self):
        """Return the minimum target temperature to be used in away mode."""
        if self._min_away_temp and self._min_away_temp > self.min_temp:
            return int(self._min_away_temp)
<commit_msg>that int() casting was redundant<commit_after>"""
Support for NuHeat thermostats.

For more details about this platform, please refer to the documentation at
https://home-assistant.io/components/climate.nuheat/
"""
import logging
from datetime import timedelta

from homeassistant.components.climate import (
    ClimateDevice,
    STATE_HEAT,
    STATE_IDLE)
from homeassistant.components.nuheat import DATA_NUHEAT
from homeassistant.const import (
    ATTR_TEMPERATURE,
    STATE_HOME,
    TEMP_CELSIUS,
    TEMP_FAHRENHEIT)
from homeassistant.util import Throttle

DEPENDENCIES = ["nuheat"]

_LOGGER = logging.getLogger(__name__)

MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=5)

# Hold modes
MODE_AUTO = STATE_HOME  # Run device schedule
MODE_AWAY = "away"
MODE_HOLD_TEMPERATURE = "temperature"
MODE_TEMPORARY_HOLD = "temporary_temperature"

OPERATION_LIST = [STATE_HEAT, STATE_IDLE]

SCHEDULE_HOLD = 3
SCHEDULE_RUN = 1
SCHEDULE_TEMPORARY_HOLD = 2


def setup_platform(hass, config, add_devices, discovery_info=None):
    """Set up the NuHeat thermostat(s)."""
    if discovery_info is None:
        return

    _LOGGER.info("Loading NuHeat thermostat climate component")
    temperature_unit = hass.config.units.temperature_unit
    api, serial_numbers, min_away_temp = hass.data[DATA_NUHEAT]
    thermostats = [
        NuHeatThermostat(api, serial_number, min_away_temp, temperature_unit)
        for serial_number in serial_numbers
    ]
    add_devices(thermostats, True)


class NuHeatThermostat(ClimateDevice):
    """Representation of a NuHeat Thermostat."""
    def __init__(self, api, serial_number, min_away_temp, temperature_unit):
        self._thermostat = api.get_thermostat(serial_number)
        self._temperature_unit = temperature_unit
        self._min_away_temp = min_away_temp
        self._force_update = False

    @property
    def name(self):
        """Return the name of the thermostat."""
        return self._thermostat.room

    @property
    def temperature_unit(self):
        """Return the unit of measurement."""
        if self._temperature_unit == "C":
            return TEMP_CELSIUS

        return TEMP_FAHRENHEIT

    @property
    def current_temperature(self):
        """Return the current temperature."""
        if self._temperature_unit == "C":
            return self._thermostat.celsius

        return self._thermostat.fahrenheit

    @property
    def current_operation(self):
        """Return current operation. ie. heat, idle."""
        if self._thermostat.heating:
            return STATE_HEAT

        return STATE_IDLE

    @property
    def min_away_temp(self):
        """Return the minimum target temperature to be used in away mode."""
        if self._min_away_temp and self._min_away_temp > self.min_temp:
            return self._min_away_temp

{'fraction_non_alphanumeric': 0.08015675097969362, 'fraction_numerical': 0.0014250089063056644, 'mean_word_length': 3.4955964771817456, 'pattern_counts': {'":': 4, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6529106', 'n_tokens_mistral': 1801, 'n_tokens_neox': 1706, 'n_words': 418}