Ë
    ¾�j  ã                   ó^  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZ d dlmZmZ d dlmZ dZdZd	Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zeefdededej<                  fd„Zdeee
f   de fd„Z!dede"fd„Z#eedfdedede"deee f   fd„Z$y)é    )Úabsolute_importN)ÚIncompleteRead)ÚAnyÚDictÚOptionalÚTuple)ÚerrorÚrequest)ÚSERVER_PROTOCOL_VERSIONz	127.0.0.1iùE  g      >@c                   ó   — e Zd ZdZy)Ú
U2CliErrorz'Base error for u2cli client operations.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ú^/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/uiautomator2/agent_cli/client.pyr   r      s   „ Ú1r   r   c                   ó   — e Zd ZdZy)ÚServerNotRunningErrorz4Raised when the local u2cli server is not reachable.Nr   r   r   r   r   r      s   „ Ú>r   r   c                   ó   — e Zd ZdZy)ÚRemoteErrorz=Raised when the local u2cli server returns an error response.Nr   r   r   r   r   r      s   „ ÚGr   r   c                   óŒ   — e Zd Zeefdedefd„Zedefd„«       Z	de
defd„Zdefd	ed
eeeef      defd„Zddefd„Zdefd„Zy)ÚU2CliClientÚhostÚportc                 ó    — || _         || _        y )N©r   r   )Úselfr   r   s      r   Ú__init__zU2CliClient.__init__"   s   € ØˆŒ	Øˆ�	r   Úreturnc                 ó8   — d| j                   | j                  fz  S )Nzhttp://%s:%dr   ©r    s    r   Úbase_urlzU2CliClient.base_url&   s   € à §¡¨D¯I©IÐ 6Ñ6Ð6r   Úexcc                 ó8   — t        d| j                  ›d|›�«      S )Nzu2cli server is not running at ú: )r   r%   )r    r&   s     r   Ú_server_not_runningzU2CliClient._server_not_running*   s   € Ý$ÐPT×P]ÓP]Ñ_bÐ%cÓdÐdr   NÚmethodÚparamsÚtimeoutc                 ó¦  — t        j                  ||xs i dœ«      j                  d«      }t        j                  | j
                  dz   |ddid¬«      }	 t        j                  ||¬«      5 }t        j                  |j                  «       j                  d«      «      }d d d «       j#                  d«      st%        |j#                  d«      xs d«      ‚|j#                  d«      S # 1 sw Y   ŒIxY w# t        j                  t        t        f$ r}| j                  |«      |‚d }~wt        $ r!}t!        d	| j
                  ›d
|›�«      |‚d }~ww xY w)N)r*   r+   zutf-8z/requestzContent-Typezapplication/jsonÚPOST)ÚdataÚheadersr*   ©r,   z&invalid response from u2cli server at r(   Úokr	   zunknown u2cli server errorÚresult)ÚjsonÚdumpsÚencoder
   ÚRequestr%   ÚurlopenÚloadsÚreadÚdecoder	   ÚURLErrorÚOSErrorr   r)   Ú
ValueErrorr   Úgetr   )	r    r*   r+   r,   ÚpayloadÚreqÚrespr/   Úes	            r   r
   zU2CliClient.request-   s  € Ü—*‘*¨¸&º,ÀBÑGÓH×OÑOÐPWÓXˆÜ�o‰oØ�M‰M˜JÑ&ØØ#Ð%7Ð8Øô	
ˆð	iÜ—‘ ¨gÔ6ð ?¸$Ü—z‘z $§)¡)£+×"4Ñ"4°WÓ"=Ó>�÷?ð �x‰x˜Œ~Ü˜dŸh™h wÓ/ÒOÐ3OÓPÐPØ�x‰x˜Ó!Ð!÷?ð ?ûä—‘¤¬Ð8ò 	5Ø×*Ñ*¨1Ó-°1Ð4ûÜò 	iÝÈtÏ}Ë}Ñ^_Ð`ÓaÐghÐhûð	iús<   ÁC3 Á,3C'ÂC3 Ã'C0Ã,C3 Ã3EÄD#Ä#EÄ/EÅEc                 ó(   — | j                  d|¬«      S )Nzserver.statusr1   )r
   )r    r,   s     r   ÚstatuszU2CliClient.statusA   s   € Ø�|‰|˜O°Wˆ|Ó=Ð=r   c                 óD   — 	 | j                  «        y# t        $ r Y yw xY w)NTF)rE   r   r$   s    r   Ú
