setupext.py
164 lines
| 4.5 KiB
| text/x-python
|
PythonLexer
/ setupext / setupext.py
Brian E Granger
|
r1237 | # 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 | ||||
MinRK
|
r3744 | def check_display(f): | ||
"""decorator to allow display methods to be muted by mod.display_status""" | ||||
def maybe_display(*args, **kwargs): | ||||
if display_status: | ||||
return f(*args, **kwargs) | ||||
return maybe_display | ||||
@check_display | ||||
def print_line(char='='): | ||||
print char * 76 | ||||
@check_display | ||||
def print_status(package, status): | ||||
initial_indent = "%22s: " % package | ||||
indent = ' ' * 24 | ||||
print fill(str(status), width=76, | ||||
initial_indent=initial_indent, | ||||
subsequent_indent=indent) | ||||
@check_display | ||||
def print_message(message): | ||||
indent = ' ' * 24 + "* " | ||||
print fill(str(message), width=76, | ||||
initial_indent=indent, | ||||
subsequent_indent=indent) | ||||
@check_display | ||||
def print_raw(section): | ||||
print section | ||||
Brian E Granger
|
r1237 | |||
#------------------------------------------------------------------------------- | ||||
# 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_sphinx(): | ||||
try: | ||||
import sphinx | ||||
except ImportError: | ||||
Brian E Granger
|
r1240 | print_status('sphinx', "Not found (required for building documentation)") | ||
Brian E Granger
|
r1237 | return False | ||
else: | ||||
print_status('sphinx', sphinx.__version__) | ||||
return True | ||||
def check_for_pygments(): | ||||
try: | ||||
import pygments | ||||
except ImportError: | ||||
Brian E Granger
|
r1240 | print_status('pygments', "Not found (required for syntax highlighting documentation)") | ||
Brian E Granger
|
r1237 | return False | ||
else: | ||||
print_status('pygments', pygments.__version__) | ||||
return True | ||||
def check_for_nose(): | ||||
try: | ||||
import nose | ||||
except ImportError: | ||||
Brian E Granger
|
r1240 | print_status('nose', "Not found (required for running the test suite)") | ||
Brian E Granger
|
r1237 | 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 | ||||
MinRK
|
r3634 | def check_for_pyzmq(): | ||
try: | ||||
import zmq | ||||
except ImportError: | ||||
print_status('pyzmq', "no (required for qtconsole and parallel computing capabilities)") | ||||
return False | ||||
else: | ||||
MinRK
|
r4028 | if zmq.__version__ < '2.1.4': | ||
print_status('pyzmq', "no (have %s, but require >= 2.1.4 for" | ||||
" qtconsole and parallel computing capabilities)"%zmq.__version__) | ||||
MinRK
|
r3634 | |||
else: | ||||
print_status("pyzmq", zmq.__version__) | ||||
return True | ||||
MinRK
|
r3699 | def check_for_readline(): | ||
try: | ||||
import readline | ||||
except ImportError: | ||||
try: | ||||
import pyreadline | ||||
except ImportError: | ||||
print_status('readline', "no (required for good interactive behavior)") | ||||
return False | ||||
else: | ||||
print_status('readline', "yes pyreadline-"+pyreadline.release.version) | ||||
return True | ||||
else: | ||||
print_status('readline', "yes") | ||||
return True | ||||