MCPcopy Index your code
hub / github.com/python/cpython / add_traceback_cli

Function add_traceback_cli

Tools/c-analyzer/c_common/scriptutil.py:204–243  ·  view source on GitHub ↗
(parser)

Source from the content-addressed store, hash-verified

202
203
204def add_traceback_cli(parser):
205 parser.add_argument('--traceback', '--tb', action='store_true',
206 default=TRACEBACK)
207 parser.add_argument('--no-traceback', '--no-tb', dest='traceback',
208 action='store_const', const=False)
209
210 def process_args(args, *, argv=None):
211 ns = vars(args)
212 key = 'traceback_cm'
213 if key in ns:
214 parser.error(f'duplicate arg {key!r}')
215 showtb = ns.pop('traceback')
216
217 @contextlib.contextmanager
218 def traceback_cm():
219 restore = loggingutil.hide_emit_errors()
220 try:
221 yield
222 except BrokenPipeError:
223 # It was piped to "head" or something similar.
224 pass
225 except NotImplementedError:
226 raise # re-raise
227 except Exception as exc:
228 if not showtb:
229 sys.exit(f'ERROR: {exc}')
230 raise # re-raise
231 except KeyboardInterrupt:
232 if not showtb:
233 sys.exit('\nINTERRUPTED')
234 raise # re-raise
235 except BaseException as exc:
236 if not showtb:
237 sys.exit(f'{type(exc).__name__}: {exc}')
238 raise # re-raise
239 finally:
240 restore()
241 ns[key] = traceback_cm()
242 return key
243 return process_args
244
245
246def add_sepval_cli(parser, opt, dest, choices, *, sep=',', **kwargs):

Callers 2

parse_argsFunction · 0.90
_cli_dataFunction · 0.90

Calls 1

add_argumentMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…