##// END OF EJS Templates
Make a global variable out of the color scheme table used for coloring...
fperez -
r4:79c0cdc8
parent child Browse files
Show More
@@ -60,7 +60,7 b' You can implement other color schemes easily, the syntax is fairly'
60 60 self-explanatory. Please send back new schemes you develop to the author for
61 61 possible inclusion in future releases.
62 62
63 $Id: ultraTB.py 589 2005-05-30 06:26:28Z fperez $"""
63 $Id: ultraTB.py 636 2005-07-17 03:11:11Z fperez $"""
64 64
65 65 #*****************************************************************************
66 66 # Copyright (C) 2001 Nathaniel Gray <n8gray@caltech.edu>
@@ -98,7 +98,97 b' def inspect_error():'
98 98
99 99 error('Internal Python error in the inspect module.\n'
100 100 'Below is the traceback from this internal error.\n')
101
102 # Make a global variable out of the color scheme table used for coloring
103 # exception tracebacks. This allows user code to add new schemes at runtime.
104 ExceptionColors = ColorSchemeTable()
105
106 # Populate it with color schemes
107 C = TermColors # shorthand and local lookup
108 ExceptionColors.add_scheme(ColorScheme(
109 'NoColor',
110 # The color to be used for the top line
111 topline = C.NoColor,
112
113 # The colors to be used in the traceback
114 filename = C.NoColor,
115 lineno = C.NoColor,
116 name = C.NoColor,
117 vName = C.NoColor,
118 val = C.NoColor,
119 em = C.NoColor,
120
121 # Emphasized colors for the last frame of the traceback
122 normalEm = C.NoColor,
123 filenameEm = C.NoColor,
124 linenoEm = C.NoColor,
125 nameEm = C.NoColor,
126 valEm = C.NoColor,
127
128 # Colors for printing the exception
129 excName = C.NoColor,
130 line = C.NoColor,
131 caret = C.NoColor,
132 Normal = C.NoColor
133 ))
134
135 # make some schemes as instances so we can copy them for modification easily
136 ExceptionColors.add_scheme(ColorScheme(
137 'Linux',
138 # The color to be used for the top line
139 topline = C.LightRed,
140
141 # The colors to be used in the traceback
142 filename = C.Green,
143 lineno = C.Green,
144 name = C.Purple,
145 vName = C.Cyan,
146 val = C.Green,
147 em = C.LightCyan,
148
149 # Emphasized colors for the last frame of the traceback
150 normalEm = C.LightCyan,
151 filenameEm = C.LightGreen,
152 linenoEm = C.LightGreen,
153 nameEm = C.LightPurple,
154 valEm = C.LightBlue,
155
156 # Colors for printing the exception
157 excName = C.LightRed,
158 line = C.Yellow,
159 caret = C.White,
160 Normal = C.Normal
161 ))
162
163 # For light backgrounds, swap dark/light colors
164 ExceptionColors.add_scheme(ColorScheme(
165 'LightBG',
166 # The color to be used for the top line
167 topline = C.Red,
101 168
169 # The colors to be used in the traceback
170 filename = C.LightGreen,
171 lineno = C.LightGreen,
172 name = C.LightPurple,
173 vName = C.Cyan,
174 val = C.LightGreen,
175 em = C.Cyan,
176
177 # Emphasized colors for the last frame of the traceback
178 normalEm = C.Cyan,
179 filenameEm = C.Green,
180 linenoEm = C.Green,
181 nameEm = C.Purple,
182 valEm = C.Blue,
183
184 # Colors for printing the exception
185 excName = C.Red,
186 #line = C.Brown, # brown often is displayed as yellow
187 line = C.Red,
188 caret = C.Normal,
189 Normal = C.Normal
190 ))
191
102 192 class TBTools:
103 193 """Basic tools used by all traceback printer classes."""
104 194
@@ -112,93 +202,7 b' class TBTools:'
112 202 self.pdb = None
113 203
114 204 # Create color table
115 self.ColorSchemeTable = ColorSchemeTable()
116
117 # Populate it with color schemes
118 C = TermColors # shorthand and local lookup
119 self.ColorSchemeTable.add_scheme(ColorScheme(
120 'NoColor',
121 # The color to be used for the top line
122 topline = C.NoColor,
123
124 # The colors to be used in the traceback
125 filename = C.NoColor,
126 lineno = C.NoColor,
127 name = C.NoColor,
128 vName = C.NoColor,
129 val = C.NoColor,
130 em = C.NoColor,
131
132 # Emphasized colors for the last frame of the traceback
133 normalEm = C.NoColor,
134 filenameEm = C.NoColor,
135 linenoEm = C.NoColor,
136 nameEm = C.NoColor,
137 valEm = C.NoColor,
138
139 # Colors for printing the exception
140 excName = C.NoColor,
141 line = C.NoColor,
142 caret = C.NoColor,
143 Normal = C.NoColor
144 ))
145
146 # make some schemes as instances so we can copy them for modification easily:
147 self.ColorSchemeTable.add_scheme(ColorScheme(
148 'Linux',
149 # The color to be used for the top line
150 topline = C.LightRed,
151
152 # The colors to be used in the traceback
153 filename = C.Green,
154 lineno = C.Green,
155 name = C.Purple,
156 vName = C.Cyan,
157 val = C.Green,
158 em = C.LightCyan,
159
160 # Emphasized colors for the last frame of the traceback
161 normalEm = C.LightCyan,
162 filenameEm = C.LightGreen,
163 linenoEm = C.LightGreen,
164 nameEm = C.LightPurple,
165 valEm = C.LightBlue,
166
167 # Colors for printing the exception
168 excName = C.LightRed,
169 line = C.Yellow,
170 caret = C.White,
171 Normal = C.Normal
172 ))
173
174 # For light backgrounds, swap dark/light colors
175 self.ColorSchemeTable.add_scheme(ColorScheme(
176 'LightBG',
177 # The color to be used for the top line
178 topline = C.Red,
179
180 # The colors to be used in the traceback
181 filename = C.LightGreen,
182 lineno = C.LightGreen,
183 name = C.LightPurple,
184 vName = C.Cyan,
185 val = C.LightGreen,
186 em = C.Cyan,
187
188 # Emphasized colors for the last frame of the traceback
189 normalEm = C.Cyan,
190 filenameEm = C.Green,
191 linenoEm = C.Green,
192 nameEm = C.Purple,
193 valEm = C.Blue,
194
195 # Colors for printing the exception
196 excName = C.Red,
197 #line = C.Brown, # brown often is displayed as yellow
198 line = C.Red,
199 caret = C.Normal,
200 Normal = C.Normal
201 ))
205 self.ColorSchemeTable = ExceptionColors
202 206
203 207 self.set_colors(color_scheme)
204 208 self.old_scheme = color_scheme # save initial value for toggles
@@ -1,3 +1,18 b''
1 2005-07-16 Fernando Perez <fperez@colorado.edu>
2
3 * IPython/ultraTB.py (ExceptionColors): Make a global variable
4 out of the color scheme table used for coloring exception
5 tracebacks. This allows user code to add new schemes at runtime.
6 This is a minimally modified version of the patch at
7 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
8 for the contribution.
9
10 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
11 slightly modified version of the patch in
12 http://www.scipy.net/roundup/ipython/issue34, which also allows me
13 to remove the previous try/except solution (which was costlier).
14 Thanks to glehmann for the fix.
15
1 16 2005-06-08 Fernando Perez <fperez@colorado.edu>
2 17
3 18 * IPython/iplib.py (write/write_err): Add methods to abstract all
General Comments 0
You need to be logged in to leave comments. Login now