code: def printer(self):
          
          if not self._has_loaded:
              self.load()
  
          if not self._printer_name:
              raise exceptions.ConfigSectionMissingError('printer')
  
          if not self._printer:
              # We could catch init errors and make them a ConfigSyntaxError,
              # but I'll just let them pass
              self._printer = getattr(printer, self._printer_name)(**self._printer_config)
  
          return self._printer
docs: Returns a printer that was defined in the config, or throws an
          exception.
  
          This method loads the default config if one hasn't beeen already loaded.