Show More
@@ -24,7 +24,6 b' import sys' | |||
|
24 | 24 | from pprint import pformat |
|
25 | 25 | |
|
26 | 26 | from IPython.core import ultratb |
|
27 | from IPython.external.Itpl import itpl | |
|
28 | 27 | from IPython.utils.sysinfo import sys_info |
|
29 | 28 | |
|
30 | 29 | #----------------------------------------------------------------------------- |
@@ -33,7 +32,7 b' from IPython.utils.sysinfo import sys_info' | |||
|
33 | 32 | |
|
34 | 33 | # Template for the user message. |
|
35 | 34 | _default_message_template = """\ |
|
36 |
Oops, |
|
|
35 | Oops, {app_name} crashed. We do our best to make it stable, but... | |
|
37 | 36 | |
|
38 | 37 | A crash report was automatically generated with the following information: |
|
39 | 38 | - A verbatim copy of the crash traceback. |
@@ -41,18 +40,18 b' A crash report was automatically generated with the following information:' | |||
|
41 | 40 | - Data on your current $self.app_name configuration. |
|
42 | 41 | |
|
43 | 42 | It was left in the file named: |
|
44 |
\t' |
|
|
43 | \t'{crash_report_fname}' | |
|
45 | 44 | If you can email this file to the developers, the information in it will help |
|
46 | 45 | them in understanding and correcting the problem. |
|
47 | 46 | |
|
48 |
You can mail it to: $self.contact_name at |
|
|
49 |
with the subject ' |
|
|
47 | You can mail it to: $self.contact_name at {contact_email} | |
|
48 | with the subject '{app_name} Crash Report'. | |
|
50 | 49 | |
|
51 | 50 | If you want to do it now, the following command will work (under Unix): |
|
52 |
mail -s ' |
|
|
51 | mail -s '{app_name} Crash Report' {contact_email} < {crash_report_fname} | |
|
53 | 52 | |
|
54 | 53 | To ensure accurate tracking of this issue, please file a report about it at: |
|
55 |
|
|
|
54 | {bug_tracker} | |
|
56 | 55 | """ |
|
57 | 56 | |
|
58 | 57 | |
@@ -66,6 +65,7 b' class CrashHandler(object):' | |||
|
66 | 65 | """ |
|
67 | 66 | |
|
68 | 67 | message_template = _default_message_template |
|
68 | section_sep = '\n\n'+'*'*75+'\n\n' | |
|
69 | 69 | |
|
70 | 70 | def __init__(self, app, contact_name=None, contact_email=None, |
|
71 | 71 | bug_tracker=None, show_crash_traceback=True, call_pdb=False): |
@@ -96,16 +96,17 b' class CrashHandler(object):' | |||
|
96 | 96 | further customization of the crash handler's behavior. Please see the |
|
97 | 97 | source for further details. |
|
98 | 98 | """ |
|
99 | self.crash_report_fname = "Crash_report_%s.txt" % app.name | |
|
99 | 100 | self.app = app |
|
100 | self.app_name = self.app.name | |
|
101 | self.contact_name = contact_name | |
|
102 | self.contact_email = contact_email | |
|
103 | self.bug_tracker = bug_tracker | |
|
104 | self.crash_report_fname = "Crash_report_%s.txt" % self.app_name | |
|
105 | self.show_crash_traceback = show_crash_traceback | |
|
106 | self.section_sep = '\n\n'+'*'*75+'\n\n' | |
|
107 | 101 | self.call_pdb = call_pdb |
|
108 | 102 | #self.call_pdb = True # dbg |
|
103 | self.show_crash_traceback = show_crash_traceback | |
|
104 | self.info = dict(app_name = app.name, | |
|
105 | contact_name = contact_name, | |
|
106 | contact_email = contact_email, | |
|
107 | bug_tracker = bug_tracker, | |
|
108 | crash_report_fname = self.crash_report_fname) | |
|
109 | ||
|
109 | 110 | |
|
110 | 111 | def __call__(self, etype, evalue, etb): |
|
111 | 112 | """Handle an exception, call for compatible with sys.excepthook""" |
@@ -148,8 +149,8 b' class CrashHandler(object):' | |||
|
148 | 149 | return |
|
149 | 150 | |
|
150 | 151 | # Inform user on stderr of what happened |
|
151 | msg = itpl('\n'+'*'*70+'\n'+self.message_template) | |
|
152 | print >> sys.stderr, msg | |
|
152 | print >> sys.stderr, '\n'+'*'*70+'\n' | |
|
153 | print >> sys.stderr, self.message_template.format(**self.info) | |
|
153 | 154 | |
|
154 | 155 | # Construct report on disk |
|
155 | 156 | report.write(self.make_report(traceback)) |
@@ -62,34 +62,9 b" default_config_file_name = u'ipython_config.py'" | |||
|
62 | 62 | # Crash handler for this application |
|
63 | 63 | #----------------------------------------------------------------------------- |
|
64 | 64 | |
|
65 | _message_template = """\ | |
|
66 | Oops, $self.app_name crashed. We do our best to make it stable, but... | |
|
67 | ||
|
68 | A crash report was automatically generated with the following information: | |
|
69 | - A verbatim copy of the crash traceback. | |
|
70 | - A copy of your input history during this session. | |
|
71 | - Data on your current $self.app_name configuration. | |
|
72 | ||
|
73 | It was left in the file named: | |
|
74 | \t'$self.crash_report_fname' | |
|
75 | If you can email this file to the developers, the information in it will help | |
|
76 | them in understanding and correcting the problem. | |
|
77 | ||
|
78 | You can mail it to: $self.contact_name at $self.contact_email | |
|
79 | with the subject '$self.app_name Crash Report'. | |
|
80 | ||
|
81 | If you want to do it now, the following command will work (under Unix): | |
|
82 | mail -s '$self.app_name Crash Report' $self.contact_email < $self.crash_report_fname | |
|
83 | ||
|
84 | To ensure accurate tracking of this issue, please file a report about it at: | |
|
85 | $self.bug_tracker | |
|
86 | """ | |
|
87 | ||
|
88 | 65 | class IPAppCrashHandler(CrashHandler): |
|
89 | 66 | """sys.excepthook for IPython itself, leaves a detailed report on disk.""" |
|
90 | 67 | |
|
91 | message_template = _message_template | |
|
92 | ||
|
93 | 68 | def __init__(self, app): |
|
94 | 69 | contact_name = release.authors['Fernando'][0] |
|
95 | 70 | contact_email = release.authors['Fernando'][1] |
General Comments 0
You need to be logged in to leave comments.
Login now