"""Utilities for checking zmq versions.""" #----------------------------------------------------------------------------- # Copyright (C) 2013 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.11 #----------------------------------------------------------------------------- from IPython.utils.version import check_version def patch_pyzmq(): """backport a few patches from newer pyzmq These can be removed as we bump our minimum pyzmq version """ import zmq # fallback on stdlib json if jsonlib is selected, because jsonlib breaks things. # jsonlib support is removed from pyzmq >= 2.2.0 from zmq.utils import jsonapi if jsonapi.jsonmod.__name__ == 'jsonlib': import json jsonapi.jsonmod = json def check_for_zmq(minimum_version, required_by='Someone'): try: import zmq except ImportError: raise ImportError("%s requires pyzmq >= %s"%(required_by, minimum_version)) patch_pyzmq() pyzmq_version = zmq.__version__ if not check_version(pyzmq_version, minimum_version): raise ImportError("%s requires pyzmq >= %s, but you have %s"%( required_by, minimum_version, pyzmq_version))