U  eW@sddlZddlZddlmZddlZddlZddlmZddlmZddZ ddZ d d Z deee fe e ed ddZdddZddZddZejdddZdS)N)Path)Union)mockcCstdd|S)Nz [\s\r\n]+ )resubstripresultr B/opt/hc_python/lib/python3.8/site-packages/mako/testing/helpers.pyflatten_result sr c Cs ddtdtdd|DS)NcSs g|]}|dkr|qSr.0xr r r s z result_lines..\r?\nz +r)rsplitrr r r r result_linessrcCsddtd|DS)NcSsg|]}|dkr|qSrrrr r r rs z$result_raw_lines..r)rrr r r r result_raw_linessrTF)filespec make_absolute check_existsreturncCs6t|}|r|j|d}|r2|s2td||S)N)strictzNo file or directory at )rresolveexistsFileNotFoundError)rrrpathr r r make_paths   r"c Cs2t}|rtt}||W5QRXdS)N) contextlib nullcontextsuppressr unlink)r! missing_okcmr r r _unlink_path's  r)cCs&t|}t|dd|jdd|S)NT)r')exist_ok)pathlibrr)mkdir)Zpathspecr!r r r replace_file_with_dir1s   r-c Cs$t|d}|dW5QRX|S)Nwz* i am an artificial template just for you )openwrite)rfr r r file_with_template_code8s  r2c cs8t|d}td}||j_dVW5QRXdS)Nizmako.codegen.time)timerpatchZ return_value)hoursZrewoundZ codegen_timer r r rewind_compile_timeBs r7)TF)F)r3)r#r+rrr4typingrZunittestrr rrstrboolr"r)r-r2contextmanagerr7r r r r s,