
    0j                         d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ee
e         geee                  f         Z G d d          Zd	S )
z[
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
    )Any	AwaitableCallableListOptional)ActivityBase   )ActivityContext)RouteSelectorc                   H    e Zd ZdZd ZdededdfdZdede	e         fd	Z
dS )
ActivityRouterzKRoutes incoming activities to registered handlers using selector functions.c                     g | _         d S )N)_routes)selfs    k/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/microsoft_teams/apps/routing/router.py__init__zActivityRouter.__init__   s    DF    selectorhandlerreturnNc                 >    | j                             ||f           dS )z4Add a handler for a specific activity configuration.Nr   append)r   r   r   s      r   add_handlerzActivityRouter.add_handler   s#    Xw/00000r   activityc                 d    g }| j         D ]%\  }} ||          r|                    |           &|S )zKSelect all handlers that match the given activity using selector functions.r   )r   r   matching_handlersr   r   s        r   select_handlerszActivityRouter.select_handlers   sK    35!% 	2 	2Hgx!! 2!((111  r   )__name__
__module____qualname____doc__r   r   ActivityHandlerr   r   r   r    r   r   r   r      s}        UUG G G1M 1O 1PT 1 1 1 1! !o9N ! ! ! ! ! !r   r   N)r"   typingr   r   r   r   r   microsoft_teams.api.modelsr   activity_contextr
   activity_route_configsr   r#   r   r$   r   r   <module>r)      s    
 < ; ; ; ; ; ; ; ; ; ; ; ; ; 3 3 3 3 3 3 - - - - - - 1 1 1 1 1 1 OL9:Ihsm<TTU! ! ! ! ! ! ! ! ! !r   