|
|
# encoding: utf-8
|
|
|
|
|
|
__docformat__ = "restructuredtext en"
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Copyright (C) 2008 The IPython Development Team
|
|
|
#
|
|
|
# Distributed under the terms of the BSD License. The full license is in
|
|
|
# the file COPYING, distributed as part of this software.
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Imports
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
import sys, os
|
|
|
from textwrap import fill
|
|
|
|
|
|
display_status=True
|
|
|
|
|
|
if display_status:
|
|
|
def print_line(char='='):
|
|
|
print char * 76
|
|
|
|
|
|
def print_status(package, status):
|
|
|
initial_indent = "%22s: " % package
|
|
|
indent = ' ' * 24
|
|
|
print fill(str(status), width=76,
|
|
|
initial_indent=initial_indent,
|
|
|
subsequent_indent=indent)
|
|
|
|
|
|
def print_message(message):
|
|
|
indent = ' ' * 24 + "* "
|
|
|
print fill(str(message), width=76,
|
|
|
initial_indent=indent,
|
|
|
subsequent_indent=indent)
|
|
|
|
|
|
def print_raw(section):
|
|
|
print section
|
|
|
else:
|
|
|
def print_line(*args, **kwargs):
|
|
|
pass
|
|
|
print_status = print_message = print_raw = print_line
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Tests for specific packages
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
def check_for_ipython():
|
|
|
try:
|
|
|
import IPython
|
|
|
except ImportError:
|
|
|
print_status("IPython", "Not found")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("IPython", IPython.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_zopeinterface():
|
|
|
try:
|
|
|
import zope.interface
|
|
|
except ImportError:
|
|
|
print_status("zope.Interface", "Not found (required for parallel computing capabilities)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("Zope.Interface","yes")
|
|
|
return True
|
|
|
|
|
|
def check_for_twisted():
|
|
|
try:
|
|
|
import twisted
|
|
|
except ImportError:
|
|
|
print_status("Twisted", "Not found (required for parallel computing capabilities)")
|
|
|
return False
|
|
|
else:
|
|
|
major = twisted.version.major
|
|
|
minor = twisted.version.minor
|
|
|
micro = twisted.version.micro
|
|
|
print_status("Twisted", twisted.version.short())
|
|
|
if not ((major==2 and minor>=5 and micro>=0) or \
|
|
|
major>=8):
|
|
|
print_message("WARNING: IPython requires Twisted 2.5.0 or greater, you have version %s"%twisted.version.short())
|
|
|
print_message("Twisted is required for parallel computing capabilities")
|
|
|
return False
|
|
|
else:
|
|
|
return True
|
|
|
|
|
|
def check_for_foolscap():
|
|
|
try:
|
|
|
import foolscap
|
|
|
except ImportError:
|
|
|
print_status('Foolscap', "Not found (required for parallel computing capabilities)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status('Foolscap', foolscap.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_pyopenssl():
|
|
|
try:
|
|
|
import OpenSSL
|
|
|
except ImportError:
|
|
|
print_status('OpenSSL', "Not found (required if you want security in the parallel computing capabilities)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status('OpenSSL', OpenSSL.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_sphinx():
|
|
|
try:
|
|
|
import sphinx
|
|
|
except ImportError:
|
|
|
print_status('sphinx', "Not found (required for building documentation)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status('sphinx', sphinx.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_pygments():
|
|
|
try:
|
|
|
import pygments
|
|
|
except ImportError:
|
|
|
print_status('pygments', "Not found (required for syntax highlighting documentation)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status('pygments', pygments.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_nose():
|
|
|
try:
|
|
|
import nose
|
|
|
except ImportError:
|
|
|
print_status('nose', "Not found (required for running the test suite)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status('nose', nose.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_pexpect():
|
|
|
try:
|
|
|
import pexpect
|
|
|
except ImportError:
|
|
|
print_status("pexpect", "no (required for running standalone doctests)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("pexpect", pexpect.__version__)
|
|
|
return True
|
|
|
|
|
|
def check_for_httplib2():
|
|
|
try:
|
|
|
import httplib2
|
|
|
except ImportError:
|
|
|
print_status("httplib2", "no (required for blocking http clients)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("httplib2","yes")
|
|
|
return True
|
|
|
|
|
|
def check_for_sqlalchemy():
|
|
|
try:
|
|
|
import sqlalchemy
|
|
|
except ImportError:
|
|
|
print_status("sqlalchemy", "no (required for the ipython1 notebook)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("sqlalchemy","yes")
|
|
|
return True
|
|
|
|
|
|
def check_for_simplejson():
|
|
|
try:
|
|
|
import simplejson
|
|
|
except ImportError:
|
|
|
print_status("simplejson", "no (required for the ipython1 notebook)")
|
|
|
return False
|
|
|
else:
|
|
|
print_status("simplejson","yes")
|
|
|
return True
|
|
|
|
|
|
|