diff --git a/docs/configuration.rst b/docs/configuration.rst index ca4dd8c7..88446f88 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -187,4 +187,3 @@ Debug .. autopydantic_model:: PeriodicTracebackDumpConfig .. autopydantic_model:: WatchEventLoopConfig - diff --git a/readme.md b/readme.md index f9ade585..4f499707 100644 --- a/readme.md +++ b/readme.md @@ -137,7 +137,7 @@ Changelog: Migration of rules: - Search for ``self.run.at`` and replace with ``self.run.once`` - ``item.last_update`` and ``item.last_change`` can now directly used to check if it's newer/older than a delta. - Replace ``item.last_update > datetime_obj`` with ``item.last_update > timedelta_obj`` or + Replace ``item.last_update > datetime_obj`` with ``item.last_update > timedelta_obj`` or ``item.last_update.newer_than(minutes=10)`` #### 24.08.1 (2024-08-02) diff --git a/src/HABApp/core/items/base_valueitem.py b/src/HABApp/core/items/base_valueitem.py index 492ac996..4f1ad9e5 100644 --- a/src/HABApp/core/items/base_valueitem.py +++ b/src/HABApp/core/items/base_valueitem.py @@ -78,7 +78,7 @@ def command_value(self, value: Any) -> None: """ post_event(self._name, ValueCommandEvent(self._name, value)) - def post_value_if(self, new_value: Any, *, equal=MISSING, eq=MISSING, not_equal=MISSING, ne=MISSING, + def post_value_if(self, new_value, *, equal=MISSING, eq=MISSING, not_equal=MISSING, ne=MISSING, lower_than=MISSING, lt=MISSING, lower_equal=MISSING, le=MISSING, greater_than=MISSING, gt=MISSING, greater_equal=MISSING, ge=MISSING, is_=MISSING, is_not=MISSING) -> bool: diff --git a/src/HABApp/openhab/connection/connection.py b/src/HABApp/openhab/connection/connection.py index 23f5139b..933e08e7 100644 --- a/src/HABApp/openhab/connection/connection.py +++ b/src/HABApp/openhab/connection/connection.py @@ -7,10 +7,10 @@ import HABApp from HABApp.core.connections import AutoReconnectPlugin, BaseConnection, Connections, ConnectionStateToEventBusPlugin -from HABApp.core.items.base_valueitem import datetime -from HABApp.core.lib import InstantView + if TYPE_CHECKING: + from HABApp.core.lib import InstantView from HABApp.openhab.items import OpenhabItem, Thing diff --git a/src/HABApp/openhab/connection/plugins/load_items.py b/src/HABApp/openhab/connection/plugins/load_items.py index 32335fca..07c621df 100644 --- a/src/HABApp/openhab/connection/plugins/load_items.py +++ b/src/HABApp/openhab/connection/plugins/load_items.py @@ -9,7 +9,6 @@ import HABApp.openhab.events from HABApp.core.connections import BaseConnectionPlugin from HABApp.core.internals import uses_item_registry -from HABApp.core.lib import InstantView from HABApp.openhab.connection.connection import OpenhabConnection, OpenhabContext from HABApp.openhab.connection.handler import map_null_str from HABApp.openhab.connection.handler.func_async import async_get_all_items_state, async_get_items, async_get_things @@ -25,8 +24,7 @@ if TYPE_CHECKING: - from datetime import datetime - + from HABApp.core.lib import InstantView from HABApp.openhab.definitions.rest import ThingResp diff --git a/tests/test_config/test_logging.py b/tests/test_config/test_logging.py index bef9b574..c13ce0f9 100644 --- a/tests/test_config/test_logging.py +++ b/tests/test_config/test_logging.py @@ -1,12 +1,13 @@ import logging from HABApp.config.logging import get_logging_dict -from HABApp.config.logging.config import remove_memory_handler_from_cfg, inject_queue_handler +from HABApp.config.logging.config import inject_queue_handler, remove_memory_handler_from_cfg + log = logging.getLogger('test') -def test_add_version(test_logs): +def test_add_version(test_logs) -> None: assert get_logging_dict({}, log)[0] == {'version': 1} @@ -16,7 +17,7 @@ def get_unpack(log_dict): return value -def test_fix_old_logger(test_logs): +def test_fix_old_logger(test_logs) -> None: cfg = {'handlers': {'my_handler': {'class': 'HABApp.core.lib.handler.MidnightRotatingFileHandler'}}} dst = {'handlers': {'my_handler': {'class': 'HABApp.config.logging.MidnightRotatingFileHandler'}}} test_logs.add_expected( @@ -27,7 +28,7 @@ def test_fix_old_logger(test_logs): assert get_unpack(cfg) == dst -def test_remove_memory_handler(test_logs): +def test_remove_memory_handler(test_logs) -> None: cfg = { 'handlers': { 'BufferEventFile': {'class': 'logging.handlers.MemoryHandler', 'target': 'EventFile'}, @@ -58,7 +59,7 @@ def test_remove_memory_handler(test_logs): test_logs.add_expected('test', logging.WARNING, 'Replaced BufferEventFile with EventFile for logger HABApp.EventBus') -def test_inject_queue_handler(): +def test_inject_queue_handler() -> None: cfg = { 'handlers': { 'EventFile': {'class': 'logging.handlers.RotatingFileHandler', 'filename': 'events.log'}, diff --git a/tests/test_core/test_items/item_tests.py b/tests/test_core/test_items/item_tests.py index 95320aa1..7a00f3f3 100644 --- a/tests/test_core/test_items/item_tests.py +++ b/tests/test_core/test_items/item_tests.py @@ -73,7 +73,7 @@ def test_time_value_change(self) -> None: assert item._last_update.instant == instant assert item._last_change.instant == instant - def test_time_funcs(self): + def test_time_funcs(self) -> None: item = self.get_item() now1 = Instant.now() diff --git a/tests/test_core/test_lib/test_format_traceback.py b/tests/test_core/test_lib/test_format_traceback.py index 07f3c74e..e5f3b3b5 100644 --- a/tests/test_core/test_lib/test_format_traceback.py +++ b/tests/test_core/test_lib/test_format_traceback.py @@ -196,7 +196,7 @@ def test_exception_expression_remove() -> None: ZeroDivisionError: division by zero''' -def func_ir(): +def func_ir() -> None: from HABApp.core.items import Item Items = HABApp.core.Items @@ -218,7 +218,7 @@ def _setup_ir(clean_objs, monkeypatch, ir, eb): yield -def test_skip_objs(_setup_ir): +def test_skip_objs(_setup_ir) -> None: log.setLevel(logging.WARNING) msg = exec_func(func_ir) assert msg == r''' @@ -235,7 +235,7 @@ def test_skip_objs(_setup_ir): File "test_core/test_lib/test_format_traceback.py", line 205 in func_ir -------------------------------------------------------------------------------- - 199 | def func_ir(): + 199 | def func_ir() -> None: 201 | from HABApp.core.items import Item 202 | Items = HABApp.core.Items 204 | Items.add_item(Item('asdf')) diff --git a/tests/test_core/test_lib/test_instant_view.py b/tests/test_core/test_lib/test_instant_view.py index 23d63c2f..b4103192 100644 --- a/tests/test_core/test_lib/test_instant_view.py +++ b/tests/test_core/test_lib/test_instant_view.py @@ -16,7 +16,7 @@ def view(): yield view -def test_methods(view: InstantView): +def test_methods(view: InstantView) -> None: assert view > seconds(59) assert not view > seconds(60) assert view >= seconds(60) @@ -26,14 +26,14 @@ def test_methods(view: InstantView): assert view <= seconds(60) -def test_cmp_obj(view: InstantView): +def test_cmp_obj(view: InstantView) -> None: assert view > TimeDelta(seconds=59) assert view > dt_timedelta(seconds=59) assert view > 'PT59S' assert view > 59 -def test_cmp_funcs(view: InstantView): +def test_cmp_funcs(view: InstantView) -> None: assert view.older_than(seconds=59) assert view > 59 assert view >= 60 @@ -43,18 +43,18 @@ def test_cmp_funcs(view: InstantView): assert view <= 60 -def test_delta_funcs(view: InstantView): +def test_delta_funcs(view: InstantView) -> None: assert view.delta() == seconds(60) assert view.py_timedelta() == dt_timedelta(seconds=60) -def test_convert(): +def test_convert() -> None: s = SystemDateTime(2021, 1, 2, 10, 11, 12) view = InstantView(s.instant()) assert view.py_datetime() == datetime(2021, 1, 2, 10, 11, 12) -def test_repr(): +def test_repr() -> None: view = InstantView(SystemDateTime(2021, 1, 2, 10, 11, 12).instant()) # Cut the timezone away because we don't know where the test is running assert str(view)[:-6] == 'InstantView(2021-01-02T10:11:12+'