def printer(self):
if not self._has_loaded:<EOL><INDENT>self.load()<EOL><DEDENT>if not self._printer_name:<EOL><INDENT>raise exceptions.ConfigSectionMissingError('<STR_LIT>')<EOL><DEDENT>if not self._printer:<EOL><INDENT>self._printer = getattr(printer, self._printer_name)(**self._printer_config)<EOL><DEDENT>return self._printer<EOL>
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.