Show More
@@ -261,27 +261,36 b' class HistoryAccessor(Configurable):' | |||||
261 | ---------- |
|
261 | ---------- | |
262 |
|
262 | |||
263 | session : int |
|
263 | session : int | |
264 |
Session number to retrieve. |
|
264 | Session number to retrieve. | |
265 | numbers count back from current session, so -1 is previous session. |
|
|||
266 |
|
265 | |||
267 | Returns |
|
266 | Returns | |
268 | ------- |
|
267 | ------- | |
269 |
|
268 | |||
270 | (session_id [int], start [datetime], end [datetime], num_cmds [int], |
|
269 | session_id : int | |
271 | remark [unicode]) |
|
270 | Session ID number | |
272 |
|
271 | start : datetime | ||
273 | Sessions that are running or did not exit cleanly will have `end=None` |
|
272 | Timestamp for the start of the session. | |
274 | and `num_cmds=None`. |
|
273 | end : datetime | |
275 |
|
274 | Timestamp for the end of the session, or None if IPython crashed. | ||
|
275 | num_cmds : int | |||
|
276 | Number of commands run, or None if IPython crashed. | |||
|
277 | remark : unicode | |||
|
278 | A manually set description. | |||
276 | """ |
|
279 | """ | |
277 |
|
||||
278 | if session <= 0: |
|
|||
279 | session += self.session_number |
|
|||
280 |
|
||||
281 | query = "SELECT * from sessions where session == ?" |
|
280 | query = "SELECT * from sessions where session == ?" | |
282 | return self.db.execute(query, (session,)).fetchone() |
|
281 | return self.db.execute(query, (session,)).fetchone() | |
283 |
|
282 | |||
284 | @catch_corrupt_db |
|
283 | @catch_corrupt_db | |
|
284 | def get_last_session_id(self): | |||
|
285 | """Get the last session ID currently in the database. | |||
|
286 | ||||
|
287 | Within IPython, this should be the same as the value stored in | |||
|
288 | :attr:`HistoryManager.session_number`. | |||
|
289 | """ | |||
|
290 | for record in self.get_tail(n=1, include_latest=True): | |||
|
291 | return record[0] | |||
|
292 | ||||
|
293 | @catch_corrupt_db | |||
285 | def get_tail(self, n=10, raw=True, output=False, include_latest=False): |
|
294 | def get_tail(self, n=10, raw=True, output=False, include_latest=False): | |
286 | """Get the last n lines from the history database. |
|
295 | """Get the last n lines from the history database. | |
287 |
|
296 | |||
@@ -535,6 +544,35 b' class HistoryManager(HistoryAccessor):' | |||||
535 | # ------------------------------ |
|
544 | # ------------------------------ | |
536 | # Methods for retrieving history |
|
545 | # Methods for retrieving history | |
537 | # ------------------------------ |
|
546 | # ------------------------------ | |
|
547 | def get_session_info(self, session=0): | |||
|
548 | """get info about a session | |||
|
549 | ||||
|
550 | Parameters | |||
|
551 | ---------- | |||
|
552 | ||||
|
553 | session : int | |||
|
554 | Session number to retrieve. The current session is 0, and negative | |||
|
555 | numbers count back from current session, so -1 is previous session. | |||
|
556 | ||||
|
557 | Returns | |||
|
558 | ------- | |||
|
559 | ||||
|
560 | session_id : int | |||
|
561 | Session ID number | |||
|
562 | start : datetime | |||
|
563 | Timestamp for the start of the session. | |||
|
564 | end : datetime | |||
|
565 | Timestamp for the end of the session, or None if IPython crashed. | |||
|
566 | num_cmds : int | |||
|
567 | Number of commands run, or None if IPython crashed. | |||
|
568 | remark : unicode | |||
|
569 | A manually set description. | |||
|
570 | """ | |||
|
571 | if session <= 0: | |||
|
572 | session += self.session_number | |||
|
573 | ||||
|
574 | return super(HistoryManager, self).get_session_info(session=session) | |||
|
575 | ||||
538 | def _get_range_session(self, start=1, stop=None, raw=True, output=False): |
|
576 | def _get_range_session(self, start=1, stop=None, raw=True, output=False): | |
539 | """Get input and output history from the current session. Called by |
|
577 | """Get input and output history from the current session. Called by | |
540 | get_range, and takes similar parameters.""" |
|
578 | get_range, and takes similar parameters.""" |
General Comments 0
You need to be logged in to leave comments.
Login now