-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathz_6c5f9b70fbd6dea2_errormode_py.html
338 lines (338 loc) · 65.5 KB
/
z_6c5f9b70fbd6dea2_errormode_py.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Coverage for muutils\errormode.py: 59%</title>
<link rel="icon" sizes="32x32" href="favicon_32_cb_58284776.png">
<link rel="stylesheet" href="style_cb_718ce007.css" type="text/css">
<script src="coverage_html_cb_497bf287.js" defer></script>
</head>
<body class="pyfile">
<header>
<div class="content">
<h1>
<span class="text">Coverage for </span><b>muutils\errormode.py</b>:
<span class="pc_cov">59%</span>
</h1>
<aside id="help_panel_wrapper">
<input id="help_panel_state" type="checkbox">
<label for="help_panel_state">
<img id="keyboard_icon" src="keybd_closed_cb_ce680311.png" alt="Show/hide keyboard shortcuts">
</label>
<div id="help_panel">
<p class="legend">Shortcuts on this page</p>
<div class="keyhelp">
<p>
<kbd>r</kbd>
<kbd>m</kbd>
<kbd>x</kbd>
toggle line displays
</p>
<p>
<kbd>j</kbd>
<kbd>k</kbd>
next/prev highlighted chunk
</p>
<p>
<kbd>0</kbd> (zero) top of page
</p>
<p>
<kbd>1</kbd> (one) first highlighted chunk
</p>
<p>
<kbd>[</kbd>
<kbd>]</kbd>
prev/next file
</p>
<p>
<kbd>u</kbd> up to the index
</p>
<p>
<kbd>?</kbd> show/hide this help
</p>
</div>
</div>
</aside>
<h2>
<span class="text">75 statements </span>
<button type="button" class="run button_toggle_run" value="run" data-shortcut="r" title="Toggle lines run">44<span class="text"> run</span></button>
<button type="button" class="mis show_mis button_toggle_mis" value="mis" data-shortcut="m" title="Toggle lines missing">31<span class="text"> missing</span></button>
<button type="button" class="exc show_exc button_toggle_exc" value="exc" data-shortcut="x" title="Toggle lines excluded">0<span class="text"> excluded</span></button>
</h2>
<p class="text">
<a id="prevFileLink" class="nav" href="z_6c5f9b70fbd6dea2_dictmagic_py.html">« prev</a>
<a id="indexLink" class="nav" href="index.html">^ index</a>
<a id="nextFileLink" class="nav" href="z_6c5f9b70fbd6dea2_group_equiv_py.html">» next</a>
<a class="nav" href="https://coverage.readthedocs.io/en/7.6.1">coverage.py v7.6.1</a>,
created at 2025-02-05 19:24 -0700
</p>
<aside class="hidden">
<button type="button" class="button_next_chunk" data-shortcut="j"></button>
<button type="button" class="button_prev_chunk" data-shortcut="k"></button>
<button type="button" class="button_top_of_page" data-shortcut="0"></button>
<button type="button" class="button_first_chunk" data-shortcut="1"></button>
<button type="button" class="button_prev_file" data-shortcut="["></button>
<button type="button" class="button_next_file" data-shortcut="]"></button>
<button type="button" class="button_to_index" data-shortcut="u"></button>
<button type="button" class="button_show_hide_help" data-shortcut="?"></button>
</aside>
</div>
</header>
<main id="source">
<p class="pln"><span class="n"><a id="t1" href="#t1">1</a></span><span class="t"><span class="str">"""provides `ErrorMode` enum for handling errors consistently</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t2" href="#t2">2</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t3" href="#t3">3</a></span><span class="t"><span class="str">pass an `error_mode: ErrorMode` to a function to specify how to handle a certain kind of exception.</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t4" href="#t4">4</a></span><span class="t"><span class="str">That function then instead of `raise`ing or `warnings.warn`ing, calls `error_mode.process` with the message and the exception.</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t5" href="#t5">5</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t6" href="#t6">6</a></span><span class="t"><span class="str">you can also specify the exception class to raise, the warning class to use, and the source of the exception/warning.</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t7" href="#t7">7</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t8" href="#t8">8</a></span><span class="t"><span class="str">"""</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t9" href="#t9">9</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t10" href="#t10">10</a></span><span class="t"><span class="key">from</span> <span class="nam">__future__</span> <span class="key">import</span> <span class="nam">annotations</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t11" href="#t11">11</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t12" href="#t12">12</a></span><span class="t"><span class="key">import</span> <span class="nam">sys</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t13" href="#t13">13</a></span><span class="t"><span class="key">import</span> <span class="nam">typing</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t14" href="#t14">14</a></span><span class="t"><span class="key">import</span> <span class="nam">types</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t15" href="#t15">15</a></span><span class="t"><span class="key">import</span> <span class="nam">warnings</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t16" href="#t16">16</a></span><span class="t"><span class="key">from</span> <span class="nam">enum</span> <span class="key">import</span> <span class="nam">Enum</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t17" href="#t17">17</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t18" href="#t18">18</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t19" href="#t19">19</a></span><span class="t"><span class="key">class</span> <span class="nam">WarningFunc</span><span class="op">(</span><span class="nam">typing</span><span class="op">.</span><span class="nam">Protocol</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t20" href="#t20">20</a></span><span class="t"> <span class="key">def</span> <span class="nam">__call__</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t21" href="#t21">21</a></span><span class="t"> <span class="nam">self</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t22" href="#t22">22</a></span><span class="t"> <span class="nam">msg</span><span class="op">:</span> <span class="nam">str</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t23" href="#t23">23</a></span><span class="t"> <span class="nam">category</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Type</span><span class="op">[</span><span class="nam">Warning</span><span class="op">]</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t24" href="#t24">24</a></span><span class="t"> <span class="nam">source</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Any</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t25" href="#t25">25</a></span><span class="t"> <span class="op">)</span> <span class="op">-></span> <span class="key">None</span><span class="op">:</span> <span class="op">...</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t26" href="#t26">26</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t27" href="#t27">27</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t28" href="#t28">28</a></span><span class="t"><span class="nam">LoggingFunc</span> <span class="op">=</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Callable</span><span class="op">[</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span><span class="op">,</span> <span class="key">None</span><span class="op">]</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t29" href="#t29">29</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t30" href="#t30">30</a></span><span class="t"><span class="nam">GLOBAL_WARN_FUNC</span><span class="op">:</span> <span class="nam">WarningFunc</span> <span class="op">=</span> <span class="nam">warnings</span><span class="op">.</span><span class="nam">warn</span> <span class="com"># type: ignore[assignment]</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t31" href="#t31">31</a></span><span class="t"><span class="nam">GLOBAL_LOG_FUNC</span><span class="op">:</span> <span class="nam">LoggingFunc</span> <span class="op">=</span> <span class="nam">print</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t32" href="#t32">32</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t33" href="#t33">33</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t34" href="#t34">34</a></span><span class="t"><span class="key">def</span> <span class="nam">custom_showwarning</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t35" href="#t35">35</a></span><span class="t"> <span class="nam">message</span><span class="op">:</span> <span class="nam">Warning</span> <span class="op">|</span> <span class="nam">str</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t36" href="#t36">36</a></span><span class="t"> <span class="nam">category</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Type</span><span class="op">[</span><span class="nam">Warning</span><span class="op">]</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t37" href="#t37">37</a></span><span class="t"> <span class="nam">filename</span><span class="op">:</span> <span class="nam">str</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t38" href="#t38">38</a></span><span class="t"> <span class="nam">lineno</span><span class="op">:</span> <span class="nam">int</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t39" href="#t39">39</a></span><span class="t"> <span class="nam">file</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Optional</span><span class="op">[</span><span class="nam">typing</span><span class="op">.</span><span class="nam">TextIO</span><span class="op">]</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t40" href="#t40">40</a></span><span class="t"> <span class="nam">line</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Optional</span><span class="op">[</span><span class="nam">str</span><span class="op">]</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t41" href="#t41">41</a></span><span class="t"><span class="op">)</span> <span class="op">-></span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t42" href="#t42">42</a></span><span class="t"> <span class="key">if</span> <span class="nam">category</span> <span class="key">is</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t43" href="#t43">43</a></span><span class="t"> <span class="nam">category</span> <span class="op">=</span> <span class="nam">UserWarning</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t44" href="#t44">44</a></span><span class="t"> <span class="com"># Get the frame where process() was called</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t45" href="#t45">45</a></span><span class="t"> <span class="com"># Adjusted to account for the extra function call</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t46" href="#t46">46</a></span><span class="t"> <span class="nam">frame</span><span class="op">:</span> <span class="nam">types</span><span class="op">.</span><span class="nam">FrameType</span> <span class="op">=</span> <span class="nam">sys</span><span class="op">.</span><span class="nam">_getframe</span><span class="op">(</span><span class="num">2</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t47" href="#t47">47</a></span><span class="t"> <span class="com"># get globals and traceback</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t48" href="#t48">48</a></span><span class="t"> <span class="nam">traceback</span><span class="op">:</span> <span class="nam">types</span><span class="op">.</span><span class="nam">TracebackType</span> <span class="op">=</span> <span class="nam">types</span><span class="op">.</span><span class="nam">TracebackType</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t49" href="#t49">49</a></span><span class="t"> <span class="key">None</span><span class="op">,</span> <span class="nam">frame</span><span class="op">,</span> <span class="nam">frame</span><span class="op">.</span><span class="nam">f_lasti</span><span class="op">,</span> <span class="nam">frame</span><span class="op">.</span><span class="nam">f_lineno</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t50" href="#t50">50</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t51" href="#t51">51</a></span><span class="t"> <span class="nam">_globals</span><span class="op">:</span> <span class="nam">dict</span><span class="op">[</span><span class="nam">str</span><span class="op">,</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Any</span><span class="op">]</span> <span class="op">=</span> <span class="nam">frame</span><span class="op">.</span><span class="nam">f_globals</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t52" href="#t52">52</a></span><span class="t"> <span class="com"># init the new warning and add the traceback</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t53" href="#t53">53</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">message</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t54" href="#t54">54</a></span><span class="t"> <span class="nam">message</span> <span class="op">=</span> <span class="nam">category</span><span class="op">(</span><span class="nam">message</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t55" href="#t55">55</a></span><span class="t"> <span class="nam">message</span> <span class="op">=</span> <span class="nam">message</span><span class="op">.</span><span class="nam">with_traceback</span><span class="op">(</span><span class="nam">traceback</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t56" href="#t56">56</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t57" href="#t57">57</a></span><span class="t"> <span class="com"># Call the original showwarning function</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t58" href="#t58">58</a></span><span class="t"> <span class="nam">warnings</span><span class="op">.</span><span class="nam">warn_explicit</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t59" href="#t59">59</a></span><span class="t"> <span class="nam">message</span><span class="op">=</span><span class="nam">message</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t60" href="#t60">60</a></span><span class="t"> <span class="nam">category</span><span class="op">=</span><span class="nam">category</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t61" href="#t61">61</a></span><span class="t"> <span class="com"># filename arg if it's passed, otherwise use the frame's filename</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t62" href="#t62">62</a></span><span class="t"> <span class="nam">filename</span><span class="op">=</span><span class="nam">frame</span><span class="op">.</span><span class="nam">f_code</span><span class="op">.</span><span class="nam">co_filename</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t63" href="#t63">63</a></span><span class="t"> <span class="nam">lineno</span><span class="op">=</span><span class="nam">frame</span><span class="op">.</span><span class="nam">f_lineno</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t64" href="#t64">64</a></span><span class="t"> <span class="nam">module</span><span class="op">=</span><span class="nam">frame</span><span class="op">.</span><span class="nam">f_globals</span><span class="op">.</span><span class="nam">get</span><span class="op">(</span><span class="str">"__name__"</span><span class="op">,</span> <span class="str">"__main__"</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t65" href="#t65">65</a></span><span class="t"> <span class="nam">registry</span><span class="op">=</span><span class="nam">_globals</span><span class="op">.</span><span class="nam">setdefault</span><span class="op">(</span><span class="str">"__warningregistry__"</span><span class="op">,</span> <span class="op">{</span><span class="op">}</span><span class="op">)</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t66" href="#t66">66</a></span><span class="t"> <span class="nam">module_globals</span><span class="op">=</span><span class="nam">_globals</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t67" href="#t67">67</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t68" href="#t68">68</a></span><span class="t"> <span class="com"># warnings._showwarning_orig(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t69" href="#t69">69</a></span><span class="t"> <span class="com"># message,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t70" href="#t70">70</a></span><span class="t"> <span class="com"># category,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t71" href="#t71">71</a></span><span class="t"> <span class="com"># frame.f_code.co_filename,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t72" href="#t72">72</a></span><span class="t"> <span class="com"># frame.f_lineno,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t73" href="#t73">73</a></span><span class="t"> <span class="com"># file,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t74" href="#t74">74</a></span><span class="t"> <span class="com"># line,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t75" href="#t75">75</a></span><span class="t"> <span class="com"># )</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t76" href="#t76">76</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t77" href="#t77">77</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t78" href="#t78">78</a></span><span class="t"><span class="key">class</span> <span class="nam">ErrorMode</span><span class="op">(</span><span class="nam">Enum</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t79" href="#t79">79</a></span><span class="t"> <span class="str">"""Enum for handling errors consistently</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t80" href="#t80">80</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t81" href="#t81">81</a></span><span class="t"><span class="str"> pass one of the instances of this enum to a function to specify how to handle a certain kind of exception.</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t82" href="#t82">82</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t83" href="#t83">83</a></span><span class="t"><span class="str"> That function then instead of `raise`ing or `warnings.warn`ing, calls `error_mode.process` with the message and the exception.</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t84" href="#t84">84</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t85" href="#t85">85</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t86" href="#t86">86</a></span><span class="t"> <span class="nam">EXCEPT</span> <span class="op">=</span> <span class="str">"except"</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t87" href="#t87">87</a></span><span class="t"> <span class="nam">WARN</span> <span class="op">=</span> <span class="str">"warn"</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t88" href="#t88">88</a></span><span class="t"> <span class="nam">LOG</span> <span class="op">=</span> <span class="str">"log"</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t89" href="#t89">89</a></span><span class="t"> <span class="nam">IGNORE</span> <span class="op">=</span> <span class="str">"ignore"</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t90" href="#t90">90</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t91" href="#t91">91</a></span><span class="t"> <span class="key">def</span> <span class="nam">process</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t92" href="#t92">92</a></span><span class="t"> <span class="nam">self</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t93" href="#t93">93</a></span><span class="t"> <span class="nam">msg</span><span class="op">:</span> <span class="nam">str</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t94" href="#t94">94</a></span><span class="t"> <span class="nam">except_cls</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Type</span><span class="op">[</span><span class="nam">Exception</span><span class="op">]</span> <span class="op">=</span> <span class="nam">ValueError</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t95" href="#t95">95</a></span><span class="t"> <span class="nam">warn_cls</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Type</span><span class="op">[</span><span class="nam">Warning</span><span class="op">]</span> <span class="op">=</span> <span class="nam">UserWarning</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t96" href="#t96">96</a></span><span class="t"> <span class="nam">except_from</span><span class="op">:</span> <span class="nam">typing</span><span class="op">.</span><span class="nam">Optional</span><span class="op">[</span><span class="nam">Exception</span><span class="op">]</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t97" href="#t97">97</a></span><span class="t"> <span class="nam">warn_func</span><span class="op">:</span> <span class="nam">WarningFunc</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t98" href="#t98">98</a></span><span class="t"> <span class="nam">log_func</span><span class="op">:</span> <span class="nam">LoggingFunc</span> <span class="op">|</span> <span class="key">None</span> <span class="op">=</span> <span class="key">None</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t99" href="#t99">99</a></span><span class="t"> <span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t100" href="#t100">100</a></span><span class="t"> <span class="str">"""process an exception or warning according to the error mode</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t101" href="#t101">101</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t102" href="#t102">102</a></span><span class="t"><span class="str"> # Parameters:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t103" href="#t103">103</a></span><span class="t"><span class="str"> - `msg : str`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t104" href="#t104">104</a></span><span class="t"><span class="str"> message to pass to `except_cls` or `warn_func`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t105" href="#t105">105</a></span><span class="t"><span class="str"> - `except_cls : typing.Type[Exception]`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t106" href="#t106">106</a></span><span class="t"><span class="str"> exception class to raise, must be a subclass of `Exception`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t107" href="#t107">107</a></span><span class="t"><span class="str"> (defaults to `ValueError`)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t108" href="#t108">108</a></span><span class="t"><span class="str"> - `warn_cls : typing.Type[Warning]`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t109" href="#t109">109</a></span><span class="t"><span class="str"> warning class to use, must be a subclass of `Warning`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t110" href="#t110">110</a></span><span class="t"><span class="str"> (defaults to `UserWarning`)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t111" href="#t111">111</a></span><span class="t"><span class="str"> - `except_from : typing.Optional[Exception]`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t112" href="#t112">112</a></span><span class="t"><span class="str"> will `raise except_cls(msg) from except_from` if not `None`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t113" href="#t113">113</a></span><span class="t"><span class="str"> (defaults to `None`)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t114" href="#t114">114</a></span><span class="t"><span class="str"> - `warn_func : WarningFunc | None`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t115" href="#t115">115</a></span><span class="t"><span class="str"> function to use for warnings, must have the signature `warn_func(msg: str, category: typing.Type[Warning], source: typing.Any = None) -> None`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t116" href="#t116">116</a></span><span class="t"><span class="str"> (defaults to `None`)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t117" href="#t117">117</a></span><span class="t"><span class="str"> - `log_func : LoggingFunc | None`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t118" href="#t118">118</a></span><span class="t"><span class="str"> function to use for logging, must have the signature `log_func(msg: str) -> None`</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t119" href="#t119">119</a></span><span class="t"><span class="str"> (defaults to `None`)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t120" href="#t120">120</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t121" href="#t121">121</a></span><span class="t"><span class="str"> # Raises:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t122" href="#t122">122</a></span><span class="t"><span class="str"> - `except_cls` : _description_</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t123" href="#t123">123</a></span><span class="t"><span class="str"> - `except_cls` : _description_</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t124" href="#t124">124</a></span><span class="t"><span class="str"> - `ValueError` : _description_</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t125" href="#t125">125</a></span><span class="t"><span class="str"> """</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t126" href="#t126">126</a></span><span class="t"> <span class="key">if</span> <span class="nam">self</span> <span class="key">is</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t127" href="#t127">127</a></span><span class="t"> <span class="com"># except, possibly with a chained exception</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t128" href="#t128">128</a></span><span class="t"> <span class="nam">frame</span><span class="op">:</span> <span class="nam">types</span><span class="op">.</span><span class="nam">FrameType</span> <span class="op">=</span> <span class="nam">sys</span><span class="op">.</span><span class="nam">_getframe</span><span class="op">(</span><span class="num">1</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t129" href="#t129">129</a></span><span class="t"> <span class="nam">traceback</span><span class="op">:</span> <span class="nam">types</span><span class="op">.</span><span class="nam">TracebackType</span> <span class="op">=</span> <span class="nam">types</span><span class="op">.</span><span class="nam">TracebackType</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t130" href="#t130">130</a></span><span class="t"> <span class="key">None</span><span class="op">,</span> <span class="nam">frame</span><span class="op">,</span> <span class="nam">frame</span><span class="op">.</span><span class="nam">f_lasti</span><span class="op">,</span> <span class="nam">frame</span><span class="op">.</span><span class="nam">f_lineno</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t131" href="#t131">131</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t132" href="#t132">132</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t133" href="#t133">133</a></span><span class="t"> <span class="com"># Attach the new traceback to the exception and raise it without the internal call stack</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t134" href="#t134">134</a></span><span class="t"> <span class="key">if</span> <span class="nam">except_from</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t135" href="#t135">135</a></span><span class="t"> <span class="key">raise</span> <span class="nam">except_cls</span><span class="op">(</span><span class="nam">msg</span><span class="op">)</span><span class="op">.</span><span class="nam">with_traceback</span><span class="op">(</span><span class="nam">traceback</span><span class="op">)</span> <span class="key">from</span> <span class="nam">except_from</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t136" href="#t136">136</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t137" href="#t137">137</a></span><span class="t"> <span class="key">raise</span> <span class="nam">except_cls</span><span class="op">(</span><span class="nam">msg</span><span class="op">)</span><span class="op">.</span><span class="nam">with_traceback</span><span class="op">(</span><span class="nam">traceback</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t138" href="#t138">138</a></span><span class="t"> <span class="key">elif</span> <span class="nam">self</span> <span class="key">is</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">WARN</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t139" href="#t139">139</a></span><span class="t"> <span class="com"># get global warn function if not passed</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t140" href="#t140">140</a></span><span class="t"> <span class="key">if</span> <span class="nam">warn_func</span> <span class="key">is</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t141" href="#t141">141</a></span><span class="t"> <span class="nam">warn_func</span> <span class="op">=</span> <span class="nam">GLOBAL_WARN_FUNC</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t142" href="#t142">142</a></span><span class="t"> <span class="com"># augment warning message with source</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t143" href="#t143">143</a></span><span class="t"> <span class="key">if</span> <span class="nam">except_from</span> <span class="key">is</span> <span class="key">not</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t144" href="#t144">144</a></span><span class="t"> <span class="nam">msg</span> <span class="op">=</span> <span class="fst">f"</span><span class="op">{</span><span class="nam">msg</span><span class="op">}</span><span class="fst">\n\tSource of warning: </span><span class="op">{</span><span class="nam">except_from</span><span class="op">}</span><span class="fst">"</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t145" href="#t145">145</a></span><span class="t"> <span class="key">if</span> <span class="nam">warn_func</span> <span class="op">==</span> <span class="nam">warnings</span><span class="op">.</span><span class="nam">warn</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t146" href="#t146">146</a></span><span class="t"> <span class="nam">custom_showwarning</span><span class="op">(</span><span class="nam">msg</span><span class="op">,</span> <span class="nam">category</span><span class="op">=</span><span class="nam">warn_cls</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t147" href="#t147">147</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t148" href="#t148">148</a></span><span class="t"> <span class="com"># Use the provided warn_func as-is</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t149" href="#t149">149</a></span><span class="t"> <span class="nam">warn_func</span><span class="op">(</span><span class="nam">msg</span><span class="op">,</span> <span class="nam">category</span><span class="op">=</span><span class="nam">warn_cls</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t150" href="#t150">150</a></span><span class="t"> <span class="key">elif</span> <span class="nam">self</span> <span class="key">is</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t151" href="#t151">151</a></span><span class="t"> <span class="com"># get global log function if not passed</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t152" href="#t152">152</a></span><span class="t"> <span class="key">if</span> <span class="nam">log_func</span> <span class="key">is</span> <span class="key">None</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t153" href="#t153">153</a></span><span class="t"> <span class="nam">log_func</span> <span class="op">=</span> <span class="nam">GLOBAL_LOG_FUNC</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t154" href="#t154">154</a></span><span class="t"> <span class="com"># log</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t155" href="#t155">155</a></span><span class="t"> <span class="nam">log_func</span><span class="op">(</span><span class="nam">msg</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t156" href="#t156">156</a></span><span class="t"> <span class="key">elif</span> <span class="nam">self</span> <span class="key">is</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t157" href="#t157">157</a></span><span class="t"> <span class="com"># do nothing</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t158" href="#t158">158</a></span><span class="t"> <span class="key">pass</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t159" href="#t159">159</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t160" href="#t160">160</a></span><span class="t"> <span class="key">raise</span> <span class="nam">ValueError</span><span class="op">(</span><span class="fst">f"</span><span class="fst">Unknown error mode </span><span class="op">{</span><span class="nam">self</span><span class="op">}</span><span class="fst">"</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t161" href="#t161">161</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t162" href="#t162">162</a></span><span class="t"> <span class="op">@</span><span class="nam">classmethod</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t163" href="#t163">163</a></span><span class="t"> <span class="key">def</span> <span class="nam">from_any</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t164" href="#t164">164</a></span><span class="t"> <span class="nam">cls</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t165" href="#t165">165</a></span><span class="t"> <span class="nam">mode</span><span class="op">:</span> <span class="str">"str|ErrorMode"</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t166" href="#t166">166</a></span><span class="t"> <span class="nam">allow_aliases</span><span class="op">:</span> <span class="nam">bool</span> <span class="op">=</span> <span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t167" href="#t167">167</a></span><span class="t"> <span class="nam">allow_prefix</span><span class="op">:</span> <span class="nam">bool</span> <span class="op">=</span> <span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t168" href="#t168">168</a></span><span class="t"> <span class="op">)</span> <span class="op">-></span> <span class="nam">ErrorMode</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t169" href="#t169">169</a></span><span class="t"> <span class="str">"""initialize an `ErrorMode` from a string or an `ErrorMode` instance"""</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t170" href="#t170">170</a></span><span class="t"> <span class="key">if</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">mode</span><span class="op">,</span> <span class="nam">ErrorMode</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t171" href="#t171">171</a></span><span class="t"> <span class="key">return</span> <span class="nam">mode</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t172" href="#t172">172</a></span><span class="t"> <span class="key">elif</span> <span class="nam">isinstance</span><span class="op">(</span><span class="nam">mode</span><span class="op">,</span> <span class="nam">str</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t173" href="#t173">173</a></span><span class="t"> <span class="com"># strip</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t174" href="#t174">174</a></span><span class="t"> <span class="nam">mode</span> <span class="op">=</span> <span class="nam">mode</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t175" href="#t175">175</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t176" href="#t176">176</a></span><span class="t"> <span class="com"># remove prefix</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t177" href="#t177">177</a></span><span class="t"> <span class="key">if</span> <span class="nam">allow_prefix</span> <span class="key">and</span> <span class="nam">mode</span><span class="op">.</span><span class="nam">startswith</span><span class="op">(</span><span class="str">"ErrorMode."</span><span class="op">)</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t178" href="#t178">178</a></span><span class="t"> <span class="nam">mode</span> <span class="op">=</span> <span class="nam">mode</span><span class="op">[</span><span class="nam">len</span><span class="op">(</span><span class="str">"ErrorMode."</span><span class="op">)</span> <span class="op">:</span><span class="op">]</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t179" href="#t179">179</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t180" href="#t180">180</a></span><span class="t"> <span class="com"># lowercase and strip again</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t181" href="#t181">181</a></span><span class="t"> <span class="nam">mode</span> <span class="op">=</span> <span class="nam">mode</span><span class="op">.</span><span class="nam">strip</span><span class="op">(</span><span class="op">)</span><span class="op">.</span><span class="nam">lower</span><span class="op">(</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t182" href="#t182">182</a></span><span class="t"> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t183" href="#t183">183</a></span><span class="t"> <span class="key">if</span> <span class="key">not</span> <span class="nam">allow_aliases</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t184" href="#t184">184</a></span><span class="t"> <span class="com"># try without aliases</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t185" href="#t185">185</a></span><span class="t"> <span class="key">try</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t186" href="#t186">186</a></span><span class="t"> <span class="key">return</span> <span class="nam">ErrorMode</span><span class="op">(</span><span class="nam">mode</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t187" href="#t187">187</a></span><span class="t"> <span class="key">except</span> <span class="nam">ValueError</span> <span class="key">as</span> <span class="nam">e</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t188" href="#t188">188</a></span><span class="t"> <span class="key">raise</span> <span class="nam">KeyError</span><span class="op">(</span><span class="fst">f"</span><span class="fst">Unknown error mode </span><span class="op">{</span><span class="nam">mode</span> <span class="op">=</span> <span class="op">}</span><span class="fst">"</span><span class="op">)</span> <span class="key">from</span> <span class="nam">e</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t189" href="#t189">189</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t190" href="#t190">190</a></span><span class="t"> <span class="com"># look up in aliases map</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t191" href="#t191">191</a></span><span class="t"> <span class="key">return</span> <span class="nam">ERROR_MODE_ALIASES</span><span class="op">[</span><span class="nam">mode</span><span class="op">]</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t192" href="#t192">192</a></span><span class="t"> <span class="key">else</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t193" href="#t193">193</a></span><span class="t"> <span class="key">raise</span> <span class="nam">TypeError</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t194" href="#t194">194</a></span><span class="t"> <span class="fst">f"</span><span class="fst">Expected </span><span class="op">{</span><span class="nam">ErrorMode</span> <span class="op">=</span> <span class="op">}</span><span class="fst"> or str, got </span><span class="op">{</span><span class="nam">type</span><span class="op">(</span><span class="nam">mode</span><span class="op">)</span> <span class="op">=</span> <span class="op">}</span><span class="fst"> </span><span class="op">{</span><span class="nam">mode</span> <span class="op">=</span> <span class="op">}</span><span class="fst">"</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t195" href="#t195">195</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t196" href="#t196">196</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t197" href="#t197">197</a></span><span class="t"> <span class="key">def</span> <span class="nam">__str__</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t198" href="#t198">198</a></span><span class="t"> <span class="key">return</span> <span class="fst">f"</span><span class="fst">ErrorMode.</span><span class="op">{</span><span class="nam">self</span><span class="op">.</span><span class="nam">value</span><span class="op">.</span><span class="nam">capitalize</span><span class="op">(</span><span class="op">)</span><span class="op">}</span><span class="fst">"</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t199" href="#t199">199</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t200" href="#t200">200</a></span><span class="t"> <span class="key">def</span> <span class="nam">__repr__</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t201" href="#t201">201</a></span><span class="t"> <span class="key">return</span> <span class="nam">str</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t202" href="#t202">202</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t203" href="#t203">203</a></span><span class="t"> <span class="key">def</span> <span class="nam">serialize</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> <span class="op">-></span> <span class="nam">str</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t204" href="#t204">204</a></span><span class="t"> <span class="key">return</span> <span class="nam">str</span><span class="op">(</span><span class="nam">self</span><span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t205" href="#t205">205</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t206" href="#t206">206</a></span><span class="t"> <span class="op">@</span><span class="nam">classmethod</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t207" href="#t207">207</a></span><span class="t"> <span class="key">def</span> <span class="nam">load</span><span class="op">(</span><span class="nam">cls</span><span class="op">,</span> <span class="nam">data</span><span class="op">:</span> <span class="nam">str</span><span class="op">)</span> <span class="op">-></span> <span class="nam">ErrorMode</span><span class="op">:</span> </span><span class="r"></span></p>
<p class="run"><span class="n"><a id="t208" href="#t208">208</a></span><span class="t"> <span class="key">return</span> <span class="nam">cls</span><span class="op">.</span><span class="nam">from_any</span><span class="op">(</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t209" href="#t209">209</a></span><span class="t"> <span class="nam">data</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t210" href="#t210">210</a></span><span class="t"> <span class="nam">allow_aliases</span><span class="op">=</span><span class="key">False</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t211" href="#t211">211</a></span><span class="t"> <span class="nam">allow_prefix</span><span class="op">=</span><span class="key">True</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t212" href="#t212">212</a></span><span class="t"> <span class="op">)</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t213" href="#t213">213</a></span><span class="t"> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t214" href="#t214">214</a></span><span class="t"> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t215" href="#t215">215</a></span><span class="t"><span class="nam">ERROR_MODE_ALIASES</span><span class="op">:</span> <span class="nam">dict</span><span class="op">[</span><span class="nam">str</span><span class="op">,</span> <span class="nam">ErrorMode</span><span class="op">]</span> <span class="op">=</span> <span class="op">{</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t216" href="#t216">216</a></span><span class="t"> <span class="com"># base</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t217" href="#t217">217</a></span><span class="t"> <span class="str">"except"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t218" href="#t218">218</a></span><span class="t"> <span class="str">"warn"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">WARN</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t219" href="#t219">219</a></span><span class="t"> <span class="str">"log"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t220" href="#t220">220</a></span><span class="t"> <span class="str">"ignore"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t221" href="#t221">221</a></span><span class="t"> <span class="com"># except</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t222" href="#t222">222</a></span><span class="t"> <span class="str">"e"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t223" href="#t223">223</a></span><span class="t"> <span class="str">"error"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t224" href="#t224">224</a></span><span class="t"> <span class="str">"err"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t225" href="#t225">225</a></span><span class="t"> <span class="str">"raise"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">EXCEPT</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t226" href="#t226">226</a></span><span class="t"> <span class="com"># warn</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t227" href="#t227">227</a></span><span class="t"> <span class="str">"w"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">WARN</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t228" href="#t228">228</a></span><span class="t"> <span class="str">"warning"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">WARN</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t229" href="#t229">229</a></span><span class="t"> <span class="com"># log</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t230" href="#t230">230</a></span><span class="t"> <span class="str">"l"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t231" href="#t231">231</a></span><span class="t"> <span class="str">"print"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t232" href="#t232">232</a></span><span class="t"> <span class="str">"output"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t233" href="#t233">233</a></span><span class="t"> <span class="str">"show"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t234" href="#t234">234</a></span><span class="t"> <span class="str">"display"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">LOG</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t235" href="#t235">235</a></span><span class="t"> <span class="com"># ignore</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t236" href="#t236">236</a></span><span class="t"> <span class="str">"i"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t237" href="#t237">237</a></span><span class="t"> <span class="str">"silent"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t238" href="#t238">238</a></span><span class="t"> <span class="str">"quiet"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t239" href="#t239">239</a></span><span class="t"> <span class="str">"nothing"</span><span class="op">:</span> <span class="nam">ErrorMode</span><span class="op">.</span><span class="nam">IGNORE</span><span class="op">,</span> </span><span class="r"></span></p>
<p class="pln"><span class="n"><a id="t240" href="#t240">240</a></span><span class="t"><span class="op">}</span> </span><span class="r"></span></p>
<p class="mis show_mis"><span class="n"><a id="t241" href="#t241">241</a></span><span class="t"><span class="str">"map of string aliases to `ErrorMode` instances"</span> </span><span class="r"></span></p>
</main>
<footer>
<div class="content">
<p>
<a class="nav" href="z_6c5f9b70fbd6dea2_dictmagic_py.html">« prev</a>
<a class="nav" href="index.html">^ index</a>
<a class="nav" href="z_6c5f9b70fbd6dea2_group_equiv_py.html">» next</a>
<a class="nav" href="https://coverage.readthedocs.io/en/7.6.1">coverage.py v7.6.1</a>,
created at 2025-02-05 19:24 -0700
</p>
</div>
</footer>
</body>
</html>