Package epydoc :: Package markup :: Module doctest :: Class DoctestColorizer |
[hide private]
[frames] | no frames]

# Class DoctestColorizer

source code

An abstract base class for performing syntax highlighting on doctest blocks and other bits of Python code. Subclasses should provide definitions for:

- The markup() method, which takes a substring and a tag, and returns a colorized version of the substring.
- The PREFIX and SUFFIX variables, which will be added to the beginning and end of the strings returned by colorize_codeblock and colorize_doctest.

Instance Methods | [hide private]
colorize_inline(self, s) Colorize a string containing Python code. | source code
colorize_codeblock(self, s) Colorize a string containing only Python code. | source code
colorize_doctest(self, s, strip_directives=False) Colorize a string containing one or more doctest examples. | source code call graph
Call Graph
subfunc(self, match) | source code call graph
Call Graph
markup(self, s, tag) Apply syntax highlighting to a single substring from a doctest block. | source code

Class Variables | [hide private]
| PREFIX = `None` A string that is added to the beginning of the strings returned by colorize_codeblock and colorize_doctest.
| SUFFIX = `None` A string that is added to the end of the strings returned by colorize_codeblock and colorize_doctest.
| _KEYWORDS = ``[``'``and``'``,` `'``del``'``,` `'``for``'``,` `'``is``'``,` `'``raiseassert``'``,` `'``elif``'``,``...`` A list of the names of all Python keywords.
| _BUILTINS = ``[``'``clear``'``,` `'``copy``'``,` `'``fromkeys``'``,` `'``get``'``,` `'``has_key``'``,` `'``i``...`` A list of all Python builtins.
| _KEYWORD_GRP = ``'``\\band\\b|\\bdel\\b|\\bfor\\b|\\bis\\b|\\brais``...`` A regexp group that matches keywords.
| _BUILTIN_GRP = ``'``(?<!\\.)(?:\\bclear\\b|\\bcopy\\b|\\bfromkeys\``...`` A regexp group that matches Python builtins.
| _STRING_GRP = ``'``("""("""|.*?((?!").)"""))|("("|.*?((?!").)"))|(``...`` A regexp group that matches Python strings.
| _COMMENT_GRP = ``'``(#.*?$)``'`` A regexp group that matches Python comments.
| _PROMPT1_GRP = ``'``^[ \\t]*>>>(?:[ \\t]|$)``'`` A regexp group that matches Python ">>>" prompts.
| _PROMPT2_GRP = ``'``^[ \\t]*\\.\\.\\.(?:[ \\t]|$)``'`` A regexp group that matches Python "..." prompts.
| _DEFINE_GRP = ``'``\\b(?:def|class)[ \\t]+\\w+``'`` A regexp group that matches function and class definitions.
| PROMPT_RE = `re.compile(r'`(?ms)``(`^`[` \t`]``*`>>>`(?:``[` \t`]``|`$`)``|``[` \t`]``*`\.\`...`` A regexp that matches Python prompts
| PROMPT2_RE = `re.compile(r'`(?ms)``(`^`[` \t`]``*`\.\.\.`(?:``[` \t`]``|`$`)``)`')` A regexp that matches Python "..." prompts.
| EXCEPT_RE = `re.compile(r'`(?ms)`^`[` \t`]``*`Traceback \(most recent c`...`` A regexp that matches doctest exception blocks.
| DOCTEST_DIRECTIVE_RE = `re.compile(r'#`[` \t`]``*`doctest:.`*`')` A regexp that matches doctest directives.
| DOCTEST_RE = `re.compile(r'`(?ms)``(`.`*?``)``(``(?P<``STRING``>``(`"""`(`"""`|`.`*?``(``(``...`` A regexp that matches all of the regions of a doctest block that should be colored.
| DOCTEST_EXAMPLE_RE = `re.compile(r'`(?mx)``(?P<``source``>``(?:`^`(?P<``inde``...`` This regular expression is used to find doctest examples in a string.
| _BI = ``'``values``'``
| _KW = ``'``as``'``

Method Details | [hide private]

### colorize_inline(self, s) | source code
Colorize a string containing Python code. Do not add the PREFIX and SUFFIX strings to the returned value. This method is intended for generating syntax-highlighted strings that are appropriate for inclusion as inline expressions.

### colorize_codeblock(self, s) | source code
Colorize a string containing only Python code. This method differs from colorize_doctest in that it will not search for doctest prompts when deciding how to colorize the string.

### markup(self, s, tag) | source code
Apply syntax highlighting to a single substring from a doctest block. `s` is the substring, and `tag` is the tag that should be applied to the substring. `tag` will be one of the following strings: `prompt` -- the Python PS1 prompt (>>>) `more` -- the Python PS2 prompt (...) `keyword` -- a Python keyword (for, if, etc.) `builtin` -- a Python builtin name (abs, dir, etc.) `string` -- a string literal `comment` -- a comment `except` -- an exception traceback (up to the next >>>) `output` -- the output from a doctest block. `defname` -- the name of a function or class defined by a `def` or `class` statement. `other` -- anything else (does *not* include output.)

Class Variable Details | [hide private]

  ### PREFIX A string that is added to the beginning of the strings returned by colorize_codeblock and colorize_doctest. Typically, this string begins a preformatted area. Value:
      None

  ### SUFFIX A string that is added to the end of the strings returned by colorize_codeblock and colorize_doctest. Typically, this string ends a preformatted area. Value:
      None

  ### _KEYWORDS A list of the names of all Python keywords. ('as' is included even though it is technically not a keyword.) Value:
      ['and',
       'del',
       'for',
       'is',
       'raiseassert',
       'elif',
       'from',
       'lambda',
      ...

  ### _BUILTINS A list of all Python builtins. Value:
      ['clear',
       'copy',
       'fromkeys',
       'get',
       'has_key',
       'items',
       'iteritems',
       'iterkeys',
      ...

  ### _KEYWORD_GRP A regexp group that matches keywords. Value:
      '\\band\\b|\\bdel\\b|\\bfor\\b|\\bis\\b|\\braiseassert\\b|\\belif\\b|\
      \bfrom\\b|\\blambda\\b|\\breturnbreak\\b|\\belse\\b|\\bglobal\\b|\\bno
      t\\b|\\btryclass\\b|\\bexcept\\b|\\bif\\b|\\bor\\b|\\bwhilecontinue\\b
      |\\bexec\\b|\\bimport\\b|\\bpass\\b|\\byielddef\\b|\\bfinally\\b|\\bin
      \\b|\\bprint\\b|\\bas\\b'

  ### _BUILTIN_GRP A regexp group that matches Python builtins. Value:
      '(?<!\\.)(?:\\bclear\\b|\\bcopy\\b|\\bfromkeys\\b|\\bget\\b|\\bhas_key
      \\b|\\bitems\\b|\\biteritems\\b|\\biterkeys\\b|\\bitervalues\\b|\\bkey
      s\\b|\\bpop\\b|\\bpopitem\\b|\\bsetdefault\\b|\\bupdate\\b|\\bvalues\\
      b)'

  ### _STRING_GRP A regexp group that matches Python strings. Value:
      '("""("""|.*?((?!").)"""))|("("|.*?((?!").)"))|(\'\'\'(\'\'\'|.*?[^\\\
      \\']\'\'\'))|(\'(\'|.*?[^\\\\\']\'))'

  ### PROMPT_RE A regexp that matches Python prompts Value:
      re.compile(r'(?ms)(^[ \t]*>>>(?:[ \t]|$)|[ \t]*\.\.\.(?:[ \t]|$))')

  ### EXCEPT_RE A regexp that matches doctest exception blocks. Value:
      re.compile(r'(?ms)^[ \t]*Traceback \(most recent call last\):.*')

  ### DOCTEST_RE A regexp that matches all of the regions of a doctest block that should be colored. Value:
      re.compile(r'(?ms)(.*?)((?P<STRING>("""("""|.*?((?!").)"""))|("("|.*?(
      (?!").)"))|(\'\'\'(\'\'\'|.*?[^\\\']\'\'\'))|(\'(\'|.*?[^\\\']\')))|(?
      P<COMMENT>(#.*?$))|(?P<DEFINE>\b(?:def|class)[ \t]+\w+)|(?P<KEYWORD>\b
      and\b|del\b|for\b|is\b|raiseassert\b|elif\b|from\b|lambda\b|returnbrea
      k\b|else\b|global\b|not\b|tryclass\b|except\b|if\b|or\b|whilecontinue\
      b|exec\b|import\b|pass\b|yielddef\b|finally\b|in\b|print\b|as\b)|(?P<B
      UILTIN>(?<!\.)(?:\bclear\b|copy\b|fromkeys\b|get\b|has_key\b|items\b|i
      teritems\b|iterkeys\b|itervalues\b|keys\b|pop\b|popitem\b|setdefault\b
      ...

  ### DOCTEST_EXAMPLE_RE This regular expression is used to find doctest examples in a string. This is copied from the standard Python doctest.py module (after the refactoring in Python 2.4+). Value:
      re.compile(r'(?mx)(?P<source>(?:^(?P<indent> *)>>>.*)(?:\n *\.\.\..*)*
      \n?)(?P<want>(?:(?! *$)(?! *>>>).*$\n?)*)')