
    gu                         d dl Z d dlmZ d dl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mZ  G d d	      Z G d
 de
      Zy)    N)Path)AnyDictListSetUnion)ChannelOwner)Error)async_readfile)set_test_id_attribute_nametest_id_attribute_namec                       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dZddZy)	Selectorsloopdispatcher_fiberreturnNc                 L    || _         t               | _        g | _        || _        y N)_loopset	_channels_registrations_dispatcher_fiber)selfr   r   s      P/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_selectors.py__init__zSelectors.__init__   s"    
.1e*,!1    namescriptpathcontentScriptc                 @  K   |s|st        d      |r!t        |       d {   j                         }t        ||      }|rd|d<   | j                  D ]&  }|j
                  j                  d|       d {    ( | j                  j                  |       y 7 w7 $w)Nz)Either source or path should be specified)r   sourceTr!   register)	r
   r   decodedictr   _channelsendr   append)r   r   r   r    r!   paramschannels          r   r$   zSelectors.register    s      dCDD*40088:F!%4!?&*F?#~~G""''
F;;; &""6* 1
 <s"    BBAB7B8#BBattributeNamec                 x    t        |       | j                  D ]   }|j                  j                  dd|i       " y )NsetTestIdAttributeNametestIdAttributeName)r   r   r'   send_no_reply)r   r,   r+   s      r   set_test_id_attributezSelectors.set_test_id_attribute2   s7    "=1~~G**(+@-*P &r   c                     | j                   j                  |       | j                  D ]D  }|j                  j	                  d|       |j                  j	                  ddt               i       F y )Nr$   r.   r/   )r   addr   r'   r0   r   )r   r+   r*   s      r   _add_channelzSelectors._add_channel9   s]    7#))F**:v>**(&(>(@A *r   c                 X    || j                   v r| j                   j                  |       y y r   )r   remove)r   r+   s     r   _remove_channelzSelectors._remove_channelC   s%    dnn$NN!!'* %r   )NNN)r+   SelectorsOwnerr   N)__name__
__module____qualname__asyncioAbstractEventLoopr   r   strr   r   boolr$   r1   r4   r7    r   r   r   r      s    2W66 2# 2RV 2 !%"++ + CI	+
 + 
+$3 4 +r   r   c            
       4     e Zd Zdededededdf
 fdZ xZS )r8   parenttypeguidinitializerr   Nc                 *    t         |   ||||       y r   )superr   )r   rB   rC   rD   rE   	__class__s        r   r   zSelectorsOwner.__init__I   s     	t[9r   )r9   r:   r;   r	   r>   r   r   __classcell__)rH   s   @r   r8   r8   H   s5    :":*-:58:GK:	: :r   r8   )r<   pathlibr   typingr   r   r   r   r   playwright._impl._connectionr	   playwright._impl._errorsr
   playwright._impl._helperr   playwright._impl._locatorr   r   r   r8   r@   r   r   <module>rP      s6      . . 5 * 3 X,+ ,+^:\ :r   