'Add a :app:`Pyramid` :term:`renderer` factory to the
current configuration state.
The ``name`` argument is the renderer name.  Use ``None`` to
represent the default renderer (a renderer which will be used for all
views unless they name another renderer specifically).
The ``factory`` argument is Python reference to an
implementation of a :term:`renderer` factory or a
:term:`dotted Python name` to same.'

@action_method
def add_renderer(self, name, factory):

    factory = self.maybe_dotted(factory)
    if (not name):
        name = ''
    def register():
        self.registry.registerUtility(factory, IRendererFactory, name=name)
    intr = self.introspectable('renderer    factories', name, self.object_description(factory), 'renderer    factory')
    intr['factory'] = factory
    intr['name'] = name
    self.action((IRendererFactory, name), register, order=PHASE1_CONFIG, introspectables=(intr,))
