forked from goodboy/tractor
				
			Move `maybe_open_crash_handler()` CLI `--pdb`-driven wrapper to debug mod
							parent
							
								
									ab0c0fb71d
								
							
						
					
					
						commit
						cca4f952ed
					
				|  | @ -29,6 +29,7 @@ from ._debug import ( | |||
|     shield_sigint_handler, | ||||
|     MultiActorPdb, | ||||
|     open_crash_handler, | ||||
|     maybe_open_crash_handler, | ||||
|     post_mortem, | ||||
| ) | ||||
| 
 | ||||
|  | @ -41,5 +42,6 @@ __all__ = [ | |||
|     'shield_sigint_handler', | ||||
|     'MultiActorPdb', | ||||
|     'open_crash_handler', | ||||
|     'maybe_open_crash_handler', | ||||
|     'post_mortem', | ||||
| ] | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ from functools import ( | |||
| from contextlib import ( | ||||
|     asynccontextmanager as acm, | ||||
|     contextmanager as cm, | ||||
|     nullcontext, | ||||
| ) | ||||
| from typing import ( | ||||
|     Any, | ||||
|  | @ -1043,3 +1044,20 @@ def open_crash_handler( | |||
|     except tuple(catch): | ||||
|         pdbp.xpm() | ||||
|         raise | ||||
| 
 | ||||
| 
 | ||||
| @cm | ||||
| def maybe_open_crash_handler(pdb: bool = False): | ||||
|     ''' | ||||
|     Same as `open_crash_handler()` but with bool input flag | ||||
|     to allow conditional handling. | ||||
| 
 | ||||
|     Normally this is used with CLI endpoints such that if the --pdb | ||||
|     flag is passed the pdb REPL is engaed on any crashes B) | ||||
|     ''' | ||||
|     rtctx = nullcontext | ||||
|     if pdb: | ||||
|         rtctx = open_crash_handler | ||||
| 
 | ||||
|     with rtctx(): | ||||
|         yield | ||||
|  |  | |||
|  | @ -25,7 +25,6 @@ Currently popular frameworks supported are: | |||
| from __future__ import annotations | ||||
| from contextlib import ( | ||||
|     # asynccontextmanager as acm, | ||||
|     nullcontext, | ||||
|     contextmanager as cm, | ||||
| ) | ||||
| from typing import ( | ||||
|  | @ -135,15 +134,3 @@ def load_runtime_vars( | |||
|         ) | ||||
|         ctx.params = {'ctx': ctx} | ||||
|         cmd.invoke(ctx) | ||||
| 
 | ||||
| 
 | ||||
| @cm | ||||
| def maybe_open_crash_handler(pdb: bool = False): | ||||
|     # if the --pdb flag is passed always engage | ||||
|     # the pdb REPL on any crashes B) | ||||
|     rtctx = nullcontext | ||||
|     if pdb: | ||||
|         rtctx = open_crash_handler | ||||
| 
 | ||||
|     with rtctx(): | ||||
|         yield | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue