
    Ih                       d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ eeegef   Z G d	 d
e      Z G d d      Z e       Z	 ej
                  Z	 ej*                  Z	 ej,                  ZddZddZ e         e        ej3                  d        ed      D ]  \  ZZ eej8                  ge   y)zPattern matching registry.    )annotations)fnmatch)match)Callablecast   )entrypoints)bytes_to_strc                      e Zd ZdZy)MatcherNotInstalledzMatcher not installed/found.N)__name__
__module____qualname____doc__     F/var/www/html/planif/env/lib/python3.12/site-packages/kombu/matcher.pyr   r      s    &r   r   c                  Z    e Zd ZdZeZdgZd	dZd
dZddZddZ		 	 d	 	 	 	 	 	 	 	 	 ddZ
y)MatcherRegistryz#Pattern matching function registry.pcrec                     i | _         d | _        y )N)	_matchers_default_matcher)selfs    r   __init__zMatcherRegistry.__init__   s    578<r   c                "    || j                   |<   y)z$Add matcher by name to the registry.N)r   )r   namematchers      r   registerzMatcherRegistry.register   s    &tr   c                ~    	 | j                   j                  |       y# t        $ r | j                  d|       w xY w)z)Remove matcher by name from the registry.No matcher installed for N)r   popKeyErrorr   r   r   s     r   
unregisterzMatcherRegistry.unregister!   sE    	NNt$ 	**+D62 	s    <c                p    	 | j                   |   | _        y# t        $ r | j                  d|       w xY w)aH  Set the default matching method.

        :param name: The name of the registered matching method.
            For example, `glob` (default), `pcre`, or any custom
            methods registered using :meth:`register`.

        :raises MatcherNotInstalled: If the matching method requested
            is not available.
        r!   N)r   r   r#   r   r$   s     r   _set_default_matcherz$MatcherRegistry._set_default_matcher*   sD    	$(NN4$8D! 	**+D62 	s    5Nc                   |r/| j                   j                  |      s| j                  d|       | j                   |xs d   }|| j                  v rt	        |      }t	        |      }nt	        |      }t	        |      } |||fi |xs i S )zCall the matcher.r!   glob)r   getr   matcher_pattern_firstr
   )r   datapatternr   matcher_kwargs
match_func	first_arg
second_args           r   r   zMatcherRegistry.match;   s     4>>--g6**+G95  ^^G$5v6
d000$W-I%d+J$T*I%g.J)ZH>3GRHHr   returnNone)r   strr   MatcherFunctionr3   r4   )r   r5   r3   r4   )NN)
r,   bytesr-   r7   r   z
str | Noner.   zdict[str, str] | Noner3   bool)r   r   r   r   r   r+   r   r   r%   r'   r   r   r   r   r   r      sj    --#J='* #04II I 	I
 .I 
Ir   r   c                 8    t         j                  dt               y)z$Register glob into default registry.r)   N)registryr   r   r   r   r   register_globr;   }   s    fg&r   c                 T    t         j                  dt        t        t                     y)z$Register pcre into default registry.r   N)r:   r   r   r6   rematchr   r   r   register_pcrer>      s    fd?G<=r   r)   zkombu.matchersNr2   )r   
__future__r   r   rer   r=   typingr   r   utils.compatr	   utils.encodingr
   r5   r8   r6   	Exceptionr   r   r:   r   r%   r;   r>   r'   epargsr   r   r   r   <module>rG      s      "   ! % (C:t+,') ';I ;I~ * 	    
'
>   	  f % ,- HBRWWtr   