From efb3ebe9dc7f902c6a731ea2789af8957717f705 Mon Sep 17 00:00:00 2001 From: Piotr Machowski Date: Sat, 30 Sep 2023 23:08:54 +0200 Subject: [PATCH] Prevent infinite recursion --- custom_components/saver/__init__.py | 13 ++++++++----- custom_components/saver/manifest.json | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/custom_components/saver/__init__.py b/custom_components/saver/__init__.py index 2dbb2bf..ffc7d0c 100644 --- a/custom_components/saver/__init__.py +++ b/custom_components/saver/__init__.py @@ -72,7 +72,7 @@ def setup_templates(hass: HomeAssistant) -> None: def is_safe_callable(self: TemplateEnvironment, obj) -> bool: # noinspection PyUnresolvedReferences return (isinstance(obj, (SaverVariableTemplate, SaverEntityTemplate)) - or self.saver_original_is_safe_callable_old(obj)) + or self.saver_original_is_safe_callable(obj)) def patch_environment(env: TemplateEnvironment) -> None: env.globals["saver_variable"] = SaverVariableTemplate(hass, f"{DOMAIN}.{DOMAIN}") @@ -89,10 +89,13 @@ def patched_init( self.saver_original__init__(hass_param, limited, strict, log_fn) patch_environment(self) - TemplateEnvironment.saver_original__init__ = TemplateEnvironment.__init__ - TemplateEnvironment.__init__ = patched_init - TemplateEnvironment.saver_original_is_safe_callable_old = TemplateEnvironment.is_safe_callable - TemplateEnvironment.is_safe_callable = is_safe_callable + if not hasattr(TemplateEnvironment, 'saver_original__init__'): + TemplateEnvironment.saver_original__init__ = TemplateEnvironment.__init__ + TemplateEnvironment.__init__ = patched_init + + if not hasattr(TemplateEnvironment, 'saver_original_is_safe_callable'): + TemplateEnvironment.saver_original_is_safe_callable = TemplateEnvironment.is_safe_callable + TemplateEnvironment.is_safe_callable = is_safe_callable tpl = Template("", hass) tpl._strict = False diff --git a/custom_components/saver/manifest.json b/custom_components/saver/manifest.json index 7d5866b..0ebc35d 100644 --- a/custom_components/saver/manifest.json +++ b/custom_components/saver/manifest.json @@ -8,5 +8,5 @@ "iot_class": "calculated", "issue_tracker": "https://github.com/PiotrMachowski/Home-Assistant-custom-components-Saver/issues", "requirements": [], - "version": "v1.2.0" + "version": "v1.2.1" } \ No newline at end of file