This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 036d07e26be Remove global from listeners (#58597)
036d07e26be is described below
commit 036d07e26be3267badd09c936b633a3319db27a5
Author: Jens Scheffler <[email protected]>
AuthorDate: Sun Nov 23 23:01:52 2025 +0100
Remove global from listeners (#58597)
---
airflow-core/src/airflow/listeners/listener.py | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/airflow-core/src/airflow/listeners/listener.py
b/airflow-core/src/airflow/listeners/listener.py
index 11918527ef2..08869f50947 100644
--- a/airflow-core/src/airflow/listeners/listener.py
+++ b/airflow-core/src/airflow/listeners/listener.py
@@ -18,6 +18,7 @@
from __future__ import annotations
import logging
+from functools import cache
from typing import TYPE_CHECKING
import pluggy
@@ -30,9 +31,6 @@ if TYPE_CHECKING:
log = logging.getLogger(__name__)
-_listener_manager: ListenerManager | None = None
-
-
def _before_hookcall(hook_name, hook_impls, kwargs):
log.debug("Calling %r with %r", hook_name, kwargs)
log.debug("Hook impls: %s", hook_impls)
@@ -82,10 +80,9 @@ class ListenerManager:
self.pm.unregister(plugin)
+@cache
def get_listener_manager() -> ListenerManager:
"""Get singleton listener manager."""
- global _listener_manager
- if not _listener_manager:
- _listener_manager = ListenerManager()
- integrate_listener_plugins(_listener_manager)
+ _listener_manager = ListenerManager()
+ integrate_listener_plugins(_listener_manager)
return _listener_manager