
    rbi;                        d dl Z d dlZd dlmZmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZ d dlZ ed          Z ede	          Z G d d          Z ed	
          dededefd            Z ed	
          dededefd            Z ed	
          dededefd            Z G d d          Z G d d          Z G d d          Z G d de          ZdedefdZ G d d          Z	 d3de
eee         f         de defdZ!d ede"fd!Z#	 d4dd#d$d%ee         d&ed'e d(edef
d)Z$d*ed+edefd,Z%	 d5d-d.d/eeef         d0ed1edefd2Z&dS )6    N)	lru_cachewraps)CallableUnionIterableTypeVarcastAny\   C)boundc                       e Zd ZU dZg Zee         ed<   g Zee         ed<   dZ	e
d             Z e
d           Z e
d           ZdS )	__config_flagsz=Internal class for defining compatibility and debugging flags
_all_names_fixed_namesconfigurationc                 6   || j         v r[t          j        | j         d| d| j         dt          t          | |                                                     dd           d S || j        v rt          | ||           d S t          d| j         d|          )N. z is z and cannot be overridden   
stacklevelzno such )r   warningswarn__name__
_type_descstrgetattrupperr   setattr
ValueError)clsdnamevalues      ^/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/pyparsing/util.py_setz__config_flags._set   s    C$$$M< - -% - -#. - -c'#uBUBU>V>V>\>\>^>^ - - -   
 FCN""C&&&&&BBBBBCCC    c                 .    |                      |d          S )NTr&   r"   names     r%   <lambda>z__config_flags.<lambda>$   s    388D$+?+? r'   c                 .    |                      |d          S )NFr)   r*   s     r%   r,   z__config_flags.<lambda>%   s    CHHT5,A,A r'   N)r   
__module____qualname____doc__r   listr   __annotations__r   r   classmethodr&   enabledisable r'   r%   r   r      s         GGJS	 L$s)    JD D [D [??@@FkAABBGGGr'   r      )maxsizelocstrgreturnc                     |}d| cxk     rt          |          k     rn n|| dz
           dk    rdn| |                    dd|           z
  S )a  
    Returns current column within a string, counting newlines as line separators.
    The first column is number 1.

    Note: the default parsing behavior is to expand tabs in the input string
    before starting the parsing process.  See
    :meth:`ParserElement.parse_string` for more
    information on parsing strings containing ``<TAB>`` s, and suggested
    methods to maintain a consistent view of the parsed string, the parse
    location, and line and column positions within the parsed string.
    r      
)lenrfind)r9   r:   ss      r%   colrB   (   sc     	AC    #a&&     QsQwZ4%7%711S1774QRTWCXCX=XXr'   c                 6    |                     dd|           dz   S )a  Returns current line number within a string, counting newlines as line separators.
    The first line is number 1.

    Note - the default parsing behavior is to expand tabs in the input string
    before starting the parsing process.  See :meth:`ParserElement.parse_string`
    for more information on parsing strings containing ``<TAB>`` s, and
    suggested methods to maintain a consistent view of the parsed string, the
    parse location, and line and column positions within the parsed string.
    r>   r   r=   )count)r9   r:   s     r%   linenorE   9   s     ::dAs##a''r'   c                     |                     dd|           }|                    d|           }|dk    r||dz   |         n||dz   d         S )zh
    Returns the line of text containing loc within a string, counting newlines as line separators.
    r>   r   r=   N)r@   find)r9   r:   last_crnext_crs       r%   linerJ   G   sZ    
 jjq#&&Giic""G*1Q,,4!g%&&D1<OOr'   c                       e Zd Zd ZdS )_UnboundedCachec                    i j         t                      x| _        fd}fd}fd}d | _        t	          j        ||           | _         t	          j        ||           | _        t	          j        ||           | _        d S )Nc                      |          S Nr6   _key	cache_getnot_in_caches     r%   getz%_UnboundedCache.__init__.<locals>.getW       9S,///r'   c                     ||<   d S rO   r6   )rQ   rR   r$   caches      r%   set_z&_UnboundedCache.__init__.<locals>.set_Z   s    E#JJJr'   c                 0                                      d S rO   clearrQ   rX   s    r%   r\   z'_UnboundedCache.__init__.<locals>.clear]       KKMMMMMr'   )rU   objectrT   sizetypes
