
    k7i
                         S SK Jr  S SKJr  S SKJrJrJrJr   " S S5      r	 " S S5      r
 " S S	5      r " S
 S\5      rS\4S jrg)    )contextmanager)count)HeaderFieldsMessageMessageFlagMessageTypec                        \ rS rSrS rS rSrg)MessageFilters   c                 0    0 U l         [        5       U l        g N)filtersr   
filter_idsselfs    K/home/james-whalen/.local/lib/python3.13/site-packages/jeepney/io/common.py__init__MessageFilters.__init__   s    '    c              #      #    U R                   R                  5        H)  nUR                  R                  U5      (       d  M%  Uv   M+     g 7fr   )r   valuesrulematches)r   messagehandles      r   r   MessageFilters.matches   s6     ll))+F{{""7++ ,s   <A	A)r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r
   r
      s    "r   r
   c                   4    \ rS rSrS\4S jrS rS rS rSr	g)	FilterHandle   r   c                     Xl         [        UR                  5      U l        X l        X0l        X R                   R                  U R                  '   g r   )_filtersnextr   
_filter_idr   queuer   )r   r   r   r*   s       r   r   FilterHandle.__init__   s9    w112	
15doo.r   c                 F    U R                   R                  U R                  	 g r   )r'   r   r)   r   s    r   closeFilterHandle.close   s    MM!!$//2r   c                     U R                   $ r   )r*   r   s    r   	__enter__FilterHandle.__enter__   s    zzr   c                 $    U R                  5         g)NF)r-   )r   exc_typeexc_valexc_tbs       r   __exit__FilterHandle.__exit__    s    

r   )r)   r'   r*   r   N)
r   r   r   r    r
   r   r-   r0   r6   r!   r"   r   r   r$   r$      s    6 63r   r$   c                   B    \ rS rSrS r\S 5       rS rS	S\4S jjr	Sr
g)
ReplyMatcher%   c                     0 U l         g r   _futuresr   s    r   r   ReplyMatcher.__init__&   s	    r   c              #   p   #    X R                   U'    Uv   U R                   U	 g! U R                   U	 f = f7f)z>Context manager to capture a reply for the given serial numberNr<   )r   serialfutures      r   catchReplyMatcher.catch)   s5      !'f	&Lf%f%s   6$ 636c                     UR                   R                  R                  [        R                  S5      nX R
                  ;   a  U R
                  U   R                  U5        gg)zoDispatch an incoming message which may be a reply

Returns True if a task was waiting for it, otherwise False.
TF)headerfieldsgetr   reply_serialr=   
set_result)r   msg
rep_serials      r   dispatchReplyMatcher.dispatch3   sM    
 ZZ&&**<+D+DbI
&MM*%005r   Nexcc                     Uc  [        S5      nU R                  0 so l        UR                  5        H  nUR                  U5        M     g)z4Throw an error in any task still waiting for a replyNz(D-Bus router closed before reply arrived)RouterClosedr=   r   set_exception)r   rO   futuresfuts       r   drop_allReplyMatcher.drop_all?   sA    ;IJC!%>>#Cc" $r   r<   r   )r   r   r   r    r   r   rB   rM   	ExceptionrU   r!   r"   r   r   r9   r9   %   s1     & &
#I # #r   r9   c                       \ rS rSrSrSrg)rQ   H   zRaised in tasks waiting for a reply when the router is closed

This will also be raised if the receiver task crashes, so tasks are not
stuck waiting for a reply that can never come. The router object will not
be usable after this is raised.
r"   N)r   r   r   r    __doc__r!   r"   r   r   rQ   rQ   H   s     	r   rQ   rK   c                    U R                   R                  [        R                  :w  a#  [	        SU R                   R                   S35      e[
        R                  U R                   R                  -  (       a  [        S5      eg)z4Raise an error if we wouldn't expect a reply for msgz,Only method call messages have replies (not )z/This message has the no_reply_expected flag setN)	rF   message_typer   method_call	TypeErrorr   no_reply_expectedflags
ValueError)rK   s    r   check_replyablerc   R   sl    
zz+"9"99   #

 7 78; < 	<$$szz'7'77JKK 8r   N)
contextlibr   	itertoolsr   jeepneyr   r   r   r   r
   r$   r9   rW   rQ   rc   r"   r   r   <module>rg      sJ    %  C C  ( #  #F	9 	L Lr   