diff --git a/docs/source/_static/logo.png b/docs/source/_static/logo.png index 10fbc0dbe5dbc0ad33bd104257d6f725d96ecce3..e9bdce3941580ff04aaf32d2eb2fb1fe93685bde 100644 GIT binary patch literal 9216 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 WLVV;Bi`m~nz^1OO1*=!IeD^;^Vu+0Z literal 4355 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 CIkK++ diff --git a/docs/source/interactive/reference.txt b/docs/source/interactive/reference.txt index 0327c9d..11f68a8 100644 --- a/docs/source/interactive/reference.txt +++ b/docs/source/interactive/reference.txt @@ -325,25 +325,23 @@ All options with a [no] prepended can be specified in negated form Interactive use =============== -IPython is meant to work as a drop-in -replacement for the standard interactive interpreter. As such, any code -which is valid python should execute normally under IPython (cases where -this is not true should be reported as bugs). It does, however, offer -many features which are not available at a standard python prompt. What -follows is a list of these. +IPython is meant to work as a drop-in replacement for the standard interactive +interpreter. As such, any code which is valid python should execute normally +under IPython (cases where this is not true should be reported as bugs). It +does, however, offer many features which are not available at a standard python +prompt. What follows is a list of these. Caution for Windows users ------------------------- -Windows, unfortunately, uses the '\\' character as a path -separator. This is a terrible choice, because '\\' also represents the -escape character in most modern programming languages, including -Python. For this reason, using '/' character is recommended if you -have problems with ``\``. However, in Windows commands '/' flags -options, so you can not use it for the root directory. This means that -paths beginning at the root must be typed in a contrived manner like: -``%copy \opt/foo/bar.txt \tmp`` +Windows, unfortunately, uses the '\\' character as a path separator. This is a +terrible choice, because '\\' also represents the escape character in most +modern programming languages, including Python. For this reason, using '/' +character is recommended if you have problems with ``\``. However, in Windows +commands '/' flags options, so you can not use it for the root directory. This +means that paths beginning at the root must be typed in a contrived manner +like: ``%copy \opt/foo/bar.txt \tmp`` .. _magic: @@ -419,11 +417,11 @@ following example defines a new magic command, %impall: ip.expose_magic('impall', doimp) -Type %magic for more information, including a list of all available -magic functions at any time and their docstrings. You can also type -%magic_function_name? (see sec. 6.4 <#sec:dyn-object-info> for -information on the '?' system) to get information about any particular -magic function you are interested in. +Type `%magic` for more information, including a list of all available magic +functions at any time and their docstrings. You can also type +%magic_function_name? (see :ref:`below **: Print (or run through a pager if too long) the @@ -476,21 +474,19 @@ without the %), this is just a summary: identifiers and %whos prints a table with some basic details about each identifier. -Note that the dynamic object information functions (?/??, %pdoc, %pfile, -%pdef, %psource) give you access to documentation even on things which -are not really defined as separate identifiers. Try for example typing -{}.get? or after doing import os, type os.path.abspath??. - +Note that the dynamic object information functions (?/??, ``%pdoc``, +``%pfile``, ``%pdef``, ``%psource``) give you access to documentation even on +things which are not really defined as separate identifiers. Try for example +typing {}.get? or after doing import os, type ``os.path.abspath??``. .. _readline: Readline-based features ----------------------- -These features require the GNU readline library, so they won't work if -your Python installation lacks readline support. We will first describe -the default behavior IPython uses, and then how to change it to suit -your preferences. +These features require the GNU readline library, so they won't work if your +Python installation lacks readline support. We will first describe the default +behavior IPython uses, and then how to change it to suit your preferences. Command line completion @@ -534,10 +530,10 @@ Autoindent IPython can recognize lines ending in ':' and indent the next line, while also un-indenting automatically after 'raise' or 'return'. -This feature uses the readline library, so it will honor your ~/.inputrc -configuration (or whatever file your INPUTRC variable points to). Adding -the following lines to your .inputrc file can make indenting/unindenting -more convenient (M-i indents, M-u unindents):: +This feature uses the readline library, so it will honor your +:file:`~/.inputrc` configuration (or whatever file your INPUTRC variable points +to). Adding the following lines to your :file:`.inputrc` file can make +indenting/unindenting more convenient (M-i indents, M-u unindents):: $if Python "\M-i": " " @@ -548,17 +544,19 @@ Note that there are 4 spaces between the quote marks after "M-i" above. .. warning:: - Setting the above indents will cause problems with unicode text entry in the terminal. + Setting the above indents will cause problems with unicode text entry in + the terminal. .. warning:: - Autoindent is ON by default, but it can cause problems with - the pasting of multi-line indented code (the pasted code gets - re-indented on each line). A magic function %autoindent allows you to - toggle it on/off at runtime. You can also disable it permanently on in - your :file:`ipython_config.py` file (set TerminalInteractiveShell.autoindent=False). + Autoindent is ON by default, but it can cause problems with the pasting of + multi-line indented code (the pasted code gets re-indented on each line). A + magic function %autoindent allows you to toggle it on/off at runtime. You + can also disable it permanently on in your :file:`ipython_config.py` file + (set TerminalInteractiveShell.autoindent=False). - If you want to paste multiple lines, it is recommended that you use ``%paste``. + If you want to paste multiple lines, it is recommended that you use + ``%paste``. Customizing readline behavior @@ -617,10 +615,10 @@ any code you wrote while experimenting. Log files are regular text files which you can later open in your favorite text editor to extract code or to 'clean them up' before using them to replay a session. -The %logstart function for activating logging in mid-session is used as -follows: +The `%logstart` function for activating logging in mid-session is used as +follows:: -%logstart [log_name [log_mode]] + %logstart [log_name [log_mode]] If no name is given, it defaults to a file named 'ipython_log.py' in your current working directory, in 'rotate' mode (see below). @@ -1274,7 +1272,6 @@ sections for execution as a demo: .. literalinclude:: ../../examples/lib/example-demo.py :language: python - In order to run a file as a demo, you must first make a Demo object out of it. If the file is named myscript.py, the following code will make a demo:: diff --git a/docs/source/whatsnew/version0.11.txt b/docs/source/whatsnew/version0.11.txt index 6761bda..07848a7 100644 --- a/docs/source/whatsnew/version0.11.txt +++ b/docs/source/whatsnew/version0.11.txt @@ -63,14 +63,6 @@ A quick summary of the major changes (see below for details): This requires some changes if you want to execute GUI-using scripts inside IPython, see :ref:`the GUI support section ` for more details. -* **Integration into Microsoft Visual Studio**. Thanks to the work of the - Microsoft `Python Tools for Visual Studio`__ team, this version of IPython - has been integrated into Microsoft Visual Studio's Python tools open source - plug-in. `Details below`_ - -.. __: http://pytools.codeplex.com -.. _details below: ms_visual_studio_011_ - * **A two-process architecture.** The Qt console is the first example of using a new model that splits IPython between a kernel process where code is executed and a client that handles user interaction. We plan on also @@ -85,6 +77,21 @@ A quick summary of the major changes (see below for details): hope this (ongoing) restructuring will make it easier for new developers to join us. +* **Vim integration**. Vim can be configured to seamlessly control an IPython + kernel, see the files in :file:`docs/examples/vim` for the full details. + This work was done by Paul Ivanov, who prepared a nice `video + demonstration`__ of the features it provides. + +.. __: http://pirsquared.org/blog/2011/07/28/vim-ipython/ + +* **Integration into Microsoft Visual Studio**. Thanks to the work of the + Microsoft `Python Tools for Visual Studio`__ team, this version of IPython + has been integrated into Microsoft Visual Studio's Python tools open source + plug-in. `Details below`_ + +.. __: http://pytools.codeplex.com +.. _details below: ms_visual_studio_011_ + * **Improved unicode support**. We closed many bugs related to unicode input. * **Python 3**. IPython now runs on Python 3.x. See :ref:`python3_011` for @@ -103,12 +110,6 @@ A quick summary of the major changes (see below for details): can have its attributes set either via files that now use real Python syntax or from the command-line. -* **Vim integration**. Vim can be configured to seamlessly control an IPython - kernel, see the files in :file:`docs/examples/vim` for the full details. - This work was done by Paul Ivanov, who prepared a nice `video - demonstration`__ of the features it provides. - -.. __: http://pirsquared.org/blog/2011/07/28/vim-ipython/ Authors and support ------------------- @@ -191,11 +192,14 @@ list). Github's pull requests are a fantastic mechanism for reviewing code and building a shared ownership of the project, and we are making enthusiastic use of it. -Note: this undercounts the number of issues closed in this development cycle, -since we only moved to github for issue tracking in May 2010, but we have no -way of collecting statistics on the number of issues closed in the old -Launchpad bug tracker prior to that. +.. Note:: + This undercounts the number of issues closed in this development cycle, + since we only moved to github for issue tracking in May 2010, but we have no + way of collecting statistics on the number of issues closed in the old + Launchpad bug tracker prior to that. + + .. _qtconsole_011: Qt Console @@ -250,9 +254,9 @@ reference docs. Refactoring ----------- -As of the 0.11 version of IPython, a signifiant portion of the core has been -refactored. This refactoring is founded on a number of new abstractions. -The main new classes that implement these abstractions are: +As of this release, a signifiant portion of IPython has been refactored. This +refactoring is founded on a number of new abstractions. The main new classes +that implement these abstractions are: * :class:`IPython.utils.traitlets.HasTraits`. * :class:`IPython.config.configurable.Configurable`. @@ -274,8 +278,8 @@ a leading '-', nor a space separating key from value. Flags exist, to set multiple values or boolean flags, and these are always prefixed with '--', and never take arguments. -ZMQ architecture ----------------- +ZeroMQ architecture +------------------- There is a new GUI framework for IPython, based on a client-server model in which multiple clients can communicate with one IPython kernel, using the @@ -331,10 +335,10 @@ Microsoft Visual Studio`__, as seen here: The Microsoft team developing this currently has a release candidate out using IPython 0.11. We will continue to collaborate with them to ensure that as they -approach full release time, the integration with IPython is as smooth as -possible. We'd like to thank Dino Viehland and Shahrokh Mortazavi for the work -they have done towards this feature, as well as Wenming Ye for his support of -our WinHPC features. +approach their final release date, the integration with IPython remains smooth. +We'd like to thank Dino Viehland and Shahrokh Mortazavi for the work they have +done towards this feature, as well as Wenming Ye for his support of our WinHPC +capabilities. .. __: http://pytools.codeplex.com