Actor

class wishbone.actor.Actor(config)[source]

Bases: object

A base class providing core Actor functionality.

The Actor base class is responsible for providing the base functionality, setup and helper functions of a Wishbone module.

Parameters:config – The ActorConfig object instance.
config

wishbone.actorconfig.ActorConfig – The ActorConfig object instance.

name

str – The name of the instance, derived from config.

description

str – The description of the actor based instance, derived from config.

pool (wishbone.pool.QueuePool): The Actor’s queue pool.

logging(wishbone.logging.Logging)
generateEvent(data={}, destination=None)[source]

Generates a new event.

This function can get overridden by wishbone.module.InputModule._generateNativeEvent.

The provided data will be traversed in search of valid templates which then will be rendered.

Parameters:
  • data – The payload to add to the event.
  • destination – The destination key to write the data to
Returns:

An event containing data as a payload.

Return type:

wishbone.event.Event

loop()[source]

The global lock for this module.

Returns:True when module is in running mode. False if not.
Return type:bool
postHook()[source]

Is executed when module exits.

preHook()[source]

Is executed when module starts. Can be overriden by the user.

registerConsumer(function, queue)[source]

Registers <function> to process all events in <queue>

Don’t not trap errors here. When <function> fails then the event will be submitted to the “failed” queue, If <function> succeeds to the success queue.

Registering function to consume queue will also apply all the registered module functions against the events consumed from it.

Parameters:
  • function – The function which processes events
  • queue – The name of the queue from which function will process the events.
Returns:

None

renderEventKwargs(event, queue=None)[source]

Renders kwargs using the content of event and stores the result under event.kwargs.

Parameters:
  • event – An Event instance
  • queue – The queue name so RenderKwargs can store the results in the correct queue context.
Returns:

The provided event instance.

Return type:

wishbone.event.Event

renderKwargs()[source]

Renders kwargs without making use of event content. This is typically used when initiliazing a module and render the defined kwargs which do not need a event data for rendering.

Returns:None
sendToBackground(function, *args, **kwargs)[source]

Executes a function and sends it to the background. Such a function should never exit until self.loop returns False. This method wraps function again in a loop as long self.loop returns False so that function is restarted and an error is logged.

Parameters:
  • function – The function which has to be executed.
  • *args – Variable length argument list.
  • **kwargs – Arbitrary keyword arguments.
start()[source]

Starts the module.

Returns:None
stop()[source]

Makes self.loop return False and handles shutdown of of the registered background jobs.

submit(event, queue)[source]

Submits <event> to the queue with name <queue>.

Parameters:
  • event – An event instance.
  • queue – The name of the queue
Returns:

None