def __init__(self, builder): """Initialization for builder handler. Args: builder: Instance of Builder class. Raises: ListenerConfigurationError when builder is not a Builder class. """ if not isinstance(builder, Builder): raise yaml_errors.ListenerConfigurationError( 'Must provide builder of type yaml_listener.Builder') self._builder = builder self._stack = None self._top = None self._results = []
def __init__(self, event_handler): """Initialize PyYAML event listener. Constructs internal mapping directly from event type to method on actual handler. This prevents reflection being used during actual parse time. Args: event_handler: Event handler that will receive mapped events. Must implement at least one appropriate handler method named from the values of the _EVENT_METHOD_MAP. Raises: ListenerConfigurationError if event_handler is not an EventHandler. """ if not isinstance(event_handler, EventHandler): raise yaml_errors.ListenerConfigurationError( 'Must provide event handler of type yaml_listener.EventHandler') self._event_method_map = {} # For each event type in default method map... for event, method in _EVENT_METHOD_MAP.items(): # Map event class to actual method self._event_method_map[event] = getattr(event_handler, method)