spacemanspiff2007 / HABApp

Easy home automation with MQTT and/or openHAB
Apache License 2.0
54 stars 23 forks source link

Missing check foir NoneType before format #312

Closed fastlorenzo closed 1 year ago

fastlorenzo commented 2 years ago

The code is missing a check if val is of NoneType, which ends up with the following error:

openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] - File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/definitions/helpers/log_table.py", line 35 in format_entry
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] - --------------------------------------------------------------------------------
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      22 | def format_entry(self, pos: int, lines: int) -> List[str]:
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -       (...)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      32 |         if isinstance(val, bool):
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      33 |             val = str(val)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      34 |         f = f'{{:{""if self.align is None else self.align}{self.width:d}}}'
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] - -->  35 |         ret.append(f.format(val))
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      36 |     return ret
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -    ------------------------------------------------------------
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      self = <HABApp.openhab.definitions.helpers.log_table.Column object at 0x7f55bc99b2e0>
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      self.entries = [('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), (None,), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',), ('zwave:serial_zstick:d8dbe7c586',)]
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      self.entries[pos] = (None,)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      self.width = 30
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      self.width * ' ' = '                              '
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      f = '{:<30}'
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      i = 0
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      len(objs) = 1
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      lines = 1
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      objs = (None,)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      objs[i] = None
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      pos = 3
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      range(lines) = range(0, 1)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      ret = []
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.680 [ERROR] [HABApp.openhab.thing                ] -      size = 1
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -      str(val) = 'None'
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -      val = None
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -      i >= size = False
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -    ------------------------------------------------------------
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] - 
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] - --------------------------------------------------------------------------------
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] - Traceback (most recent call last):
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/core/files/file/file.py", line 109, in load
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     await self.__class__.LOAD_FUNC(self.name, self.path)
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/connection_logic/plugin_things/plugin_things.py", line 120, in file_load
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     log_overview(data, THING_ALIAS, 'Thing overview')
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/connection_logic/plugin_things/filters.py", line 76, in log_overview
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     for line in table.get_lines(sort_columns=['thing_type'] if 'thing_type' in table.columns else None):
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/definitions/helpers/log_table.py", line 117, in get_lines
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     grid = tuple(map(lambda x: x.format_entry(i, lines), self.columns.values()))  # type: Tuple[List[str], ...]
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/definitions/helpers/log_table.py", line 117, in <lambda>
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     grid = tuple(map(lambda x: x.format_entry(i, lines), self.columns.values()))  # type: Tuple[List[str], ...]
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -   File "/usr/local/lib/python3.10/site-packages/HABApp/openhab/definitions/helpers/log_table.py", line 35, in format_entry
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] -     ret.append(f.format(val))
openhab-55cb9bcfbb-pn7s9 habapp 2022-08-22 16:38:03.681 [ERROR] [HABApp.openhab.thing                ] - TypeError: unsupported format string passed to NoneType.__format__
openhab-55cb9bcfbb-pn7s9 habapp [2022-08-22 16:38:03,682] [          HABApp.EventBus]     INFO |        HABApp.Errors: <HABAppException func_name: file_load, exception: unsupported format string passed to NoneType.__format__>

https://github.com/spacemanspiff2007/HABApp/blob/decea19e5d4a54fdcdbbb61edfe5ff96ab068e6a/src/HABApp/openhab/definitions/helpers/log_table.py#L31-L35

spacemanspiff2007 commented 2 years ago

Upon checking further None should have never been added. There must be another error. Could you provide the complete trace back please?

spacemanspiff2007 commented 1 year ago

Closed since this issue seems to be stale

spacemanspiff2007 commented 1 year ago

Implemented in 1.0.6