MethodTypesetr\   )selfrU   rY   r\   rX   rS   rT   s       @@@r%   __init__z_UnboundedCache.__init__R   s    I	+1883L	0 	0 	0 	0 	0 	0	 	 	 	 		 	 	 	 	 	#C..#D$//%eT22


r'   Nr   r.   r/   re   r6   r'   r%   rL   rL   Q   s#        3 3 3 3 3r'   rL   c                       e Zd Zd ZdS )
_FifoCachec                 (   i | _         t                      x| _        j        j        fd}fd}fd}t          j        ||           | _        t          j        ||           | _        t          j        ||           | _        d S )Nc                      |          S rO   r6   rP   s     r%   rU   z _FifoCache.__init__.<locals>.getn   rV   r'   c                     ||<   t                    k    r: t          t                                         t                    k    8d S d S rO   )r?   nextiter)rQ   rR   r$   rX   	cache_popr`   s      r%   rY   z!_FifoCache.__init__.<locals>.set_q   sZ    E#Je**t##	$tE{{++,,, e**t######r'   c                 0                                      d S rO   r[   r]   s    r%   r\   z"_FifoCache.__init__.<locals>.clearw   r^   r'   )	r`   r_   rT   rU   popra   rb   rc   r\   )	rd   r`   rU   rY   r\   rX   rS   rn   rT   s	    `   @@@@r%   re   z_FifoCache.__init__g   s    	+1883LI	I		0 	0 	0 	0 	0 	0	- 	- 	- 	- 	- 	- 	-	 	 	 	 	 #C..#D$//%eT22


r'   Nrf   r6   r'   r%   rh   rh   f   s#        3 3 3 3 3r'   rh   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )LRUMemoz
    A memoizing mapping that retains `capacity` deleted items

    The memo tracks retained items by their access order; once `capacity` items
    are retained, the least recently used item is discarded.
    c                 0    || _         i | _        i | _        d S rO   )	_capacity_active_memory)rd   capacitys     r%   re   zLRUMemo.__init__   s    !r'   c                     	 | j         |         S # t          $ r2 | j                            |          | j        |<   | j        |         cY S w xY wrO   )ru   KeyErrorrv   rp   rd   rR   s     r%   __getitem__zLRUMemo.__getitem__   s^    	%<$$ 	% 	% 	% $ 0 0 5 5DL<$$$$	%s    9A
Ac                 P    | j                             |d            || j        |<   d S rO   )rv   rp   ru   )rd   rR   r$   s      r%   __setitem__zLRUMemo.__setitem__   s,    d###!Sr'   c                     	 | j                             |          }t          | j                  d | j        dz             }|D ]}| j                            |           || j        |<   d S # t
          $ r Y d S w xY wNr=   )ru   rp   r1   rv   rt   ry   )rd   rR   r$   oldest_keyskey_to_deletes        r%   __delitem__zLRUMemo.__delitem__   s    	&L$$S))E t|,,-D!1C/D-DEK!, 0 0  //// %DL  	 	 	DD	s   A, ,
