mirror of
https://github.com/jupyter/notebook.git
synced 2024-12-27 04:20:22 +08:00
Merge pull request #821 from minrk/tornado21
update tornado dependency to 2.1, fixes to test_for in setup scripts.
This commit is contained in:
commit
b4392a5e4f
@ -45,6 +45,7 @@ import nose.plugins.builtin
|
||||
from nose.core import TestProgram
|
||||
|
||||
# Our own imports
|
||||
from IPython.utils.importstring import import_item
|
||||
from IPython.utils.path import get_ipython_module_path
|
||||
from IPython.utils.process import find_cmd, pycmd2argv
|
||||
from IPython.utils.sysinfo import sys_info
|
||||
@ -81,18 +82,38 @@ warnings.filterwarnings('ignore', 'wxPython/wxWidgets release number mismatch',
|
||||
#-----------------------------------------------------------------------------
|
||||
# Logic for skipping doctests
|
||||
#-----------------------------------------------------------------------------
|
||||
def extract_version(mod):
|
||||
return mod.__version__
|
||||
|
||||
def test_for(mod, min_version=None):
|
||||
"""Test to see if mod is importable."""
|
||||
def test_for(item, min_version=None, callback=extract_version):
|
||||
"""Test to see if item is importable, and optionally check against a minimum
|
||||
version.
|
||||
|
||||
If min_version is given, the default behavior is to check against the
|
||||
`__version__` attribute of the item, but specifying `callback` allows you to
|
||||
extract the value you are interested in. e.g::
|
||||
|
||||
In [1]: import sys
|
||||
|
||||
In [2]: from IPython.testing.iptest import test_for
|
||||
|
||||
In [3]: test_for('sys', (2,6), callback=lambda sys: sys.version_info)
|
||||
Out[3]: True
|
||||
|
||||
"""
|
||||
try:
|
||||
__import__(mod)
|
||||
check = import_item(item)
|
||||
except (ImportError, RuntimeError):
|
||||
# GTK reports Runtime error if it can't be initialized even if it's
|
||||
# importable.
|
||||
return False
|
||||
else:
|
||||
if min_version:
|
||||
return sys.modules[mod].__version__ >= min_version
|
||||
if callback:
|
||||
# extra processing step to get version to compare
|
||||
check = callback(check)
|
||||
|
||||
return check >= min_version
|
||||
else:
|
||||
return True
|
||||
|
||||
@ -102,16 +123,27 @@ have = {}
|
||||
|
||||
have['curses'] = test_for('_curses')
|
||||
have['matplotlib'] = test_for('matplotlib')
|
||||
have['pexpect'] = test_for('pexpect')
|
||||
have['pexpect'] = test_for('IPython.external.pexpect')
|
||||
have['pymongo'] = test_for('pymongo')
|
||||
have['wx'] = test_for('wx')
|
||||
have['wx.aui'] = test_for('wx.aui')
|
||||
if os.name == 'nt':
|
||||
have['zmq'] = test_for('zmq', '2.1.7')
|
||||
else:
|
||||
have['zmq'] = test_for('zmq', '2.1.4')
|
||||
have['qt'] = test_for('IPython.external.qt')
|
||||
have['tornado'] = test_for('tornado')
|
||||
|
||||
have['tornado'] = test_for('tornado.version_info', (2,1,0), callback=None)
|
||||
|
||||
if os.name == 'nt':
|
||||
min_zmq = (2,1,7)
|
||||
else:
|
||||
min_zmq = (2,1,4)
|
||||
|
||||
def version_tuple(mod):
|
||||
"turn '2.1.9' into (2,1,9), and '2.1dev' into (2,1,999)"
|
||||
# turn 'dev' into 999, because Python3 rejects str-int comparisons
|
||||
vs = mod.__version__.replace('dev', '.999')
|
||||
tup = tuple([int(v) for v in vs.split('.') ])
|
||||
return tup
|
||||
|
||||
have['zmq'] = test_for('zmq', min_zmq, version_tuple)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Functions and classes
|
||||
|
Loading…
Reference in New Issue
Block a user