
import warnings
from distutils.version import LooseVersion as V

def check_for_zmq(minimum_version, module='IPython.zmq'):
    try:
        import zmq
    except ImportError:
        raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))

    pyzmq_version = zmq.__version__
    
    if V(pyzmq_version) < V(minimum_version):
        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 V(zmq.zmq_version()) >= V('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')


import warnings
from distutils.version import LooseVersion as V

def check_for_zmq(minimum_version, module='IPython.zmq'):
    try:
        import zmq
    except ImportError:
        raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))

    pyzmq_version = zmq.__version__
    
    if 'dev' not in pyzmq_version and V(pyzmq_version) < V(minimum_version):
        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 V(zmq.zmq_version()) >= V('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')

Check for dev version of zmq per @minrk's request
Check for dev version of zmq per @minrk's request
  
  import warnings
  from distutils.version import LooseVersion as V
  
  def check_for_zmq(minimum_version, module='IPython.zmq'):
      try:
          import zmq
      except ImportError:
          raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))
  
      pyzmq_version = zmq.__version__
      
-     if V(pyzmq_version) < V(minimum_version):
+     if 'dev' not in pyzmq_version and V(pyzmq_version) < V(minimum_version):
          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 V(zmq.zmq_version()) >= V('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')
  
Check for dev version of zmq per @minrk's request
## Code Before:

import warnings
from distutils.version import LooseVersion as V

def check_for_zmq(minimum_version, module='IPython.zmq'):
    try:
        import zmq
    except ImportError:
        raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))

    pyzmq_version = zmq.__version__
    
    if V(pyzmq_version) < V(minimum_version):
        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 V(zmq.zmq_version()) >= V('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')

## Instruction:
Check for dev version of zmq per @minrk's request
## Code After:

import warnings
from distutils.version import LooseVersion as V

def check_for_zmq(minimum_version, module='IPython.zmq'):
    try:
        import zmq
    except ImportError:
        raise ImportError("%s requires pyzmq >= %s"%(module, minimum_version))

    pyzmq_version = zmq.__version__
    
    if 'dev' not in pyzmq_version and V(pyzmq_version) < V(minimum_version):
        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 V(zmq.zmq_version()) >= V('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')
