
    龙hL
                     |    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y)
    N)Path)AnyDictListOptionalSetUnion)BrowserContext)Error)async_readfile)set_test_id_attribute_namec                   r    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y)	Selectorsloopdispatcher_fiberreturnNc                 Z    || _         t               | _        g | _        || _        d | _        y )N)_loopset_contexts_for_selectors_selector_engines_dispatcher_fiber_test_id_attribute_name)selfr   r   s      W/var/www/Befach/backend/env/lib/python3.12/site-packages/playwright/_impl/_selectors.py__init__zSelectors.__init__   s+    
<?E$-/!16:$    namescriptpathcontentScriptc                   K   t        fd| j                  D              rt        d d      |s|st        d      |r!t        |       d {   j	                         }t        |      }|r||d<   | j                  D ])  }|j                  j                  dd d|i       d {    + | j                  j                  |       y 7 z7 $w)	Nc              3   4   K   | ]  }|d    k(  s|  yw)r   N ).0enginer   s     r   	<genexpr>z%Selectors.register.<locals>.<genexpr>(   s     U&fVnPT>TvUs   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!   s      UD$:$:UU'v-Z[  dCDD*40088:F!%4!?&3F?#33G""''(!6*   4 	%%f- 1
s%   ACCAC(C)#CCattributeNamec                     t        |       || _        | j                  D ]!  }|j                  j	                  dd d|i       # y )NsetTestIdAttributeNametestIdAttributeName)r   r   r   r.   send_no_reply)r   r3   r1   s      r   set_test_id_attributezSelectors.set_test_id_attribute;   sD    "=1'4$33G**(&6 4r   )NNN)__name__
__module____qualname__asyncioAbstractEventLoopr   r   strr	   r   boolr2   r8   r$   r   r   r   r      s    ;W6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 < * 3 @* *r   