(
callback_list,
callback_map,
config_prevent_initial_callbacks,
*_args,
**_kwargs,
)
| 656 | |
| 657 | # pylint: disable=too-many-branches,too-many-statements |
| 658 | def register_callback( |
| 659 | callback_list, |
| 660 | callback_map, |
| 661 | config_prevent_initial_callbacks, |
| 662 | *_args, |
| 663 | **_kwargs, |
| 664 | ): |
| 665 | ( |
| 666 | output, |
| 667 | flat_inputs, |
| 668 | flat_state, |
| 669 | inputs_state_indices, |
| 670 | prevent_initial_call, |
| 671 | ) = handle_grouped_callback_args(_args, _kwargs) |
| 672 | if isinstance(output, Output): |
| 673 | # Insert callback with scalar (non-multi) Output |
| 674 | insert_output = output |
| 675 | multi = False |
| 676 | has_output = True |
| 677 | else: |
| 678 | # Insert callback as multi Output |
| 679 | insert_output = flatten_grouping(output) |
| 680 | multi = True |
| 681 | has_output = len(output) > 0 |
| 682 | |
| 683 | background = _kwargs.get("background") |
| 684 | manager = _kwargs.get("manager") |
| 685 | running = _kwargs.get("running") |
| 686 | on_error = _kwargs.get("on_error") |
| 687 | if running is not None: |
| 688 | if not isinstance(running[0], (list, tuple)): |
| 689 | running = [running] |
| 690 | running = { |
| 691 | "running": {str(r[0]): r[1] for r in running}, |
| 692 | "runningOff": {str(r[0]): r[2] for r in running}, |
| 693 | } |
| 694 | allow_dynamic_callbacks = _kwargs.get("_allow_dynamic_callbacks") |
| 695 | |
| 696 | output_indices = make_grouping_by_index(output, list(range(grouping_len(output)))) |
| 697 | callback_id = insert_callback( |
| 698 | callback_list, |
| 699 | callback_map, |
| 700 | config_prevent_initial_callbacks, |
| 701 | insert_output, |
| 702 | output_indices, |
| 703 | flat_inputs, |
| 704 | flat_state, |
| 705 | inputs_state_indices, |
| 706 | prevent_initial_call, |
| 707 | background=background, |
| 708 | manager=manager, |
| 709 | dynamic_creator=allow_dynamic_callbacks, |
| 710 | running=running, |
| 711 | no_output=not has_output, |
| 712 | optional=_kwargs.get("optional", False), |
| 713 | hidden=_kwargs.get("hidden", None), |
| 714 | websocket=_kwargs.get("websocket", False), |
| 715 | persistent=_kwargs.get("persistent", False), |
no test coverage detected
searching dependent graphs…