Skip to content

Commit

Permalink
Poetry update, Python 3.11 support and typing fixes (#1787)
Browse files Browse the repository at this point in the history
* Poetry update

* Poetry update, Python 3.11 support and typing fixes
  • Loading branch information
bramstroker committed Aug 5, 2023
1 parent dcd4c2d commit 38beb0e
Show file tree
Hide file tree
Showing 9 changed files with 676 additions and 650 deletions.
9 changes: 8 additions & 1 deletion custom_components/powercalc/const.py
Expand Up @@ -3,7 +3,14 @@
from datetime import timedelta
from typing import Literal

from homeassistant.backports.enum import StrEnum
from awesomeversion.awesomeversion import AwesomeVersion
from homeassistant.const import __version__ as HA_VERSION # noqa

if AwesomeVersion(HA_VERSION) >= AwesomeVersion("2022.8.0"):
from enum import StrEnum
else:
from homeassistant.backports.enum import StrEnum

from homeassistant.components.utility_meter.const import DAILY, MONTHLY, WEEKLY
from homeassistant.const import (
STATE_NOT_HOME,
Expand Down
9 changes: 8 additions & 1 deletion custom_components/powercalc/group_include/filter.py
Expand Up @@ -2,7 +2,14 @@

from typing import Protocol

from homeassistant.backports.enum import StrEnum
from awesomeversion.awesomeversion import AwesomeVersion
from homeassistant.const import __version__ as HA_VERSION # noqa

if AwesomeVersion(HA_VERSION) >= AwesomeVersion("2022.8.0"):
from enum import StrEnum
else:
from homeassistant.backports.enum import StrEnum

from homeassistant.const import CONF_DOMAIN
from homeassistant.helpers.entity_registry import RegistryEntry

Expand Down
9 changes: 8 additions & 1 deletion custom_components/powercalc/power_profile/power_profile.py
Expand Up @@ -6,7 +6,14 @@
import re
from typing import NamedTuple, Protocol

from homeassistant.backports.enum import StrEnum
from awesomeversion.awesomeversion import AwesomeVersion
from homeassistant.const import __version__ as HA_VERSION # noqa

if AwesomeVersion(HA_VERSION) >= AwesomeVersion("2022.8.0"):
from enum import StrEnum
else:
from homeassistant.backports.enum import StrEnum

from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
from homeassistant.components.media_player import DOMAIN as MEDIA_PLAYER_DOMAIN
Expand Down
2 changes: 1 addition & 1 deletion custom_components/powercalc/sensors/group.py
Expand Up @@ -350,7 +350,7 @@ def resolve_entity_ids_recursively(
area_entities = [
entity.entity_id
for entity in resolve_include_entities(
hass, {CONF_AREA: entry.data[CONF_AREA]}
hass, {CONF_AREA: entry.data[CONF_AREA]},
)
if isinstance(
entity,
Expand Down
6 changes: 4 additions & 2 deletions custom_components/powercalc/sensors/utility_meter.py
Expand Up @@ -2,7 +2,8 @@

import inspect
import logging
from typing import Any, cast
from decimal import Decimal
from typing import cast

import homeassistant.helpers.entity_registry as er
from homeassistant.components.select import DOMAIN as SELECT_DOMAIN
Expand All @@ -15,6 +16,7 @@
from homeassistant.components.utility_meter.sensor import UtilityMeterSensor
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.typing import StateType

from custom_components.powercalc.const import (
CONF_CREATE_UTILITY_METERS,
Expand Down Expand Up @@ -200,7 +202,7 @@ def unique_id(self) -> str | None:
return self._attr_unique_id

@property
def native_value(self) -> Any | None:
def native_value(self) -> Decimal | StateType:
"""Return the state of the sensor."""
if self.rounding_digits and self._state is not None:
return round(self._state, self.rounding_digits)
Expand Down
1,276 changes: 640 additions & 636 deletions poetry.lock

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions pyproject.toml
Expand Up @@ -8,7 +8,7 @@ profile = "black"
multi_line_output = 3

[tool.mypy]
python_version = "3.10"
python_version = "3.11"
show_error_codes = true
follow_imports = "silent"
local_partial_types = true
Expand Down Expand Up @@ -58,15 +58,15 @@ readme = "README.md"
pre-commit = "^3.3"
ruff = "^0.0"
voluptuous-stubs = "^0.1"
homeassistant-stubs = "2023.7.0-b3"
homeassistant-stubs = "2023.8.1"
numpy = "^1.23"
black = "^23.3"
freezegun = "^1.2"
pytest-homeassistant-custom-component = "^0.13"
types-pytz = "^2023.3"
types-croniter = "^1.3"
croniter = "^1.4"
pytest-cov = "^3.0"
pytest-cov = "^4.0"
coverage = "^7.2"

[tool.poetry.dependencies]
Expand Down
4 changes: 2 additions & 2 deletions tests/group_include/test_include.py
Expand Up @@ -544,13 +544,13 @@ async def test_area_groups_as_subgroups(
group_a_power = hass.states.get("sensor.groupa_power")
assert group_a_power
assert group_a_power.attributes.get(CONF_ENTITIES) == {
"sensor.bathroom_mirror_power"
"sensor.bathroom_mirror_power",
}

group_b_power = hass.states.get("sensor.groupb_power")
assert group_b_power
assert group_b_power.attributes.get(CONF_ENTITIES) == {
"sensor.bathroom_mirror_power"
"sensor.bathroom_mirror_power",
}


Expand Down
5 changes: 2 additions & 3 deletions tests/testing_config/custom_components/test/sensor.py
Expand Up @@ -4,7 +4,6 @@
Call init before using it in your tests to ensure clean test data.
"""
from datetime import datetime
from typing import Any

from homeassistant.components.sensor import (
DEVICE_CLASSES,
Expand All @@ -25,7 +24,7 @@
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateType
from pytest_homeassistant_custom_component.common import MockEntity

DEVICE_CLASSES.append("none")
Expand Down Expand Up @@ -110,7 +109,7 @@ def native_unit_of_measurement(self) -> str | None:
return self._handle("native_unit_of_measurement")

@property
def native_value(self) -> Any | None:
def native_value(self) -> StateType:
"""Return the native value of this sensor."""
return self._handle("native_value")

Expand Down

0 comments on commit 38beb0e

Please sign in to comment.