
    i#                        S r SSKJr  SSKJr  SSKrSSKrSSKJr  SSK	J
r
Jr  \R                  " \5      r\\\S-  /S4   r  " S S	\5      r " S
 S5      r      SS jrg)z<Helpers and types related to waiting for a command response.    )annotations)CallableN)Protocol   )RequestFailedRequestTimeoutc                  *    \ rS rSrSr    SS jrSrg)AcceptsCallbackFunc   z3A function which accepts a callback_function kwarg.c                   g )N )selfcallback_functions     T/home/sebas/venvs/catt/lib/python3.13/site-packages/pychromecast/response_handler.py__call__AcceptsCallbackFunc.__call__   s         r   N)r   CallbackType | NonereturnNone)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r
   r
      s    = / 
	r   r
   c                  L    \ rS rSr% SrS\S'   S\S'   SS jrSS jrSS	 jrS
r	g)WaitResponse    zWait for a response.boolmsg_sentdict | Noneresponsec                P    [         R                  " 5       U l        X l        Xl        g)zInitialize.N)	threadingEvent_event_request_timeout)r   timeoutrequests      r   __init__WaitResponse.__init__&   s    oo'r   c                P    X l         Xl        U R                  R                  5         g)z$Called when the request is finished.N)r#   r!   r'   set)r   r!   r#   s      r   callbackWaitResponse.callback,   s      r   c                    U R                   R                  U R                  5      nU(       d   [        U R                  U R                  5      eU R
                  (       d  [        U R                  5      eg)zWait for the request to finish.N)r'   waitr)   r   r(   r!   r   )r   request_completeds     r   wait_responseWaitResponse.wait_response2   sN     KK,,T]];  >>}}.. r   )r'   r(   r)   r!   r#   N)r*   floatr+   strr   r   r!   r    r#   r"   r   r   )r   r   )
r   r   r   r   r   __annotations__r,   r0   r5   r   r   r   r   r   r       s    N /r   r   c                   ^ ^ SUU 4S jjnU$ )zHelper to chain callbacks.c                l   > U (       d&  [         R                  ST5        T(       a  T" X5        g T" TS9  g )NzNot calling on_success %s)r   )_LOGGERdebug)r!   r#   r   
on_successs     r   	_callback#chain_on_success.<locals>._callbackA   s,    MM5zB !(5%67r   r9   r   )r?   r   r@   s   `` r   chain_on_successrB   <   s    
8 8 r   )r?   r
   r   r   r   CallbackType)r   
__future__r   collections.abcr   loggingr%   typingr   errorr   r   	getLoggerr   r=   r    dictrC   r
   r   rB   r   r   r   <module>rK      sz    B " $    0


H
%td{+T12( / /8#8Kr   