Show More
@@ -1,7 +1,7 b'' | |||
|
1 | 1 | # -*- coding: utf-8 -*- |
|
2 | 2 | """Release data for the IPython project. |
|
3 | 3 | |
|
4 |
$Id: Release.py 2 |
|
|
4 | $Id: Release.py 2602 2007-08-12 22:45:38Z fperez $""" | |
|
5 | 5 | |
|
6 | 6 | #***************************************************************************** |
|
7 | 7 | # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu> |
@@ -22,7 +22,7 b" name = 'ipython'" | |||
|
22 | 22 | # because bdist_rpm does not accept dashes (an RPM) convention, and |
|
23 | 23 | # bdist_deb does not accept underscores (a Debian convention). |
|
24 | 24 | |
|
25 |
revision = '2 |
|
|
25 | revision = '2601' | |
|
26 | 26 | |
|
27 | 27 | version = '0.8.2.svn.r' + revision.rstrip('M') |
|
28 | 28 |
@@ -5,7 +5,7 b' General purpose utilities.' | |||
|
5 | 5 | This is a grab-bag of stuff I find useful in most programs I write. Some of |
|
6 | 6 | these things are also convenient when working at the command line. |
|
7 | 7 | |
|
8 |
$Id: genutils.py 2 |
|
|
8 | $Id: genutils.py 2602 2007-08-12 22:45:38Z fperez $""" | |
|
9 | 9 | |
|
10 | 10 | #***************************************************************************** |
|
11 | 11 | # Copyright (C) 2001-2006 Fernando Perez. <fperez@colorado.edu> |
@@ -799,6 +799,30 b' def flag_calls(func):' | |||
|
799 | 799 | return wrapper |
|
800 | 800 | |
|
801 | 801 | #---------------------------------------------------------------------------- |
|
802 | def dhook_wrap(func,*a,**k): | |
|
803 | """Wrap a function call in a sys.displayhook controller. | |
|
804 | ||
|
805 | Returns a wrapper around func which calls func, with all its arguments and | |
|
806 | keywords unmodified, using the default sys.displayhook. Since IPython | |
|
807 | modifies sys.displayhook, it breaks the behavior of certain systems that | |
|
808 | rely on the default behavior, notably doctest. | |
|
809 | """ | |
|
810 | ||
|
811 | def f(*a,**k): | |
|
812 | ||
|
813 | dhook_s = sys.displayhook | |
|
814 | sys.displayhook = sys.__displayhook__ | |
|
815 | try: | |
|
816 | out = func(*a,**k) | |
|
817 | finally: | |
|
818 | sys.displayhook = dhook_s | |
|
819 | ||
|
820 | return out | |
|
821 | ||
|
822 | f.__doc__ = func.__doc__ | |
|
823 | return f | |
|
824 | ||
|
825 | #---------------------------------------------------------------------------- | |
|
802 | 826 | class HomeDirError(Error): |
|
803 | 827 | pass |
|
804 | 828 |
@@ -6,7 +6,7 b' Requires Python 2.3 or newer.' | |||
|
6 | 6 | |
|
7 | 7 | This file contains all the classes and helper functions specific to IPython. |
|
8 | 8 | |
|
9 |
$Id: iplib.py 2 |
|
|
9 | $Id: iplib.py 2602 2007-08-12 22:45:38Z fperez $ | |
|
10 | 10 | """ |
|
11 | 11 | |
|
12 | 12 | #***************************************************************************** |
@@ -41,6 +41,7 b' import StringIO' | |||
|
41 | 41 | import bdb |
|
42 | 42 | import cPickle as pickle |
|
43 | 43 | import codeop |
|
44 | import doctest | |
|
44 | 45 | import exceptions |
|
45 | 46 | import glob |
|
46 | 47 | import inspect |
@@ -677,7 +678,15 b' class InteractiveShell(object,Magic):' | |||
|
677 | 678 | # overwrite it. |
|
678 | 679 | self.sys_displayhook = sys.displayhook |
|
679 | 680 | sys.displayhook = self.outputcache |
|
680 | ||
|
681 | ||
|
682 | # Monkeypatch doctest so that its core test runner method is protected | |
|
683 | # from IPython's modified displayhook. Doctest expects the default | |
|
684 | # displayhook behavior deep down, so our modification breaks it | |
|
685 | # completely. For this reason, a hard monkeypatch seems like a | |
|
686 | # reasonable solution rather than asking users to manually use a | |
|
687 | # different doctest runner when under IPython. | |
|
688 | doctest.DocTestRunner.run = dhook_wrap(doctest.DocTestRunner.run) | |
|
689 | ||
|
681 | 690 | # Set user colors (don't do it in the constructor above so that it |
|
682 | 691 | # doesn't crash if colors option is invalid) |
|
683 | 692 | self.magic_colors(rc.colors) |
@@ -1,3 +1,9 b'' | |||
|
1 | 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu> | |
|
2 | ||
|
3 | * IPython/iplib.py (InteractiveShell.post_config_initialization): | |
|
4 | fix problems with doctests failing when run inside IPython due to | |
|
5 | IPython's modifications of sys.displayhook. | |
|
6 | ||
|
1 | 7 | 2007-8-9 Fernando Perez <fperez@planck.colorado.edu> |
|
2 | 8 | |
|
3 | 9 | * IPython/ipapi.py (to_user_ns): update to accept a dict as well as |
@@ -509,6 +509,21 b' profile' | |||
|
509 | 509 | ') convenient for rapid interactive work. |
|
510 | 510 | \end_layout |
|
511 | 511 | |
|
512 | \begin_layout Itemize | |
|
513 | Doctest support. | |
|
514 | The special | |
|
515 | \family typewriter | |
|
516 | %doctest_mode | |
|
517 | \family default | |
|
518 | command toggles a mode that allows you to paste existing doctests (with | |
|
519 | leading ` | |
|
520 | \family typewriter | |
|
521 | >>> | |
|
522 | \family default | |
|
523 | ' prompts and whitespace) and uses doctest-compatible prompts and output, | |
|
524 | so you can use IPython sessions as doctest code. | |
|
525 | \end_layout | |
|
526 | ||
|
512 | 527 | \begin_layout Subsection |
|
513 | 528 | Portability and Python requirements |
|
514 | 529 | \end_layout |
@@ -2646,6 +2661,31 b' Use the IPython.demo.Demo class to load any Python script as an interactive' | |||
|
2646 | 2661 | for more. |
|
2647 | 2662 | \end_layout |
|
2648 | 2663 | |
|
2664 | \begin_layout Itemize | |
|
2665 | Run your doctests from within IPython for development and debugging. | |
|
2666 | The special | |
|
2667 | \family typewriter | |
|
2668 | %doctest_mode | |
|
2669 | \family default | |
|
2670 | command toggles a mode where the prompt, output and exceptions display | |
|
2671 | matches as closely as possible that of the default Python interpreter. | |
|
2672 | In addition, this mode allows you to directly paste in code that contains | |
|
2673 | leading ` | |
|
2674 | \family typewriter | |
|
2675 | >>> | |
|
2676 | \family default | |
|
2677 | ' prompts, even if they have extra leading whitespace (as is common in doctest | |
|
2678 | files). | |
|
2679 | This combined with the ` | |
|
2680 | \family typewriter | |
|
2681 | %history -t | |
|
2682 | \family default | |
|
2683 | n' call to see your translated history (with these extra prompts removed | |
|
2684 | and no line numbers) allows for an easy doctest workflow, where you can | |
|
2685 | go from doctest to interactive execution to pasting into valid Python code | |
|
2686 | as needed. | |
|
2687 | \end_layout | |
|
2688 | ||
|
2649 | 2689 | \begin_layout Subsection |
|
2650 | 2690 | Source code handling tips |
|
2651 | 2691 | \end_layout |
General Comments 0
You need to be logged in to leave comments.
Login now