is_runningzU2CliClient.is_runningD   s%   € ð	Ø�K‰KŒMØøÜò 	Ùð	ús   ‚ “	ž)ç       @)r   r   r   ÚDEFAULT_SERVER_HOSTÚDEFAULT_SERVER_PORTÚstrÚintr!   Úpropertyr%   ÚBaseExceptionr   r)   ÚDEFAULT_REQUEST_TIMEOUTr   r   r   Úfloatr
   rE   ÚboolrG   r   r   r   r   r   !   s—   „ Ø#6ÐDWñ ˜Sð ¸có ð ð7˜#ò 7ó ð7ðe }ð eÐ9Nó eð GKÐ]tñ "˜cð "¨8°D¸¸c¸±NÑ+Cð "ÐUZó "ñ(>˜eó >ð˜Dô r   r   r   r   r"   c           	      óP  — t         j                  ddd| dt        |«      ddg	}t        j                  t        j                  t        j                  dœ}t
        j                  dk(  r't        t        d	d
«      t        t        dd
«      z  |d<   nd|d<   t        j                  |fi |¤ŽS )Nz-mzuiautomator2.agent_cliz--server-hostz--server-portÚserverz--foreground)ÚstdinÚstdoutÚstderrÚntÚCREATE_NEW_PROCESS_GROUPr   ÚDETACHED_PROCESSÚcreationflagsTÚstart_new_session)	ÚsysÚ
executablerK   Ú
subprocessÚDEVNULLÚosÚnameÚgetattrÚPopen)r   r   ÚcommandÚkwargss       r   Ústart_server_processrf   L   s©   € ä�‰ØØ ØØØÜˆD‹	ØØð
€Gô ×#Ñ#Ü×$Ñ$Ü×$Ñ$ñ€Fô
 
‡w�w�$‚ä”JÐ :¸AÓ>Ü”JÐ 2°AÓ6ñ7ð 	ˆÒð
 '+ˆÐ"Ñ#Ü×Ñ˜GÑ. vÑ.Ð.r   rE   c                 ó2   — | j                  d«      t        k(  S )NÚprotocol_version)r?   r   )rE   s    r   Ú_server_is_compatibleri   g   s   € Ø�:‰:Ð(Ó)Ô-DÑDÐDr   Úclientr,   c                 ó6  — 	 | j                  dd¬«       t        j                  «       |z   }t        j                  «       |k  r>| j                  «       sy t        j                  d«       t        j                  «       |k  rŒ>t        d«      ‚# t        $ r Y y w xY w)Nzserver.stoprH   r1   çš™™™™™¹?z&incompatible u2cli server did not stop)r
   r   ÚtimerG   Úsleep)rj   r,   Údeadlines      r   Ú_stop_serverrp   k   sƒ   € ðØ�‰�}¨cˆÔ2ô �y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 Ø× Ñ Ô"ØÜ�
‰
�3Œô �)‰)‹+˜Ó
 ô Ð=Ó
>Ð>øô ò Ùðús   ‚B Â	BÂBg      @c                 óÒ  — t        | |«      }	 |j                  «       }t        |«      r|dfS t        ||«       t        | |«      }t        j                  «       |z   }t        j                  «       |k  r\|j                  «       r|dfS |j                  «       �t	        d«      ‚t        j                  d«       t        j                  «       |k  rŒ\t	        d«      ‚# t        $ r Y Œ¬w xY w)NFTz*u2cli server exited before it became readyrl   z!u2cli server did not become ready)
r   rE   ri   rp   r   rf   rm   rG   Úpollrn   )r   r   r,   rj   rE   Úprocessro   s          r   Úensure_serverrt   y   sÑ   € ä˜˜tÓ$€Fð&Ø—‘“ˆô ! Ô(Ø˜5�=Ð Ü�V˜WÔ%ä" 4¨Ó.€GÜ�y‰y‹{˜WÑ$€HÜ
�)‰)‹+˜Ò
 Ø×ÑÔØ˜4�<ÐØ�<‰<‹>Ð%ÜÐIÓJÐJÜ�
‰
�3Œô �)‰)‹+˜Ó
 ô Ð8Ó
9Ð9øô ò Ùðús   ŽC Ã	C&Ã%C&)%Ú
__future__r   r4   r`   r^   r\   rm   Úhttp.clientr   Útypingr   r   r   r   Úurllibr	   r
   Úuiautomator2.agent_cli.protocolr   rI   rJ   rO   ÚRuntimeErrorr   r   r   Úobjectr   rK   rL   rc   rf   rQ   ri   rP   rp   rt   r   r   r   ú<module>r|      sÿ   ðõ 'ã Û 	Û Û 
Û Ý &ß -Ó -ß !å Cà!Ð ØÐ ØÐ ô2�ô 2ô?˜Jô ?ôH�*ô Hô(�&ô (ðV &9ÐFYñ /˜sð /Àð /Ð^h×^nÑ^nó /ð6E $ s¨C x¡.ð E°Tó Eð?˜ð ?¨uó ?ð 2Ð?RØ#&ñ:˜ð :¸ð :Ø ð:Ø+0°¸dÐ1BÑ+Cô:r   