From 3547abd3cca9c3300f0eb00a3d63025b5562533f Mon Sep 17 00:00:00 2001 From: Chris Laws Date: Wed, 18 Dec 2013 09:05:52 +1030 Subject: [PATCH] Add CZMQ version check to installer --- pyczmq/__init__.py | 1 + pyczmq/zsys.py | 18 ++++++++++++++++++ setup.py | 5 +++-- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 pyczmq/zsys.py diff --git a/pyczmq/__init__.py b/pyczmq/__init__.py index 8582757..2d51adb 100644 --- a/pyczmq/__init__.py +++ b/pyczmq/__init__.py @@ -2,6 +2,7 @@ from . import ( zmq, + zsys, zctx, zsocket, zstr, diff --git a/pyczmq/zsys.py b/pyczmq/zsys.py new file mode 100644 index 0000000..b9e4eab --- /dev/null +++ b/pyczmq/zsys.py @@ -0,0 +1,18 @@ +from pyczmq._cffi import C, ffi, cdef + +__doc__ = """ +The zsys class provides miscellaneous functions. Only a limited set of +functions are exposed from the czmq zsys module as many duplicate +functionality of built-in python types or libraries. +""" + +@cdef('void zsys_version (int *major, int *minor, int *patch);') +def zsys_version(): + """ + Returns the tuple (major, minor, patch) of the current czmq version. + """ + major = ffi.new('int*') + minor= ffi.new('int*') + patch = ffi.new('int*') + C.zsys_version(major, minor, patch) + return (major[0], minor[0], patch[0]) diff --git a/setup.py b/setup.py index e7119d5..88dfa46 100644 --- a/setup.py +++ b/setup.py @@ -5,12 +5,13 @@ ====== """ from pyczmq.zmq import version as zmq_version +from pyczmq.zsys import zsys_version as czmq_version from setuptools import setup, find_packages import sys -if zmq_version() < (4,0,0): - print "ERROR: pyczmq requires libzmq 4.0.0 or later." +if zmq_version() < (4,0,0) or czmq_version() < (2, 1, 0): + print "ERROR: pyczmq requires libzmq 4.0.0 or later and libczmq 2.1.0 or later" sys.exit(1)