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sJ 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    	 