def add_events(self, names, send_event=True, event_factory=None):
if not event_factory:<EOL><INDENT>event_factory = self.event_factory<EOL><DEDENT>self.events.update({name: event_factory() for name in names},)<EOL>[self._attach_handler_events(handler, events=names) for handler in self.handlers]<EOL>if send_event:<EOL><INDENT>[self.on_add_event(name) for name in names]<EOL><DEDENT>
Add event by name.

This is called for you as needed if you allow auto creation of events (see __init__).

Upon an event being added, all handlers are searched for if they have this event,
and if they do, they are added to the Event's list of callables.

:param tuple names: Names