##// END OF EJS Templates
Merge pull request #7650 from minrk/initial-kernel...
Merge pull request #7650 from minrk/initial-kernel don't prevent spec_changed from firing on load

File last commit:

r19954:212751cf
r20291:9c72a135 merge
Show More
index.rst
103 lines | 3.8 KiB | text/x-rst | RstLexer
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749 .. _extensions_overview:
==================
IPython extensions
==================
Thomas Kluyver
Rework extension docs
r7624 A level above configuration are IPython extensions, Python modules which modify
the behaviour of the shell. They are referred to by an importable module name,
and can be placed anywhere you'd normally import from, or in
Thomas Kluyver
Polishing some docs
r15104 ``.ipython/extensions/``.
Thomas Kluyver
Rework extension docs
r7624
Getting extensions
==================
A few important extensions are :ref:`bundled with IPython <bundled_extensions>`.
Others can be found on the `extensions index
Thomas Kluyver
Describe using PyPI/pip to distribute & install extensions...
r16474 <https://github.com/ipython/ipython/wiki/Extensions-Index>`_ on the wiki, and
the `Framework :: IPython tag <https://pypi.python.org/pypi?:action=browse&c=586>`_
on PyPI.
Extensions on PyPI can be installed using ``pip``, like any other Python package.
Other simple extensions can be installed with the ``%install_ext`` magic. The
latter does no validation, so be careful using it on untrusted networks like
public wifi.
Thomas Kluyver
Rework extension docs
r7624
Using extensions
================
To load an extension while IPython is running, use the ``%load_ext`` magic:
.. sourcecode:: ipython
In [1]: %load_ext myextension
To load it each time IPython starts, list it in your configuration file::
c.InteractiveShellApp.extensions = [
'myextension'
]
Writing extensions
==================
An IPython extension is an importable Python module that has a couple of special
functions to load and unload it. Here is a template::
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749
# myextension.py
def load_ipython_extension(ipython):
Thomas Kluyver
Rework extension docs
r7624 # The `ipython` argument is the currently active `InteractiveShell`
# instance, which can be used in any way. This allows you to register
Brian Granger
Cleaning up extensions that used plugins.
r8197 # new magics or aliases, for example.
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749
def unload_ipython_extension(ipython):
# If you want your extension to be unloadable, put that logic here.
This :func:`load_ipython_extension` function is called after your extension is
Thomas Kluyver
Rework extension docs
r7624 imported, and the currently active :class:`~IPython.core.interactiveshell.InteractiveShell`
instance is passed as the only argument. You can do anything you want with
IPython at that point.
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749
Thomas Kluyver
Rework extension docs
r7624 :func:`load_ipython_extension` will be called again if you load or reload
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749 the extension again. It is up to the extension author to add code to manage
that.
Thomas Kluyver
Update extension docs with new method for defining magic functions.
r12298 Useful :class:`InteractiveShell` methods include :meth:`~IPython.core.interactiveshell.InteractiveShell.register_magic_function`,
Thomas Kluyver
Improve documentation for extensions, and for storemagic extension.
r5426 :meth:`~IPython.core.interactiveshell.InteractiveShell.push` (to add variables to the user namespace) and
:meth:`~IPython.core.interactiveshell.InteractiveShell.drop_by_id` (to remove variables on unloading).
Thomas Kluyver
Polishing some docs
r15104 .. seealso::
:ref:`defining_magics`
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749 You can put your extension modules anywhere you want, as long as they can be
imported by Python's standard import mechanism. However, to make it easy to
Thomas Kluyver
Polishing some docs
r15104 write extensions, you can also put your extensions in :file:`extensions/`
within the :ref:`IPython directory <ipythondir>`. This directory is
added to :data:`sys.path` automatically.
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749
Thomas Kluyver
Rework extension docs
r7624 When your extension is ready for general use, please add it to the `extensions
Thomas Kluyver
Describe using PyPI/pip to distribute & install extensions...
r16474 index <https://github.com/ipython/ipython/wiki/Extensions-Index>`_. We also
encourage you to upload it to PyPI and use the ``Framework :: IPython``
classifier, so that users can install it with standard packaging tools.
Brian Granger
Adding new docs for configuration/extensions/plugins.
r2749
Thomas Kluyver
Rework extension docs
r7624 .. _bundled_extensions:
Pauli Virtanen
DOC: extensions: add documentation for the bundled extensions
r4888
Extensions bundled with IPython
===============================
.. toctree::
:maxdepth: 1
autoreload
Thomas Kluyver
Improve documentation for extensions, and for storemagic extension.
r5426 storemagic
Pauli Virtanen
DOC: extensions: add documentation for the bundled extensions
r4888 sympyprinting
Thomas Kluyver
Remove the octavemagic extension....
r16163
* ``octavemagic`` used to be bundled, but is now part of `oct2py <http://blink1073.github.io/oct2py/docs/>`_.
Use ``%load_ext oct2py.ipython`` to load it.
Thomas Kluyver
Remove rmagic docs...
r17608 * ``rmagic`` is now part of `rpy2 <http://rpy.sourceforge.net/>`_. Use
``%load_ext rpy2.ipython`` to load it, and see :mod:`rpy2.ipython.rmagic` for
details of how to use it.
Doug Blank
Update index.rst...
r19954 * ``cythonmagic`` used to be bundled, but is now part of `cython <https://github.com/cython/cython/>`_
Matthias Bussonnier
add whatsnew and uppercase C in load_ext...
r17915 Use ``%load_ext Cython`` to load it.