Module: core.history
History related magics and functionality
4 Classes
-
class IPython.core.history.HistoryAccessorBase(**kwargs)
Bases: traitlets.config.configurable.Configurable
An abstract class for History Accessors
-
class IPython.core.history.HistoryAccessor(profile='default', hist_file=u'', **traits)
Bases: IPython.core.history.HistoryAccessorBase
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.
-
__init__(profile='default', hist_file=u'', **traits)
Create a new history accessor.
| Parameters: | profile : str
The name of the profile from which to open history.
hist_file : str
Path to an SQLite history database stored by IPython. If specified,
hist_file overrides profile.
config : Config
Config object. hist_file can also be set through this.
|
-
get_last_session_id()
Get the last session ID currently in the database.
Within IPython, this should be the same as the value stored in
HistoryManager.session_number.
-
get_range(session, start=1, stop=None, raw=True, output=False)
Retrieve input by session.
| Parameters: | session : int
Session number to retrieve.
start : int
stop : int
End of line range (excluded from output itself). If None, retrieve
to the end of the session.
raw : bool
If True, return untranslated input
output : bool
If True, attempt to include output. This will be ‘real’ Python
objects for the current session, or text reprs from previous
sessions if db_log_output was enabled at the time. Where no output
is found, None is used.
|
| Returns: | entries
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_range_by_str(rangestr, raw=True, output=False)
Get lines of history from a string of ranges, as used by magic
commands %hist, %save, %macro, etc.
| Parameters: | rangestr : str
A string specifying ranges, e.g. “5 ~2/1-4”. See
magic_history() for full details.
raw, output : bool
|
| Returns: | Tuples as get_range()
|
-
get_session_info(session)
Get info about a session.
| Parameters: | session : int
Session number to retrieve.
|
| Returns: | session_id : int
start : datetime
Timestamp for the start of the session.
end : datetime
Timestamp for the end of the session, or None if IPython crashed.
num_cmds : int
Number of commands run, or None if IPython crashed.
remark : unicode
A manually set description.
|
-
get_tail(n=10, raw=True, output=False, include_latest=False)
Get the last n lines from the history database.
| Parameters: | n : int
The number of lines to get
raw, output : bool
include_latest : bool
If False (default), n+1 lines are fetched, and the latest one
is discarded. This is intended to be used where the function
is called by a user command, which it should not return.
|
| Returns: | Tuples as get_range()
|
-
init_db()
Connect to the database, and create tables if necessary.
-
search(pattern='*', raw=True, search_raw=True, output=False, n=None, unique=False)
Search the database using unix glob-style matching (wildcards
* and ?).
| Parameters: | pattern : str
The wildcarded pattern to match when searching
search_raw : bool
If True, search the raw input, otherwise, the parsed input
raw, output : bool
n : None or int
If an integer is given, it defines the limit of
returned entries.
unique : bool
When it is true, return only unique entries.
|
| Returns: | Tuples as get_range()
|
-
writeout_cache()
Overridden by HistoryManager to dump the cache before certain
database lookups.
-
class IPython.core.history.HistoryManager(shell=None, config=None, **traits)
Bases: IPython.core.history.HistoryAccessor
A class to organize all history-related functionality in one place.
-
__init__(shell=None, config=None, **traits)
Create a new history manager associated with a shell instance.
-
end_session()
Close the database session, filling in the end time and line count.
-
get_range(session=0, start=1, stop=None, raw=True, output=False)
Retrieve input by session.
| Parameters: | session : int
Session number to retrieve. The current session is 0, and negative
numbers count back from current session, so -1 is previous session.
start : int
stop : int
End of line range (excluded from output itself). If None, retrieve
to the end of the session.
raw : bool
If True, return untranslated input
output : bool
If True, attempt to include output. This will be ‘real’ Python
objects for the current session, or text reprs from previous
sessions if db_log_output was enabled at the time. Where no output
is found, None is used.
|
| Returns: | entries
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_session_info(session=0)
Get info about a session.
| Parameters: | session : int
Session number to retrieve. The current session is 0, and negative
numbers count back from current session, so -1 is the previous session.
|
| Returns: | session_id : int
start : datetime
Timestamp for the start of the session.
end : datetime
Timestamp for the end of the session, or None if IPython crashed.
num_cmds : int
Number of commands run, or None if IPython crashed.
remark : unicode
A manually set description.
|
-
name_session(name)
Give the current session a name in the history database.
-
new_session(conn=None)
Get a new session number.
-
reset(new_session=True)
Clear the session history, releasing all object references, and
optionally open a new session.
-
store_inputs(line_num, source, source_raw=None)
Store source and raw input in history and create input cache
variables _i*.
| Parameters: | line_num : int
The prompt number of this input.
source : str
source_raw : str, optional
If given, this is the raw input without any IPython transformations
applied to it. If not given, source is used.
|
-
store_output(line_num)
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
The line number from which to save outputs
|
-
writeout_cache(conn=None)
Write any entries in the cache to the database.
-
class IPython.core.history.HistorySavingThread(history_manager)
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.
-
__init__(history_manager)
-
stop()
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.
3 Functions
-
IPython.core.history.needs_sqlite(func)
Decorator: return an empty list in the absence of sqlite.
-
IPython.core.history.catch_corrupt_db(func)
A decorator which wraps HistoryAccessor method calls to catch errors from
a corrupt SQLite database, move the old database out of the way, and create
a new one.
Turn a string of history ranges into 3-tuples of (session, start, stop).
Examples
>>> list(extract_hist_ranges("~8/5-~7/4 2"))
[(-8, 5, None), (-7, 1, 5), (0, 2, 3)]