o
    ‹ågW  ã                	   @   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	d
„ Z		ddeeef dededef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   úP/var/www/html/flaskapp/venv/lib/python3.10/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>ú\r?\nz +r   )r   Úsplitr   r	   r   r   r   Úresult_lines   s   þr   c                 C   s   dd„ t  d| ¡D ƒS )Nc                 S   s   g | ]
}|  ¡ d kr|‘qS r   r   r   r   r   r   r      s    z$result_raw_lines.<locals>.<listcomp>r   )r   r   r	   r   r   r   Úresult_raw_lines   s   r   TFÚfilespecÚmake_absoluteÚcheck_existsÚreturnc                 C   s6   t | ƒ}|r|j|d�}|r| ¡ st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   sH   t  ¡ }|rt  t¡}|� |  ¡  W d   ƒ d S 1 sw   Y  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)Úpathspecr!   r   r   r   Úreplace_file_with_dir1   s   
r.   c                 C   s:   t | dƒ�}| d¡ W d   ƒ | S 1 sw   Y  | S )NÚwz*
i am an artificial template just for you
)ÚopenÚwrite)r   Úfr   r   r   Úfile_with_template_code8   s   ÿ
ÿúr3   é   c                 c   sP   � t   ¡ | d  }t d¡�}||j _d V  W d   ƒ d S 1 s!w   Y  d S )Ni  zmako.codegen.time)Útimer   ÚpatchÚreturn_value)ÚhoursÚrewoundÚcodegen_timer   r   r   Úrewind_compile_timeB   s   €"þr;   )TF)F)r4   )r#   r+   r   r   r5   Útypingr   Úunittestr   r   r   r   ÚstrÚboolr"   r)   r.   r3   Úcontextmanagerr;   r   r   r   r   Ú<module>   s4    ý
ÿþý
ü