A:9A:c                 j    | j                                          | j                                         d S rO   )ru   r\   rv   rd   s    r%   r\   zLRUMemo.clear   s0    r'   N)	r   r.   r/   r0   re   r{   r}   r   r\   r6   r'   r%   rr   rr      si           
% % %" " "	& 	& 	&    r'   rr   c                       e Zd ZdZd ZdS )UnboundedMemoz<
    A memoizing mapping that retains all deleted items
    c                     d S rO   r6   rz   s     r%   r   zUnboundedMemo.__delitem__   s    r'   N)r   r.   r/   r0   r   r6   r'   r%   r   r      s-             r'   r   rA   c                     dD ] }|                      |t          |z             } !|                      dd          } |                      dd          } t          |           S )Nz\^-[]r>   z\n	z\t)replace_bslashr   )rA   cs     r%   _escape_regex_range_charsr      s[     & &IIa1%%			$A			$Aq66Mr'   c                   *    e Zd ZdZddZdedefdZdS )_GroupConsecutivea  
    Used as a callable `key` for itertools.groupby to group
    characters that are consecutive:

    .. testcode::

       from itertools import groupby
       from pyparsing.util import _GroupConsecutive

       grouped = groupby("abcdejkmpqrs", key=_GroupConsecutive())
       for index, group in grouped:
           print(tuple([index, list(group)]))

    prints:

    .. testoutput::

       (0, ['a', 'b', 'c', 'd', 'e'])
       (1, ['j', 'k'])
       (2, ['m'])
       (3, ['p', 'q', 'r', 's'])
    r;   Nc                 R    d| _         t          j                    | _        d| _        d S )Nr   )prev	itertoolsrD   counterr$   r   s    r%   re   z_GroupConsecutive.__init__   s#    	 ((


r'   charc                     t          |          }|| j        c| _        }||z
  dk    rt          | j                  | _        | j        S r   )ordr   rl   r   r$   )rd   r   c_intr   s       r%   __call__z_GroupConsecutive.__call__   sD    D			44<!dl++DJzr'   )r;   N)r   r.   r/   r0   re   r   intr   r6   r'   r%   r   r      sT         .   
S S      r'   r   T	re_escapec                   	 dt           dt           fd	dt           dt           fd}|s|	g }t          t          |                     }t          |          dk    rt	          j        |t                                D ]\  }}t          |          x}}t          j	        t                    5  |^ }}ddd           n# 1 swxY w Y   ||k    r|                     	|                     q|t          t          |          dz             k    r,|                     	|            	|                      |                     	|           d	 	|                      n	fd
|D             }d                    |          S )a(  
    Take a string or list of single-character strings, and return
    a string of the consecutive characters in that string collapsed
    into groups, as might be used in a regular expression '[a-z]'
    character set::

        'a' -> 'a' -> '[a]'
        'bc' -> 'bc' -> '[bc]'
        'defgh' -> 'd-h' -> '[d-h]'
        'fdgeh' -> 'd-h' -> '[d-h]'
        'jklnpqrtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]'

    Duplicates get collapsed out::

        'aaa' -> 'a' -> '[a]'
        'bcbccb' -> 'bc' -> '[bc]'
        'defghhgf' -> 'd-h' -> '[d-h]'
        'jklnpqrjjjtu' -> 'j-lnp-rtu' -> '[j-lnp-rtu]'

    Spaces are preserved::

        'ab c' -> ' a-c' -> '[ a-c]'

    Characters that are significant when defining regex ranges
    get escaped::

        'acde[]-' -> r'\-\[\]ac-e' -> r'[\-\[\]ac-e]'
    r   r;   c                     | dv rd| z   n| S )Nz\^-][\r6   r   s    r%   escape_re_range_charz8_collapse_string_to_ranges.<locals>.escape_re_range_char  s    ==taxxa/r'   c                     | S rO   r6   r   s    r%   no_escape_re_range_charz;_collapse_string_to_ranges.<locals>.no_escape_re_range_char  s    r'      rR   Nr=   -c                 &    g | ]} |          S r6   r6   ).0r   r   s     r%   
<listcomp>z._collapse_string_to_ranges.<locals>.<listcomp>4  s%    8881##A&&888r'    )r   sortedrc   r?   r   groupbyr   rl   
contextlibsuppressr!   appendchrr   join)
rA   r   r   rets_charsrQ   charsfirstlastr   s
            @r%   _collapse_string_to_rangesr      s'   N0 0 0 0 0 03 3      76
