##// END OF EJS Templates
use pyzmq tools where appropriate...
use pyzmq tools where appropriate ZMQStream is the right object to use for event-driven handling of messages, but instead we chose to rewrite half of it in KernelManager. This removes most of the duplicate code, in favor of using ZMQStream. also use the pyzmq install() function for using pyzmq with tornado, instead of manually pasting its contents in notebook app.

File last commit:

r4725:7bde2f38
r5377:4b348626
Show More
__init__.py
42 lines | 1.5 KiB | text/x-python | PythonLexer
#-----------------------------------------------------------------------------
# Copyright (C) 2010 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING.txt, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Verify zmq version dependency >= 2.1.4
#-----------------------------------------------------------------------------
import re
import warnings
def check_for_zmq(minimum_version, module='IPython.zmq'):
min_vlist = [int(n) for n in minimum_version.split('.')]
try:
import zmq
except ImportError:
raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))
pyzmq_version = zmq.__version__
vlist = [int(n) for n in re.findall(r'\d+', pyzmq_version)]
if 'dev' not in pyzmq_version and vlist < min_vlist:
raise ImportError("%s requires pyzmq >= %s, but you have %s"%(
module, minimum_version, pyzmq_version))
# fix missing DEALER/ROUTER aliases in pyzmq < 2.1.9
if not hasattr(zmq, 'DEALER'):
zmq.DEALER = zmq.XREQ
if not hasattr(zmq, 'ROUTER'):
zmq.ROUTER = zmq.XREP
if zmq.zmq_version() >= '4.0.0':
warnings.warn("""libzmq 4 detected.
It is unlikely that IPython's zmq code will work properly.
Please install libzmq stable, which is 2.1.x or 2.2.x""",
RuntimeWarning)
check_for_zmq('2.1.4')