##// END OF EJS Templates
Remove 5s wait on inactivity on GUI inputhook loops...
Remove 5s wait on inactivity on GUI inputhook loops The 5s (and 1s) waits were originally added in commit 5074878, but the 5 second wait meant if you left the console for 5+ minutes idle, it would take up to 5 seconds for a response to a keypress. This tradeoff of CPU cycles for battery life seems too far. Note that commit 5074878 was originally for wx, glut and pyglet are based on the wx version and came into existence after commit 5074878.

File last commit:

r12409:d918b135
r13125:f9e20986
Show More
citation.py
72 lines | 2.1 KiB | text/x-python | PythonLexer
"""Citation handling for LaTeX output."""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
__all__ = ['citation2latex']
def citation2latex(s):
"""Parse citations in Markdown cells.
This looks for HTML tags having a data attribute names `data-cite`
and replaces it by the call to LaTeX cite command. The tranformation
looks like this:
`<cite data-cite="granger">(Granger, 2013)</cite>`
Becomes
`\\cite{granger}`
Any HTML tag can be used, which allows the citations to be formatted
in HTML in any manner.
"""
try:
from lxml import html
except ImportError:
return s
tree = html.fragment_fromstring(s, create_parent='div')
_process_node_cite(tree)
s = html.tostring(tree, encoding='unicode')
if s.endswith('</div>'):
s = s[:-6]
if s.startswith('<div>'):
s = s[5:]
return s
def _process_node_cite(node):
"""Do the citation replacement as we walk the lxml tree."""
def _get(o, name):
value = getattr(o, name, None)
return '' if value is None else value
if 'data-cite' in node.attrib:
cite = '\cite{%(ref)s}' % {'ref': node.attrib['data-cite']}
prev = node.getprevious()
if prev is not None:
prev.tail = _get(prev, 'tail') + cite + _get(node, 'tail')
else:
parent = node.getparent()
if parent is not None:
parent.text = _get(parent, 'text') + cite + _get(node, 'tail')
try:
node.getparent().remove(node)
except AttributeError:
pass
else:
for child in node:
_process_node_cite(child)