def cleanup(self): for handler in self.cleanup_handlers[:]: try: handler() except Exception as exc: error("%s" % exc) finally: self.cleanup_handlers.remove(handler)
def writediag(self, parsed_diag, outpath=None): if outpath: self.options.output = outpath try: self.create_fontmap() self.setup() return self.build_diagram(parsed_diag) except SystemExit as e: return e except UnicodeEncodeError: error("UnicodeEncodeError caught (check your font settings)") return -1 finally: self.cleanup()
def run(self, args): try: self.parse_options(args) self.create_fontmap() parsed = self.parse_diagram() return self.build_diagram(parsed) except SystemExit as e: return e except UnicodeEncodeError as e: error("UnicodeEncodeError caught (check your font settings)") return -1 except Exception as e: if self.options and self.options.debug: traceback.print_exc() else: error("%s" % e) return -1 finally: plugins.fire_general_event('cleanup')
def run(self, args): try: self.parse_options(args) self.create_fontmap() self.setup() parsed = self.parse_diagram() return self.build_diagram(parsed) except SystemExit as e: return e except UnicodeEncodeError: error("UnicodeEncodeError caught (check your font settings)") return -1 except Exception as e: if self.options and self.options.debug: traceback.print_exc() else: error("%s" % e) return -1 finally: self.cleanup()