a
    Ò�éic	  ã                   @   s’   d dl Z d dlZd dlmZmZ eedœdd„Zeedœdd„Zeedœd	d
„Zdeeee f e	e	edœdd„Z
deeef e	edœdd„ZdS )é    N)ÚPatternÚUnion)ÚpatternÚreturnc                 C   s¦   d}| j dkrd}| j ttjƒ@ dkr.|d7 }| j ttjƒ@ dkrJ|d7 }| j ttjƒ@ dkrf|d7 }| j ttjƒttjƒB ttjƒB ttjƒB  @ dks¢J dƒ‚|S )NÚ r   ÚiÚsÚmzPUnexpected re.Pattern flag, only MULTILINE, IGNORECASE and DOTALL are supported.)ÚflagsÚintÚreÚ
IGNORECASEÚDOTALLÚ	MULTILINEÚUNICODE)r   r
   © r   úK/home/Claro/venv/lib/python3.9/site-packages/playwright/_impl/_str_utils.pyÚescape_regex_flags   s$    
(ÿþÿür   )Útextr   c                 C   s   t  dd| ¡S )Nz[.*+?^>${}()|[\]\\]z\$&)r   Úsub©r   r   r   r   Úescape_for_regex&   s    r   c                 C   s(   dt  dd| j¡ dd¡ d t| ƒ S )Nú/z(^|[^\\])(\\\\)*(["\'`])z\1\2\\\3z>>z\>\>)r   r   r   Úreplacer   r   r   r   r   Úescape_regex_for_selector*   s    ÿÿüûÿr   )r   ÚexactÚcase_sensitiver   c                 C   s(   t | tƒrt| ƒS t | ¡|r"dnd S )Nr   r   )Ú
isinstancer   r   ÚjsonÚdumps)r   r   r   r   r   r   Úescape_for_text_selector6   s    
r    )Úvaluer   r   c                 C   s:   t | tƒrt| ƒS d|  dd¡ dd¡ d |r4dnd S )Nú"ú\z\\z\"r   r   )r   r   r   r   )r!   r   r   r   r   Úescape_for_attribute_selector>   s    
ÿþ
ýÿr$   )NN)N)r   r   Útypingr   r   Ústrr   r   r   Úboolr    r$   r   r   r   r   Ú<module>   s    ÿþ	 ÿþ