##// END OF EJS Templates
Finishing work on configurables, plugins and extensions.
Finishing work on configurables, plugins and extensions.

File last commit:

r2281:21a097ae
r2738:95a4f176
Show More
ipython.txt
135 lines | 5.1 KiB | text/plain | TextLexer
.. _configuring_ipython:
===========================================================
Configuring the :command:`ipython` command line application
===========================================================
This section contains information about how to configure the
:command:`ipython` command line application. See the :ref:`configuration
overview <config_overview>` for a more general description of the
configuration system and configuration file format.
The default configuration file for the :command:`ipython` command line application
is :file:`ipython_config.py`. By setting the attributes in this file, you
can configure the application. A sample is provided in
:mod:`IPython.config.default.ipython_config`. Simply copy this file to your
IPython directory to start using it.
Most configuration attributes that this file accepts are associated with
classes that are subclasses of :class:`~IPython.core.component.Component`.
A few configuration attributes are not associated with a particular
:class:`~IPython.core.component.Component` subclass. These are application
wide configuration attributes and are stored in the ``Global``
sub-configuration section. We begin with a description of these
attributes.
Global configuration
====================
Assuming that your configuration file has the following at the top::
c = get_config()
the following attributes can be set in the ``Global`` section.
:attr:`c.Global.display_banner`
A boolean that determined if the banner is printer when :command:`ipython`
is started.
:attr:`c.Global.classic`
A boolean that determines if IPython starts in "classic" mode. In this
mode, the prompts and everything mimic that of the normal :command:`python`
shell
:attr:`c.Global.nosep`
A boolean that determines if there should be no blank lines between
prompts.
:attr:`c.Global.log_level`
An integer that sets the detail of the logging level during the startup
of :command:`ipython`. The default is 30 and the possible values are
(0, 10, 20, 30, 40, 50). Higher is quieter and lower is more verbose.
:attr:`c.Global.extensions`
A list of strings, each of which is an importable IPython extension. An
IPython extension is a regular Python module or package that has a
:func:`load_ipython_extension(ip)` method. This method gets called when
the extension is loaded with the currently running
:class:`~IPython.core.iplib.InteractiveShell` as its only argument. You
can put your extensions anywhere they can be imported but we add the
:file:`extensions` subdirectory of the ipython directory to ``sys.path``
during extension loading, so you can put them there as well. Extensions
are not executed in the user's interactive namespace and they must be pure
Python code. Extensions are the recommended way of customizing
:command:`ipython`. Extensions can provide an
:func:`unload_ipython_extension` that will be called when the extension is
unloaded.
:attr:`c.Global.exec_lines`
A list of strings, each of which is Python code that is run in the user's
namespace after IPython start. These lines can contain full IPython syntax
with magics, etc.
:attr:`c.Global.exec_files`
A list of strings, each of which is the full pathname of a ``.py`` or
``.ipy`` file that will be executed as IPython starts. These files are run
in IPython in the user's namespace. Files with a ``.py`` extension need to
be pure Python. Files with a ``.ipy`` extension can have custom IPython
syntax (magics, etc.). These files need to be in the cwd, the ipythondir
or be absolute paths.
Classes that can be configured
==============================
The following classes can also be configured in the configuration file for
:command:`ipython`:
* :class:`~IPython.core.iplib.InteractiveShell`
* :class:`~IPython.core.prefilter.PrefilterManager`
* :class:`~IPython.core.alias.AliasManager`
To see which attributes of these classes are configurable, please see the
source code for these classes, the class docstrings or the sample
configuration file :mod:`IPython.config.default.ipython_config`.
Example
=======
For those who want to get a quick start, here is a sample
:file:`ipython_config.py` that sets some of the common configuration
attributes::
# sample ipython_config.py
c = get_config()
c.Global.display_banner = True
c.Global.log_level = 20
c.Global.extensions = [
'myextension'
]
c.Global.exec_lines = [
'import numpy',
'import scipy'
]
c.Global.exec_files = [
'mycode.py',
'fancy.ipy'
]
c.InteractiveShell.autoindent = True
c.InteractiveShell.colors = 'LightBG'
c.InteractiveShell.confirm_exit = False
c.InteractiveShell.deep_reload = True
c.InteractiveShell.editor = 'nano'
c.InteractiveShell.prompt_in1 = 'In [\#]: '
c.InteractiveShell.prompt_in2 = ' .\D.: '
c.InteractiveShell.prompt_out = 'Out[\#]: '
c.InteractiveShell.prompts_pad_left = True
c.InteractiveShell.xmode = 'Context'
c.PrefilterManager.multi_line_specials = True
c.AliasManager.user_aliases = [
('la', 'ls -al')
]