
    XaJj                     L    d dl mZ ddgZ G d dej                        Zi Zd Zy)    )_objcprotocolNamedProtocolErrorc                       e Zd ZdZy)r   objcN)__name__
__module____qualname__     Y/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/objc/_protocols.pyr   r      s    Jr   c                    	 t         |    S # t        $ r Y nw xY wt        j                         D ]-  }|j                  }t         j                  ||       || k(  s+|c S  t        j                  d      D ]I  }t        j                  |      D ]/  }|j                  }t         j                  ||       || k(  s+|c c S  K t        d| d|       )z
    Returns a Protocol object for the named protocol. This is the
    equivalent of @protocol(name) in Objective-C.
    Raises objc.ProtocolError when the protocol does not exist.
    Tz	protocol z does not exist)	PROTOCOL_CACHEKeyErrorr   protocolsForProcessr   
setdefaultgetClassListprotocolsForClassr   )nameppnameclss       r   r   r      s    d## &&(

!!%+D=H	 )
 !!$'((-AJJE%%eQ/}	 . ( )D8?;T
BBs    	N)r   r   __all__errorr   r   r   r   r   r   <module>r      s/    O
,EKK  Cr   