whisker.callback

whisker/callback.py


Copyright © 2011-2020 Rudolf Cardinal (rudolf@pobox.com).

This file is part of the Whisker Python client library.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Classes to implement callbacks via the Whisker API.

class whisker.callback.CallbackDefinition(event: str, callback: Callable[..., Any], args: List[Any] = None, kwargs: Dict[str, Any] = None, target_n_calls: int = 0, swallow_event: bool = False)[source]

Event callback handler. Distinct from any particular network/threading model, so all can use it.

Parameters:
  • event – Whisker event name
  • callback – user-supplied callback function
  • args – positional arguments to callback
  • kwargs – keyword arguments to callback
  • target_n_calls0 to keep calling indefinitely, os a positive integer to make that many calls (upon receiving the relevant event) but then to forget about the callback and mark it as defunct
  • swallow_event – make the API swallow the event, so it’s not seen by our client task?
call() → None[source]

Calls the callback function.

is_defunct() → bool[source]

Is this callback defunct, by virtue of having been called already as many times as the user asked?

class whisker.callback.CallbackHandler[source]

Implements callbacks based on Whisker events.

add(target_n_calls: int, event: str, callback: Callable[..., Any], args: List[Any] = None, kwargs: Dict[str, Any] = None, swallow_event: bool = True) → None[source]

Adds a callback to the handler.

See CallbackDefinition.

add_persistent(event: str, callback: Callable[..., Any], args: List[Any] = None, kwargs: Dict[str, Any] = None, swallow_event: bool = True) → None[source]

Adds a persistent callback for the specified event.

add_single(event: str, callback: Callable[..., Any], args: List[Any] = None, kwargs: Dict[str, Any] = None, swallow_event: bool = True) → None[source]

Adds a single-shot callback for the specified event.

clear() → None[source]

Removes all callbacks.

debug() → None[source]

Write a description of our callbacks to the debug log.

process_event(event: str) → Tuple[int, bool][source]

Calls any callbacks registered for the event. Returns the number of callbacks called.

remove(event: str, callback: Callable[..., None] = None) → None[source]

Removes a callback (either by event/callback pair, or all callbacks for an event.