Inheritance diagram for IPython.core.history:
History related magics and functionality
Bases: IPython.config.configurable.Configurable
Access the history database without adding to it.
This is intended for use by standalone history tools. IPython shells use HistoryManager, below, which is a subclass of this.
Create a new history accessor.
Parameters : | profile : str
hist_file : str
config : :
|
---|
Get the config class config section
Get the help string for this class in ReST format.
If inst is given, it’s current trait values will be used in place of class defaults.
Get the help string for a single trait.
If inst is given, it’s current trait values will be used in place of the class default.
Get the help string for a single trait and print it.
Get a list of all the names of this classes traits.
This method is just like the trait_names() method, but is unbound.
Get a list of all the traits of this class.
This method is just like the traits() method, but is unbound.
The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Retrieve input by session.
Parameters : | session : int
start : int
stop : int
raw : bool
output : bool
|
---|---|
Returns : | An iterator over the desired lines. Each line is a 3-tuple, either : (session, line, input) if output is False, or : (session, line, (input, output)) if output is True. : |
Get lines of history from a string of ranges, as used by magic commands %hist, %save, %macro, etc.
Parameters : | rangestr : str
raw, output : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
get info about a session
Parameters : | session : int
|
---|---|
Returns : | (session_id [int], start [datetime], end [datetime], num_cmds [int], remark [unicode]) : Sessions that are running or did not exit cleanly will have `end=None` : and `num_cmds=None`. : |
Get the last n lines from the history database.
Parameters : | n : int
raw, output : bool
include_latest : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
A trait for unicode strings.
Connect to the database, and create tables if necessary.
Setup a handler to be called when a trait changes.
This is used to setup dynamic notifications of trait changes.
Static handlers can be created by creating methods on a HasTraits subclass with the naming convention ‘_[traitname]_changed’. Thus, to create static handler for the trait ‘a’, create the method _a_changed(self, name, old, new) (fewer arguments can be used, see below).
Parameters : | handler : callable
name : list, str, None
remove : bool
|
---|
Search the database using unix glob-style matching (wildcards * and ?).
Parameters : | pattern : str
search_raw : bool
raw, output : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
Get metadata values for trait by key.
Get a list of all the names of this classes traits.
Get a list of all the traits of this class.
The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.
Fire the traits events when the config is updated.
Overridden by HistoryManager to dump the cache before certain database lookups.
Bases: IPython.core.history.HistoryAccessor
A class to organize all history-related functionality in one place.
Create a new history manager associated with a shell instance.
Get the config class config section
Get the help string for this class in ReST format.
If inst is given, it’s current trait values will be used in place of class defaults.
Get the help string for a single trait.
If inst is given, it’s current trait values will be used in place of the class default.
Get the help string for a single trait and print it.
Get a list of all the names of this classes traits.
This method is just like the trait_names() method, but is unbound.
Get a list of all the traits of this class.
This method is just like the traits() method, but is unbound.
The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
An integer trait.
Longs that are unnecessary (<= sys.maxint) are cast to ints.
An instance of a Python list.
A boolean (True, False) trait.
An instance of a Python list.
An instance of a Python list.
Close the database session, filling in the end time and line count.
Retrieve input by session.
Parameters : | session : int
start : int
stop : int
raw : bool
output : bool
|
---|---|
Returns : | An iterator over the desired lines. Each line is a 3-tuple, either : (session, line, input) if output is False, or : (session, line, (input, output)) if output is True. : |
Get lines of history from a string of ranges, as used by magic commands %hist, %save, %macro, etc.
Parameters : | rangestr : str
raw, output : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
get info about a session
Parameters : | session : int
|
---|---|
Returns : | (session_id [int], start [datetime], end [datetime], num_cmds [int], remark [unicode]) : Sessions that are running or did not exit cleanly will have `end=None` : and `num_cmds=None`. : |
Get the last n lines from the history database.
Parameters : | n : int
raw, output : bool
include_latest : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
A trait for unicode strings.
Connect to the database, and create tables if necessary.
An instance of a Python list.
An instance of a Python list.
Give the current session a name in the history database.
Get a new session number.
Setup a handler to be called when a trait changes.
This is used to setup dynamic notifications of trait changes.
Static handlers can be created by creating methods on a HasTraits subclass with the naming convention ‘_[traitname]_changed’. Thus, to create static handler for the trait ‘a’, create the method _a_changed(self, name, old, new) (fewer arguments can be used, see below).
Parameters : | handler : callable
name : list, str, None
remove : bool
|
---|
An instance of a Python dict.
An instance of a Python dict.
Clear the session history, releasing all object references, and optionally open a new session.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Search the database using unix glob-style matching (wildcards * and ?).
Parameters : | pattern : str
search_raw : bool
raw, output : bool
|
---|---|
Returns : | Tuples as :meth:`get_range` : |
An integer trait.
Longs that are unnecessary (<= sys.maxint) are cast to ints.
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Store source and raw input in history and create input cache variables _i*.
Parameters : | line_num : int
source : str
source_raw : str, optional
|
---|
If database output logging is enabled, this saves all the outputs from the indicated prompt number to the database. It’s called by run_cell after code has been executed.
Parameters : | line_num : int
|
---|
Get metadata values for trait by key.
Get a list of all the names of this classes traits.
Get a list of all the traits of this class.
The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
This follows the same algorithm as traits does and does not allow for any simple way of specifying merely that a metadata name exists, but has any value. This is because get_metadata returns None if a metadata key doesn’t exist.
Fire the traits events when the config is updated.
Write any entries in the cache to the database.
Bases: threading.Thread
This thread takes care of writing history to the database, so that the UI isn’t held up while that happens.
It waits for the HistoryManager’s save_flag to be set, then writes out the history cache. The main thread is responsible for setting the flag when the cache size reaches a defined threshold.
This can be called from the main thread to safely stop this thread.
Note that it does not attempt to write out remaining history before exiting. That should be done by calling the HistoryManager’s end_session method.
Turn a string of history ranges into 3-tuples of (session, start, stop).
Examples
list(extract_input_ranges(“~8/5-~7/4 2”)) [(-8, 5, None), (-7, 1, 4), (0, 2, 3)]
Print input history (_i<n> variables), with most recent last.
%history -> print at most 40 inputs (some may be multi-line)%history n -> print at most n inputs%history n1 n2 -> print inputs between n1 and n2 (n2 not included)
By default, input history is printed without line numbers so it can be directly pasted into an editor. Use -n to show them.
Ranges of history can be indicated using the syntax: 4 : Line 4, current session 4-6 : Lines 4-6, current session 243/1-5: Lines 1-5, session 243 ~2/7 : Line 7, session 2 before current ~8/1-~6/5 : From the first line of 8 sessions ago, to the fifth line
of 6 sessions ago.
Multiple ranges can be entered, separated by spaces
The same syntax is used by %macro, %save, %edit, %rerun
Options:
-n: print line numbers for each input. This feature is only available if numbered prompts are in use.
-o: also print outputs for each input.
- -p: print classic ‘>>>’ python prompts before each input. This is useful
- for making documentation, and in conjunction with -o, for producing doctest-ready output.
-r: (default) print the ‘raw’ history, i.e. the actual commands you typed.
-t: print the ‘translated’ history, as IPython understands it. IPython filters your input and converts it all into valid Python source before executing it (things like magics or aliases are turned into function calls, for example). With this option, you’ll see the native history instead of the user-entered version: ‘%cd /’ will be seen as ‘get_ipython().magic(“%cd /”)’ instead of ‘%cd /’.
-g: treat the arg as a pattern to grep for in (full) history. This includes the saved history (almost all commands ever written). Use ‘%hist -g’ to show full saved history (may be very long).
-l: get the last n lines from all sessions. Specify n as a single arg, or the default is the last 10 lines.
- -f FILENAME: instead of printing the output to the screen, redirect it to
- the given file. The file is always overwritten, though IPython asks for confirmation first if it already exists.
Examples
In [6]: %hist -n 4 6
4:a = 12
5:print a**2
Repeat a command, or get command to input line for editing.
%recall and %rep are equivalent.
Place a string version of last computation result (stored in the special ‘_’ variable) to the next input prompt. Allows you to create elaborate command lines without using copy-paste:
In[1]: l = ["hei", "vaan"]
In[2]: "".join(l)
Out[2]: heivaan
In[3]: %rep
In[4]: heivaan_ <== cursor blinking
%recall 45
Place history line 45 on the next input prompt. Use %hist to find out the number.
%recall 1-4
Combine the specified lines into one cell, and place it on the next input prompt. See %history for the slice syntax.
%recall foo+bar
If foo+bar can be evaluated in the user namespace, the result is placed at the next input prompt. Otherwise, the history is searched for lines which contain that substring, and the most recent one is placed at the next input prompt.
Re-run previous input
By default, you can specify ranges of input history to be repeated (as with %history). With no arguments, it will repeat the last line.
Options:
-l <n> : Repeat the last n lines of input, not including the current command.
-g foo : Repeat the most recent line which contains foo
return an empty list in the absence of sqlite