C  AG
7||a ")'7H7J7JKKK 	 	HAu  ;;&ED$Z00 ! ! D! ! ! ! ! ! ! ! ! ! ! ! ! ! ! }}

//667777SZZ!^,,,, 

22599W;O;OPT;U;UWWXXXX
 

++E22QQ5I5I$5O5OQQ   )	< 9888888773<<s   -B??C	C	llc                    g }| D ]z}t          |t                    r|                    |           -t          |t                    r#|                    t          |                     e|                    |           {|S rO   )
isinstancer   r   r   extend_flatten)r   r   is      r%   r   r   9  s~    
C 	 	 a 	JJqMMMM8$$ 	JJx{{####JJqMMMMJr'   r   r=   non_capturing_groups_level	word_list	max_levelr   r   c          
         dt           t                   fd}|dk    r%| st          d          d| v rt          d          n| sdS t          i                     |                     } |dk    rpt	          d | D                       r4d	                    t          d
 | D             t          d                    S dd                    d | D                        dS g }d}|rdnd} |t          |                     D ]2\  }}	|                    |           d	}t          j
        |          }d}
d|	v rd}
|	                    d           t          |	          dk    rLt          d |	D                       r;|                    | dd                    d |	D                        d|
            ||k     rCt          t          |	          |||dz             }|                    | d| | d|
            t          d |	D                       r<|                    | dd                    d |	D                        d|
            T|	                    t          d           |                    | d| d	                    d |	D                        d|
            |	rmt          j
        |	d                   }t          |          dk    r#|
r!|                    | d| | d|
             |                    | | |
            |                    |           4d                    |          S )z
    Create a regular expression string from a list of words, collapsing by common
    prefixes and optional suffixes.

    Calls itself recursively to build nested sublists for each group of suffixes
    that have a shared prefix.
    namelistc              3      K   t          |           dk    rDt          j        | d           D ]*\  }}|t          d |D             t           d          fV  +d S | d         d         | d         dd          gfV  d S )Nr=   c                     | d d         S r   r6   )rA   s    r%   r,   zOmake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<lambda>Y  s    aPRQRPRe r'   r   c                 "    g | ]}|d d         S r=   Nr6   r   rA   s     r%   r   zQmake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<listcomp>Z  s     %>%>%>ae%>%>%>r'   TrR   reverser   )r?   r   r   r   )r   prefixsuffixess      r%   !get_suffixes_from_common_prefixesz=make_compressed_re.<locals>.get_suffixes_from_common_prefixesW  s      x==1$-$5hOO$T$T$T W W f%>%>X%>%>%>CQUVVVVVVVVW W 1+a.8A;qrr?"3333333r'   r=   z&no words given to make_compressed_re()r   z%word list cannot contain empty stringr   c              3   <   K   | ]}t          |          d k    V  dS r   r?   r   wds     r%   	<genexpr>z%make_compressed_re.<locals>.<genexpr>m  s,      //rs2ww{//////r'   |c                 6    g | ]}t          j        |          S r6   reescaper   s     r%   r   z&make_compressed_re.<locals>.<listcomp>o  s     :::"	":::r'   Tr   [c              3   4   K   | ]}t          |          V  d S rO   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>r  s+      QQ8<<QQQQQQr'   ]z?:?c              3   <   K   | ]}t          |          d k    V  dS r   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>  s,      1113q66Q;111111r'   c              3   4   K   | ]}t          |          V  d S rO   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>  s+      (X(X!)B1)E)E(X(X(X(X(X(Xr'   r   ()c              3   <   K   | ]}t          |          d k    V  dS r   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>  s,      9913q66Q;999999r'   c              3   4   K   | ]}t          |          V  d S rO   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>  s,      0`0`RS1J11M1M0`0`0`0`0`0`r'   c              3   >   K   | ]}t          j        |          V  d S rO   r   r   s     r%   r   z%make_compressed_re.<locals>.<genexpr>  s*      :Z:ZA29Q<<:Z:Z:Z:Z:Z:Zr'   )r1   r   r!   fromkeysanyr   r   r?   r   r   r   removeallmake_compressed_resort)r   r   r   r   r   r   sepncgroupinitialr   trailing	suffix_resuffixs                r%   r   r   H  s   4DI 4 4 4 4 {{ 	GEFFF??DEEE   	2 R[[++,,IA~~//Y///// 	U88::	:::TRRR   UrwwQQyQQQQQTTTT
