B
    d                 @   s   d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ dd Z	dd Z
deeef eeedddZdddZdd Zdd Ze jdddZdS )    N)Path)Union)mockc             C   s   t dd|  S )Nz	[\s\r\n]+ )resubstrip)result r
   a/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/mako/testing/helpers.pyflatten_result
   s    r   c          	   C   s    dd t dt dd| D S )Nc             S   s    g | ]}|  d kr|  qS ) )r   ).0xr
   r
   r   
<listcomp>   s   z result_lines.<locals>.<listcomp>z\r?\nz +r   )r   splitr   )r	   r
   r
   r   result_lines   s    r   TF)filespecmake_absolutecheck_existsreturnc             C   s6   t | }|r|j|d}|r2| s2td|  |S )N)strictzNo file or directory at )r   resolveexistsFileNotFoundError)r   r   r   pathr
   r
   r   	make_path   s    r   c          	   C   s2   t  }|rt t}| |   W d Q R X d S )N)
contextlibnullcontextsuppressr   unlink)r   
missing_okcmr
   r
   r   _unlink_path#   s
    
r#   c             C   s&   t | }t|dd |jdd |S )NT)r!   )exist_ok)pathlibr   r#   mkdir)Zpathspecr   r
   r
   r   replace_file_with_dir-   s    
r'   c          	   C   s$   t | d}|d W d Q R X | S )Nwz*
i am an artificial template just for you
)openwrite)r   fr
   r
   r   file_with_template_code4   s    r,      c          	   c   s8   t   | d  }td}||j _d V  W d Q R X d S )Ni  zmako.codegen.time)timer   patchZreturn_value)hoursZrewoundZcodegen_timer
   r
   r   rewind_compile_time>   s    r1   )TF)F)r-   )r   r%   r   r   r.   typingr   Zunittestr   r   r   strboolr   r#   r'   r,   contextmanagerr1   r
   r
   r
   r   <module>   s    
 	


