
    6h1                        S SK Jr  S SKrS SKJrJr  S SKJrJr  SSK	J
r
   " S S\5      r " S	 S
\5      r " S S5      rg)    )annotationsN)encodingutil)procutil
stringutil   )
pywatchmanc                  H    \ rS rSrSS jrS r\R                  " \5      rSr	g)Unavailable   c                V    Xl         X l        U R                   S:X  a  SU l        X0l        g )Ns   timed out waiting for responseF)msgwarn
invalidate)selfr   r   r   s       @/usr/lib/python3/dist-packages/hgext/fsmonitor/watchmanclient.py__init__Unavailable.__init__   s%    	8888DI$    c                `    U R                   (       a  SU R                  -  $ SU R                  -  $ )Ns!   warning: Watchman unavailable: %ss   Watchman unavailable: %s)r   r   r   s    r   	__bytes__Unavailable.__bytes__    s'    997$((BB.99r   )r   r   r   N)TF)
__name__
__module____qualname____firstlineno__r   r   r   	strmethod__str____static_attributes__ r   r   r   r      s    %:   +Gr   r   c                  (   ^  \ rS rSrU 4S jrSrU =r$ )WatchmanNoRoot)   c                0   > Xl         [        TU ]	  U5        g N)rootsuperr   )r   r'   r   	__class__s      r   r   WatchmanNoRoot.__init__*   s    	r   )r'   )r   r   r   r   r   r    __classcell__)r)   s   @r   r#   r#   )   s     r   r#   c                  f    \ rS rSrSS jrS rS rS rS r\	R                  S 5       rS rS	 rS
rg)client/   c                    S nU R                   (       d  SnSnU R                   UR                  SS5      ;   a  SU R                   -  nSnU(       a  [        UW5      eX0l        S U l        X l        Xl        SU l        g )Ns   couldn't get userT	   fsmonitors   blacklistuserss   user %s in blacklistF)_user
configlistr   _timeout_watchmanclient_root_ui
_firsttime)r   uir'   timeouterrr   s         r   r   client.__init__0   sq    zz&CD::|5FGG)DJJ6CDc4((#
r   c                b    Xl         U R                  b  U R                  R                  U5        g g r&   )r3   r4   
setTimeout)r   r9   s     r   
settimeoutclient.settimeoutB   s,    +  ++G4 ,r   c                r    U R                  S5      n[        US5      (       d
  [        SSS9eUR                  $ )Ns   clockclocks#   clock result is missing clock valueT)r   )commandhasattrr   rA   )r   results     r   getcurrentclockclient.getcurrentclockG   s;    h'vw''64  ||r   c                    S U l         g r&   )r4   r   s    r   clearconnectionclient.clearconnectionO   s
    #r   c                D    U R                   S L=(       d    U R                  $ r&   )r4   r7   r   s    r   	availableclient.availableR   s    ##4/B4??Br   c                N     [         R                  " 5       $ ! [         a     g f = fr&   )getpassgetuserKeyErrorr   s    r   r1   client._userU   s&    	??$$ 		s    
$$c                   US   U R                   4USS  -   n U R                  c\  SU l        U R                  R	                  SS5      n[
        R                  " U R                  S[        R                  " U5      S9U l        U R                  R                  " U6 $ ! [
        R                   ar  nSUR                  ;   a4  [        U R                   [        R                  " UR                  5      5      e[!        [        R                  " UR                  5      5      eS nAf[
        R"                   a$  n[!        [        R                  " U5      5      eS nAff = f)	Nr   r   Fr0   s   watchman_exeT)r9   useImmutableBserbinpathzunable to resolve root)r5   r4   r7   r6   
configpathr	   r-   r3   r   tonativestrqueryCommandErrorr   r#   r   forcebytestrr   WatchmanError)r   argswatchmanargswatchman_exeexs        r   _commandclient._command]   s   Q,tABx7	;##+"'#xx22 /  (2'8'8 MM%)$00>($
 ''--|<<&& 	?'2661$JJ
 7 7 ?  j55bff=>>'' 	;j55b9::	;s%   BB E/A-DE3EEc                      U R                   " U6 $ ! [         a#    U R                  S5        U R                   " U6 s $ f = f! [         a	    S U l        e f = f)Ns   watch)r_   r#   r   r4   )r   r[   s     r   rB   client.commandt   sd    	,}}d++! , h'}}d++	,
  	 $(D 		s    *?A ?A A)r7   r5   r3   r6   r4   N)g      ?)r   r   r   r   r   r>   rE   rH   rK   r   propertycacher1   r_   rB   r    r!   r   r   r-   r-   /   s@    $5
$C 
 ;.r   r-   )
__future__r   rN   	mercurialr   r   mercurial.utilsr   r    r	   	Exceptionr   r#   r-   r!   r   r   <module>ri      s@    # 
 ,) ,"[ R Rr   