__init__.py
72 lines
| 2.8 KiB
| text/x-python
|
PythonLexer
/ IPython / __init__.py
Brian Granger
|
r2010 | # -*- coding: utf-8 -*- | ||
fperez
|
r0 | """ | ||
IPython -- An enhanced Interactive Python | ||||
One of Python's nicest features is its interactive interpreter. This allows | ||||
very fast testing of ideas without the overhead of creating test files as is | ||||
typical in most programming languages. However, the interpreter supplied with | ||||
the standard Python distribution is fairly primitive (and IDLE isn't really | ||||
much better). | ||||
IPython tries to: | ||||
i - provide an efficient environment for interactive work in Python | ||||
programming. It tries to address what we see as shortcomings of the standard | ||||
Python prompt, and adds many features to make interactive work much more | ||||
efficient. | ||||
ii - offer a flexible framework so that it can be used as the base | ||||
environment for other projects and problems where Python can be the | ||||
underlying language. Specifically scientific environments like Mathematica, | ||||
IDL and Mathcad inspired its design, but similar ideas can be useful in many | ||||
fields. Python is a fabulous language for implementing this kind of system | ||||
(due to its dynamic and introspective features), and with suitable libraries | ||||
entire systems could be built leveraging Python's power. | ||||
iii - serve as an embeddable, ready to go interpreter for your own programs. | ||||
Fernando Perez
|
r1853 | IPython requires Python 2.4 or newer. | ||
""" | ||||
fperez
|
r0 | |||
#***************************************************************************** | ||||
Fernando Perez
|
r1875 | # Copyright (C) 2008-2009 The IPython Development Team | ||
# Copyright (C) 2001-2007 Fernando Perez. <fperez@colorado.edu> | ||||
fperez
|
r0 | # | ||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
#***************************************************************************** | ||||
# Enforce proper version requirements | ||||
import sys | ||||
vivainio
|
r168 | |||
Fernando Perez
|
r1434 | if sys.version[0:3] < '2.4': | ||
raise ImportError('Python Version 2.4 or above is required for IPython.') | ||||
vivainio
|
r168 | |||
# Make it easy to import extensions - they are always directly on pythonpath. | ||||
# Therefore, non-IPython modules can be added to Extensions directory | ||||
import os | ||||
sys.path.append(os.path.dirname(__file__) + "/Extensions") | ||||
fperez
|
r298 | |||
fperez
|
r0 | # Define what gets imported with a 'from IPython import *' | ||
vivainio
|
r696 | __all__ = ['ipapi','generics','ipstruct','Release','Shell'] | ||
fperez
|
r0 | |||
# Load __all__ in IPython namespace so that a simple 'import IPython' gives | ||||
# access to them via IPython.<name> | ||||
glob,loc = globals(),locals() | ||||
for name in __all__: | ||||
Fernando Perez
|
r1434 | #print 'Importing: ',name # dbg | ||
fperez
|
r0 | __import__(name,glob,loc,[]) | ||
vivainio
|
r695 | import Shell | ||
fperez
|
r0 | # Release data | ||
from IPython import Release # do it explicitly so pydoc can see it - pydoc bug | ||||
fperez
|
r17 | __author__ = '%s <%s>\n%s <%s>\n%s <%s>' % \ | ||
( Release.authors['Fernando'] + Release.authors['Janko'] + \ | ||||
Release.authors['Nathan'] ) | ||||
__license__ = Release.license | ||||
__version__ = Release.version | ||||
__revision__ = Release.revision | ||||
fperez
|
r0 | |||
# Namespace cleanup | ||||
del name,glob,loc | ||||