def __init__(self, **options): Formatter.__init__(self, **options) self._code = get_bool_opt(options, 'codetag', False) self._mono = get_bool_opt(options, 'monofont', False) self.styles = {} self._make_styles()
def __init__(self, **options): """ See the class docstring for explanation of options. """ if not pil_available: raise PilNotAvailable("Python Imaging Library is required for this formatter") Formatter.__init__(self, **options) # Read the style self.styles = dict(self.style) if self.style.background_color is None: self.background_color = "#fff" else: self.background_color = self.style.background_color # Image options self.image_format = get_choice_opt( options, "image_format", ["png", "jpeg", "gif", "bmp"], self.default_image_format, normcase=True ) self.image_pad = get_int_opt(options, "image_pad", 10) self.line_pad = get_int_opt(options, "line_pad", 2) # The fonts fontsize = get_int_opt(options, "font_size", 14) self.fonts = FontManager(options.get("font_name", ""), fontsize) self.fontw, self.fonth = self.fonts.get_char_size() # Line number options self.line_number_fg = options.get("line_number_fg", "#886") self.line_number_bg = options.get("line_number_bg", "#eed") self.line_number_chars = get_int_opt(options, "line_number_chars", 2) self.line_number_bold = get_bool_opt(options, "line_number_bold", False) self.line_number_italic = get_bool_opt(options, "line_number_italic", False) self.line_number_pad = get_int_opt(options, "line_number_pad", 6) self.line_numbers = get_bool_opt(options, "line_numbers", True) self.line_number_separator = get_bool_opt(options, "line_number_separator", True) self.line_number_step = get_int_opt(options, "line_number_step", 1) self.line_number_start = get_int_opt(options, "line_number_start", 1) if self.line_numbers: self.line_number_width = self.fontw * self.line_number_chars + self.line_number_pad * 2 else: self.line_number_width = 0 self.hl_lines = [] hl_lines_str = get_list_opt(options, "hl_lines", []) for line in hl_lines_str: try: self.hl_lines.append(int(line)) except ValueError: pass self.hl_color = options.get("hl_color", self.style.highlight_color) or "#f90" self.drawables = []
def __init__(self, **options): Formatter.__init__(self, **options) self.title = self._decodeifneeded(self.title) self.nowrap = get_bool_opt(options, 'nowrap', False) self.noclasses = get_bool_opt(options, 'noclasses', False) self.classprefix = options.get('classprefix', '') self.cssclass = self._decodeifneeded(options.get('cssclass', 'highlight')) self.cssstyles = self._decodeifneeded(options.get('cssstyles', '')) self.prestyles = self._decodeifneeded(options.get('prestyles', '')) self.cssfile = self._decodeifneeded(options.get('cssfile', '')) self.noclobber_cssfile = get_bool_opt(options, 'noclobber_cssfile', False) self.tagsfile = self._decodeifneeded(options.get('tagsfile', '')) self.tagurlformat = self._decodeifneeded(options.get('tagurlformat', '')) if self.tagsfile: if not ctags: raise RuntimeError('The "ctags" package must to be installed ' 'to be able to use the "tagsfile" feature.') self._ctags = ctags.CTags(self.tagsfile) linenos = options.get('linenos', False) if linenos == 'inline': self.linenos = 2 elif linenos: # compatibility with <= 0.7 self.linenos = 1 else: self.linenos = 0 self.linenostart = abs(get_int_opt(options, 'linenostart', 1)) self.linenostep = abs(get_int_opt(options, 'linenostep', 1)) self.linenospecial = abs(get_int_opt(options, 'linenospecial', 0)) self.nobackground = get_bool_opt(options, 'nobackground', False) self.lineseparator = options.get('lineseparator', '\n') self.lineanchors = options.get('lineanchors', '') self.linespans = options.get('linespans', '') self.anchorlinenos = options.get('anchorlinenos', False) self.hl_lines = set() for lineno in get_list_opt(options, 'hl_lines', []): try: self.hl_lines.add(int(lineno)) except ValueError: pass self._create_stylesheet()