##// END OF EJS Templates
Backport PR #4118: ZMQ heartbeat channel: catch EINTR exceptions and continue....
Backport PR #4118: ZMQ heartbeat channel: catch EINTR exceptions and continue. The zmq heartbeat channel exits when it encounters an "Interrupted system call", thereby causing the qtconsole to report that it is not responding, despite the console working perfectly fine. Observed in a large Qt application embedding the ipython qtconsole in KDE desktop. Fixes #2310 Inspired by #501

File last commit:

r11086:c137395d
r12317:bf63ce77
Show More
lexers.py
46 lines | 1.7 KiB | text/x-python | PythonLexer
"""A custom pygments lexer for IPython code cells.
Informs The pygments highlighting library of the quirks of IPython's superset
of Python -- magic commands, !shell commands, etc.
"""
#-----------------------------------------------------------------------------
# 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.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
# Third-party imports
from pygments.lexers import PythonLexer, BashLexer
from pygments.lexer import bygroups, using
from pygments.token import Keyword, Operator, Text
#-----------------------------------------------------------------------------
# Class declarations
#-----------------------------------------------------------------------------
class IPythonLexer(PythonLexer):
"""
Pygments Lexer for use with IPython code. Inherits from
PythonLexer and adds information about IPython specific
keywords (i.e. magic commands, shell commands, etc.)
"""
#Basic properties
name = 'IPython'
aliases = ['ip', 'ipython']
filenames = ['*.ipy']
#Highlighting information
tokens = PythonLexer.tokens.copy()
tokens['root'] = [
(r'(\%+)(\w+)\s+(\.*)(\n)', bygroups(Operator, Keyword,
using(BashLexer), Text)),
(r'(\%+)(\w+)\b', bygroups(Operator, Keyword)),
(r'^(!)(.+)(\n)', bygroups(Operator, using(BashLexer), Text)),
] + tokens['root']