MCPcopy
hub / github.com/plotly/dash / _setup_background_callback

Function _setup_background_callback

dash/_callback.py:417–466  ·  view source on GitHub ↗

Set up the background callback and manage jobs.

(
    kwargs, background, background_key, func, func_args, func_kwargs, callback_ctx
)

Source from the content-addressed store, hash-verified

415
416
417def _setup_background_callback(
418 kwargs, background, background_key, func, func_args, func_kwargs, callback_ctx
419):
420 """Set up the background callback and manage jobs."""
421 callback_manager = _get_callback_manager(kwargs, background)
422 if not callback_manager:
423 return to_json({"error": "No background callback manager configured"})
424
425 progress_outputs = background.get("progress")
426
427 cache_ignore_triggered = background.get("cache_ignore_triggered", True)
428
429 cache_key = callback_manager.build_cache_key(
430 func,
431 func_args if func_args else func_kwargs,
432 background.get("cache_args_to_ignore", []),
433 None if cache_ignore_triggered else callback_ctx.get("triggered_inputs", []),
434 )
435 job_fn = callback_manager.func_registry.get(background_key)
436 ctx_value = AttributeDict(**context_value.get())
437 ctx_value.ignore_register_page = True
438 ctx_value.pop("background_callback_manager")
439 ctx_value.pop("dash_response")
440
441 args_value = ctx_value.get("args")
442 if args_value is not None and not isinstance(args_value, dict):
443 ctx_value["args"] = dict(args_value)
444
445 job = callback_manager.call_job_fn(
446 cache_key,
447 job_fn,
448 func_args if func_args else func_kwargs,
449 ctx_value,
450 )
451
452 data = {
453 "cacheKey": cache_key,
454 "job": job,
455 }
456
457 cancel = background.get("cancel")
458 if cancel:
459 data["cancel"] = cancel
460
461 progress_default = background.get("progressDefault")
462 if progress_default:
463 data["progressDefault"] = {
464 str(o): x for o, x in zip(progress_outputs, progress_default)
465 }
466 return to_json(data)
467
468
469def _progress_background_callback(

Callers 3

_run_setupFunction · 0.90
add_contextFunction · 0.85
async_add_contextFunction · 0.85

Calls 7

to_jsonFunction · 0.85
AttributeDictClass · 0.85
popMethod · 0.80
_get_callback_managerFunction · 0.70
getMethod · 0.45
build_cache_keyMethod · 0.45
call_job_fnMethod · 0.45

Tested by 1

_run_setupFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…