
    %j"              	          d dl mZmZ d dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ  ej,                  e      Z eded	ef   
      ZdedefdZ G d dej:                        Z e       Zg dZ h dZ!ddhZ"de	eef   fdZ# e#       Z$d0dede	eef   fdZ%dede&fdZ'dede(fdZ)de*fdZ+dee	eef   e*f   fdZ,de	eef   de*de	eef   fdZ-de	eef   defdZ.de	eef   de*defd Z/de	eef   fd!Z0d"ede	eef   fd#Z1d$d%d&d'd&d'd$d%d(Z2dede
e   fd)Z3dede4fd*Z5d+ Z6d,edefd-Z7d,edefd.Z8d,edefd/Z9y)1    )absolute_importprint_functionN)AnyCallableDictOptionalTupleTypeVar)ChildSelectorOption
U2CliError)_output_error)
check_portF.)boundvaluereturnc                     	 t        |       }	 t	        |       |S # t        $ r t        j                  d| z        w xY w# t        $ r#}t        j                  t        |            d }~ww xY w)Nzport must be an integer, got %r)int
ValueErrorclickBadParameterr   str)r   portes      b/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/uiautomator2/agent_cli/options.py_valid_portr      su    L5z)4 K  L  !BU!JKKL  )  Q(()s    A  "= 	A,	A''A,c                       e Zd ZdZd Zy)PortParamTypePORTc                     	 t        |      S # t        j                  $ r'}| j                  |j                  ||       Y d }~y d }~ww xY wN)r   r   r   failmessage)selfr   paramctxr   s        r   convertzPortParamType.convert'   s?    	-u%%!! 	-IIaii,,	-s   
 AAAN)__name__
__module____qualname__namer(        r   r   r   $   s    D-r.   r   ))z--texttext)z--text-containstextContains)z--text-matchestextMatches)z--text-starts-withtextStartsWith)z--resource-id
resourceId)z--class-name	className)z--descriptiondescription)z--description-containsdescriptionContains)z	--packagepackageName)--indexindex)
--instanceinstance)--checkable	checkable)	--checkedchecked)--clickable	clickable)--scrollable
scrollable)	--enabledenabled)	--focusedfocused)
--selectedselected>   r?   rE   rG   rI   r=   rA   rC   r9   r;   c                  n    i } t         D ])  \  }}|dd  }|| |<   || |j                  dd      <   || |<   + | S )N   -_)_SELECTOR_OPTIONSreplace)resultoptionu2_nameoption_names       r   _selector_name_maprT   K   sV    F, "QRj%{07{""3,-!w	"
 Mr.   prefixc           	          i }t         D ]A  \  }}t        | ||j                  d      j                  dd      z   d       }|8|dus=|||<   C |S )NrL   rM   F)rN   getattrlstriprO   )argsrU   rP   rQ   rR   r   s         r   _selector_kwargsrZ   Z   s`    F, $fv}}S'9'A'A#s'KKTRe!3#F7O$ Mr.   c                 R    | j                         }|dv ry|dv ryt        d| z        )N)1trueyesonT)0falsenooffFz"invalid boolean selector value: %s)lowerr   )r   lowereds     r   _parse_boolrf   b   s6    kkmG,,--
9EA
BBr.   tokenc                 6   d| v r| j                  dd      \  }}n| d}}|j                         }|t        vrt        d|z        t        |   }|t        v r	 t        |      }||fS |t        v rt        |      }||fS # t        $ r t        d|d|      w xY w)N=   r]   zunknown selector key: %sz#invalid integer selector value for z: )	splitstrip_SELECTOR_NAME_MAPr   _INTEGER_SELECTOR_KEYSr   r   _BOOLEAN_SELECTOR_KEYSrf   )rg   keyr   rR   s       r   _parse_selector_tokenrq   j   s    
e|[[a(
UFU
))+C
$$3c9:: %G((	YJE
 E> 
*	*E"E>	  	YCQVWXX	Ys   A= =Bc                     g }t        | d      }|r|j                  |       t        | dd       xs g D ]2  }i }|D ]  }t        |      \  }}|||<    |s"|j                  |       4 |S )Nchild_)rU   child)rZ   appendrW   rq   )rY   rP   legacy_childgrouprt   rg   rp   r   s           r   _child_selectorsrx   |   s    F#D:Ll#w-3 ! 	E.u5JCE#J	 MM% ! Mr.   c                 T    t        |       }t        |       }|r|st        d      ||fS )NzKat least one parent selector option is required when child selector is used)rZ   rx   r   )rY   selectorchild_selectorss      r   _selector_chainr|      s2    %H&t,Oxfgg_$$r.   rz   r{   c                     d| i}|r||d<   |S )Nrz   r{   r-   )rz   r{   payloads      r   _selector_chain_payloadr      s    )84G%4!"Nr.   c                 N    dj                  d | j                         D              S )N, c              3   0   K   | ]  \  }}|d |  yw)ri   Nr-   ).0rp   r   s      r   	<genexpr>z!_selector_repr.<locals>.<genexpr>   s     O
UU+Os   )joinitemsrz   s    r   _selector_reprr      s    99Ohnn>NOOOr.   c                 R    dt        |       z  }|D ]  }|dt        |      z  z  } |S )Nzd(%s)z
.child(%s))r   )rz   r{   codechild_selectors       r   _selector_chain_coder      s9    ^H--D) >~n===>Kr.   c                     | st        d      y )Nz(at least one selector option is requiredr   r   s    r   _require_selectorr      s    CDD r.   rQ   c                 :    dd i}| dv r	t         |d<   | dv rd|d<   |S )Ndefault)r8   r:   type)r<   r>   r@   rB   rD   rF   rH   Tis_flag)r   )rQ   kwargss     r   _selector_option_kwargsr      s6    '.F**vtt yMr.   leftrightupdown)r   r   r   r   forwardbackwardzhoriz-forwardzhoriz-backwardc                 h    t         j                  | j                         j                  dd            S )NrM   rL   )_SWIPE_DIRECTION_ALIASESgetrd   rO   r   s    r   _normalize_swipe_directionr      s&    #''(=(=c3(GHHr.   c                     	 t        |       S # t        $ r- dj                  t        t                    }t        d|z        w xY w)Nr   z>swipe direction must be one of %s, or provide four coordinates)floatr   r   sortedr   r   )r   
directionss     r   _parse_swipe_fxr      sI    hU| hYYv&>?@
Y\ffgghs	   
 6Ac                      | d S t        |       S r"   )r   r   s    r   _optional_floatr      s    =42eEl2r.   fc           	      P   t         D ],  \  }}t        |      } t        j                  |fi ||       } . t         D ]4  \  }}d|dd z   }t        |      } t        j                  |fi ||       } 6  t        j                  dt        dt        j
                  dd      |       } | S )	zCAdd all selector flags (--text, --resource-id, ...) + --child flag.z--child-rK   Nz--childTzKEY=VALUE [KEY=VALUE ...]zHappend a child selector level, e.g. --child text=OK resourceId=pkg:id/ok)clsmultipler   metavarhelp)rN   r   r   rQ   r   UNPROCESSED)r   rS   rM   
opt_kwargs
child_names        r   selector_optionsr      s    + 7Q,[9
3ELL3
3A67 , 6Q+ab/1
,[9
2ELL2z2156	fY$7$++5Pd	ffg	iA Hr.   c                      t        j                         }|j                  t        j                  t        j                         dt        j                  dt        dt        f fd              }|S )zVInject shared options from group ctx.obj, skipping params the function doesn't accept.r'   r   r   c                     | j                         }|j                  9|j                  }dD ](  }|v s|j                  ||j                  |             *  di |S )N)debugserialserver_hostserver_portdevice_portr-   )	find_rootobj
setdefaultr   )r'   r   root_ctxr   rp   r   paramss        r   wrapperzglobal_options.<locals>.wrapper   s_     ==?<<#,,CW 9&=%%c3773<89 {6{r.   )	inspect	signature
parametersr   pass_context	functoolswrapsContextr   )r   sigr   r   s   `  @r   global_optionsr      se    


A
C^^F
__QU]] c c    Nr.   c                      t         j                  t        j                         dt         j                  dt
        ddf fd              }|S )z0Catch exceptions and format them for CLI output.r'   r   r   Nc                    	  di | y # t         $ r/}t        |       t        j                  j	                  d      d }~wt
        $ r|}| j                         }|j                  1|j                  j                  dd      rt        j                  d       t        |       t        j                  j	                  d      d }~ww xY w)Nrj   r   Fzu2cli command failedr-   )r   r   r   
exceptionsExit	Exceptionr   r   r   logger	exception)r'   r   r   rootr   s       r   r   zhandle_errors.<locals>.wrapper   s    
	+KK 	+!""''** 	+==?Dxx#We(D  !78!""''**	+s    	C*?CA7CC)r   r   r   r   r   r   )r   r   s   ` r   handle_errorsr      sN     __Q+U]] +c +d +  + Nr.   ) ):
__future__r   r   r   r   loggingtypingr   r   r   r   r	   r
   r    uiautomator2.agent_cli.click_extr   uiautomator2.agent_cli.clientr   uiautomator2.agent_cli.outputr   uiautomator2.corer   	getLoggerr)   r   r   r   r   r   	ParamTyper   r    rN   ro   rn   rT   rm   rZ   boolrf   tuplerq   listrx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r-   r.   r   <module>r      sT   7    @ @  @ 4 7 (			8	$CxS)*	s 	s 	-EOO -  * o !:. DcN  () 3 S#X Cs Ct C  $d %U4S>4#78 %d38n t PTUXZ]U]P^ PT#s(^ P P4S> D S ES#X EC DcN  
	 Ic Ihsm Ih3 h5 h3
 a a A "Q 1 r.   