docs: def get_runtime_config(self, namespace=None):
          """Roll up the runtime config for this class and all children.
  
          Implement this to call ``.get_runtime_config()`` on child components or
          to adjust how it works.
  
          For example, if you created a component that has a child component, you
          could do something like this::
  
              class MyComponent(RequiredConfigMixin):
                  ....
  
                  def __init__(self, config):
                      self.config = config.with_options(self)
                      self.child = OtherComponent(config.with_namespace('source'))
  
                  def get_runtime_config(self, namespace=None):
                      for item in super(MyComponent, self).get_runtime_config(namespace):
                          yield item
                      for item in self.child.get_runtime_config(['source']):
                          yield item
  
  
          Calling this function can give you the complete runtime configuration
          for a component tree. This is helpful for doing things like printing
          the configuration being used including default values.
  
          .. Note::
  
             If this instance has a ``.config`` attribute and it is a
             :py:class:`everett.component.BoundConfig`, then this will try to
             compute the runtime config.
  
             Otherwise, it'll yield nothing.
  
          :arg list namespace: list of namespace parts or None
  
          :returns: list of ``(namespace, key, option)``
  
          """
          namespace = namespace or []
  
          cfg = getattr(self, 'config', None)
          if cfg is None or not isinstance(cfg, BoundConfig):
              return
  
          for key, opt in self.get_required_config().options.items():
              yield (namespace, key, self.config(key, raise_error=False, raw_value=True), opt)