__init__.py
86 lines
| 3.1 KiB
| text/x-python
|
PythonLexer
/ IPython / __init__.py
Brian Granger
|
r2205 | # encoding: utf-8 | ||
fperez
|
r0 | """ | ||
Fernando Perez
|
r4451 | IPython: tools for interactive and parallel computing in Python. | ||
fperez
|
r0 | |||
Fernando Perez
|
r4451 | http://ipython.org | ||
Fernando Perez
|
r1853 | """ | ||
Brian Granger
|
r2205 | #----------------------------------------------------------------------------- | ||
Fernando Perez
|
r4451 | # Copyright (c) 2008-2011, IPython Development Team. | ||
Fernando Perez
|
r3204 | # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu> | ||
# Copyright (c) 2001, Janko Hauser <jhauser@zscout.de> | ||||
# Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu> | ||||
fperez
|
r0 | # | ||
Fernando Perez
|
r3204 | # Distributed under the terms of the Modified BSD License. | ||
# | ||||
# The full license is in the file COPYING.txt, distributed with this software. | ||||
Brian Granger
|
r2205 | #----------------------------------------------------------------------------- | ||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
Fernando Perez
|
r2439 | from __future__ import absolute_import | ||
fperez
|
r0 | |||
Brian Granger
|
r2205 | import os | ||
fperez
|
r0 | import sys | ||
Brian Granger
|
r2205 | |||
#----------------------------------------------------------------------------- | ||||
# Setup everything | ||||
#----------------------------------------------------------------------------- | ||||
Fernando Perez
|
r3196 | # Don't forget to also update setup.py when this changes! | ||
Brian Granger
|
r2747 | if sys.version[0:3] < '2.6': | ||
raise ImportError('Python Version 2.6 or above is required for IPython.') | ||||
vivainio
|
r168 | |||
# Make it easy to import extensions - they are always directly on pythonpath. | ||||
Brian Granger
|
r2498 | # Therefore, non-IPython modules can be added to extensions directory. | ||
# This should probably be in ipapp.py. | ||||
Brian Granger
|
r2064 | sys.path.append(os.path.join(os.path.dirname(__file__), "extensions")) | ||
fperez
|
r298 | |||
Brian Granger
|
r2224 | #----------------------------------------------------------------------------- | ||
# Setup the top level names | ||||
#----------------------------------------------------------------------------- | ||||
vivainio
|
r695 | |||
Fernando Perez
|
r2439 | from .config.loader import Config | ||
MinRK
|
r10612 | from .core.getipython import get_ipython | ||
Fernando Perez
|
r2439 | from .core import release | ||
from .core.application import Application | ||||
Brian Granger
|
r2760 | from .frontend.terminal.embed import embed | ||
Scott Tsai
|
r6044 | |||
Fernando Perez
|
r2439 | from .core.error import TryNext | ||
Brian Granger
|
r2760 | from .core.interactiveshell import InteractiveShell | ||
Fernando Perez
|
r2439 | from .testing import test | ||
Fernando Perez
|
r3204 | from .utils.sysinfo import sys_info | ||
MinRK
|
r6570 | from .utils.frame import extract_module_locals | ||
vivainio
|
r695 | |||
fperez
|
r0 | # Release data | ||
MinRK
|
r9188 | __author__ = '%s <%s>' % (release.author, release.author_email) | ||
Brian Granger
|
r2043 | __license__ = release.license | ||
__version__ = release.version | ||||
MinRK
|
r8448 | version_info = release.version_info | ||
Scott Tsai
|
r6219 | |||
MinRK
|
r6571 | def embed_kernel(module=None, local_ns=None, **kwargs): | ||
"""Embed and start an IPython kernel in a given scope. | ||||
Parameters | ||||
---------- | ||||
module : ModuleType, optional | ||||
The module to load into IPython globals (default: caller) | ||||
local_ns : dict, optional | ||||
The namespace to load into IPython user namespace (default: caller) | ||||
kwargs : various, optional | ||||
MinRK
|
r9516 | Further keyword args are relayed to the IPKernelApp constructor, | ||
MinRK
|
r6571 | allowing configuration of the Kernel. Will only have an effect | ||
on the first embed_kernel call for a given process. | ||||
""" | ||||
MinRK
|
r6570 | (caller_module, caller_locals) = extract_module_locals(1) | ||
Scott Tsai
|
r6219 | if module is None: | ||
module = caller_module | ||||
if local_ns is None: | ||||
local_ns = caller_locals | ||||
MinRK
|
r6571 | |||
Scott Tsai
|
r6219 | # Only import .zmq when we really need it | ||
MinRK
|
r9375 | from IPython.kernel.zmq.embed import embed_kernel as real_embed_kernel | ||
MinRK
|
r6571 | real_embed_kernel(module=module, local_ns=local_ns, **kwargs) | ||