o
    %hL
                     @   sv   d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ G dd	 d	ZdS )
    N)Path)AnyDictListOptionalSetUnion)BrowserContext)Error)async_readfile)set_test_id_attribute_namec                   @   sd   e Zd ZdejdeddfddZ			ddeded	eee	f d
e
ddf
ddZdeddfddZdS )	Selectorsloopdispatcher_fiberreturnNc                 C   s$   || _ t | _g | _|| _d | _d S )N)_loopset_contexts_for_selectors_selector_engines_dispatcher_fiber_test_id_attribute_name)selfr   r    r   O/var/www/html/myenv/lib/python3.10/site-packages/playwright/_impl/_selectors.py__init__   s
   
zSelectors.__init__namescriptpathcontentScriptc                    s   t  fdd| jD rtd  d|s|std|r(t|I d H  }t |d}|r4||d< | jD ]}|jdd d	|iI d H  q7| j	| d S )
Nc                 3   s     | ]}|d   kr|V  qdS )r   Nr   ).0enginer   r   r   	<genexpr>(   s    z%Selectors.register.<locals>.<genexpr>zSelectors.register: "z-" selector engine has been already registeredz)Either source or path should be specified)r   sourcer   registerSelectorEngineselectorEngine)
anyr   r
   r   decodedictr   _channelsendappend)r   r   r   r   r   r    contextr   r!   r   register!   s&   

zSelectors.registerattributeNamec                 C   s2   t | || _| jD ]}|jdd d|i q
d S )NsetTestIdAttributeNametestIdAttributeName)r   r   r   r)   send_no_reply)r   r.   r,   r   r   r   set_test_id_attribute;   s   
zSelectors.set_test_id_attribute)NNN)__name__
__module____qualname__asyncioAbstractEventLoopr   r   strr   r   boolr-   r2   r   r   r   r   r      s"    


r   )r6   pathlibr   typingr   r   r   r   r   r   !playwright._impl._browser_contextr	   playwright._impl._errorsr
   playwright._impl._helperr   playwright._impl._locatorr   r   r   r   r   r   <module>   s    