Date: Friday, May 7, 2021 @ 10:29:51 Author: alucryd Revision: 928588
home-assistant 2021.5.0-1: switch to python-sqlalchemy1.3 Modified: home-assistant/trunk/PKGBUILD home-assistant/trunk/home-assistant.service Deleted: home-assistant/trunk/home-assistant-astral2.2.patch --------------------------------+ PKGBUILD | 11 - home-assistant-astral2.2.patch | 290 --------------------------------------- home-assistant.service | 2 3 files changed, 6 insertions(+), 297 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-05-07 10:23:57 UTC (rev 928587) +++ PKGBUILD 2021-05-07 10:29:51 UTC (rev 928588) @@ -6,7 +6,7 @@ pkgname=home-assistant pkgdesc='Open source home automation that puts local control and privacy first' -pkgver=2021.4.6 +pkgver=2021.5.0 pkgrel=1 arch=(any) url=https://home-assistant.io/ @@ -34,7 +34,7 @@ python-requests python-ruamel-yaml python-slugify - python-sqlalchemy + python-sqlalchemy1.3 python-voluptuous python-voluptuous-serialize python-yaml @@ -51,15 +51,13 @@ 'python-dtlssocket: Ikea Tradfri integration' 'python-lxml: Meteo France integration' ) -_tag=5ee373869a59266142001b62a5067d56c22bfddf +_tag=ccf92e4721bf7c39c11c0239b81252342a244a35 source=( git+https://github.com/home-assistant/home-assistant.git#tag=${_tag} home-assistant.service - home-assistant-astral2.2.patch ) b2sums=('SKIP' - '0df7bbfdac09e37294ac27567e677855c72d13be3aefbd23e0a8f101cf2148302affbe9b6b586b893f77fc990f665d7b95f4916583680c06abd8f74b5cdf3da9' - '4458692cb10e0832c1b321b96d74d7dd7e5e0e9e9b23d420efec9e27e5b0f34ef33f64789b05fbc5ec49337002ad26b026079b939741bbf16869c52c9316ef34') + 'c56b88e4d8d6d10ea132d22916468109ffaa83c1176a75e0c0ead16b261c34fe4c279cec6dca415b1addfcd873ad35b294f60a3e1ba62cc917a9dbb73cce47d4') pkgver() { cd home-assistant @@ -68,7 +66,6 @@ prepare() { cd home-assistant - patch -Np1 -i ../home-assistant-astral2.2.patch # lift hard dep constraints, we'll deal with breaking changes ourselves sed 's/==/>=/g' -i requirements.txt setup.py homeassistant/package_constraints.txt # allow pip >= 20.3 to be used Deleted: home-assistant-astral2.2.patch =================================================================== --- home-assistant-astral2.2.patch 2021-05-07 10:23:57 UTC (rev 928587) +++ home-assistant-astral2.2.patch 2021-05-07 10:29:51 UTC (rev 928588) @@ -1,290 +0,0 @@ -From a96a731fb1a2814f88e574a266b051f401d8a262 Mon Sep 17 00:00:00 2001 -From: Maxime Gauduin <[email protected]> -Date: Wed, 14 Apr 2021 08:40:16 +0200 -Subject: [PATCH] bump astral to 2.2 - ---- - homeassistant/components/moon/sensor.py | 5 +-- - homeassistant/components/sun/__init__.py | 20 +++++----- - homeassistant/helpers/sun.py | 50 +++++++++++++++--------- - homeassistant/package_constraints.txt | 2 +- - requirements.txt | 2 +- - setup.py | 2 +- - 6 files changed, 47 insertions(+), 34 deletions(-) - -diff --git a/homeassistant/components/moon/sensor.py b/homeassistant/components/moon/sensor.py -index 4b373469cc..6213e218d2 100644 ---- a/homeassistant/components/moon/sensor.py -+++ b/homeassistant/components/moon/sensor.py -@@ -1,5 +1,5 @@ - """Support for tracking the moon phases.""" --from astral import Astral -+from astral import moon - import voluptuous as vol - - from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity -@@ -48,7 +48,6 @@ class MoonSensor(SensorEntity): - """Initialize the moon sensor.""" - self._name = name - self._state = None -- self._astral = Astral() - - @property - def name(self): -@@ -87,4 +86,4 @@ class MoonSensor(SensorEntity): - async def async_update(self): - """Get the time and updates the states.""" - today = dt_util.as_local(dt_util.utcnow()).date() -- self._state = self._astral.moon_phase(today) -+ self._state = moon.phase(today) -diff --git a/homeassistant/components/sun/__init__.py b/homeassistant/components/sun/__init__.py -index dfe3b15c11..489eab6b5b 100644 ---- a/homeassistant/components/sun/__init__.py -+++ b/homeassistant/components/sun/__init__.py -@@ -92,6 +92,7 @@ class Sun(Entity): - """Initialize the sun.""" - self.hass = hass - self.location = None -+ self.elevation = 0.0 - self._state = self.next_rising = self.next_setting = None - self.next_dawn = self.next_dusk = None - self.next_midnight = self.next_noon = None -@@ -100,10 +101,11 @@ class Sun(Entity): - self._next_change = None - - def update_location(_event): -- location = get_astral_location(self.hass) -+ location, elevation = get_astral_location(self.hass) - if location == self.location: - return - self.location = location -+ self.elevation = elevation - self.update_events() - - update_location(None) -@@ -140,7 +142,7 @@ class Sun(Entity): - - def _check_event(self, utc_point_in_time, sun_event, before): - next_utc = get_location_astral_event_next( -- self.location, sun_event, utc_point_in_time -+ self.location, self.elevation, sun_event, utc_point_in_time - ) - if next_utc < self._next_change: - self._next_change = next_utc -@@ -169,7 +171,7 @@ class Sun(Entity): - ) - self.location.solar_depression = -10 - self._check_event(utc_point_in_time, "dawn", PHASE_SMALL_DAY) -- self.next_noon = self._check_event(utc_point_in_time, "solar_noon", None) -+ self.next_noon = self._check_event(utc_point_in_time, "noon", None) - self._check_event(utc_point_in_time, "dusk", PHASE_DAY) - self.next_setting = self._check_event( - utc_point_in_time, SUN_EVENT_SUNSET, PHASE_SMALL_DAY -@@ -180,9 +182,7 @@ class Sun(Entity): - self._check_event(utc_point_in_time, "dusk", PHASE_NAUTICAL_TWILIGHT) - self.location.solar_depression = "astronomical" - self._check_event(utc_point_in_time, "dusk", PHASE_ASTRONOMICAL_TWILIGHT) -- self.next_midnight = self._check_event( -- utc_point_in_time, "solar_midnight", None -- ) -+ self.next_midnight = self._check_event(utc_point_in_time, "midnight", None) - self.location.solar_depression = "civil" - - # if the event was solar midday or midnight, phase will now -@@ -190,7 +190,7 @@ class Sun(Entity): - # even in the day at the poles, so we can't rely on it. - # Need to calculate phase if next is noon or midnight - if self.phase is None: -- elevation = self.location.solar_elevation(self._next_change) -+ elevation = self.location.solar_elevation(self._next_change, self.elevation) - if elevation >= 10: - self.phase = PHASE_DAY - elif elevation >= 0: -@@ -222,9 +222,11 @@ class Sun(Entity): - """Calculate the position of the sun.""" - # Grab current time in case system clock changed since last time we ran. - utc_point_in_time = dt_util.utcnow() -- self.solar_azimuth = round(self.location.solar_azimuth(utc_point_in_time), 2) -+ self.solar_azimuth = round( -+ self.location.solar_azimuth(utc_point_in_time, self.elevation), 2 -+ ) - self.solar_elevation = round( -- self.location.solar_elevation(utc_point_in_time), 2 -+ self.location.solar_elevation(utc_point_in_time, self.elevation), 2 - ) - - _LOGGER.debug( -diff --git a/homeassistant/helpers/sun.py b/homeassistant/helpers/sun.py -index b3a37d238f..b5bac8d71b 100644 ---- a/homeassistant/helpers/sun.py -+++ b/homeassistant/helpers/sun.py -@@ -2,7 +2,7 @@ - from __future__ import annotations - - import datetime --from typing import TYPE_CHECKING -+from typing import TYPE_CHECKING, Optional, Tuple, Union - - from homeassistant.const import SUN_EVENT_SUNRISE, SUN_EVENT_SUNSET - from homeassistant.core import HomeAssistant, callback -@@ -14,27 +14,32 @@ if TYPE_CHECKING: - - DATA_LOCATION_CACHE = "astral_location_cache" - -+ELEVATION_AGNOSTIC_EVENTS = ("noon", "midnight") -+ - - @callback - @bind_hass --def get_astral_location(hass: HomeAssistant) -> astral.Location: -+def get_astral_location( -+ hass: HomeAssistant, -+) -> Tuple["astral.location.Location", "astral.Elevation"]: - """Get an astral location for the current Home Assistant configuration.""" -- from astral import Location # pylint: disable=import-outside-toplevel -+ from astral import LocationInfo # pylint: disable=import-outside-toplevel -+ from astral.location import Location # pylint: disable=import-outside-toplevel - -+ timezone = str(hass.config.time_zone) - latitude = hass.config.latitude - longitude = hass.config.longitude -- timezone = str(hass.config.time_zone) - elevation = hass.config.elevation -- info = ("", "", latitude, longitude, timezone, elevation) -+ info = ("", "", timezone, latitude, longitude) - - # Cache astral locations so they aren't recreated with the same args - if DATA_LOCATION_CACHE not in hass.data: - hass.data[DATA_LOCATION_CACHE] = {} - - if info not in hass.data[DATA_LOCATION_CACHE]: -- hass.data[DATA_LOCATION_CACHE][info] = Location(info) -+ hass.data[DATA_LOCATION_CACHE][info] = Location(LocationInfo(*info)) - -- return hass.data[DATA_LOCATION_CACHE][info] -+ return hass.data[DATA_LOCATION_CACHE][info], elevation - - - @callback -@@ -46,26 +51,31 @@ def get_astral_event_next( - offset: datetime.timedelta | None = None, - ) -> datetime.datetime: - """Calculate the next specified solar event.""" -- location = get_astral_location(hass) -- return get_location_astral_event_next(location, event, utc_point_in_time, offset) -+ location, elevation = get_astral_location(hass) -+ return get_location_astral_event_next( -+ location, elevation, event, utc_point_in_time, offset -+ ) - - - @callback - def get_location_astral_event_next( -- location: astral.Location, -+ location: "astral.location.Location", -+ elevation: "astral.Elevation", - event: str, - utc_point_in_time: datetime.datetime | None = None, - offset: datetime.timedelta | None = None, - ) -> datetime.datetime: - """Calculate the next specified solar event.""" -- from astral import AstralError # pylint: disable=import-outside-toplevel -- - if offset is None: - offset = datetime.timedelta() - - if utc_point_in_time is None: - utc_point_in_time = dt_util.utcnow() - -+ kwargs = {"local": False} -+ if event not in ELEVATION_AGNOSTIC_EVENTS: -+ kwargs["observer_elevation"] = elevation -+ - mod = -1 - while True: - try: -@@ -73,13 +83,13 @@ def get_location_astral_event_next( - getattr(location, event)( - dt_util.as_local(utc_point_in_time).date() - + datetime.timedelta(days=mod), -- local=False, -+ **kwargs, - ) - + offset - ) - if next_dt > utc_point_in_time: - return next_dt -- except AstralError: -+ except ValueError: - pass - mod += 1 - -@@ -92,9 +102,7 @@ def get_astral_event_date( - date: datetime.date | datetime.datetime | None = None, - ) -> datetime.datetime | None: - """Calculate the astral event time for the specified date.""" -- from astral import AstralError # pylint: disable=import-outside-toplevel -- -- location = get_astral_location(hass) -+ location, elevation = get_astral_location(hass) - - if date is None: - date = dt_util.now().date() -@@ -102,9 +110,13 @@ def get_astral_event_date( - if isinstance(date, datetime.datetime): - date = dt_util.as_local(date).date() - -+ kwargs = {"local": False} -+ if event not in ELEVATION_AGNOSTIC_EVENTS: -+ kwargs["observer_elevation"] = elevation -+ - try: -- return getattr(location, event)(date, local=False) # type: ignore -- except AstralError: -+ return getattr(location, event)(date, **kwargs) # type: ignore -+ except ValueError: - # Event never occurs for specified date. - return None - -diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt -index c5f0ccde05..449c0602df 100644 ---- a/homeassistant/package_constraints.txt -+++ b/homeassistant/package_constraints.txt -@@ -3,7 +3,7 @@ PyNaCl==1.3.0 - aiodiscover==1.3.3 - aiohttp==3.7.4.post0 - aiohttp_cors==0.7.0 --astral==1.10.1 -+astral==2.2 - async-upnp-client==0.16.0 - async_timeout==3.0.1 - attrs==20.3.0 -diff --git a/requirements.txt b/requirements.txt -index 5f633eaeb6..a3facbe5ab 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -2,7 +2,7 @@ - - # Home Assistant Core - aiohttp==3.7.4.post0 --astral==1.10.1 -+astral==2.2 - async_timeout==3.0.1 - attrs==20.3.0 - awesomeversion==21.2.3 -diff --git a/setup.py b/setup.py -index 56e5639148..f74a913cb8 100755 ---- a/setup.py -+++ b/setup.py -@@ -33,7 +33,7 @@ PACKAGES = find_packages(exclude=["tests", "tests.*"]) - - REQUIRES = [ - "aiohttp==3.7.4.post0", -- "astral==1.10.1", -+ "astral==2.2", - "async_timeout==3.0.1", - "attrs==20.3.0", - "awesomeversion==21.2.3", --- -2.31.1 - Modified: home-assistant.service =================================================================== --- home-assistant.service 2021-05-07 10:23:57 UTC (rev 928587) +++ home-assistant.service 2021-05-07 10:29:51 UTC (rev 928588) @@ -9,6 +9,8 @@ DynamicUser=true LogsDirectory=hass StateDirectory=hass +WorkingDirectory=/var/lib/hass +Environment=HOME=/var/lib/hass ExecStart=/usr/bin/hass \ --config /var/lib/hass/ \
