U ifd @sdddlZddlZddlZddlZddlZddlmZddZddZdd Z dd d Z dd dZ dS)N) constantscCsVt|}t|r&|j}|j|jfSt|tjr&sz*_format_args_and_kwargs..css&|]\}}|dt|VqdS)=Nr)rkvrrrr(sz({})z, )extenditemsformatjoin)rkwargsr"rrr_format_args_and_kwargss r&cCst|tjr.t|||}t|j|j|j|St|drF|j rF|j }n t|dr^|j r^|j }nt |}|t||7}|r||7}|S)N __qualname____name__) r r r r&rr rkeywordshasattrr(r)r)r rr%suffixrrrrr,s rcCsD|dkrtj}|dkr tj}tjjt||dd}| |S)zlReplacement for traceback.extract_stack() that only does the necessary work for asyncio debug mode. NF)limit lookup_lines) sys _getframef_backrZDEBUG_STACK_DEPTH traceback StackSummaryextract walk_stackreverse)fr-stackrrr extract_stack>s r9)r')NN) r rrr/r2r'rr rr&rr9rrrrs