o ]LbZ@stddlmZddlZddlmZmZddlmZmZddl m Z Gddde Z Gd d d e Z Gd d d eZdS) )absolute_importN)encodingutil)procutil stringutil) pywatchmanc@s(eZdZdddZddZeeZdS) UnavailableTFcCs&||_||_|jdkrd|_||_dS)Nstimed out waiting for responseF)msgwarn invalidate)selfr r r r@/usr/lib/python3/dist-packages/hgext/fsmonitor/watchmanclient.py__init__s   zUnavailable.__init__cCs|jrd|jSd|jS)Ns!warning: Watchman unavailable: %ssWatchman unavailable: %s)r r r rrr __bytes__ s  zUnavailable.__bytes__N)TF)__name__ __module__ __qualname__rrr strmethod__str__rrrrr s r cseZdZfddZZS)WatchmanNoRootcs||_tt||dSN)rootsuperrr)r rr  __class__rrr*szWatchmanNoRoot.__init__)rrrr __classcell__rrrrr)src@sTeZdZdddZddZddZdd Zd d Zej d d Z ddZ ddZ dS)client?cCsbd}|js d}d}|j|ddvrd|j}d}|r t||||_d|_||_||_d|_dS)Nscouldn't get userT fsmonitorsblacklistuserssuser %s in blacklistF)_user configlistr _timeout_watchmanclient_root_ui _firsttime)r uirtimeouterrr rrrr0s   zclient.__init__cCs$||_|jdur|j|dSdSr)r$r% setTimeout)r r*rrr settimeoutBs zclient.settimeoutcCs(|d}t|dstddd|jS)Nsclockclocks#clock result is missing clock valueT)r )commandr safehasattrr r.)r resultrrrgetcurrentclockGs  zclient.getcurrentclockcCs d|_dSr)r%rrrrclearconnectionOs zclient.clearconnectioncCs|jdup|jSr)r%r(rrrr availableRszclient.availablecCs ztWStyYdSwr)getpassgetuserKeyErrorrrrrr"Us   z client._userc Gs|d|jf|dd}z#|jdur*d|_|jdd}tj|jdt |d|_|jj |WStj yT}zd|j vrHt |jt|j tt|j d}~wtjyg}ztt|d}~ww) NrrFr!s watchman_exeT)r*useImmutableBserbinpathzunable to resolve root)r&r%r(r' configpathrrr$r tonativestrquery CommandErrorr rr forcebytestrr WatchmanError)r args watchmanargs watchman_exeexrrr_command]s0  zclient._commandcGsPzz|j|WWSty|d|j|YWSwty'd|_w)Nswatch)rDrr r%)r r@rrrr/ts   zclient.commandN)r ) rrrrr-r2r3r4r propertycacher"rDr/rrrrr/s   r) __future__rr5 mercurialrrmercurial.utilsrrr Exceptionr robjectrrrrrs