C
C*2ddG>>vi?P?PQQ +$ +$

3)G$$>>HOOBx==11111111 

ee(X(Xx(X(X(X!X!Xee[cee    I%% 2x((!-A%z	! ! !I JJ'KKGKYKKKKLLLL9999999 

&mm0`0`W_0`0`0`)`)`mmckmm    !#t<<<

&ggg#((:Z:ZQY:Z:Z:Z2Z2Zgg]egg     $8A;//v;;??x?JJ'HHGHVHHhHHIIIIJJ'=6=8==>>>>

7####773<<r'   compat_namefnc                 N    t          d          dgt          t          j                  j                  d d         k    rt                     fd            }nt                     fd            }dj         d|_         |_        j        |_        t          t          j                  rj        |_        n>t          t                    r"t          d          rj        j        |_        nd |_        j        |_        t#          t$          |          S )	N__func__rd   r=   c                 h    t          j        dj        t          d            | g|R i |S Nz deprecated - use r   r   r   r   r   DeprecationWarning)rd   argskwargsr   r   s      r%   _innerz replaced_by_pep8.<locals>._inner  sW    MCCBKCC"   
 2d,T,,,V,,,r'   c                  `    t          j        dj        t          d            | i |S r   r   )r   r   r   r   s     r%   r   z replaced_by_pep8.<locals>._inner  sL    MCCBKCC"   
 2t&v&&&r'   z6
        .. deprecated:: 3.0.0
           Use :class:`z` instead
        re   )r   r1   inspect	signature
parametersr   r   r0   r2   r   ra   FunctionType__kwdefaults__typehasattrre   r/   r	   r   )r   r   r   s   `` r%   replaced_by_pep8r    sO    
Z	$	$B 	x4)"--899"1"===	r	- 	- 	- 	- 	- 
	- 	- 
r	' 	' 	' 	' 	' 
	'  FN "FO/F"e()) % " 1	B		 %'"j"9"9 % " : $/F6??r'   r   )new_namer   arg_namer  c                    t          j        d          fdt          dt          fd}|| v r/|p
 ||          }t          j        |d|t
          d           n|| |<   | |         S )Nz([a-z])([A-Z])rA   r;   c                 V    |                     d|           } |                                 S )Nz\1_\2)sublower)rA   _re_sub_patterns     r%   to_pep8_namez(deprecate_argument.<locals>.to_pep8_name  s%    !,,wwyyr'   z argument is deprecated, use r   )categoryr   )r   compiler   r   r   r   )r   r  default_valuer  r  s        r%   deprecate_argumentr    s     .0Z8I-J-J   s     65||H55DDDD'	
 	
 	
 	
 	
 )x(r'   )T)r   rO   )'r   r   	functoolsr   r   r   r   ra   typingr   r   r   r   r	   r
   r   r   r   r   r   r   r   rB   rE   rJ   rL   rh   rr   dictr   r   r   boolr   r1   r   r   r  r  r6   r'   r%   <module>r     s       				 & & & & & & & &       @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 
#b''GCx   C C C C C C C C2 3YS Y Y Y Y Y Y  3
( 
(3 
(3 
( 
( 
( 
( 3Pc P P P P P P3 3 3 3 3 3 3 3*3 3 3 3 3 3 3 32% % % % % % % %P    D        " " " " " " " "L 59X XS(3- X-1XX X X Xv d    " \ "&\ \ \}\\ 	\
 \ 	\ \ \ \~*# *1 * * * * *\ :>RT  cN&)LO     r'   