From c5b14313a1365c321f7e5b8ee654a13f8903ee83 Mon Sep 17 00:00:00 2001 From: Spencer Phillip Young Date: Tue, 16 May 2023 17:30:28 -0700 Subject: [PATCH 1/3] fallback to baseloader if packageloader fails --- ahk/_async/transport.py | 14 +++++++++++--- ahk/_sync/transport.py | 14 +++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/ahk/_async/transport.py b/ahk/_async/transport.py index 54ce34b..20131ef 100644 --- a/ahk/_async/transport.py +++ b/ahk/_async/transport.py @@ -632,9 +632,17 @@ def __init__( self.__template: jinja2.Template self._jinja_env: jinja2.Environment if jinja_loader is None: - self._jinja_env = jinja2.Environment( - loader=jinja2.PackageLoader('ahk', 'templates'), trim_blocks=True, autoescape=False - ) + try: + loader: jinja2.BaseLoader + loader = jinja2.PackageLoader('ahk', 'templates') + except ValueError: + # see: https://github.com/spyoungtech/ahk/issues/201 + warnings.warn( + 'Jinja could not find templates with PackageLoader. Falling back to BaseLoader', + category=UserWarning, + ) + loader = jinja2.BaseLoader() + self._jinja_env = jinja2.Environment(loader=loader, trim_blocks=True, autoescape=False) else: self._jinja_env = jinja2.Environment(loader=jinja_loader, trim_blocks=True, autoescape=False) try: diff --git a/ahk/_sync/transport.py b/ahk/_sync/transport.py index fec2910..f5c9a99 100644 --- a/ahk/_sync/transport.py +++ b/ahk/_sync/transport.py @@ -606,9 +606,17 @@ def __init__( self.__template: jinja2.Template self._jinja_env: jinja2.Environment if jinja_loader is None: - self._jinja_env = jinja2.Environment( - loader=jinja2.PackageLoader('ahk', 'templates'), trim_blocks=True, autoescape=False - ) + try: + loader: jinja2.BaseLoader + loader = jinja2.PackageLoader('ahk', 'templates') + except ValueError: + # see: https://github.com/spyoungtech/ahk/issues/201 + warnings.warn( + 'Jinja could not find templates with PackageLoader. Falling back to BaseLoader', + category=UserWarning, + ) + loader = jinja2.BaseLoader() + self._jinja_env = jinja2.Environment(loader=loader, trim_blocks=True, autoescape=False) else: self._jinja_env = jinja2.Environment(loader=jinja_loader, trim_blocks=True, autoescape=False) try: From bc536fadb049145965c05a68d4ad96dacaf1be28 Mon Sep 17 00:00:00 2001 From: Spencer Phillip Young Date: Tue, 16 May 2023 17:34:03 -0700 Subject: [PATCH 2/3] prepre rc release --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 4acc781..c30e00d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ [metadata] name = ahk -version = 1.1.2 +version = 1.1.3rc1 author_email = spencer.young@spyoung.com author = Spencer Young description = A Python wrapper for AHK From 58a61cf1134900614a5e0a79c70445f681c84027 Mon Sep 17 00:00:00 2001 From: Spencer Phillip Young Date: Wed, 17 May 2023 12:23:51 -0700 Subject: [PATCH 3/3] add packageloader fallback in threaded hotkey transport --- ahk/_hotkey.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ahk/_hotkey.py b/ahk/_hotkey.py index c09650c..d730408 100644 --- a/ahk/_hotkey.py +++ b/ahk/_hotkey.py @@ -124,9 +124,17 @@ def __init__(self, executable_path: str, default_ex_handler: Optional[Callable[[ self._callback_queue: Queue[Union[str, Type[STOP]]] = Queue() self._listener_thread: Optional[threading.Thread] = None self._dispatcher_thread: Optional[threading.Thread] = None - self._jinja_env: jinja2.Environment = jinja2.Environment( - loader=jinja2.PackageLoader('ahk', 'templates'), autoescape=False - ) + loader: jinja2.BaseLoader + try: + loader = jinja2.PackageLoader('ahk', 'templates') + except ValueError: + # see: https://github.com/spyoungtech/ahk/issues/201 + warnings.warn( + 'Jinja could not find templates with PackageLoader. Falling back to BaseLoader', + category=UserWarning, + ) + loader = jinja2.BaseLoader() + self._jinja_env: jinja2.Environment = jinja2.Environment(loader=loader, autoescape=False) self._template: jinja2.Template try: self._template = self._jinja_env.get_template('hotkeys.ahk')