##// END OF EJS Templates
Merge pull request #4712 from takluyver/docs-shotgun-3...
Min RK -
r13973:1faf2f6e merge
parent child Browse files
Show More
@@ -1,58 +1,24
1 """Analysis of text input into executable blocks.
1 """Input handling and transformation machinery.
2 2
3 The main class in this module, :class:`InputSplitter`, is designed to break
4 input from either interactive, line-by-line environments or block-based ones,
5 into standalone blocks that can be executed by Python as 'single' statements
6 (thus triggering sys.displayhook).
3 The first class in this module, :class:`InputSplitter`, is designed to tell when
4 input from a line-oriented frontend is complete and should be executed, and when
5 the user should be prompted for another line of code instead. The name 'input
6 splitter' is largely for historical reasons.
7 7
8 8 A companion, :class:`IPythonInputSplitter`, provides the same functionality but
9 9 with full support for the extended IPython syntax (magics, system calls, etc).
10 The code to actually do these transformations is in :mod:`IPython.core.inputtransformer`.
11 :class:`IPythonInputSplitter` feeds the raw code to the transformers in order
12 and stores the results.
10 13
11 For more details, see the class docstring below.
12
13 Syntax Transformations
14 ----------------------
15
16 One of the main jobs of the code in this file is to apply all syntax
17 transformations that make up 'the IPython language', i.e. magics, shell
18 escapes, etc. All transformations should be implemented as *fully stateless*
19 entities, that simply take one line as their input and return a line.
20 Internally for implementation purposes they may be a normal function or a
21 callable object, but the only input they receive will be a single line and they
22 should only return a line, without holding any data-dependent state between
23 calls.
24
25 As an example, the EscapedTransformer is a class so we can more clearly group
26 together the functionality of dispatching to individual functions based on the
27 starting escape character, but the only method for public use is its call
28 method.
29
30
31 ToDo
32 ----
33
34 - Should we make push() actually raise an exception once push_accepts_more()
35 returns False?
36
37 - Naming cleanups. The tr_* names aren't the most elegant, though now they are
38 at least just attributes of a class so not really very exposed.
39
40 - Think about the best way to support dynamic things: automagic, autocall,
41 macros, etc.
42
43 - Think of a better heuristic for the application of the transforms in
44 IPythonInputSplitter.push() than looking at the buffer ending in ':'. Idea:
45 track indentation change events (indent, dedent, nothing) and apply them only
46 if the indentation went up, but not otherwise.
47
48 - Think of the cleanest way for supporting user-specified transformations (the
49 user prefilters we had before).
14 For more details, see the class docstrings below.
50 15
51 16 Authors
52 17 -------
53 18
54 19 * Fernando Perez
55 20 * Brian Granger
21 * Thomas Kluyver
56 22 """
57 23 #-----------------------------------------------------------------------------
58 24 # Copyright (C) 2010 The IPython Development Team
@@ -598,9 +564,9 class IPythonInputSplitter(InputSplitter):
598 564 -------
599 565 is_complete : boolean
600 566 True if the current input source (the result of the current input
601 plus prior inputs) forms a complete Python execution block. Note that
602 this value is also stored as a private attribute (_is_complete), so it
603 can be queried at any time.
567 plus prior inputs) forms a complete Python execution block. Note that
568 this value is also stored as a private attribute (_is_complete), so it
569 can be queried at any time.
604 570 """
605 571
606 572 # We must ensure all input is pure unicode
@@ -1,3 +1,8
1 """Input transformer classes to support IPython special syntax.
2
3 This includes the machinery to recognise and transform ``%magic`` commands,
4 ``!system`` commands, ``help?`` querying, prompt stripping, and so forth.
5 """
1 6 import abc
2 7 import functools
3 8 import re
@@ -1,6 +1,6
1 1 # -*- coding: utf-8 -*-
2 2 """
3 ultratb.py -- Spice up your tracebacks!
3 Verbose and colourful traceback formatting.
4 4
5 5 **ColorTB**
6 6
@@ -1,4 +1,4
1 """Publishing
1 """Publishing native (typically pickled) objects.
2 2 """
3 3
4 4 #-----------------------------------------------------------------------------
@@ -1,3 +1,5
1 """Replacements for sys.displayhook that publish over ZMQ.
2 """
1 3 import sys
2 4
3 5 from IPython.core.displayhook import DisplayHook
@@ -1,4 +1,4
1 """some generic utilities for dealing with classes, urls, and serialization
1 """Some generic utilities for dealing with classes, urls, and serialization.
2 2
3 3 Authors:
4 4
@@ -1,4 +1,4
1 """a navigable completer for the qtconsole"""
1 """A navigable completer for the qtconsole"""
2 2 # coding : utf-8
3 3 #-----------------------------------------------------------------------------
4 4 # Copyright (c) 2012, IPython Development Team.$
@@ -1,4 +1,4
1 """a simple completer for the qtconsole"""
1 """A simple completer for the qtconsole"""
2 2 #-----------------------------------------------------------------------------
3 3 # Copyright (c) 2012, IPython Development Team.$
4 4 #
@@ -1,3 +1,4
1 """A dropdown completer widget for the qtconsole."""
1 2 # System library imports
2 3 from IPython.external.qt import QtCore, QtGui
3 4
@@ -1,5 +1,6
1 """ A FrontendWidget that emulates the interface of the console IPython and
2 supports the additional functionality provided by the IPython kernel.
1 """A FrontendWidget that emulates the interface of the console IPython.
2
3 This supports the additional functionality provided by the IPython kernel.
3 4 """
4 5
5 6 #-----------------------------------------------------------------------------
@@ -1,3 +1,5
1 """Adapt readline completer interface to make ZMQ request.
2 """
1 3 # -*- coding: utf-8 -*-
2 4 import readline
3 5 try:
@@ -310,7 +310,8 def list_strings(arg):
310 310 """Always return a list of strings, given a string or list of strings
311 311 as input.
312 312
313 :Examples:
313 Examples
314 --------
314 315 ::
315 316
316 317 In [7]: list_strings('A single string')
@@ -330,7 +331,8 def list_strings(arg):
330 331 def marquee(txt='',width=78,mark='*'):
331 332 """Return the input string centered in a 'marquee'.
332 333
333 :Examples:
334 Examples
335 --------
334 336 ::
335 337
336 338 In [16]: marquee('A test',40)
@@ -1,4 +1,4
1 """utilities for checking zmq versions"""
1 """Utilities for checking zmq versions."""
2 2 #-----------------------------------------------------------------------------
3 3 # Copyright (C) 2013 The IPython Development Team
4 4 #
@@ -30,7 +30,7 if __name__ == '__main__':
30 30 r'\.ipdoctest',
31 31 r'\.testing\.plugin',
32 32 # This just prints a deprecation msg:
33 r'\.frontend',
33 r'\.frontend$',
34 34 ]
35 35
36 36 # We're rarely working on machines with the Azure SDK installed, so we
@@ -41,7 +41,10 attributes :attr:`~IPython.core.interactiveshell.InteractiveShell.input_splitter
41 41 to tell when a block of input is complete, and
42 42 :attr:`~IPython.core.interactiveshell.InteractiveShell.input_transformer_manager`,
43 43 to transform complete cells. If you add a transformer, you should make sure that
44 it gets added to both.
44 it gets added to both, e.g.::
45
46 ip.input_splitter.logical_line_transforms.append(my_transformer())
47 ip.input_transformer_manager.logical_line_transforms.append(my_transformer())
45 48
46 49 Stateless transformations
47 50 -------------------------
@@ -97,7 +97,7 When both Python and JSON configuration file are present, both will be loaded,
97 97 with JSON configuration having higher priority.
98 98
99 99 Python configuration Files
100 ~~~~~~~~~~~~~~~~~~~~~~~~~~
100 --------------------------
101 101
102 102 A Python configuration file is a pure Python file that populates a configuration object.
103 103 This configuration object is a :class:`~IPython.config.loader.Config` instance.
@@ -187,7 +187,7 attribute of ``c`` is not the actual class, but instead is another
187 187 hierarchical information created easily (``c.Foo.Bar.value``) on the fly.
188 188
189 189 JSON configuration Files
190 ~~~~~~~~~~~~~~~~~~~~~~~~
190 ------------------------
191 191
192 192 A JSON configuration file is simply a file that contains a
193 193 :class:`~IPython.config.loader.Config` dictionary serialized to JSON.
@@ -198,7 +198,8 read on for more details.
198 198 readline
199 199 --------
200 200
201 As indicated above, on Windows, PyReadline is a *mandatory* dependency.
201 As indicated above, on Windows, to get full functionality in the console
202 version of IPython, PyReadline is needed.
202 203 PyReadline is a separate, Windows only implementation of readline that uses
203 204 native Windows calls through :mod:`ctypes`. The easiest way of installing
204 205 PyReadline is you use the binary installer available `here
General Comments 0
You need to be logged in to leave comments. Login now