
    iL
                         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	          ZdS )
    N)Path)AnyDictListOptionalSetUnion)BrowserContext)Error)async_readfile)set_test_id_attribute_namec                   p    e Zd Zdej        deddfdZ	 	 	 ddededeee	f         d	e
ddf
d
ZdeddfdZdS )	Selectorsloopdispatcher_fiberreturnNc                 d    || _         t                      | _        g | _        || _        d | _        d S )N)_loopset_contexts_for_selectors_selector_engines_dispatcher_fiber_test_id_attribute_name)selfr   r   s      [/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_selectors.py__init__zSelectors.__init__   s3    
<?EE$-/!16:$$$    namescriptpathcontentScriptc                   K   t          fd| j        D                       rt          d d          |s|st          d          |r't          |           d {V                                 }t          |          }|r||d<   | j        D ]&}|j                            dd d|i           d {V  '| j        	                    |           d S )	Nc              3   4   K   | ]}|d          k    |V  dS )r   N ).0enginer   s     r   	<genexpr>z%Selectors.register.<locals>.<genexpr>(   s2      UU&fVnPT>T>Tv>T>T>T>TUUr   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&   contexts    `     r   registerzSelectors.register!   sG      UUUUD$:UUUUU 	[[[[    	Ed 	ECDDD 	;*40000000088::F!%4!?!?!? 	4&3F?#3 	 	G"''(!6*         
 	%%f-----r   attributeNamec                     t          |           || _        | j        D ] }|j                            dd d|i           !d S )NsetTestIdAttributeNametestIdAttributeName)r   r   r   r.   send_no_reply)r   r3   r1   s      r   set_test_id_attributezSelectors.set_test_id_attribute;   sb    "=111'4$3 	 	G**(&6   	 	r   )NNN)__name__
__module____qualname__asyncioAbstractEventLoopr   r   strr	   r   boolr2   r8   r$   r   r   r   r      s        ;W6 ;# ;RV ; ; ; ; !%". .. . CI	.
 . 
. . . .43 4      r   r   )r<   pathlibr   typingr   r   r   r   r   r	   !playwright._impl._browser_contextr
   playwright._impl._errorsr   playwright._impl._helperr   playwright._impl._locatorr   r   r$   r   r   <module>rF      s           8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 < < < < < < * * * * * * 3 3 3 3 3 3 @ @ @ @ @ @* * * * * * * * * *r   