From 358a0451285feb585f12f76735375bc3cec963f3 Mon Sep 17 00:00:00 2001 From: Corebit <123189979+corebit-nl@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:22:59 +0100 Subject: [PATCH] Fallback on background callback function names if source cannot be found --- dash/background_callback/managers/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dash/background_callback/managers/__init__.py b/dash/background_callback/managers/__init__.py index 6bea3765d3..4145f27f63 100644 --- a/dash/background_callback/managers/__init__.py +++ b/dash/background_callback/managers/__init__.py @@ -56,7 +56,11 @@ def get_updated_props(self, key): raise NotImplementedError def build_cache_key(self, fn, args, cache_args_to_ignore, triggered): - fn_source = inspect.getsource(fn) + try: + fn_source = inspect.getsource(fn) + fn_str = fn_source + except OSError: # pylint: disable=too-broad-exception + fn_str = getattr(fn, "__name__", "") if not isinstance(cache_args_to_ignore, (list, tuple)): cache_args_to_ignore = [cache_args_to_ignore] @@ -69,7 +73,7 @@ def build_cache_key(self, fn, args, cache_args_to_ignore, triggered): arg for i, arg in enumerate(args) if i not in cache_args_to_ignore ] - hash_dict = dict(args=args, fn_source=fn_source, triggered=triggered) + hash_dict = dict(args=args, fn_source=fn_str, triggered=triggered) if self.cache_by is not None: # Caching enabled