Show More
@@ -0,0 +1,16 b'' | |||||
|
1 | """This should be run directly from ipython, and it should NOT crash. | |||
|
2 | ||||
|
3 | It can't currently be run via runtests b/c exception handling changes there, | |||
|
4 | and this is precisely testing exception handling problems.""" | |||
|
5 | ||||
|
6 | ipmagic('xmode verbose') | |||
|
7 | ||||
|
8 | src = """ | |||
|
9 | class suck(object): | |||
|
10 | def __repr__(self): | |||
|
11 | raise ValueError("who needs repr anyway") | |||
|
12 | ||||
|
13 | suck() | |||
|
14 | """ | |||
|
15 | ||||
|
16 | __IPYTHON__.runlines(src) |
@@ -60,7 +60,7 b' You can implement other color schemes easily, the syntax is fairly' | |||||
60 | self-explanatory. Please send back new schemes you develop to the author for |
|
60 | self-explanatory. Please send back new schemes you develop to the author for | |
61 | possible inclusion in future releases. |
|
61 | possible inclusion in future releases. | |
62 |
|
62 | |||
63 |
$Id: ultraTB.py 1 |
|
63 | $Id: ultraTB.py 1154 2006-02-11 23:20:05Z fperez $""" | |
64 |
|
64 | |||
65 | #***************************************************************************** |
|
65 | #***************************************************************************** | |
66 | # Copyright (C) 2001 Nathaniel Gray <n8gray@caltech.edu> |
|
66 | # Copyright (C) 2001 Nathaniel Gray <n8gray@caltech.edu> | |
@@ -394,12 +394,38 b' class VerboseTB(TBTools):' | |||||
394 | Colors = self.Colors # just a shorthand + quicker name lookup |
|
394 | Colors = self.Colors # just a shorthand + quicker name lookup | |
395 | ColorsNormal = Colors.Normal # used a lot |
|
395 | ColorsNormal = Colors.Normal # used a lot | |
396 | indent = ' '*INDENT_SIZE |
|
396 | indent = ' '*INDENT_SIZE | |
397 | text_repr = pydoc.text.repr |
|
|||
398 | exc = '%s%s%s' % (Colors.excName, str(etype), ColorsNormal) |
|
397 | exc = '%s%s%s' % (Colors.excName, str(etype), ColorsNormal) | |
399 | em_normal = '%s\n%s%s' % (Colors.valEm, indent,ColorsNormal) |
|
398 | em_normal = '%s\n%s%s' % (Colors.valEm, indent,ColorsNormal) | |
400 | undefined = '%sundefined%s' % (Colors.em, ColorsNormal) |
|
399 | undefined = '%sundefined%s' % (Colors.em, ColorsNormal) | |
401 |
|
400 | |||
402 | # some internal-use functions |
|
401 | # some internal-use functions | |
|
402 | def text_repr(value): | |||
|
403 | """Hopefully pretty robust repr equivalent.""" | |||
|
404 | # this is pretty horrible but should always return *something* | |||
|
405 | try: | |||
|
406 | return pydoc.text.repr(value) | |||
|
407 | except KeyboardInterrupt: | |||
|
408 | raise | |||
|
409 | except: | |||
|
410 | try: | |||
|
411 | return repr(value) | |||
|
412 | except KeyboardInterrupt: | |||
|
413 | raise | |||
|
414 | except: | |||
|
415 | try: | |||
|
416 | # all still in an except block so we catch | |||
|
417 | # getattr raising | |||
|
418 | name = getattr(value, '__name__', None) | |||
|
419 | if name: | |||
|
420 | # ick, recursion | |||
|
421 | return text_repr(name) | |||
|
422 | klass = getattr(value, '__class__', None) | |||
|
423 | if klass: | |||
|
424 | return '%s instance' % text_repr(klass) | |||
|
425 | except KeyboardInterrupt: | |||
|
426 | raise | |||
|
427 | except: | |||
|
428 | return 'UNRECOVERABLE REPR FAILURE' | |||
403 | def eqrepr(value, repr=text_repr): return '=%s' % repr(value) |
|
429 | def eqrepr(value, repr=text_repr): return '=%s' % repr(value) | |
404 | def nullrepr(value, repr=text_repr): return '' |
|
430 | def nullrepr(value, repr=text_repr): return '' | |
405 |
|
431 |
@@ -1,3 +1,9 b'' | |||||
|
1 | 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu> | |||
|
2 | ||||
|
3 | * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch | |||
|
4 | contributed by marienz to close | |||
|
5 | http://www.scipy.net/roundup/ipython/issue53. | |||
|
6 | ||||
1 | 2006-02-10 Ville Vainio <vivainio@gmail.com> |
|
7 | 2006-02-10 Ville Vainio <vivainio@gmail.com> | |
2 |
|
8 | |||
3 | * genutils.py: getoutput now works in win32 too |
|
9 | * genutils.py: getoutput now works in win32 too |
General Comments 0
You need to be logged in to leave comments.
Login now