##// END OF EJS Templates
Fix color schemes in Linux...
Fix color schemes in Linux Object information found by prefixing object with a question mark (like int?) was printing garbled characters. git-bisect found 2b1c969628871300a4779963e8776b5a8e966f34 to be the offending commit. A refactoring in that commit forgot to add one color and also used the wrong object (it used InputTermColors instead of TermColors).

File last commit:

r18296:800fd305
r21828:1c75e559
Show More
magics.py
42 lines | 1.3 KiB | text/x-python | PythonLexer
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184 import re
from sphinx import addnodes
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 from sphinx.domains.std import StandardDomain
from sphinx.roles import XRefRole
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 name_re = re.compile(r"[\w_]+")
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184
def parse_magic(env, sig, signode):
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 m = name_re.match(sig)
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184 if not m:
raise Exception("Invalid magic command: %s" % sig)
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 name = "%" + sig
signode += addnodes.desc_name(name, name)
return m.group(0)
class LineMagicRole(XRefRole):
"""Cross reference role displayed with a % prefix"""
prefix = "%"
def process_link(self, env, refnode, has_explicit_title, title, target):
if not has_explicit_title:
title = self.prefix + title.lstrip("%")
target = target.lstrip("%")
return title, target
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184
def parse_cell_magic(env, sig, signode):
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 m = name_re.match(sig)
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184 if not m:
raise ValueError("Invalid cell magic: %s" % sig)
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 name = "%%" + sig
signode += addnodes.desc_name(name, name)
return m.group(0)
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 class CellMagicRole(LineMagicRole):
"""Cross reference role displayed with a %% prefix"""
prefix = "%%"
Thomas Kluyver
Add Sphinx extension to document line & cell magics
r18184
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 def setup(app):
Thomas Kluyver
Generate documentation of line & cell magics
r18294 app.add_object_type('magic', 'magic', 'pair: %s; magic command', parse_magic)
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 StandardDomain.roles['magic'] = LineMagicRole()
Thomas Kluyver
Generate documentation of line & cell magics
r18294 app.add_object_type('cellmagic', 'cellmagic', 'pair: %s; cell magic', parse_cell_magic)
Thomas Kluyver
Various improvements to docs infrastructure for magics
r18296 StandardDomain.roles['cellmagic'] = CellMagicRole()