From 5d18529f0fd000e44fe649e3de72f75d02efa36c Mon Sep 17 00:00:00 2001
From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr>
Date: Wed, 27 Nov 2024 17:39:24 +0100
Subject: [PATCH] Format

---
 .../ESPHome/xaal/esphome/bindings.py          | 23 +++---
 devices/weather/OpenWeatherMap/xaal/owm/gw.py | 73 ++++++++++---------
 2 files changed, 53 insertions(+), 43 deletions(-)

diff --git a/devices/protocols/ESPHome/xaal/esphome/bindings.py b/devices/protocols/ESPHome/xaal/esphome/bindings.py
index 4b8a8a20..30f91475 100644
--- a/devices/protocols/ESPHome/xaal/esphome/bindings.py
+++ b/devices/protocols/ESPHome/xaal/esphome/bindings.py
@@ -1,12 +1,10 @@
-from xaal.lib import tools,Device
-from xaal.schemas import devices
-
-from pprint import pprint
-from aioesphomeapi import APIClient, APIConnectionError,model
-
 import asyncio
 import logging
 
+from aioesphomeapi import APIClient, APIConnectionError, model
+
+from xaal.lib import Device, tools
+from xaal.schemas import devices
 
 logging.getLogger('aioesphomeapi').setLevel(logging.INFO)
 logger = logging.getLogger(__name__)
@@ -18,7 +16,9 @@ class ESPDevice:
         self.port = cfg.get('port',6053)
         self.key = cfg.get('key',None)
         self.passwd = cfg.get('passwd',None)
-        self.base_addr = tools.get_uuid(cfg.get('base_addr'))
+        addr = tools.get_uuid(cfg.get('base_addr'))
+        assert addr, "Invalid base_addr"
+        self.base_addr = addr
 
         self.embedded = []
         self.disconnected = asyncio.Event()
@@ -91,10 +91,12 @@ def find_device_class(info):
     if type_ == model.LightInfo:
         return Lamp
     elif type_ == model.SwitchInfo:
-        return PowerRelay              
+        return PowerRelay
     elif type_ == model.SensorInfo:
-        if info.device_class == 'signal_strength': return WifiMeter
-        if info.device_class == 'power': return PowerMeter
+        if info.device_class == 'signal_strength':
+            return WifiMeter
+        if info.device_class == 'power':
+            return PowerMeter
 
     elif type_ == model.BinarySensorInfo:
         return Contact
@@ -121,6 +123,7 @@ class EntityMixin(object):
         return self.info.key
 
     def setup_device_description(self):
+        assert self.dev, "Device not setup"
         self.dev.vendor_id = 'ESPHome'
         self.dev.product_id = self.info.unique_id
         self.dev.hw_id = self.info.key
diff --git a/devices/weather/OpenWeatherMap/xaal/owm/gw.py b/devices/weather/OpenWeatherMap/xaal/owm/gw.py
index 9434e88a..cb663804 100644
--- a/devices/weather/OpenWeatherMap/xaal/owm/gw.py
+++ b/devices/weather/OpenWeatherMap/xaal/owm/gw.py
@@ -1,73 +1,78 @@
-import platform
 import logging
+import platform
 
 import pyowm
 from pyowm.exceptions import OWMError
-from xaal.lib import tools
-from xaal.schemas import devices
 
-from xaal.lib import helpers
+from xaal.lib import helpers, tools
+from xaal.schemas import devices
 
 PACKAGE_NAME = "xaal.owm"
-RATE = 300 # update every 5 min
+RATE = 300  # update every 5 min
 API_KEY = '3a5989bac31472cd41d69e92838bd454'
 
 logger = logging.getLogger(PACKAGE_NAME)
 
+
 def setup_dev(dev):
-    dev.vendor_id  = "IHSEV"
+    dev.vendor_id = "IHSEV"
     dev.product_id = "OpenWeatherMap"
-    dev.info       = "%s@%s" % (PACKAGE_NAME,platform.node())
-    dev.url        = "https://www.openweathermap.org"
-    dev.version    = 0.3
+    dev.info = "%s@%s" % (PACKAGE_NAME, platform.node())
+    dev.url = "https://www.openweathermap.org"
+    dev.version = 0.3
     return dev
 
+
 class GW:
-    def __init__(self,engine):
+    def __init__(self, engine):
         self.eng = engine
         engine.on_stop(self.save_config)
         cfg = tools.load_cfg(PACKAGE_NAME)
-        if cfg == None:
+        if cfg is None:
             logger.info('New config file')
             cfg = tools.new_cfg(PACKAGE_NAME)
             cfg['config']['base_addr'] = str(tools.get_random_base_uuid())
         self.cfg = cfg
-
         self.setup()
         self.update()
 
     def setup(self):
-        """ create devices, register .."""
+        """create devices, register .."""
         cfg = self.cfg['config']
         base_addr = tools.get_uuid(cfg['base_addr'])
+        if base_addr is None:
+            logger.error('Invalid base_addr')
+            return
         # devices
-        d1 = devices.thermometer(base_addr +0)
-        d2 = devices.hygrometer(base_addr +1)
-        d3 = devices.barometer(base_addr +2)
-        d4 = devices.windgauge(base_addr +3)
+        d1 = devices.thermometer(base_addr + 0)
+        d2 = devices.hygrometer(base_addr + 1)
+        d3 = devices.barometer(base_addr + 2)
+        d4 = devices.windgauge(base_addr + 3)
         d4.unsupported_attributes.append('gust_angle')
-        d4.del_attribute(d4.get_attribute('gust_angle'))
-        self.devs = [d1,d2,d3,d4]
+        gust = d4.get_attribute('gust_angle')
+        if gust:
+            d4.del_attribute(gust)
+        self.devs = [d1, d2, d3, d4]
 
         # gw
         gw = devices.gateway(tools.get_uuid(cfg['addr']))
         gw.attributes['embedded'] = [dev.address for dev in self.devs]
 
-        group = base_addr + 0xff
-        for dev in (self.devs + [gw,]):
+        group = base_addr + 0xFF
+        for dev in self.devs + [gw,]:
             setup_dev(dev)
             if dev != gw:
                 dev.group_id = group
 
         self.eng.add_devices(self.devs + [gw,])
         # OWM stuff
-        self.eng.add_timer(self.update,RATE)
+        self.eng.add_timer(self.update, RATE)
         # API Key
-        api_key = cfg.get('api_key',None)
+        api_key = cfg.get('api_key', None)
         if not api_key:
             cfg['api_key'] = api_key = API_KEY
-        # Place 
-        self.place = cfg.get('place',None)
+        # Place
+        self.place = cfg.get('place', None)
         if not self.place:
             cfg['place'] = self.place = 'Brest,FR'
         # We are ready
@@ -78,18 +83,19 @@ class GW:
         try:
             self._update()
         except OWMError as e:
-            logger.warn(e)
+            logger.warning(e)
 
     def _update(self):
         weather = self.owm.weather_at_place(self.place).get_weather()
-        self.devs[0].attributes['temperature'] = round(weather.get_temperature(unit='celsius').get('temp',None),1)
-        self.devs[1].attributes['humidity']    = weather.get_humidity()
-        self.devs[2].attributes['pressure']    = weather.get_pressure().get('press',None)
-        wind = weather.get_wind().get('speed',None)
-        if wind: wind = round(wind * 3600 / 1000, 1) # m/s => km/h
+        self.devs[0].attributes['temperature'] = round(weather.get_temperature(unit='celsius').get('temp', None), 1)
+        self.devs[1].attributes['humidity'] = weather.get_humidity()
+        self.devs[2].attributes['pressure'] = weather.get_pressure().get('press', None)
+        wind = weather.get_wind().get('speed', None)
+        if wind:
+            wind = round(wind * 3600 / 1000, 1)  # m/s => km/h
         self.devs[3].attributes['wind_strength'] = wind
-        self.devs[3].attributes['wind_angle'] = weather.get_wind().get('deg',None)
-        self.devs[3].attributes['gust_strength'] = weather.get_wind().get('gust',None)
+        self.devs[3].attributes['wind_angle'] = weather.get_wind().get('deg', None)
+        self.devs[3].attributes['gust_strength'] = weather.get_wind().get('gust', None)
 
     def save_config(self):
         cfg = tools.load_cfg(PACKAGE_NAME)
@@ -97,6 +103,7 @@ class GW:
             logger.info('Saving configuration file')
             self.cfg.write()
 
+
 def setup(engine):
     gw = GW(engine)
     return True
-- 
GitLab