##// END OF EJS Templates
Switch protocol to https...
Matthias Bussonnier -
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -1,151 +1,151 b''
1 # encoding: utf-8
1 # encoding: utf-8
2 """
2 """
3 IPython: tools for interactive and parallel computing in Python.
3 IPython: tools for interactive and parallel computing in Python.
4
4
5 http://ipython.org
5 https://ipython.org
6 """
6 """
7 #-----------------------------------------------------------------------------
7 #-----------------------------------------------------------------------------
8 # Copyright (c) 2008-2011, IPython Development Team.
8 # Copyright (c) 2008-2011, IPython Development Team.
9 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
9 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
10 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
10 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
11 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
11 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
12 #
12 #
13 # Distributed under the terms of the Modified BSD License.
13 # Distributed under the terms of the Modified BSD License.
14 #
14 #
15 # The full license is in the file COPYING.txt, distributed with this software.
15 # The full license is in the file COPYING.txt, distributed with this software.
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17
17
18 #-----------------------------------------------------------------------------
18 #-----------------------------------------------------------------------------
19 # Imports
19 # Imports
20 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
21
21
22 import os
22 import os
23 import sys
23 import sys
24
24
25 #-----------------------------------------------------------------------------
25 #-----------------------------------------------------------------------------
26 # Setup everything
26 # Setup everything
27 #-----------------------------------------------------------------------------
27 #-----------------------------------------------------------------------------
28
28
29 # Don't forget to also update setup.py when this changes!
29 # Don't forget to also update setup.py when this changes!
30 if sys.version_info < (3,4):
30 if sys.version_info < (3,4):
31 raise ImportError(
31 raise ImportError(
32 """
32 """
33 IPython 7.0+ supports Python 3.4 and above.
33 IPython 7.0+ supports Python 3.4 and above.
34 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
34 When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
35 Python 3.3 was supported up to IPython 6.x.
35 Python 3.3 was supported up to IPython 6.x.
36
36
37 See IPython `README.rst` file for more information:
37 See IPython `README.rst` file for more information:
38
38
39 https://github.com/ipython/ipython/blob/master/README.rst
39 https://github.com/ipython/ipython/blob/master/README.rst
40
40
41 """)
41 """)
42
42
43 # Make it easy to import extensions - they are always directly on pythonpath.
43 # Make it easy to import extensions - they are always directly on pythonpath.
44 # Therefore, non-IPython modules can be added to extensions directory.
44 # Therefore, non-IPython modules can be added to extensions directory.
45 # This should probably be in ipapp.py.
45 # This should probably be in ipapp.py.
46 sys.path.append(os.path.join(os.path.dirname(__file__), "extensions"))
46 sys.path.append(os.path.join(os.path.dirname(__file__), "extensions"))
47
47
48 #-----------------------------------------------------------------------------
48 #-----------------------------------------------------------------------------
49 # Setup the top level names
49 # Setup the top level names
50 #-----------------------------------------------------------------------------
50 #-----------------------------------------------------------------------------
51
51
52 from .core.getipython import get_ipython
52 from .core.getipython import get_ipython
53 from .core import release
53 from .core import release
54 from .core.application import Application
54 from .core.application import Application
55 from .terminal.embed import embed
55 from .terminal.embed import embed
56
56
57 from .core.interactiveshell import InteractiveShell
57 from .core.interactiveshell import InteractiveShell
58 from .testing import test
58 from .testing import test
59 from .utils.sysinfo import sys_info
59 from .utils.sysinfo import sys_info
60 from .utils.frame import extract_module_locals
60 from .utils.frame import extract_module_locals
61
61
62 # Release data
62 # Release data
63 __author__ = '%s <%s>' % (release.author, release.author_email)
63 __author__ = '%s <%s>' % (release.author, release.author_email)
64 __license__ = release.license
64 __license__ = release.license
65 __version__ = release.version
65 __version__ = release.version
66 version_info = release.version_info
66 version_info = release.version_info
67
67
68 def embed_kernel(module=None, local_ns=None, **kwargs):
68 def embed_kernel(module=None, local_ns=None, **kwargs):
69 """Embed and start an IPython kernel in a given scope.
69 """Embed and start an IPython kernel in a given scope.
70
70
71 If you don't want the kernel to initialize the namespace
71 If you don't want the kernel to initialize the namespace
72 from the scope of the surrounding function,
72 from the scope of the surrounding function,
73 and/or you want to load full IPython configuration,
73 and/or you want to load full IPython configuration,
74 you probably want `IPython.start_kernel()` instead.
74 you probably want `IPython.start_kernel()` instead.
75
75
76 Parameters
76 Parameters
77 ----------
77 ----------
78 module : ModuleType, optional
78 module : ModuleType, optional
79 The module to load into IPython globals (default: caller)
79 The module to load into IPython globals (default: caller)
80 local_ns : dict, optional
80 local_ns : dict, optional
81 The namespace to load into IPython user namespace (default: caller)
81 The namespace to load into IPython user namespace (default: caller)
82
82
83 kwargs : various, optional
83 kwargs : various, optional
84 Further keyword args are relayed to the IPKernelApp constructor,
84 Further keyword args are relayed to the IPKernelApp constructor,
85 allowing configuration of the Kernel. Will only have an effect
85 allowing configuration of the Kernel. Will only have an effect
86 on the first embed_kernel call for a given process.
86 on the first embed_kernel call for a given process.
87 """
87 """
88
88
89 (caller_module, caller_locals) = extract_module_locals(1)
89 (caller_module, caller_locals) = extract_module_locals(1)
90 if module is None:
90 if module is None:
91 module = caller_module
91 module = caller_module
92 if local_ns is None:
92 if local_ns is None:
93 local_ns = caller_locals
93 local_ns = caller_locals
94
94
95 # Only import .zmq when we really need it
95 # Only import .zmq when we really need it
96 from ipykernel.embed import embed_kernel as real_embed_kernel
96 from ipykernel.embed import embed_kernel as real_embed_kernel
97 real_embed_kernel(module=module, local_ns=local_ns, **kwargs)
97 real_embed_kernel(module=module, local_ns=local_ns, **kwargs)
98
98
99 def start_ipython(argv=None, **kwargs):
99 def start_ipython(argv=None, **kwargs):
100 """Launch a normal IPython instance (as opposed to embedded)
100 """Launch a normal IPython instance (as opposed to embedded)
101
101
102 `IPython.embed()` puts a shell in a particular calling scope,
102 `IPython.embed()` puts a shell in a particular calling scope,
103 such as a function or method for debugging purposes,
103 such as a function or method for debugging purposes,
104 which is often not desirable.
104 which is often not desirable.
105
105
106 `start_ipython()` does full, regular IPython initialization,
106 `start_ipython()` does full, regular IPython initialization,
107 including loading startup files, configuration, etc.
107 including loading startup files, configuration, etc.
108 much of which is skipped by `embed()`.
108 much of which is skipped by `embed()`.
109
109
110 This is a public API method, and will survive implementation changes.
110 This is a public API method, and will survive implementation changes.
111
111
112 Parameters
112 Parameters
113 ----------
113 ----------
114
114
115 argv : list or None, optional
115 argv : list or None, optional
116 If unspecified or None, IPython will parse command-line options from sys.argv.
116 If unspecified or None, IPython will parse command-line options from sys.argv.
117 To prevent any command-line parsing, pass an empty list: `argv=[]`.
117 To prevent any command-line parsing, pass an empty list: `argv=[]`.
118 user_ns : dict, optional
118 user_ns : dict, optional
119 specify this dictionary to initialize the IPython user namespace with particular values.
119 specify this dictionary to initialize the IPython user namespace with particular values.
120 kwargs : various, optional
120 kwargs : various, optional
121 Any other kwargs will be passed to the Application constructor,
121 Any other kwargs will be passed to the Application constructor,
122 such as `config`.
122 such as `config`.
123 """
123 """
124 from IPython.terminal.ipapp import launch_new_instance
124 from IPython.terminal.ipapp import launch_new_instance
125 return launch_new_instance(argv=argv, **kwargs)
125 return launch_new_instance(argv=argv, **kwargs)
126
126
127 def start_kernel(argv=None, **kwargs):
127 def start_kernel(argv=None, **kwargs):
128 """Launch a normal IPython kernel instance (as opposed to embedded)
128 """Launch a normal IPython kernel instance (as opposed to embedded)
129
129
130 `IPython.embed_kernel()` puts a shell in a particular calling scope,
130 `IPython.embed_kernel()` puts a shell in a particular calling scope,
131 such as a function or method for debugging purposes,
131 such as a function or method for debugging purposes,
132 which is often not desirable.
132 which is often not desirable.
133
133
134 `start_kernel()` does full, regular IPython initialization,
134 `start_kernel()` does full, regular IPython initialization,
135 including loading startup files, configuration, etc.
135 including loading startup files, configuration, etc.
136 much of which is skipped by `embed()`.
136 much of which is skipped by `embed()`.
137
137
138 Parameters
138 Parameters
139 ----------
139 ----------
140
140
141 argv : list or None, optional
141 argv : list or None, optional
142 If unspecified or None, IPython will parse command-line options from sys.argv.
142 If unspecified or None, IPython will parse command-line options from sys.argv.
143 To prevent any command-line parsing, pass an empty list: `argv=[]`.
143 To prevent any command-line parsing, pass an empty list: `argv=[]`.
144 user_ns : dict, optional
144 user_ns : dict, optional
145 specify this dictionary to initialize the IPython user namespace with particular values.
145 specify this dictionary to initialize the IPython user namespace with particular values.
146 kwargs : various, optional
146 kwargs : various, optional
147 Any other kwargs will be passed to the Application constructor,
147 Any other kwargs will be passed to the Application constructor,
148 such as `config`.
148 such as `config`.
149 """
149 """
150 from IPython.kernel.zmq.kernelapp import launch_new_instance
150 from IPython.kernel.zmq.kernelapp import launch_new_instance
151 return launch_new_instance(argv=argv, **kwargs)
151 return launch_new_instance(argv=argv, **kwargs)
@@ -1,119 +1,119 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project."""
2 """Release data for the IPython project."""
3
3
4 #-----------------------------------------------------------------------------
4 #-----------------------------------------------------------------------------
5 # Copyright (c) 2008, IPython Development Team.
5 # Copyright (c) 2008, IPython Development Team.
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
9 #
9 #
10 # Distributed under the terms of the Modified BSD License.
10 # Distributed under the terms of the Modified BSD License.
11 #
11 #
12 # The full license is in the file COPYING.txt, distributed with this software.
12 # The full license is in the file COPYING.txt, distributed with this software.
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 # Name of the package for release purposes. This is the name which labels
15 # Name of the package for release purposes. This is the name which labels
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 name = 'ipython'
17 name = 'ipython'
18
18
19 # IPython version information. An empty _version_extra corresponds to a full
19 # IPython version information. An empty _version_extra corresponds to a full
20 # release. 'dev' as a _version_extra string means this is a development
20 # release. 'dev' as a _version_extra string means this is a development
21 # version
21 # version
22 _version_major = 7
22 _version_major = 7
23 _version_minor = 0
23 _version_minor = 0
24 _version_patch = 0
24 _version_patch = 0
25 _version_extra = '.dev'
25 _version_extra = '.dev'
26 # _version_extra = 'rc2'
26 # _version_extra = 'rc2'
27 # _version_extra = '' # Uncomment this for full releases
27 # _version_extra = '' # Uncomment this for full releases
28
28
29 # Construct full version string from these.
29 # Construct full version string from these.
30 _ver = [_version_major, _version_minor, _version_patch]
30 _ver = [_version_major, _version_minor, _version_patch]
31
31
32 __version__ = '.'.join(map(str, _ver))
32 __version__ = '.'.join(map(str, _ver))
33 if _version_extra:
33 if _version_extra:
34 __version__ = __version__ + _version_extra
34 __version__ = __version__ + _version_extra
35
35
36 version = __version__ # backwards compatibility name
36 version = __version__ # backwards compatibility name
37 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
37 version_info = (_version_major, _version_minor, _version_patch, _version_extra)
38
38
39 # Change this when incrementing the kernel protocol version
39 # Change this when incrementing the kernel protocol version
40 kernel_protocol_version_info = (5, 0)
40 kernel_protocol_version_info = (5, 0)
41 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
41 kernel_protocol_version = "%i.%i" % kernel_protocol_version_info
42
42
43 description = "IPython: Productive Interactive Computing"
43 description = "IPython: Productive Interactive Computing"
44
44
45 long_description = \
45 long_description = \
46 """
46 """
47 IPython provides a rich toolkit to help you make the most out of using Python
47 IPython provides a rich toolkit to help you make the most out of using Python
48 interactively. Its main components are:
48 interactively. Its main components are:
49
49
50 * A powerful interactive Python shell
50 * A powerful interactive Python shell
51 * A `Jupyter <http://jupyter.org/>`_ kernel to work with Python code in Jupyter
51 * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
52 notebooks and other interactive frontends.
52 notebooks and other interactive frontends.
53
53
54 The enhanced interactive Python shells have the following main features:
54 The enhanced interactive Python shells have the following main features:
55
55
56 * Comprehensive object introspection.
56 * Comprehensive object introspection.
57
57
58 * Input history, persistent across sessions.
58 * Input history, persistent across sessions.
59
59
60 * Caching of output results during a session with automatically generated
60 * Caching of output results during a session with automatically generated
61 references.
61 references.
62
62
63 * Extensible tab completion, with support by default for completion of python
63 * Extensible tab completion, with support by default for completion of python
64 variables and keywords, filenames and function keywords.
64 variables and keywords, filenames and function keywords.
65
65
66 * Extensible system of 'magic' commands for controlling the environment and
66 * Extensible system of 'magic' commands for controlling the environment and
67 performing many tasks related either to IPython or the operating system.
67 performing many tasks related either to IPython or the operating system.
68
68
69 * A rich configuration system with easy switching between different setups
69 * A rich configuration system with easy switching between different setups
70 (simpler than changing $PYTHONSTARTUP environment variables every time).
70 (simpler than changing $PYTHONSTARTUP environment variables every time).
71
71
72 * Session logging and reloading.
72 * Session logging and reloading.
73
73
74 * Extensible syntax processing for special purpose situations.
74 * Extensible syntax processing for special purpose situations.
75
75
76 * Access to the system shell with user-extensible alias system.
76 * Access to the system shell with user-extensible alias system.
77
77
78 * Easily embeddable in other Python programs and GUIs.
78 * Easily embeddable in other Python programs and GUIs.
79
79
80 * Integrated access to the pdb debugger and the Python profiler.
80 * Integrated access to the pdb debugger and the Python profiler.
81
81
82 The latest development version is always available from IPython's `GitHub
82 The latest development version is always available from IPython's `GitHub
83 site <http://github.com/ipython>`_.
83 site <http://github.com/ipython>`_.
84 """
84 """
85
85
86 license = 'BSD'
86 license = 'BSD'
87
87
88 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
88 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
89 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
89 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
90 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
90 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
91 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
91 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
92 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
92 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
93 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
93 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
94 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
94 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
95 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
95 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
96 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
96 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
97 }
97 }
98
98
99 author = 'The IPython Development Team'
99 author = 'The IPython Development Team'
100
100
101 author_email = 'ipython-dev@python.org'
101 author_email = 'ipython-dev@python.org'
102
102
103 url = 'https://ipython.org'
103 url = 'https://ipython.org'
104
104
105
105
106 platforms = ['Linux','Mac OSX','Windows']
106 platforms = ['Linux','Mac OSX','Windows']
107
107
108 keywords = ['Interactive','Interpreter','Shell', 'Embedding']
108 keywords = ['Interactive','Interpreter','Shell', 'Embedding']
109
109
110 classifiers = [
110 classifiers = [
111 'Framework :: IPython',
111 'Framework :: IPython',
112 'Intended Audience :: Developers',
112 'Intended Audience :: Developers',
113 'Intended Audience :: Science/Research',
113 'Intended Audience :: Science/Research',
114 'License :: OSI Approved :: BSD License',
114 'License :: OSI Approved :: BSD License',
115 'Programming Language :: Python',
115 'Programming Language :: Python',
116 'Programming Language :: Python :: 3',
116 'Programming Language :: Python :: 3',
117 'Programming Language :: Python :: 3 :: Only',
117 'Programming Language :: Python :: 3 :: Only',
118 'Topic :: System :: Shells'
118 'Topic :: System :: Shells'
119 ]
119 ]
@@ -1,341 +1,341 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Usage information for the main IPython applications.
2 """Usage information for the main IPython applications.
3 """
3 """
4 #-----------------------------------------------------------------------------
4 #-----------------------------------------------------------------------------
5 # Copyright (C) 2008-2011 The IPython Development Team
5 # Copyright (C) 2008-2011 The IPython Development Team
6 # Copyright (C) 2001-2007 Fernando Perez. <fperez@colorado.edu>
6 # Copyright (C) 2001-2007 Fernando Perez. <fperez@colorado.edu>
7 #
7 #
8 # Distributed under the terms of the BSD License. The full license is in
8 # Distributed under the terms of the BSD License. The full license is in
9 # the file COPYING, distributed as part of this software.
9 # the file COPYING, distributed as part of this software.
10 #-----------------------------------------------------------------------------
10 #-----------------------------------------------------------------------------
11
11
12 import sys
12 import sys
13 from IPython.core import release
13 from IPython.core import release
14
14
15 cl_usage = """\
15 cl_usage = """\
16 =========
16 =========
17 IPython
17 IPython
18 =========
18 =========
19
19
20 Tools for Interactive Computing in Python
20 Tools for Interactive Computing in Python
21 =========================================
21 =========================================
22
22
23 A Python shell with automatic history (input and output), dynamic object
23 A Python shell with automatic history (input and output), dynamic object
24 introspection, easier configuration, command completion, access to the
24 introspection, easier configuration, command completion, access to the
25 system shell and more. IPython can also be embedded in running programs.
25 system shell and more. IPython can also be embedded in running programs.
26
26
27
27
28 Usage
28 Usage
29
29
30 ipython [subcommand] [options] [-c cmd | -m mod | file] [--] [arg] ...
30 ipython [subcommand] [options] [-c cmd | -m mod | file] [--] [arg] ...
31
31
32 If invoked with no options, it executes the file and exits, passing the
32 If invoked with no options, it executes the file and exits, passing the
33 remaining arguments to the script, just as if you had specified the same
33 remaining arguments to the script, just as if you had specified the same
34 command with python. You may need to specify `--` before args to be passed
34 command with python. You may need to specify `--` before args to be passed
35 to the script, to prevent IPython from attempting to parse them. If you
35 to the script, to prevent IPython from attempting to parse them. If you
36 specify the option `-i` before the filename, it will enter an interactive
36 specify the option `-i` before the filename, it will enter an interactive
37 IPython session after running the script, rather than exiting. Files ending
37 IPython session after running the script, rather than exiting. Files ending
38 in .py will be treated as normal Python, but files ending in .ipy can
38 in .py will be treated as normal Python, but files ending in .ipy can
39 contain special IPython syntax (magic commands, shell expansions, etc.).
39 contain special IPython syntax (magic commands, shell expansions, etc.).
40
40
41 Almost all configuration in IPython is available via the command-line. Do
41 Almost all configuration in IPython is available via the command-line. Do
42 `ipython --help-all` to see all available options. For persistent
42 `ipython --help-all` to see all available options. For persistent
43 configuration, look into your `ipython_config.py` configuration file for
43 configuration, look into your `ipython_config.py` configuration file for
44 details.
44 details.
45
45
46 This file is typically installed in the `IPYTHONDIR` directory, and there
46 This file is typically installed in the `IPYTHONDIR` directory, and there
47 is a separate configuration directory for each profile. The default profile
47 is a separate configuration directory for each profile. The default profile
48 directory will be located in $IPYTHONDIR/profile_default. IPYTHONDIR
48 directory will be located in $IPYTHONDIR/profile_default. IPYTHONDIR
49 defaults to to `$HOME/.ipython`. For Windows users, $HOME resolves to
49 defaults to to `$HOME/.ipython`. For Windows users, $HOME resolves to
50 C:\\Users\\YourUserName in most instances.
50 C:\\Users\\YourUserName in most instances.
51
51
52 To initialize a profile with the default configuration file, do::
52 To initialize a profile with the default configuration file, do::
53
53
54 $> ipython profile create
54 $> ipython profile create
55
55
56 and start editing `IPYTHONDIR/profile_default/ipython_config.py`
56 and start editing `IPYTHONDIR/profile_default/ipython_config.py`
57
57
58 In IPython's documentation, we will refer to this directory as
58 In IPython's documentation, we will refer to this directory as
59 `IPYTHONDIR`, you can change its default location by creating an
59 `IPYTHONDIR`, you can change its default location by creating an
60 environment variable with this name and setting it to the desired path.
60 environment variable with this name and setting it to the desired path.
61
61
62 For more information, see the manual available in HTML and PDF in your
62 For more information, see the manual available in HTML and PDF in your
63 installation, or online at http://ipython.org/documentation.html.
63 installation, or online at https://ipython.org/documentation.html.
64 """
64 """
65
65
66 interactive_usage = """
66 interactive_usage = """
67 IPython -- An enhanced Interactive Python
67 IPython -- An enhanced Interactive Python
68 =========================================
68 =========================================
69
69
70 IPython offers a fully compatible replacement for the standard Python
70 IPython offers a fully compatible replacement for the standard Python
71 interpreter, with convenient shell features, special commands, command
71 interpreter, with convenient shell features, special commands, command
72 history mechanism and output results caching.
72 history mechanism and output results caching.
73
73
74 At your system command line, type 'ipython -h' to see the command line
74 At your system command line, type 'ipython -h' to see the command line
75 options available. This document only describes interactive features.
75 options available. This document only describes interactive features.
76
76
77 GETTING HELP
77 GETTING HELP
78 ------------
78 ------------
79
79
80 Within IPython you have various way to access help:
80 Within IPython you have various way to access help:
81
81
82 ? -> Introduction and overview of IPython's features (this screen).
82 ? -> Introduction and overview of IPython's features (this screen).
83 object? -> Details about 'object'.
83 object? -> Details about 'object'.
84 object?? -> More detailed, verbose information about 'object'.
84 object?? -> More detailed, verbose information about 'object'.
85 %quickref -> Quick reference of all IPython specific syntax and magics.
85 %quickref -> Quick reference of all IPython specific syntax and magics.
86 help -> Access Python's own help system.
86 help -> Access Python's own help system.
87
87
88 If you are in terminal IPython you can quit this screen by pressing `q`.
88 If you are in terminal IPython you can quit this screen by pressing `q`.
89
89
90
90
91 MAIN FEATURES
91 MAIN FEATURES
92 -------------
92 -------------
93
93
94 * Access to the standard Python help with object docstrings and the Python
94 * Access to the standard Python help with object docstrings and the Python
95 manuals. Simply type 'help' (no quotes) to invoke it.
95 manuals. Simply type 'help' (no quotes) to invoke it.
96
96
97 * Magic commands: type %magic for information on the magic subsystem.
97 * Magic commands: type %magic for information on the magic subsystem.
98
98
99 * System command aliases, via the %alias command or the configuration file(s).
99 * System command aliases, via the %alias command or the configuration file(s).
100
100
101 * Dynamic object information:
101 * Dynamic object information:
102
102
103 Typing ?word or word? prints detailed information about an object. Certain
103 Typing ?word or word? prints detailed information about an object. Certain
104 long strings (code, etc.) get snipped in the center for brevity.
104 long strings (code, etc.) get snipped in the center for brevity.
105
105
106 Typing ??word or word?? gives access to the full information without
106 Typing ??word or word?? gives access to the full information without
107 snipping long strings. Strings that are longer than the screen are printed
107 snipping long strings. Strings that are longer than the screen are printed
108 through the less pager.
108 through the less pager.
109
109
110 The ?/?? system gives access to the full source code for any object (if
110 The ?/?? system gives access to the full source code for any object (if
111 available), shows function prototypes and other useful information.
111 available), shows function prototypes and other useful information.
112
112
113 If you just want to see an object's docstring, type '%pdoc object' (without
113 If you just want to see an object's docstring, type '%pdoc object' (without
114 quotes, and without % if you have automagic on).
114 quotes, and without % if you have automagic on).
115
115
116 * Tab completion in the local namespace:
116 * Tab completion in the local namespace:
117
117
118 At any time, hitting tab will complete any available python commands or
118 At any time, hitting tab will complete any available python commands or
119 variable names, and show you a list of the possible completions if there's
119 variable names, and show you a list of the possible completions if there's
120 no unambiguous one. It will also complete filenames in the current directory.
120 no unambiguous one. It will also complete filenames in the current directory.
121
121
122 * Search previous command history in multiple ways:
122 * Search previous command history in multiple ways:
123
123
124 - Start typing, and then use arrow keys up/down or (Ctrl-p/Ctrl-n) to search
124 - Start typing, and then use arrow keys up/down or (Ctrl-p/Ctrl-n) to search
125 through the history items that match what you've typed so far.
125 through the history items that match what you've typed so far.
126
126
127 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
127 - Hit Ctrl-r: opens a search prompt. Begin typing and the system searches
128 your history for lines that match what you've typed so far, completing as
128 your history for lines that match what you've typed so far, completing as
129 much as it can.
129 much as it can.
130
130
131 - %hist: search history by index.
131 - %hist: search history by index.
132
132
133 * Persistent command history across sessions.
133 * Persistent command history across sessions.
134
134
135 * Logging of input with the ability to save and restore a working session.
135 * Logging of input with the ability to save and restore a working session.
136
136
137 * System shell with !. Typing !ls will run 'ls' in the current directory.
137 * System shell with !. Typing !ls will run 'ls' in the current directory.
138
138
139 * The reload command does a 'deep' reload of a module: changes made to the
139 * The reload command does a 'deep' reload of a module: changes made to the
140 module since you imported will actually be available without having to exit.
140 module since you imported will actually be available without having to exit.
141
141
142 * Verbose and colored exception traceback printouts. See the magic xmode and
142 * Verbose and colored exception traceback printouts. See the magic xmode and
143 xcolor functions for details (just type %magic).
143 xcolor functions for details (just type %magic).
144
144
145 * Input caching system:
145 * Input caching system:
146
146
147 IPython offers numbered prompts (In/Out) with input and output caching. All
147 IPython offers numbered prompts (In/Out) with input and output caching. All
148 input is saved and can be retrieved as variables (besides the usual arrow
148 input is saved and can be retrieved as variables (besides the usual arrow
149 key recall).
149 key recall).
150
150
151 The following GLOBAL variables always exist (so don't overwrite them!):
151 The following GLOBAL variables always exist (so don't overwrite them!):
152 _i: stores previous input.
152 _i: stores previous input.
153 _ii: next previous.
153 _ii: next previous.
154 _iii: next-next previous.
154 _iii: next-next previous.
155 _ih : a list of all input _ih[n] is the input from line n.
155 _ih : a list of all input _ih[n] is the input from line n.
156
156
157 Additionally, global variables named _i<n> are dynamically created (<n>
157 Additionally, global variables named _i<n> are dynamically created (<n>
158 being the prompt counter), such that _i<n> == _ih[<n>]
158 being the prompt counter), such that _i<n> == _ih[<n>]
159
159
160 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
160 For example, what you typed at prompt 14 is available as _i14 and _ih[14].
161
161
162 You can create macros which contain multiple input lines from this history,
162 You can create macros which contain multiple input lines from this history,
163 for later re-execution, with the %macro function.
163 for later re-execution, with the %macro function.
164
164
165 The history function %hist allows you to see any part of your input history
165 The history function %hist allows you to see any part of your input history
166 by printing a range of the _i variables. Note that inputs which contain
166 by printing a range of the _i variables. Note that inputs which contain
167 magic functions (%) appear in the history with a prepended comment. This is
167 magic functions (%) appear in the history with a prepended comment. This is
168 because they aren't really valid Python code, so you can't exec them.
168 because they aren't really valid Python code, so you can't exec them.
169
169
170 * Output caching system:
170 * Output caching system:
171
171
172 For output that is returned from actions, a system similar to the input
172 For output that is returned from actions, a system similar to the input
173 cache exists but using _ instead of _i. Only actions that produce a result
173 cache exists but using _ instead of _i. Only actions that produce a result
174 (NOT assignments, for example) are cached. If you are familiar with
174 (NOT assignments, for example) are cached. If you are familiar with
175 Mathematica, IPython's _ variables behave exactly like Mathematica's %
175 Mathematica, IPython's _ variables behave exactly like Mathematica's %
176 variables.
176 variables.
177
177
178 The following GLOBAL variables always exist (so don't overwrite them!):
178 The following GLOBAL variables always exist (so don't overwrite them!):
179 _ (one underscore): previous output.
179 _ (one underscore): previous output.
180 __ (two underscores): next previous.
180 __ (two underscores): next previous.
181 ___ (three underscores): next-next previous.
181 ___ (three underscores): next-next previous.
182
182
183 Global variables named _<n> are dynamically created (<n> being the prompt
183 Global variables named _<n> are dynamically created (<n> being the prompt
184 counter), such that the result of output <n> is always available as _<n>.
184 counter), such that the result of output <n> is always available as _<n>.
185
185
186 Finally, a global dictionary named _oh exists with entries for all lines
186 Finally, a global dictionary named _oh exists with entries for all lines
187 which generated output.
187 which generated output.
188
188
189 * Directory history:
189 * Directory history:
190
190
191 Your history of visited directories is kept in the global list _dh, and the
191 Your history of visited directories is kept in the global list _dh, and the
192 magic %cd command can be used to go to any entry in that list.
192 magic %cd command can be used to go to any entry in that list.
193
193
194 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
194 * Auto-parentheses and auto-quotes (adapted from Nathan Gray's LazyPython)
195
195
196 1. Auto-parentheses
196 1. Auto-parentheses
197
197
198 Callable objects (i.e. functions, methods, etc) can be invoked like
198 Callable objects (i.e. functions, methods, etc) can be invoked like
199 this (notice the commas between the arguments)::
199 this (notice the commas between the arguments)::
200
200
201 In [1]: callable_ob arg1, arg2, arg3
201 In [1]: callable_ob arg1, arg2, arg3
202
202
203 and the input will be translated to this::
203 and the input will be translated to this::
204
204
205 callable_ob(arg1, arg2, arg3)
205 callable_ob(arg1, arg2, arg3)
206
206
207 This feature is off by default (in rare cases it can produce
207 This feature is off by default (in rare cases it can produce
208 undesirable side-effects), but you can activate it at the command-line
208 undesirable side-effects), but you can activate it at the command-line
209 by starting IPython with `--autocall 1`, set it permanently in your
209 by starting IPython with `--autocall 1`, set it permanently in your
210 configuration file, or turn on at runtime with `%autocall 1`.
210 configuration file, or turn on at runtime with `%autocall 1`.
211
211
212 You can force auto-parentheses by using '/' as the first character
212 You can force auto-parentheses by using '/' as the first character
213 of a line. For example::
213 of a line. For example::
214
214
215 In [1]: /globals # becomes 'globals()'
215 In [1]: /globals # becomes 'globals()'
216
216
217 Note that the '/' MUST be the first character on the line! This
217 Note that the '/' MUST be the first character on the line! This
218 won't work::
218 won't work::
219
219
220 In [2]: print /globals # syntax error
220 In [2]: print /globals # syntax error
221
221
222 In most cases the automatic algorithm should work, so you should
222 In most cases the automatic algorithm should work, so you should
223 rarely need to explicitly invoke /. One notable exception is if you
223 rarely need to explicitly invoke /. One notable exception is if you
224 are trying to call a function with a list of tuples as arguments (the
224 are trying to call a function with a list of tuples as arguments (the
225 parenthesis will confuse IPython)::
225 parenthesis will confuse IPython)::
226
226
227 In [1]: zip (1,2,3),(4,5,6) # won't work
227 In [1]: zip (1,2,3),(4,5,6) # won't work
228
228
229 but this will work::
229 but this will work::
230
230
231 In [2]: /zip (1,2,3),(4,5,6)
231 In [2]: /zip (1,2,3),(4,5,6)
232 ------> zip ((1,2,3),(4,5,6))
232 ------> zip ((1,2,3),(4,5,6))
233 Out[2]= [(1, 4), (2, 5), (3, 6)]
233 Out[2]= [(1, 4), (2, 5), (3, 6)]
234
234
235 IPython tells you that it has altered your command line by
235 IPython tells you that it has altered your command line by
236 displaying the new command line preceded by -->. e.g.::
236 displaying the new command line preceded by -->. e.g.::
237
237
238 In [18]: callable list
238 In [18]: callable list
239 -------> callable (list)
239 -------> callable (list)
240
240
241 2. Auto-Quoting
241 2. Auto-Quoting
242
242
243 You can force auto-quoting of a function's arguments by using ',' as
243 You can force auto-quoting of a function's arguments by using ',' as
244 the first character of a line. For example::
244 the first character of a line. For example::
245
245
246 In [1]: ,my_function /home/me # becomes my_function("/home/me")
246 In [1]: ,my_function /home/me # becomes my_function("/home/me")
247
247
248 If you use ';' instead, the whole argument is quoted as a single
248 If you use ';' instead, the whole argument is quoted as a single
249 string (while ',' splits on whitespace)::
249 string (while ',' splits on whitespace)::
250
250
251 In [2]: ,my_function a b c # becomes my_function("a","b","c")
251 In [2]: ,my_function a b c # becomes my_function("a","b","c")
252 In [3]: ;my_function a b c # becomes my_function("a b c")
252 In [3]: ;my_function a b c # becomes my_function("a b c")
253
253
254 Note that the ',' MUST be the first character on the line! This
254 Note that the ',' MUST be the first character on the line! This
255 won't work::
255 won't work::
256
256
257 In [4]: x = ,my_function /home/me # syntax error
257 In [4]: x = ,my_function /home/me # syntax error
258 """
258 """
259
259
260 interactive_usage_min = """\
260 interactive_usage_min = """\
261 An enhanced console for Python.
261 An enhanced console for Python.
262 Some of its features are:
262 Some of its features are:
263 - Tab completion in the local namespace.
263 - Tab completion in the local namespace.
264 - Logging of input, see command-line options.
264 - Logging of input, see command-line options.
265 - System shell escape via ! , eg !ls.
265 - System shell escape via ! , eg !ls.
266 - Magic commands, starting with a % (like %ls, %pwd, %cd, etc.)
266 - Magic commands, starting with a % (like %ls, %pwd, %cd, etc.)
267 - Keeps track of locally defined variables via %who, %whos.
267 - Keeps track of locally defined variables via %who, %whos.
268 - Show object information with a ? eg ?x or x? (use ?? for more info).
268 - Show object information with a ? eg ?x or x? (use ?? for more info).
269 """
269 """
270
270
271 quick_reference = r"""
271 quick_reference = r"""
272 IPython -- An enhanced Interactive Python - Quick Reference Card
272 IPython -- An enhanced Interactive Python - Quick Reference Card
273 ================================================================
273 ================================================================
274
274
275 obj?, obj?? : Get help, or more help for object (also works as
275 obj?, obj?? : Get help, or more help for object (also works as
276 ?obj, ??obj).
276 ?obj, ??obj).
277 ?foo.*abc* : List names in 'foo' containing 'abc' in them.
277 ?foo.*abc* : List names in 'foo' containing 'abc' in them.
278 %magic : Information about IPython's 'magic' % functions.
278 %magic : Information about IPython's 'magic' % functions.
279
279
280 Magic functions are prefixed by % or %%, and typically take their arguments
280 Magic functions are prefixed by % or %%, and typically take their arguments
281 without parentheses, quotes or even commas for convenience. Line magics take a
281 without parentheses, quotes or even commas for convenience. Line magics take a
282 single % and cell magics are prefixed with two %%.
282 single % and cell magics are prefixed with two %%.
283
283
284 Example magic function calls:
284 Example magic function calls:
285
285
286 %alias d ls -F : 'd' is now an alias for 'ls -F'
286 %alias d ls -F : 'd' is now an alias for 'ls -F'
287 alias d ls -F : Works if 'alias' not a python name
287 alias d ls -F : Works if 'alias' not a python name
288 alist = %alias : Get list of aliases to 'alist'
288 alist = %alias : Get list of aliases to 'alist'
289 cd /usr/share : Obvious. cd -<tab> to choose from visited dirs.
289 cd /usr/share : Obvious. cd -<tab> to choose from visited dirs.
290 %cd?? : See help AND source for magic %cd
290 %cd?? : See help AND source for magic %cd
291 %timeit x=10 : time the 'x=10' statement with high precision.
291 %timeit x=10 : time the 'x=10' statement with high precision.
292 %%timeit x=2**100
292 %%timeit x=2**100
293 x**100 : time 'x**100' with a setup of 'x=2**100'; setup code is not
293 x**100 : time 'x**100' with a setup of 'x=2**100'; setup code is not
294 counted. This is an example of a cell magic.
294 counted. This is an example of a cell magic.
295
295
296 System commands:
296 System commands:
297
297
298 !cp a.txt b/ : System command escape, calls os.system()
298 !cp a.txt b/ : System command escape, calls os.system()
299 cp a.txt b/ : after %rehashx, most system commands work without !
299 cp a.txt b/ : after %rehashx, most system commands work without !
300 cp ${f}.txt $bar : Variable expansion in magics and system commands
300 cp ${f}.txt $bar : Variable expansion in magics and system commands
301 files = !ls /usr : Capture system command output
301 files = !ls /usr : Capture system command output
302 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
302 files.s, files.l, files.n: "a b c", ['a','b','c'], 'a\nb\nc'
303
303
304 History:
304 History:
305
305
306 _i, _ii, _iii : Previous, next previous, next next previous input
306 _i, _ii, _iii : Previous, next previous, next next previous input
307 _i4, _ih[2:5] : Input history line 4, lines 2-4
307 _i4, _ih[2:5] : Input history line 4, lines 2-4
308 exec _i81 : Execute input history line #81 again
308 exec _i81 : Execute input history line #81 again
309 %rep 81 : Edit input history line #81
309 %rep 81 : Edit input history line #81
310 _, __, ___ : previous, next previous, next next previous output
310 _, __, ___ : previous, next previous, next next previous output
311 _dh : Directory history
311 _dh : Directory history
312 _oh : Output history
312 _oh : Output history
313 %hist : Command history of current session.
313 %hist : Command history of current session.
314 %hist -g foo : Search command history of (almost) all sessions for 'foo'.
314 %hist -g foo : Search command history of (almost) all sessions for 'foo'.
315 %hist -g : Command history of (almost) all sessions.
315 %hist -g : Command history of (almost) all sessions.
316 %hist 1/2-8 : Command history containing lines 2-8 of session 1.
316 %hist 1/2-8 : Command history containing lines 2-8 of session 1.
317 %hist 1/ ~2/ : Command history of session 1 and 2 sessions before current.
317 %hist 1/ ~2/ : Command history of session 1 and 2 sessions before current.
318 %hist ~8/1-~6/5 : Command history from line 1 of 8 sessions ago to
318 %hist ~8/1-~6/5 : Command history from line 1 of 8 sessions ago to
319 line 5 of 6 sessions ago.
319 line 5 of 6 sessions ago.
320 %edit 0/ : Open editor to execute code with history of current session.
320 %edit 0/ : Open editor to execute code with history of current session.
321
321
322 Autocall:
322 Autocall:
323
323
324 f 1,2 : f(1,2) # Off by default, enable with %autocall magic.
324 f 1,2 : f(1,2) # Off by default, enable with %autocall magic.
325 /f 1,2 : f(1,2) (forced autoparen)
325 /f 1,2 : f(1,2) (forced autoparen)
326 ,f 1 2 : f("1","2")
326 ,f 1 2 : f("1","2")
327 ;f 1 2 : f("1 2")
327 ;f 1 2 : f("1 2")
328
328
329 Remember: TAB completion works in many contexts, not just file names
329 Remember: TAB completion works in many contexts, not just file names
330 or python names.
330 or python names.
331
331
332 The following magic functions are currently available:
332 The following magic functions are currently available:
333
333
334 """
334 """
335
335
336 default_banner_parts = ["Python %s\n"%sys.version.split("\n")[0],
336 default_banner_parts = ["Python %s\n"%sys.version.split("\n")[0],
337 "Type 'copyright', 'credits' or 'license' for more information\n" ,
337 "Type 'copyright', 'credits' or 'license' for more information\n" ,
338 "IPython {version} -- An enhanced Interactive Python. Type '?' for help.\n".format(version=release.version),
338 "IPython {version} -- An enhanced Interactive Python. Type '?' for help.\n".format(version=release.version),
339 ]
339 ]
340
340
341 default_banner = ''.join(default_banner_parts)
341 default_banner = ''.join(default_banner_parts)
@@ -1,111 +1,111 b''
1 .. image:: https://codecov.io/github/ipython/ipython/coverage.svg?branch=master
1 .. image:: https://codecov.io/github/ipython/ipython/coverage.svg?branch=master
2 :target: https://codecov.io/github/ipython/ipython?branch=master
2 :target: https://codecov.io/github/ipython/ipython?branch=master
3
3
4 .. image:: https://img.shields.io/pypi/v/IPython.svg
4 .. image:: https://img.shields.io/pypi/v/IPython.svg
5 :target: https://pypi.python.org/pypi/ipython
5 :target: https://pypi.python.org/pypi/ipython
6
6
7 .. image:: https://img.shields.io/travis/ipython/ipython.svg
7 .. image:: https://img.shields.io/travis/ipython/ipython.svg
8 :target: https://travis-ci.org/ipython/ipython
8 :target: https://travis-ci.org/ipython/ipython
9
9
10 .. image:: https://www.codetriage.com/ipython/ipython/badges/users.svg
10 .. image:: https://www.codetriage.com/ipython/ipython/badges/users.svg
11 :target: https://www.codetriage.com/ipython/ipython/
11 :target: https://www.codetriage.com/ipython/ipython/
12
12
13 ===========================================
13 ===========================================
14 IPython: Productive Interactive Computing
14 IPython: Productive Interactive Computing
15 ===========================================
15 ===========================================
16
16
17 Overview
17 Overview
18 ========
18 ========
19
19
20 Welcome to IPython. Our full documentation is available on `ipython.readthedocs.io
20 Welcome to IPython. Our full documentation is available on `ipython.readthedocs.io
21 <https://ipython.readthedocs.io/en/stable/>`_ and contains information on how to install, use and
21 <https://ipython.readthedocs.io/en/stable/>`_ and contains information on how to install, use and
22 contribute to the project.
22 contribute to the project.
23
23
24 **IPython versions and Python Support**
24 **IPython versions and Python Support**
25
25
26 **IPython 7.0** requires Python version 3.4 and above.
26 **IPython 7.0** requires Python version 3.4 and above.
27
27
28 **IPython 6.x** requires Python version 3.3 and above.
28 **IPython 6.x** requires Python version 3.3 and above.
29
29
30 **IPython 5.x LTS** is the compatible release for Python 2.7.
30 **IPython 5.x LTS** is the compatible release for Python 2.7.
31 If you require Python 2 support, you **must** use IPython 5.x LTS. Please
31 If you require Python 2 support, you **must** use IPython 5.x LTS. Please
32 update your project configurations and requirements as necessary.
32 update your project configurations and requirements as necessary.
33
33
34
34
35 The Notebook, Qt console and a number of other pieces are now parts of *Jupyter*.
35 The Notebook, Qt console and a number of other pieces are now parts of *Jupyter*.
36 See the `Jupyter installation docs <https://jupyter.readthedocs.io/en/latest/install.html>`__
36 See the `Jupyter installation docs <https://jupyter.readthedocs.io/en/latest/install.html>`__
37 if you want to use these.
37 if you want to use these.
38
38
39
39
40
40
41
41
42 Development and Instant running
42 Development and Instant running
43 ===============================
43 ===============================
44
44
45 You can find the latest version of the development documentation on `readthedocs
45 You can find the latest version of the development documentation on `readthedocs
46 <https://ipython.readthedocs.io/en/latest/>`_.
46 <https://ipython.readthedocs.io/en/latest/>`_.
47
47
48 You can run IPython from this directory without even installing it system-wide
48 You can run IPython from this directory without even installing it system-wide
49 by typing at the terminal::
49 by typing at the terminal::
50
50
51 $ python -m IPython
51 $ python -m IPython
52
52
53 Or see the `development installation docs
53 Or see the `development installation docs
54 <https://ipython.readthedocs.io/en/latest/install/install.html#installing-the-development-version>`_
54 <https://ipython.readthedocs.io/en/latest/install/install.html#installing-the-development-version>`_
55 for the latest revision on read the docs.
55 for the latest revision on read the docs.
56
56
57 Documentation and installation instructions for older version of IPython can be
57 Documentation and installation instructions for older version of IPython can be
58 found on the `IPython website <http://ipython.org/documentation.html>`_
58 found on the `IPython website <https://ipython.org/documentation.html>`_
59
59
60
60
61
61
62 IPython requires Python version 3 or above
62 IPython requires Python version 3 or above
63 ==========================================
63 ==========================================
64
64
65 Starting with version 6.0, IPython does not support Python 2.7, 3.0, 3.1, or
65 Starting with version 6.0, IPython does not support Python 2.7, 3.0, 3.1, or
66 3.2.
66 3.2.
67
67
68 For a version compatible with Python 2.7, please install the 5.x LTS Long Term
68 For a version compatible with Python 2.7, please install the 5.x LTS Long Term
69 Support version.
69 Support version.
70
70
71 If you are encountering this error message you are likely trying to install or
71 If you are encountering this error message you are likely trying to install or
72 use IPython from source. You need to checkout the remote 5.x branch. If you are
72 use IPython from source. You need to checkout the remote 5.x branch. If you are
73 using git the following should work::
73 using git the following should work::
74
74
75 $ git fetch origin
75 $ git fetch origin
76 $ git checkout 5.x
76 $ git checkout 5.x
77
77
78 If you encounter this error message with a regular install of IPython, then you
78 If you encounter this error message with a regular install of IPython, then you
79 likely need to update your package manager, for example if you are using `pip`
79 likely need to update your package manager, for example if you are using `pip`
80 check the version of pip with::
80 check the version of pip with::
81
81
82 $ pip --version
82 $ pip --version
83
83
84 You will need to update pip to the version 9.0.1 or greater. If you are not using
84 You will need to update pip to the version 9.0.1 or greater. If you are not using
85 pip, please inquiry with the maintainers of the package for your package
85 pip, please inquiry with the maintainers of the package for your package
86 manager.
86 manager.
87
87
88 For more information see one of our blog posts:
88 For more information see one of our blog posts:
89
89
90 http://blog.jupyter.org/2016/07/08/ipython-5-0-released/
90 https://blog.jupyter.org/2016/07/08/ipython-5-0-released/
91
91
92 As well as the following Pull-Request for discussion:
92 As well as the following Pull-Request for discussion:
93
93
94 https://github.com/ipython/ipython/pull/9900
94 https://github.com/ipython/ipython/pull/9900
95
95
96 This error does also occur if you are invoking ``setup.py`` directly – which you
96 This error does also occur if you are invoking ``setup.py`` directly – which you
97 should not – or are using ``easy_install`` If this is the case, use ``pip
97 should not – or are using ``easy_install`` If this is the case, use ``pip
98 install .`` (instead of ``setup.py install`` , and ``pip install -e .`` instead
98 install .`` (instead of ``setup.py install`` , and ``pip install -e .`` instead
99 of ``setup.py develop`` If you are depending on IPython as a dependency you may
99 of ``setup.py develop`` If you are depending on IPython as a dependency you may
100 also want to have a conditional dependency on IPython depending on the Python
100 also want to have a conditional dependency on IPython depending on the Python
101 version::
101 version::
102
102
103 install_req = ['ipython']
103 install_req = ['ipython']
104 if sys.version_info[0] < 3 and 'bdist_wheel' not in sys.argv:
104 if sys.version_info[0] < 3 and 'bdist_wheel' not in sys.argv:
105 install_req.remove('ipython')
105 install_req.remove('ipython')
106 install_req.append('ipython<6')
106 install_req.append('ipython<6')
107
107
108 setup(
108 setup(
109 ...
109 ...
110 install_requires=install_req
110 install_requires=install_req
111 )
111 )
@@ -1,118 +1,118 b''
1 .. _introduction:
1 .. _introduction:
2
2
3 =====================
3 =====================
4 IPython Documentation
4 IPython Documentation
5 =====================
5 =====================
6
6
7 .. only:: html
7 .. only:: html
8
8
9 :Release: |release|
9 :Release: |release|
10 :Date: |today|
10 :Date: |today|
11
11
12 Welcome to the official IPython documentation
12 Welcome to the official IPython documentation
13
13
14 IPython provides a rich toolkit to help you make the most of using Python
14 IPython provides a rich toolkit to help you make the most of using Python
15 interactively. Its main components are:
15 interactively. Its main components are:
16
16
17 * A powerful interactive Python shell
17 * A powerful interactive Python shell
18
18
19
19
20 .. image:: /_images/ipython-6-screenshot.png
20 .. image:: /_images/ipython-6-screenshot.png
21 :alt: Screenshot of IPython 6.0
21 :alt: Screenshot of IPython 6.0
22 :align: center
22 :align: center
23
23
24
24
25 * A `Jupyter <http://jupyter.org/>`_ kernel to work with Python code in Jupyter
25 * A `Jupyter <https://jupyter.org/>`_ kernel to work with Python code in Jupyter
26 notebooks and other interactive frontends.
26 notebooks and other interactive frontends.
27
27
28 The enhanced interactive Python shells and kernel have the following main
28 The enhanced interactive Python shells and kernel have the following main
29 features:
29 features:
30
30
31 * Comprehensive object introspection.
31 * Comprehensive object introspection.
32
32
33 * Input history, persistent across sessions.
33 * Input history, persistent across sessions.
34
34
35 * Caching of output results during a session with automatically generated
35 * Caching of output results during a session with automatically generated
36 references.
36 references.
37
37
38 * Extensible tab completion, with support by default for completion of python
38 * Extensible tab completion, with support by default for completion of python
39 variables and keywords, filenames and function keywords.
39 variables and keywords, filenames and function keywords.
40
40
41 * Extensible system of 'magic' commands for controlling the environment and
41 * Extensible system of 'magic' commands for controlling the environment and
42 performing many tasks related to IPython or the operating system.
42 performing many tasks related to IPython or the operating system.
43
43
44 * A rich configuration system with easy switching between different setups
44 * A rich configuration system with easy switching between different setups
45 (simpler than changing ``$PYTHONSTARTUP`` environment variables every time).
45 (simpler than changing ``$PYTHONSTARTUP`` environment variables every time).
46
46
47 * Session logging and reloading.
47 * Session logging and reloading.
48
48
49 * Extensible syntax processing for special purpose situations.
49 * Extensible syntax processing for special purpose situations.
50
50
51 * Access to the system shell with user-extensible alias system.
51 * Access to the system shell with user-extensible alias system.
52
52
53 * Easily embeddable in other Python programs and GUIs.
53 * Easily embeddable in other Python programs and GUIs.
54
54
55 * Integrated access to the pdb debugger and the Python profiler.
55 * Integrated access to the pdb debugger and the Python profiler.
56
56
57
57
58 The Command line interface inherits the above functionality and adds
58 The Command line interface inherits the above functionality and adds
59
59
60 * real multi-line editing thanks to `prompt_toolkit <http://python-prompt-toolkit.readthedocs.io/en/stable/>`_.
60 * real multi-line editing thanks to `prompt_toolkit <http://python-prompt-toolkit.readthedocs.io/en/stable/>`_.
61
61
62 * syntax highlighting as you type
62 * syntax highlighting as you type
63
63
64 * integration with command line editor for a better workflow.
64 * integration with command line editor for a better workflow.
65
65
66 The kernel also has its share of features. When used with a compatible frontend,
66 The kernel also has its share of features. When used with a compatible frontend,
67 it allows:
67 it allows:
68
68
69 * the object to create a rich display of Html, Images, Latex, Sound and
69 * the object to create a rich display of Html, Images, Latex, Sound and
70 Video.
70 Video.
71
71
72 * interactive widgets with the use of the `ipywidgets <http://ipywidgets.readthedocs.io/en/stable/>`_ package.
72 * interactive widgets with the use of the `ipywidgets <http://ipywidgets.readthedocs.io/en/stable/>`_ package.
73
73
74
74
75 This documentation will walk you through most of the features of the IPython
75 This documentation will walk you through most of the features of the IPython
76 command line and kernel, as well as describe the internal mechanisms in order
76 command line and kernel, as well as describe the internal mechanisms in order
77 to improve your Python workflow.
77 to improve your Python workflow.
78
78
79 You can find the table of content for this documentation in the left
79 You can find the table of content for this documentation in the left
80 sidebar, allowing you to come back to previous sections or skip ahead, if needed.
80 sidebar, allowing you to come back to previous sections or skip ahead, if needed.
81
81
82
82
83 The latest development version is always available from IPython's `GitHub
83 The latest development version is always available from IPython's `GitHub
84 repository <http://github.com/ipython/ipython>`_.
84 repository <http://github.com/ipython/ipython>`_.
85
85
86
86
87
87
88
88
89 .. toctree::
89 .. toctree::
90 :maxdepth: 1
90 :maxdepth: 1
91 :hidden:
91 :hidden:
92
92
93 self
93 self
94 overview
94 overview
95 whatsnew/index
95 whatsnew/index
96 install/index
96 install/index
97 interactive/index
97 interactive/index
98 config/index
98 config/index
99 development/index
99 development/index
100 coredev/index
100 coredev/index
101 api/index
101 api/index
102 sphinxext
102 sphinxext
103 about/index
103 about/index
104
104
105 .. seealso::
105 .. seealso::
106
106
107 `Jupyter documentation <http://jupyter.readthedocs.io/en/latest/>`__
107 `Jupyter documentation <http://jupyter.readthedocs.io/en/latest/>`__
108 The Jupyter documentation provides information about the Notebook code and other Jupyter sub-projects.
108 The Jupyter documentation provides information about the Notebook code and other Jupyter sub-projects.
109 `ipyparallel documentation <http://ipyparallel.readthedocs.io/en/latest/>`__
109 `ipyparallel documentation <http://ipyparallel.readthedocs.io/en/latest/>`__
110 Formerly ``IPython.parallel``.
110 Formerly ``IPython.parallel``.
111
111
112
112
113 .. only:: html
113 .. only:: html
114
114
115 * :ref:`genindex`
115 * :ref:`genindex`
116 * :ref:`modindex`
116 * :ref:`modindex`
117 * :ref:`search`
117 * :ref:`search`
118
118
@@ -1,144 +1,144 b''
1 .. _install:
1 .. _install:
2
2
3 Installing IPython
3 Installing IPython
4 ==================
4 ==================
5
5
6
6
7 IPython 6 requires Python ≥ 3.3. IPython 5.x can be installed on Python 2.
7 IPython 6 requires Python ≥ 3.3. IPython 5.x can be installed on Python 2.
8
8
9
9
10 Quick Install
10 Quick Install
11 -------------
11 -------------
12
12
13 With ``pip`` already installed :
13 With ``pip`` already installed :
14
14
15 .. code-block:: bash
15 .. code-block:: bash
16
16
17 $ pip install ipython
17 $ pip install ipython
18
18
19 This installs IPython as well as its dependencies.
19 This installs IPython as well as its dependencies.
20
20
21 If you want to use IPython with notebooks or the Qt console, you should also
21 If you want to use IPython with notebooks or the Qt console, you should also
22 install Jupyter ``pip install jupyter``.
22 install Jupyter ``pip install jupyter``.
23
23
24
24
25
25
26 Overview
26 Overview
27 --------
27 --------
28
28
29 This document describes in detail the steps required to install IPython. For a
29 This document describes in detail the steps required to install IPython. For a
30 few quick ways to get started with package managers or full Python
30 few quick ways to get started with package managers or full Python
31 distributions, see `the install page <http://ipython.org/install.html>`_ of the
31 distributions, see `the install page <https://ipython.org/install.html>`_ of the
32 IPython website.
32 IPython website.
33
33
34 Please let us know if you have problems installing IPython or any of its
34 Please let us know if you have problems installing IPython or any of its
35 dependencies.
35 dependencies.
36
36
37 IPython and most dependencies should be installed via :command:`pip`.
37 IPython and most dependencies should be installed via :command:`pip`.
38 In many scenarios, this is the simplest method of installing Python packages.
38 In many scenarios, this is the simplest method of installing Python packages.
39 More information about :mod:`pip` can be found on
39 More information about :mod:`pip` can be found on
40 `its PyPI page <https://pip.pypa.io>`__.
40 `its PyPI page <https://pip.pypa.io>`__.
41
41
42
42
43 More general information about installing Python packages can be found in
43 More general information about installing Python packages can be found in
44 `Python's documentation <http://docs.python.org>`_.
44 `Python's documentation <http://docs.python.org>`_.
45
45
46 .. _dependencies:
46 .. _dependencies:
47
47
48 Dependencies
48 Dependencies
49 ~~~~~~~~~~~~
49 ~~~~~~~~~~~~
50
50
51 IPython relies on a number of other Python packages. Installing using a package
51 IPython relies on a number of other Python packages. Installing using a package
52 manager like pip or conda will ensure the necessary packages are installed.
52 manager like pip or conda will ensure the necessary packages are installed.
53 Manual installation without dependencies is possible, but not recommended.
53 Manual installation without dependencies is possible, but not recommended.
54 The dependencies can be viewed with package manager commands,
54 The dependencies can be viewed with package manager commands,
55 such as :command:`pip show ipython` or :command:`conda info ipython`.
55 such as :command:`pip show ipython` or :command:`conda info ipython`.
56
56
57
57
58 Installing IPython itself
58 Installing IPython itself
59 ~~~~~~~~~~~~~~~~~~~~~~~~~
59 ~~~~~~~~~~~~~~~~~~~~~~~~~
60
60
61 IPython requires several dependencies to work correctly, it is not recommended
61 IPython requires several dependencies to work correctly, it is not recommended
62 to install IPython and all its dependencies manually as this can be quite long
62 to install IPython and all its dependencies manually as this can be quite long
63 and troublesome. You should use the python package manager ``pip``.
63 and troublesome. You should use the python package manager ``pip``.
64
64
65 Installation using pip
65 Installation using pip
66 ~~~~~~~~~~~~~~~~~~~~~~
66 ~~~~~~~~~~~~~~~~~~~~~~
67
67
68 Make sure you have the latest version of :mod:`pip` (the Python package
68 Make sure you have the latest version of :mod:`pip` (the Python package
69 manager) installed. If you do not, head to `Pip documentation
69 manager) installed. If you do not, head to `Pip documentation
70 <https://pip.pypa.io/en/stable/installing/>`_ and install :mod:`pip` first.
70 <https://pip.pypa.io/en/stable/installing/>`_ and install :mod:`pip` first.
71
71
72 The quickest way to get up and running with IPython is to install it with pip:
72 The quickest way to get up and running with IPython is to install it with pip:
73
73
74 .. code-block:: bash
74 .. code-block:: bash
75
75
76 $ pip install ipython
76 $ pip install ipython
77
77
78 That's it.
78 That's it.
79
79
80
80
81 Installation from source
81 Installation from source
82 ~~~~~~~~~~~~~~~~~~~~~~~~
82 ~~~~~~~~~~~~~~~~~~~~~~~~
83
83
84 To install IPython from source,
84 To install IPython from source,
85 grab the latest stable tarball of IPython `from PyPI
85 grab the latest stable tarball of IPython `from PyPI
86 <https://pypi.python.org/pypi/ipython>`__. Then do the following:
86 <https://pypi.python.org/pypi/ipython>`__. Then do the following:
87
87
88 .. code-block:: bash
88 .. code-block:: bash
89
89
90 tar -xzf ipython-5.1.0.tar.gz
90 tar -xzf ipython-5.1.0.tar.gz
91 cd ipython-5.1.0
91 cd ipython-5.1.0
92 # The [test] extra ensures test dependencies are installed too:
92 # The [test] extra ensures test dependencies are installed too:
93 pip install .[test]
93 pip install .[test]
94
94
95 Do not invoke ``setup.py`` directly as this can have undesirable consequences
95 Do not invoke ``setup.py`` directly as this can have undesirable consequences
96 for further upgrades. We do not recommend using ``easy_install`` either.
96 for further upgrades. We do not recommend using ``easy_install`` either.
97
97
98 If you are installing to a location (like ``/usr/local``) that requires higher
98 If you are installing to a location (like ``/usr/local``) that requires higher
99 permissions, you may need to run the last command with :command:`sudo`. You can
99 permissions, you may need to run the last command with :command:`sudo`. You can
100 also install in user specific location by using the ``--user`` flag in
100 also install in user specific location by using the ``--user`` flag in
101 conjunction with pip.
101 conjunction with pip.
102
102
103 To run IPython's test suite, use the :command:`iptest` command from outside of
103 To run IPython's test suite, use the :command:`iptest` command from outside of
104 the IPython source tree:
104 the IPython source tree:
105
105
106 .. code-block:: bash
106 .. code-block:: bash
107
107
108 $ iptest
108 $ iptest
109
109
110 .. _devinstall:
110 .. _devinstall:
111
111
112 Installing the development version
112 Installing the development version
113 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
114
114
115 It is also possible to install the development version of IPython from our
115 It is also possible to install the development version of IPython from our
116 `Git <http://git-scm.com/>`_ source code repository. To do this you will
116 `Git <http://git-scm.com/>`_ source code repository. To do this you will
117 need to have Git installed on your system.
117 need to have Git installed on your system.
118
118
119
119
120 Then do:
120 Then do:
121
121
122 .. code-block:: bash
122 .. code-block:: bash
123
123
124 $ git clone https://github.com/ipython/ipython.git
124 $ git clone https://github.com/ipython/ipython.git
125 $ cd ipython
125 $ cd ipython
126 $ pip install -e .[test]
126 $ pip install -e .[test]
127
127
128 The :command:`pip install -e .` command allows users and developers to follow
128 The :command:`pip install -e .` command allows users and developers to follow
129 the development branch as it changes by creating links in the right places and
129 the development branch as it changes by creating links in the right places and
130 installing the command line scripts to the appropriate locations.
130 installing the command line scripts to the appropriate locations.
131
131
132 Then, if you want to update your IPython at any time, do:
132 Then, if you want to update your IPython at any time, do:
133
133
134 .. code-block:: bash
134 .. code-block:: bash
135
135
136 $ git pull
136 $ git pull
137
137
138 If the dependencies or entrypoints have changed, you may have to run
138 If the dependencies or entrypoints have changed, you may have to run
139
139
140 .. code-block:: bash
140 .. code-block:: bash
141
141
142 $ pip install -e .
142 $ pip install -e .
143
143
144 again, but this is infrequent.
144 again, but this is infrequent.
@@ -1,31 +1,31 b''
1 ========
1 ========
2 Tutorial
2 Tutorial
3 ========
3 ========
4
4
5 This section of IPython documentation will walk you through most of the IPython
5 This section of IPython documentation will walk you through most of the IPython
6 functionality. You do not need to have any deep knowledge of Python to read this
6 functionality. You do not need to have any deep knowledge of Python to read this
7 tutorial, though some sections might make slightly more sense if you have already
7 tutorial, though some sections might make slightly more sense if you have already
8 done some work in the classic Python REPL.
8 done some work in the classic Python REPL.
9
9
10 .. note::
10 .. note::
11
11
12 Some part of this documentation are more than a decade old so might be out
12 Some part of this documentation are more than a decade old so might be out
13 of date, we welcome any report of inaccuracy, and Pull Requests that make
13 of date, we welcome any report of inaccuracy, and Pull Requests that make
14 that up to date.
14 that up to date.
15
15
16 .. toctree::
16 .. toctree::
17 :maxdepth: 2
17 :maxdepth: 2
18 :hidden:
18 :hidden:
19
19
20 tutorial
20 tutorial
21 plotting
21 plotting
22 reference
22 reference
23 shell
23 shell
24 tips
24 tips
25 python-ipython-diff
25 python-ipython-diff
26 magics
26 magics
27
27
28 .. seealso::
28 .. seealso::
29
29
30 `A Qt Console for Jupyter <http://jupyter.org/qtconsole/>`__
30 `A Qt Console for Jupyter <https://jupyter.org/qtconsole/>`__
31 `The Jupyter Notebook <http://jupyter-notebook.readthedocs.io/en/latest/>`__
31 `The Jupyter Notebook <http://jupyter-notebook.readthedocs.io/en/latest/>`__
@@ -1,101 +1,101 b''
1 .. This (-*- rst -*-) format file contains commonly used link targets
1 .. This (-*- rst -*-) format file contains commonly used link targets
2 and name substitutions. It may be included in many files,
2 and name substitutions. It may be included in many files,
3 therefore it should only contain link targets and name
3 therefore it should only contain link targets and name
4 substitutions. Try grepping for "^\.\. _" to find plausible
4 substitutions. Try grepping for "^\.\. _" to find plausible
5 candidates for this list.
5 candidates for this list.
6
6
7 NOTE: this file must have an extension *opposite* to that of the main reST
7 NOTE: this file must have an extension *opposite* to that of the main reST
8 files in the manuals, so that we can include it with ".. include::"
8 files in the manuals, so that we can include it with ".. include::"
9 directives, but without triggering warnings from Sphinx for not being listed
9 directives, but without triggering warnings from Sphinx for not being listed
10 in any toctree. Since IPython uses .txt for the main files, this one will
10 in any toctree. Since IPython uses .txt for the main files, this one will
11 use .rst.
11 use .rst.
12
12
13 NOTE: reST targets are
13 NOTE: reST targets are
14 __not_case_sensitive__, so only one target definition is needed for
14 __not_case_sensitive__, so only one target definition is needed for
15 ipython, IPython, etc.
15 ipython, IPython, etc.
16
16
17 NOTE: Some of these were taken from the nipy links compendium.
17 NOTE: Some of these were taken from the nipy links compendium.
18
18
19 .. Main IPython links
19 .. Main IPython links
20 .. _ipython: http://ipython.org
20 .. _ipython: https://ipython.org
21 .. _`ipython manual`: http://ipython.org/documentation.html
21 .. _`ipython manual`: https://ipython.org/documentation.html
22 .. _ipython_github: http://github.com/ipython/ipython/
22 .. _ipython_github: http://github.com/ipython/ipython/
23 .. _ipython_github_repo: http://github.com/ipython/ipython/
23 .. _ipython_github_repo: http://github.com/ipython/ipython/
24 .. _ipython_downloads: http://ipython.org/download.html
24 .. _ipython_downloads: https://ipython.org/download.html
25 .. _ipython_pypi: http://pypi.python.org/pypi/ipython
25 .. _ipython_pypi: http://pypi.python.org/pypi/ipython
26 .. _nbviewer: http://nbviewer.ipython.org
26 .. _nbviewer: http://nbviewer.ipython.org
27
27
28 .. _ZeroMQ: http://zeromq.org
28 .. _ZeroMQ: http://zeromq.org
29
29
30 .. Documentation tools and related links
30 .. Documentation tools and related links
31 .. _graphviz: http://www.graphviz.org
31 .. _graphviz: http://www.graphviz.org
32 .. _Sphinx: http://sphinx.pocoo.org
32 .. _Sphinx: http://sphinx.pocoo.org
33 .. _`Sphinx reST`: http://sphinx.pocoo.org/rest.html
33 .. _`Sphinx reST`: http://sphinx.pocoo.org/rest.html
34 .. _sampledoc: http://matplotlib.org/sampledoc
34 .. _sampledoc: http://matplotlib.org/sampledoc
35 .. _reST: http://docutils.sourceforge.net/rst.html
35 .. _reST: http://docutils.sourceforge.net/rst.html
36 .. _docutils: http://docutils.sourceforge.net
36 .. _docutils: http://docutils.sourceforge.net
37 .. _lyx: http://www.lyx.org
37 .. _lyx: http://www.lyx.org
38 .. _pep8: http://www.python.org/dev/peps/pep-0008
38 .. _pep8: http://www.python.org/dev/peps/pep-0008
39 .. _numpy_coding_guide: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
39 .. _numpy_coding_guide: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
40
40
41 .. Licenses
41 .. Licenses
42 .. _GPL: http://www.gnu.org/licenses/gpl.html
42 .. _GPL: http://www.gnu.org/licenses/gpl.html
43 .. _BSD: http://www.opensource.org/licenses/bsd-license.php
43 .. _BSD: http://www.opensource.org/licenses/bsd-license.php
44 .. _LGPL: http://www.gnu.org/copyleft/lesser.html
44 .. _LGPL: http://www.gnu.org/copyleft/lesser.html
45
45
46 .. Other python projects
46 .. Other python projects
47 .. _numpy: http://numpy.scipy.org
47 .. _numpy: http://numpy.scipy.org
48 .. _scipy: http://www.scipy.org
48 .. _scipy: http://www.scipy.org
49 .. _scipy_conference: http://conference.scipy.org
49 .. _scipy_conference: http://conference.scipy.org
50 .. _matplotlib: http://matplotlib.org
50 .. _matplotlib: http://matplotlib.org
51 .. _pythonxy: https://code.google.com/p/pythonxy/
51 .. _pythonxy: https://code.google.com/p/pythonxy/
52 .. _ETS: http://code.enthought.com/projects/tool-suite.php
52 .. _ETS: http://code.enthought.com/projects/tool-suite.php
53 .. _EPD: http://www.enthought.com/products/epd.php
53 .. _EPD: http://www.enthought.com/products/epd.php
54 .. _python: http://www.python.org
54 .. _python: http://www.python.org
55 .. _mayavi: http://code.enthought.com/projects/mayavi
55 .. _mayavi: http://code.enthought.com/projects/mayavi
56 .. _sympy: http://code.google.com/p/sympy
56 .. _sympy: http://code.google.com/p/sympy
57 .. _sage: http://sagemath.org
57 .. _sage: http://sagemath.org
58 .. _pydy: http://code.google.com/p/pydy
58 .. _pydy: http://code.google.com/p/pydy
59 .. _vpython: http://vpython.org
59 .. _vpython: http://vpython.org
60 .. _cython: http://cython.org
60 .. _cython: http://cython.org
61 .. _software carpentry: http://software-carpentry.org
61 .. _software carpentry: http://software-carpentry.org
62
62
63 .. Not so python scientific computing tools
63 .. Not so python scientific computing tools
64 .. _matlab: http://www.mathworks.com
64 .. _matlab: http://www.mathworks.com
65 .. _VTK: http://vtk.org
65 .. _VTK: http://vtk.org
66
66
67 .. Other organizations
67 .. Other organizations
68 .. _enthought: http://www.enthought.com
68 .. _enthought: http://www.enthought.com
69 .. _kitware: http://www.kitware.com
69 .. _kitware: http://www.kitware.com
70 .. _netlib: http://netlib.org
70 .. _netlib: http://netlib.org
71
71
72 .. Other tools and projects
72 .. Other tools and projects
73 .. _indefero: http://www.indefero.net
73 .. _indefero: http://www.indefero.net
74 .. _git: http://git-scm.com
74 .. _git: http://git-scm.com
75 .. _github: http://github.com
75 .. _github: http://github.com
76 .. _Markdown: http://daringfireball.net/projects/markdown/syntax
76 .. _Markdown: http://daringfireball.net/projects/markdown/syntax
77
77
78 .. _Running Code in the IPython Notebook: notebook_p1_
78 .. _Running Code in the IPython Notebook: notebook_p1_
79 .. _notebook_p1: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%25201%2520-%2520Running%2520Code.ipynb
79 .. _notebook_p1: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%25201%2520-%2520Running%2520Code.ipynb
80
80
81 .. _Basic Output: notebook_p2_
81 .. _Basic Output: notebook_p2_
82 .. _notebook_p2: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%202%20-%20Basic%20Output.ipynb
82 .. _notebook_p2: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%202%20-%20Basic%20Output.ipynb
83
83
84 .. _Plotting with Matplotlib: notebook_p3_
84 .. _Plotting with Matplotlib: notebook_p3_
85 .. _notebook_p3: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb
85 .. _notebook_p3: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb
86
86
87 .. _Markdown Cells: notebook_p4_
87 .. _Markdown Cells: notebook_p4_
88 .. _notebook_p4: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%204%20-%20Markdown%20Cells.ipynb
88 .. _notebook_p4: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%204%20-%20Markdown%20Cells.ipynb
89
89
90 .. _Rich Display System: notebook_p5_
90 .. _Rich Display System: notebook_p5_
91 .. _notebook_p5: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%205%20-%20Rich%20Display%20System.ipynb
91 .. _notebook_p5: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Part%205%20-%20Rich%20Display%20System.ipynb
92
92
93 .. _notebook_custom_display: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Custom%20Display%20Logic.ipynb
93 .. _notebook_custom_display: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Custom%20Display%20Logic.ipynb
94
94
95 .. _Frontend/Kernel Model: notebook_two_proc_
95 .. _Frontend/Kernel Model: notebook_two_proc_
96 .. _notebook_two_proc: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Frontend-Kernel%20Model.ipynb
96 .. _notebook_two_proc: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Frontend-Kernel%20Model.ipynb
97
97
98 .. _Cell magics: notebook_cell_magics_
98 .. _Cell magics: notebook_cell_magics_
99 .. _notebook_cell_magics: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Cell%20Magics.ipynb
99 .. _notebook_cell_magics: http://nbviewer.ipython.org/urls/raw.github.com/ipython/ipython/1.x/examples/notebooks/Cell%20Magics.ipynb
100
100
101
101
@@ -1,257 +1,257 b''
1 .. _overview:
1 .. _overview:
2
2
3 ========
3 ========
4 Overview
4 Overview
5 ========
5 ========
6
6
7 One of Python's most useful features is its interactive interpreter.
7 One of Python's most useful features is its interactive interpreter.
8 It allows for very fast testing of ideas without the overhead of
8 It allows for very fast testing of ideas without the overhead of
9 creating test files as is typical in most programming languages.
9 creating test files as is typical in most programming languages.
10 However, the interpreter supplied with the standard Python distribution
10 However, the interpreter supplied with the standard Python distribution
11 is somewhat limited for extended interactive use.
11 is somewhat limited for extended interactive use.
12
12
13 The goal of IPython is to create a comprehensive environment for
13 The goal of IPython is to create a comprehensive environment for
14 interactive and exploratory computing. To support this goal, IPython
14 interactive and exploratory computing. To support this goal, IPython
15 has three main components:
15 has three main components:
16
16
17 * An enhanced interactive Python shell.
17 * An enhanced interactive Python shell.
18
18
19 * A decoupled :ref:`two-process communication model <ipythonzmq>`, which
19 * A decoupled :ref:`two-process communication model <ipythonzmq>`, which
20 allows for multiple clients to connect to a computation kernel, most notably
20 allows for multiple clients to connect to a computation kernel, most notably
21 the web-based notebook provided with `Jupyter <https://jupyter.org>`_.
21 the web-based notebook provided with `Jupyter <https://jupyter.org>`_.
22
22
23 * An architecture for interactive parallel computing now part of the
23 * An architecture for interactive parallel computing now part of the
24 `ipyparallel` package.
24 `ipyparallel` package.
25
25
26 All of IPython is open source (released under the revised BSD license).
26 All of IPython is open source (released under the revised BSD license).
27
27
28 Enhanced interactive Python shell
28 Enhanced interactive Python shell
29 =================================
29 =================================
30
30
31 IPython's interactive shell (:command:`ipython`), has the following goals,
31 IPython's interactive shell (:command:`ipython`), has the following goals,
32 amongst others:
32 amongst others:
33
33
34 1. Provide an interactive shell superior to Python's default. IPython
34 1. Provide an interactive shell superior to Python's default. IPython
35 has many features for tab-completion, object introspection, system shell
35 has many features for tab-completion, object introspection, system shell
36 access, command history retrieval across sessions, and its own special
36 access, command history retrieval across sessions, and its own special
37 command system for adding functionality when working interactively. It
37 command system for adding functionality when working interactively. It
38 tries to be a very efficient environment both for Python code development
38 tries to be a very efficient environment both for Python code development
39 and for exploration of problems using Python objects (in situations like
39 and for exploration of problems using Python objects (in situations like
40 data analysis).
40 data analysis).
41
41
42 2. Serve as an embeddable, ready to use interpreter for your own
42 2. Serve as an embeddable, ready to use interpreter for your own
43 programs. An interactive IPython shell can be started with a single call
43 programs. An interactive IPython shell can be started with a single call
44 from inside another program, providing access to the current namespace.
44 from inside another program, providing access to the current namespace.
45 This can be very useful both for debugging purposes and for situations
45 This can be very useful both for debugging purposes and for situations
46 where a blend of batch-processing and interactive exploration are needed.
46 where a blend of batch-processing and interactive exploration are needed.
47
47
48 3. Offer a flexible framework which can be used as the base
48 3. Offer a flexible framework which can be used as the base
49 environment for working with other systems, with Python as the underlying
49 environment for working with other systems, with Python as the underlying
50 bridge language. Specifically scientific environments like Mathematica,
50 bridge language. Specifically scientific environments like Mathematica,
51 IDL and Matlab inspired its design, but similar ideas can be
51 IDL and Matlab inspired its design, but similar ideas can be
52 useful in many fields.
52 useful in many fields.
53
53
54 4. Allow interactive testing of threaded graphical toolkits. IPython
54 4. Allow interactive testing of threaded graphical toolkits. IPython
55 has support for interactive, non-blocking control of GTK, Qt, WX, GLUT, and
55 has support for interactive, non-blocking control of GTK, Qt, WX, GLUT, and
56 OS X applications via special threading flags. The normal Python
56 OS X applications via special threading flags. The normal Python
57 shell can only do this for Tkinter applications.
57 shell can only do this for Tkinter applications.
58
58
59 Main features of the interactive shell
59 Main features of the interactive shell
60 --------------------------------------
60 --------------------------------------
61
61
62 * Dynamic object introspection. One can access docstrings, function
62 * Dynamic object introspection. One can access docstrings, function
63 definition prototypes, source code, source files and other details
63 definition prototypes, source code, source files and other details
64 of any object accessible to the interpreter with a single
64 of any object accessible to the interpreter with a single
65 keystroke (:samp:`?`, and using :samp:`??` provides additional detail).
65 keystroke (:samp:`?`, and using :samp:`??` provides additional detail).
66
66
67 * Searching through modules and namespaces with :samp:`*` wildcards, both
67 * Searching through modules and namespaces with :samp:`*` wildcards, both
68 when using the :samp:`?` system and via the :samp:`%psearch` command.
68 when using the :samp:`?` system and via the :samp:`%psearch` command.
69
69
70 * Completion in the local namespace, by typing :kbd:`TAB` at the prompt.
70 * Completion in the local namespace, by typing :kbd:`TAB` at the prompt.
71 This works for keywords, modules, methods, variables and files in the
71 This works for keywords, modules, methods, variables and files in the
72 current directory. This is supported via the ``prompt_toolkit`` library.
72 current directory. This is supported via the ``prompt_toolkit`` library.
73 Custom completers can be implemented easily for different purposes
73 Custom completers can be implemented easily for different purposes
74 (system commands, magic arguments etc.)
74 (system commands, magic arguments etc.)
75
75
76 * Numbered input/output prompts with command history (persistent
76 * Numbered input/output prompts with command history (persistent
77 across sessions and tied to each profile), full searching in this
77 across sessions and tied to each profile), full searching in this
78 history and caching of all input and output.
78 history and caching of all input and output.
79
79
80 * User-extensible 'magic' commands. A set of commands prefixed with
80 * User-extensible 'magic' commands. A set of commands prefixed with
81 :samp:`%` or :samp:`%%` is available for controlling IPython itself and provides
81 :samp:`%` or :samp:`%%` is available for controlling IPython itself and provides
82 directory control, namespace information and many aliases to
82 directory control, namespace information and many aliases to
83 common system shell commands.
83 common system shell commands.
84
84
85 * Alias facility for defining your own system aliases.
85 * Alias facility for defining your own system aliases.
86
86
87 * Complete system shell access. Lines starting with :samp:`!` are passed
87 * Complete system shell access. Lines starting with :samp:`!` are passed
88 directly to the system shell, and using :samp:`!!` or :samp:`var = !cmd`
88 directly to the system shell, and using :samp:`!!` or :samp:`var = !cmd`
89 captures shell output into python variables for further use.
89 captures shell output into python variables for further use.
90
90
91 * The ability to expand python variables when calling the system shell. In a
91 * The ability to expand python variables when calling the system shell. In a
92 shell command, any python variable prefixed with :samp:`$` is expanded. A
92 shell command, any python variable prefixed with :samp:`$` is expanded. A
93 double :samp:`$$` allows passing a literal :samp:`$` to the shell (for access
93 double :samp:`$$` allows passing a literal :samp:`$` to the shell (for access
94 to shell and environment variables like :envvar:`PATH`).
94 to shell and environment variables like :envvar:`PATH`).
95
95
96 * Filesystem navigation, via a magic :samp:`%cd` command, along with a
96 * Filesystem navigation, via a magic :samp:`%cd` command, along with a
97 persistent bookmark system (using :samp:`%bookmark`) for fast access to
97 persistent bookmark system (using :samp:`%bookmark`) for fast access to
98 frequently visited directories.
98 frequently visited directories.
99
99
100 * A lightweight persistence framework via the :samp:`%store` command, which
100 * A lightweight persistence framework via the :samp:`%store` command, which
101 allows you to save arbitrary Python variables. These get restored
101 allows you to save arbitrary Python variables. These get restored
102 when you run the :samp:`%store -r` command.
102 when you run the :samp:`%store -r` command.
103
103
104 * Automatic indentation and highlighting of code as you type (through the
104 * Automatic indentation and highlighting of code as you type (through the
105 `prompt_toolkit` library).
105 `prompt_toolkit` library).
106
106
107 * Macro system for quickly re-executing multiple lines of previous
107 * Macro system for quickly re-executing multiple lines of previous
108 input with a single name via the :samp:`%macro` command. Macros can be
108 input with a single name via the :samp:`%macro` command. Macros can be
109 stored persistently via :samp:`%store` and edited via :samp:`%edit`.
109 stored persistently via :samp:`%store` and edited via :samp:`%edit`.
110
110
111 * Session logging (you can then later use these logs as code in your
111 * Session logging (you can then later use these logs as code in your
112 programs). Logs can optionally timestamp all input, and also store
112 programs). Logs can optionally timestamp all input, and also store
113 session output (marked as comments, so the log remains valid
113 session output (marked as comments, so the log remains valid
114 Python source code).
114 Python source code).
115
115
116 * Session restoring: logs can be replayed to restore a previous
116 * Session restoring: logs can be replayed to restore a previous
117 session to the state where you left it.
117 session to the state where you left it.
118
118
119 * Verbose and colored exception traceback printouts. Easier to parse
119 * Verbose and colored exception traceback printouts. Easier to parse
120 visually, and in verbose mode they produce a lot of useful
120 visually, and in verbose mode they produce a lot of useful
121 debugging information (basically a terminal version of the cgitb
121 debugging information (basically a terminal version of the cgitb
122 module).
122 module).
123
123
124 * Auto-parentheses via the :samp:`%autocall` command: callable objects can be
124 * Auto-parentheses via the :samp:`%autocall` command: callable objects can be
125 executed without parentheses: :samp:`sin 3` is automatically converted to
125 executed without parentheses: :samp:`sin 3` is automatically converted to
126 :samp:`sin(3)`
126 :samp:`sin(3)`
127
127
128 * Auto-quoting: using :samp:`,`, or :samp:`;` as the first character forces
128 * Auto-quoting: using :samp:`,`, or :samp:`;` as the first character forces
129 auto-quoting of the rest of the line: :samp:`,my_function a b` becomes
129 auto-quoting of the rest of the line: :samp:`,my_function a b` becomes
130 automatically :samp:`my_function("a","b")`, while :samp:`;my_function a b`
130 automatically :samp:`my_function("a","b")`, while :samp:`;my_function a b`
131 becomes :samp:`my_function("a b")`.
131 becomes :samp:`my_function("a b")`.
132
132
133 * Extensible input syntax. You can define filters that pre-process
133 * Extensible input syntax. You can define filters that pre-process
134 user input to simplify input in special situations. This allows
134 user input to simplify input in special situations. This allows
135 for example pasting multi-line code fragments which start with
135 for example pasting multi-line code fragments which start with
136 :samp:`>>>` or :samp:`...` such as those from other python sessions or the
136 :samp:`>>>` or :samp:`...` such as those from other python sessions or the
137 standard Python documentation.
137 standard Python documentation.
138
138
139 * Flexible :ref:`configuration system <config_overview>`. It uses a
139 * Flexible :ref:`configuration system <config_overview>`. It uses a
140 configuration file which allows permanent setting of all command-line
140 configuration file which allows permanent setting of all command-line
141 options, module loading, code and file execution. The system allows
141 options, module loading, code and file execution. The system allows
142 recursive file inclusion, so you can have a base file with defaults and
142 recursive file inclusion, so you can have a base file with defaults and
143 layers which load other customizations for particular projects.
143 layers which load other customizations for particular projects.
144
144
145 * Embeddable. You can call IPython as a python shell inside your own
145 * Embeddable. You can call IPython as a python shell inside your own
146 python programs. This can be used both for debugging code or for
146 python programs. This can be used both for debugging code or for
147 providing interactive abilities to your programs with knowledge
147 providing interactive abilities to your programs with knowledge
148 about the local namespaces (very useful in debugging and data
148 about the local namespaces (very useful in debugging and data
149 analysis situations).
149 analysis situations).
150
150
151 * Easy debugger access. You can set IPython to call up an enhanced version of
151 * Easy debugger access. You can set IPython to call up an enhanced version of
152 the Python debugger (pdb) every time there is an uncaught exception. This
152 the Python debugger (pdb) every time there is an uncaught exception. This
153 drops you inside the code which triggered the exception with all the data
153 drops you inside the code which triggered the exception with all the data
154 live and it is possible to navigate the stack to rapidly isolate the source
154 live and it is possible to navigate the stack to rapidly isolate the source
155 of a bug. The :samp:`%run` magic command (with the :samp:`-d` option) can run
155 of a bug. The :samp:`%run` magic command (with the :samp:`-d` option) can run
156 any script under pdb's control, automatically setting initial breakpoints for
156 any script under pdb's control, automatically setting initial breakpoints for
157 you. This version of pdb has IPython-specific improvements, including
157 you. This version of pdb has IPython-specific improvements, including
158 tab-completion and traceback coloring support. For even easier debugger
158 tab-completion and traceback coloring support. For even easier debugger
159 access, try :samp:`%debug` after seeing an exception.
159 access, try :samp:`%debug` after seeing an exception.
160
160
161 * Profiler support. You can run single statements (similar to
161 * Profiler support. You can run single statements (similar to
162 :samp:`profile.run()`) or complete programs under the profiler's control.
162 :samp:`profile.run()`) or complete programs under the profiler's control.
163 While this is possible with standard cProfile or profile modules,
163 While this is possible with standard cProfile or profile modules,
164 IPython wraps this functionality with magic commands (see :samp:`%prun`
164 IPython wraps this functionality with magic commands (see :samp:`%prun`
165 and :samp:`%run -p`) convenient for rapid interactive work.
165 and :samp:`%run -p`) convenient for rapid interactive work.
166
166
167 * Simple timing information. You can use the :samp:`%timeit` command to get
167 * Simple timing information. You can use the :samp:`%timeit` command to get
168 the execution time of a Python statement or expression. This machinery is
168 the execution time of a Python statement or expression. This machinery is
169 intelligent enough to do more repetitions for commands that finish very
169 intelligent enough to do more repetitions for commands that finish very
170 quickly in order to get a better estimate of their running time.
170 quickly in order to get a better estimate of their running time.
171
171
172 .. sourcecode:: ipython
172 .. sourcecode:: ipython
173
173
174 In [1]: %timeit 1+1
174 In [1]: %timeit 1+1
175 10000000 loops, best of 3: 25.5 ns per loop
175 10000000 loops, best of 3: 25.5 ns per loop
176
176
177 In [2]: %timeit [math.sin(x) for x in range(5000)]
177 In [2]: %timeit [math.sin(x) for x in range(5000)]
178 1000 loops, best of 3: 719 µs per loop
178 1000 loops, best of 3: 719 µs per loop
179
179
180 ..
180 ..
181
181
182 To get the timing information for more than one expression, use the
182 To get the timing information for more than one expression, use the
183 :samp:`%%timeit` cell magic command.
183 :samp:`%%timeit` cell magic command.
184
184
185
185
186 * Doctest support. The special :samp:`%doctest_mode` command toggles a mode
186 * Doctest support. The special :samp:`%doctest_mode` command toggles a mode
187 to use doctest-compatible prompts, so you can use IPython sessions as
187 to use doctest-compatible prompts, so you can use IPython sessions as
188 doctest code. By default, IPython also allows you to paste existing
188 doctest code. By default, IPython also allows you to paste existing
189 doctests, and strips out the leading :samp:`>>>` and :samp:`...` prompts in
189 doctests, and strips out the leading :samp:`>>>` and :samp:`...` prompts in
190 them.
190 them.
191
191
192 .. _ipythonzmq:
192 .. _ipythonzmq:
193
193
194 Decoupled two-process model
194 Decoupled two-process model
195 ==============================
195 ==============================
196
196
197 IPython has abstracted and extended the notion of a traditional
197 IPython has abstracted and extended the notion of a traditional
198 *Read-Evaluate-Print Loop* (REPL) environment by decoupling the *evaluation*
198 *Read-Evaluate-Print Loop* (REPL) environment by decoupling the *evaluation*
199 into its own process. We call this process a **kernel**: it receives execution
199 into its own process. We call this process a **kernel**: it receives execution
200 instructions from clients and communicates the results back to them.
200 instructions from clients and communicates the results back to them.
201
201
202 This decoupling allows us to have several clients connected to the same
202 This decoupling allows us to have several clients connected to the same
203 kernel, and even allows clients and kernels to live on different machines.
203 kernel, and even allows clients and kernels to live on different machines.
204 With the exclusion of the traditional single process terminal-based IPython
204 With the exclusion of the traditional single process terminal-based IPython
205 (what you start if you run ``ipython`` without any subcommands), all
205 (what you start if you run ``ipython`` without any subcommands), all
206 other IPython machinery uses this two-process model. Most of this is now part
206 other IPython machinery uses this two-process model. Most of this is now part
207 of the `Jupyter` project, which includes ``jupyter console``, ``jupyter
207 of the `Jupyter` project, which includes ``jupyter console``, ``jupyter
208 qtconsole``, and ``jupyter notebook``.
208 qtconsole``, and ``jupyter notebook``.
209
209
210 As an example, this means that when you start ``jupyter qtconsole``, you're
210 As an example, this means that when you start ``jupyter qtconsole``, you're
211 really starting two processes, a kernel and a Qt-based client can send
211 really starting two processes, a kernel and a Qt-based client can send
212 commands to and receive results from that kernel. If there is already a kernel
212 commands to and receive results from that kernel. If there is already a kernel
213 running that you want to connect to, you can pass the ``--existing`` flag
213 running that you want to connect to, you can pass the ``--existing`` flag
214 which will skip initiating a new kernel and connect to the most recent kernel,
214 which will skip initiating a new kernel and connect to the most recent kernel,
215 instead. To connect to a specific kernel once you have several kernels
215 instead. To connect to a specific kernel once you have several kernels
216 running, use the ``%connect_info`` magic to get the unique connection file,
216 running, use the ``%connect_info`` magic to get the unique connection file,
217 which will be something like ``--existing kernel-19732.json`` but with
217 which will be something like ``--existing kernel-19732.json`` but with
218 different numbers which correspond to the Process ID of the kernel.
218 different numbers which correspond to the Process ID of the kernel.
219
219
220 You can read more about using `jupyter qtconsole
220 You can read more about using `jupyter qtconsole
221 <http://jupyter.org/qtconsole/>`_, and
221 <https://jupyter.org/qtconsole/>`_, and
222 `jupyter notebook <http://jupyter-notebook.readthedocs.io/en/latest/>`_. There
222 `jupyter notebook <http://jupyter-notebook.readthedocs.io/en/latest/>`_. There
223 is also a :ref:`message spec <messaging>` which documents the protocol for
223 is also a :ref:`message spec <messaging>` which documents the protocol for
224 communication between kernels
224 communication between kernels
225 and clients.
225 and clients.
226
226
227 .. seealso::
227 .. seealso::
228
228
229 `Frontend/Kernel Model`_ example notebook
229 `Frontend/Kernel Model`_ example notebook
230
230
231
231
232 Interactive parallel computing
232 Interactive parallel computing
233 ==============================
233 ==============================
234
234
235
235
236 This functionality is optional and now part of the `ipyparallel
236 This functionality is optional and now part of the `ipyparallel
237 <http://ipyparallel.readthedocs.io/>`_ project.
237 <http://ipyparallel.readthedocs.io/>`_ project.
238
238
239 Portability and Python requirements
239 Portability and Python requirements
240 -----------------------------------
240 -----------------------------------
241
241
242 Version 7.0+ supports Python 3.4 and higher.
242 Version 7.0+ supports Python 3.4 and higher.
243 Versions 6.x support Python 3.3 and higher.
243 Versions 6.x support Python 3.3 and higher.
244 Versions 2.0 to 5.x work with Python 2.7.x releases and Python 3.3 and higher.
244 Versions 2.0 to 5.x work with Python 2.7.x releases and Python 3.3 and higher.
245 Version 1.0 additionally worked with Python 2.6 and 3.2.
245 Version 1.0 additionally worked with Python 2.6 and 3.2.
246 Version 0.12 was the first version to fully support Python 3.
246 Version 0.12 was the first version to fully support Python 3.
247
247
248 IPython is known to work on the following operating systems:
248 IPython is known to work on the following operating systems:
249
249
250 * Linux
250 * Linux
251 * Most other Unix-like OSs (AIX, Solaris, BSD, etc.)
251 * Most other Unix-like OSs (AIX, Solaris, BSD, etc.)
252 * Mac OS X
252 * Mac OS X
253 * Windows (CygWin, XP, Vista, etc.)
253 * Windows (CygWin, XP, Vista, etc.)
254
254
255 See :ref:`here <install_index>` for instructions on how to install IPython.
255 See :ref:`here <install_index>` for instructions on how to install IPython.
256
256
257 .. include:: links.txt
257 .. include:: links.txt
@@ -1,1607 +1,1607 b''
1 .. _issues_list_200:
1 .. _issues_list_200:
2
2
3 Issues closed in the 2.x development cycle
3 Issues closed in the 2.x development cycle
4 ==========================================
4 ==========================================
5
5
6 Issues closed in 2.4.1
6 Issues closed in 2.4.1
7 ----------------------
7 ----------------------
8
8
9 GitHub stats for 2014/11/01 - 2015/01/30
9 GitHub stats for 2014/11/01 - 2015/01/30
10
10
11 .. note::
11 .. note::
12
12
13 IPython 2.4.0 was released without a few of the backports listed below.
13 IPython 2.4.0 was released without a few of the backports listed below.
14 2.4.1 has the correct patches intended for 2.4.0.
14 2.4.1 has the correct patches intended for 2.4.0.
15
15
16 These lists are automatically generated, and may be incomplete or contain duplicates.
16 These lists are automatically generated, and may be incomplete or contain duplicates.
17
17
18 The following 7 authors contributed 35 commits.
18 The following 7 authors contributed 35 commits.
19
19
20 * Benjamin Ragan-Kelley
20 * Benjamin Ragan-Kelley
21 * Carlos Cordoba
21 * Carlos Cordoba
22 * Damon Allen
22 * Damon Allen
23 * Jessica B. Hamrick
23 * Jessica B. Hamrick
24 * Mateusz Paprocki
24 * Mateusz Paprocki
25 * Peter Würtz
25 * Peter Würtz
26 * Thomas Kluyver
26 * Thomas Kluyver
27
27
28 We closed 10 issues and merged 6 pull requests;
28 We closed 10 issues and merged 6 pull requests;
29 this is the full list (generated with the script
29 this is the full list (generated with the script
30 :file:`tools/github_stats.py`):
30 :file:`tools/github_stats.py`):
31
31
32 Pull Requests (10):
32 Pull Requests (10):
33
33
34 * :ghpull:`7106`: Changed the display order of rich output in the live notebook.
34 * :ghpull:`7106`: Changed the display order of rich output in the live notebook.
35 * :ghpull:`6878`: Update pygments monkeypatch for compatibility with Pygments 2.0
35 * :ghpull:`6878`: Update pygments monkeypatch for compatibility with Pygments 2.0
36 * :ghpull:`6778`: backport nbformat v4 to 2.x
36 * :ghpull:`6778`: backport nbformat v4 to 2.x
37 * :ghpull:`6761`: object_info_reply field is oname, not name
37 * :ghpull:`6761`: object_info_reply field is oname, not name
38 * :ghpull:`6653`: Fix IPython.utils.ansispan() to ignore stray [0m
38 * :ghpull:`6653`: Fix IPython.utils.ansispan() to ignore stray [0m
39 * :ghpull:`6706`: Correctly display prompt numbers that are ``None``
39 * :ghpull:`6706`: Correctly display prompt numbers that are ``None``
40 * :ghpull:`6634`: don't use contains in SelectWidget item_query
40 * :ghpull:`6634`: don't use contains in SelectWidget item_query
41 * :ghpull:`6593`: note how to start the qtconsole
41 * :ghpull:`6593`: note how to start the qtconsole
42 * :ghpull:`6281`: more minor fixes to release scripts
42 * :ghpull:`6281`: more minor fixes to release scripts
43 * :ghpull:`5458`: Add support for PyQt5.
43 * :ghpull:`5458`: Add support for PyQt5.
44
44
45 Issues (6):
45 Issues (6):
46
46
47 * :ghissue:`7272`: qtconsole problems with pygments
47 * :ghissue:`7272`: qtconsole problems with pygments
48 * :ghissue:`7049`: Cause TypeError: 'NoneType' object is not callable in qtconsole
48 * :ghissue:`7049`: Cause TypeError: 'NoneType' object is not callable in qtconsole
49 * :ghissue:`6877`: Qt console doesn't work with pygments 2.0rc1
49 * :ghissue:`6877`: Qt console doesn't work with pygments 2.0rc1
50 * :ghissue:`6689`: Problem with string containing two or more question marks
50 * :ghissue:`6689`: Problem with string containing two or more question marks
51 * :ghissue:`6702`: Cell numbering after ``ClearOutput`` preprocessor
51 * :ghissue:`6702`: Cell numbering after ``ClearOutput`` preprocessor
52 * :ghissue:`6633`: selectwidget doesn't display 1 as a selection choice when passed in as a member of values list
52 * :ghissue:`6633`: selectwidget doesn't display 1 as a selection choice when passed in as a member of values list
53
53
54
54
55 Issues closed in 2.3.1
55 Issues closed in 2.3.1
56 ----------------------
56 ----------------------
57
57
58 Just one bugfix: fixed bad CRCRLF line-endings in notebooks on Windows
58 Just one bugfix: fixed bad CRCRLF line-endings in notebooks on Windows
59
59
60 Pull Requests (1):
60 Pull Requests (1):
61
61
62 * :ghpull:`6911`: don't use text mode in mkstemp
62 * :ghpull:`6911`: don't use text mode in mkstemp
63
63
64 Issues (1):
64 Issues (1):
65
65
66 * :ghissue:`6599`: Notebook.ipynb CR+LF turned into CR+CR+LF
66 * :ghissue:`6599`: Notebook.ipynb CR+LF turned into CR+CR+LF
67
67
68
68
69 Issues closed in 2.3.0
69 Issues closed in 2.3.0
70 ----------------------
70 ----------------------
71
71
72 GitHub stats for 2014/08/06 - 2014/10/01
72 GitHub stats for 2014/08/06 - 2014/10/01
73
73
74 These lists are automatically generated, and may be incomplete or contain duplicates.
74 These lists are automatically generated, and may be incomplete or contain duplicates.
75
75
76 The following 6 authors contributed 31 commits.
76 The following 6 authors contributed 31 commits.
77
77
78 * Benjamin Ragan-Kelley
78 * Benjamin Ragan-Kelley
79 * David Hirschfeld
79 * David Hirschfeld
80 * Eric Firing
80 * Eric Firing
81 * Jessica B. Hamrick
81 * Jessica B. Hamrick
82 * Matthias Bussonnier
82 * Matthias Bussonnier
83 * Thomas Kluyver
83 * Thomas Kluyver
84
84
85 We closed 16 issues and merged 9 pull requests;
85 We closed 16 issues and merged 9 pull requests;
86 this is the full list (generated with the script
86 this is the full list (generated with the script
87 :file:`tools/github_stats.py`):
87 :file:`tools/github_stats.py`):
88
88
89 Pull Requests (16):
89 Pull Requests (16):
90
90
91 * :ghpull:`6587`: support ``%matplotlib qt5`` and ``%matplotlib nbagg``
91 * :ghpull:`6587`: support ``%matplotlib qt5`` and ``%matplotlib nbagg``
92 * :ghpull:`6583`: Windows symlink test fixes
92 * :ghpull:`6583`: Windows symlink test fixes
93 * :ghpull:`6585`: fixes :ghissue:`6473`
93 * :ghpull:`6585`: fixes :ghissue:`6473`
94 * :ghpull:`6581`: Properly mock winreg functions for test
94 * :ghpull:`6581`: Properly mock winreg functions for test
95 * :ghpull:`6556`: Use some more informative asserts in inprocess kernel tests
95 * :ghpull:`6556`: Use some more informative asserts in inprocess kernel tests
96 * :ghpull:`6514`: Fix for copying metadata flags
96 * :ghpull:`6514`: Fix for copying metadata flags
97 * :ghpull:`6453`: Copy file metadata in atomic save
97 * :ghpull:`6453`: Copy file metadata in atomic save
98 * :ghpull:`6480`: only compare host:port in Websocket.check_origin
98 * :ghpull:`6480`: only compare host:port in Websocket.check_origin
99 * :ghpull:`6483`: Trim anchor link in heading cells, fixes :ghissue:`6324`
99 * :ghpull:`6483`: Trim anchor link in heading cells, fixes :ghissue:`6324`
100 * :ghpull:`6410`: Fix relative import in appnope
100 * :ghpull:`6410`: Fix relative import in appnope
101 * :ghpull:`6395`: update mathjax CDN url in nbconvert template
101 * :ghpull:`6395`: update mathjax CDN url in nbconvert template
102 * :ghpull:`6269`: Implement atomic save
102 * :ghpull:`6269`: Implement atomic save
103 * :ghpull:`6374`: Rename ``abort_queues`` --> ``_abort_queues``
103 * :ghpull:`6374`: Rename ``abort_queues`` --> ``_abort_queues``
104 * :ghpull:`6321`: Use appnope in qt and wx gui support from the terminal; closes :ghissue:`6189`
104 * :ghpull:`6321`: Use appnope in qt and wx gui support from the terminal; closes :ghissue:`6189`
105 * :ghpull:`6318`: use write_error instead of get_error_html
105 * :ghpull:`6318`: use write_error instead of get_error_html
106 * :ghpull:`6303`: Fix error message when failing to load a notebook
106 * :ghpull:`6303`: Fix error message when failing to load a notebook
107
107
108 Issues (9):
108 Issues (9):
109
109
110 * :ghissue:`6057`: ``%matplotlib`` + qt5
110 * :ghissue:`6057`: ``%matplotlib`` + qt5
111 * :ghissue:`6518`: Test failure in atomic save on Windows
111 * :ghissue:`6518`: Test failure in atomic save on Windows
112 * :ghissue:`6473`: Switching between "Raw Cell Format" and "Edit Metadata" does not work
112 * :ghissue:`6473`: Switching between "Raw Cell Format" and "Edit Metadata" does not work
113 * :ghissue:`6405`: Creating a notebook should respect directory permissions; saving should respect prior permissions
113 * :ghissue:`6405`: Creating a notebook should respect directory permissions; saving should respect prior permissions
114 * :ghissue:`6324`: Anchors in Heading don't work.
114 * :ghissue:`6324`: Anchors in Heading don't work.
115 * :ghissue:`6409`: No module named '_dummy'
115 * :ghissue:`6409`: No module named '_dummy'
116 * :ghissue:`6392`: Mathjax library link broken
116 * :ghissue:`6392`: Mathjax library link broken
117 * :ghissue:`6329`: IPython Notebook Server URL now requires "tree" at the end of the URL? (version 2.2)
117 * :ghissue:`6329`: IPython Notebook Server URL now requires "tree" at the end of the URL? (version 2.2)
118 * :ghissue:`6189`: ipython console freezes for increasing no of seconds in %pylab mode
118 * :ghissue:`6189`: ipython console freezes for increasing no of seconds in %pylab mode
119
119
120 Issues closed in 2.2.0
120 Issues closed in 2.2.0
121 ----------------------
121 ----------------------
122
122
123 GitHub stats for 2014/05/21 - 2014/08/06 (tag: rel-2.1.0)
123 GitHub stats for 2014/05/21 - 2014/08/06 (tag: rel-2.1.0)
124
124
125 These lists are automatically generated, and may be incomplete or contain duplicates.
125 These lists are automatically generated, and may be incomplete or contain duplicates.
126
126
127 The following 13 authors contributed 36 commits.
127 The following 13 authors contributed 36 commits.
128
128
129 * Adam Hodgen
129 * Adam Hodgen
130 * Benjamin Ragan-Kelley
130 * Benjamin Ragan-Kelley
131 * Björn Grüning
131 * Björn Grüning
132 * Dara Adib
132 * Dara Adib
133 * Eric Galloway
133 * Eric Galloway
134 * Jonathan Frederic
134 * Jonathan Frederic
135 * Kyle Kelley
135 * Kyle Kelley
136 * Matthias Bussonnier
136 * Matthias Bussonnier
137 * Paul Ivanov
137 * Paul Ivanov
138 * Shayne Hodge
138 * Shayne Hodge
139 * Steven Anton
139 * Steven Anton
140 * Thomas Kluyver
140 * Thomas Kluyver
141 * Zahari
141 * Zahari
142
142
143 We closed 23 issues and merged 11 pull requests;
143 We closed 23 issues and merged 11 pull requests;
144 this is the full list (generated with the script
144 this is the full list (generated with the script
145 :file:`tools/github_stats.py`):
145 :file:`tools/github_stats.py`):
146
146
147 Pull Requests (23):
147 Pull Requests (23):
148
148
149 * :ghpull:`6279`: minor updates to release scripts
149 * :ghpull:`6279`: minor updates to release scripts
150 * :ghpull:`6273`: Upgrade default mathjax version.
150 * :ghpull:`6273`: Upgrade default mathjax version.
151 * :ghpull:`6249`: always use HTTPS getting mathjax from CDN
151 * :ghpull:`6249`: always use HTTPS getting mathjax from CDN
152 * :ghpull:`6114`: update hmac signature comparison
152 * :ghpull:`6114`: update hmac signature comparison
153 * :ghpull:`6195`: Close handle on new temporary files before returning filename
153 * :ghpull:`6195`: Close handle on new temporary files before returning filename
154 * :ghpull:`6143`: pin tornado to < 4 on travis js tests
154 * :ghpull:`6143`: pin tornado to < 4 on travis js tests
155 * :ghpull:`6134`: remove rackcdn https workaround for mathjax cdn
155 * :ghpull:`6134`: remove rackcdn https workaround for mathjax cdn
156 * :ghpull:`6120`: Only allow iframe embedding on same origin.
156 * :ghpull:`6120`: Only allow iframe embedding on same origin.
157 * :ghpull:`6117`: Remove / from route of TreeRedirectHandler.
157 * :ghpull:`6117`: Remove / from route of TreeRedirectHandler.
158 * :ghpull:`6105`: only set allow_origin_pat if defined
158 * :ghpull:`6105`: only set allow_origin_pat if defined
159 * :ghpull:`6102`: Add newline if missing to end of script magic cell
159 * :ghpull:`6102`: Add newline if missing to end of script magic cell
160 * :ghpull:`6077`: allow unicode keys in dicts in json_clean
160 * :ghpull:`6077`: allow unicode keys in dicts in json_clean
161 * :ghpull:`6061`: make CORS configurable
161 * :ghpull:`6061`: make CORS configurable
162 * :ghpull:`6081`: don’t modify dict keys while iterating through them
162 * :ghpull:`6081`: don’t modify dict keys while iterating through them
163 * :ghpull:`5803`: unify visual line handling
163 * :ghpull:`5803`: unify visual line handling
164 * :ghpull:`6005`: Changed right arrow key movement function to mirror left arrow key
164 * :ghpull:`6005`: Changed right arrow key movement function to mirror left arrow key
165 * :ghpull:`6029`: add pickleutil.PICKLE_PROTOCOL
165 * :ghpull:`6029`: add pickleutil.PICKLE_PROTOCOL
166 * :ghpull:`6003`: Set kernel_id before checking websocket
166 * :ghpull:`6003`: Set kernel_id before checking websocket
167 * :ghpull:`5994`: Fix ssh tunnel for Python3
167 * :ghpull:`5994`: Fix ssh tunnel for Python3
168 * :ghpull:`5973`: Do not create checkpoint_dir relative to current dir
168 * :ghpull:`5973`: Do not create checkpoint_dir relative to current dir
169 * :ghpull:`5933`: fix qt_loader import hook signature
169 * :ghpull:`5933`: fix qt_loader import hook signature
170 * :ghpull:`5944`: Markdown rendering bug fix.
170 * :ghpull:`5944`: Markdown rendering bug fix.
171 * :ghpull:`5917`: use shutil.move instead of os.rename
171 * :ghpull:`5917`: use shutil.move instead of os.rename
172
172
173 Issues (11):
173 Issues (11):
174
174
175 * :ghissue:`6246`: Include MathJax by default or access the CDN over a secure connection
175 * :ghissue:`6246`: Include MathJax by default or access the CDN over a secure connection
176 * :ghissue:`5525`: Websocket origin check fails when used with Apache WS proxy
176 * :ghissue:`5525`: Websocket origin check fails when used with Apache WS proxy
177 * :ghissue:`5901`: 2 test failures in Python 3.4 in parallel group
177 * :ghissue:`5901`: 2 test failures in Python 3.4 in parallel group
178 * :ghissue:`5926`: QT console: text selection cannot be made from left to right with keyboard
178 * :ghissue:`5926`: QT console: text selection cannot be made from left to right with keyboard
179 * :ghissue:`5998`: use_dill does not work in Python 3.4
179 * :ghissue:`5998`: use_dill does not work in Python 3.4
180 * :ghissue:`5964`: Traceback on Qt console exit
180 * :ghissue:`5964`: Traceback on Qt console exit
181 * :ghissue:`5787`: Error in Notebook-Generated latex (nbconvert)
181 * :ghissue:`5787`: Error in Notebook-Generated latex (nbconvert)
182 * :ghissue:`5950`: qtconsole truncates help
182 * :ghissue:`5950`: qtconsole truncates help
183 * :ghissue:`5943`: 2.x: notebook fails to load when using HTML comments
183 * :ghissue:`5943`: 2.x: notebook fails to load when using HTML comments
184 * :ghissue:`5932`: Qt ImportDenier Does Not Adhere to PEP302
184 * :ghissue:`5932`: Qt ImportDenier Does Not Adhere to PEP302
185 * :ghissue:`5898`: OSError when moving configuration file
185 * :ghissue:`5898`: OSError when moving configuration file
186
186
187 Issues closed in 2.1.0
187 Issues closed in 2.1.0
188 ----------------------
188 ----------------------
189
189
190 GitHub stats for 2014/04/02 - 2014/05/21 (since 2.0.0)
190 GitHub stats for 2014/04/02 - 2014/05/21 (since 2.0.0)
191
191
192 These lists are automatically generated, and may be incomplete or contain duplicates.
192 These lists are automatically generated, and may be incomplete or contain duplicates.
193
193
194 The following 35 authors contributed 145 commits.
194 The following 35 authors contributed 145 commits.
195
195
196 * Adrian Price-Whelan
196 * Adrian Price-Whelan
197 * Aron Ahmadia
197 * Aron Ahmadia
198 * Benjamin Ragan-Kelley
198 * Benjamin Ragan-Kelley
199 * Benjamin Schultz
199 * Benjamin Schultz
200 * Björn Linse
200 * Björn Linse
201 * Blake Griffith
201 * Blake Griffith
202 * chebee7i
202 * chebee7i
203 * Damián Avila
203 * Damián Avila
204 * Dav Clark
204 * Dav Clark
205 * dexterdev
205 * dexterdev
206 * Erik Tollerud
206 * Erik Tollerud
207 * Grzegorz Rożniecki
207 * Grzegorz Rożniecki
208 * Jakob Gager
208 * Jakob Gager
209 * jdavidheiser
209 * jdavidheiser
210 * Jessica B. Hamrick
210 * Jessica B. Hamrick
211 * Jim Garrison
211 * Jim Garrison
212 * Jonathan Frederic
212 * Jonathan Frederic
213 * Matthias Bussonnier
213 * Matthias Bussonnier
214 * Maximilian Albert
214 * Maximilian Albert
215 * Mohan Raj Rajamanickam
215 * Mohan Raj Rajamanickam
216 * ncornette
216 * ncornette
217 * Nikolay Koldunov
217 * Nikolay Koldunov
218 * Nile Geisinger
218 * Nile Geisinger
219 * Pankaj Pandey
219 * Pankaj Pandey
220 * Paul Ivanov
220 * Paul Ivanov
221 * Pierre Haessig
221 * Pierre Haessig
222 * Raffaele De Feo
222 * Raffaele De Feo
223 * Renaud Richardet
223 * Renaud Richardet
224 * Spencer Nelson
224 * Spencer Nelson
225 * Steve Chan
225 * Steve Chan
226 * sunny
226 * sunny
227 * Susan Tan
227 * Susan Tan
228 * Thomas Kluyver
228 * Thomas Kluyver
229 * Yaroslav Halchenko
229 * Yaroslav Halchenko
230 * zah
230 * zah
231
231
232 We closed a total of 129 issues, 92 pull requests and 37 regular issues;
232 We closed a total of 129 issues, 92 pull requests and 37 regular issues;
233 this is the full list (generated with the script
233 this is the full list (generated with the script
234 :file:`tools/github_stats.py --milestone 2.1`):
234 :file:`tools/github_stats.py --milestone 2.1`):
235
235
236 Pull Requests (92):
236 Pull Requests (92):
237
237
238 * :ghpull:`5871`: specify encoding in msgpack.unpackb
238 * :ghpull:`5871`: specify encoding in msgpack.unpackb
239 * :ghpull:`5869`: Catch more errors from clipboard access on Windows
239 * :ghpull:`5869`: Catch more errors from clipboard access on Windows
240 * :ghpull:`5866`: Make test robust against differences in line endings
240 * :ghpull:`5866`: Make test robust against differences in line endings
241 * :ghpull:`5605`: Two cell toolbar fixes.
241 * :ghpull:`5605`: Two cell toolbar fixes.
242 * :ghpull:`5843`: remove Firefox-specific CSS workaround
242 * :ghpull:`5843`: remove Firefox-specific CSS workaround
243 * :ghpull:`5845`: Pass Windows interrupt event to kernels as an environment variable
243 * :ghpull:`5845`: Pass Windows interrupt event to kernels as an environment variable
244 * :ghpull:`5835`: fix typo in v2 convert
244 * :ghpull:`5835`: fix typo in v2 convert
245 * :ghpull:`5841`: Fix writing history with output to a file in Python 2
245 * :ghpull:`5841`: Fix writing history with output to a file in Python 2
246 * :ghpull:`5842`: fix typo in nbconvert help
246 * :ghpull:`5842`: fix typo in nbconvert help
247 * :ghpull:`5846`: Fix typos in Cython example
247 * :ghpull:`5846`: Fix typos in Cython example
248 * :ghpull:`5839`: Close graphics dev in finally clause
248 * :ghpull:`5839`: Close graphics dev in finally clause
249 * :ghpull:`5837`: pass on install docs
249 * :ghpull:`5837`: pass on install docs
250 * :ghpull:`5832`: Fixed example to work with python3
250 * :ghpull:`5832`: Fixed example to work with python3
251 * :ghpull:`5826`: allow notebook tour instantiation to fail
251 * :ghpull:`5826`: allow notebook tour instantiation to fail
252 * :ghpull:`5560`: Minor expansion of Cython example
252 * :ghpull:`5560`: Minor expansion of Cython example
253 * :ghpull:`5818`: interpret any exception in getcallargs as not callable
253 * :ghpull:`5818`: interpret any exception in getcallargs as not callable
254 * :ghpull:`5816`: Add output to IPython directive when in verbatim mode.
254 * :ghpull:`5816`: Add output to IPython directive when in verbatim mode.
255 * :ghpull:`5822`: Don't overwrite widget description in interact
255 * :ghpull:`5822`: Don't overwrite widget description in interact
256 * :ghpull:`5782`: Silence exception thrown by completer when dir() does not return a list
256 * :ghpull:`5782`: Silence exception thrown by completer when dir() does not return a list
257 * :ghpull:`5807`: Drop log level to info for Qt console shutdown
257 * :ghpull:`5807`: Drop log level to info for Qt console shutdown
258 * :ghpull:`5814`: Remove -i options from mv, rm and cp aliases
258 * :ghpull:`5814`: Remove -i options from mv, rm and cp aliases
259 * :ghpull:`5812`: Fix application name when printing subcommand help.
259 * :ghpull:`5812`: Fix application name when printing subcommand help.
260 * :ghpull:`5804`: remove an inappropriate ``!``
260 * :ghpull:`5804`: remove an inappropriate ``!``
261 * :ghpull:`5805`: fix engine startup files
261 * :ghpull:`5805`: fix engine startup files
262 * :ghpull:`5806`: Don't auto-move .config/ipython if symbolic link
262 * :ghpull:`5806`: Don't auto-move .config/ipython if symbolic link
263 * :ghpull:`5716`: Add booktabs package to latex base.tplx
263 * :ghpull:`5716`: Add booktabs package to latex base.tplx
264 * :ghpull:`5669`: allows threadsafe sys.stdout.flush from background threads
264 * :ghpull:`5669`: allows threadsafe sys.stdout.flush from background threads
265 * :ghpull:`5668`: allow async output on the most recent request
265 * :ghpull:`5668`: allow async output on the most recent request
266 * :ghpull:`5768`: fix cursor keys in long lines wrapped in markdown
266 * :ghpull:`5768`: fix cursor keys in long lines wrapped in markdown
267 * :ghpull:`5788`: run cells with ``silent=True`` in ``%run nb.ipynb``
267 * :ghpull:`5788`: run cells with ``silent=True`` in ``%run nb.ipynb``
268 * :ghpull:`5715`: log all failed ajax API requests
268 * :ghpull:`5715`: log all failed ajax API requests
269 * :ghpull:`5769`: Don't urlescape the text that goes into a title tag
269 * :ghpull:`5769`: Don't urlescape the text that goes into a title tag
270 * :ghpull:`5762`: Fix check for pickling closures
270 * :ghpull:`5762`: Fix check for pickling closures
271 * :ghpull:`5766`: View.map with empty sequence should return empty list
271 * :ghpull:`5766`: View.map with empty sequence should return empty list
272 * :ghpull:`5758`: Applied bug fix: using fc and ec did not properly set the figure canvas ...
272 * :ghpull:`5758`: Applied bug fix: using fc and ec did not properly set the figure canvas ...
273 * :ghpull:`5754`: Format command name into subcommand_description at run time, not import
273 * :ghpull:`5754`: Format command name into subcommand_description at run time, not import
274 * :ghpull:`5744`: Describe using PyPI/pip to distribute & install extensions
274 * :ghpull:`5744`: Describe using PyPI/pip to distribute & install extensions
275 * :ghpull:`5712`: monkeypatch inspect.findsource only when we use it
275 * :ghpull:`5712`: monkeypatch inspect.findsource only when we use it
276 * :ghpull:`5708`: create checkpoints dir in notebook subdirectories
276 * :ghpull:`5708`: create checkpoints dir in notebook subdirectories
277 * :ghpull:`5714`: log error message when API requests fail
277 * :ghpull:`5714`: log error message when API requests fail
278 * :ghpull:`5732`: Quick typo fix in nbformat/convert.py
278 * :ghpull:`5732`: Quick typo fix in nbformat/convert.py
279 * :ghpull:`5713`: Fix a NameError in IPython.parallel
279 * :ghpull:`5713`: Fix a NameError in IPython.parallel
280 * :ghpull:`5704`: Update nbconvertapp.py
280 * :ghpull:`5704`: Update nbconvertapp.py
281 * :ghpull:`5534`: cleanup some ``pre`` css inheritance
281 * :ghpull:`5534`: cleanup some ``pre`` css inheritance
282 * :ghpull:`5699`: don't use common names in require decorators
282 * :ghpull:`5699`: don't use common names in require decorators
283 * :ghpull:`5692`: Update notebook.rst fixing broken reference to notebook examples readme
283 * :ghpull:`5692`: Update notebook.rst fixing broken reference to notebook examples readme
284 * :ghpull:`5693`: Update parallel_intro.rst to fix a broken link to examples
284 * :ghpull:`5693`: Update parallel_intro.rst to fix a broken link to examples
285 * :ghpull:`5486`: disambiguate to location when no IPs can be determined
285 * :ghpull:`5486`: disambiguate to location when no IPs can be determined
286 * :ghpull:`5574`: Remove the outdated keyboard shortcuts from notebook docs
286 * :ghpull:`5574`: Remove the outdated keyboard shortcuts from notebook docs
287 * :ghpull:`5568`: Use ``__qualname__`` in pretty reprs for Python 3
287 * :ghpull:`5568`: Use ``__qualname__`` in pretty reprs for Python 3
288 * :ghpull:`5678`: Fix copy & paste error in docstring of ImageWidget class
288 * :ghpull:`5678`: Fix copy & paste error in docstring of ImageWidget class
289 * :ghpull:`5677`: Fix %bookmark -l for Python 3
289 * :ghpull:`5677`: Fix %bookmark -l for Python 3
290 * :ghpull:`5670`: nbconvert: Fix CWD imports
290 * :ghpull:`5670`: nbconvert: Fix CWD imports
291 * :ghpull:`5647`: Mention git hooks in install documentation
291 * :ghpull:`5647`: Mention git hooks in install documentation
292 * :ghpull:`5671`: Fix blank slides issue in Reveal slideshow pdf export
292 * :ghpull:`5671`: Fix blank slides issue in Reveal slideshow pdf export
293 * :ghpull:`5657`: use 'localhost' as default for the notebook server
293 * :ghpull:`5657`: use 'localhost' as default for the notebook server
294 * :ghpull:`5584`: more semantic icons
294 * :ghpull:`5584`: more semantic icons
295 * :ghpull:`5594`: update components with marked-0.3.2
295 * :ghpull:`5594`: update components with marked-0.3.2
296 * :ghpull:`5500`: check for Python 3.2
296 * :ghpull:`5500`: check for Python 3.2
297 * :ghpull:`5582`: reset readline after running PYTHONSTARTUP
297 * :ghpull:`5582`: reset readline after running PYTHONSTARTUP
298 * :ghpull:`5630`: Fixed Issue :ghissue:`4012` Added Help menubar link to Github markdown doc
298 * :ghpull:`5630`: Fixed Issue :ghissue:`4012` Added Help menubar link to Github markdown doc
299 * :ghpull:`5613`: Fixing bug :ghissue:`5607`
299 * :ghpull:`5613`: Fixing bug :ghissue:`5607`
300 * :ghpull:`5633`: Provide more help if lessc is not found.
300 * :ghpull:`5633`: Provide more help if lessc is not found.
301 * :ghpull:`5620`: fixed a typo in IPython.core.formatters
301 * :ghpull:`5620`: fixed a typo in IPython.core.formatters
302 * :ghpull:`5619`: Fix typo in storemagic module docstring
302 * :ghpull:`5619`: Fix typo in storemagic module docstring
303 * :ghpull:`5592`: add missing ``browser`` to notebook_aliases list
303 * :ghpull:`5592`: add missing ``browser`` to notebook_aliases list
304 * :ghpull:`5506`: Fix ipconfig regex pattern
304 * :ghpull:`5506`: Fix ipconfig regex pattern
305 * :ghpull:`5581`: Fix rmagic for cells ending in comment.
305 * :ghpull:`5581`: Fix rmagic for cells ending in comment.
306 * :ghpull:`5576`: only process cr if it's found
306 * :ghpull:`5576`: only process cr if it's found
307 * :ghpull:`5478`: Add git-hooks install script. Update README.md
307 * :ghpull:`5478`: Add git-hooks install script. Update README.md
308 * :ghpull:`5546`: do not shutdown notebook if 'n' is part of answer
308 * :ghpull:`5546`: do not shutdown notebook if 'n' is part of answer
309 * :ghpull:`5527`: Don't remove upload items from nav tree unless explicitly requested.
309 * :ghpull:`5527`: Don't remove upload items from nav tree unless explicitly requested.
310 * :ghpull:`5501`: remove inappropriate wheel tag override
310 * :ghpull:`5501`: remove inappropriate wheel tag override
311 * :ghpull:`5548`: FileNotebookManager: Use shutil.move() instead of os.rename()
311 * :ghpull:`5548`: FileNotebookManager: Use shutil.move() instead of os.rename()
312 * :ghpull:`5524`: never use ``for (var i in array)``
312 * :ghpull:`5524`: never use ``for (var i in array)``
313 * :ghpull:`5459`: Fix interact animation page jump FF
313 * :ghpull:`5459`: Fix interact animation page jump FF
314 * :ghpull:`5559`: Minor typo fix in "Cython Magics.ipynb"
314 * :ghpull:`5559`: Minor typo fix in "Cython Magics.ipynb"
315 * :ghpull:`5507`: Fix typo in interactive widgets examples index notebook
315 * :ghpull:`5507`: Fix typo in interactive widgets examples index notebook
316 * :ghpull:`5554`: Make HasTraits pickleable
316 * :ghpull:`5554`: Make HasTraits pickleable
317 * :ghpull:`5535`: fix n^2 performance issue in coalesce_streams preprocessor
317 * :ghpull:`5535`: fix n^2 performance issue in coalesce_streams preprocessor
318 * :ghpull:`5522`: fix iteration over Client
318 * :ghpull:`5522`: fix iteration over Client
319 * :ghpull:`5488`: Added missing require and jquery from cdn.
319 * :ghpull:`5488`: Added missing require and jquery from cdn.
320 * :ghpull:`5516`: ENH: list generated config files in generated, and rm them upon clean
320 * :ghpull:`5516`: ENH: list generated config files in generated, and rm them upon clean
321 * :ghpull:`5493`: made a minor fix to one of the widget examples
321 * :ghpull:`5493`: made a minor fix to one of the widget examples
322 * :ghpull:`5512`: Update tooltips to refer to shift-tab
322 * :ghpull:`5512`: Update tooltips to refer to shift-tab
323 * :ghpull:`5505`: Make backport_pr work on Python 3
323 * :ghpull:`5505`: Make backport_pr work on Python 3
324 * :ghpull:`5503`: check explicitly for 'dev' before adding the note to docs
324 * :ghpull:`5503`: check explicitly for 'dev' before adding the note to docs
325 * :ghpull:`5498`: use milestones to indicate backport
325 * :ghpull:`5498`: use milestones to indicate backport
326 * :ghpull:`5492`: Polish whatsnew docs
326 * :ghpull:`5492`: Polish whatsnew docs
327 * :ghpull:`5495`: Fix various broken things in docs
327 * :ghpull:`5495`: Fix various broken things in docs
328 * :ghpull:`5496`: Exclude whatsnew/pr directory from docs builds
328 * :ghpull:`5496`: Exclude whatsnew/pr directory from docs builds
329 * :ghpull:`5489`: Fix required Python versions
329 * :ghpull:`5489`: Fix required Python versions
330
330
331 Issues (37):
331 Issues (37):
332
332
333 * :ghissue:`5364`: Horizontal scrollbar hides cell's last line on Firefox
333 * :ghissue:`5364`: Horizontal scrollbar hides cell's last line on Firefox
334 * :ghissue:`5192`: horisontal scrollbar overlaps output or touches next cell
334 * :ghissue:`5192`: horisontal scrollbar overlaps output or touches next cell
335 * :ghissue:`5840`: Third-party Windows kernels don't get interrupt signal
335 * :ghissue:`5840`: Third-party Windows kernels don't get interrupt signal
336 * :ghissue:`2412`: print history to file using qtconsole and notebook
336 * :ghissue:`2412`: print history to file using qtconsole and notebook
337 * :ghissue:`5703`: Notebook doesn't render with "ask me every time" cookie setting in Firefox
337 * :ghissue:`5703`: Notebook doesn't render with "ask me every time" cookie setting in Firefox
338 * :ghissue:`5817`: calling mock object in IPython 2.0.0 under Python 3.4.0 raises AttributeError
338 * :ghissue:`5817`: calling mock object in IPython 2.0.0 under Python 3.4.0 raises AttributeError
339 * :ghissue:`5499`: Error running widgets nbconvert example
339 * :ghissue:`5499`: Error running widgets nbconvert example
340 * :ghissue:`5654`: Broken links from ipython documentation
340 * :ghissue:`5654`: Broken links from ipython documentation
341 * :ghissue:`5019`: print in QT event callback doesn't show up in ipython notebook.
341 * :ghissue:`5019`: print in QT event callback doesn't show up in ipython notebook.
342 * :ghissue:`5800`: Only last In prompt number set ?
342 * :ghissue:`5800`: Only last In prompt number set ?
343 * :ghissue:`5801`: startup_command specified in ipengine_config.py is not executed
343 * :ghissue:`5801`: startup_command specified in ipengine_config.py is not executed
344 * :ghissue:`5690`: ipython 2.0.0 and pandoc 1.12.2.1 problem
344 * :ghissue:`5690`: ipython 2.0.0 and pandoc 1.12.2.1 problem
345 * :ghissue:`5408`: Add checking/flushing of background output from kernel in mainloop
345 * :ghissue:`5408`: Add checking/flushing of background output from kernel in mainloop
346 * :ghissue:`5407`: clearing message handlers on status=idle loses async output
346 * :ghissue:`5407`: clearing message handlers on status=idle loses async output
347 * :ghissue:`5467`: Incorrect behavior of up/down keyboard arrows in code cells on wrapped lines
347 * :ghissue:`5467`: Incorrect behavior of up/down keyboard arrows in code cells on wrapped lines
348 * :ghissue:`3085`: nicer notebook error message when lacking permissions
348 * :ghissue:`3085`: nicer notebook error message when lacking permissions
349 * :ghissue:`5765`: map_sync over empty list raises IndexError
349 * :ghissue:`5765`: map_sync over empty list raises IndexError
350 * :ghissue:`5553`: Notebook matplotlib inline backend: can't set figure facecolor
350 * :ghissue:`5553`: Notebook matplotlib inline backend: can't set figure facecolor
351 * :ghissue:`5710`: inspect.findsource monkeypatch raises wrong exception for C extensions
351 * :ghissue:`5710`: inspect.findsource monkeypatch raises wrong exception for C extensions
352 * :ghissue:`5706`: Multi-Directory notebooks overwrite each other's checkpoints
352 * :ghissue:`5706`: Multi-Directory notebooks overwrite each other's checkpoints
353 * :ghissue:`5698`: can't require a function named ``f``
353 * :ghissue:`5698`: can't require a function named ``f``
354 * :ghissue:`5569`: Keyboard shortcuts in documentation are out of date
354 * :ghissue:`5569`: Keyboard shortcuts in documentation are out of date
355 * :ghissue:`5566`: Function name printing should use ``__qualname__`` instead of ``__name__`` (Python 3)
355 * :ghissue:`5566`: Function name printing should use ``__qualname__`` instead of ``__name__`` (Python 3)
356 * :ghissue:`5676`: "bookmark -l" not working in ipython 2.0
356 * :ghissue:`5676`: "bookmark -l" not working in ipython 2.0
357 * :ghissue:`5555`: Differentiate more clearly between Notebooks and Folders in new UI
357 * :ghissue:`5555`: Differentiate more clearly between Notebooks and Folders in new UI
358 * :ghissue:`5590`: Marked double escape
358 * :ghissue:`5590`: Marked double escape
359 * :ghissue:`5514`: import tab-complete fail with ipython 2.0 shell
359 * :ghissue:`5514`: import tab-complete fail with ipython 2.0 shell
360 * :ghissue:`4012`: Notebook: link to markdown formatting reference
360 * :ghissue:`4012`: Notebook: link to markdown formatting reference
361 * :ghissue:`5611`: Typo in 'storemagic' documentation
361 * :ghissue:`5611`: Typo in 'storemagic' documentation
362 * :ghissue:`5589`: Kernel start fails when using --browser argument
362 * :ghissue:`5589`: Kernel start fails when using --browser argument
363 * :ghissue:`5491`: Bug in Windows ipconfig ip address regular expression
363 * :ghissue:`5491`: Bug in Windows ipconfig ip address regular expression
364 * :ghissue:`5579`: rmagic extension throws 'Error while parsing the string.' when last line is comment
364 * :ghissue:`5579`: rmagic extension throws 'Error while parsing the string.' when last line is comment
365 * :ghissue:`5518`: Ipython2 will not open ipynb in example directory
365 * :ghissue:`5518`: Ipython2 will not open ipynb in example directory
366 * :ghissue:`5561`: New widget documentation has missing notebook link
366 * :ghissue:`5561`: New widget documentation has missing notebook link
367 * :ghissue:`5128`: Page jumping when output from widget interaction replaced
367 * :ghissue:`5128`: Page jumping when output from widget interaction replaced
368 * :ghissue:`5519`: IPython.parallel.Client behavior as iterator
368 * :ghissue:`5519`: IPython.parallel.Client behavior as iterator
369 * :ghissue:`5510`: Tab-completion for function argument list
369 * :ghissue:`5510`: Tab-completion for function argument list
370
370
371
371
372 Issues closed in 2.0.0
372 Issues closed in 2.0.0
373 ----------------------
373 ----------------------
374
374
375
375
376 GitHub stats for 2013/08/09 - 2014/04/01 (since 1.0.0)
376 GitHub stats for 2013/08/09 - 2014/04/01 (since 1.0.0)
377
377
378 These lists are automatically generated, and may be incomplete or contain duplicates.
378 These lists are automatically generated, and may be incomplete or contain duplicates.
379
379
380 The following 94 authors contributed 3949 commits.
380 The following 94 authors contributed 3949 commits.
381
381
382 * Aaron Meurer
382 * Aaron Meurer
383 * Abhinav Upadhyay
383 * Abhinav Upadhyay
384 * Adam Riggall
384 * Adam Riggall
385 * Alex Rudy
385 * Alex Rudy
386 * Andrew Mark
386 * Andrew Mark
387 * Angus Griffith
387 * Angus Griffith
388 * Antony Lee
388 * Antony Lee
389 * Aron Ahmadia
389 * Aron Ahmadia
390 * Arun Persaud
390 * Arun Persaud
391 * Benjamin Ragan-Kelley
391 * Benjamin Ragan-Kelley
392 * Bing Xia
392 * Bing Xia
393 * Blake Griffith
393 * Blake Griffith
394 * Bouke van der Bijl
394 * Bouke van der Bijl
395 * Bradley M. Froehle
395 * Bradley M. Froehle
396 * Brian E. Granger
396 * Brian E. Granger
397 * Carlos Cordoba
397 * Carlos Cordoba
398 * chapmanb
398 * chapmanb
399 * chebee7i
399 * chebee7i
400 * Christoph Gohlke
400 * Christoph Gohlke
401 * Christophe Pradal
401 * Christophe Pradal
402 * Cyrille Rossant
402 * Cyrille Rossant
403 * Damián Avila
403 * Damián Avila
404 * Daniel B. Vasquez
404 * Daniel B. Vasquez
405 * Dav Clark
405 * Dav Clark
406 * David Hirschfeld
406 * David Hirschfeld
407 * David P. Sanders
407 * David P. Sanders
408 * David Wyde
408 * David Wyde
409 * David Österberg
409 * David Österberg
410 * Doug Blank
410 * Doug Blank
411 * Dražen Lučanin
411 * Dražen Lučanin
412 * epifanio
412 * epifanio
413 * Fernando Perez
413 * Fernando Perez
414 * Gabriel Becker
414 * Gabriel Becker
415 * Geert Barentsen
415 * Geert Barentsen
416 * Hans Meine
416 * Hans Meine
417 * Ingolf Becker
417 * Ingolf Becker
418 * Jake Vanderplas
418 * Jake Vanderplas
419 * Jakob Gager
419 * Jakob Gager
420 * James Porter
420 * James Porter
421 * Jason Grout
421 * Jason Grout
422 * Jeffrey Tratner
422 * Jeffrey Tratner
423 * Jonah Graham
423 * Jonah Graham
424 * Jonathan Frederic
424 * Jonathan Frederic
425 * Joris Van den Bossche
425 * Joris Van den Bossche
426 * Juergen Hasch
426 * Juergen Hasch
427 * Julian Taylor
427 * Julian Taylor
428 * Katie Silverio
428 * Katie Silverio
429 * Kevin Burke
429 * Kevin Burke
430 * Kieran O'Mahony
430 * Kieran O'Mahony
431 * Konrad Hinsen
431 * Konrad Hinsen
432 * Kyle Kelley
432 * Kyle Kelley
433 * Lawrence Fu
433 * Lawrence Fu
434 * Marc Molla
434 * Marc Molla
435 * Martín Gaitán
435 * Martín Gaitán
436 * Matt Henderson
436 * Matt Henderson
437 * Matthew Brett
437 * Matthew Brett
438 * Matthias Bussonnier
438 * Matthias Bussonnier
439 * Michael Droettboom
439 * Michael Droettboom
440 * Mike McKerns
440 * Mike McKerns
441 * Nathan Goldbaum
441 * Nathan Goldbaum
442 * Pablo de Oliveira
442 * Pablo de Oliveira
443 * Pankaj Pandey
443 * Pankaj Pandey
444 * Pascal Schetelat
444 * Pascal Schetelat
445 * Paul Ivanov
445 * Paul Ivanov
446 * Paul Moore
446 * Paul Moore
447 * Pere Vilas
447 * Pere Vilas
448 * Peter Davis
448 * Peter Davis
449 * Philippe Mallet-Ladeira
449 * Philippe Mallet-Ladeira
450 * Preston Holmes
450 * Preston Holmes
451 * Puneeth Chaganti
451 * Puneeth Chaganti
452 * Richard Everson
452 * Richard Everson
453 * Roberto Bonvallet
453 * Roberto Bonvallet
454 * Samuel Ainsworth
454 * Samuel Ainsworth
455 * Sean Vig
455 * Sean Vig
456 * Shashi Gowda
456 * Shashi Gowda
457 * Skipper Seabold
457 * Skipper Seabold
458 * Stephan Rave
458 * Stephan Rave
459 * Steve Fox
459 * Steve Fox
460 * Steven Silvester
460 * Steven Silvester
461 * stonebig
461 * stonebig
462 * Susan Tan
462 * Susan Tan
463 * Sylvain Corlay
463 * Sylvain Corlay
464 * Takeshi Kanmae
464 * Takeshi Kanmae
465 * Ted Drain
465 * Ted Drain
466 * Thomas A Caswell
466 * Thomas A Caswell
467 * Thomas Kluyver
467 * Thomas Kluyver
468 * Théophile Studer
468 * Théophile Studer
469 * Volker Braun
469 * Volker Braun
470 * Wieland Hoffmann
470 * Wieland Hoffmann
471 * Yaroslav Halchenko
471 * Yaroslav Halchenko
472 * Yoval P.
472 * Yoval P.
473 * Yung Siang Liau
473 * Yung Siang Liau
474 * Zachary Sailer
474 * Zachary Sailer
475 * zah
475 * zah
476
476
477
477
478 We closed a total of 1121 issues, 687 pull requests and 434 regular issues;
478 We closed a total of 1121 issues, 687 pull requests and 434 regular issues;
479 this is the full list (generated with the script
479 this is the full list (generated with the script
480 :file:`tools/github_stats.py`):
480 :file:`tools/github_stats.py`):
481
481
482 Pull Requests (687):
482 Pull Requests (687):
483
483
484 * :ghpull:`5487`: remove weird unicode space in the new copyright header
484 * :ghpull:`5487`: remove weird unicode space in the new copyright header
485 * :ghpull:`5476`: For 2.0: Fix links in Notebook Help Menu
485 * :ghpull:`5476`: For 2.0: Fix links in Notebook Help Menu
486 * :ghpull:`5337`: Examples reorganization
486 * :ghpull:`5337`: Examples reorganization
487 * :ghpull:`5436`: CodeMirror shortcuts in QuickHelp
487 * :ghpull:`5436`: CodeMirror shortcuts in QuickHelp
488 * :ghpull:`5444`: Fix numeric verification for Int and Float text widgets.
488 * :ghpull:`5444`: Fix numeric verification for Int and Float text widgets.
489 * :ghpull:`5449`: Stretch keyboard shortcut dialog
489 * :ghpull:`5449`: Stretch keyboard shortcut dialog
490 * :ghpull:`5473`: Minor corrections of git-hooks setup instructions
490 * :ghpull:`5473`: Minor corrections of git-hooks setup instructions
491 * :ghpull:`5471`: Add coding magic comment to nbconvert Python template
491 * :ghpull:`5471`: Add coding magic comment to nbconvert Python template
492 * :ghpull:`5452`: print_figure returns unicode for svg
492 * :ghpull:`5452`: print_figure returns unicode for svg
493 * :ghpull:`5450`: proposal: remove codename
493 * :ghpull:`5450`: proposal: remove codename
494 * :ghpull:`5462`: DOC : fixed minor error in using topological sort
494 * :ghpull:`5462`: DOC : fixed minor error in using topological sort
495 * :ghpull:`5463`: make spin_thread tests more forgiving of slow VMs
495 * :ghpull:`5463`: make spin_thread tests more forgiving of slow VMs
496 * :ghpull:`5464`: Fix starting notebook server with file/directory at command line.
496 * :ghpull:`5464`: Fix starting notebook server with file/directory at command line.
497 * :ghpull:`5453`: remove gitwash
497 * :ghpull:`5453`: remove gitwash
498 * :ghpull:`5454`: Improve history API docs
498 * :ghpull:`5454`: Improve history API docs
499 * :ghpull:`5431`: update github_stats and gh_api for 2.0
499 * :ghpull:`5431`: update github_stats and gh_api for 2.0
500 * :ghpull:`5290`: Add dual mode JS tests
500 * :ghpull:`5290`: Add dual mode JS tests
501 * :ghpull:`5451`: check that a handler is actually registered in ShortcutManager.handles
501 * :ghpull:`5451`: check that a handler is actually registered in ShortcutManager.handles
502 * :ghpull:`5447`: Add %%python2 cell magic
502 * :ghpull:`5447`: Add %%python2 cell magic
503 * :ghpull:`5439`: Point to the stable SymPy docs, not the dev docs
503 * :ghpull:`5439`: Point to the stable SymPy docs, not the dev docs
504 * :ghpull:`5437`: Install jquery-ui images
504 * :ghpull:`5437`: Install jquery-ui images
505 * :ghpull:`5434`: fix check for empty cells in rst template
505 * :ghpull:`5434`: fix check for empty cells in rst template
506 * :ghpull:`5432`: update links in notebook help menu
506 * :ghpull:`5432`: update links in notebook help menu
507 * :ghpull:`5435`: Update whatsnew (notebook tour)
507 * :ghpull:`5435`: Update whatsnew (notebook tour)
508 * :ghpull:`5433`: Document extraction of octave and R magics
508 * :ghpull:`5433`: Document extraction of octave and R magics
509 * :ghpull:`5428`: Update COPYING.txt
509 * :ghpull:`5428`: Update COPYING.txt
510 * :ghpull:`5426`: Separate get_session_info between HistoryAccessor and HistoryManager
510 * :ghpull:`5426`: Separate get_session_info between HistoryAccessor and HistoryManager
511 * :ghpull:`5419`: move prompts from margin to main column on small screens
511 * :ghpull:`5419`: move prompts from margin to main column on small screens
512 * :ghpull:`5430`: Make sure `element` is correct in the context of displayed JS
512 * :ghpull:`5430`: Make sure `element` is correct in the context of displayed JS
513 * :ghpull:`5396`: prevent saving of partially loaded notebooks
513 * :ghpull:`5396`: prevent saving of partially loaded notebooks
514 * :ghpull:`5429`: Fix tooltip pager feature
514 * :ghpull:`5429`: Fix tooltip pager feature
515 * :ghpull:`5330`: Updates to shell reference doc
515 * :ghpull:`5330`: Updates to shell reference doc
516 * :ghpull:`5404`: Fix broken accordion widget
516 * :ghpull:`5404`: Fix broken accordion widget
517 * :ghpull:`5339`: Don't use fork to start the notebook in js tests
517 * :ghpull:`5339`: Don't use fork to start the notebook in js tests
518 * :ghpull:`5320`: Fix for Tooltip & completer click focus bug.
518 * :ghpull:`5320`: Fix for Tooltip & completer click focus bug.
519 * :ghpull:`5421`: Move configuration of Python test controllers into setup()
519 * :ghpull:`5421`: Move configuration of Python test controllers into setup()
520 * :ghpull:`5418`: fix typo in ssh launcher send_file
520 * :ghpull:`5418`: fix typo in ssh launcher send_file
521 * :ghpull:`5403`: remove alt-- shortcut
521 * :ghpull:`5403`: remove alt-- shortcut
522 * :ghpull:`5389`: better log message in deprecated files/ redirect
522 * :ghpull:`5389`: better log message in deprecated files/ redirect
523 * :ghpull:`5333`: Fix filenbmanager.list_dirs fails for Windows user profile directory
523 * :ghpull:`5333`: Fix filenbmanager.list_dirs fails for Windows user profile directory
524 * :ghpull:`5390`: finish PR #5333
524 * :ghpull:`5390`: finish PR #5333
525 * :ghpull:`5326`: Some gardening on iptest result reporting
525 * :ghpull:`5326`: Some gardening on iptest result reporting
526 * :ghpull:`5375`: remove unnecessary onload hack from mathjax macro
526 * :ghpull:`5375`: remove unnecessary onload hack from mathjax macro
527 * :ghpull:`5368`: Flexbox classes specificity fixes
527 * :ghpull:`5368`: Flexbox classes specificity fixes
528 * :ghpull:`5331`: fix raw_input CSS
528 * :ghpull:`5331`: fix raw_input CSS
529 * :ghpull:`5395`: urlencode images for rst files
529 * :ghpull:`5395`: urlencode images for rst files
530 * :ghpull:`5049`: update quickhelp on adding and removing shortcuts
530 * :ghpull:`5049`: update quickhelp on adding and removing shortcuts
531 * :ghpull:`5391`: Fix Gecko (Netscape) keyboard handling
531 * :ghpull:`5391`: Fix Gecko (Netscape) keyboard handling
532 * :ghpull:`5387`: Respect '\r' characters in nbconvert.
532 * :ghpull:`5387`: Respect '\r' characters in nbconvert.
533 * :ghpull:`5399`: Revert PR #5388
533 * :ghpull:`5399`: Revert PR #5388
534 * :ghpull:`5388`: Suppress output even when a comment follows ;. Fixes #4525.
534 * :ghpull:`5388`: Suppress output even when a comment follows ;. Fixes #4525.
535 * :ghpull:`5394`: nbconvert doc update
535 * :ghpull:`5394`: nbconvert doc update
536 * :ghpull:`5359`: do not install less sources
536 * :ghpull:`5359`: do not install less sources
537 * :ghpull:`5346`: give hint on where to find custom.js
537 * :ghpull:`5346`: give hint on where to find custom.js
538 * :ghpull:`5357`: catch exception in copystat
538 * :ghpull:`5357`: catch exception in copystat
539 * :ghpull:`5380`: Remove DefineShortVerb... line from latex base template
539 * :ghpull:`5380`: Remove DefineShortVerb... line from latex base template
540 * :ghpull:`5376`: elide long containers in pretty
540 * :ghpull:`5376`: elide long containers in pretty
541 * :ghpull:`5310`: remove raw cell placeholder on focus, closes #5238
541 * :ghpull:`5310`: remove raw cell placeholder on focus, closes #5238
542 * :ghpull:`5332`: semantic names for indicator icons
542 * :ghpull:`5332`: semantic names for indicator icons
543 * :ghpull:`5386`: Fix import of socketserver on Python 3
543 * :ghpull:`5386`: Fix import of socketserver on Python 3
544 * :ghpull:`5360`: remove some redundant font-family: monospace
544 * :ghpull:`5360`: remove some redundant font-family: monospace
545 * :ghpull:`5379`: don't instantiate Application just for default logger
545 * :ghpull:`5379`: don't instantiate Application just for default logger
546 * :ghpull:`5372`: Don't autoclose strings
546 * :ghpull:`5372`: Don't autoclose strings
547 * :ghpull:`5296`: unify keyboard shortcut and codemirror interaction
547 * :ghpull:`5296`: unify keyboard shortcut and codemirror interaction
548 * :ghpull:`5349`: Make Hub.registration_timeout configurable
548 * :ghpull:`5349`: Make Hub.registration_timeout configurable
549 * :ghpull:`5340`: install bootstrap-tour css
549 * :ghpull:`5340`: install bootstrap-tour css
550 * :ghpull:`5335`: Update docstring for deepreload module
550 * :ghpull:`5335`: Update docstring for deepreload module
551 * :ghpull:`5321`: Improve assignment regex to match more tuple unpacking syntax
551 * :ghpull:`5321`: Improve assignment regex to match more tuple unpacking syntax
552 * :ghpull:`5325`: add NotebookNotary to NotebookApp's class list
552 * :ghpull:`5325`: add NotebookNotary to NotebookApp's class list
553 * :ghpull:`5313`: avoid loading preprocessors twice
553 * :ghpull:`5313`: avoid loading preprocessors twice
554 * :ghpull:`5308`: fix HTML capitalization in Highlight2HTML
554 * :ghpull:`5308`: fix HTML capitalization in Highlight2HTML
555 * :ghpull:`5295`: OutputArea.append_type functions are not prototype methods
555 * :ghpull:`5295`: OutputArea.append_type functions are not prototype methods
556 * :ghpull:`5318`: Fix local import of select_figure_formats
556 * :ghpull:`5318`: Fix local import of select_figure_formats
557 * :ghpull:`5300`: Fix NameError: name '_rl' is not defined
557 * :ghpull:`5300`: Fix NameError: name '_rl' is not defined
558 * :ghpull:`5292`: focus next cell on shift+enter
558 * :ghpull:`5292`: focus next cell on shift+enter
559 * :ghpull:`5291`: debug occasional error in test_queue_status
559 * :ghpull:`5291`: debug occasional error in test_queue_status
560 * :ghpull:`5289`: Finishing up #5274 (widget paths fixes)
560 * :ghpull:`5289`: Finishing up #5274 (widget paths fixes)
561 * :ghpull:`5232`: Make nbconvert html full output like notebook's html.
561 * :ghpull:`5232`: Make nbconvert html full output like notebook's html.
562 * :ghpull:`5288`: Correct initial state of kernel status indicator
562 * :ghpull:`5288`: Correct initial state of kernel status indicator
563 * :ghpull:`5253`: display any output from this session in terminal console
563 * :ghpull:`5253`: display any output from this session in terminal console
564 * :ghpull:`4802`: Tour of the notebook UI (was UI elements inline with highlighting)
564 * :ghpull:`4802`: Tour of the notebook UI (was UI elements inline with highlighting)
565 * :ghpull:`5285`: Update signature presentation in pinfo classes
565 * :ghpull:`5285`: Update signature presentation in pinfo classes
566 * :ghpull:`5268`: Refactoring Notebook.command_mode
566 * :ghpull:`5268`: Refactoring Notebook.command_mode
567 * :ghpull:`5226`: Don't run PYTHONSTARTUP file if a file or code is passed
567 * :ghpull:`5226`: Don't run PYTHONSTARTUP file if a file or code is passed
568 * :ghpull:`5283`: Remove Widget.closed attribute
568 * :ghpull:`5283`: Remove Widget.closed attribute
569 * :ghpull:`5279`: nbconvert: Make sure node is atleast version 0.9.12
569 * :ghpull:`5279`: nbconvert: Make sure node is atleast version 0.9.12
570 * :ghpull:`5281`: fix a typo introduced by a rebased PR
570 * :ghpull:`5281`: fix a typo introduced by a rebased PR
571 * :ghpull:`5280`: append Firefox overflow-x fix
571 * :ghpull:`5280`: append Firefox overflow-x fix
572 * :ghpull:`5277`: check that PIL can save JPEG to BytesIO
572 * :ghpull:`5277`: check that PIL can save JPEG to BytesIO
573 * :ghpull:`5044`: Store timestamps for modules to autoreload
573 * :ghpull:`5044`: Store timestamps for modules to autoreload
574 * :ghpull:`5278`: Update whatsnew doc from pr files
574 * :ghpull:`5278`: Update whatsnew doc from pr files
575 * :ghpull:`5276`: Fix kernel restart in case connection file is deleted.
575 * :ghpull:`5276`: Fix kernel restart in case connection file is deleted.
576 * :ghpull:`5272`: allow highlighting language to be set from notebook metadata
576 * :ghpull:`5272`: allow highlighting language to be set from notebook metadata
577 * :ghpull:`5158`: log refusal to serve hidden directories
577 * :ghpull:`5158`: log refusal to serve hidden directories
578 * :ghpull:`5188`: New events system
578 * :ghpull:`5188`: New events system
579 * :ghpull:`5265`: Missing class def for TimeoutError
579 * :ghpull:`5265`: Missing class def for TimeoutError
580 * :ghpull:`5267`: normalize unicode in notebook API tests
580 * :ghpull:`5267`: normalize unicode in notebook API tests
581 * :ghpull:`5076`: Refactor keyboard handling
581 * :ghpull:`5076`: Refactor keyboard handling
582 * :ghpull:`5241`: Add some tests for utils
582 * :ghpull:`5241`: Add some tests for utils
583 * :ghpull:`5261`: Don't allow edit mode up arrow to continue past index == 0
583 * :ghpull:`5261`: Don't allow edit mode up arrow to continue past index == 0
584 * :ghpull:`5223`: use on-load event to trigger resizable images
584 * :ghpull:`5223`: use on-load event to trigger resizable images
585 * :ghpull:`5252`: make one strptime call at import of jsonutil
585 * :ghpull:`5252`: make one strptime call at import of jsonutil
586 * :ghpull:`5153`: Dashboard sorting
586 * :ghpull:`5153`: Dashboard sorting
587 * :ghpull:`5169`: Allow custom header
587 * :ghpull:`5169`: Allow custom header
588 * :ghpull:`5242`: clear _reply_content cache before using it
588 * :ghpull:`5242`: clear _reply_content cache before using it
589 * :ghpull:`5194`: require latex titles to be ascii
589 * :ghpull:`5194`: require latex titles to be ascii
590 * :ghpull:`5244`: try to avoid EADDRINUSE errors on travis
590 * :ghpull:`5244`: try to avoid EADDRINUSE errors on travis
591 * :ghpull:`5245`: support extracted output in HTML template
591 * :ghpull:`5245`: support extracted output in HTML template
592 * :ghpull:`5209`: make input_area css generic to cells
592 * :ghpull:`5209`: make input_area css generic to cells
593 * :ghpull:`5246`: less %pylab, more cowbell!
593 * :ghpull:`5246`: less %pylab, more cowbell!
594 * :ghpull:`4895`: Improvements to %run completions
594 * :ghpull:`4895`: Improvements to %run completions
595 * :ghpull:`5243`: Add Javscript to base display priority list.
595 * :ghpull:`5243`: Add Javscript to base display priority list.
596 * :ghpull:`5175`: Audit .html() calls take #2
596 * :ghpull:`5175`: Audit .html() calls take #2
597 * :ghpull:`5146`: Dual mode bug fixes.
597 * :ghpull:`5146`: Dual mode bug fixes.
598 * :ghpull:`5207`: Children fire event
598 * :ghpull:`5207`: Children fire event
599 * :ghpull:`5215`: Dashboard "Running" Tab
599 * :ghpull:`5215`: Dashboard "Running" Tab
600 * :ghpull:`5240`: Remove unused IPython.nbconvert.utils.console module
600 * :ghpull:`5240`: Remove unused IPython.nbconvert.utils.console module
601 * :ghpull:`5239`: Fix exclusion of tests directories from coverage reports
601 * :ghpull:`5239`: Fix exclusion of tests directories from coverage reports
602 * :ghpull:`5203`: capture some logging/warning output in some tests
602 * :ghpull:`5203`: capture some logging/warning output in some tests
603 * :ghpull:`5216`: fixup positional arg handling in notebook app
603 * :ghpull:`5216`: fixup positional arg handling in notebook app
604 * :ghpull:`5229`: get _ipython_display_ method safely
604 * :ghpull:`5229`: get _ipython_display_ method safely
605 * :ghpull:`5234`: DOC : modified docs is HasTraits.traits and HasTraits.class_traits
605 * :ghpull:`5234`: DOC : modified docs is HasTraits.traits and HasTraits.class_traits
606 * :ghpull:`5221`: Change widget children List to Tuple.
606 * :ghpull:`5221`: Change widget children List to Tuple.
607 * :ghpull:`5231`: don't forget base_url when updating address bar in rename
607 * :ghpull:`5231`: don't forget base_url when updating address bar in rename
608 * :ghpull:`5173`: Moved widget files into static/widgets/*
608 * :ghpull:`5173`: Moved widget files into static/widgets/*
609 * :ghpull:`5222`: Unset PYTHONWARNINGS envvar before running subprocess tests.
609 * :ghpull:`5222`: Unset PYTHONWARNINGS envvar before running subprocess tests.
610 * :ghpull:`5172`: Prevent page breaks when printing notebooks via print-view.
610 * :ghpull:`5172`: Prevent page breaks when printing notebooks via print-view.
611 * :ghpull:`4985`: Add automatic Closebrackets function to Codemirror.
611 * :ghpull:`4985`: Add automatic Closebrackets function to Codemirror.
612 * :ghpull:`5220`: Make traitlets notify check more robust against classes redefining equality and bool
612 * :ghpull:`5220`: Make traitlets notify check more robust against classes redefining equality and bool
613 * :ghpull:`5197`: If there is an error comparing traitlet values when setting a trait, default to go ahead and notify of the new value.
613 * :ghpull:`5197`: If there is an error comparing traitlet values when setting a trait, default to go ahead and notify of the new value.
614 * :ghpull:`5210`: fix pyreadline import in rlineimpl
614 * :ghpull:`5210`: fix pyreadline import in rlineimpl
615 * :ghpull:`5212`: Wrap nbconvert Markdown/Heading cells in live divs
615 * :ghpull:`5212`: Wrap nbconvert Markdown/Heading cells in live divs
616 * :ghpull:`5200`: Allow to pass option to jinja env
616 * :ghpull:`5200`: Allow to pass option to jinja env
617 * :ghpull:`5202`: handle nodejs executable on debian
617 * :ghpull:`5202`: handle nodejs executable on debian
618 * :ghpull:`5112`: band-aid for completion
618 * :ghpull:`5112`: band-aid for completion
619 * :ghpull:`5187`: handle missing output metadata in nbconvert
619 * :ghpull:`5187`: handle missing output metadata in nbconvert
620 * :ghpull:`5181`: use gnureadline on OS X
620 * :ghpull:`5181`: use gnureadline on OS X
621 * :ghpull:`5136`: set default value from signature defaults in interact
621 * :ghpull:`5136`: set default value from signature defaults in interact
622 * :ghpull:`5132`: remove application/pdf->pdf transform in javascript
622 * :ghpull:`5132`: remove application/pdf->pdf transform in javascript
623 * :ghpull:`5116`: reorganize who knows what about paths
623 * :ghpull:`5116`: reorganize who knows what about paths
624 * :ghpull:`5165`: Don't introspect __call__ for simple callables
624 * :ghpull:`5165`: Don't introspect __call__ for simple callables
625 * :ghpull:`5170`: Added msg_throttle sync=True widget traitlet
625 * :ghpull:`5170`: Added msg_throttle sync=True widget traitlet
626 * :ghpull:`5191`: Translate markdown link to rst
626 * :ghpull:`5191`: Translate markdown link to rst
627 * :ghpull:`5037`: FF Fix: alignment and scale of text widget
627 * :ghpull:`5037`: FF Fix: alignment and scale of text widget
628 * :ghpull:`5179`: remove websocket url
628 * :ghpull:`5179`: remove websocket url
629 * :ghpull:`5110`: add InlineBackend.print_figure_kwargs
629 * :ghpull:`5110`: add InlineBackend.print_figure_kwargs
630 * :ghpull:`5147`: Some template URL changes
630 * :ghpull:`5147`: Some template URL changes
631 * :ghpull:`5100`: remove base_kernel_url
631 * :ghpull:`5100`: remove base_kernel_url
632 * :ghpull:`5163`: Simplify implementation of TemporaryWorkingDirectory.
632 * :ghpull:`5163`: Simplify implementation of TemporaryWorkingDirectory.
633 * :ghpull:`5166`: remove mktemp usage
633 * :ghpull:`5166`: remove mktemp usage
634 * :ghpull:`5133`: don't use combine option on ucs package
634 * :ghpull:`5133`: don't use combine option on ucs package
635 * :ghpull:`5089`: Remove legacy azure nbmanager
635 * :ghpull:`5089`: Remove legacy azure nbmanager
636 * :ghpull:`5159`: remove append_json reference
636 * :ghpull:`5159`: remove append_json reference
637 * :ghpull:`5095`: handle image size metadata in nbconvert html
637 * :ghpull:`5095`: handle image size metadata in nbconvert html
638 * :ghpull:`5156`: fix IPython typo, closes #5155
638 * :ghpull:`5156`: fix IPython typo, closes #5155
639 * :ghpull:`5150`: fix a link that was broken
639 * :ghpull:`5150`: fix a link that was broken
640 * :ghpull:`5114`: use non-breaking space for button with no description
640 * :ghpull:`5114`: use non-breaking space for button with no description
641 * :ghpull:`4778`: add APIs for installing notebook extensions
641 * :ghpull:`4778`: add APIs for installing notebook extensions
642 * :ghpull:`5125`: Fix the display of functions with keyword-only arguments on Python 3.
642 * :ghpull:`5125`: Fix the display of functions with keyword-only arguments on Python 3.
643 * :ghpull:`5097`: minor notebook logging changes
643 * :ghpull:`5097`: minor notebook logging changes
644 * :ghpull:`5047`: only validate package_data when it might be used
644 * :ghpull:`5047`: only validate package_data when it might be used
645 * :ghpull:`5121`: fix remove event in KeyboardManager.register_events
645 * :ghpull:`5121`: fix remove event in KeyboardManager.register_events
646 * :ghpull:`5119`: Removed 'list' view from Variable Inspector example
646 * :ghpull:`5119`: Removed 'list' view from Variable Inspector example
647 * :ghpull:`4925`: Notebook manager api fixes
647 * :ghpull:`4925`: Notebook manager api fixes
648 * :ghpull:`4996`: require print_method to be a bound method
648 * :ghpull:`4996`: require print_method to be a bound method
649 * :ghpull:`5108`: require specifying the version for gh-pages
649 * :ghpull:`5108`: require specifying the version for gh-pages
650 * :ghpull:`5111`: Minor typo in docstring of IPython.parallel DirectView
650 * :ghpull:`5111`: Minor typo in docstring of IPython.parallel DirectView
651 * :ghpull:`5098`: mostly debugging changes for IPython.parallel
651 * :ghpull:`5098`: mostly debugging changes for IPython.parallel
652 * :ghpull:`5087`: trust cells with no output
652 * :ghpull:`5087`: trust cells with no output
653 * :ghpull:`5059`: Fix incorrect `Patch` logic in widget code
653 * :ghpull:`5059`: Fix incorrect `Patch` logic in widget code
654 * :ghpull:`5075`: More flexible box model fixes
654 * :ghpull:`5075`: More flexible box model fixes
655 * :ghpull:`5091`: Provide logging messages in ipcluster log when engine or controllers fail to start
655 * :ghpull:`5091`: Provide logging messages in ipcluster log when engine or controllers fail to start
656 * :ghpull:`5090`: Print a warning when iptest is run from the IPython source directory
656 * :ghpull:`5090`: Print a warning when iptest is run from the IPython source directory
657 * :ghpull:`5077`: flush replies when entering an eventloop
657 * :ghpull:`5077`: flush replies when entering an eventloop
658 * :ghpull:`5055`: Minimal changes to import IPython from IronPython
658 * :ghpull:`5055`: Minimal changes to import IPython from IronPython
659 * :ghpull:`5078`: Updating JS tests README.md
659 * :ghpull:`5078`: Updating JS tests README.md
660 * :ghpull:`5083`: don't create js test directories unless they are being used
660 * :ghpull:`5083`: don't create js test directories unless they are being used
661 * :ghpull:`5062`: adjust some events in nb_roundtrip
661 * :ghpull:`5062`: adjust some events in nb_roundtrip
662 * :ghpull:`5043`: various unicode / url fixes
662 * :ghpull:`5043`: various unicode / url fixes
663 * :ghpull:`5066`: remove (almost) all mentions of pylab from our examples
663 * :ghpull:`5066`: remove (almost) all mentions of pylab from our examples
664 * :ghpull:`4977`: ensure scp destination directories exist (with mkdir -p)
664 * :ghpull:`4977`: ensure scp destination directories exist (with mkdir -p)
665 * :ghpull:`5053`: Move&rename JS tests
665 * :ghpull:`5053`: Move&rename JS tests
666 * :ghpull:`5067`: show traceback in widget handlers
666 * :ghpull:`5067`: show traceback in widget handlers
667 * :ghpull:`4920`: Adding PDFFormatter and kernel side handling of PDF display data
667 * :ghpull:`4920`: Adding PDFFormatter and kernel side handling of PDF display data
668 * :ghpull:`5048`: Add edit/command mode indicator
668 * :ghpull:`5048`: Add edit/command mode indicator
669 * :ghpull:`5061`: make execute button in menu bar match shift-enter
669 * :ghpull:`5061`: make execute button in menu bar match shift-enter
670 * :ghpull:`5052`: Add q to toggle the pager.
670 * :ghpull:`5052`: Add q to toggle the pager.
671 * :ghpull:`5070`: fix flex: auto
671 * :ghpull:`5070`: fix flex: auto
672 * :ghpull:`5065`: Add example of using annotations in interact
672 * :ghpull:`5065`: Add example of using annotations in interact
673 * :ghpull:`5063`: another pass on Interact example notebooks
673 * :ghpull:`5063`: another pass on Interact example notebooks
674 * :ghpull:`5051`: FF Fix: code cell missing hscroll (2)
674 * :ghpull:`5051`: FF Fix: code cell missing hscroll (2)
675 * :ghpull:`4960`: Interact/Interactive for widget
675 * :ghpull:`4960`: Interact/Interactive for widget
676 * :ghpull:`5045`: Clear timeout in multi-press keyboard shortcuts.
676 * :ghpull:`5045`: Clear timeout in multi-press keyboard shortcuts.
677 * :ghpull:`5060`: Change 'bind' to 'link'
677 * :ghpull:`5060`: Change 'bind' to 'link'
678 * :ghpull:`5039`: Expose kernel_info method on inprocess kernel client
678 * :ghpull:`5039`: Expose kernel_info method on inprocess kernel client
679 * :ghpull:`5058`: Fix iopubwatcher.py example script.
679 * :ghpull:`5058`: Fix iopubwatcher.py example script.
680 * :ghpull:`5035`: FF Fix: code cell missing hscroll
680 * :ghpull:`5035`: FF Fix: code cell missing hscroll
681 * :ghpull:`5040`: Polishing some docs
681 * :ghpull:`5040`: Polishing some docs
682 * :ghpull:`5001`: Add directory navigation to dashboard
682 * :ghpull:`5001`: Add directory navigation to dashboard
683 * :ghpull:`5042`: Remove duplicated Channel ABC classes.
683 * :ghpull:`5042`: Remove duplicated Channel ABC classes.
684 * :ghpull:`5036`: FF Fix: ext link icon same line as link text in help menu
684 * :ghpull:`5036`: FF Fix: ext link icon same line as link text in help menu
685 * :ghpull:`4975`: setup.py changes for 2.0
685 * :ghpull:`4975`: setup.py changes for 2.0
686 * :ghpull:`4774`: emit event on appended element on dom
686 * :ghpull:`4774`: emit event on appended element on dom
687 * :ghpull:`5023`: Widgets- add ability to pack and unpack arrays on JS side.
687 * :ghpull:`5023`: Widgets- add ability to pack and unpack arrays on JS side.
688 * :ghpull:`5003`: Fix pretty reprs of super() objects
688 * :ghpull:`5003`: Fix pretty reprs of super() objects
689 * :ghpull:`4974`: make paste focus the pasted cell
689 * :ghpull:`4974`: make paste focus the pasted cell
690 * :ghpull:`5012`: Make `SelectionWidget.values` a dict
690 * :ghpull:`5012`: Make `SelectionWidget.values` a dict
691 * :ghpull:`5018`: Prevent 'iptest IPython' from trying to run.
691 * :ghpull:`5018`: Prevent 'iptest IPython' from trying to run.
692 * :ghpull:`5025`: citation2latex filter (using HTMLParser)
692 * :ghpull:`5025`: citation2latex filter (using HTMLParser)
693 * :ghpull:`5027`: pin lessc to 1.4
693 * :ghpull:`5027`: pin lessc to 1.4
694 * :ghpull:`4952`: Widget test inconsistencies
694 * :ghpull:`4952`: Widget test inconsistencies
695 * :ghpull:`5014`: Fix command mode & popup view bug
695 * :ghpull:`5014`: Fix command mode & popup view bug
696 * :ghpull:`4842`: more subtle kernel indicator
696 * :ghpull:`4842`: more subtle kernel indicator
697 * :ghpull:`5017`: Add notebook examples link to help menu.
697 * :ghpull:`5017`: Add notebook examples link to help menu.
698 * :ghpull:`5015`: don't write cell.trusted to disk
698 * :ghpull:`5015`: don't write cell.trusted to disk
699 * :ghpull:`5007`: Update whatsnew doc from PR files
699 * :ghpull:`5007`: Update whatsnew doc from PR files
700 * :ghpull:`5010`: Fixes for widget alignment in FF
700 * :ghpull:`5010`: Fixes for widget alignment in FF
701 * :ghpull:`4901`: Add a convenience class to sync traitlet attributes
701 * :ghpull:`4901`: Add a convenience class to sync traitlet attributes
702 * :ghpull:`5008`: updated explanation of 'pyin' messages
702 * :ghpull:`5008`: updated explanation of 'pyin' messages
703 * :ghpull:`5004`: Fix widget vslider spacing
703 * :ghpull:`5004`: Fix widget vslider spacing
704 * :ghpull:`4933`: Small Widget inconsistency fixes
704 * :ghpull:`4933`: Small Widget inconsistency fixes
705 * :ghpull:`4979`: add versioning notes to small message spec changes
705 * :ghpull:`4979`: add versioning notes to small message spec changes
706 * :ghpull:`4893`: add font-awesome 3.2.1
706 * :ghpull:`4893`: add font-awesome 3.2.1
707 * :ghpull:`4982`: Live readout for slider widgets
707 * :ghpull:`4982`: Live readout for slider widgets
708 * :ghpull:`4813`: make help menu a template
708 * :ghpull:`4813`: make help menu a template
709 * :ghpull:`4939`: Embed qtconsole docs (continued)
709 * :ghpull:`4939`: Embed qtconsole docs (continued)
710 * :ghpull:`4964`: remove shift-= merge keyboard shortcut
710 * :ghpull:`4964`: remove shift-= merge keyboard shortcut
711 * :ghpull:`4504`: Allow input transformers to raise SyntaxError
711 * :ghpull:`4504`: Allow input transformers to raise SyntaxError
712 * :ghpull:`4929`: Fixing various modal/focus related bugs
712 * :ghpull:`4929`: Fixing various modal/focus related bugs
713 * :ghpull:`4971`: Fixing issues with js tests
713 * :ghpull:`4971`: Fixing issues with js tests
714 * :ghpull:`4972`: Work around problem in doctest discovery in Python 3.4 with PyQt
714 * :ghpull:`4972`: Work around problem in doctest discovery in Python 3.4 with PyQt
715 * :ghpull:`4937`: pickle arrays with dtype=object
715 * :ghpull:`4937`: pickle arrays with dtype=object
716 * :ghpull:`4934`: `ipython profile create` respects `--ipython-dir`
716 * :ghpull:`4934`: `ipython profile create` respects `--ipython-dir`
717 * :ghpull:`4954`: generate unicode filename
717 * :ghpull:`4954`: generate unicode filename
718 * :ghpull:`4845`: Add Origin Checking.
718 * :ghpull:`4845`: Add Origin Checking.
719 * :ghpull:`4916`: Fine tuning the behavior of the modal UI
719 * :ghpull:`4916`: Fine tuning the behavior of the modal UI
720 * :ghpull:`4966`: Ignore sys.argv for NotebookNotary in tests
720 * :ghpull:`4966`: Ignore sys.argv for NotebookNotary in tests
721 * :ghpull:`4967`: Fix typo in warning about web socket being closed
721 * :ghpull:`4967`: Fix typo in warning about web socket being closed
722 * :ghpull:`4965`: Remove mention of iplogger from setup.py
722 * :ghpull:`4965`: Remove mention of iplogger from setup.py
723 * :ghpull:`4962`: Fixed typos in quick-help text
723 * :ghpull:`4962`: Fixed typos in quick-help text
724 * :ghpull:`4953`: add utils.wait_for_idle in js tests
724 * :ghpull:`4953`: add utils.wait_for_idle in js tests
725 * :ghpull:`4870`: ipython_directive, report except/warn in block and add :okexcept: :okwarning: options to suppress
725 * :ghpull:`4870`: ipython_directive, report except/warn in block and add :okexcept: :okwarning: options to suppress
726 * :ghpull:`4662`: Menu cleanup
726 * :ghpull:`4662`: Menu cleanup
727 * :ghpull:`4824`: sign notebooks
727 * :ghpull:`4824`: sign notebooks
728 * :ghpull:`4943`: Docs shotgun 4
728 * :ghpull:`4943`: Docs shotgun 4
729 * :ghpull:`4848`: avoid import of nearby temporary with %edit
729 * :ghpull:`4848`: avoid import of nearby temporary with %edit
730 * :ghpull:`4950`: Two fixes for file upload related bugs
730 * :ghpull:`4950`: Two fixes for file upload related bugs
731 * :ghpull:`4927`: there shouldn't be a 'files/' prefix in FileLink[s]
731 * :ghpull:`4927`: there shouldn't be a 'files/' prefix in FileLink[s]
732 * :ghpull:`4928`: use importlib.machinery when available
732 * :ghpull:`4928`: use importlib.machinery when available
733 * :ghpull:`4949`: Remove the docscrape modules, which are part of numpydoc
733 * :ghpull:`4949`: Remove the docscrape modules, which are part of numpydoc
734 * :ghpull:`4849`: Various unicode fixes (mostly on Windows)
734 * :ghpull:`4849`: Various unicode fixes (mostly on Windows)
735 * :ghpull:`4932`: always point py3compat.input to builtin_mod.input
735 * :ghpull:`4932`: always point py3compat.input to builtin_mod.input
736 * :ghpull:`4807`: Correct handling of ansi colour codes when nbconverting to latex
736 * :ghpull:`4807`: Correct handling of ansi colour codes when nbconverting to latex
737 * :ghpull:`4922`: Python nbconvert output shouldn't have output
737 * :ghpull:`4922`: Python nbconvert output shouldn't have output
738 * :ghpull:`4912`: Skip some Windows io failures
738 * :ghpull:`4912`: Skip some Windows io failures
739 * :ghpull:`4919`: flush output before showing tracebacks
739 * :ghpull:`4919`: flush output before showing tracebacks
740 * :ghpull:`4915`: ZMQCompleter inherits from IPCompleter
740 * :ghpull:`4915`: ZMQCompleter inherits from IPCompleter
741 * :ghpull:`4890`: better cleanup channel FDs
741 * :ghpull:`4890`: better cleanup channel FDs
742 * :ghpull:`4880`: set profile name from profile_dir
742 * :ghpull:`4880`: set profile name from profile_dir
743 * :ghpull:`4853`: fix setting image height/width from metadata
743 * :ghpull:`4853`: fix setting image height/width from metadata
744 * :ghpull:`4786`: Reduce spacing of heading cells
744 * :ghpull:`4786`: Reduce spacing of heading cells
745 * :ghpull:`4680`: Minimal pandoc version warning
745 * :ghpull:`4680`: Minimal pandoc version warning
746 * :ghpull:`4908`: detect builtin docstrings in oinspect
746 * :ghpull:`4908`: detect builtin docstrings in oinspect
747 * :ghpull:`4911`: Don't use `python -m package` on Windows Python 2
747 * :ghpull:`4911`: Don't use `python -m package` on Windows Python 2
748 * :ghpull:`4909`: sort dictionary keys before comparison, ordering is not guaranteed
748 * :ghpull:`4909`: sort dictionary keys before comparison, ordering is not guaranteed
749 * :ghpull:`4374`: IPEP 23: Backbone.js Widgets
749 * :ghpull:`4374`: IPEP 23: Backbone.js Widgets
750 * :ghpull:`4903`: use https for all embeds
750 * :ghpull:`4903`: use https for all embeds
751 * :ghpull:`4894`: Shortcut changes
751 * :ghpull:`4894`: Shortcut changes
752 * :ghpull:`4897`: More detailed documentation about kernel_cmd
752 * :ghpull:`4897`: More detailed documentation about kernel_cmd
753 * :ghpull:`4891`: Squash a few Sphinx warnings from nbconvert.utils.lexers docstrings
753 * :ghpull:`4891`: Squash a few Sphinx warnings from nbconvert.utils.lexers docstrings
754 * :ghpull:`4679`: JPG compression for inline pylab
754 * :ghpull:`4679`: JPG compression for inline pylab
755 * :ghpull:`4708`: Fix indent and center
755 * :ghpull:`4708`: Fix indent and center
756 * :ghpull:`4789`: fix IPython.embed
756 * :ghpull:`4789`: fix IPython.embed
757 * :ghpull:`4655`: prefer marked to pandoc for markdown2html
757 * :ghpull:`4655`: prefer marked to pandoc for markdown2html
758 * :ghpull:`4876`: don't show tooltip if object is not found
758 * :ghpull:`4876`: don't show tooltip if object is not found
759 * :ghpull:`4873`: use 'combine' option to ucs package
759 * :ghpull:`4873`: use 'combine' option to ucs package
760 * :ghpull:`4732`: Accents in notebook names and in command-line (nbconvert)
760 * :ghpull:`4732`: Accents in notebook names and in command-line (nbconvert)
761 * :ghpull:`4867`: Update URL for Lawrence Hall of Science webcam image
761 * :ghpull:`4867`: Update URL for Lawrence Hall of Science webcam image
762 * :ghpull:`4868`: Static path fixes
762 * :ghpull:`4868`: Static path fixes
763 * :ghpull:`4858`: fix tb_offset when running a file
763 * :ghpull:`4858`: fix tb_offset when running a file
764 * :ghpull:`4826`: some $.html( -> $.text(
764 * :ghpull:`4826`: some $.html( -> $.text(
765 * :ghpull:`4847`: add js kernel_info request
765 * :ghpull:`4847`: add js kernel_info request
766 * :ghpull:`4832`: allow NotImplementedError in formatters
766 * :ghpull:`4832`: allow NotImplementedError in formatters
767 * :ghpull:`4803`: BUG: fix cython magic support in ipython_directive
767 * :ghpull:`4803`: BUG: fix cython magic support in ipython_directive
768 * :ghpull:`4865`: `build` listed twice in .gitignore. Removing one.
768 * :ghpull:`4865`: `build` listed twice in .gitignore. Removing one.
769 * :ghpull:`4851`: fix tooltip token regex for single-character names
769 * :ghpull:`4851`: fix tooltip token regex for single-character names
770 * :ghpull:`4846`: Remove some leftover traces of irunner
770 * :ghpull:`4846`: Remove some leftover traces of irunner
771 * :ghpull:`4820`: fix regex for cleaning old logs with ipcluster
771 * :ghpull:`4820`: fix regex for cleaning old logs with ipcluster
772 * :ghpull:`4844`: adjustments to notebook app logging
772 * :ghpull:`4844`: adjustments to notebook app logging
773 * :ghpull:`4840`: Error in Session.send_raw()
773 * :ghpull:`4840`: Error in Session.send_raw()
774 * :ghpull:`4819`: update CodeMirror to 3.21
774 * :ghpull:`4819`: update CodeMirror to 3.21
775 * :ghpull:`4823`: Minor fixes for typos/inconsistencies in parallel docs
775 * :ghpull:`4823`: Minor fixes for typos/inconsistencies in parallel docs
776 * :ghpull:`4811`: document code mirror tab and shift-tab
776 * :ghpull:`4811`: document code mirror tab and shift-tab
777 * :ghpull:`4795`: merge reveal templates
777 * :ghpull:`4795`: merge reveal templates
778 * :ghpull:`4796`: update components
778 * :ghpull:`4796`: update components
779 * :ghpull:`4806`: Correct order of packages for unicode in nbconvert to LaTeX
779 * :ghpull:`4806`: Correct order of packages for unicode in nbconvert to LaTeX
780 * :ghpull:`4800`: Qt frontend: Handle 'aborted' prompt replies.
780 * :ghpull:`4800`: Qt frontend: Handle 'aborted' prompt replies.
781 * :ghpull:`4794`: Compatibility fix for Python3 (Issue #4783 )
781 * :ghpull:`4794`: Compatibility fix for Python3 (Issue #4783 )
782 * :ghpull:`4799`: minor js test fix
782 * :ghpull:`4799`: minor js test fix
783 * :ghpull:`4788`: warn when notebook is started in pylab mode
783 * :ghpull:`4788`: warn when notebook is started in pylab mode
784 * :ghpull:`4772`: Notebook server info files
784 * :ghpull:`4772`: Notebook server info files
785 * :ghpull:`4797`: be conservative about kernel_info implementation
785 * :ghpull:`4797`: be conservative about kernel_info implementation
786 * :ghpull:`4787`: non-python kernels run python code with qtconsole
786 * :ghpull:`4787`: non-python kernels run python code with qtconsole
787 * :ghpull:`4565`: various display type validations
787 * :ghpull:`4565`: various display type validations
788 * :ghpull:`4703`: Math macro in jinja templates.
788 * :ghpull:`4703`: Math macro in jinja templates.
789 * :ghpull:`4781`: Fix "Source" text for the "Other Syntax" section of the "Typesetting Math" notebook
789 * :ghpull:`4781`: Fix "Source" text for the "Other Syntax" section of the "Typesetting Math" notebook
790 * :ghpull:`4776`: Manually document py3compat module.
790 * :ghpull:`4776`: Manually document py3compat module.
791 * :ghpull:`4533`: propagate display metadata to all mimetypes
791 * :ghpull:`4533`: propagate display metadata to all mimetypes
792 * :ghpull:`4785`: Replacing a for-in loop by an index loop on an array
792 * :ghpull:`4785`: Replacing a for-in loop by an index loop on an array
793 * :ghpull:`4780`: Updating CSS for UI example.
793 * :ghpull:`4780`: Updating CSS for UI example.
794 * :ghpull:`3605`: Modal UI
794 * :ghpull:`3605`: Modal UI
795 * :ghpull:`4758`: Python 3.4 fixes
795 * :ghpull:`4758`: Python 3.4 fixes
796 * :ghpull:`4735`: add some HTML error pages
796 * :ghpull:`4735`: add some HTML error pages
797 * :ghpull:`4775`: Update whatsnew doc from PR files
797 * :ghpull:`4775`: Update whatsnew doc from PR files
798 * :ghpull:`4760`: Make examples and docs more Python 3 aware
798 * :ghpull:`4760`: Make examples and docs more Python 3 aware
799 * :ghpull:`4773`: Don't wait forever for notebook server to launch/die for tests
799 * :ghpull:`4773`: Don't wait forever for notebook server to launch/die for tests
800 * :ghpull:`4768`: Qt console: Fix _prompt_pos accounting on timer flush output.
800 * :ghpull:`4768`: Qt console: Fix _prompt_pos accounting on timer flush output.
801 * :ghpull:`4727`: Remove Nbconvert template loading magic
801 * :ghpull:`4727`: Remove Nbconvert template loading magic
802 * :ghpull:`4763`: Set numpydoc options to produce fewer Sphinx warnings.
802 * :ghpull:`4763`: Set numpydoc options to produce fewer Sphinx warnings.
803 * :ghpull:`4770`: always define aliases, even if empty
803 * :ghpull:`4770`: always define aliases, even if empty
804 * :ghpull:`4766`: add `python -m` entry points for everything
804 * :ghpull:`4766`: add `python -m` entry points for everything
805 * :ghpull:`4767`: remove manpages for irunner, iplogger
805 * :ghpull:`4767`: remove manpages for irunner, iplogger
806 * :ghpull:`4751`: Added --post-serve explanation into the nbconvert docs.
806 * :ghpull:`4751`: Added --post-serve explanation into the nbconvert docs.
807 * :ghpull:`4762`: whitelist alphanumeric characters for cookie_name
807 * :ghpull:`4762`: whitelist alphanumeric characters for cookie_name
808 * :ghpull:`4625`: Deprecate %profile magic
808 * :ghpull:`4625`: Deprecate %profile magic
809 * :ghpull:`4745`: warn on failed formatter calls
809 * :ghpull:`4745`: warn on failed formatter calls
810 * :ghpull:`4746`: remove redundant cls alias on Windows
810 * :ghpull:`4746`: remove redundant cls alias on Windows
811 * :ghpull:`4749`: Fix bug in determination of public ips.
811 * :ghpull:`4749`: Fix bug in determination of public ips.
812 * :ghpull:`4715`: restore use of tornado static_url in templates
812 * :ghpull:`4715`: restore use of tornado static_url in templates
813 * :ghpull:`4748`: fix race condition in profiledir creation.
813 * :ghpull:`4748`: fix race condition in profiledir creation.
814 * :ghpull:`4720`: never use ssh multiplexer in tunnels
814 * :ghpull:`4720`: never use ssh multiplexer in tunnels
815 * :ghpull:`4658`: Bug fix for #4643: Regex object needs to be reset between calls in toolt...
815 * :ghpull:`4658`: Bug fix for #4643: Regex object needs to be reset between calls in toolt...
816 * :ghpull:`4561`: Add Formatter.pop(type)
816 * :ghpull:`4561`: Add Formatter.pop(type)
817 * :ghpull:`4712`: Docs shotgun 3
817 * :ghpull:`4712`: Docs shotgun 3
818 * :ghpull:`4713`: Fix saving kernel history in Python 2
818 * :ghpull:`4713`: Fix saving kernel history in Python 2
819 * :ghpull:`4744`: don't use lazily-evaluated rc.ids in wait_for_idle
819 * :ghpull:`4744`: don't use lazily-evaluated rc.ids in wait_for_idle
820 * :ghpull:`4740`: %env can't set variables
820 * :ghpull:`4740`: %env can't set variables
821 * :ghpull:`4737`: check every link when detecting virutalenv
821 * :ghpull:`4737`: check every link when detecting virutalenv
822 * :ghpull:`4738`: don't inject help into user_ns
822 * :ghpull:`4738`: don't inject help into user_ns
823 * :ghpull:`4739`: skip html nbconvert tests when their dependencies are missing
823 * :ghpull:`4739`: skip html nbconvert tests when their dependencies are missing
824 * :ghpull:`4730`: Fix stripping continuation prompts when copying from Qt console
824 * :ghpull:`4730`: Fix stripping continuation prompts when copying from Qt console
825 * :ghpull:`4725`: Doc fixes
825 * :ghpull:`4725`: Doc fixes
826 * :ghpull:`4656`: Nbconvert HTTP service
826 * :ghpull:`4656`: Nbconvert HTTP service
827 * :ghpull:`4710`: make @interactive decorator friendlier with dill
827 * :ghpull:`4710`: make @interactive decorator friendlier with dill
828 * :ghpull:`4722`: allow purging local results as long as they are not outstanding
828 * :ghpull:`4722`: allow purging local results as long as they are not outstanding
829 * :ghpull:`4549`: Updated IPython console lexers.
829 * :ghpull:`4549`: Updated IPython console lexers.
830 * :ghpull:`4570`: Update IPython directive
830 * :ghpull:`4570`: Update IPython directive
831 * :ghpull:`4719`: Fix comment typo in prefilter.py
831 * :ghpull:`4719`: Fix comment typo in prefilter.py
832 * :ghpull:`4575`: make sure to encode URL components for API requests
832 * :ghpull:`4575`: make sure to encode URL components for API requests
833 * :ghpull:`4718`: Fixed typo in displaypub
833 * :ghpull:`4718`: Fixed typo in displaypub
834 * :ghpull:`4716`: Remove input_prefilter hook
834 * :ghpull:`4716`: Remove input_prefilter hook
835 * :ghpull:`4691`: survive failure to bind to localhost in zmq.iostream
835 * :ghpull:`4691`: survive failure to bind to localhost in zmq.iostream
836 * :ghpull:`4696`: don't do anything if add_anchor fails
836 * :ghpull:`4696`: don't do anything if add_anchor fails
837 * :ghpull:`4711`: some typos in the docs
837 * :ghpull:`4711`: some typos in the docs
838 * :ghpull:`4700`: use if main block in entry points
838 * :ghpull:`4700`: use if main block in entry points
839 * :ghpull:`4692`: setup.py symlink improvements
839 * :ghpull:`4692`: setup.py symlink improvements
840 * :ghpull:`4265`: JSON configuration file
840 * :ghpull:`4265`: JSON configuration file
841 * :ghpull:`4505`: Nbconvert latex markdown images2
841 * :ghpull:`4505`: Nbconvert latex markdown images2
842 * :ghpull:`4608`: transparent background match ... all colors
842 * :ghpull:`4608`: transparent background match ... all colors
843 * :ghpull:`4678`: allow ipython console to handle text/plain display
843 * :ghpull:`4678`: allow ipython console to handle text/plain display
844 * :ghpull:`4706`: remove irunner, iplogger
844 * :ghpull:`4706`: remove irunner, iplogger
845 * :ghpull:`4701`: Delete an old dictionary available for selecting the aligment of text.
845 * :ghpull:`4701`: Delete an old dictionary available for selecting the aligment of text.
846 * :ghpull:`4702`: Making reveal font-size a relative unit.
846 * :ghpull:`4702`: Making reveal font-size a relative unit.
847 * :ghpull:`4649`: added a quiet option to %cpaste to suppress output
847 * :ghpull:`4649`: added a quiet option to %cpaste to suppress output
848 * :ghpull:`4690`: Option to spew subprocess streams during tests
848 * :ghpull:`4690`: Option to spew subprocess streams during tests
849 * :ghpull:`4688`: Fixed various typos in docstrings.
849 * :ghpull:`4688`: Fixed various typos in docstrings.
850 * :ghpull:`4645`: CasperJs utility functions.
850 * :ghpull:`4645`: CasperJs utility functions.
851 * :ghpull:`4670`: Stop bundling the numpydoc Sphinx extension
851 * :ghpull:`4670`: Stop bundling the numpydoc Sphinx extension
852 * :ghpull:`4675`: common IPython prefix for ModIndex
852 * :ghpull:`4675`: common IPython prefix for ModIndex
853 * :ghpull:`4672`: Remove unused 'attic' module
853 * :ghpull:`4672`: Remove unused 'attic' module
854 * :ghpull:`4671`: Fix docstrings in utils.text
854 * :ghpull:`4671`: Fix docstrings in utils.text
855 * :ghpull:`4669`: add missing help strings to HistoryManager configurables
855 * :ghpull:`4669`: add missing help strings to HistoryManager configurables
856 * :ghpull:`4668`: Make non-ASCII docstring unicode
856 * :ghpull:`4668`: Make non-ASCII docstring unicode
857 * :ghpull:`4650`: added a note about sharing of nbconvert tempates
857 * :ghpull:`4650`: added a note about sharing of nbconvert tempates
858 * :ghpull:`4646`: Fixing various output related things:
858 * :ghpull:`4646`: Fixing various output related things:
859 * :ghpull:`4665`: check for libedit in readline on OS X
859 * :ghpull:`4665`: check for libedit in readline on OS X
860 * :ghpull:`4606`: Make running PYTHONSTARTUP optional
860 * :ghpull:`4606`: Make running PYTHONSTARTUP optional
861 * :ghpull:`4654`: Fixing left padding of text cells to match that of code cells.
861 * :ghpull:`4654`: Fixing left padding of text cells to match that of code cells.
862 * :ghpull:`4306`: add raw_mimetype metadata to raw cells
862 * :ghpull:`4306`: add raw_mimetype metadata to raw cells
863 * :ghpull:`4576`: Tighten up the vertical spacing on cells and make the padding of cells more consistent
863 * :ghpull:`4576`: Tighten up the vertical spacing on cells and make the padding of cells more consistent
864 * :ghpull:`4353`: Don't reset the readline completer after each prompt
864 * :ghpull:`4353`: Don't reset the readline completer after each prompt
865 * :ghpull:`4567`: Adding prompt area to non-CodeCells to indent content.
865 * :ghpull:`4567`: Adding prompt area to non-CodeCells to indent content.
866 * :ghpull:`4446`: Use SVG plots in OctaveMagic by default due to lack of Ghostscript on Windows Octave
866 * :ghpull:`4446`: Use SVG plots in OctaveMagic by default due to lack of Ghostscript on Windows Octave
867 * :ghpull:`4613`: remove configurable.created
867 * :ghpull:`4613`: remove configurable.created
868 * :ghpull:`4631`: Use argument lists for command help tests
868 * :ghpull:`4631`: Use argument lists for command help tests
869 * :ghpull:`4633`: Modifies test_get_long_path_name_winr32() to allow for long path names in temp dir
869 * :ghpull:`4633`: Modifies test_get_long_path_name_winr32() to allow for long path names in temp dir
870 * :ghpull:`4642`: Allow docs to build without PyQt installed.
870 * :ghpull:`4642`: Allow docs to build without PyQt installed.
871 * :ghpull:`4641`: Don't check for wx in the test suite.
871 * :ghpull:`4641`: Don't check for wx in the test suite.
872 * :ghpull:`4622`: make QtConsole Lexer configurable
872 * :ghpull:`4622`: make QtConsole Lexer configurable
873 * :ghpull:`4594`: Fixed #2923 Move Save Away from Cut in toolbar
873 * :ghpull:`4594`: Fixed #2923 Move Save Away from Cut in toolbar
874 * :ghpull:`4593`: don't interfere with set_next_input contents in qtconsole
874 * :ghpull:`4593`: don't interfere with set_next_input contents in qtconsole
875 * :ghpull:`4640`: Support matplotlib's Gtk3 backend in --pylab mode
875 * :ghpull:`4640`: Support matplotlib's Gtk3 backend in --pylab mode
876 * :ghpull:`4639`: Minor import fix to get qtconsole with --pylab=qt working
876 * :ghpull:`4639`: Minor import fix to get qtconsole with --pylab=qt working
877 * :ghpull:`4637`: Fixed typo in links.txt.
877 * :ghpull:`4637`: Fixed typo in links.txt.
878 * :ghpull:`4634`: Fix nbrun in notebooks with non-code cells.
878 * :ghpull:`4634`: Fix nbrun in notebooks with non-code cells.
879 * :ghpull:`4632`: Restore the ability to run tests from a function.
879 * :ghpull:`4632`: Restore the ability to run tests from a function.
880 * :ghpull:`4624`: Fix crash when $EDITOR is non-ASCII
880 * :ghpull:`4624`: Fix crash when $EDITOR is non-ASCII
881 * :ghpull:`4453`: Play nice with App Nap
881 * :ghpull:`4453`: Play nice with App Nap
882 * :ghpull:`4541`: relax ipconfig matching on Windows
882 * :ghpull:`4541`: relax ipconfig matching on Windows
883 * :ghpull:`4552`: add pickleutil.use_dill
883 * :ghpull:`4552`: add pickleutil.use_dill
884 * :ghpull:`4590`: Font awesome for IPython slides
884 * :ghpull:`4590`: Font awesome for IPython slides
885 * :ghpull:`4589`: Inherit the width of pre code inside the input code cells.
885 * :ghpull:`4589`: Inherit the width of pre code inside the input code cells.
886 * :ghpull:`4588`: Update reveal.js CDN to 2.5.0.
886 * :ghpull:`4588`: Update reveal.js CDN to 2.5.0.
887 * :ghpull:`4569`: store cell toolbar preset in notebook metadata
887 * :ghpull:`4569`: store cell toolbar preset in notebook metadata
888 * :ghpull:`4609`: Fix bytes regex for Python 3.
888 * :ghpull:`4609`: Fix bytes regex for Python 3.
889 * :ghpull:`4581`: Writing unicode to stdout
889 * :ghpull:`4581`: Writing unicode to stdout
890 * :ghpull:`4591`: Documenting codemirror shorcuts.
890 * :ghpull:`4591`: Documenting codemirror shorcuts.
891 * :ghpull:`4607`: Tutorial doc should link to user config intro
891 * :ghpull:`4607`: Tutorial doc should link to user config intro
892 * :ghpull:`4601`: test that rename fails with 409 if it would clobber
892 * :ghpull:`4601`: test that rename fails with 409 if it would clobber
893 * :ghpull:`4599`: re-cast int/float subclasses to int/float in json_clean
893 * :ghpull:`4599`: re-cast int/float subclasses to int/float in json_clean
894 * :ghpull:`4542`: new `ipython history clear` subcommand
894 * :ghpull:`4542`: new `ipython history clear` subcommand
895 * :ghpull:`4568`: don't use lazily-evaluated rc.ids in wait_for_idle
895 * :ghpull:`4568`: don't use lazily-evaluated rc.ids in wait_for_idle
896 * :ghpull:`4572`: DOC: %profile docstring should reference %prun
896 * :ghpull:`4572`: DOC: %profile docstring should reference %prun
897 * :ghpull:`4571`: no longer need 3 suffix on travis, tox
897 * :ghpull:`4571`: no longer need 3 suffix on travis, tox
898 * :ghpull:`4566`: Fixing cell_type in CodeCell constructor.
898 * :ghpull:`4566`: Fixing cell_type in CodeCell constructor.
899 * :ghpull:`4563`: Specify encoding for reading notebook file.
899 * :ghpull:`4563`: Specify encoding for reading notebook file.
900 * :ghpull:`4452`: support notebooks in %run
900 * :ghpull:`4452`: support notebooks in %run
901 * :ghpull:`4546`: fix warning condition on notebook startup
901 * :ghpull:`4546`: fix warning condition on notebook startup
902 * :ghpull:`4540`: Apidocs3
902 * :ghpull:`4540`: Apidocs3
903 * :ghpull:`4553`: Fix Python 3 handling of urllib
903 * :ghpull:`4553`: Fix Python 3 handling of urllib
904 * :ghpull:`4543`: make hiding of initial namespace optional
904 * :ghpull:`4543`: make hiding of initial namespace optional
905 * :ghpull:`4517`: send shutdown_request on exit of `ipython console`
905 * :ghpull:`4517`: send shutdown_request on exit of `ipython console`
906 * :ghpull:`4528`: improvements to bash completion
906 * :ghpull:`4528`: improvements to bash completion
907 * :ghpull:`4532`: Hide dynamically defined metaclass base from Sphinx.
907 * :ghpull:`4532`: Hide dynamically defined metaclass base from Sphinx.
908 * :ghpull:`4515`: Spring Cleaning, and Load speedup
908 * :ghpull:`4515`: Spring Cleaning, and Load speedup
909 * :ghpull:`4529`: note routing identities needed for input requests
909 * :ghpull:`4529`: note routing identities needed for input requests
910 * :ghpull:`4514`: allow restart in `%run -d`
910 * :ghpull:`4514`: allow restart in `%run -d`
911 * :ghpull:`4527`: add redirect for 1.0-style 'files/' prefix links
911 * :ghpull:`4527`: add redirect for 1.0-style 'files/' prefix links
912 * :ghpull:`4526`: Allow unicode arguments to passwd_check on Python 2
912 * :ghpull:`4526`: Allow unicode arguments to passwd_check on Python 2
913 * :ghpull:`4403`: Global highlight language selection.
913 * :ghpull:`4403`: Global highlight language selection.
914 * :ghpull:`4250`: outputarea.js: Wrap inline SVGs inside an iframe
914 * :ghpull:`4250`: outputarea.js: Wrap inline SVGs inside an iframe
915 * :ghpull:`4521`: Read wav files in binary mode
915 * :ghpull:`4521`: Read wav files in binary mode
916 * :ghpull:`4444`: Css cleaning
916 * :ghpull:`4444`: Css cleaning
917 * :ghpull:`4523`: Use username and password for MongoDB on ShiningPanda
917 * :ghpull:`4523`: Use username and password for MongoDB on ShiningPanda
918 * :ghpull:`4510`: Update whatsnew from PR files
918 * :ghpull:`4510`: Update whatsnew from PR files
919 * :ghpull:`4441`: add `setup.py jsversion`
919 * :ghpull:`4441`: add `setup.py jsversion`
920 * :ghpull:`4518`: Fix for race condition in url file decoding.
920 * :ghpull:`4518`: Fix for race condition in url file decoding.
921 * :ghpull:`4497`: don't automatically unpack datetime objects in the message spec
921 * :ghpull:`4497`: don't automatically unpack datetime objects in the message spec
922 * :ghpull:`4506`: wait for empty queues as well as load-balanced tasks
922 * :ghpull:`4506`: wait for empty queues as well as load-balanced tasks
923 * :ghpull:`4492`: Configuration docs refresh
923 * :ghpull:`4492`: Configuration docs refresh
924 * :ghpull:`4508`: Fix some uses of map() in Qt console completion code.
924 * :ghpull:`4508`: Fix some uses of map() in Qt console completion code.
925 * :ghpull:`4498`: Daemon StreamCapturer
925 * :ghpull:`4498`: Daemon StreamCapturer
926 * :ghpull:`4499`: Skip clipboard test on unix systems if headless.
926 * :ghpull:`4499`: Skip clipboard test on unix systems if headless.
927 * :ghpull:`4460`: Better clipboard handling, esp. with pywin32
927 * :ghpull:`4460`: Better clipboard handling, esp. with pywin32
928 * :ghpull:`4496`: Pass nbformat object to write call to save .py script
928 * :ghpull:`4496`: Pass nbformat object to write call to save .py script
929 * :ghpull:`4466`: various pandoc latex fixes
929 * :ghpull:`4466`: various pandoc latex fixes
930 * :ghpull:`4473`: Setup for Python 2/3
930 * :ghpull:`4473`: Setup for Python 2/3
931 * :ghpull:`4459`: protect against broken repr in lib.pretty
931 * :ghpull:`4459`: protect against broken repr in lib.pretty
932 * :ghpull:`4457`: Use ~/.ipython as default config directory
932 * :ghpull:`4457`: Use ~/.ipython as default config directory
933 * :ghpull:`4489`: check realpath of env in init_virtualenv
933 * :ghpull:`4489`: check realpath of env in init_virtualenv
934 * :ghpull:`4490`: fix possible race condition in test_await_data
934 * :ghpull:`4490`: fix possible race condition in test_await_data
935 * :ghpull:`4476`: Fix: Remove space added by display(JavaScript) on page reload
935 * :ghpull:`4476`: Fix: Remove space added by display(JavaScript) on page reload
936 * :ghpull:`4398`: [Notebook] Deactivate tooltip on tab by default.
936 * :ghpull:`4398`: [Notebook] Deactivate tooltip on tab by default.
937 * :ghpull:`4480`: Docs shotgun 2
937 * :ghpull:`4480`: Docs shotgun 2
938 * :ghpull:`4488`: fix typo in message spec doc
938 * :ghpull:`4488`: fix typo in message spec doc
939 * :ghpull:`4479`: yet another JS race condition fix
939 * :ghpull:`4479`: yet another JS race condition fix
940 * :ghpull:`4477`: Allow incremental builds of the html_noapi docs target
940 * :ghpull:`4477`: Allow incremental builds of the html_noapi docs target
941 * :ghpull:`4470`: Various Config object cleanups
941 * :ghpull:`4470`: Various Config object cleanups
942 * :ghpull:`4410`: make close-and-halt work on new tabs in Chrome
942 * :ghpull:`4410`: make close-and-halt work on new tabs in Chrome
943 * :ghpull:`4469`: Python 3 & getcwdu
943 * :ghpull:`4469`: Python 3 & getcwdu
944 * :ghpull:`4451`: fix: allow JS test to run after shutdown test
944 * :ghpull:`4451`: fix: allow JS test to run after shutdown test
945 * :ghpull:`4456`: Simplify StreamCapturer for subprocess testing
945 * :ghpull:`4456`: Simplify StreamCapturer for subprocess testing
946 * :ghpull:`4464`: Correct description for Bytes traitlet type
946 * :ghpull:`4464`: Correct description for Bytes traitlet type
947 * :ghpull:`4465`: Clean up MANIFEST.in
947 * :ghpull:`4465`: Clean up MANIFEST.in
948 * :ghpull:`4461`: Correct TypeError message in svg2pdf
948 * :ghpull:`4461`: Correct TypeError message in svg2pdf
949 * :ghpull:`4458`: use signalstatus if exit status is undefined
949 * :ghpull:`4458`: use signalstatus if exit status is undefined
950 * :ghpull:`4438`: Single codebase Python 3 support (again)
950 * :ghpull:`4438`: Single codebase Python 3 support (again)
951 * :ghpull:`4198`: Version conversion, support for X to Y even if Y < X (nbformat)
951 * :ghpull:`4198`: Version conversion, support for X to Y even if Y < X (nbformat)
952 * :ghpull:`4415`: More tooltips in the Notebook menu
952 * :ghpull:`4415`: More tooltips in the Notebook menu
953 * :ghpull:`4450`: remove monkey patch for older versions of tornado
953 * :ghpull:`4450`: remove monkey patch for older versions of tornado
954 * :ghpull:`4423`: Fix progress bar and scrolling bug.
954 * :ghpull:`4423`: Fix progress bar and scrolling bug.
955 * :ghpull:`4435`: raise 404 on not found static file
955 * :ghpull:`4435`: raise 404 on not found static file
956 * :ghpull:`4442`: fix and add shim for change introduce by #4195
956 * :ghpull:`4442`: fix and add shim for change introduce by #4195
957 * :ghpull:`4436`: allow `require("nbextensions/extname")` to load from IPYTHONDIR/nbextensions
957 * :ghpull:`4436`: allow `require("nbextensions/extname")` to load from IPYTHONDIR/nbextensions
958 * :ghpull:`4437`: don't compute etags in static file handlers
958 * :ghpull:`4437`: don't compute etags in static file handlers
959 * :ghpull:`4427`: notebooks should always have one checkpoint
959 * :ghpull:`4427`: notebooks should always have one checkpoint
960 * :ghpull:`4425`: fix js pythonisme
960 * :ghpull:`4425`: fix js pythonisme
961 * :ghpull:`4195`: IPEP 21: widget messages
961 * :ghpull:`4195`: IPEP 21: widget messages
962 * :ghpull:`4434`: Fix broken link for Dive Into Python.
962 * :ghpull:`4434`: Fix broken link for Dive Into Python.
963 * :ghpull:`4428`: bump minimum tornado version to 3.1.0
963 * :ghpull:`4428`: bump minimum tornado version to 3.1.0
964 * :ghpull:`4302`: Add an Audio display class
964 * :ghpull:`4302`: Add an Audio display class
965 * :ghpull:`4285`: Notebook javascript test suite using CasperJS
965 * :ghpull:`4285`: Notebook javascript test suite using CasperJS
966 * :ghpull:`4420`: Allow checking for backports via milestone
966 * :ghpull:`4420`: Allow checking for backports via milestone
967 * :ghpull:`4426`: set kernel cwd to notebook's directory
967 * :ghpull:`4426`: set kernel cwd to notebook's directory
968 * :ghpull:`4389`: By default, Magics inherit from Configurable
968 * :ghpull:`4389`: By default, Magics inherit from Configurable
969 * :ghpull:`4393`: Capture output from subprocs during test, and display on failure
969 * :ghpull:`4393`: Capture output from subprocs during test, and display on failure
970 * :ghpull:`4419`: define InlineBackend configurable in its own file
970 * :ghpull:`4419`: define InlineBackend configurable in its own file
971 * :ghpull:`4303`: Multidirectory support for the Notebook
971 * :ghpull:`4303`: Multidirectory support for the Notebook
972 * :ghpull:`4371`: Restored ipython profile locate dir and fixed typo. (Fixes #3708).
972 * :ghpull:`4371`: Restored ipython profile locate dir and fixed typo. (Fixes #3708).
973 * :ghpull:`4414`: Specify unicode type properly in rmagic
973 * :ghpull:`4414`: Specify unicode type properly in rmagic
974 * :ghpull:`4413`: don't instantiate IPython shell as class attr
974 * :ghpull:`4413`: don't instantiate IPython shell as class attr
975 * :ghpull:`4400`: Remove 5s wait on inactivity on GUI inputhook loops
975 * :ghpull:`4400`: Remove 5s wait on inactivity on GUI inputhook loops
976 * :ghpull:`4412`: Fix traitlet _notify_trait by-ref issue
976 * :ghpull:`4412`: Fix traitlet _notify_trait by-ref issue
977 * :ghpull:`4378`: split adds new cell above, rather than below
977 * :ghpull:`4378`: split adds new cell above, rather than below
978 * :ghpull:`4405`: Bring display of builtin types and functions in line with Py 2
978 * :ghpull:`4405`: Bring display of builtin types and functions in line with Py 2
979 * :ghpull:`4367`: clean up of documentation files
979 * :ghpull:`4367`: clean up of documentation files
980 * :ghpull:`4401`: Provide a name of the HistorySavingThread
980 * :ghpull:`4401`: Provide a name of the HistorySavingThread
981 * :ghpull:`4384`: fix menubar height measurement
981 * :ghpull:`4384`: fix menubar height measurement
982 * :ghpull:`4377`: fix tooltip cancel
982 * :ghpull:`4377`: fix tooltip cancel
983 * :ghpull:`4293`: Factorise code in tooltip for julia monkeypatching
983 * :ghpull:`4293`: Factorise code in tooltip for julia monkeypatching
984 * :ghpull:`4292`: improve js-completer logic.
984 * :ghpull:`4292`: improve js-completer logic.
985 * :ghpull:`4363`: set_next_input: keep only last input when repeatedly called in a single cell
985 * :ghpull:`4363`: set_next_input: keep only last input when repeatedly called in a single cell
986 * :ghpull:`4382`: Use safe_hasattr in dir2
986 * :ghpull:`4382`: Use safe_hasattr in dir2
987 * :ghpull:`4379`: fix (CTRL-M -) shortcut for splitting cell in FF
987 * :ghpull:`4379`: fix (CTRL-M -) shortcut for splitting cell in FF
988 * :ghpull:`4380`: Test and fixes for localinterfaces
988 * :ghpull:`4380`: Test and fixes for localinterfaces
989 * :ghpull:`4372`: Don't assume that SyntaxTB is always called with a SyntaxError
989 * :ghpull:`4372`: Don't assume that SyntaxTB is always called with a SyntaxError
990 * :ghpull:`4342`: Return value directly from the try block and avoid a variable
990 * :ghpull:`4342`: Return value directly from the try block and avoid a variable
991 * :ghpull:`4154`: Center LaTeX and figures in markdown
991 * :ghpull:`4154`: Center LaTeX and figures in markdown
992 * :ghpull:`4311`: %load -s to load specific functions or classes
992 * :ghpull:`4311`: %load -s to load specific functions or classes
993 * :ghpull:`4350`: WinHPC launcher fixes
993 * :ghpull:`4350`: WinHPC launcher fixes
994 * :ghpull:`4345`: Make irunner compatible with upcoming pexpect 3.0 interface
994 * :ghpull:`4345`: Make irunner compatible with upcoming pexpect 3.0 interface
995 * :ghpull:`4276`: Support container methods in config
995 * :ghpull:`4276`: Support container methods in config
996 * :ghpull:`4359`: test_pylabtools also needs to modify matplotlib.rcParamsOrig
996 * :ghpull:`4359`: test_pylabtools also needs to modify matplotlib.rcParamsOrig
997 * :ghpull:`4355`: remove hardcoded box-orient
997 * :ghpull:`4355`: remove hardcoded box-orient
998 * :ghpull:`4333`: Add Edit Notebook Metadata to Edit menu
998 * :ghpull:`4333`: Add Edit Notebook Metadata to Edit menu
999 * :ghpull:`4349`: Script to update What's New file
999 * :ghpull:`4349`: Script to update What's New file
1000 * :ghpull:`4348`: Call PDF viewer after latex compiling (nbconvert)
1000 * :ghpull:`4348`: Call PDF viewer after latex compiling (nbconvert)
1001 * :ghpull:`4346`: getpass() on Windows & Python 2 needs bytes prompt
1001 * :ghpull:`4346`: getpass() on Windows & Python 2 needs bytes prompt
1002 * :ghpull:`4304`: use netifaces for faster IPython.utils.localinterfaces
1002 * :ghpull:`4304`: use netifaces for faster IPython.utils.localinterfaces
1003 * :ghpull:`4305`: Add even more ways to populate localinterfaces
1003 * :ghpull:`4305`: Add even more ways to populate localinterfaces
1004 * :ghpull:`4313`: remove strip_math_space
1004 * :ghpull:`4313`: remove strip_math_space
1005 * :ghpull:`4325`: Some changes to improve readability.
1005 * :ghpull:`4325`: Some changes to improve readability.
1006 * :ghpull:`4281`: Adjust tab completion widget if too close to bottom of page.
1006 * :ghpull:`4281`: Adjust tab completion widget if too close to bottom of page.
1007 * :ghpull:`4347`: Remove pycolor script
1007 * :ghpull:`4347`: Remove pycolor script
1008 * :ghpull:`4322`: Scroll to the top after change of slides in the IPython slides
1008 * :ghpull:`4322`: Scroll to the top after change of slides in the IPython slides
1009 * :ghpull:`4289`: Fix scrolling output (not working post clear_output changes)
1009 * :ghpull:`4289`: Fix scrolling output (not working post clear_output changes)
1010 * :ghpull:`4343`: Make parameters for kernel start method more general
1010 * :ghpull:`4343`: Make parameters for kernel start method more general
1011 * :ghpull:`4237`: Keywords should shadow magic functions
1011 * :ghpull:`4237`: Keywords should shadow magic functions
1012 * :ghpull:`4338`: adjust default value of level in sync_imports
1012 * :ghpull:`4338`: adjust default value of level in sync_imports
1013 * :ghpull:`4328`: Remove unused loop variable.
1013 * :ghpull:`4328`: Remove unused loop variable.
1014 * :ghpull:`4340`: fix mathjax download url to new GitHub format
1014 * :ghpull:`4340`: fix mathjax download url to new GitHub format
1015 * :ghpull:`4336`: use simple replacement rather than string formatting in format_kernel_cmd
1015 * :ghpull:`4336`: use simple replacement rather than string formatting in format_kernel_cmd
1016 * :ghpull:`4264`: catch unicode error listing profiles
1016 * :ghpull:`4264`: catch unicode error listing profiles
1017 * :ghpull:`4314`: catch EACCES when binding notebook app
1017 * :ghpull:`4314`: catch EACCES when binding notebook app
1018 * :ghpull:`4324`: Remove commented addthis toolbar
1018 * :ghpull:`4324`: Remove commented addthis toolbar
1019 * :ghpull:`4327`: Use the with statement to open a file.
1019 * :ghpull:`4327`: Use the with statement to open a file.
1020 * :ghpull:`4318`: fix initial sys.path
1020 * :ghpull:`4318`: fix initial sys.path
1021 * :ghpull:`4315`: Explicitly state what version of Pandoc is supported in docs/install
1021 * :ghpull:`4315`: Explicitly state what version of Pandoc is supported in docs/install
1022 * :ghpull:`4316`: underscore missing on notebook_p4
1022 * :ghpull:`4316`: underscore missing on notebook_p4
1023 * :ghpull:`4295`: Implement boundary option for load magic (#1093)
1023 * :ghpull:`4295`: Implement boundary option for load magic (#1093)
1024 * :ghpull:`4300`: traits defauts are strings not object
1024 * :ghpull:`4300`: traits defauts are strings not object
1025 * :ghpull:`4297`: Remove an unreachable return statement.
1025 * :ghpull:`4297`: Remove an unreachable return statement.
1026 * :ghpull:`4260`: Use subprocess for system_raw
1026 * :ghpull:`4260`: Use subprocess for system_raw
1027 * :ghpull:`4277`: add nbextensions
1027 * :ghpull:`4277`: add nbextensions
1028 * :ghpull:`4294`: don't require tornado 3 in `--post serve`
1028 * :ghpull:`4294`: don't require tornado 3 in `--post serve`
1029 * :ghpull:`4270`: adjust Scheduler timeout logic
1029 * :ghpull:`4270`: adjust Scheduler timeout logic
1030 * :ghpull:`4278`: add `-a` to easy_install command in libedit warning
1030 * :ghpull:`4278`: add `-a` to easy_install command in libedit warning
1031 * :ghpull:`4282`: Enable automatic line breaks in MathJax.
1031 * :ghpull:`4282`: Enable automatic line breaks in MathJax.
1032 * :ghpull:`4279`: Fixing line-height of list items in tree view.
1032 * :ghpull:`4279`: Fixing line-height of list items in tree view.
1033 * :ghpull:`4253`: fixes #4039.
1033 * :ghpull:`4253`: fixes #4039.
1034 * :ghpull:`4131`: Add module's name argument in %%cython magic
1034 * :ghpull:`4131`: Add module's name argument in %%cython magic
1035 * :ghpull:`4269`: Add mathletters option and longtable package to latex_base.tplx
1035 * :ghpull:`4269`: Add mathletters option and longtable package to latex_base.tplx
1036 * :ghpull:`4230`: Switch correctly to the user's default matplotlib backend after inline.
1036 * :ghpull:`4230`: Switch correctly to the user's default matplotlib backend after inline.
1037 * :ghpull:`4271`: Hopefully fix ordering of output on ShiningPanda
1037 * :ghpull:`4271`: Hopefully fix ordering of output on ShiningPanda
1038 * :ghpull:`4239`: more informative error message for bad serialization
1038 * :ghpull:`4239`: more informative error message for bad serialization
1039 * :ghpull:`4263`: Fix excludes for IPython.testing
1039 * :ghpull:`4263`: Fix excludes for IPython.testing
1040 * :ghpull:`4112`: nbconvert: Latex template refactor
1040 * :ghpull:`4112`: nbconvert: Latex template refactor
1041 * :ghpull:`4261`: Fixing a formatting error in the custom display example notebook.
1041 * :ghpull:`4261`: Fixing a formatting error in the custom display example notebook.
1042 * :ghpull:`4259`: Fix Windows test exclusions
1042 * :ghpull:`4259`: Fix Windows test exclusions
1043 * :ghpull:`4229`: Clear_output: Animation & widget related changes.
1043 * :ghpull:`4229`: Clear_output: Animation & widget related changes.
1044 * :ghpull:`4151`: Refactor alias machinery
1044 * :ghpull:`4151`: Refactor alias machinery
1045 * :ghpull:`4153`: make timeit return an object that contains values
1045 * :ghpull:`4153`: make timeit return an object that contains values
1046 * :ghpull:`4258`: to-backport label is now 1.2
1046 * :ghpull:`4258`: to-backport label is now 1.2
1047 * :ghpull:`4242`: Allow passing extra arguments to iptest through for nose
1047 * :ghpull:`4242`: Allow passing extra arguments to iptest through for nose
1048 * :ghpull:`4257`: fix unicode argv parsing
1048 * :ghpull:`4257`: fix unicode argv parsing
1049 * :ghpull:`4166`: avoid executing code in utils.localinterfaces at import time
1049 * :ghpull:`4166`: avoid executing code in utils.localinterfaces at import time
1050 * :ghpull:`4214`: engine ID metadata should be unicode, not bytes
1050 * :ghpull:`4214`: engine ID metadata should be unicode, not bytes
1051 * :ghpull:`4232`: no highlight if no language specified
1051 * :ghpull:`4232`: no highlight if no language specified
1052 * :ghpull:`4218`: Fix display of SyntaxError when .py file is modified
1052 * :ghpull:`4218`: Fix display of SyntaxError when .py file is modified
1053 * :ghpull:`4207`: add `setup.py css` command
1053 * :ghpull:`4207`: add `setup.py css` command
1054 * :ghpull:`4224`: clear previous callbacks on execute
1054 * :ghpull:`4224`: clear previous callbacks on execute
1055 * :ghpull:`4180`: Iptest refactoring
1055 * :ghpull:`4180`: Iptest refactoring
1056 * :ghpull:`4105`: JS output area misaligned
1056 * :ghpull:`4105`: JS output area misaligned
1057 * :ghpull:`4220`: Various improvements to docs formatting
1057 * :ghpull:`4220`: Various improvements to docs formatting
1058 * :ghpull:`4187`: Select adequate highlighter for cell magic languages
1058 * :ghpull:`4187`: Select adequate highlighter for cell magic languages
1059 * :ghpull:`4228`: update -dev docs to reflect latest stable version
1059 * :ghpull:`4228`: update -dev docs to reflect latest stable version
1060 * :ghpull:`4219`: Drop bundled argparse
1060 * :ghpull:`4219`: Drop bundled argparse
1061 * :ghpull:`3851`: Adds an explicit newline for pretty-printing.
1061 * :ghpull:`3851`: Adds an explicit newline for pretty-printing.
1062 * :ghpull:`3622`: Drop fakemodule
1062 * :ghpull:`3622`: Drop fakemodule
1063 * :ghpull:`4080`: change default behavior of database task storage
1063 * :ghpull:`4080`: change default behavior of database task storage
1064 * :ghpull:`4197`: enable cython highlight in notebook
1064 * :ghpull:`4197`: enable cython highlight in notebook
1065 * :ghpull:`4225`: Updated docstring for core.display.Image
1065 * :ghpull:`4225`: Updated docstring for core.display.Image
1066 * :ghpull:`4175`: nbconvert: Jinjaless exporter base
1066 * :ghpull:`4175`: nbconvert: Jinjaless exporter base
1067 * :ghpull:`4208`: Added a lightweight "htmlcore" Makefile entry
1067 * :ghpull:`4208`: Added a lightweight "htmlcore" Makefile entry
1068 * :ghpull:`4209`: Magic doc fixes
1068 * :ghpull:`4209`: Magic doc fixes
1069 * :ghpull:`4217`: avoid importing numpy at the module level
1069 * :ghpull:`4217`: avoid importing numpy at the module level
1070 * :ghpull:`4213`: fixed dead link in examples/notebooks readme to Part 3
1070 * :ghpull:`4213`: fixed dead link in examples/notebooks readme to Part 3
1071 * :ghpull:`4183`: ESC should be handled by CM if tooltip is not on
1071 * :ghpull:`4183`: ESC should be handled by CM if tooltip is not on
1072 * :ghpull:`4193`: Update for #3549: Append Firefox overflow-x fix
1072 * :ghpull:`4193`: Update for #3549: Append Firefox overflow-x fix
1073 * :ghpull:`4205`: use TextIOWrapper when communicating with pandoc subprocess
1073 * :ghpull:`4205`: use TextIOWrapper when communicating with pandoc subprocess
1074 * :ghpull:`4204`: remove some extraneous print statements from IPython.parallel
1074 * :ghpull:`4204`: remove some extraneous print statements from IPython.parallel
1075 * :ghpull:`4201`: HeadingCells cannot be split or merged
1075 * :ghpull:`4201`: HeadingCells cannot be split or merged
1076 * :ghpull:`4048`: finish up speaker-notes PR
1076 * :ghpull:`4048`: finish up speaker-notes PR
1077 * :ghpull:`4079`: trigger `Kernel.status_started` after websockets open
1077 * :ghpull:`4079`: trigger `Kernel.status_started` after websockets open
1078 * :ghpull:`4186`: moved DummyMod to proper namespace to enable dill pickling
1078 * :ghpull:`4186`: moved DummyMod to proper namespace to enable dill pickling
1079 * :ghpull:`4190`: update version-check message in setup.py and IPython.__init__
1079 * :ghpull:`4190`: update version-check message in setup.py and IPython.__init__
1080 * :ghpull:`4188`: Allow user_ns trait to be None
1080 * :ghpull:`4188`: Allow user_ns trait to be None
1081 * :ghpull:`4189`: always fire LOCAL_IPS.extend(PUBLIC_IPS)
1081 * :ghpull:`4189`: always fire LOCAL_IPS.extend(PUBLIC_IPS)
1082 * :ghpull:`4174`: various issues in markdown and rst templates
1082 * :ghpull:`4174`: various issues in markdown and rst templates
1083 * :ghpull:`4178`: add missing data_javascript
1083 * :ghpull:`4178`: add missing data_javascript
1084 * :ghpull:`4168`: Py3 failing tests
1084 * :ghpull:`4168`: Py3 failing tests
1085 * :ghpull:`4181`: nbconvert: Fix, sphinx template not removing new lines from headers
1085 * :ghpull:`4181`: nbconvert: Fix, sphinx template not removing new lines from headers
1086 * :ghpull:`4043`: don't 'restore_bytes' in from_JSON
1086 * :ghpull:`4043`: don't 'restore_bytes' in from_JSON
1087 * :ghpull:`4149`: reuse more kernels in kernel tests
1087 * :ghpull:`4149`: reuse more kernels in kernel tests
1088 * :ghpull:`4163`: Fix for incorrect default encoding on Windows.
1088 * :ghpull:`4163`: Fix for incorrect default encoding on Windows.
1089 * :ghpull:`4136`: catch javascript errors in any output
1089 * :ghpull:`4136`: catch javascript errors in any output
1090 * :ghpull:`4171`: add nbconvert config file when creating profiles
1090 * :ghpull:`4171`: add nbconvert config file when creating profiles
1091 * :ghpull:`4172`: add ability to check what PRs should be backported in backport_pr
1091 * :ghpull:`4172`: add ability to check what PRs should be backported in backport_pr
1092 * :ghpull:`4167`: --fast flag for test suite!
1092 * :ghpull:`4167`: --fast flag for test suite!
1093 * :ghpull:`4125`: Basic exercise of `ipython [subcommand] -h` and help-all
1093 * :ghpull:`4125`: Basic exercise of `ipython [subcommand] -h` and help-all
1094 * :ghpull:`4085`: nbconvert: Fix sphinx preprocessor date format string for Windows
1094 * :ghpull:`4085`: nbconvert: Fix sphinx preprocessor date format string for Windows
1095 * :ghpull:`4159`: don't split `.cell` and `div.cell` CSS
1095 * :ghpull:`4159`: don't split `.cell` and `div.cell` CSS
1096 * :ghpull:`4165`: Remove use of parametric tests
1096 * :ghpull:`4165`: Remove use of parametric tests
1097 * :ghpull:`4158`: generate choices for `--gui` configurable from real mapping
1097 * :ghpull:`4158`: generate choices for `--gui` configurable from real mapping
1098 * :ghpull:`4083`: Implement a better check for hidden values for %who etc.
1098 * :ghpull:`4083`: Implement a better check for hidden values for %who etc.
1099 * :ghpull:`4147`: Reference notebook examples, fixes #4146.
1099 * :ghpull:`4147`: Reference notebook examples, fixes #4146.
1100 * :ghpull:`4065`: do not include specific css in embedable one
1100 * :ghpull:`4065`: do not include specific css in embedable one
1101 * :ghpull:`4092`: nbconvert: Fix for unicode html headers, Windows + Python 2.x
1101 * :ghpull:`4092`: nbconvert: Fix for unicode html headers, Windows + Python 2.x
1102 * :ghpull:`4074`: close Client sockets if connection fails
1102 * :ghpull:`4074`: close Client sockets if connection fails
1103 * :ghpull:`4064`: Store default codemirror mode in only 1 place
1103 * :ghpull:`4064`: Store default codemirror mode in only 1 place
1104 * :ghpull:`4104`: Add way to install MathJax to a particular profile
1104 * :ghpull:`4104`: Add way to install MathJax to a particular profile
1105 * :ghpull:`4161`: Select name when renaming a notebook
1105 * :ghpull:`4161`: Select name when renaming a notebook
1106 * :ghpull:`4160`: Add quotes around ".[notebook]" in readme
1106 * :ghpull:`4160`: Add quotes around ".[notebook]" in readme
1107 * :ghpull:`4144`: help_end transformer shouldn't pick up ? in multiline string
1107 * :ghpull:`4144`: help_end transformer shouldn't pick up ? in multiline string
1108 * :ghpull:`4090`: Add LaTeX citation handling to nbconvert
1108 * :ghpull:`4090`: Add LaTeX citation handling to nbconvert
1109 * :ghpull:`4143`: update example custom.js
1109 * :ghpull:`4143`: update example custom.js
1110 * :ghpull:`4142`: DOC: unwrap openssl line in public_server doc
1110 * :ghpull:`4142`: DOC: unwrap openssl line in public_server doc
1111 * :ghpull:`4126`: update tox.ini
1111 * :ghpull:`4126`: update tox.ini
1112 * :ghpull:`4141`: add files with a separate `add` call in backport_pr
1112 * :ghpull:`4141`: add files with a separate `add` call in backport_pr
1113 * :ghpull:`4137`: Restore autorestore option for storemagic
1113 * :ghpull:`4137`: Restore autorestore option for storemagic
1114 * :ghpull:`4098`: pass profile-dir instead of profile name to Kernel
1114 * :ghpull:`4098`: pass profile-dir instead of profile name to Kernel
1115 * :ghpull:`4120`: support `input` in Python 2 kernels
1115 * :ghpull:`4120`: support `input` in Python 2 kernels
1116 * :ghpull:`4088`: nbconvert: Fix coalescestreams line with incorrect nesting causing strange behavior
1116 * :ghpull:`4088`: nbconvert: Fix coalescestreams line with incorrect nesting causing strange behavior
1117 * :ghpull:`4060`: only strip continuation prompts if regular prompts seen first
1117 * :ghpull:`4060`: only strip continuation prompts if regular prompts seen first
1118 * :ghpull:`4132`: Fixed name error bug in function safe_unicode in module py3compat.
1118 * :ghpull:`4132`: Fixed name error bug in function safe_unicode in module py3compat.
1119 * :ghpull:`4121`: move test_kernel from IPython.zmq to IPython.kernel
1119 * :ghpull:`4121`: move test_kernel from IPython.zmq to IPython.kernel
1120 * :ghpull:`4118`: ZMQ heartbeat channel: catch EINTR exceptions and continue.
1120 * :ghpull:`4118`: ZMQ heartbeat channel: catch EINTR exceptions and continue.
1121 * :ghpull:`4070`: New changes should go into pr/ folder
1121 * :ghpull:`4070`: New changes should go into pr/ folder
1122 * :ghpull:`4054`: use unicode for HTML export
1122 * :ghpull:`4054`: use unicode for HTML export
1123 * :ghpull:`4106`: fix a couple of default block values
1123 * :ghpull:`4106`: fix a couple of default block values
1124 * :ghpull:`4107`: update parallel magic tests with capture_output API
1124 * :ghpull:`4107`: update parallel magic tests with capture_output API
1125 * :ghpull:`4102`: Fix clashes between debugger tests and coverage.py
1125 * :ghpull:`4102`: Fix clashes between debugger tests and coverage.py
1126 * :ghpull:`4115`: Update docs on declaring a magic function
1126 * :ghpull:`4115`: Update docs on declaring a magic function
1127 * :ghpull:`4101`: restore accidentally removed EngineError
1127 * :ghpull:`4101`: restore accidentally removed EngineError
1128 * :ghpull:`4096`: minor docs changes
1128 * :ghpull:`4096`: minor docs changes
1129 * :ghpull:`4094`: Update target branch before backporting PR
1129 * :ghpull:`4094`: Update target branch before backporting PR
1130 * :ghpull:`4069`: Drop monkeypatch for pre-1.0 nose
1130 * :ghpull:`4069`: Drop monkeypatch for pre-1.0 nose
1131 * :ghpull:`4056`: respect `pylab_import_all` when `--pylab` specified at the command-line
1131 * :ghpull:`4056`: respect `pylab_import_all` when `--pylab` specified at the command-line
1132 * :ghpull:`4091`: Make Qt console banner configurable
1132 * :ghpull:`4091`: Make Qt console banner configurable
1133 * :ghpull:`4086`: fix missing errno import
1133 * :ghpull:`4086`: fix missing errno import
1134 * :ghpull:`4084`: Use msvcrt.getwch() for Windows pager.
1134 * :ghpull:`4084`: Use msvcrt.getwch() for Windows pager.
1135 * :ghpull:`4073`: rename ``post_processors`` submodule to ``postprocessors``
1135 * :ghpull:`4073`: rename ``post_processors`` submodule to ``postprocessors``
1136 * :ghpull:`4075`: Update supported Python versions in tools/test_pr
1136 * :ghpull:`4075`: Update supported Python versions in tools/test_pr
1137 * :ghpull:`4068`: minor bug fix, define 'cell' in dialog.js.
1137 * :ghpull:`4068`: minor bug fix, define 'cell' in dialog.js.
1138 * :ghpull:`4044`: rename call methods to transform and postprocess
1138 * :ghpull:`4044`: rename call methods to transform and postprocess
1139 * :ghpull:`3744`: capture rich output as well as stdout/err in capture_output
1139 * :ghpull:`3744`: capture rich output as well as stdout/err in capture_output
1140 * :ghpull:`3969`: "use strict" in most (if not all) our javascript
1140 * :ghpull:`3969`: "use strict" in most (if not all) our javascript
1141 * :ghpull:`4030`: exclude `.git` in MANIFEST.in
1141 * :ghpull:`4030`: exclude `.git` in MANIFEST.in
1142 * :ghpull:`4047`: Use istype() when checking if canned object is a dict
1142 * :ghpull:`4047`: Use istype() when checking if canned object is a dict
1143 * :ghpull:`4031`: don't close_fds on Windows
1143 * :ghpull:`4031`: don't close_fds on Windows
1144 * :ghpull:`4029`: bson.Binary moved
1144 * :ghpull:`4029`: bson.Binary moved
1145 * :ghpull:`3883`: skip test on unix when x11 not available
1145 * :ghpull:`3883`: skip test on unix when x11 not available
1146 * :ghpull:`3863`: Added working speaker notes for slides.
1146 * :ghpull:`3863`: Added working speaker notes for slides.
1147 * :ghpull:`4035`: Fixed custom jinja2 templates being ignored when setting template_path
1147 * :ghpull:`4035`: Fixed custom jinja2 templates being ignored when setting template_path
1148 * :ghpull:`4002`: Drop Python 2.6 and 3.2
1148 * :ghpull:`4002`: Drop Python 2.6 and 3.2
1149 * :ghpull:`4026`: small doc fix in nbconvert
1149 * :ghpull:`4026`: small doc fix in nbconvert
1150 * :ghpull:`4016`: Fix IPython.start_* functions
1150 * :ghpull:`4016`: Fix IPython.start_* functions
1151 * :ghpull:`4021`: Fix parallel.client.View map() on numpy arrays
1151 * :ghpull:`4021`: Fix parallel.client.View map() on numpy arrays
1152 * :ghpull:`4022`: DOC: fix links to matplotlib, notebook docs
1152 * :ghpull:`4022`: DOC: fix links to matplotlib, notebook docs
1153 * :ghpull:`4018`: Fix warning when running IPython.kernel tests
1153 * :ghpull:`4018`: Fix warning when running IPython.kernel tests
1154 * :ghpull:`4017`: Add REPL-like printing of final/return value to %%R cell magic
1154 * :ghpull:`4017`: Add REPL-like printing of final/return value to %%R cell magic
1155 * :ghpull:`4019`: Test skipping without unicode paths
1155 * :ghpull:`4019`: Test skipping without unicode paths
1156 * :ghpull:`4008`: Transform code before %prun/%%prun runs
1156 * :ghpull:`4008`: Transform code before %prun/%%prun runs
1157 * :ghpull:`4014`: Fix typo in ipapp
1157 * :ghpull:`4014`: Fix typo in ipapp
1158 * :ghpull:`3997`: DOC: typos + rewording in examples/notebooks/Cell Magics.ipynb
1158 * :ghpull:`3997`: DOC: typos + rewording in examples/notebooks/Cell Magics.ipynb
1159 * :ghpull:`3914`: nbconvert: Transformer tests
1159 * :ghpull:`3914`: nbconvert: Transformer tests
1160 * :ghpull:`3987`: get files list in backport_pr
1160 * :ghpull:`3987`: get files list in backport_pr
1161 * :ghpull:`3923`: nbconvert: Writer tests
1161 * :ghpull:`3923`: nbconvert: Writer tests
1162 * :ghpull:`3974`: nbconvert: Fix app tests on Window7 w/ Python 3.3
1162 * :ghpull:`3974`: nbconvert: Fix app tests on Window7 w/ Python 3.3
1163 * :ghpull:`3937`: make tab visible in codemirror and light red background
1163 * :ghpull:`3937`: make tab visible in codemirror and light red background
1164 * :ghpull:`3933`: nbconvert: Post-processor tests
1164 * :ghpull:`3933`: nbconvert: Post-processor tests
1165 * :ghpull:`3978`: fix `--existing` with non-localhost IP
1165 * :ghpull:`3978`: fix `--existing` with non-localhost IP
1166 * :ghpull:`3939`: minor checkpoint cleanup
1166 * :ghpull:`3939`: minor checkpoint cleanup
1167 * :ghpull:`3955`: complete on % for magic in notebook
1167 * :ghpull:`3955`: complete on % for magic in notebook
1168 * :ghpull:`3981`: BF: fix nbconert rst input prompt spacing
1168 * :ghpull:`3981`: BF: fix nbconert rst input prompt spacing
1169 * :ghpull:`3960`: Don't make sphinx a dependency for importing nbconvert
1169 * :ghpull:`3960`: Don't make sphinx a dependency for importing nbconvert
1170 * :ghpull:`3973`: logging.Formatter is not new-style in 2.6
1170 * :ghpull:`3973`: logging.Formatter is not new-style in 2.6
1171
1171
1172 Issues (434):
1172 Issues (434):
1173
1173
1174 * :ghissue:`5476`: For 2.0: Fix links in Notebook Help Menu
1174 * :ghissue:`5476`: For 2.0: Fix links in Notebook Help Menu
1175 * :ghissue:`5337`: Examples reorganization
1175 * :ghissue:`5337`: Examples reorganization
1176 * :ghissue:`5436`: CodeMirror shortcuts in QuickHelp
1176 * :ghissue:`5436`: CodeMirror shortcuts in QuickHelp
1177 * :ghissue:`5444`: Fix numeric verification for Int and Float text widgets.
1177 * :ghissue:`5444`: Fix numeric verification for Int and Float text widgets.
1178 * :ghissue:`5443`: Int and Float Widgets don't allow negative signs
1178 * :ghissue:`5443`: Int and Float Widgets don't allow negative signs
1179 * :ghissue:`5449`: Stretch keyboard shortcut dialog
1179 * :ghissue:`5449`: Stretch keyboard shortcut dialog
1180 * :ghissue:`5471`: Add coding magic comment to nbconvert Python template
1180 * :ghissue:`5471`: Add coding magic comment to nbconvert Python template
1181 * :ghissue:`5470`: UTF-8 Issue When Converting Notebook to a Script.
1181 * :ghissue:`5470`: UTF-8 Issue When Converting Notebook to a Script.
1182 * :ghissue:`5369`: FormatterWarning for SVG matplotlib output in notebook
1182 * :ghissue:`5369`: FormatterWarning for SVG matplotlib output in notebook
1183 * :ghissue:`5460`: Can't start the notebook server specifying a notebook
1183 * :ghissue:`5460`: Can't start the notebook server specifying a notebook
1184 * :ghissue:`2918`: CodeMirror related issues.
1184 * :ghissue:`2918`: CodeMirror related issues.
1185 * :ghissue:`5431`: update github_stats and gh_api for 2.0
1185 * :ghissue:`5431`: update github_stats and gh_api for 2.0
1186 * :ghissue:`4887`: Add tests for modal UI
1186 * :ghissue:`4887`: Add tests for modal UI
1187 * :ghissue:`5290`: Add dual mode JS tests
1187 * :ghissue:`5290`: Add dual mode JS tests
1188 * :ghissue:`5448`: Cmd+/ shortcut doesn't work in IPython master
1188 * :ghissue:`5448`: Cmd+/ shortcut doesn't work in IPython master
1189 * :ghissue:`5447`: Add %%python2 cell magic
1189 * :ghissue:`5447`: Add %%python2 cell magic
1190 * :ghissue:`5442`: Make a "python2" alias or rename the "python"cell magic.
1190 * :ghissue:`5442`: Make a "python2" alias or rename the "python"cell magic.
1191 * :ghissue:`2495`: non-ascii characters in the path
1191 * :ghissue:`2495`: non-ascii characters in the path
1192 * :ghissue:`4554`: dictDB: Exception due to str to datetime comparission
1192 * :ghissue:`4554`: dictDB: Exception due to str to datetime comparission
1193 * :ghissue:`5006`: Comm code is not run in the same context as notebook code
1193 * :ghissue:`5006`: Comm code is not run in the same context as notebook code
1194 * :ghissue:`5118`: Weird interact behavior
1194 * :ghissue:`5118`: Weird interact behavior
1195 * :ghissue:`5401`: Empty code cells in nbconvert rst output cause problems
1195 * :ghissue:`5401`: Empty code cells in nbconvert rst output cause problems
1196 * :ghissue:`5434`: fix check for empty cells in rst template
1196 * :ghissue:`5434`: fix check for empty cells in rst template
1197 * :ghissue:`4944`: Trouble finding ipynb path in Windows 8
1197 * :ghissue:`4944`: Trouble finding ipynb path in Windows 8
1198 * :ghissue:`4605`: Change the url of Editor Shorcuts in the notebook menu.
1198 * :ghissue:`4605`: Change the url of Editor Shorcuts in the notebook menu.
1199 * :ghissue:`5425`: Update COPYING.txt
1199 * :ghissue:`5425`: Update COPYING.txt
1200 * :ghissue:`5348`: BUG: HistoryAccessor.get_session_info(0) - exception
1200 * :ghissue:`5348`: BUG: HistoryAccessor.get_session_info(0) - exception
1201 * :ghissue:`5293`: Javascript("element.append()") looks broken.
1201 * :ghissue:`5293`: Javascript("element.append()") looks broken.
1202 * :ghissue:`5363`: Disable saving if notebook has stopped loading
1202 * :ghissue:`5363`: Disable saving if notebook has stopped loading
1203 * :ghissue:`5189`: Tooltip pager mode is broken
1203 * :ghissue:`5189`: Tooltip pager mode is broken
1204 * :ghissue:`5330`: Updates to shell reference doc
1204 * :ghissue:`5330`: Updates to shell reference doc
1205 * :ghissue:`5397`: Accordion widget broken
1205 * :ghissue:`5397`: Accordion widget broken
1206 * :ghissue:`5106`: Flexbox CSS specificity bugs
1206 * :ghissue:`5106`: Flexbox CSS specificity bugs
1207 * :ghissue:`5297`: tooltip triggers focus bug
1207 * :ghissue:`5297`: tooltip triggers focus bug
1208 * :ghissue:`5417`: scp checking for existence of directories: directory names are incorrect
1208 * :ghissue:`5417`: scp checking for existence of directories: directory names are incorrect
1209 * :ghissue:`5302`: Parallel engine registration fails for slow engines
1209 * :ghissue:`5302`: Parallel engine registration fails for slow engines
1210 * :ghissue:`5334`: notebook's split-cell shortcut dangerous / incompatible with Neo layout (for instance)
1210 * :ghissue:`5334`: notebook's split-cell shortcut dangerous / incompatible with Neo layout (for instance)
1211 * :ghissue:`5324`: Style of `raw_input` UI is off in notebook
1211 * :ghissue:`5324`: Style of `raw_input` UI is off in notebook
1212 * :ghissue:`5350`: Converting notebooks with spaces in their names to RST gives broken images
1212 * :ghissue:`5350`: Converting notebooks with spaces in their names to RST gives broken images
1213 * :ghissue:`5049`: update quickhelp on adding and removing shortcuts
1213 * :ghissue:`5049`: update quickhelp on adding and removing shortcuts
1214 * :ghissue:`4941`: Eliminating display of intermediate stages in progress bars
1214 * :ghissue:`4941`: Eliminating display of intermediate stages in progress bars
1215 * :ghissue:`5345`: nbconvert to markdown does not use backticks
1215 * :ghissue:`5345`: nbconvert to markdown does not use backticks
1216 * :ghissue:`5357`: catch exception in copystat
1216 * :ghissue:`5357`: catch exception in copystat
1217 * :ghissue:`5351`: Notebook saving fails on smb share
1217 * :ghissue:`5351`: Notebook saving fails on smb share
1218 * :ghissue:`4946`: TeX produced cannot be converted to PDF
1218 * :ghissue:`4946`: TeX produced cannot be converted to PDF
1219 * :ghissue:`5347`: pretty print list too slow
1219 * :ghissue:`5347`: pretty print list too slow
1220 * :ghissue:`5238`: Raw cell placeholder is not removed when you edit the cell
1220 * :ghissue:`5238`: Raw cell placeholder is not removed when you edit the cell
1221 * :ghissue:`5382`: Qtconsole doesn't run in Python 3
1221 * :ghissue:`5382`: Qtconsole doesn't run in Python 3
1222 * :ghissue:`5378`: Unexpected and new conflict between PyFileConfigLoader and IPythonQtConsoleApp
1222 * :ghissue:`5378`: Unexpected and new conflict between PyFileConfigLoader and IPythonQtConsoleApp
1223 * :ghissue:`4945`: Heading/cells positioning problem and cell output wrapping
1223 * :ghissue:`4945`: Heading/cells positioning problem and cell output wrapping
1224 * :ghissue:`5084`: Consistent approach for HTML/JS output on nbviewer
1224 * :ghissue:`5084`: Consistent approach for HTML/JS output on nbviewer
1225 * :ghissue:`4902`: print preview does not work, custom.css not found
1225 * :ghissue:`4902`: print preview does not work, custom.css not found
1226 * :ghissue:`5336`: TypeError in bootstrap-tour.min.js
1226 * :ghissue:`5336`: TypeError in bootstrap-tour.min.js
1227 * :ghissue:`5303`: Changed Hub.registration_timeout to be a config input.
1227 * :ghissue:`5303`: Changed Hub.registration_timeout to be a config input.
1228 * :ghissue:`995`: Paste-able mode in terminal
1228 * :ghissue:`995`: Paste-able mode in terminal
1229 * :ghissue:`5305`: Tuple unpacking for shell escape
1229 * :ghissue:`5305`: Tuple unpacking for shell escape
1230 * :ghissue:`5232`: Make nbconvert html full output like notebook's html.
1230 * :ghissue:`5232`: Make nbconvert html full output like notebook's html.
1231 * :ghissue:`5224`: Audit nbconvert HTML output
1231 * :ghissue:`5224`: Audit nbconvert HTML output
1232 * :ghissue:`5253`: display any output from this session in terminal console
1232 * :ghissue:`5253`: display any output from this session in terminal console
1233 * :ghissue:`5251`: ipython console ignoring some stream messages?
1233 * :ghissue:`5251`: ipython console ignoring some stream messages?
1234 * :ghissue:`4802`: Tour of the notebook UI (was UI elements inline with highlighting)
1234 * :ghissue:`4802`: Tour of the notebook UI (was UI elements inline with highlighting)
1235 * :ghissue:`5103`: Moving Constructor definition to the top like a Function definition
1235 * :ghissue:`5103`: Moving Constructor definition to the top like a Function definition
1236 * :ghissue:`5264`: Test failures on master with Anaconda
1236 * :ghissue:`5264`: Test failures on master with Anaconda
1237 * :ghissue:`4833`: Serve /usr/share/javascript at /_sysassets/javascript/ in notebook
1237 * :ghissue:`4833`: Serve /usr/share/javascript at /_sysassets/javascript/ in notebook
1238 * :ghissue:`5071`: Prevent %pylab from clobbering interactive
1238 * :ghissue:`5071`: Prevent %pylab from clobbering interactive
1239 * :ghissue:`5282`: Exception in widget __del__ methods in Python 3.4.
1239 * :ghissue:`5282`: Exception in widget __del__ methods in Python 3.4.
1240 * :ghissue:`5280`: append Firefox overflow-x fix
1240 * :ghissue:`5280`: append Firefox overflow-x fix
1241 * :ghissue:`5120`: append Firefox overflow-x fix, again
1241 * :ghissue:`5120`: append Firefox overflow-x fix, again
1242 * :ghissue:`4127`: autoreload shouldn't rely on .pyc modification times
1242 * :ghissue:`4127`: autoreload shouldn't rely on .pyc modification times
1243 * :ghissue:`5272`: allow highlighting language to be set from notebook metadata
1243 * :ghissue:`5272`: allow highlighting language to be set from notebook metadata
1244 * :ghissue:`5050`: Notebook cells truncated with Firefox
1244 * :ghissue:`5050`: Notebook cells truncated with Firefox
1245 * :ghissue:`4839`: Error in Session.send_raw()
1245 * :ghissue:`4839`: Error in Session.send_raw()
1246 * :ghissue:`5188`: New events system
1246 * :ghissue:`5188`: New events system
1247 * :ghissue:`5076`: Refactor keyboard handling
1247 * :ghissue:`5076`: Refactor keyboard handling
1248 * :ghissue:`4886`: Refactor and consolidate different keyboard logic in JavaScript code
1248 * :ghissue:`4886`: Refactor and consolidate different keyboard logic in JavaScript code
1249 * :ghissue:`5002`: the green cell border moving forever in Chrome, when there are many code cells.
1249 * :ghissue:`5002`: the green cell border moving forever in Chrome, when there are many code cells.
1250 * :ghissue:`5259`: Codemirror still active in command mode
1250 * :ghissue:`5259`: Codemirror still active in command mode
1251 * :ghissue:`5219`: Output images appear as small thumbnails (Notebook)
1251 * :ghissue:`5219`: Output images appear as small thumbnails (Notebook)
1252 * :ghissue:`4829`: Not able to connect qtconsole in Windows 8
1252 * :ghissue:`4829`: Not able to connect qtconsole in Windows 8
1253 * :ghissue:`5152`: Hide __pycache__ in dashboard directory list
1253 * :ghissue:`5152`: Hide __pycache__ in dashboard directory list
1254 * :ghissue:`5151`: Case-insesitive sort for dashboard list
1254 * :ghissue:`5151`: Case-insesitive sort for dashboard list
1255 * :ghissue:`4603`: Warn when overwriting a notebook with upload
1255 * :ghissue:`4603`: Warn when overwriting a notebook with upload
1256 * :ghissue:`4895`: Improvements to %run completions
1256 * :ghissue:`4895`: Improvements to %run completions
1257 * :ghissue:`3459`: Filename completion when run script with %run
1257 * :ghissue:`3459`: Filename completion when run script with %run
1258 * :ghissue:`5225`: Add JavaScript to nbconvert HTML display priority
1258 * :ghissue:`5225`: Add JavaScript to nbconvert HTML display priority
1259 * :ghissue:`5034`: Audit the places where we call `.html(something)`
1259 * :ghissue:`5034`: Audit the places where we call `.html(something)`
1260 * :ghissue:`5094`: Dancing cells in notebook
1260 * :ghissue:`5094`: Dancing cells in notebook
1261 * :ghissue:`4999`: Notebook focus effects
1261 * :ghissue:`4999`: Notebook focus effects
1262 * :ghissue:`5149`: Clicking on a TextBoxWidget in FF completely breaks dual mode.
1262 * :ghissue:`5149`: Clicking on a TextBoxWidget in FF completely breaks dual mode.
1263 * :ghissue:`5207`: Children fire event
1263 * :ghissue:`5207`: Children fire event
1264 * :ghissue:`5227`: display_method of objects with custom __getattr__
1264 * :ghissue:`5227`: display_method of objects with custom __getattr__
1265 * :ghissue:`5236`: Cursor keys do not work to leave Markdown cell while it's being edited
1265 * :ghissue:`5236`: Cursor keys do not work to leave Markdown cell while it's being edited
1266 * :ghissue:`5205`: Use CTuple traitlet for Widget children
1266 * :ghissue:`5205`: Use CTuple traitlet for Widget children
1267 * :ghissue:`5230`: notebook rename does not respect url prefix
1267 * :ghissue:`5230`: notebook rename does not respect url prefix
1268 * :ghissue:`5218`: Test failures with Python 3 and enabled warnings
1268 * :ghissue:`5218`: Test failures with Python 3 and enabled warnings
1269 * :ghissue:`5115`: Page Breaks for Print Preview Broken by display: flex - Simple CSS Fix
1269 * :ghissue:`5115`: Page Breaks for Print Preview Broken by display: flex - Simple CSS Fix
1270 * :ghissue:`5024`: Make nbconvert HTML output smart about page breaking
1270 * :ghissue:`5024`: Make nbconvert HTML output smart about page breaking
1271 * :ghissue:`4985`: Add automatic Closebrackets function to Codemirror.
1271 * :ghissue:`4985`: Add automatic Closebrackets function to Codemirror.
1272 * :ghissue:`5184`: print '\xa' crashes the interactive shell
1272 * :ghissue:`5184`: print '\xa' crashes the interactive shell
1273 * :ghissue:`5214`: Downloading notebook as Python (.py) fails
1273 * :ghissue:`5214`: Downloading notebook as Python (.py) fails
1274 * :ghissue:`5211`: AttributeError: 'module' object has no attribute '_outputfile'
1274 * :ghissue:`5211`: AttributeError: 'module' object has no attribute '_outputfile'
1275 * :ghissue:`5206`: [CSS?] Inconsistencies in nbconvert divs and IPython Notebook divs?
1275 * :ghissue:`5206`: [CSS?] Inconsistencies in nbconvert divs and IPython Notebook divs?
1276 * :ghissue:`5201`: node != nodejs within Debian packages
1276 * :ghissue:`5201`: node != nodejs within Debian packages
1277 * :ghissue:`5112`: band-aid for completion
1277 * :ghissue:`5112`: band-aid for completion
1278 * :ghissue:`4860`: Completer As-You-Type Broken
1278 * :ghissue:`4860`: Completer As-You-Type Broken
1279 * :ghissue:`5116`: reorganize who knows what about paths
1279 * :ghissue:`5116`: reorganize who knows what about paths
1280 * :ghissue:`4973`: Adding security.js with 1st attempt at is_safe
1280 * :ghissue:`4973`: Adding security.js with 1st attempt at is_safe
1281 * :ghissue:`5164`: test_oinspect.test_calltip_builtin failure with python3.4
1281 * :ghissue:`5164`: test_oinspect.test_calltip_builtin failure with python3.4
1282 * :ghissue:`5127`: Widgets: skip intermediate callbacks during throttling
1282 * :ghissue:`5127`: Widgets: skip intermediate callbacks during throttling
1283 * :ghissue:`5013`: Widget alignment differs between FF and Chrome
1283 * :ghissue:`5013`: Widget alignment differs between FF and Chrome
1284 * :ghissue:`5141`: tornado error static file
1284 * :ghissue:`5141`: tornado error static file
1285 * :ghissue:`5160`: TemporaryWorkingDirectory incompatible with python3.4
1285 * :ghissue:`5160`: TemporaryWorkingDirectory incompatible with python3.4
1286 * :ghissue:`5140`: WIP: %kernels magic
1286 * :ghissue:`5140`: WIP: %kernels magic
1287 * :ghissue:`4987`: Widget lifecycle problems
1287 * :ghissue:`4987`: Widget lifecycle problems
1288 * :ghissue:`5129`: UCS package break latex export on non-ascii
1288 * :ghissue:`5129`: UCS package break latex export on non-ascii
1289 * :ghissue:`4986`: Cell horizontal scrollbar is missing in FF but not in Chrome
1289 * :ghissue:`4986`: Cell horizontal scrollbar is missing in FF but not in Chrome
1290 * :ghissue:`4685`: nbconvert ignores image size metadata
1290 * :ghissue:`4685`: nbconvert ignores image size metadata
1291 * :ghissue:`5155`: Notebook logout button does not work (source typo)
1291 * :ghissue:`5155`: Notebook logout button does not work (source typo)
1292 * :ghissue:`2678`: Ctrl-m keyboard shortcut clash on Chrome OS
1292 * :ghissue:`2678`: Ctrl-m keyboard shortcut clash on Chrome OS
1293 * :ghissue:`5113`: ButtonWidget without caption wrong height.
1293 * :ghissue:`5113`: ButtonWidget without caption wrong height.
1294 * :ghissue:`4778`: add APIs for installing notebook extensions
1294 * :ghissue:`4778`: add APIs for installing notebook extensions
1295 * :ghissue:`5046`: python setup.py failed vs git submodule update worked
1295 * :ghissue:`5046`: python setup.py failed vs git submodule update worked
1296 * :ghissue:`4925`: Notebook manager api fixes
1296 * :ghissue:`4925`: Notebook manager api fixes
1297 * :ghissue:`5073`: Cannot align widgets horizontally in the notebook
1297 * :ghissue:`5073`: Cannot align widgets horizontally in the notebook
1298 * :ghissue:`4996`: require print_method to be a bound method
1298 * :ghissue:`4996`: require print_method to be a bound method
1299 * :ghissue:`4990`: _repr_html_ exception reporting corner case when using type(foo)
1299 * :ghissue:`4990`: _repr_html_ exception reporting corner case when using type(foo)
1300 * :ghissue:`5099`: Notebook: Changing base_project_url results in failed WebSockets call
1300 * :ghissue:`5099`: Notebook: Changing base_project_url results in failed WebSockets call
1301 * :ghissue:`5096`: Client.map is not fault tolerant
1301 * :ghissue:`5096`: Client.map is not fault tolerant
1302 * :ghissue:`4997`: Inconsistent %matplotlib qt behavior
1302 * :ghissue:`4997`: Inconsistent %matplotlib qt behavior
1303 * :ghissue:`5041`: Remove more .html(...) calls.
1303 * :ghissue:`5041`: Remove more .html(...) calls.
1304 * :ghissue:`5078`: Updating JS tests README.md
1304 * :ghissue:`5078`: Updating JS tests README.md
1305 * :ghissue:`4977`: ensure scp destination directories exist (with mkdir -p)
1305 * :ghissue:`4977`: ensure scp destination directories exist (with mkdir -p)
1306 * :ghissue:`3411`: ipython parallel: scp failure.
1306 * :ghissue:`3411`: ipython parallel: scp failure.
1307 * :ghissue:`5064`: Errors during interact display at the terminal, not anywhere in the notebook
1307 * :ghissue:`5064`: Errors during interact display at the terminal, not anywhere in the notebook
1308 * :ghissue:`4921`: Add PDF formatter and handling
1308 * :ghissue:`4921`: Add PDF formatter and handling
1309 * :ghissue:`4920`: Adding PDFFormatter and kernel side handling of PDF display data
1309 * :ghissue:`4920`: Adding PDFFormatter and kernel side handling of PDF display data
1310 * :ghissue:`5048`: Add edit/command mode indicator
1310 * :ghissue:`5048`: Add edit/command mode indicator
1311 * :ghissue:`4889`: Add UI element for indicating command/edit modes
1311 * :ghissue:`4889`: Add UI element for indicating command/edit modes
1312 * :ghissue:`5052`: Add q to toggle the pager.
1312 * :ghissue:`5052`: Add q to toggle the pager.
1313 * :ghissue:`5000`: Closing pager with keyboard in modal UI
1313 * :ghissue:`5000`: Closing pager with keyboard in modal UI
1314 * :ghissue:`5069`: Box model changes broke the Keyboard Shortcuts help modal
1314 * :ghissue:`5069`: Box model changes broke the Keyboard Shortcuts help modal
1315 * :ghissue:`4960`: Interact/Interactive for widget
1315 * :ghissue:`4960`: Interact/Interactive for widget
1316 * :ghissue:`4883`: Implement interact/interactive for widgets
1316 * :ghissue:`4883`: Implement interact/interactive for widgets
1317 * :ghissue:`5038`: Fix multiple press keyboard events
1317 * :ghissue:`5038`: Fix multiple press keyboard events
1318 * :ghissue:`5054`: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc6 in position 1: ordinal not in range(128)
1318 * :ghissue:`5054`: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc6 in position 1: ordinal not in range(128)
1319 * :ghissue:`5031`: Bug during integration of IPython console in Qt application
1319 * :ghissue:`5031`: Bug during integration of IPython console in Qt application
1320 * :ghissue:`5057`: iopubwatcher.py example is broken.
1320 * :ghissue:`5057`: iopubwatcher.py example is broken.
1321 * :ghissue:`4747`: Add event for output_area adding an output
1321 * :ghissue:`4747`: Add event for output_area adding an output
1322 * :ghissue:`5001`: Add directory navigation to dashboard
1322 * :ghissue:`5001`: Add directory navigation to dashboard
1323 * :ghissue:`5016`: Help menu external-link icons break layout in FF
1323 * :ghissue:`5016`: Help menu external-link icons break layout in FF
1324 * :ghissue:`4885`: Modal UI behavior changes
1324 * :ghissue:`4885`: Modal UI behavior changes
1325 * :ghissue:`5009`: notebook signatures don't work
1325 * :ghissue:`5009`: notebook signatures don't work
1326 * :ghissue:`4975`: setup.py changes for 2.0
1326 * :ghissue:`4975`: setup.py changes for 2.0
1327 * :ghissue:`4774`: emit event on appended element on dom
1327 * :ghissue:`4774`: emit event on appended element on dom
1328 * :ghissue:`5020`: Python Lists translated to javascript objects in widgets
1328 * :ghissue:`5020`: Python Lists translated to javascript objects in widgets
1329 * :ghissue:`5003`: Fix pretty reprs of super() objects
1329 * :ghissue:`5003`: Fix pretty reprs of super() objects
1330 * :ghissue:`5012`: Make `SelectionWidget.values` a dict
1330 * :ghissue:`5012`: Make `SelectionWidget.values` a dict
1331 * :ghissue:`4961`: Bug when constructing a selection widget with both values and labels
1331 * :ghissue:`4961`: Bug when constructing a selection widget with both values and labels
1332 * :ghissue:`4283`: A `<` in a markdown cell strips cell content when converting to latex
1332 * :ghissue:`4283`: A `<` in a markdown cell strips cell content when converting to latex
1333 * :ghissue:`4006`: iptest IPython broken
1333 * :ghissue:`4006`: iptest IPython broken
1334 * :ghissue:`4251`: & escaped to &amp; in tex ?
1334 * :ghissue:`4251`: & escaped to &amp; in tex ?
1335 * :ghissue:`5027`: pin lessc to 1.4
1335 * :ghissue:`5027`: pin lessc to 1.4
1336 * :ghissue:`4323`: Take 2: citation2latex filter (using HTMLParser)
1336 * :ghissue:`4323`: Take 2: citation2latex filter (using HTMLParser)
1337 * :ghissue:`4196`: Printing notebook from browser gives 1-page truncated output
1337 * :ghissue:`4196`: Printing notebook from browser gives 1-page truncated output
1338 * :ghissue:`4842`: more subtle kernel indicator
1338 * :ghissue:`4842`: more subtle kernel indicator
1339 * :ghissue:`4057`: No path to notebook examples from Help menu
1339 * :ghissue:`4057`: No path to notebook examples from Help menu
1340 * :ghissue:`5015`: don't write cell.trusted to disk
1340 * :ghissue:`5015`: don't write cell.trusted to disk
1341 * :ghissue:`4617`: Changed url link in Help dropdown menu.
1341 * :ghissue:`4617`: Changed url link in Help dropdown menu.
1342 * :ghissue:`4976`: Container widget layout broken on Firefox
1342 * :ghissue:`4976`: Container widget layout broken on Firefox
1343 * :ghissue:`4981`: Vertical slider layout broken
1343 * :ghissue:`4981`: Vertical slider layout broken
1344 * :ghissue:`4793`: Message spec changes related to `clear_output`
1344 * :ghissue:`4793`: Message spec changes related to `clear_output`
1345 * :ghissue:`4982`: Live readout for slider widgets
1345 * :ghissue:`4982`: Live readout for slider widgets
1346 * :ghissue:`4813`: make help menu a template
1346 * :ghissue:`4813`: make help menu a template
1347 * :ghissue:`4989`: Filename tab completion completely broken
1347 * :ghissue:`4989`: Filename tab completion completely broken
1348 * :ghissue:`1380`: Tab should insert 4 spaces in # comment lines
1348 * :ghissue:`1380`: Tab should insert 4 spaces in # comment lines
1349 * :ghissue:`2888`: spaces vs tabs
1349 * :ghissue:`2888`: spaces vs tabs
1350 * :ghissue:`1193`: Allow resizing figures in notebook
1350 * :ghissue:`1193`: Allow resizing figures in notebook
1351 * :ghissue:`4504`: Allow input transformers to raise SyntaxError
1351 * :ghissue:`4504`: Allow input transformers to raise SyntaxError
1352 * :ghissue:`4697`: Problems with height after toggling header and toolbar...
1352 * :ghissue:`4697`: Problems with height after toggling header and toolbar...
1353 * :ghissue:`4951`: TextWidget to code cell command mode bug.
1353 * :ghissue:`4951`: TextWidget to code cell command mode bug.
1354 * :ghissue:`4809`: Arbitrary scrolling (jumping) in clicks in modal UI for notebook
1354 * :ghissue:`4809`: Arbitrary scrolling (jumping) in clicks in modal UI for notebook
1355 * :ghissue:`4971`: Fixing issues with js tests
1355 * :ghissue:`4971`: Fixing issues with js tests
1356 * :ghissue:`4972`: Work around problem in doctest discovery in Python 3.4 with PyQt
1356 * :ghissue:`4972`: Work around problem in doctest discovery in Python 3.4 with PyQt
1357 * :ghissue:`4892`: IPython.qt test failure with python3.4
1357 * :ghissue:`4892`: IPython.qt test failure with python3.4
1358 * :ghissue:`4863`: BUG: cannot create an OBJECT array from memory buffer
1358 * :ghissue:`4863`: BUG: cannot create an OBJECT array from memory buffer
1359 * :ghissue:`4704`: Subcommand `profile` ignores --ipython-dir
1359 * :ghissue:`4704`: Subcommand `profile` ignores --ipython-dir
1360 * :ghissue:`4845`: Add Origin Checking.
1360 * :ghissue:`4845`: Add Origin Checking.
1361 * :ghissue:`4870`: ipython_directive, report except/warn in block and add :okexcept: :okwarning: options to suppress
1361 * :ghissue:`4870`: ipython_directive, report except/warn in block and add :okexcept: :okwarning: options to suppress
1362 * :ghissue:`4956`: Shift-Enter does not move to next cell
1362 * :ghissue:`4956`: Shift-Enter does not move to next cell
1363 * :ghissue:`4662`: Menu cleanup
1363 * :ghissue:`4662`: Menu cleanup
1364 * :ghissue:`4824`: sign notebooks
1364 * :ghissue:`4824`: sign notebooks
1365 * :ghissue:`4848`: avoid import of nearby temporary with %edit
1365 * :ghissue:`4848`: avoid import of nearby temporary with %edit
1366 * :ghissue:`4731`: %edit files mistakenly import modules in /tmp
1366 * :ghissue:`4731`: %edit files mistakenly import modules in /tmp
1367 * :ghissue:`4950`: Two fixes for file upload related bugs
1367 * :ghissue:`4950`: Two fixes for file upload related bugs
1368 * :ghissue:`4871`: Notebook upload fails after Delete
1368 * :ghissue:`4871`: Notebook upload fails after Delete
1369 * :ghissue:`4825`: File Upload URL set incorrectly
1369 * :ghissue:`4825`: File Upload URL set incorrectly
1370 * :ghissue:`3867`: display.FileLinks should work in the exported html verion of a notebook
1370 * :ghissue:`3867`: display.FileLinks should work in the exported html verion of a notebook
1371 * :ghissue:`4948`: reveal: ipython css overrides reveal themes
1371 * :ghissue:`4948`: reveal: ipython css overrides reveal themes
1372 * :ghissue:`4947`: reveal: slides that are too big?
1372 * :ghissue:`4947`: reveal: slides that are too big?
1373 * :ghissue:`4051`: Test failures with Python 3 and enabled warnings
1373 * :ghissue:`4051`: Test failures with Python 3 and enabled warnings
1374 * :ghissue:`3633`: outstanding issues over in ipython/nbconvert repo
1374 * :ghissue:`3633`: outstanding issues over in ipython/nbconvert repo
1375 * :ghissue:`4087`: Sympy printing in the example notebook
1375 * :ghissue:`4087`: Sympy printing in the example notebook
1376 * :ghissue:`4627`: Document various QtConsole embedding approaches.
1376 * :ghissue:`4627`: Document various QtConsole embedding approaches.
1377 * :ghissue:`4849`: Various unicode fixes (mostly on Windows)
1377 * :ghissue:`4849`: Various unicode fixes (mostly on Windows)
1378 * :ghissue:`3653`: autocompletion in "from package import <tab>"
1378 * :ghissue:`3653`: autocompletion in "from package import <tab>"
1379 * :ghissue:`4583`: overwrite? prompt gets EOFError in 2 process
1379 * :ghissue:`4583`: overwrite? prompt gets EOFError in 2 process
1380 * :ghissue:`4807`: Correct handling of ansi colour codes when nbconverting to latex
1380 * :ghissue:`4807`: Correct handling of ansi colour codes when nbconverting to latex
1381 * :ghissue:`4611`: Document how to compile .less files in dev docs.
1381 * :ghissue:`4611`: Document how to compile .less files in dev docs.
1382 * :ghissue:`4618`: "Editor Shortcuts" link is broken in help menu dropdown notebook
1382 * :ghissue:`4618`: "Editor Shortcuts" link is broken in help menu dropdown notebook
1383 * :ghissue:`4522`: DeprecationWarning: the sets module is deprecated
1383 * :ghissue:`4522`: DeprecationWarning: the sets module is deprecated
1384 * :ghissue:`4368`: No symlink from ipython to ipython3 when inside a python3 virtualenv
1384 * :ghissue:`4368`: No symlink from ipython to ipython3 when inside a python3 virtualenv
1385 * :ghissue:`4234`: Math without $$ doesn't show up when converted to slides
1385 * :ghissue:`4234`: Math without $$ doesn't show up when converted to slides
1386 * :ghissue:`4194`: config.TerminalIPythonApp.nosep does not work
1386 * :ghissue:`4194`: config.TerminalIPythonApp.nosep does not work
1387 * :ghissue:`1491`: prefilter not called for multi-line notebook cells
1387 * :ghissue:`1491`: prefilter not called for multi-line notebook cells
1388 * :ghissue:`4001`: Windows IPython executable /scripts/ipython not working
1388 * :ghissue:`4001`: Windows IPython executable /scripts/ipython not working
1389 * :ghissue:`3959`: think more carefully about text wrapping in nbconvert
1389 * :ghissue:`3959`: think more carefully about text wrapping in nbconvert
1390 * :ghissue:`4907`: Test for traceback depth fails on Windows
1390 * :ghissue:`4907`: Test for traceback depth fails on Windows
1391 * :ghissue:`4906`: Test for IPython.embed() fails on Windows
1391 * :ghissue:`4906`: Test for IPython.embed() fails on Windows
1392 * :ghissue:`4912`: Skip some Windows io failures
1392 * :ghissue:`4912`: Skip some Windows io failures
1393 * :ghissue:`3700`: stdout/stderr should be flushed printing exception output...
1393 * :ghissue:`3700`: stdout/stderr should be flushed printing exception output...
1394 * :ghissue:`1181`: greedy completer bug in terminal console
1394 * :ghissue:`1181`: greedy completer bug in terminal console
1395 * :ghissue:`2032`: check for a few places we should be using DEFAULT_ENCODING
1395 * :ghissue:`2032`: check for a few places we should be using DEFAULT_ENCODING
1396 * :ghissue:`4882`: Too many files open when starting and stopping kernel repeatedly
1396 * :ghissue:`4882`: Too many files open when starting and stopping kernel repeatedly
1397 * :ghissue:`4880`: set profile name from profile_dir
1397 * :ghissue:`4880`: set profile name from profile_dir
1398 * :ghissue:`4238`: parallel.Client() not using profile that notebook was run with?
1398 * :ghissue:`4238`: parallel.Client() not using profile that notebook was run with?
1399 * :ghissue:`4853`: fix setting image height/width from metadata
1399 * :ghissue:`4853`: fix setting image height/width from metadata
1400 * :ghissue:`4786`: Reduce spacing of heading cells
1400 * :ghissue:`4786`: Reduce spacing of heading cells
1401 * :ghissue:`4680`: Minimal pandoc version warning
1401 * :ghissue:`4680`: Minimal pandoc version warning
1402 * :ghissue:`3707`: nbconvert: Remove IPython magic commands from --format="python" output
1402 * :ghissue:`3707`: nbconvert: Remove IPython magic commands from --format="python" output
1403 * :ghissue:`4130`: PDF figures as links from png or svg figures
1403 * :ghissue:`4130`: PDF figures as links from png or svg figures
1404 * :ghissue:`3919`: Allow --profile to be passed a dir.
1404 * :ghissue:`3919`: Allow --profile to be passed a dir.
1405 * :ghissue:`2136`: Handle hard newlines in pretty printer
1405 * :ghissue:`2136`: Handle hard newlines in pretty printer
1406 * :ghissue:`4790`: Notebook modal UI: "merge cell below" key binding, `shift+=`, does not work with some keyboard layouts
1406 * :ghissue:`4790`: Notebook modal UI: "merge cell below" key binding, `shift+=`, does not work with some keyboard layouts
1407 * :ghissue:`4884`: Keyboard shortcut changes
1407 * :ghissue:`4884`: Keyboard shortcut changes
1408 * :ghissue:`1184`: slow handling of keyboard input
1408 * :ghissue:`1184`: slow handling of keyboard input
1409 * :ghissue:`4913`: Mathjax, Markdown, tex, env* and italic
1409 * :ghissue:`4913`: Mathjax, Markdown, tex, env* and italic
1410 * :ghissue:`3972`: nbconvert: Template output testing
1410 * :ghissue:`3972`: nbconvert: Template output testing
1411 * :ghissue:`4903`: use https for all embeds
1411 * :ghissue:`4903`: use https for all embeds
1412 * :ghissue:`4874`: --debug does not work if you set .kernel_cmd
1412 * :ghissue:`4874`: --debug does not work if you set .kernel_cmd
1413 * :ghissue:`4679`: JPG compression for inline pylab
1413 * :ghissue:`4679`: JPG compression for inline pylab
1414 * :ghissue:`4708`: Fix indent and center
1414 * :ghissue:`4708`: Fix indent and center
1415 * :ghissue:`4789`: fix IPython.embed
1415 * :ghissue:`4789`: fix IPython.embed
1416 * :ghissue:`4759`: Application._load_config_files log parameter default fails
1416 * :ghissue:`4759`: Application._load_config_files log parameter default fails
1417 * :ghissue:`3153`: docs / file menu: explain how to exit the notebook
1417 * :ghissue:`3153`: docs / file menu: explain how to exit the notebook
1418 * :ghissue:`4791`: Did updates to ipython_directive bork support for cython magic snippets?
1418 * :ghissue:`4791`: Did updates to ipython_directive bork support for cython magic snippets?
1419 * :ghissue:`4385`: "Part 4 - Markdown Cells.ipynb" nbviewer example seems not well referenced in current online documentation page http://ipython.org/ipython-doc/stable/interactive/notebook.htm
1419 * :ghissue:`4385`: "Part 4 - Markdown Cells.ipynb" nbviewer example seems not well referenced in current online documentation page https://ipython.org/ipython-doc/stable/interactive/notebook.htm
1420 * :ghissue:`4655`: prefer marked to pandoc for markdown2html
1420 * :ghissue:`4655`: prefer marked to pandoc for markdown2html
1421 * :ghissue:`3441`: Fix focus related problems in the notebook
1421 * :ghissue:`3441`: Fix focus related problems in the notebook
1422 * :ghissue:`3402`: Feature Request: Save As (latex, html,..etc) as a menu option in Notebook rather than explicit need to invoke nbconvert
1422 * :ghissue:`3402`: Feature Request: Save As (latex, html,..etc) as a menu option in Notebook rather than explicit need to invoke nbconvert
1423 * :ghissue:`3224`: Revisit layout of notebook area
1423 * :ghissue:`3224`: Revisit layout of notebook area
1424 * :ghissue:`2746`: rerunning a cell with long output (exception) scrolls to much (html notebook)
1424 * :ghissue:`2746`: rerunning a cell with long output (exception) scrolls to much (html notebook)
1425 * :ghissue:`2667`: can't save opened notebook if accidentally delete the notebook in the dashboard
1425 * :ghissue:`2667`: can't save opened notebook if accidentally delete the notebook in the dashboard
1426 * :ghissue:`3026`: Reporting errors from _repr_<type>_ methods
1426 * :ghissue:`3026`: Reporting errors from _repr_<type>_ methods
1427 * :ghissue:`1844`: Notebook does not exist and permalinks
1427 * :ghissue:`1844`: Notebook does not exist and permalinks
1428 * :ghissue:`2450`: [closed PR] Prevent jumping of window to input when output is clicked.
1428 * :ghissue:`2450`: [closed PR] Prevent jumping of window to input when output is clicked.
1429 * :ghissue:`3166`: IPEP 16: Notebook multi directory dashboard and URL mapping
1429 * :ghissue:`3166`: IPEP 16: Notebook multi directory dashboard and URL mapping
1430 * :ghissue:`3691`: Slight misalignment of Notebook menu bar with focus box
1430 * :ghissue:`3691`: Slight misalignment of Notebook menu bar with focus box
1431 * :ghissue:`4875`: Empty tooltip with `object_found = false` still being shown
1431 * :ghissue:`4875`: Empty tooltip with `object_found = false` still being shown
1432 * :ghissue:`4432`: The SSL cert for the MathJax CDN is invalid and URL is not protocol agnostic
1432 * :ghissue:`4432`: The SSL cert for the MathJax CDN is invalid and URL is not protocol agnostic
1433 * :ghissue:`2633`: Help text should leave current cell active
1433 * :ghissue:`2633`: Help text should leave current cell active
1434 * :ghissue:`3976`: DOC: Pandas link on the notebook help menu?
1434 * :ghissue:`3976`: DOC: Pandas link on the notebook help menu?
1435 * :ghissue:`4082`: /new handler redirect cached by browser
1435 * :ghissue:`4082`: /new handler redirect cached by browser
1436 * :ghissue:`4298`: Slow ipython --pylab and ipython notebook startup
1436 * :ghissue:`4298`: Slow ipython --pylab and ipython notebook startup
1437 * :ghissue:`4545`: %store magic not working
1437 * :ghissue:`4545`: %store magic not working
1438 * :ghissue:`4610`: toolbar UI enhancements
1438 * :ghissue:`4610`: toolbar UI enhancements
1439 * :ghissue:`4782`: New modal UI
1439 * :ghissue:`4782`: New modal UI
1440 * :ghissue:`4732`: Accents in notebook names and in command-line (nbconvert)
1440 * :ghissue:`4732`: Accents in notebook names and in command-line (nbconvert)
1441 * :ghissue:`4752`: link broken in docs/examples
1441 * :ghissue:`4752`: link broken in docs/examples
1442 * :ghissue:`4835`: running ipython on python files adds an extra traceback frame
1442 * :ghissue:`4835`: running ipython on python files adds an extra traceback frame
1443 * :ghissue:`4792`: repr_html exception warning on qtconsole with pandas #4745
1443 * :ghissue:`4792`: repr_html exception warning on qtconsole with pandas #4745
1444 * :ghissue:`4834`: function tooltip issues
1444 * :ghissue:`4834`: function tooltip issues
1445 * :ghissue:`4808`: Docstrings in Notebook not displayed properly and introspection
1445 * :ghissue:`4808`: Docstrings in Notebook not displayed properly and introspection
1446 * :ghissue:`4846`: Remove some leftover traces of irunner
1446 * :ghissue:`4846`: Remove some leftover traces of irunner
1447 * :ghissue:`4810`: ipcluster bug in clean_logs flag
1447 * :ghissue:`4810`: ipcluster bug in clean_logs flag
1448 * :ghissue:`4812`: update CodeMirror for the notebook
1448 * :ghissue:`4812`: update CodeMirror for the notebook
1449 * :ghissue:`671`: add migration guide for old IPython config
1449 * :ghissue:`671`: add migration guide for old IPython config
1450 * :ghissue:`4783`: ipython 2dev under windows / (win)python 3.3 experiment
1450 * :ghissue:`4783`: ipython 2dev under windows / (win)python 3.3 experiment
1451 * :ghissue:`4772`: Notebook server info files
1451 * :ghissue:`4772`: Notebook server info files
1452 * :ghissue:`4765`: missing build script for highlight.js
1452 * :ghissue:`4765`: missing build script for highlight.js
1453 * :ghissue:`4787`: non-python kernels run python code with qtconsole
1453 * :ghissue:`4787`: non-python kernels run python code with qtconsole
1454 * :ghissue:`4703`: Math macro in jinja templates.
1454 * :ghissue:`4703`: Math macro in jinja templates.
1455 * :ghissue:`4595`: ipython notebook XSS vulnerable
1455 * :ghissue:`4595`: ipython notebook XSS vulnerable
1456 * :ghissue:`4776`: Manually document py3compat module.
1456 * :ghissue:`4776`: Manually document py3compat module.
1457 * :ghissue:`4686`: For-in loop on an array in cell.js
1457 * :ghissue:`4686`: For-in loop on an array in cell.js
1458 * :ghissue:`3605`: Modal UI
1458 * :ghissue:`3605`: Modal UI
1459 * :ghissue:`4769`: Ipython 2.0 will not startup on py27 on windows
1459 * :ghissue:`4769`: Ipython 2.0 will not startup on py27 on windows
1460 * :ghissue:`4482`: reveal.js converter not including CDN by default?
1460 * :ghissue:`4482`: reveal.js converter not including CDN by default?
1461 * :ghissue:`4761`: ipv6 address triggers cookie exception
1461 * :ghissue:`4761`: ipv6 address triggers cookie exception
1462 * :ghissue:`4580`: rename or remove %profile magic
1462 * :ghissue:`4580`: rename or remove %profile magic
1463 * :ghissue:`4643`: Docstring does not open properly
1463 * :ghissue:`4643`: Docstring does not open properly
1464 * :ghissue:`4714`: Static URLs are not auto-versioned
1464 * :ghissue:`4714`: Static URLs are not auto-versioned
1465 * :ghissue:`2573`: document code mirror keyboard shortcuts
1465 * :ghissue:`2573`: document code mirror keyboard shortcuts
1466 * :ghissue:`4717`: hang in parallel.Client when using SSHAgent
1466 * :ghissue:`4717`: hang in parallel.Client when using SSHAgent
1467 * :ghissue:`4544`: Clarify the requirement for pyreadline on Windows
1467 * :ghissue:`4544`: Clarify the requirement for pyreadline on Windows
1468 * :ghissue:`3451`: revisit REST /new handler to avoid systematic crawling.
1468 * :ghissue:`3451`: revisit REST /new handler to avoid systematic crawling.
1469 * :ghissue:`2922`: File => Save as '.py' saves magic as code
1469 * :ghissue:`2922`: File => Save as '.py' saves magic as code
1470 * :ghissue:`4728`: Copy/Paste stripping broken in version > 0.13.x in QTConsole
1470 * :ghissue:`4728`: Copy/Paste stripping broken in version > 0.13.x in QTConsole
1471 * :ghissue:`4539`: Nbconvert: Latex to PDF conversion fails on notebooks with accented letters
1471 * :ghissue:`4539`: Nbconvert: Latex to PDF conversion fails on notebooks with accented letters
1472 * :ghissue:`4721`: purge_results with jobid crashing - looking for insight
1472 * :ghissue:`4721`: purge_results with jobid crashing - looking for insight
1473 * :ghissue:`4620`: Notebook with ? in title defies autosave, renaming and deletion.
1473 * :ghissue:`4620`: Notebook with ? in title defies autosave, renaming and deletion.
1474 * :ghissue:`4574`: Hash character in notebook name breaks a lot of things
1474 * :ghissue:`4574`: Hash character in notebook name breaks a lot of things
1475 * :ghissue:`4709`: input_prefilter hook not called
1475 * :ghissue:`4709`: input_prefilter hook not called
1476 * :ghissue:`1680`: qtconsole should support --no-banner and custom banner
1476 * :ghissue:`1680`: qtconsole should support --no-banner and custom banner
1477 * :ghissue:`4689`: IOStream IP address configurable
1477 * :ghissue:`4689`: IOStream IP address configurable
1478 * :ghissue:`4698`: Missing "if __name__ == '__main__':" check in /usr/bin/ipython
1478 * :ghissue:`4698`: Missing "if __name__ == '__main__':" check in /usr/bin/ipython
1479 * :ghissue:`4191`: NBConvert: markdown inline and locally referenced files have incorrect file location for latex
1479 * :ghissue:`4191`: NBConvert: markdown inline and locally referenced files have incorrect file location for latex
1480 * :ghissue:`2865`: %%!? does not display the shell execute docstring
1480 * :ghissue:`2865`: %%!? does not display the shell execute docstring
1481 * :ghissue:`1551`: Notebook should be saved before printing
1481 * :ghissue:`1551`: Notebook should be saved before printing
1482 * :ghissue:`4612`: remove `Configurable.created` ?
1482 * :ghissue:`4612`: remove `Configurable.created` ?
1483 * :ghissue:`4629`: Lots of tests fail due to space in sys.executable
1483 * :ghissue:`4629`: Lots of tests fail due to space in sys.executable
1484 * :ghissue:`4644`: Fixed URLs for notebooks
1484 * :ghissue:`4644`: Fixed URLs for notebooks
1485 * :ghissue:`4621`: IPython 1.1.0 Qtconsole syntax highlighting highlights python 2 only built-ins when using python 3
1485 * :ghissue:`4621`: IPython 1.1.0 Qtconsole syntax highlighting highlights python 2 only built-ins when using python 3
1486 * :ghissue:`2923`: Move Delete Button Away from Save Button in the HTML notebook toolbar
1486 * :ghissue:`2923`: Move Delete Button Away from Save Button in the HTML notebook toolbar
1487 * :ghissue:`4615`: UnicodeDecodeError
1487 * :ghissue:`4615`: UnicodeDecodeError
1488 * :ghissue:`4431`: ipython slow in os x mavericks?
1488 * :ghissue:`4431`: ipython slow in os x mavericks?
1489 * :ghissue:`4538`: DOC: document how to change ipcontroller-engine.json in case controller was started with --ip="*"
1489 * :ghissue:`4538`: DOC: document how to change ipcontroller-engine.json in case controller was started with --ip="*"
1490 * :ghissue:`4551`: Serialize methods and closures
1490 * :ghissue:`4551`: Serialize methods and closures
1491 * :ghissue:`4081`: [Nbconvert][reveal] link to font awesome ?
1491 * :ghissue:`4081`: [Nbconvert][reveal] link to font awesome ?
1492 * :ghissue:`4602`: "ipcluster stop" fails after "ipcluster start --daemonize" using python3.3
1492 * :ghissue:`4602`: "ipcluster stop" fails after "ipcluster start --daemonize" using python3.3
1493 * :ghissue:`4578`: NBconvert fails with unicode errors when `--stdout` and file redirection is specified and HTML entities are present
1493 * :ghissue:`4578`: NBconvert fails with unicode errors when `--stdout` and file redirection is specified and HTML entities are present
1494 * :ghissue:`4600`: Renaming new notebook to an exist name silently deletes the old one
1494 * :ghissue:`4600`: Renaming new notebook to an exist name silently deletes the old one
1495 * :ghissue:`4598`: Qtconsole docstring pop-up fails on method containing defaulted enum argument
1495 * :ghissue:`4598`: Qtconsole docstring pop-up fails on method containing defaulted enum argument
1496 * :ghissue:`951`: Remove Tornado monkeypatch
1496 * :ghissue:`951`: Remove Tornado monkeypatch
1497 * :ghissue:`4564`: Notebook save failure
1497 * :ghissue:`4564`: Notebook save failure
1498 * :ghissue:`4562`: nbconvert: Default encoding problem on OS X
1498 * :ghissue:`4562`: nbconvert: Default encoding problem on OS X
1499 * :ghissue:`1675`: add file_to_run=file.ipynb capability to the notebook
1499 * :ghissue:`1675`: add file_to_run=file.ipynb capability to the notebook
1500 * :ghissue:`4516`: `ipython console` doesn't send a `shutdown_request`
1500 * :ghissue:`4516`: `ipython console` doesn't send a `shutdown_request`
1501 * :ghissue:`3043`: can't restart pdb session in ipython
1501 * :ghissue:`3043`: can't restart pdb session in ipython
1502 * :ghissue:`4524`: Fix bug with non ascii passwords in notebook login
1502 * :ghissue:`4524`: Fix bug with non ascii passwords in notebook login
1503 * :ghissue:`1866`: problems rendering an SVG?
1503 * :ghissue:`1866`: problems rendering an SVG?
1504 * :ghissue:`4520`: unicode error when trying Audio('data/Bach Cello Suite #3.wav')
1504 * :ghissue:`4520`: unicode error when trying Audio('data/Bach Cello Suite #3.wav')
1505 * :ghissue:`4493`: Qtconsole cannot print an ISO8601 date at nanosecond precision
1505 * :ghissue:`4493`: Qtconsole cannot print an ISO8601 date at nanosecond precision
1506 * :ghissue:`4502`: intermittent parallel test failure test_purge_everything
1506 * :ghissue:`4502`: intermittent parallel test failure test_purge_everything
1507 * :ghissue:`4495`: firefox 25.0: notebooks report "Notebook save failed", .py script save fails, but .ipynb save succeeds
1507 * :ghissue:`4495`: firefox 25.0: notebooks report "Notebook save failed", .py script save fails, but .ipynb save succeeds
1508 * :ghissue:`4245`: nbconvert latex: code highlighting causes error
1508 * :ghissue:`4245`: nbconvert latex: code highlighting causes error
1509 * :ghissue:`4486`: Test for whether inside virtualenv does not work if directory is symlinked
1509 * :ghissue:`4486`: Test for whether inside virtualenv does not work if directory is symlinked
1510 * :ghissue:`4485`: Incorrect info in "Messaging in IPython" documentation.
1510 * :ghissue:`4485`: Incorrect info in "Messaging in IPython" documentation.
1511 * :ghissue:`4447`: Ipcontroller broken in current HEAD on windows
1511 * :ghissue:`4447`: Ipcontroller broken in current HEAD on windows
1512 * :ghissue:`4241`: Audio display object
1512 * :ghissue:`4241`: Audio display object
1513 * :ghissue:`4463`: Error on empty c.Session.key
1513 * :ghissue:`4463`: Error on empty c.Session.key
1514 * :ghissue:`4454`: UnicodeDecodeError when starting Ipython notebook on a directory containing a file with a non-ascii character
1514 * :ghissue:`4454`: UnicodeDecodeError when starting Ipython notebook on a directory containing a file with a non-ascii character
1515 * :ghissue:`3801`: Autocompletion: Fix issue #3723 -- ordering of completions for magic commands and variables with same name
1515 * :ghissue:`3801`: Autocompletion: Fix issue #3723 -- ordering of completions for magic commands and variables with same name
1516 * :ghissue:`3723`: Code completion: 'matplotlib' and '%matplotlib'
1516 * :ghissue:`3723`: Code completion: 'matplotlib' and '%matplotlib'
1517 * :ghissue:`4396`: Always checkpoint al least once ?
1517 * :ghissue:`4396`: Always checkpoint al least once ?
1518 * :ghissue:`2524`: [Notebook] Clear kernel queue
1518 * :ghissue:`2524`: [Notebook] Clear kernel queue
1519 * :ghissue:`2292`: Client side tests for the notebook
1519 * :ghissue:`2292`: Client side tests for the notebook
1520 * :ghissue:`4424`: Dealing with images in multidirectory environment
1520 * :ghissue:`4424`: Dealing with images in multidirectory environment
1521 * :ghissue:`4388`: Make writing configurable magics easier
1521 * :ghissue:`4388`: Make writing configurable magics easier
1522 * :ghissue:`852`: Notebook should be saved before downloading
1522 * :ghissue:`852`: Notebook should be saved before downloading
1523 * :ghissue:`3708`: ipython profile locate should also work
1523 * :ghissue:`3708`: ipython profile locate should also work
1524 * :ghissue:`1349`: `?` may generate hundreds of cell
1524 * :ghissue:`1349`: `?` may generate hundreds of cell
1525 * :ghissue:`4381`: Using hasattr for trait_names instead of just looking for it directly/using __dir__?
1525 * :ghissue:`4381`: Using hasattr for trait_names instead of just looking for it directly/using __dir__?
1526 * :ghissue:`4361`: Crash Ultratraceback/ session history
1526 * :ghissue:`4361`: Crash Ultratraceback/ session history
1527 * :ghissue:`3044`: IPython notebook autocomplete for filename string converts multiple spaces to a single space
1527 * :ghissue:`3044`: IPython notebook autocomplete for filename string converts multiple spaces to a single space
1528 * :ghissue:`3346`: Up arrow history search shows duplicates in Qtconsole
1528 * :ghissue:`3346`: Up arrow history search shows duplicates in Qtconsole
1529 * :ghissue:`3496`: Fix import errors when running tests from the source directory
1529 * :ghissue:`3496`: Fix import errors when running tests from the source directory
1530 * :ghissue:`4114`: If default profile doesn't exist, can't install mathjax to any location
1530 * :ghissue:`4114`: If default profile doesn't exist, can't install mathjax to any location
1531 * :ghissue:`4335`: TestPylabSwitch.test_qt fails
1531 * :ghissue:`4335`: TestPylabSwitch.test_qt fails
1532 * :ghissue:`4291`: serve like option for nbconvert --to latex
1532 * :ghissue:`4291`: serve like option for nbconvert --to latex
1533 * :ghissue:`1824`: Exception before prompting for password during ssh connection
1533 * :ghissue:`1824`: Exception before prompting for password during ssh connection
1534 * :ghissue:`4309`: Error in nbconvert - closing </code> tag is not inserted in HTML under some circumstances
1534 * :ghissue:`4309`: Error in nbconvert - closing </code> tag is not inserted in HTML under some circumstances
1535 * :ghissue:`4351`: /parallel/apps/launcher.py error
1535 * :ghissue:`4351`: /parallel/apps/launcher.py error
1536 * :ghissue:`3603`: Upcoming issues with nbconvert
1536 * :ghissue:`3603`: Upcoming issues with nbconvert
1537 * :ghissue:`4296`: sync_imports() fails in python 3.3
1537 * :ghissue:`4296`: sync_imports() fails in python 3.3
1538 * :ghissue:`4339`: local mathjax install doesn't work
1538 * :ghissue:`4339`: local mathjax install doesn't work
1539 * :ghissue:`4334`: NotebookApp.webapp_settings static_url_prefix causes crash
1539 * :ghissue:`4334`: NotebookApp.webapp_settings static_url_prefix causes crash
1540 * :ghissue:`4308`: Error when use "ipython notebook" in win7 64 with python2.7.3 64.
1540 * :ghissue:`4308`: Error when use "ipython notebook" in win7 64 with python2.7.3 64.
1541 * :ghissue:`4317`: Relative imports broken in the notebook (Windows)
1541 * :ghissue:`4317`: Relative imports broken in the notebook (Windows)
1542 * :ghissue:`3658`: Saving Notebook clears "Kernel Busy" status from the page and titlebar
1542 * :ghissue:`3658`: Saving Notebook clears "Kernel Busy" status from the page and titlebar
1543 * :ghissue:`4312`: Link broken on ipython-doc stable
1543 * :ghissue:`4312`: Link broken on ipython-doc stable
1544 * :ghissue:`1093`: Add boundary options to %load
1544 * :ghissue:`1093`: Add boundary options to %load
1545 * :ghissue:`3619`: Multi-dir webservice design
1545 * :ghissue:`3619`: Multi-dir webservice design
1546 * :ghissue:`4299`: Nbconvert, default_preprocessors to list of dotted name not list of obj
1546 * :ghissue:`4299`: Nbconvert, default_preprocessors to list of dotted name not list of obj
1547 * :ghissue:`3210`: IPython.parallel tests seem to hang on ShiningPanda
1547 * :ghissue:`3210`: IPython.parallel tests seem to hang on ShiningPanda
1548 * :ghissue:`4280`: MathJax Automatic Line Breaking
1548 * :ghissue:`4280`: MathJax Automatic Line Breaking
1549 * :ghissue:`4039`: Celltoolbar example issue
1549 * :ghissue:`4039`: Celltoolbar example issue
1550 * :ghissue:`4247`: nbconvert --to latex: error when converting greek letter
1550 * :ghissue:`4247`: nbconvert --to latex: error when converting greek letter
1551 * :ghissue:`4273`: %%capture not capturing rich objects like plots (IPython 1.1.0)
1551 * :ghissue:`4273`: %%capture not capturing rich objects like plots (IPython 1.1.0)
1552 * :ghissue:`3866`: Vertical offsets in LaTeX output for nbconvert
1552 * :ghissue:`3866`: Vertical offsets in LaTeX output for nbconvert
1553 * :ghissue:`3631`: xkcd mode for the IPython notebook
1553 * :ghissue:`3631`: xkcd mode for the IPython notebook
1554 * :ghissue:`4243`: Test exclusions not working on Windows
1554 * :ghissue:`4243`: Test exclusions not working on Windows
1555 * :ghissue:`4256`: IPython no longer handles unicode file names
1555 * :ghissue:`4256`: IPython no longer handles unicode file names
1556 * :ghissue:`3656`: Audio displayobject
1556 * :ghissue:`3656`: Audio displayobject
1557 * :ghissue:`4223`: Double output on Ctrl-enter-enter
1557 * :ghissue:`4223`: Double output on Ctrl-enter-enter
1558 * :ghissue:`4184`: nbconvert: use r pygmentize backend when highlighting "%%R" cells
1558 * :ghissue:`4184`: nbconvert: use r pygmentize backend when highlighting "%%R" cells
1559 * :ghissue:`3851`: Adds an explicit newline for pretty-printing.
1559 * :ghissue:`3851`: Adds an explicit newline for pretty-printing.
1560 * :ghissue:`3622`: Drop fakemodule
1560 * :ghissue:`3622`: Drop fakemodule
1561 * :ghissue:`4122`: Nbconvert [windows]: Inconsistent line endings in markdown cells exported to latex
1561 * :ghissue:`4122`: Nbconvert [windows]: Inconsistent line endings in markdown cells exported to latex
1562 * :ghissue:`3819`: nbconvert add extra blank line to code block on Windows.
1562 * :ghissue:`3819`: nbconvert add extra blank line to code block on Windows.
1563 * :ghissue:`4203`: remove spurious print statement from parallel annoted functions
1563 * :ghissue:`4203`: remove spurious print statement from parallel annoted functions
1564 * :ghissue:`4200`: Notebook: merging a heading cell and markdown cell cannot be undone
1564 * :ghissue:`4200`: Notebook: merging a heading cell and markdown cell cannot be undone
1565 * :ghissue:`3747`: ipynb -> ipynb transformer
1565 * :ghissue:`3747`: ipynb -> ipynb transformer
1566 * :ghissue:`4024`: nbconvert markdown issues
1566 * :ghissue:`4024`: nbconvert markdown issues
1567 * :ghissue:`3903`: on Windows, 'ipython3 nbconvert "C:/blabla/first_try.ipynb" --to slides' gives an unexpected result, and '--post serve' fails
1567 * :ghissue:`3903`: on Windows, 'ipython3 nbconvert "C:/blabla/first_try.ipynb" --to slides' gives an unexpected result, and '--post serve' fails
1568 * :ghissue:`4095`: Catch js error in append html in stream/pyerr
1568 * :ghissue:`4095`: Catch js error in append html in stream/pyerr
1569 * :ghissue:`1880`: Add parallelism to test_pr
1569 * :ghissue:`1880`: Add parallelism to test_pr
1570 * :ghissue:`4085`: nbconvert: Fix sphinx preprocessor date format string for Windows
1570 * :ghissue:`4085`: nbconvert: Fix sphinx preprocessor date format string for Windows
1571 * :ghissue:`4156`: Specifying --gui=tk at the command line
1571 * :ghissue:`4156`: Specifying --gui=tk at the command line
1572 * :ghissue:`4146`: Having to prepend 'files/' to markdown image paths is confusing
1572 * :ghissue:`4146`: Having to prepend 'files/' to markdown image paths is confusing
1573 * :ghissue:`3818`: nbconvert can't handle Heading with Chinese characters on Japanese Windows OS.
1573 * :ghissue:`3818`: nbconvert can't handle Heading with Chinese characters on Japanese Windows OS.
1574 * :ghissue:`4134`: multi-line parser fails on ''' in comment, qtconsole and notebook.
1574 * :ghissue:`4134`: multi-line parser fails on ''' in comment, qtconsole and notebook.
1575 * :ghissue:`3998`: sample custom.js needs to be updated
1575 * :ghissue:`3998`: sample custom.js needs to be updated
1576 * :ghissue:`4078`: StoreMagic.autorestore not working in 1.0.0
1576 * :ghissue:`4078`: StoreMagic.autorestore not working in 1.0.0
1577 * :ghissue:`3990`: Buitlin `input` doesn't work over zmq
1577 * :ghissue:`3990`: Buitlin `input` doesn't work over zmq
1578 * :ghissue:`4015`: nbconvert fails to convert all the content of a notebook
1578 * :ghissue:`4015`: nbconvert fails to convert all the content of a notebook
1579 * :ghissue:`4059`: Issues with Ellipsis literal in Python 3
1579 * :ghissue:`4059`: Issues with Ellipsis literal in Python 3
1580 * :ghissue:`2310`: "ZMQError: Interrupted system call" from RichIPythonWidget
1580 * :ghissue:`2310`: "ZMQError: Interrupted system call" from RichIPythonWidget
1581 * :ghissue:`3807`: qtconsole ipython 0.13.2 - html/xhtml export fails
1581 * :ghissue:`3807`: qtconsole ipython 0.13.2 - html/xhtml export fails
1582 * :ghissue:`4103`: Wrong default argument of DirectView.clear
1582 * :ghissue:`4103`: Wrong default argument of DirectView.clear
1583 * :ghissue:`4100`: parallel.client.client references undefined error.EngineError
1583 * :ghissue:`4100`: parallel.client.client references undefined error.EngineError
1584 * :ghissue:`484`: Drop nosepatch
1584 * :ghissue:`484`: Drop nosepatch
1585 * :ghissue:`3350`: Added longlist support in ipdb.
1585 * :ghissue:`3350`: Added longlist support in ipdb.
1586 * :ghissue:`1591`: Keying 'q' doesn't quit the interactive help in Wins7
1586 * :ghissue:`1591`: Keying 'q' doesn't quit the interactive help in Wins7
1587 * :ghissue:`40`: The tests in test_process fail under Windows
1587 * :ghissue:`40`: The tests in test_process fail under Windows
1588 * :ghissue:`3744`: capture rich output as well as stdout/err in capture_output
1588 * :ghissue:`3744`: capture rich output as well as stdout/err in capture_output
1589 * :ghissue:`3742`: %%capture to grab rich display outputs
1589 * :ghissue:`3742`: %%capture to grab rich display outputs
1590 * :ghissue:`3863`: Added working speaker notes for slides.
1590 * :ghissue:`3863`: Added working speaker notes for slides.
1591 * :ghissue:`4013`: Iptest fails in dual python installation
1591 * :ghissue:`4013`: Iptest fails in dual python installation
1592 * :ghissue:`4005`: IPython.start_kernel doesn't work.
1592 * :ghissue:`4005`: IPython.start_kernel doesn't work.
1593 * :ghissue:`4020`: IPython parallel map fails on numpy arrays
1593 * :ghissue:`4020`: IPython parallel map fails on numpy arrays
1594 * :ghissue:`3914`: nbconvert: Transformer tests
1594 * :ghissue:`3914`: nbconvert: Transformer tests
1595 * :ghissue:`3923`: nbconvert: Writer tests
1595 * :ghissue:`3923`: nbconvert: Writer tests
1596 * :ghissue:`3945`: nbconvert: commandline tests fail Win7x64 Py3.3
1596 * :ghissue:`3945`: nbconvert: commandline tests fail Win7x64 Py3.3
1597 * :ghissue:`3937`: make tab visible in codemirror and light red background
1597 * :ghissue:`3937`: make tab visible in codemirror and light red background
1598 * :ghissue:`3935`: No feedback for mixed tabs and spaces
1598 * :ghissue:`3935`: No feedback for mixed tabs and spaces
1599 * :ghissue:`3933`: nbconvert: Post-processor tests
1599 * :ghissue:`3933`: nbconvert: Post-processor tests
1600 * :ghissue:`3977`: unable to complete remote connections for two-process
1600 * :ghissue:`3977`: unable to complete remote connections for two-process
1601 * :ghissue:`3939`: minor checkpoint cleanup
1601 * :ghissue:`3939`: minor checkpoint cleanup
1602 * :ghissue:`3955`: complete on % for magic in notebook
1602 * :ghissue:`3955`: complete on % for magic in notebook
1603 * :ghissue:`3954`: all magics should be listed when completing on %
1603 * :ghissue:`3954`: all magics should be listed when completing on %
1604 * :ghissue:`3980`: nbconvert rst output lacks needed blank lines
1604 * :ghissue:`3980`: nbconvert rst output lacks needed blank lines
1605 * :ghissue:`3968`: TypeError: super() argument 1 must be type, not classobj (Python 2.6.6)
1605 * :ghissue:`3968`: TypeError: super() argument 1 must be type, not classobj (Python 2.6.6)
1606 * :ghissue:`3880`: nbconvert: R&D remaining tests
1606 * :ghissue:`3880`: nbconvert: R&D remaining tests
1607 * :ghissue:`2440`: IPEP 4: Python 3 Compatibility
1607 * :ghissue:`2440`: IPEP 4: Python 3 Compatibility
@@ -1,765 +1,765 b''
1 =============
1 =============
2 0.11 Series
2 0.11 Series
3 =============
3 =============
4
4
5 Release 0.11
5 Release 0.11
6 ============
6 ============
7
7
8 IPython 0.11 is a *major* overhaul of IPython, two years in the making. Most
8 IPython 0.11 is a *major* overhaul of IPython, two years in the making. Most
9 of the code base has been rewritten or at least reorganized, breaking backward
9 of the code base has been rewritten or at least reorganized, breaking backward
10 compatibility with several APIs in previous versions. It is the first major
10 compatibility with several APIs in previous versions. It is the first major
11 release in two years, and probably the most significant change to IPython since
11 release in two years, and probably the most significant change to IPython since
12 its inception. We plan to have a relatively quick succession of releases, as
12 its inception. We plan to have a relatively quick succession of releases, as
13 people discover new bugs and regressions. Once we iron out any significant
13 people discover new bugs and regressions. Once we iron out any significant
14 bugs in this process and settle down the new APIs, this series will become
14 bugs in this process and settle down the new APIs, this series will become
15 IPython 1.0. We encourage feedback now on the core APIs, which we hope to
15 IPython 1.0. We encourage feedback now on the core APIs, which we hope to
16 maintain stable during the 1.0 series.
16 maintain stable during the 1.0 series.
17
17
18 Since the internal APIs have changed so much, projects using IPython as a
18 Since the internal APIs have changed so much, projects using IPython as a
19 library (as opposed to end-users of the application) are the most likely to
19 library (as opposed to end-users of the application) are the most likely to
20 encounter regressions or changes that break their existing use patterns. We
20 encounter regressions or changes that break their existing use patterns. We
21 will make every effort to provide updated versions of the APIs to facilitate
21 will make every effort to provide updated versions of the APIs to facilitate
22 the transition, and we encourage you to contact us on the `development mailing
22 the transition, and we encourage you to contact us on the `development mailing
23 list`__ with questions and feedback.
23 list`__ with questions and feedback.
24
24
25 .. __: http://mail.scipy.org/mailman/listinfo/ipython-dev
25 .. __: http://mail.scipy.org/mailman/listinfo/ipython-dev
26
26
27 Chris Fonnesbeck recently wrote an `excellent post`__ that highlights some of
27 Chris Fonnesbeck recently wrote an `excellent post`__ that highlights some of
28 our major new features, with examples and screenshots. We encourage you to
28 our major new features, with examples and screenshots. We encourage you to
29 read it as it provides an illustrated, high-level overview complementing the
29 read it as it provides an illustrated, high-level overview complementing the
30 detailed feature breakdown in this document.
30 detailed feature breakdown in this document.
31
31
32 .. __: http://stronginference.com/post/innovations-in-ipython
32 .. __: http://stronginference.com/post/innovations-in-ipython
33
33
34 A quick summary of the major changes (see below for details):
34 A quick summary of the major changes (see below for details):
35
35
36 * **Standalone Qt console**: a new rich console has been added to IPython,
36 * **Standalone Qt console**: a new rich console has been added to IPython,
37 started with `ipython qtconsole`. In this application we have tried to
37 started with `ipython qtconsole`. In this application we have tried to
38 retain the feel of a terminal for fast and efficient workflows, while adding
38 retain the feel of a terminal for fast and efficient workflows, while adding
39 many features that a line-oriented terminal simply can not support, such as
39 many features that a line-oriented terminal simply can not support, such as
40 inline figures, full multiline editing with syntax highlighting, graphical
40 inline figures, full multiline editing with syntax highlighting, graphical
41 tooltips for function calls and much more. This development was sponsored by
41 tooltips for function calls and much more. This development was sponsored by
42 `Enthought Inc.`__. See :ref:`below <qtconsole_011>` for details.
42 `Enthought Inc.`__. See :ref:`below <qtconsole_011>` for details.
43
43
44 .. __: http://enthought.com
44 .. __: http://enthought.com
45
45
46 * **High-level parallel computing with ZeroMQ**. Using the same architecture
46 * **High-level parallel computing with ZeroMQ**. Using the same architecture
47 that our Qt console is based on, we have completely rewritten our high-level
47 that our Qt console is based on, we have completely rewritten our high-level
48 parallel computing machinery that in prior versions used the Twisted
48 parallel computing machinery that in prior versions used the Twisted
49 networking framework. While this change will require users to update their
49 networking framework. While this change will require users to update their
50 codes, the improvements in performance, memory control and internal
50 codes, the improvements in performance, memory control and internal
51 consistency across our codebase convinced us it was a price worth paying. We
51 consistency across our codebase convinced us it was a price worth paying. We
52 have tried to explain how to best proceed with this update, and will be happy
52 have tried to explain how to best proceed with this update, and will be happy
53 to answer questions that may arise. A full tutorial describing these
53 to answer questions that may arise. A full tutorial describing these
54 features `was presented at SciPy'11`__, more details :ref:`below
54 features `was presented at SciPy'11`__, more details :ref:`below
55 <parallel_011>`.
55 <parallel_011>`.
56
56
57 .. __: http://minrk.github.com/scipy-tutorial-2011
57 .. __: http://minrk.github.com/scipy-tutorial-2011
58
58
59 * **New model for GUI/plotting support in the terminal**. Now instead of the
59 * **New model for GUI/plotting support in the terminal**. Now instead of the
60 various `-Xthread` flags we had before, GUI support is provided without the
60 various `-Xthread` flags we had before, GUI support is provided without the
61 use of any threads, by directly integrating GUI event loops with Python's
61 use of any threads, by directly integrating GUI event loops with Python's
62 `PyOS_InputHook` API. A new command-line flag `--gui` controls GUI support,
62 `PyOS_InputHook` API. A new command-line flag `--gui` controls GUI support,
63 and it can also be enabled after IPython startup via the new `%gui` magic.
63 and it can also be enabled after IPython startup via the new `%gui` magic.
64 This requires some changes if you want to execute GUI-using scripts inside
64 This requires some changes if you want to execute GUI-using scripts inside
65 IPython, see :ref:`the GUI support section <gui_support>` for more details.
65 IPython, see :ref:`the GUI support section <gui_support>` for more details.
66
66
67 * **A two-process architecture.** The Qt console is the first use of a new
67 * **A two-process architecture.** The Qt console is the first use of a new
68 model that splits IPython between a kernel process where code is executed and
68 model that splits IPython between a kernel process where code is executed and
69 a client that handles user interaction. We plan on also providing terminal
69 a client that handles user interaction. We plan on also providing terminal
70 and web-browser based clients using this infrastructure in future releases.
70 and web-browser based clients using this infrastructure in future releases.
71 This model allows multiple clients to interact with an IPython process
71 This model allows multiple clients to interact with an IPython process
72 through a :ref:`well-documented messaging protocol <messaging>` using the
72 through a :ref:`well-documented messaging protocol <messaging>` using the
73 ZeroMQ networking library.
73 ZeroMQ networking library.
74
74
75 * **Refactoring.** the entire codebase has been refactored, in order to make it
75 * **Refactoring.** the entire codebase has been refactored, in order to make it
76 more modular and easier to contribute to. IPython has traditionally been a
76 more modular and easier to contribute to. IPython has traditionally been a
77 hard project to participate because the old codebase was very monolithic. We
77 hard project to participate because the old codebase was very monolithic. We
78 hope this (ongoing) restructuring will make it easier for new developers to
78 hope this (ongoing) restructuring will make it easier for new developers to
79 join us.
79 join us.
80
80
81 * **Vim integration**. Vim can be configured to seamlessly control an IPython
81 * **Vim integration**. Vim can be configured to seamlessly control an IPython
82 kernel, see the files in :file:`docs/examples/vim` for the full details.
82 kernel, see the files in :file:`docs/examples/vim` for the full details.
83 This work was done by Paul Ivanov, who prepared a nice `video
83 This work was done by Paul Ivanov, who prepared a nice `video
84 demonstration`__ of the features it provides.
84 demonstration`__ of the features it provides.
85
85
86 .. __: http://pirsquared.org/blog/2011/07/28/vim-ipython/
86 .. __: http://pirsquared.org/blog/2011/07/28/vim-ipython/
87
87
88 * **Integration into Microsoft Visual Studio**. Thanks to the work of the
88 * **Integration into Microsoft Visual Studio**. Thanks to the work of the
89 Microsoft `Python Tools for Visual Studio`__ team, this version of IPython
89 Microsoft `Python Tools for Visual Studio`__ team, this version of IPython
90 has been integrated into Microsoft Visual Studio's Python tools open source
90 has been integrated into Microsoft Visual Studio's Python tools open source
91 plug-in. `Details below`_
91 plug-in. `Details below`_
92
92
93 .. __: http://pytools.codeplex.com
93 .. __: http://pytools.codeplex.com
94 .. _details below: ms_visual_studio_011_
94 .. _details below: ms_visual_studio_011_
95
95
96 * **Improved unicode support**. We closed many bugs related to unicode input.
96 * **Improved unicode support**. We closed many bugs related to unicode input.
97
97
98 * **Python 3**. IPython now runs on Python 3.x. See :ref:`python3_011` for
98 * **Python 3**. IPython now runs on Python 3.x. See :ref:`python3_011` for
99 details.
99 details.
100
100
101 * **New profile model**. Profiles are now directories that contain all relevant
101 * **New profile model**. Profiles are now directories that contain all relevant
102 information for that session, and thus better isolate IPython use-cases.
102 information for that session, and thus better isolate IPython use-cases.
103
103
104 * **SQLite storage for history**. All history is now stored in a SQLite
104 * **SQLite storage for history**. All history is now stored in a SQLite
105 database, providing support for multiple simultaneous sessions that won't
105 database, providing support for multiple simultaneous sessions that won't
106 clobber each other as well as the ability to perform queries on all stored
106 clobber each other as well as the ability to perform queries on all stored
107 data.
107 data.
108
108
109 * **New configuration system**. All parts of IPython are now configured via a
109 * **New configuration system**. All parts of IPython are now configured via a
110 mechanism inspired by the Enthought Traits library. Any configurable element
110 mechanism inspired by the Enthought Traits library. Any configurable element
111 can have its attributes set either via files that now use real Python syntax
111 can have its attributes set either via files that now use real Python syntax
112 or from the command-line.
112 or from the command-line.
113
113
114 * **Pasting of code with prompts**. IPython now intelligently strips out input
114 * **Pasting of code with prompts**. IPython now intelligently strips out input
115 prompts , be they plain Python ones (``>>>`` and ``...``) or IPython ones
115 prompts , be they plain Python ones (``>>>`` and ``...``) or IPython ones
116 (``In [N]:`` and ``...:``). More details :ref:`here <pasting_with_prompts>`.
116 (``In [N]:`` and ``...:``). More details :ref:`here <pasting_with_prompts>`.
117
117
118
118
119 Authors and support
119 Authors and support
120 -------------------
120 -------------------
121
121
122 Over 60 separate authors have contributed to this release, see :ref:`below
122 Over 60 separate authors have contributed to this release, see :ref:`below
123 <credits_011>` for a full list. In particular, we want to highlight the
123 <credits_011>` for a full list. In particular, we want to highlight the
124 extremely active participation of two new core team members: Evan Patterson
124 extremely active participation of two new core team members: Evan Patterson
125 implemented the Qt console, and Thomas Kluyver started with our Python 3 port
125 implemented the Qt console, and Thomas Kluyver started with our Python 3 port
126 and by now has made major contributions to just about every area of IPython.
126 and by now has made major contributions to just about every area of IPython.
127
127
128 We are also grateful for the support we have received during this development
128 We are also grateful for the support we have received during this development
129 cycle from several institutions:
129 cycle from several institutions:
130
130
131 - `Enthought Inc`__ funded the development of our new Qt console, an effort that
131 - `Enthought Inc`__ funded the development of our new Qt console, an effort that
132 required developing major pieces of underlying infrastructure, which now
132 required developing major pieces of underlying infrastructure, which now
133 power not only the Qt console but also our new parallel machinery. We'd like
133 power not only the Qt console but also our new parallel machinery. We'd like
134 to thank Eric Jones and Travis Oliphant for their support, as well as Ilan
134 to thank Eric Jones and Travis Oliphant for their support, as well as Ilan
135 Schnell for his tireless work integrating and testing IPython in the
135 Schnell for his tireless work integrating and testing IPython in the
136 `Enthought Python Distribution`_.
136 `Enthought Python Distribution`_.
137
137
138 .. __: http://enthought.com
138 .. __: http://enthought.com
139 .. _Enthought Python Distribution: http://www.enthought.com/products/epd.php
139 .. _Enthought Python Distribution: http://www.enthought.com/products/epd.php
140
140
141 - Nipy/NIH: funding via the `NiPy project`__ (NIH grant 5R01MH081909-02) helped
141 - Nipy/NIH: funding via the `NiPy project`__ (NIH grant 5R01MH081909-02) helped
142 us jumpstart the development of this series by restructuring the entire
142 us jumpstart the development of this series by restructuring the entire
143 codebase two years ago in a way that would make modular development and
143 codebase two years ago in a way that would make modular development and
144 testing more approachable. Without this initial groundwork, all the new
144 testing more approachable. Without this initial groundwork, all the new
145 features we have added would have been impossible to develop.
145 features we have added would have been impossible to develop.
146
146
147 .. __: http://nipy.org
147 .. __: http://nipy.org
148
148
149 - Sage/NSF: funding via the grant `Sage: Unifying Mathematical Software for
149 - Sage/NSF: funding via the grant `Sage: Unifying Mathematical Software for
150 Scientists, Engineers, and Mathematicians`__ (NSF grant DMS-1015114)
150 Scientists, Engineers, and Mathematicians`__ (NSF grant DMS-1015114)
151 supported a meeting in spring 2011 of several of the core IPython developers
151 supported a meeting in spring 2011 of several of the core IPython developers
152 where major progress was made integrating the last key pieces leading to this
152 where major progress was made integrating the last key pieces leading to this
153 release.
153 release.
154
154
155 .. __: http://modular.math.washington.edu/grants/compmath09
155 .. __: http://modular.math.washington.edu/grants/compmath09
156
156
157 - Microsoft's team working on `Python Tools for Visual Studio`__ developed the
157 - Microsoft's team working on `Python Tools for Visual Studio`__ developed the
158 integraton of IPython into the Python plugin for Visual Studio 2010.
158 integraton of IPython into the Python plugin for Visual Studio 2010.
159
159
160 .. __: http://pytools.codeplex.com
160 .. __: http://pytools.codeplex.com
161
161
162 - Google Summer of Code: in 2010, we had two students developing prototypes of
162 - Google Summer of Code: in 2010, we had two students developing prototypes of
163 the new machinery that is now maturing in this release: `Omar Zapata`_ and
163 the new machinery that is now maturing in this release: `Omar Zapata`_ and
164 `Gerardo Gutiérrez`_.
164 `Gerardo Gutiérrez`_.
165
165
166 .. _Omar Zapata: http://ipythonzmq.blogspot.com/2010/08/ipython-zmq-status.html
166 .. _Omar Zapata: http://ipythonzmq.blogspot.com/2010/08/ipython-zmq-status.html
167 .. _Gerardo Gutiérrez: http://ipythonqt.blogspot.com/2010/04/ipython-qt-interface-gsoc-2010-proposal.html>
167 .. _Gerardo Gutiérrez: http://ipythonqt.blogspot.com/2010/04/ipython-qt-interface-gsoc-2010-proposal.html>
168
168
169
169
170 Development summary: moving to Git and Github
170 Development summary: moving to Git and Github
171 ---------------------------------------------
171 ---------------------------------------------
172
172
173 In April 2010, after `one breakage too many with bzr`__, we decided to move our
173 In April 2010, after `one breakage too many with bzr`__, we decided to move our
174 entire development process to Git and Github.com. This has proven to be one of
174 entire development process to Git and Github.com. This has proven to be one of
175 the best decisions in the project's history, as the combination of git and
175 the best decisions in the project's history, as the combination of git and
176 github have made us far, far more productive than we could be with our previous
176 github have made us far, far more productive than we could be with our previous
177 tools. We first converted our bzr repo to a git one without losing history,
177 tools. We first converted our bzr repo to a git one without losing history,
178 and a few weeks later ported all open Launchpad bugs to github issues with
178 and a few weeks later ported all open Launchpad bugs to github issues with
179 their comments mostly intact (modulo some formatting changes). This ensured a
179 their comments mostly intact (modulo some formatting changes). This ensured a
180 smooth transition where no development history or submitted bugs were lost.
180 smooth transition where no development history or submitted bugs were lost.
181 Feel free to use our little Launchpad to Github issues `porting script`_ if you
181 Feel free to use our little Launchpad to Github issues `porting script`_ if you
182 need to make a similar transition.
182 need to make a similar transition.
183
183
184 .. __: http://mail.scipy.org/pipermail/ipython-dev/2010-April/005944.html
184 .. __: http://mail.scipy.org/pipermail/ipython-dev/2010-April/005944.html
185 .. _porting script: https://gist.github.com/835577
185 .. _porting script: https://gist.github.com/835577
186
186
187 These simple statistics show how much work has been done on the new release, by
187 These simple statistics show how much work has been done on the new release, by
188 comparing the current code to the last point it had in common with the 0.10
188 comparing the current code to the last point it had in common with the 0.10
189 series. A huge diff and ~2200 commits make up this cycle::
189 series. A huge diff and ~2200 commits make up this cycle::
190
190
191 git diff $(git merge-base 0.10.2 HEAD) | wc -l
191 git diff $(git merge-base 0.10.2 HEAD) | wc -l
192 288019
192 288019
193
193
194 git log $(git merge-base 0.10.2 HEAD)..HEAD --oneline | wc -l
194 git log $(git merge-base 0.10.2 HEAD)..HEAD --oneline | wc -l
195 2200
195 2200
196
196
197 Since our move to github, 511 issues were closed, 226 of which were pull
197 Since our move to github, 511 issues were closed, 226 of which were pull
198 requests and 285 regular issues (:ref:`a full list with links
198 requests and 285 regular issues (:ref:`a full list with links
199 <issues_list_011>` is available for those interested in the details). Github's
199 <issues_list_011>` is available for those interested in the details). Github's
200 pull requests are a fantastic mechanism for reviewing code and building a
200 pull requests are a fantastic mechanism for reviewing code and building a
201 shared ownership of the project, and we are making enthusiastic use of it.
201 shared ownership of the project, and we are making enthusiastic use of it.
202
202
203 .. Note::
203 .. Note::
204
204
205 This undercounts the number of issues closed in this development cycle,
205 This undercounts the number of issues closed in this development cycle,
206 since we only moved to github for issue tracking in May 2010, but we have no
206 since we only moved to github for issue tracking in May 2010, but we have no
207 way of collecting statistics on the number of issues closed in the old
207 way of collecting statistics on the number of issues closed in the old
208 Launchpad bug tracker prior to that.
208 Launchpad bug tracker prior to that.
209
209
210
210
211 .. _qtconsole_011:
211 .. _qtconsole_011:
212
212
213 Qt Console
213 Qt Console
214 ----------
214 ----------
215
215
216 IPython now ships with a Qt application that feels very much like a terminal,
216 IPython now ships with a Qt application that feels very much like a terminal,
217 but is in fact a rich GUI that runs an IPython client but supports inline
217 but is in fact a rich GUI that runs an IPython client but supports inline
218 figures, saving sessions to PDF and HTML, multiline editing with syntax
218 figures, saving sessions to PDF and HTML, multiline editing with syntax
219 highlighting, graphical calltips and much more:
219 highlighting, graphical calltips and much more:
220
220
221 .. figure:: ../_images/qtconsole.png
221 .. figure:: ../_images/qtconsole.png
222 :width: 400px
222 :width: 400px
223 :alt: IPython Qt console with embedded plots
223 :alt: IPython Qt console with embedded plots
224 :align: center
224 :align: center
225 :target: ../_images/qtconsole.png
225 :target: ../_images/qtconsole.png
226
226
227 The Qt console for IPython, using inline matplotlib plots.
227 The Qt console for IPython, using inline matplotlib plots.
228
228
229 We hope that many projects will embed this widget, which we've kept
229 We hope that many projects will embed this widget, which we've kept
230 deliberately very lightweight, into their own environments. In the future we
230 deliberately very lightweight, into their own environments. In the future we
231 may also offer a slightly more featureful application (with menus and other GUI
231 may also offer a slightly more featureful application (with menus and other GUI
232 elements), but we remain committed to always shipping this easy to embed
232 elements), but we remain committed to always shipping this easy to embed
233 widget.
233 widget.
234
234
235 See the `Jupyter Qt Console site <http://jupyter.org/qtconsole>`_ for a detailed
235 See the `Jupyter Qt Console site <https://jupyter.org/qtconsole>`_ for a detailed
236 description of the console's features and use.
236 description of the console's features and use.
237
237
238
238
239 .. _parallel_011:
239 .. _parallel_011:
240
240
241 High-level parallel computing with ZeroMQ
241 High-level parallel computing with ZeroMQ
242 -----------------------------------------
242 -----------------------------------------
243
243
244 We have completely rewritten the Twisted-based code for high-level parallel
244 We have completely rewritten the Twisted-based code for high-level parallel
245 computing to work atop our new ZeroMQ architecture. While we realize this will
245 computing to work atop our new ZeroMQ architecture. While we realize this will
246 break compatibility for a number of users, we hope to make the transition as
246 break compatibility for a number of users, we hope to make the transition as
247 easy as possible with our docs, and we are convinced the change is worth it.
247 easy as possible with our docs, and we are convinced the change is worth it.
248 ZeroMQ provides us with much tighter control over memory, higher performance,
248 ZeroMQ provides us with much tighter control over memory, higher performance,
249 and its communications are impervious to the Python Global Interpreter Lock
249 and its communications are impervious to the Python Global Interpreter Lock
250 because they take place in a system-level C++ thread. The impact of the GIL in
250 because they take place in a system-level C++ thread. The impact of the GIL in
251 our previous code was something we could simply not work around, given that
251 our previous code was something we could simply not work around, given that
252 Twisted is itself a Python library. So while Twisted is a very capable
252 Twisted is itself a Python library. So while Twisted is a very capable
253 framework, we think ZeroMQ fits our needs much better and we hope you will find
253 framework, we think ZeroMQ fits our needs much better and we hope you will find
254 the change to be a significant improvement in the long run.
254 the change to be a significant improvement in the long run.
255
255
256 Our manual contains a full description of how to use IPython for parallel
256 Our manual contains a full description of how to use IPython for parallel
257 computing, and the `tutorial`__ presented by Min
257 computing, and the `tutorial`__ presented by Min
258 Ragan-Kelley at the SciPy 2011 conference provides a hands-on complement to the
258 Ragan-Kelley at the SciPy 2011 conference provides a hands-on complement to the
259 reference docs.
259 reference docs.
260
260
261 .. __: http://minrk.github.com/scipy-tutorial-2011
261 .. __: http://minrk.github.com/scipy-tutorial-2011
262
262
263
263
264 Refactoring
264 Refactoring
265 -----------
265 -----------
266
266
267 As of this release, a signifiant portion of IPython has been refactored. This
267 As of this release, a signifiant portion of IPython has been refactored. This
268 refactoring is founded on a number of new abstractions. The main new classes
268 refactoring is founded on a number of new abstractions. The main new classes
269 that implement these abstractions are:
269 that implement these abstractions are:
270
270
271 * :class:`traitlets.HasTraits`.
271 * :class:`traitlets.HasTraits`.
272 * :class:`traitlets.config.configurable.Configurable`.
272 * :class:`traitlets.config.configurable.Configurable`.
273 * :class:`traitlets.config.application.Application`.
273 * :class:`traitlets.config.application.Application`.
274 * :class:`traitlets.config.loader.ConfigLoader`.
274 * :class:`traitlets.config.loader.ConfigLoader`.
275 * :class:`traitlets.config.loader.Config`
275 * :class:`traitlets.config.loader.Config`
276
276
277 We are still in the process of writing developer focused documentation about
277 We are still in the process of writing developer focused documentation about
278 these classes, but for now our :ref:`configuration documentation
278 these classes, but for now our :ref:`configuration documentation
279 <config_overview>` contains a high level overview of the concepts that these
279 <config_overview>` contains a high level overview of the concepts that these
280 classes express.
280 classes express.
281
281
282 The biggest user-visible change is likely the move to using the config system
282 The biggest user-visible change is likely the move to using the config system
283 to determine the command-line arguments for IPython applications. The benefit
283 to determine the command-line arguments for IPython applications. The benefit
284 of this is that *all* configurable values in IPython are exposed on the
284 of this is that *all* configurable values in IPython are exposed on the
285 command-line, but the syntax for specifying values has changed. The gist is
285 command-line, but the syntax for specifying values has changed. The gist is
286 that assigning values is pure Python assignment. Simple flags exist for
286 that assigning values is pure Python assignment. Simple flags exist for
287 commonly used options, these are always prefixed with '--'.
287 commonly used options, these are always prefixed with '--'.
288
288
289 The IPython command-line help has the details of all the options (via
289 The IPython command-line help has the details of all the options (via
290 ``ipython --help``), but a simple example should clarify things; the ``pylab``
290 ``ipython --help``), but a simple example should clarify things; the ``pylab``
291 flag can be used to start in pylab mode with the qt4 backend::
291 flag can be used to start in pylab mode with the qt4 backend::
292
292
293 ipython --pylab=qt
293 ipython --pylab=qt
294
294
295 which is equivalent to using the fully qualified form::
295 which is equivalent to using the fully qualified form::
296
296
297 ipython --TerminalIPythonApp.pylab=qt
297 ipython --TerminalIPythonApp.pylab=qt
298
298
299 The long-form options can be listed via ``ipython --help-all``.
299 The long-form options can be listed via ``ipython --help-all``.
300
300
301
301
302 ZeroMQ architecture
302 ZeroMQ architecture
303 -------------------
303 -------------------
304
304
305 There is a new GUI framework for IPython, based on a client-server model in
305 There is a new GUI framework for IPython, based on a client-server model in
306 which multiple clients can communicate with one IPython kernel, using the
306 which multiple clients can communicate with one IPython kernel, using the
307 ZeroMQ messaging framework. There is already a Qt console client, which can
307 ZeroMQ messaging framework. There is already a Qt console client, which can
308 be started by calling ``ipython qtconsole``. The protocol is :ref:`documented
308 be started by calling ``ipython qtconsole``. The protocol is :ref:`documented
309 <messaging>`.
309 <messaging>`.
310
310
311 The parallel computing framework has also been rewritten using ZMQ. The
311 The parallel computing framework has also been rewritten using ZMQ. The
312 protocol is described :ref:`here <parallel_messages>`, and the code is in the
312 protocol is described :ref:`here <parallel_messages>`, and the code is in the
313 new :mod:`IPython.parallel` module.
313 new :mod:`IPython.parallel` module.
314
314
315 .. _python3_011:
315 .. _python3_011:
316
316
317 Python 3 support
317 Python 3 support
318 ----------------
318 ----------------
319
319
320 A Python 3 version of IPython has been prepared. For the time being, this is
320 A Python 3 version of IPython has been prepared. For the time being, this is
321 maintained separately and updated from the main codebase. Its code can be found
321 maintained separately and updated from the main codebase. Its code can be found
322 `here <https://github.com/ipython/ipython-py3k>`_. The parallel computing
322 `here <https://github.com/ipython/ipython-py3k>`_. The parallel computing
323 components are not perfect on Python3, but most functionality appears to be
323 components are not perfect on Python3, but most functionality appears to be
324 working. As this work is evolving quickly, the best place to find updated
324 working. As this work is evolving quickly, the best place to find updated
325 information about it is our `Python 3 wiki page`__.
325 information about it is our `Python 3 wiki page`__.
326
326
327 .. __: http://wiki.ipython.org/index.php?title=Python_3
327 .. __: http://wiki.ipython.org/index.php?title=Python_3
328
328
329
329
330 Unicode
330 Unicode
331 -------
331 -------
332
332
333 Entering non-ascii characters in unicode literals (``u"€ø"``) now works
333 Entering non-ascii characters in unicode literals (``u"€ø"``) now works
334 properly on all platforms. However, entering these in byte/string literals
334 properly on all platforms. However, entering these in byte/string literals
335 (``"€ø"``) will not work as expected on Windows (or any platform where the
335 (``"€ø"``) will not work as expected on Windows (or any platform where the
336 terminal encoding is not UTF-8, as it typically is for Linux & Mac OS X). You
336 terminal encoding is not UTF-8, as it typically is for Linux & Mac OS X). You
337 can use escape sequences (``"\xe9\x82"``) to get bytes above 128, or use
337 can use escape sequences (``"\xe9\x82"``) to get bytes above 128, or use
338 unicode literals and encode them. This is a limitation of Python 2 which we
338 unicode literals and encode them. This is a limitation of Python 2 which we
339 cannot easily work around.
339 cannot easily work around.
340
340
341 .. _ms_visual_studio_011:
341 .. _ms_visual_studio_011:
342
342
343 Integration with Microsoft Visual Studio
343 Integration with Microsoft Visual Studio
344 ----------------------------------------
344 ----------------------------------------
345
345
346 IPython can be used as the interactive shell in the `Python plugin for
346 IPython can be used as the interactive shell in the `Python plugin for
347 Microsoft Visual Studio`__, as seen here:
347 Microsoft Visual Studio`__, as seen here:
348
348
349 .. figure:: ../_images/ms_visual_studio.png
349 .. figure:: ../_images/ms_visual_studio.png
350 :width: 500px
350 :width: 500px
351 :alt: IPython console embedded in Microsoft Visual Studio.
351 :alt: IPython console embedded in Microsoft Visual Studio.
352 :align: center
352 :align: center
353 :target: ../_images/ms_visual_studio.png
353 :target: ../_images/ms_visual_studio.png
354
354
355 IPython console embedded in Microsoft Visual Studio.
355 IPython console embedded in Microsoft Visual Studio.
356
356
357 The Microsoft team developing this currently has a release candidate out using
357 The Microsoft team developing this currently has a release candidate out using
358 IPython 0.11. We will continue to collaborate with them to ensure that as they
358 IPython 0.11. We will continue to collaborate with them to ensure that as they
359 approach their final release date, the integration with IPython remains smooth.
359 approach their final release date, the integration with IPython remains smooth.
360 We'd like to thank Dino Viehland and Shahrokh Mortazavi for the work they have
360 We'd like to thank Dino Viehland and Shahrokh Mortazavi for the work they have
361 done towards this feature, as well as Wenming Ye for his support of our WinHPC
361 done towards this feature, as well as Wenming Ye for his support of our WinHPC
362 capabilities.
362 capabilities.
363
363
364 .. __: http://pytools.codeplex.com
364 .. __: http://pytools.codeplex.com
365
365
366
366
367 Additional new features
367 Additional new features
368 -----------------------
368 -----------------------
369
369
370 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
370 * Added ``Bytes`` traitlet, removing ``Str``. All 'string' traitlets should
371 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
371 either be ``Unicode`` if a real string, or ``Bytes`` if a C-string. This
372 removes ambiguity and helps the Python 3 transition.
372 removes ambiguity and helps the Python 3 transition.
373
373
374 * New magic ``%loadpy`` loads a python file from disk or web URL into
374 * New magic ``%loadpy`` loads a python file from disk or web URL into
375 the current input buffer.
375 the current input buffer.
376
376
377 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
377 * New magic ``%pastebin`` for sharing code via the 'Lodge it' pastebin.
378
378
379 * New magic ``%precision`` for controlling float and numpy pretty printing.
379 * New magic ``%precision`` for controlling float and numpy pretty printing.
380
380
381 * IPython applications initiate logging, so any object can gain access to
381 * IPython applications initiate logging, so any object can gain access to
382 a the logger of the currently running Application with:
382 a the logger of the currently running Application with:
383
383
384 .. sourcecode:: python
384 .. sourcecode:: python
385
385
386 from traitlets.config.application import Application
386 from traitlets.config.application import Application
387 logger = Application.instance().log
387 logger = Application.instance().log
388
388
389 * You can now get help on an object halfway through typing a command. For
389 * You can now get help on an object halfway through typing a command. For
390 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
390 instance, typing ``a = zip?`` shows the details of :func:`zip`. It also
391 leaves the command at the next prompt so you can carry on with it.
391 leaves the command at the next prompt so you can carry on with it.
392
392
393 * The input history is now written to an SQLite database. The API for
393 * The input history is now written to an SQLite database. The API for
394 retrieving items from the history has also been redesigned.
394 retrieving items from the history has also been redesigned.
395
395
396 * The :mod:`IPython.extensions.pretty` extension has been moved out of
396 * The :mod:`IPython.extensions.pretty` extension has been moved out of
397 quarantine and fully updated to the new extension API.
397 quarantine and fully updated to the new extension API.
398
398
399 * New magics for loading/unloading/reloading extensions have been added:
399 * New magics for loading/unloading/reloading extensions have been added:
400 ``%load_ext``, ``%unload_ext`` and ``%reload_ext``.
400 ``%load_ext``, ``%unload_ext`` and ``%reload_ext``.
401
401
402 * The configuration system and configuration files are brand new. See the
402 * The configuration system and configuration files are brand new. See the
403 configuration system :ref:`documentation <config_index>` for more details.
403 configuration system :ref:`documentation <config_index>` for more details.
404
404
405 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
405 * The :class:`~IPython.core.interactiveshell.InteractiveShell` class is now a
406 :class:`~traitlets.config.configurable.Configurable` subclass and has traitlets
406 :class:`~traitlets.config.configurable.Configurable` subclass and has traitlets
407 that determine the defaults and runtime environment. The ``__init__`` method
407 that determine the defaults and runtime environment. The ``__init__`` method
408 has also been refactored so this class can be instantiated and run without
408 has also been refactored so this class can be instantiated and run without
409 the old :mod:`ipmaker` module.
409 the old :mod:`ipmaker` module.
410
410
411 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
411 * The methods of :class:`~IPython.core.interactiveshell.InteractiveShell` have
412 been organized into sections to make it easier to turn more sections
412 been organized into sections to make it easier to turn more sections
413 of functionality into components.
413 of functionality into components.
414
414
415 * The embedded shell has been refactored into a truly standalone subclass of
415 * The embedded shell has been refactored into a truly standalone subclass of
416 :class:`InteractiveShell` called :class:`InteractiveShellEmbed`. All
416 :class:`InteractiveShell` called :class:`InteractiveShellEmbed`. All
417 embedding logic has been taken out of the base class and put into the
417 embedding logic has been taken out of the base class and put into the
418 embedded subclass.
418 embedded subclass.
419
419
420 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
420 * Added methods of :class:`~IPython.core.interactiveshell.InteractiveShell` to
421 help it cleanup after itself. The :meth:`cleanup` method controls this. We
421 help it cleanup after itself. The :meth:`cleanup` method controls this. We
422 couldn't do this in :meth:`__del__` because we have cycles in our object
422 couldn't do this in :meth:`__del__` because we have cycles in our object
423 graph that prevent it from being called.
423 graph that prevent it from being called.
424
424
425 * Created a new module :mod:`IPython.utils.importstring` for resolving
425 * Created a new module :mod:`IPython.utils.importstring` for resolving
426 strings like ``foo.bar.Bar`` to the actual class.
426 strings like ``foo.bar.Bar`` to the actual class.
427
427
428 * Completely refactored the :mod:`IPython.core.prefilter` module into
428 * Completely refactored the :mod:`IPython.core.prefilter` module into
429 :class:`~traitlets.config.configurable.Configurable` subclasses. Added a new
429 :class:`~traitlets.config.configurable.Configurable` subclasses. Added a new
430 layer into the prefilter system, called "transformations" that all new
430 layer into the prefilter system, called "transformations" that all new
431 prefilter logic should use (rather than the older "checker/handler"
431 prefilter logic should use (rather than the older "checker/handler"
432 approach).
432 approach).
433
433
434 * Aliases are now components (:mod:`IPython.core.alias`).
434 * Aliases are now components (:mod:`IPython.core.alias`).
435
435
436 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
436 * New top level :func:`~IPython.frontend.terminal.embed.embed` function that can
437 be called to embed IPython at any place in user's code. On the first call it
437 be called to embed IPython at any place in user's code. On the first call it
438 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
438 will create an :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`
439 instance and call it. In later calls, it just calls the previously created
439 instance and call it. In later calls, it just calls the previously created
440 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
440 :class:`~IPython.frontend.terminal.embed.InteractiveShellEmbed`.
441
441
442 * Created a configuration system (:mod:`traitlets.config.configurable`) that is
442 * Created a configuration system (:mod:`traitlets.config.configurable`) that is
443 based on :mod:`traitlets`. Configurables are arranged into a
443 based on :mod:`traitlets`. Configurables are arranged into a
444 runtime containment tree (not inheritance) that i) automatically propagates
444 runtime containment tree (not inheritance) that i) automatically propagates
445 configuration information and ii) allows singletons to discover each other in
445 configuration information and ii) allows singletons to discover each other in
446 a loosely coupled manner. In the future all parts of IPython will be
446 a loosely coupled manner. In the future all parts of IPython will be
447 subclasses of :class:`~traitlets.config.configurable.Configurable`. All IPython
447 subclasses of :class:`~traitlets.config.configurable.Configurable`. All IPython
448 developers should become familiar with the config system.
448 developers should become familiar with the config system.
449
449
450 * Created a new :class:`~traitlets.config.loader.Config` for holding
450 * Created a new :class:`~traitlets.config.loader.Config` for holding
451 configuration information. This is a dict like class with a few extras: i)
451 configuration information. This is a dict like class with a few extras: i)
452 it supports attribute style access, ii) it has a merge function that merges
452 it supports attribute style access, ii) it has a merge function that merges
453 two :class:`~traitlets.config.loader.Config` instances recursively and iii) it
453 two :class:`~traitlets.config.loader.Config` instances recursively and iii) it
454 will automatically create sub-:class:`~traitlets.config.loader.Config`
454 will automatically create sub-:class:`~traitlets.config.loader.Config`
455 instances for attributes that start with an uppercase character.
455 instances for attributes that start with an uppercase character.
456
456
457 * Created new configuration loaders in :mod:`traitlets.config.loader`. These
457 * Created new configuration loaders in :mod:`traitlets.config.loader`. These
458 loaders provide a unified loading interface for all configuration
458 loaders provide a unified loading interface for all configuration
459 information including command line arguments and configuration files. We
459 information including command line arguments and configuration files. We
460 have two default implementations based on :mod:`argparse` and plain python
460 have two default implementations based on :mod:`argparse` and plain python
461 files. These are used to implement the new configuration system.
461 files. These are used to implement the new configuration system.
462
462
463 * Created a top-level :class:`Application` class in
463 * Created a top-level :class:`Application` class in
464 :mod:`IPython.core.application` that is designed to encapsulate the starting
464 :mod:`IPython.core.application` that is designed to encapsulate the starting
465 of any basic Python program. An application loads and merges all the
465 of any basic Python program. An application loads and merges all the
466 configuration objects, constructs the main application, configures and
466 configuration objects, constructs the main application, configures and
467 initiates logging, and creates and configures any :class:`Configurable`
467 initiates logging, and creates and configures any :class:`Configurable`
468 instances and then starts the application running. An extended
468 instances and then starts the application running. An extended
469 :class:`BaseIPythonApplication` class adds logic for handling the
469 :class:`BaseIPythonApplication` class adds logic for handling the
470 IPython directory as well as profiles, and all IPython entry points
470 IPython directory as well as profiles, and all IPython entry points
471 extend it.
471 extend it.
472
472
473 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
473 * The :class:`Type` and :class:`Instance` traitlets now handle classes given
474 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
474 as strings, like ``foo.bar.Bar``. This is needed for forward declarations.
475 But, this was implemented in a careful way so that string to class
475 But, this was implemented in a careful way so that string to class
476 resolution is done at a single point, when the parent
476 resolution is done at a single point, when the parent
477 :class:`~traitlets.HasTraitlets` is instantiated.
477 :class:`~traitlets.HasTraitlets` is instantiated.
478
478
479 * :mod:`IPython.utils.ipstruct` has been refactored to be a subclass of
479 * :mod:`IPython.utils.ipstruct` has been refactored to be a subclass of
480 dict. It also now has full docstrings and doctests.
480 dict. It also now has full docstrings and doctests.
481
481
482 * Created a Traits like implementation in :mod:`traitlets`. This
482 * Created a Traits like implementation in :mod:`traitlets`. This
483 is a pure Python, lightweight version of a library that is similar to
483 is a pure Python, lightweight version of a library that is similar to
484 Enthought's Traits project, but has no dependencies on Enthought's code. We
484 Enthought's Traits project, but has no dependencies on Enthought's code. We
485 are using this for validation, defaults and notification in our new component
485 are using this for validation, defaults and notification in our new component
486 system. Although it is not 100% API compatible with Enthought's Traits, we
486 system. Although it is not 100% API compatible with Enthought's Traits, we
487 plan on moving in this direction so that eventually our implementation could
487 plan on moving in this direction so that eventually our implementation could
488 be replaced by a (yet to exist) pure Python version of Enthought Traits.
488 be replaced by a (yet to exist) pure Python version of Enthought Traits.
489
489
490 * Added a new module :mod:`IPython.lib.inputhook` to manage the integration
490 * Added a new module :mod:`IPython.lib.inputhook` to manage the integration
491 with GUI event loops using `PyOS_InputHook`. See the docstrings in this
491 with GUI event loops using `PyOS_InputHook`. See the docstrings in this
492 module or the main IPython docs for details.
492 module or the main IPython docs for details.
493
493
494 * For users, GUI event loop integration is now handled through the new
494 * For users, GUI event loop integration is now handled through the new
495 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
495 :command:`%gui` magic command. Type ``%gui?`` at an IPython prompt for
496 documentation.
496 documentation.
497
497
498 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
498 * For developers :mod:`IPython.lib.inputhook` provides a simple interface
499 for managing the event loops in their interactive GUI applications.
499 for managing the event loops in their interactive GUI applications.
500 Examples can be found in our :file:`examples/lib` directory.
500 Examples can be found in our :file:`examples/lib` directory.
501
501
502 Backwards incompatible changes
502 Backwards incompatible changes
503 ------------------------------
503 ------------------------------
504
504
505 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
505 * The Twisted-based :mod:`IPython.kernel` has been removed, and completely
506 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
506 rewritten as :mod:`IPython.parallel`, using ZeroMQ.
507
507
508 * Profiles are now directories. Instead of a profile being a single config file,
508 * Profiles are now directories. Instead of a profile being a single config file,
509 profiles are now self-contained directories. By default, profiles get their
509 profiles are now self-contained directories. By default, profiles get their
510 own IPython history, log files, and everything. To create a new profile, do
510 own IPython history, log files, and everything. To create a new profile, do
511 ``ipython profile create <name>``.
511 ``ipython profile create <name>``.
512
512
513 * All IPython applications have been rewritten to use
513 * All IPython applications have been rewritten to use
514 :class:`~traitlets.config.loader.KeyValueConfigLoader`. This means that
514 :class:`~traitlets.config.loader.KeyValueConfigLoader`. This means that
515 command-line options have changed. Now, all configurable values are accessible
515 command-line options have changed. Now, all configurable values are accessible
516 from the command-line with the same syntax as in a configuration file.
516 from the command-line with the same syntax as in a configuration file.
517
517
518 * The command line options ``-wthread``, ``-qthread`` and
518 * The command line options ``-wthread``, ``-qthread`` and
519 ``-gthread`` have been removed. Use ``--gui=wx``, ``--gui=qt``, ``--gui=gtk``
519 ``-gthread`` have been removed. Use ``--gui=wx``, ``--gui=qt``, ``--gui=gtk``
520 instead.
520 instead.
521
521
522 * The extension loading functions have been renamed to
522 * The extension loading functions have been renamed to
523 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
523 :func:`load_ipython_extension` and :func:`unload_ipython_extension`.
524
524
525 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
525 * :class:`~IPython.core.interactiveshell.InteractiveShell` no longer takes an
526 ``embedded`` argument. Instead just use the
526 ``embedded`` argument. Instead just use the
527 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
527 :class:`~IPython.core.interactiveshell.InteractiveShellEmbed` class.
528
528
529 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
529 * ``__IPYTHON__`` is no longer injected into ``__builtin__``.
530
530
531 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
531 * :meth:`Struct.__init__` no longer takes `None` as its first argument. It
532 must be a :class:`dict` or :class:`Struct`.
532 must be a :class:`dict` or :class:`Struct`.
533
533
534 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
534 * :meth:`~IPython.core.interactiveshell.InteractiveShell.ipmagic` has been
535 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
535 renamed :meth:`~IPython.core.interactiveshell.InteractiveShell.magic.`
536
536
537 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
537 * The functions :func:`ipmagic` and :func:`ipalias` have been removed from
538 :mod:`__builtins__`.
538 :mod:`__builtins__`.
539
539
540 * The references to the global
540 * The references to the global
541 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
541 :class:`~IPython.core.interactivehell.InteractiveShell` instance (``_ip``, and
542 ``__IP``) have been removed from the user's namespace. They are replaced by a
542 ``__IP``) have been removed from the user's namespace. They are replaced by a
543 new function called :func:`get_ipython` that returns the current
543 new function called :func:`get_ipython` that returns the current
544 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
544 :class:`~IPython.core.interactiveshell.InteractiveShell` instance. This
545 function is injected into the user's namespace and is now the main way of
545 function is injected into the user's namespace and is now the main way of
546 accessing the running IPython.
546 accessing the running IPython.
547
547
548 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
548 * Old style configuration files :file:`ipythonrc` and :file:`ipy_user_conf.py`
549 are no longer supported. Users should migrate there configuration files to
549 are no longer supported. Users should migrate there configuration files to
550 the new format described :doc:`here </config/intro>` and
550 the new format described :doc:`here </config/intro>` and
551 :ref:`here <config_overview>`.
551 :ref:`here <config_overview>`.
552
552
553 * The old IPython extension API that relied on :func:`ipapi` has been
553 * The old IPython extension API that relied on :func:`ipapi` has been
554 completely removed. The new extension API is described :ref:`here
554 completely removed. The new extension API is described :ref:`here
555 <extensions_overview>`.
555 <extensions_overview>`.
556
556
557 * Support for ``qt3`` has been dropped. Users who need this should use
557 * Support for ``qt3`` has been dropped. Users who need this should use
558 previous versions of IPython.
558 previous versions of IPython.
559
559
560 * Removed :mod:`shellglobals` as it was obsolete.
560 * Removed :mod:`shellglobals` as it was obsolete.
561
561
562 * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no
562 * Removed all the threaded shells in :mod:`IPython.core.shell`. These are no
563 longer needed because of the new capabilities in
563 longer needed because of the new capabilities in
564 :mod:`IPython.lib.inputhook`.
564 :mod:`IPython.lib.inputhook`.
565
565
566 * New top-level sub-packages have been created: :mod:`IPython.core`,
566 * New top-level sub-packages have been created: :mod:`IPython.core`,
567 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
567 :mod:`IPython.lib`, :mod:`IPython.utils`, :mod:`IPython.deathrow`,
568 :mod:`IPython.quarantine`. All existing top-level modules have been
568 :mod:`IPython.quarantine`. All existing top-level modules have been
569 moved to appropriate sub-packages. All internal import statements
569 moved to appropriate sub-packages. All internal import statements
570 have been updated and tests have been added. The build system (setup.py
570 have been updated and tests have been added. The build system (setup.py
571 and friends) have been updated. See :doc:`/api/index` for details of these
571 and friends) have been updated. See :doc:`/api/index` for details of these
572 new sub-packages.
572 new sub-packages.
573
573
574 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
574 * :mod:`IPython.ipapi` has been moved to :mod:`IPython.core.ipapi`.
575 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
575 :mod:`IPython.Shell` and :mod:`IPython.iplib` have been split and removed as
576 part of the refactor.
576 part of the refactor.
577
577
578 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
578 * :mod:`Extensions` has been moved to :mod:`extensions` and all existing
579 extensions have been moved to either :mod:`IPython.quarantine` or
579 extensions have been moved to either :mod:`IPython.quarantine` or
580 :mod:`IPython.deathrow`. :mod:`IPython.quarantine` contains modules that we
580 :mod:`IPython.deathrow`. :mod:`IPython.quarantine` contains modules that we
581 plan on keeping but that need to be updated. :mod:`IPython.deathrow` contains
581 plan on keeping but that need to be updated. :mod:`IPython.deathrow` contains
582 modules that are either dead or that should be maintained as third party
582 modules that are either dead or that should be maintained as third party
583 libraries.
583 libraries.
584
584
585 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
585 * Previous IPython GUIs in :mod:`IPython.frontend` and :mod:`IPython.gui` are
586 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
586 likely broken, and have been removed to :mod:`IPython.deathrow` because of the
587 refactoring in the core. With proper updates, these should still work.
587 refactoring in the core. With proper updates, these should still work.
588
588
589
589
590 Known Regressions
590 Known Regressions
591 -----------------
591 -----------------
592
592
593 We do our best to improve IPython, but there are some known regressions in 0.11
593 We do our best to improve IPython, but there are some known regressions in 0.11
594 relative to 0.10.2. First of all, there are features that have yet to be
594 relative to 0.10.2. First of all, there are features that have yet to be
595 ported to the new APIs, and in order to ensure that all of the installed code
595 ported to the new APIs, and in order to ensure that all of the installed code
596 runs for our users, we have moved them to two separate directories in the
596 runs for our users, we have moved them to two separate directories in the
597 source distribution, `quarantine` and `deathrow`. Finally, we have some other
597 source distribution, `quarantine` and `deathrow`. Finally, we have some other
598 miscellaneous regressions that we hope to fix as soon as possible. We now
598 miscellaneous regressions that we hope to fix as soon as possible. We now
599 describe all of these in more detail.
599 describe all of these in more detail.
600
600
601 Quarantine
601 Quarantine
602 ~~~~~~~~~~
602 ~~~~~~~~~~
603
603
604 These are tools and extensions that we consider relatively easy to update to
604 These are tools and extensions that we consider relatively easy to update to
605 the new classes and APIs, but that we simply haven't had time for. Any user
605 the new classes and APIs, but that we simply haven't had time for. Any user
606 who is interested in one of these is encouraged to help us by porting it and
606 who is interested in one of these is encouraged to help us by porting it and
607 submitting a pull request on our `development site`_.
607 submitting a pull request on our `development site`_.
608
608
609 .. _development site: http://github.com/ipython/ipython
609 .. _development site: http://github.com/ipython/ipython
610
610
611 Currently, the quarantine directory contains::
611 Currently, the quarantine directory contains::
612
612
613 clearcmd.py ipy_fsops.py ipy_signals.py
613 clearcmd.py ipy_fsops.py ipy_signals.py
614 envpersist.py ipy_gnuglobal.py ipy_synchronize_with.py
614 envpersist.py ipy_gnuglobal.py ipy_synchronize_with.py
615 ext_rescapture.py ipy_greedycompleter.py ipy_system_conf.py
615 ext_rescapture.py ipy_greedycompleter.py ipy_system_conf.py
616 InterpreterExec.py ipy_jot.py ipy_which.py
616 InterpreterExec.py ipy_jot.py ipy_which.py
617 ipy_app_completers.py ipy_lookfor.py ipy_winpdb.py
617 ipy_app_completers.py ipy_lookfor.py ipy_winpdb.py
618 ipy_autoreload.py ipy_profile_doctest.py ipy_workdir.py
618 ipy_autoreload.py ipy_profile_doctest.py ipy_workdir.py
619 ipy_completers.py ipy_pydb.py jobctrl.py
619 ipy_completers.py ipy_pydb.py jobctrl.py
620 ipy_editors.py ipy_rehashdir.py ledit.py
620 ipy_editors.py ipy_rehashdir.py ledit.py
621 ipy_exportdb.py ipy_render.py pspersistence.py
621 ipy_exportdb.py ipy_render.py pspersistence.py
622 ipy_extutil.py ipy_server.py win32clip.py
622 ipy_extutil.py ipy_server.py win32clip.py
623
623
624 Deathrow
624 Deathrow
625 ~~~~~~~~
625 ~~~~~~~~
626
626
627 These packages may be harder to update or make most sense as third-party
627 These packages may be harder to update or make most sense as third-party
628 libraries. Some of them are completely obsolete and have been already replaced
628 libraries. Some of them are completely obsolete and have been already replaced
629 by better functionality (we simply haven't had the time to carefully weed them
629 by better functionality (we simply haven't had the time to carefully weed them
630 out so they are kept here for now). Others simply require fixes to code that
630 out so they are kept here for now). Others simply require fixes to code that
631 the current core team may not be familiar with. If a tool you were used to is
631 the current core team may not be familiar with. If a tool you were used to is
632 included here, we encourage you to contact the dev list and we can discuss
632 included here, we encourage you to contact the dev list and we can discuss
633 whether it makes sense to keep it in IPython (if it can be maintained).
633 whether it makes sense to keep it in IPython (if it can be maintained).
634
634
635 Currently, the deathrow directory contains::
635 Currently, the deathrow directory contains::
636
636
637 astyle.py ipy_defaults.py ipy_vimserver.py
637 astyle.py ipy_defaults.py ipy_vimserver.py
638 dtutils.py ipy_kitcfg.py numeric_formats.py
638 dtutils.py ipy_kitcfg.py numeric_formats.py
639 Gnuplot2.py ipy_legacy.py numutils.py
639 Gnuplot2.py ipy_legacy.py numutils.py
640 GnuplotInteractive.py ipy_p4.py outputtrap.py
640 GnuplotInteractive.py ipy_p4.py outputtrap.py
641 GnuplotRuntime.py ipy_profile_none.py PhysicalQInput.py
641 GnuplotRuntime.py ipy_profile_none.py PhysicalQInput.py
642 ibrowse.py ipy_profile_numpy.py PhysicalQInteractive.py
642 ibrowse.py ipy_profile_numpy.py PhysicalQInteractive.py
643 igrid.py ipy_profile_scipy.py quitter.py*
643 igrid.py ipy_profile_scipy.py quitter.py*
644 ipipe.py ipy_profile_sh.py scitedirector.py
644 ipipe.py ipy_profile_sh.py scitedirector.py
645 iplib.py ipy_profile_zope.py Shell.py
645 iplib.py ipy_profile_zope.py Shell.py
646 ipy_constants.py ipy_traits_completer.py twshell.py
646 ipy_constants.py ipy_traits_completer.py twshell.py
647
647
648
648
649 Other regressions
649 Other regressions
650 ~~~~~~~~~~~~~~~~~
650 ~~~~~~~~~~~~~~~~~
651
651
652 * The machinery that adds functionality to the 'sh' profile for using IPython
652 * The machinery that adds functionality to the 'sh' profile for using IPython
653 as your system shell has not been updated to use the new APIs. As a result,
653 as your system shell has not been updated to use the new APIs. As a result,
654 only the aesthetic (prompt) changes are still implemented. We intend to fix
654 only the aesthetic (prompt) changes are still implemented. We intend to fix
655 this by 0.12. Tracked as issue 547_.
655 this by 0.12. Tracked as issue 547_.
656
656
657 .. _547: https://github.com/ipython/ipython/issues/547
657 .. _547: https://github.com/ipython/ipython/issues/547
658
658
659 * The installation of scripts on Windows was broken without setuptools, so we
659 * The installation of scripts on Windows was broken without setuptools, so we
660 now depend on setuptools on Windows. We hope to fix setuptools-less
660 now depend on setuptools on Windows. We hope to fix setuptools-less
661 installation, and then remove the setuptools dependency. Issue 539_.
661 installation, and then remove the setuptools dependency. Issue 539_.
662
662
663 .. _539: https://github.com/ipython/ipython/issues/539
663 .. _539: https://github.com/ipython/ipython/issues/539
664
664
665 * The directory history `_dh` is not saved between sessions. Issue 634_.
665 * The directory history `_dh` is not saved between sessions. Issue 634_.
666
666
667 .. _634: https://github.com/ipython/ipython/issues/634
667 .. _634: https://github.com/ipython/ipython/issues/634
668
668
669
669
670 Removed Features
670 Removed Features
671 ----------------
671 ----------------
672
672
673 As part of the updating of IPython, we have removed a few features for the
673 As part of the updating of IPython, we have removed a few features for the
674 purposes of cleaning up the codebase and interfaces. These removals are
674 purposes of cleaning up the codebase and interfaces. These removals are
675 permanent, but for any item listed below, equivalent functionality is
675 permanent, but for any item listed below, equivalent functionality is
676 available.
676 available.
677
677
678 * The magics Exit and Quit have been dropped as ways to exit IPython. Instead,
678 * The magics Exit and Quit have been dropped as ways to exit IPython. Instead,
679 the lowercase forms of both work either as a bare name (``exit``) or a
679 the lowercase forms of both work either as a bare name (``exit``) or a
680 function call (``exit()``). You can assign these to other names using
680 function call (``exit()``). You can assign these to other names using
681 exec_lines in the config file.
681 exec_lines in the config file.
682
682
683
683
684 .. _credits_011:
684 .. _credits_011:
685
685
686 Credits
686 Credits
687 -------
687 -------
688
688
689 Many users and developers contributed code, features, bug reports and ideas to
689 Many users and developers contributed code, features, bug reports and ideas to
690 this release. Please do not hesitate in contacting us if we've failed to
690 this release. Please do not hesitate in contacting us if we've failed to
691 acknowledge your contribution here. In particular, for this release we have
691 acknowledge your contribution here. In particular, for this release we have
692 contribution from the following people, a mix of new and regular names (in
692 contribution from the following people, a mix of new and regular names (in
693 alphabetical order by first name):
693 alphabetical order by first name):
694
694
695 * Aenugu Sai Kiran Reddy <saikrn08-at-gmail.com>
695 * Aenugu Sai Kiran Reddy <saikrn08-at-gmail.com>
696 * andy wilson <wilson.andrew.j+github-at-gmail.com>
696 * andy wilson <wilson.andrew.j+github-at-gmail.com>
697 * Antonio Cuni <antocuni>
697 * Antonio Cuni <antocuni>
698 * Barry Wark <barrywark-at-gmail.com>
698 * Barry Wark <barrywark-at-gmail.com>
699 * Beetoju Anuradha <anu.beethoju-at-gmail.com>
699 * Beetoju Anuradha <anu.beethoju-at-gmail.com>
700 * Benjamin Ragan-Kelley <minrk-at-Mercury.local>
700 * Benjamin Ragan-Kelley <minrk-at-Mercury.local>
701 * Brad Reisfeld
701 * Brad Reisfeld
702 * Brian E. Granger <ellisonbg-at-gmail.com>
702 * Brian E. Granger <ellisonbg-at-gmail.com>
703 * Christoph Gohlke <cgohlke-at-uci.edu>
703 * Christoph Gohlke <cgohlke-at-uci.edu>
704 * Cody Precord
704 * Cody Precord
705 * dan.milstein
705 * dan.milstein
706 * Darren Dale <dsdale24-at-gmail.com>
706 * Darren Dale <dsdale24-at-gmail.com>
707 * Dav Clark <davclark-at-berkeley.edu>
707 * Dav Clark <davclark-at-berkeley.edu>
708 * David Warde-Farley <wardefar-at-iro.umontreal.ca>
708 * David Warde-Farley <wardefar-at-iro.umontreal.ca>
709 * epatters <ejpatters-at-gmail.com>
709 * epatters <ejpatters-at-gmail.com>
710 * epatters <epatters-at-caltech.edu>
710 * epatters <epatters-at-caltech.edu>
711 * epatters <epatters-at-enthought.com>
711 * epatters <epatters-at-enthought.com>
712 * Eric Firing <efiring-at-hawaii.edu>
712 * Eric Firing <efiring-at-hawaii.edu>
713 * Erik Tollerud <erik.tollerud-at-gmail.com>
713 * Erik Tollerud <erik.tollerud-at-gmail.com>
714 * Evan Patterson <epatters-at-enthought.com>
714 * Evan Patterson <epatters-at-enthought.com>
715 * Fernando Perez <Fernando.Perez-at-berkeley.edu>
715 * Fernando Perez <Fernando.Perez-at-berkeley.edu>
716 * Gael Varoquaux <gael.varoquaux-at-normalesup.org>
716 * Gael Varoquaux <gael.varoquaux-at-normalesup.org>
717 * Gerardo <muzgash-at-Muzpelheim>
717 * Gerardo <muzgash-at-Muzpelheim>
718 * Jason Grout <jason.grout-at-drake.edu>
718 * Jason Grout <jason.grout-at-drake.edu>
719 * John Hunter <jdh2358-at-gmail.com>
719 * John Hunter <jdh2358-at-gmail.com>
720 * Jens Hedegaard Nielsen <jenshnielsen-at-gmail.com>
720 * Jens Hedegaard Nielsen <jenshnielsen-at-gmail.com>
721 * Johann Cohen-Tanugi <johann.cohentanugi-at-gmail.com>
721 * Johann Cohen-Tanugi <johann.cohentanugi-at-gmail.com>
722 * Jörgen Stenarson <jorgen.stenarson-at-bostream.nu>
722 * Jörgen Stenarson <jorgen.stenarson-at-bostream.nu>
723 * Justin Riley <justin.t.riley-at-gmail.com>
723 * Justin Riley <justin.t.riley-at-gmail.com>
724 * Kiorky
724 * Kiorky
725 * Laurent Dufrechou <laurent.dufrechou-at-gmail.com>
725 * Laurent Dufrechou <laurent.dufrechou-at-gmail.com>
726 * Luis Pedro Coelho <lpc-at-cmu.edu>
726 * Luis Pedro Coelho <lpc-at-cmu.edu>
727 * Mani chandra <mchandra-at-iitk.ac.in>
727 * Mani chandra <mchandra-at-iitk.ac.in>
728 * Mark E. Smith
728 * Mark E. Smith
729 * Mark Voorhies <mark.voorhies-at-ucsf.edu>
729 * Mark Voorhies <mark.voorhies-at-ucsf.edu>
730 * Martin Spacek <git-at-mspacek.mm.st>
730 * Martin Spacek <git-at-mspacek.mm.st>
731 * Michael Droettboom <mdroe-at-stsci.edu>
731 * Michael Droettboom <mdroe-at-stsci.edu>
732 * MinRK <benjaminrk-at-gmail.com>
732 * MinRK <benjaminrk-at-gmail.com>
733 * muzuiget <muzuiget-at-gmail.com>
733 * muzuiget <muzuiget-at-gmail.com>
734 * Nick Tarleton <nick-at-quixey.com>
734 * Nick Tarleton <nick-at-quixey.com>
735 * Nicolas Rougier <Nicolas.rougier-at-inria.fr>
735 * Nicolas Rougier <Nicolas.rougier-at-inria.fr>
736 * Omar Andres Zapata Mesa <andresete.chaos-at-gmail.com>
736 * Omar Andres Zapata Mesa <andresete.chaos-at-gmail.com>
737 * Paul Ivanov <pivanov314-at-gmail.com>
737 * Paul Ivanov <pivanov314-at-gmail.com>
738 * Pauli Virtanen <pauli.virtanen-at-iki.fi>
738 * Pauli Virtanen <pauli.virtanen-at-iki.fi>
739 * Prabhu Ramachandran
739 * Prabhu Ramachandran
740 * Ramana <sramana9-at-gmail.com>
740 * Ramana <sramana9-at-gmail.com>
741 * Robert Kern <robert.kern-at-gmail.com>
741 * Robert Kern <robert.kern-at-gmail.com>
742 * Sathesh Chandra <satheshchandra88-at-gmail.com>
742 * Sathesh Chandra <satheshchandra88-at-gmail.com>
743 * Satrajit Ghosh <satra-at-mit.edu>
743 * Satrajit Ghosh <satra-at-mit.edu>
744 * Sebastian Busch
744 * Sebastian Busch
745 * Skipper Seabold <jsseabold-at-gmail.com>
745 * Skipper Seabold <jsseabold-at-gmail.com>
746 * Stefan van der Walt <bzr-at-mentat.za.net>
746 * Stefan van der Walt <bzr-at-mentat.za.net>
747 * Stephan Peijnik <debian-at-sp.or.at>
747 * Stephan Peijnik <debian-at-sp.or.at>
748 * Steven Bethard
748 * Steven Bethard
749 * Thomas Kluyver <takowl-at-gmail.com>
749 * Thomas Kluyver <takowl-at-gmail.com>
750 * Thomas Spura <tomspur-at-fedoraproject.org>
750 * Thomas Spura <tomspur-at-fedoraproject.org>
751 * Tom Fetherston <tfetherston-at-aol.com>
751 * Tom Fetherston <tfetherston-at-aol.com>
752 * Tom MacWright
752 * Tom MacWright
753 * tzanko
753 * tzanko
754 * vankayala sowjanya <hai.sowjanya-at-gmail.com>
754 * vankayala sowjanya <hai.sowjanya-at-gmail.com>
755 * Vivian De Smedt <vds2212-at-VIVIAN>
755 * Vivian De Smedt <vds2212-at-VIVIAN>
756 * Ville M. Vainio <vivainio-at-gmail.com>
756 * Ville M. Vainio <vivainio-at-gmail.com>
757 * Vishal Vatsa <vishal.vatsa-at-gmail.com>
757 * Vishal Vatsa <vishal.vatsa-at-gmail.com>
758 * Vishnu S G <sgvishnu777-at-gmail.com>
758 * Vishnu S G <sgvishnu777-at-gmail.com>
759 * Walter Doerwald <walter-at-livinglogic.de>
759 * Walter Doerwald <walter-at-livinglogic.de>
760
760
761 .. note::
761 .. note::
762
762
763 This list was generated with the output of
763 This list was generated with the output of
764 ``git log dev-0.11 HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u``
764 ``git log dev-0.11 HEAD --format='* %aN <%aE>' | sed 's/@/\-at\-/' | sed 's/<>//' | sort -u``
765 after some cleanup. If you should be on this list, please add yourself.
765 after some cleanup. If you should be on this list, please add yourself.
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
@@ -1,61 +1,62 b''
1 {
1 {
2 "cells": [
2 "cells": [
3 {
3 {
4 "cell_type": "markdown",
4 "cell_type": "markdown",
5 "metadata": {},
5 "metadata": {},
6 "source": [
6 "source": [
7 "<img src=\"images/ipython_logo.png\">"
7 "<img src=\"images/ipython_logo.png\">"
8 ]
8 ]
9 },
9 },
10 {
10 {
11 "cell_type": "markdown",
11 "cell_type": "markdown",
12 "metadata": {},
12 "metadata": {},
13 "source": [
13 "source": [
14 "# IPython Documentation"
14 "# IPython Documentation"
15 ]
15 ]
16 },
16 },
17 {
17 {
18 "cell_type": "markdown",
18 "cell_type": "markdown",
19 "metadata": {},
19 "metadata": {},
20 "source": [
20 "source": [
21 "This directory contains IPython's notebook-based documentation. This augments our [Sphinx-based documentation](http://ipython.org/ipython-doc/stable/index.html) with notebooks that contain interactive tutorials and examples. Over time, more of our documentation will be pulled into this format."
21 "This directory contains IPython's notebook-based documentation. This
22 augments our [Sphinx-based documentation](https://ipython.org/ipython-doc/stable/index.html) with notebooks that contain interactive tutorials and examples. Over time, more of our documentation will be pulled into this format."
22 ]
23 ]
23 },
24 },
24 {
25 {
25 "cell_type": "markdown",
26 "cell_type": "markdown",
26 "metadata": {},
27 "metadata": {},
27 "source": [
28 "source": [
28 "## Topics"
29 "## Topics"
29 ]
30 ]
30 },
31 },
31 {
32 {
32 "cell_type": "markdown",
33 "cell_type": "markdown",
33 "metadata": {},
34 "metadata": {},
34 "source": [
35 "source": [
35 "* [IPython Kernel](IPython Kernel/Index.ipynb): IPython's core syntax and command line features available in all frontends\n",
36 "* [IPython Kernel](IPython Kernel/Index.ipynb): IPython's core syntax and command line features available in all frontends\n",
36 "* [Embedding](Embedding/Index.ipynb): Embedding and reusing IPython's components into other applications\n"
37 "* [Embedding](Embedding/Index.ipynb): Embedding and reusing IPython's components into other applications\n"
37 ]
38 ]
38 }
39 }
39 ],
40 ],
40 "metadata": {
41 "metadata": {
41 "kernelspec": {
42 "kernelspec": {
42 "display_name": "Python 3",
43 "display_name": "Python 3",
43 "language": "python",
44 "language": "python",
44 "name": "python3"
45 "name": "python3"
45 },
46 },
46 "language_info": {
47 "language_info": {
47 "codemirror_mode": {
48 "codemirror_mode": {
48 "name": "ipython",
49 "name": "ipython",
49 "version": 3
50 "version": 3
50 },
51 },
51 "file_extension": ".py",
52 "file_extension": ".py",
52 "mimetype": "text/x-python",
53 "mimetype": "text/x-python",
53 "name": "python",
54 "name": "python",
54 "nbconvert_exporter": "python",
55 "nbconvert_exporter": "python",
55 "pygments_lexer": "ipython3",
56 "pygments_lexer": "ipython3",
56 "version": "3.4.3"
57 "version": "3.4.3"
57 }
58 }
58 },
59 },
59 "nbformat": 4,
60 "nbformat": 4,
60 "nbformat_minor": 0
61 "nbformat_minor": 0
61 }
62 }
@@ -1,307 +1,307 b''
1 {
1 {
2 "cells": [
2 "cells": [
3 {
3 {
4 "cell_type": "markdown",
4 "cell_type": "markdown",
5 "metadata": {},
5 "metadata": {},
6 "source": [
6 "source": [
7 "# Test notebook for overflowing content"
7 "# Test notebook for overflowing content"
8 ]
8 ]
9 },
9 },
10 {
10 {
11 "cell_type": "markdown",
11 "cell_type": "markdown",
12 "metadata": {},
12 "metadata": {},
13 "source": [
13 "source": [
14 "markdown image:\n",
14 "markdown image:\n",
15 "\n",
15 "\n",
16 "<img src=\"http://placehold.it/800x200.png\">\n",
16 "<img src=\"http://placehold.it/800x200.png\">\n",
17 "\n",
17 "\n",
18 "unconfined markdown image:\n",
18 "unconfined markdown image:\n",
19 "\n",
19 "\n",
20 "<img src=\"http://placehold.it/800x200.png\" class=\"unconfined\">"
20 "<img src=\"http://placehold.it/800x200.png\" class=\"unconfined\">"
21 ]
21 ]
22 },
22 },
23 {
23 {
24 "cell_type": "code",
24 "cell_type": "code",
25 "execution_count": 1,
25 "execution_count": 1,
26 "metadata": {
26 "metadata": {
27 "collapsed": true
27 "collapsed": true
28 },
28 },
29 "outputs": [],
29 "outputs": [],
30 "source": [
30 "source": [
31 "from IPython.display import Image, IFrame"
31 "from IPython.display import Image, IFrame"
32 ]
32 ]
33 },
33 },
34 {
34 {
35 "cell_type": "markdown",
35 "cell_type": "markdown",
36 "metadata": {},
36 "metadata": {},
37 "source": [
37 "source": [
38 "Overflow image in HTML (non-embedded)"
38 "Overflow image in HTML (non-embedded)"
39 ]
39 ]
40 },
40 },
41 {
41 {
42 "cell_type": "code",
42 "cell_type": "code",
43 "execution_count": 2,
43 "execution_count": 2,
44 "metadata": {
44 "metadata": {
45 "collapsed": false
45 "collapsed": false
46 },
46 },
47 "outputs": [
47 "outputs": [
48 {
48 {
49 "data": {
49 "data": {
50 "text/html": [
50 "text/html": [
51 "<img src=\"http://placehold.it/800x200.png\" />"
51 "<img src=\"http://placehold.it/800x200.png\" />"
52 ],
52 ],
53 "text/plain": [
53 "text/plain": [
54 "<IPython.core.display.Image object>"
54 "<IPython.core.display.Image object>"
55 ]
55 ]
56 },
56 },
57 "execution_count": 2,
57 "execution_count": 2,
58 "metadata": {},
58 "metadata": {},
59 "output_type": "execute_result"
59 "output_type": "execute_result"
60 }
60 }
61 ],
61 ],
62 "source": [
62 "source": [
63 "Image(url=\"http://placehold.it/800x200.png\", embed=False)"
63 "Image(url=\"http://placehold.it/800x200.png\", embed=False)"
64 ]
64 ]
65 },
65 },
66 {
66 {
67 "cell_type": "markdown",
67 "cell_type": "markdown",
68 "metadata": {},
68 "metadata": {},
69 "source": [
69 "source": [
70 "Overflow image:"
70 "Overflow image:"
71 ]
71 ]
72 },
72 },
73 {
73 {
74 "cell_type": "code",
74 "cell_type": "code",
75 "execution_count": 3,
75 "execution_count": 3,
76 "metadata": {
76 "metadata": {
77 "collapsed": false
77 "collapsed": false
78 },
78 },
79 "outputs": [
79 "outputs": [
80 {
80 {
81 "data": {
81 "data": {
82 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAADIBAMAAADioZgpAAAAG1BMVEXMzMyWlpbFxcWxsbGjo6Oc\nnJyqqqq3t7e+vr4PApRfAAAFsUlEQVR4nO3cz28aRxTAcYwhcOzYxskRpLbKka0qtUeTquq1G6Xq\n1VSKejX9EeVo+kPyn13mzXuzs2uKZwxSK+33c4iZhX2K3szOr10YDAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5p+GX9w89JefLevfsi/cCHevbNPDvch2/du19O\nF65/hmu382MsT2pf/qn5wO++fD3PDCefTk4/MlwPbSWD7sbK61C+t/KLUH6VF+3T8OlZPP24cD00\nCQlyV/NQ1oQ1GdOMNik9ZFjrp18OThGuj/QCiZdIpcXZPJTP7f23OdHG9mlL+HHh+siatLuU4jBm\n9Ca8v7DyVU60dTz94hThekha7Ne/+X+lPPK5+lg1ncxq9/K7PzM7manU7IOvlusThOujcciVz9PS\nl7fSmKexCeurrUuG/cPRdp2T1Mv8+HB9tAk14XuS7315FVJZWRMehd7n3GVNjLY6OPiod8eH66N1\nyNi59vpDHUzOdn9v/fsLvXRiJ3TQSkfvsZ5+ZLg+WoXOxHclfqY60Yrxs9VP/Psb7XzWNsgctNaG\n/0IvuCPD9VEdmupQK2SknfvU+hStMOmM7p+MNl2FC8Eq5MhwfWTz3aRvWe453rxx2PT93P+xK+LY\ncD1knblmapGMxr4p25UT23qekV4hJwrXJ3V7DLE+3nfys0EzCMROKI9N2k4Urk90dLVZVmWDbdUc\nl9E4vghWWnT7W/paZ1W54RBtQ6cy1sRqS45tO7bk2LYDF64o2Zl8nFjZMLkrCIdoFJZytnKzWZBN\ng2JfH+dJgQsr7tH+CpEtxkFBOEQ+M7P7z51mLmZQh+OYwTgcBz7juya/2F8hcS8rNxwalVOyH17b\nCnrRdGW3vryvQu6kJ3pcIdKRXZSEQ8NuUIQbFq0MLjsZvGzOqsNo7sf2x7MluW6WJeGQ+DtUyK0U\nrK+xldtZ+k6Swdd+B/1C0vow7wSUu4azonBIhKcS3BspxDwlGVy231G7rF9O9l0fYaR/VRgOxm56\nh62l/Azu5k1XI53dtlUuHqZCysWbrtKm8zPoK2O7706sDOm6t06FFJP0yS1c6fXzM+jny/W+xcQi\nTtmokGdYuLgwbN04enoUXidzgVQd+z8G9WeoXFxC+5VDwTw1PD8y7waUMcmWGEx7i7nmBpVPUJ2/\nknuRjBWJTXrdFISDmLjmVt5sULTXITuIjzYI5Wgc6dk6KRW3Xzeh+ynZDbRxp2WUDOlsLpazbXfb\nhi/ZL6/dnmXhJhnS2X4v130+x7d6eUNfHLijNElH76hujdYF4SDiwkBfbFz2PVe56THrxJOtyptY\nLAgHEac9WiEL63CSpxKkr3/8VEIl097OIOLPtwfdB0XhIGKF6DQo/7kdfa69MxBU7cGax4BK2fM6\n3WnQ00+2+U5n012IDNNFyIAH5crZ0ybpqNt69rNy//Ls50J3e+fdcEmPVRAOgT2PZc9n2Yq91ZUt\nB8ma2+za+suJ62xmjTsTr/xwUHUz/ZHOfRWaeOWS7w+83fP9gam0+bpzdNMdq3PDwVSh7S6s69o6\n+4ZNmNEm37BpTVNHcl7VuSGy6g4NueFgfE1cD6a19SnNd9C06/E5Dt9BS+4NDh82knp/9sc/msM+\n8Q9BOJoXDg1ZyV3VcTCeOnMTPrC1cnopjPWA7Fw1i8OJSwzywyGxsgxpE660ePB7zGd6wqRJvRfv\nzzdHs8Ih8ZllSNdpWd/0lwqxh62bCmm+pR6P8sMBpey3F+KO4LqTsH2/hSEVcmsfbh9uVwg/rVFM\nf50kjrHh12LeNB+QB7fslzeCM8vx9qkrJCscWv7yXXzyA0oZv6ckk6fWi3BmUh9xqOfnmYq9/vWr\n+//6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/+AfmZU6iN1i\nLzkAAAAASUVORK5CYII=\n",
82 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAADIBAMAAADioZgpAAAAG1BMVEXMzMyWlpbFxcWxsbGjo6Oc\nnJyqqqq3t7e+vr4PApRfAAAFsUlEQVR4nO3cz28aRxTAcYwhcOzYxskRpLbKka0qtUeTquq1G6Xq\n1VSKejX9EeVo+kPyn13mzXuzs2uKZwxSK+33c4iZhX2K3szOr10YDAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5p+GX9w89JefLevfsi/cCHevbNPDvch2/du19O\nF65/hmu382MsT2pf/qn5wO++fD3PDCefTk4/MlwPbSWD7sbK61C+t/KLUH6VF+3T8OlZPP24cD00\nCQlyV/NQ1oQ1GdOMNik9ZFjrp18OThGuj/QCiZdIpcXZPJTP7f23OdHG9mlL+HHh+siatLuU4jBm\n9Ca8v7DyVU60dTz94hThekha7Ne/+X+lPPK5+lg1ncxq9/K7PzM7manU7IOvlusThOujcciVz9PS\nl7fSmKexCeurrUuG/cPRdp2T1Mv8+HB9tAk14XuS7315FVJZWRMehd7n3GVNjLY6OPiod8eH66N1\nyNi59vpDHUzOdn9v/fsLvXRiJ3TQSkfvsZ5+ZLg+WoXOxHclfqY60Yrxs9VP/Psb7XzWNsgctNaG\n/0IvuCPD9VEdmupQK2SknfvU+hStMOmM7p+MNl2FC8Eq5MhwfWTz3aRvWe453rxx2PT93P+xK+LY\ncD1knblmapGMxr4p25UT23qekV4hJwrXJ3V7DLE+3nfys0EzCMROKI9N2k4Urk90dLVZVmWDbdUc\nl9E4vghWWnT7W/paZ1W54RBtQ6cy1sRqS45tO7bk2LYDF64o2Zl8nFjZMLkrCIdoFJZytnKzWZBN\ng2JfH+dJgQsr7tH+CpEtxkFBOEQ+M7P7z51mLmZQh+OYwTgcBz7juya/2F8hcS8rNxwalVOyH17b\nCnrRdGW3vryvQu6kJ3pcIdKRXZSEQ8NuUIQbFq0MLjsZvGzOqsNo7sf2x7MluW6WJeGQ+DtUyK0U\nrK+xldtZ+k6Swdd+B/1C0vow7wSUu4azonBIhKcS3BspxDwlGVy231G7rF9O9l0fYaR/VRgOxm56\nh62l/Azu5k1XI53dtlUuHqZCysWbrtKm8zPoK2O7706sDOm6t06FFJP0yS1c6fXzM+jny/W+xcQi\nTtmokGdYuLgwbN04enoUXidzgVQd+z8G9WeoXFxC+5VDwTw1PD8y7waUMcmWGEx7i7nmBpVPUJ2/\nknuRjBWJTXrdFISDmLjmVt5sULTXITuIjzYI5Wgc6dk6KRW3Xzeh+ynZDbRxp2WUDOlsLpazbXfb\nhi/ZL6/dnmXhJhnS2X4v130+x7d6eUNfHLijNElH76hujdYF4SDiwkBfbFz2PVe56THrxJOtyptY\nLAgHEac9WiEL63CSpxKkr3/8VEIl097OIOLPtwfdB0XhIGKF6DQo/7kdfa69MxBU7cGax4BK2fM6\n3WnQ00+2+U5n012IDNNFyIAH5crZ0ybpqNt69rNy//Ls50J3e+fdcEmPVRAOgT2PZc9n2Yq91ZUt\nB8ma2+za+suJ62xmjTsTr/xwUHUz/ZHOfRWaeOWS7w+83fP9gam0+bpzdNMdq3PDwVSh7S6s69o6\n+4ZNmNEm37BpTVNHcl7VuSGy6g4NueFgfE1cD6a19SnNd9C06/E5Dt9BS+4NDh82knp/9sc/msM+\n8Q9BOJoXDg1ZyV3VcTCeOnMTPrC1cnopjPWA7Fw1i8OJSwzywyGxsgxpE660ePB7zGd6wqRJvRfv\nzzdHs8Ih8ZllSNdpWd/0lwqxh62bCmm+pR6P8sMBpey3F+KO4LqTsH2/hSEVcmsfbh9uVwg/rVFM\nf50kjrHh12LeNB+QB7fslzeCM8vx9qkrJCscWv7yXXzyA0oZv6ckk6fWi3BmUh9xqOfnmYq9/vWr\n+//6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/+AfmZU6iN1i\nLzkAAAAASUVORK5CYII=\n",
83 "text/plain": [
83 "text/plain": [
84 "<IPython.core.display.Image object>"
84 "<IPython.core.display.Image object>"
85 ]
85 ]
86 },
86 },
87 "execution_count": 3,
87 "execution_count": 3,
88 "metadata": {},
88 "metadata": {},
89 "output_type": "execute_result"
89 "output_type": "execute_result"
90 }
90 }
91 ],
91 ],
92 "source": [
92 "source": [
93 "Image(url=\"http://placehold.it/800x200.png\", embed=True)"
93 "Image(url=\"http://placehold.it/800x200.png\", embed=True)"
94 ]
94 ]
95 },
95 },
96 {
96 {
97 "cell_type": "markdown",
97 "cell_type": "markdown",
98 "metadata": {},
98 "metadata": {},
99 "source": [
99 "source": [
100 "Overflow, unconfined"
100 "Overflow, unconfined"
101 ]
101 ]
102 },
102 },
103 {
103 {
104 "cell_type": "code",
104 "cell_type": "code",
105 "execution_count": 4,
105 "execution_count": 4,
106 "metadata": {
106 "metadata": {
107 "collapsed": false
107 "collapsed": false
108 },
108 },
109 "outputs": [
109 "outputs": [
110 {
110 {
111 "data": {
111 "data": {
112 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAADIBAMAAADioZgpAAAAG1BMVEXMzMyWlpbFxcWxsbGjo6Oc\nnJyqqqq3t7e+vr4PApRfAAAFsUlEQVR4nO3cz28aRxTAcYwhcOzYxskRpLbKka0qtUeTquq1G6Xq\n1VSKejX9EeVo+kPyn13mzXuzs2uKZwxSK+33c4iZhX2K3szOr10YDAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5p+GX9w89JefLevfsi/cCHevbNPDvch2/du19O\nF65/hmu382MsT2pf/qn5wO++fD3PDCefTk4/MlwPbSWD7sbK61C+t/KLUH6VF+3T8OlZPP24cD00\nCQlyV/NQ1oQ1GdOMNik9ZFjrp18OThGuj/QCiZdIpcXZPJTP7f23OdHG9mlL+HHh+siatLuU4jBm\n9Ca8v7DyVU60dTz94hThekha7Ne/+X+lPPK5+lg1ncxq9/K7PzM7manU7IOvlusThOujcciVz9PS\nl7fSmKexCeurrUuG/cPRdp2T1Mv8+HB9tAk14XuS7315FVJZWRMehd7n3GVNjLY6OPiod8eH66N1\nyNi59vpDHUzOdn9v/fsLvXRiJ3TQSkfvsZ5+ZLg+WoXOxHclfqY60Yrxs9VP/Psb7XzWNsgctNaG\n/0IvuCPD9VEdmupQK2SknfvU+hStMOmM7p+MNl2FC8Eq5MhwfWTz3aRvWe453rxx2PT93P+xK+LY\ncD1knblmapGMxr4p25UT23qekV4hJwrXJ3V7DLE+3nfys0EzCMROKI9N2k4Urk90dLVZVmWDbdUc\nl9E4vghWWnT7W/paZ1W54RBtQ6cy1sRqS45tO7bk2LYDF64o2Zl8nFjZMLkrCIdoFJZytnKzWZBN\ng2JfH+dJgQsr7tH+CpEtxkFBOEQ+M7P7z51mLmZQh+OYwTgcBz7juya/2F8hcS8rNxwalVOyH17b\nCnrRdGW3vryvQu6kJ3pcIdKRXZSEQ8NuUIQbFq0MLjsZvGzOqsNo7sf2x7MluW6WJeGQ+DtUyK0U\nrK+xldtZ+k6Swdd+B/1C0vow7wSUu4azonBIhKcS3BspxDwlGVy231G7rF9O9l0fYaR/VRgOxm56\nh62l/Azu5k1XI53dtlUuHqZCysWbrtKm8zPoK2O7706sDOm6t06FFJP0yS1c6fXzM+jny/W+xcQi\nTtmokGdYuLgwbN04enoUXidzgVQd+z8G9WeoXFxC+5VDwTw1PD8y7waUMcmWGEx7i7nmBpVPUJ2/\nknuRjBWJTXrdFISDmLjmVt5sULTXITuIjzYI5Wgc6dk6KRW3Xzeh+ynZDbRxp2WUDOlsLpazbXfb\nhi/ZL6/dnmXhJhnS2X4v130+x7d6eUNfHLijNElH76hujdYF4SDiwkBfbFz2PVe56THrxJOtyptY\nLAgHEac9WiEL63CSpxKkr3/8VEIl097OIOLPtwfdB0XhIGKF6DQo/7kdfa69MxBU7cGax4BK2fM6\n3WnQ00+2+U5n012IDNNFyIAH5crZ0ybpqNt69rNy//Ls50J3e+fdcEmPVRAOgT2PZc9n2Yq91ZUt\nB8ma2+za+suJ62xmjTsTr/xwUHUz/ZHOfRWaeOWS7w+83fP9gam0+bpzdNMdq3PDwVSh7S6s69o6\n+4ZNmNEm37BpTVNHcl7VuSGy6g4NueFgfE1cD6a19SnNd9C06/E5Dt9BS+4NDh82knp/9sc/msM+\n8Q9BOJoXDg1ZyV3VcTCeOnMTPrC1cnopjPWA7Fw1i8OJSwzywyGxsgxpE660ePB7zGd6wqRJvRfv\nzzdHs8Ih8ZllSNdpWd/0lwqxh62bCmm+pR6P8sMBpey3F+KO4LqTsH2/hSEVcmsfbh9uVwg/rVFM\nf50kjrHh12LeNB+QB7fslzeCM8vx9qkrJCscWv7yXXzyA0oZv6ckk6fWi3BmUh9xqOfnmYq9/vWr\n+//6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/+AfmZU6iN1i\nLzkAAAAASUVORK5CYII=\n",
112 "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAADIBAMAAADioZgpAAAAG1BMVEXMzMyWlpbFxcWxsbGjo6Oc\nnJyqqqq3t7e+vr4PApRfAAAFsUlEQVR4nO3cz28aRxTAcYwhcOzYxskRpLbKka0qtUeTquq1G6Xq\n1VSKejX9EeVo+kPyn13mzXuzs2uKZwxSK+33c4iZhX2K3szOr10YDAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ5p+GX9w89JefLevfsi/cCHevbNPDvch2/du19O\nF65/hmu382MsT2pf/qn5wO++fD3PDCefTk4/MlwPbSWD7sbK61C+t/KLUH6VF+3T8OlZPP24cD00\nCQlyV/NQ1oQ1GdOMNik9ZFjrp18OThGuj/QCiZdIpcXZPJTP7f23OdHG9mlL+HHh+siatLuU4jBm\n9Ca8v7DyVU60dTz94hThekha7Ne/+X+lPPK5+lg1ncxq9/K7PzM7manU7IOvlusThOujcciVz9PS\nl7fSmKexCeurrUuG/cPRdp2T1Mv8+HB9tAk14XuS7315FVJZWRMehd7n3GVNjLY6OPiod8eH66N1\nyNi59vpDHUzOdn9v/fsLvXRiJ3TQSkfvsZ5+ZLg+WoXOxHclfqY60Yrxs9VP/Psb7XzWNsgctNaG\n/0IvuCPD9VEdmupQK2SknfvU+hStMOmM7p+MNl2FC8Eq5MhwfWTz3aRvWe453rxx2PT93P+xK+LY\ncD1knblmapGMxr4p25UT23qekV4hJwrXJ3V7DLE+3nfys0EzCMROKI9N2k4Urk90dLVZVmWDbdUc\nl9E4vghWWnT7W/paZ1W54RBtQ6cy1sRqS45tO7bk2LYDF64o2Zl8nFjZMLkrCIdoFJZytnKzWZBN\ng2JfH+dJgQsr7tH+CpEtxkFBOEQ+M7P7z51mLmZQh+OYwTgcBz7juya/2F8hcS8rNxwalVOyH17b\nCnrRdGW3vryvQu6kJ3pcIdKRXZSEQ8NuUIQbFq0MLjsZvGzOqsNo7sf2x7MluW6WJeGQ+DtUyK0U\nrK+xldtZ+k6Swdd+B/1C0vow7wSUu4azonBIhKcS3BspxDwlGVy231G7rF9O9l0fYaR/VRgOxm56\nh62l/Azu5k1XI53dtlUuHqZCysWbrtKm8zPoK2O7706sDOm6t06FFJP0yS1c6fXzM+jny/W+xcQi\nTtmokGdYuLgwbN04enoUXidzgVQd+z8G9WeoXFxC+5VDwTw1PD8y7waUMcmWGEx7i7nmBpVPUJ2/\nknuRjBWJTXrdFISDmLjmVt5sULTXITuIjzYI5Wgc6dk6KRW3Xzeh+ynZDbRxp2WUDOlsLpazbXfb\nhi/ZL6/dnmXhJhnS2X4v130+x7d6eUNfHLijNElH76hujdYF4SDiwkBfbFz2PVe56THrxJOtyptY\nLAgHEac9WiEL63CSpxKkr3/8VEIl097OIOLPtwfdB0XhIGKF6DQo/7kdfa69MxBU7cGax4BK2fM6\n3WnQ00+2+U5n012IDNNFyIAH5crZ0ybpqNt69rNy//Ls50J3e+fdcEmPVRAOgT2PZc9n2Yq91ZUt\nB8ma2+za+suJ62xmjTsTr/xwUHUz/ZHOfRWaeOWS7w+83fP9gam0+bpzdNMdq3PDwVSh7S6s69o6\n+4ZNmNEm37BpTVNHcl7VuSGy6g4NueFgfE1cD6a19SnNd9C06/E5Dt9BS+4NDh82knp/9sc/msM+\n8Q9BOJoXDg1ZyV3VcTCeOnMTPrC1cnopjPWA7Fw1i8OJSwzywyGxsgxpE660ePB7zGd6wqRJvRfv\nzzdHs8Ih8ZllSNdpWd/0lwqxh62bCmm+pR6P8sMBpey3F+KO4LqTsH2/hSEVcmsfbh9uVwg/rVFM\nf50kjrHh12LeNB+QB7fslzeCM8vx9qkrJCscWv7yXXzyA0oZv6ckk6fWi3BmUh9xqOfnmYq9/vWr\n+//6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/+AfmZU6iN1i\nLzkAAAAASUVORK5CYII=\n",
113 "text/plain": [
113 "text/plain": [
114 "<IPython.core.display.Image object>"
114 "<IPython.core.display.Image object>"
115 ]
115 ]
116 },
116 },
117 "execution_count": 4,
117 "execution_count": 4,
118 "metadata": {
118 "metadata": {
119 "image/png": {
119 "image/png": {
120 "unconfined": true
120 "unconfined": true
121 }
121 }
122 },
122 },
123 "output_type": "execute_result"
123 "output_type": "execute_result"
124 }
124 }
125 ],
125 ],
126 "source": [
126 "source": [
127 "Image(url=\"http://placehold.it/800x200.png\", embed=True, unconfined=True)"
127 "Image(url=\"http://placehold.it/800x200.png\", embed=True, unconfined=True)"
128 ]
128 ]
129 },
129 },
130 {
130 {
131 "cell_type": "markdown",
131 "cell_type": "markdown",
132 "metadata": {},
132 "metadata": {},
133 "source": [
133 "source": [
134 "Overflow with explicit height, width (retina):"
134 "Overflow with explicit height, width (retina):"
135 ]
135 ]
136 },
136 },
137 {
137 {
138 "cell_type": "code",
138 "cell_type": "code",
139 "execution_count": 5,
139 "execution_count": 5,
140 "metadata": {
140 "metadata": {
141 "collapsed": false
141 "collapsed": false
142 },
142 },
143 "outputs": [
143 "outputs": [
144 {
144 {
145 "data": {
145 "data": {
146 "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\nSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP\nFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc\nITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA\nyAcIAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC\nBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn\nKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY\nmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\n+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB\nAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD\nREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip\nqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR\nAD8A9MooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKjmnit03yuEX3oAkoqC3vILrd5L7tuM8EYz9anoAKKZJKkMZeRgqjqTVA65aBsASEeo\nXigDSoqK3uYbpN8Lhh39RUtABRTJZo4IzJK4VR3NZ/8AblpuxiXHrt4/nQBp0VHBcRXEe+Jwy+3a\npKACimu6xoXdgqjkk1ntrlorYHmMPULx+tAGlRUNvdw3SloXDY6juKmoAKKKKACiiigAooooAKKK\nKACiqtzqFtaHbI+X/uryagj1u0dsHzE92Xj9KANGikVldQykFTyCKWgAoqvc3kFoAZXwT0Uck1Vj\n1u0dsHzE92Xj9KANKikVldQykFTyCO9LQAUVFcXMNqm+Zwo7epqkuuWhbBEgHqV4/nQBpUUyOVJo\nw8bBlPQin0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF\nFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU\nUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR\nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA\nBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF\nFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU\nUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBnahqqWhMSLulx3\n6CufnnmuXMsrFucZ7D2rqLiwt7qVJJVJK8cHr9az9dRY7aBUUKoY4AGB0oAb4e/5ef8AgP8AWtus\nTw9/y8/8B/rW3QBzWsXTTXhiB+SPgD37mprfRPOsxI0hWRhlRjj2zVLUomi1CYN/ExYfQ810VpdR\nPYJKXUKqgNk9CKAObtZ5LK7D8jacOvqO4rrgQQCOhrjnzc3bFF5kckD6mutY+TbE9difyFAHOard\nm5u2UH93Gdqj37mrKaEzWgcyETEZC44+lZtqnm3kKn+Jxn867CgDlNPums7tSSQhO1x7V1dclqKe\nXqE6jj5s/nzXT2j+ZZwuTklBn64oAxNbuzJcfZ1PyJ973NLZ6N9otRLJIUZhlQB296zp2Mt1I3dn\nJ/WuwRQiKg6KMCgDkopJbC9z0ZGww9R3FdYjiRFdTlWAIPtXN60mzUWP95Qf6f0rZ0l9+mw5PIyP\nyNAF2iimTSeTBJJjOxS2PXAoAfRWJ/wkP/Tr/wCRP/rVqTXSRWZueq7dwHrnpQBPRWJ/wkP/AE6/\n+RP/AK1bdABVXULk2lm8i/e6L9atUjKGUqwBB6g0Acna2st/cFQfd3POKuX+ji2tzNFIWC/eDD9a\n3IbeG3DCKMIGOTiqWtXKxWZhzl5OAPQetAFLQ7plmNsxyjAlR6GtyWRYYXkbooJNc7osZfUVYdEU\nk/lj+tautPs05h/eYD+v9KAMEmXUL3k5eRvy/wD1VdvtH+y23nRyF9v3gR+opuhJuvmY/wAKEj9K\n37hPMt5U/vKR+lAGNod2RIbVj8rcp7HvW6SACT0FchZP5d9A2f4xn6V02oP5enzsP7hH58UAc5d3\nD314WGTk7UX27Vdn0QxWhkWQtIoyy44PriqulJv1KEHoCT+QrqetAHN6PdmC6ETH93Jxj0Paukrj\nXBguWA4KPx+BrsQQQCOhoAWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA\nooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi\niigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK\nKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo\nAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA\nooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi\niigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKx9\nf/1EP+8f5VsVj6//AKiH/eP8qAGeHv8Al5/4D/WtusTw9/y8/wDAf61t0AYmuXEBIh2Bphzuz932\nrKS0uJITKkLlB3Apru1xclmPzO3P4muwRFjjVFGFUYAoA5vSLiCG6AlQbm4V8/drfvP+PG4/65t/\nKua1GJYdQmRRgZyB9Rn+tdDEzXGkgnlniIPucYoA57Tv+QjB/v11lcjYttvoD/00H8666gDltX/5\nCk3/AAH/ANBFb+m/8g6D/drntTbdqU5/2sfkMV0diuywgH+wD+lAHKRczpn+8P512dca4MVwwPVW\n/ka7IHIyKAOd17/j+T/rmP5mtHRf+Qcv+8azNcbdqGP7qAf1/rWro67dNjPqSf1oAv010WSNkYZV\ngQR7U6igDndW05LXZJCCIzwRnODUEl6X0uK2ycqxz9O38/0rf1ExDT5vN+7t4Hv2/WuUGMjPTvig\nDY0vS454DNcKSGPyDOOPWt2o4DGbeMxf6vaNv0qSgAooooAhurlLWBpZOg6D1PpXKzzSXdwZH5dj\ngAfyFWNUvTd3JCn90nC+/vV/RtP2qLqUfMfuA9h60AXNNshZ2+G5kflj/SoNe/48U/66D+RrUrN1\ntd2n5/uuD/T+tAFLQP8Aj4m/3B/Ot/rXPaC2LyRfWP8AqK35W2ROx7KTQBx0P+vj/wB4fzrptX/5\nBc3/AAH/ANCFc5arvu4V9XUfrXS6mu7TZwP7ufyOaAMTRf8AkIr/ALprpq5fR226nF7gj9K6igDk\nLzi+uP8Aro3866yH/UR/7o/lXIznzLqVh/E5I/OuwRdqKvoMUALRRRQAUUUUAFFFFABRRRQAUUUU\nAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA\nUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR\nRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF\nFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU\nAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA\nUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR\nRRQAUUUUAFFFFABRRRQAUUUUANeRIkLyMFUdSTxWLrVzDPDEIpUchjnac1qX1u11ZyQoQGbGCenU\nGsX+wbr/AJ6Q/mf8KAH6JcQwef5sipnbjccZ61vKwZQykFSMgjvXPf2Ddf8APSH8z/hW9bxmK2ij\nYglECnHsKAOVvIWtrySPphsqfbtXRQ6nbSWwlaVVIHzKTyD9KL/T475Bk7ZF+62P0rHOh3YbAMZH\nruoAqXErXd48iqcyN8o/lXV28Xk28cX91QKo6fpK2jebIweXtjotaVAHJXkDWl66DgA5U+3at1NX\ntjaeazjeBzH3zU17YRXsYD/K4+647Vk/2Bcbv9bFt9ec0AUIo3vbwL1aRsk+nqa64AKAAMAcCqlj\np0dipIO+Q9WI/lVygDmNXtzBfO2Plk+Yf1rUstUtzZL50gV0GCD1OPSrl1aR3kJjkHuCOoNYzaBO\nG+SaMr6nINAFCeR729Z1UlpG+UfoK6uCIQQRxDoigVTsNKjs28xm8yXscYA+laFABTXdI0LuwVR1\nJNOqvfW7XVnJChAZsYJ6dQaAMTWL1biVYomDRpzkdzSTafs0iO4x+8zub6Hp/T86kj0GfzF8ySLZ\nn5sE5x+VbskSywtER8rLtoAxdGv0iRoJnCqPmUsfzFbisGUMpBBGQR3rnv7Buv8AnpD+Z/wregjM\nVvFGSCUQKSPYUASVR1a4+z2LbThn+Uf1q9WfqlhLfLEI3UbCchu+aAMKxjikulE7qkY5O44z7V0n\n2+0H/LxF/wB9Vjf2Ddf89IfzP+FH9g3X/PSH8z/hQBuxXMEzFYpUdgM4U5pLuD7TaSRd2HH17VQ0\nzTJrK5aSRoyChX5SfUe3tWrQByVnObO9WRgflOGHt3rY1LU4DZtHDIHeQY47Dvmn3+kpduZY28uQ\n9eODVJNAmLfvJowv+zkmgCLRbcy3vmEfLGM/j2ropEEkbI3RgQajtraO1hEUY4HUnqT61NQByHz2\nV6Mj54n/ADreuNWt1sy8UgMjD5V7g+9Pv9MjvcNnZKON2Ov1rNXQJ93zSxhfUZJoAqabbm4vo1x8\nqnc30FdXVazso7KLYnLH7zHqas0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2Q==\n",
146 "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg\nSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP\nFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc\nITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA\nyAcIAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC\nBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn\nKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY\nmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\n+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB\nAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD\nREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip\nqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR\nAD8A9MooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo\nooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii\ngAooooAKKKjmnit03yuEX3oAkoqC3vILrd5L7tuM8EYz9anoAKKZJKkMZeRgqjqTVA65aBsASEeo\nXigDSoqK3uYbpN8Lhh39RUtABRTJZo4IzJK4VR3NZ/8AblpuxiXHrt4/nQBp0VHBcRXEe+Jwy+3a\npKACimu6xoXdgqjkk1ntrlorYHmMPULx+tAGlRUNvdw3SloXDY6juKmoAKKKKACiiigAooooAKKK\nKACiqtzqFtaHbI+X/uryagj1u0dsHzE92Xj9KANGikVldQykFTyCKWgAoqvc3kFoAZXwT0Uck1Vj\n1u0dsHzE92Xj9KANKikVldQykFTyCO9LQAUVFcXMNqm+Zwo7epqkuuWhbBEgHqV4/nQBpUUyOVJo\nw8bBlPQin0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF\nFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU\nUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR\nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA\nBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF\nFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU\nUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBnahqqWhMSLulx3\n6CufnnmuXMsrFucZ7D2rqLiwt7qVJJVJK8cHr9az9dRY7aBUUKoY4AGB0oAb4e/5ef8AgP8AWtus\nTw9/y8/8B/rW3QBzWsXTTXhiB+SPgD37mprfRPOsxI0hWRhlRjj2zVLUomi1CYN/ExYfQ810VpdR\nPYJKXUKqgNk9CKAObtZ5LK7D8jacOvqO4rrgQQCOhrjnzc3bFF5kckD6mutY+TbE9difyFAHOard\nm5u2UH93Gdqj37mrKaEzWgcyETEZC44+lZtqnm3kKn+Jxn867CgDlNPums7tSSQhO1x7V1dclqKe\nXqE6jj5s/nzXT2j+ZZwuTklBn64oAxNbuzJcfZ1PyJ973NLZ6N9otRLJIUZhlQB296zp2Mt1I3dn\nJ/WuwRQiKg6KMCgDkopJbC9z0ZGww9R3FdYjiRFdTlWAIPtXN60mzUWP95Qf6f0rZ0l9+mw5PIyP\nyNAF2iimTSeTBJJjOxS2PXAoAfRWJ/wkP/Tr/wCRP/rVqTXSRWZueq7dwHrnpQBPRWJ/wkP/AE6/\n+RP/AK1bdABVXULk2lm8i/e6L9atUjKGUqwBB6g0Acna2st/cFQfd3POKuX+ji2tzNFIWC/eDD9a\n3IbeG3DCKMIGOTiqWtXKxWZhzl5OAPQetAFLQ7plmNsxyjAlR6GtyWRYYXkbooJNc7osZfUVYdEU\nk/lj+tautPs05h/eYD+v9KAMEmXUL3k5eRvy/wD1VdvtH+y23nRyF9v3gR+opuhJuvmY/wAKEj9K\n37hPMt5U/vKR+lAGNod2RIbVj8rcp7HvW6SACT0FchZP5d9A2f4xn6V02oP5enzsP7hH58UAc5d3\nD314WGTk7UX27Vdn0QxWhkWQtIoyy44PriqulJv1KEHoCT+QrqetAHN6PdmC6ETH93Jxj0Paukrj\nXBguWA4KPx+BrsQQQCOhoAWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA\nooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi\niigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK\nKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo\nAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA\nooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi\niigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKx9\nf/1EP+8f5VsVj6//AKiH/eP8qAGeHv8Al5/4D/WtusTw9/y8/wDAf61t0AYmuXEBIh2Bphzuz932\nrKS0uJITKkLlB3Apru1xclmPzO3P4muwRFjjVFGFUYAoA5vSLiCG6AlQbm4V8/drfvP+PG4/65t/\nKua1GJYdQmRRgZyB9Rn+tdDEzXGkgnlniIPucYoA57Tv+QjB/v11lcjYttvoD/00H8666gDltX/5\nCk3/AAH/ANBFb+m/8g6D/drntTbdqU5/2sfkMV0diuywgH+wD+lAHKRczpn+8P512dca4MVwwPVW\n/ka7IHIyKAOd17/j+T/rmP5mtHRf+Qcv+8azNcbdqGP7qAf1/rWro67dNjPqSf1oAv010WSNkYZV\ngQR7U6igDndW05LXZJCCIzwRnODUEl6X0uK2ycqxz9O38/0rf1ExDT5vN+7t4Hv2/WuUGMjPTvig\nDY0vS454DNcKSGPyDOOPWt2o4DGbeMxf6vaNv0qSgAooooAhurlLWBpZOg6D1PpXKzzSXdwZH5dj\ngAfyFWNUvTd3JCn90nC+/vV/RtP2qLqUfMfuA9h60AXNNshZ2+G5kflj/SoNe/48U/66D+RrUrN1\ntd2n5/uuD/T+tAFLQP8Aj4m/3B/Ot/rXPaC2LyRfWP8AqK35W2ROx7KTQBx0P+vj/wB4fzrptX/5\nBc3/AAH/ANCFc5arvu4V9XUfrXS6mu7TZwP7ufyOaAMTRf8AkIr/ALprpq5fR226nF7gj9K6igDk\nLzi+uP8Aro3866yH/UR/7o/lXIznzLqVh/E5I/OuwRdqKvoMUALRRRQAUUUUAFFFFABRRRQAUUUU\nAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA\nUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR\nRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF\nFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU\nAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA\nUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR\nRRQAUUUUAFFFFABRRRQAUUUUANeRIkLyMFUdSTxWLrVzDPDEIpUchjnac1qX1u11ZyQoQGbGCenU\nGsX+wbr/AJ6Q/mf8KAH6JcQwef5sipnbjccZ61vKwZQykFSMgjvXPf2Ddf8APSH8z/hW9bxmK2ij\nYglECnHsKAOVvIWtrySPphsqfbtXRQ6nbSWwlaVVIHzKTyD9KL/T475Bk7ZF+62P0rHOh3YbAMZH\nruoAqXErXd48iqcyN8o/lXV28Xk28cX91QKo6fpK2jebIweXtjotaVAHJXkDWl66DgA5U+3at1NX\ntjaeazjeBzH3zU17YRXsYD/K4+647Vk/2Bcbv9bFt9ec0AUIo3vbwL1aRsk+nqa64AKAAMAcCqlj\np0dipIO+Q9WI/lVygDmNXtzBfO2Plk+Yf1rUstUtzZL50gV0GCD1OPSrl1aR3kJjkHuCOoNYzaBO\nG+SaMr6nINAFCeR729Z1UlpG+UfoK6uCIQQRxDoigVTsNKjs28xm8yXscYA+laFABTXdI0LuwVR1\nJNOqvfW7XVnJChAZsYJ6dQaAMTWL1biVYomDRpzkdzSTafs0iO4x+8zub6Hp/T86kj0GfzF8ySLZ\nn5sE5x+VbskSywtER8rLtoAxdGv0iRoJnCqPmUsfzFbisGUMpBBGQR3rnv7Buv8AnpD+Z/wregjM\nVvFGSCUQKSPYUASVR1a4+z2LbThn+Uf1q9WfqlhLfLEI3UbCchu+aAMKxjikulE7qkY5O44z7V0n\n2+0H/LxF/wB9Vjf2Ddf89IfzP+FH9g3X/PSH8z/hQBuxXMEzFYpUdgM4U5pLuD7TaSRd2HH17VQ0\nzTJrK5aSRoyChX5SfUe3tWrQByVnObO9WRgflOGHt3rY1LU4DZtHDIHeQY47Dvmn3+kpduZY28uQ\n9eODVJNAmLfvJowv+zkmgCLRbcy3vmEfLGM/j2ropEEkbI3RgQajtraO1hEUY4HUnqT61NQByHz2\nV6Mj54n/ADreuNWt1sy8UgMjD5V7g+9Pv9MjvcNnZKON2Ov1rNXQJ93zSxhfUZJoAqabbm4vo1x8\nqnc30FdXVazso7KLYnLH7zHqas0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF\nABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA\nFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU\nUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR\nRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2Q==\n",
147 "text/plain": [
147 "text/plain": [
148 "<IPython.core.display.Image object>"
148 "<IPython.core.display.Image object>"
149 ]
149 ]
150 },
150 },
151 "execution_count": 5,
151 "execution_count": 5,
152 "metadata": {
152 "metadata": {
153 "image/jpeg": {
153 "image/jpeg": {
154 "height": 100,
154 "height": 100,
155 "width": 900
155 "width": 900
156 }
156 }
157 },
157 },
158 "output_type": "execute_result"
158 "output_type": "execute_result"
159 }
159 }
160 ],
160 ],
161 "source": [
161 "source": [
162 "Image(url=\"http://placehold.it/1800x200.jpg\", embed=True, retina=True)"
162 "Image(url=\"http://placehold.it/1800x200.jpg\", embed=True, retina=True)"
163 ]
163 ]
164 },
164 },
165 {
165 {
166 "cell_type": "markdown",
166 "cell_type": "markdown",
167 "metadata": {},
167 "metadata": {},
168 "source": [
168 "source": [
169 "Overflowing IFrame:"
169 "Overflowing IFrame:"
170 ]
170 ]
171 },
171 },
172 {
172 {
173 "cell_type": "code",
173 "cell_type": "code",
174 "execution_count": null,
174 "execution_count": null,
175 "metadata": {
175 "metadata": {
176 "collapsed": false
176 "collapsed": false
177 },
177 },
178 "outputs": [
178 "outputs": [
179 {
179 {
180 "data": {
180 "data": {
181 "text/html": [
181 "text/html": [
182 "\n",
182 "\n",
183 " <iframe\n",
183 " <iframe\n",
184 " width=\"900\"\n",
184 " width=\"900\"\n",
185 " height=\"400\"\n",
185 " height=\"400\"\n",
186 " src=\"http://ipython.org\"\n",
186 " src=\"https://ipython.org\"\n",
187 " frameborder=\"0\"\n",
187 " frameborder=\"0\"\n",
188 " allowfullscreen\n",
188 " allowfullscreen\n",
189 " ></iframe>\n",
189 " ></iframe>\n",
190 " "
190 " "
191 ],
191 ],
192 "text/plain": [
192 "text/plain": [
193 "<IPython.lib.display.IFrame at 0x105239dd8>"
193 "<IPython.lib.display.IFrame at 0x105239dd8>"
194 ]
194 ]
195 },
195 },
196 "execution_count": 6,
196 "execution_count": 6,
197 "metadata": {},
197 "metadata": {},
198 "output_type": "execute_result"
198 "output_type": "execute_result"
199 }
199 }
200 ],
200 ],
201 "source": [
201 "source": [
202 "IFrame(src=\"http://ipython.org\", width=900, height=400)"
202 "IFrame(src=\"https://ipython.org\", width=900, height=400)"
203 ]
203 ]
204 },
204 },
205 {
205 {
206 "cell_type": "markdown",
206 "cell_type": "markdown",
207 "metadata": {},
207 "metadata": {},
208 "source": [
208 "source": [
209 "Overflowing table:"
209 "Overflowing table:"
210 ]
210 ]
211 },
211 },
212 {
212 {
213 "cell_type": "code",
213 "cell_type": "code",
214 "execution_count": null,
214 "execution_count": null,
215 "metadata": {
215 "metadata": {
216 "collapsed": false
216 "collapsed": false
217 },
217 },
218 "outputs": [
218 "outputs": [
219 {
219 {
220 "data": {
220 "data": {
221 "text/html": [
221 "text/html": [
222 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
222 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
223 "<table border=\"1\" class=\"dataframe\">\n",
223 "<table border=\"1\" class=\"dataframe\">\n",
224 " <thead>\n",
224 " <thead>\n",
225 " <tr style=\"text-align: right;\">\n",
225 " <tr style=\"text-align: right;\">\n",
226 " <th></th>\n",
226 " <th></th>\n",
227 " <th>0</th>\n",
227 " <th>0</th>\n",
228 " <th>1</th>\n",
228 " <th>1</th>\n",
229 " <th>2</th>\n",
229 " <th>2</th>\n",
230 " <th>3</th>\n",
230 " <th>3</th>\n",
231 " <th>4</th>\n",
231 " <th>4</th>\n",
232 " <th>5</th>\n",
232 " <th>5</th>\n",
233 " <th>6</th>\n",
233 " <th>6</th>\n",
234 " <th>7</th>\n",
234 " <th>7</th>\n",
235 " <th>8</th>\n",
235 " <th>8</th>\n",
236 " <th>9</th>\n",
236 " <th>9</th>\n",
237 " <th>10</th>\n",
237 " <th>10</th>\n",
238 " <th>11</th>\n",
238 " <th>11</th>\n",
239 " <th>12</th>\n",
239 " <th>12</th>\n",
240 " <th>13</th>\n",
240 " <th>13</th>\n",
241 " <th>14</th>\n",
241 " <th>14</th>\n",
242 " </tr>\n",
242 " </tr>\n",
243 " </thead>\n",
243 " </thead>\n",
244 " <tbody>\n",
244 " <tbody>\n",
245 " <tr>\n",
245 " <tr>\n",
246 " <th>0</th>\n",
246 " <th>0</th>\n",
247 " <td> column</td>\n",
247 " <td> column</td>\n",
248 " <td> column</td>\n",
248 " <td> column</td>\n",
249 " <td> column</td>\n",
249 " <td> column</td>\n",
250 " <td> column</td>\n",
250 " <td> column</td>\n",
251 " <td> column</td>\n",
251 " <td> column</td>\n",
252 " <td> column</td>\n",
252 " <td> column</td>\n",
253 " <td> column</td>\n",
253 " <td> column</td>\n",
254 " <td> column</td>\n",
254 " <td> column</td>\n",
255 " <td> column</td>\n",
255 " <td> column</td>\n",
256 " <td> column</td>\n",
256 " <td> column</td>\n",
257 " <td> column</td>\n",
257 " <td> column</td>\n",
258 " <td> column</td>\n",
258 " <td> column</td>\n",
259 " <td> column</td>\n",
259 " <td> column</td>\n",
260 " <td> column</td>\n",
260 " <td> column</td>\n",
261 " <td> column</td>\n",
261 " <td> column</td>\n",
262 " </tr>\n",
262 " </tr>\n",
263 " </tbody>\n",
263 " </tbody>\n",
264 "</table>\n",
264 "</table>\n",
265 "</div>"
265 "</div>"
266 ],
266 ],
267 "text/plain": [
267 "text/plain": [
268 " 0 1 2 3 4 5 6 7 8 \\\n",
268 " 0 1 2 3 4 5 6 7 8 \\\n",
269 "0 column column column column column column column column column \n",
269 "0 column column column column column column column column column \n",
270 "\n",
270 "\n",
271 " 9 10 11 12 13 14 \n",
271 " 9 10 11 12 13 14 \n",
272 "0 column column column column column column "
272 "0 column column column column column column "
273 ]
273 ]
274 },
274 },
275 "execution_count": 7,
275 "execution_count": 7,
276 "metadata": {},
276 "metadata": {},
277 "output_type": "execute_result"
277 "output_type": "execute_result"
278 }
278 }
279 ],
279 ],
280 "source": [
280 "source": [
281 "import pandas as pd\n",
281 "import pandas as pd\n",
282 "pd.DataFrame([['column'] * 15])"
282 "pd.DataFrame([['column'] * 15])"
283 ]
283 ]
284 }
284 }
285 ],
285 ],
286 "metadata": {
286 "metadata": {
287 "kernelspec": {
287 "kernelspec": {
288 "display_name": "Python 3",
288 "display_name": "Python 3",
289 "language": "python",
289 "language": "python",
290 "name": "python3"
290 "name": "python3"
291 },
291 },
292 "language_info": {
292 "language_info": {
293 "codemirror_mode": {
293 "codemirror_mode": {
294 "name": "ipython",
294 "name": "ipython",
295 "version": 3
295 "version": 3
296 },
296 },
297 "file_extension": ".py",
297 "file_extension": ".py",
298 "mimetype": "text/x-python",
298 "mimetype": "text/x-python",
299 "name": "python",
299 "name": "python",
300 "nbconvert_exporter": "python",
300 "nbconvert_exporter": "python",
301 "pygments_lexer": "ipython3",
301 "pygments_lexer": "ipython3",
302 "version": "3.4.3"
302 "version": "3.4.3"
303 }
303 }
304 },
304 },
305 "nbformat": 4,
305 "nbformat": 4,
306 "nbformat_minor": 0
306 "nbformat_minor": 0
307 }
307 }
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now