
    Dg2              	          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 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	 d(de	ee
e   f   dedefdZde
de fd Z!	 d)d!e
e   d"ed#edefd$Z"d%ed&edefd'Z#y)*    N)	lru_cachewraps)CallableUnionIterableTypeVarcast\   C)boundc                   r    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y)	__config_flagsz=Internal class for defining compatibility and debugging flags
_all_names_fixed_namesconfigurationc                 >   || j                   v rYt        j                  | j                   d| d| j                   dt        t        | |            j                          dd       y || j                  v rt        | ||       y 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      N/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/pyparsing/util.py_setz__config_flags._set   s    C$$$MM<<.%#..)9c'#uBU>V>\>\>^=_+-
 CNN"C&x'7q	BCC    c                 &    | j                  |d      S )NTr$   r    names     r#   <lambda>z__config_flags.<lambda>#   s    388D$+? r%   c                 &    | j                  |d      S )NFr'   r(   s     r#   r*   z__config_flags.<lambda>$   s    CHHT5,A r%   N)r   
__module____qualname____doc__r   listr   __annotations__r   r   classmethodr$   enabledisable r%   r#   r   r      sR    GJS	 L$s)  JD D ?@FABGr%   r      )maxsizelocstrgreturnc                 z    |}d| cxk  rt        |      k  rn n|| dz
     dk(  rdS | |j                  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
    :class:`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)r7   r8   ss      r#   colr@   '   sG     	AC #a& QsQwZ4%71XS1774QRTWCX=XXr%   c                 .    |j                  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 :class:`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)r7   r8   s     r#   linenorC   8   s     ::dAs#a''r%   c                 v    |j                  dd|       }|j                  d|       }|dk\  r||dz   | S ||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)r7   r8   last_crnext_crs       r#   linerH   F   sM    
 jjq#&Giic"G*1Q,4!g&OD1<OOr%   c                       e Zd Zd Zy)_UnboundedCachec                    i j                   t               x| _        fd}fd}fd}d | _        t	        j
                  ||       | _         t	        j
                  ||       | _        t	        j
                  ||       | _        y )Nc                      |      S Nr4   _key	cache_getnot_in_caches     r#   getz%_UnboundedCache.__init__.<locals>.getV       S,//r%   c                     ||<   y rM   r4   )rO   rP   r"   caches      r#   set_z&_UnboundedCache.__init__.<locals>.set_Y   s    E#Jr%   c                 &    j                          y rM   clearrO   rV   s    r#   rZ   z'_UnboundedCache.__init__.<locals>.clear\       KKMr%   )rS   objectrR   sizetypes
MethodTypesetrZ   )selfrS   rW   rZ   rV   rQ   rR   s       @@@r#   __init__z_UnboundedCache.__init__Q   st    II	+183L	0		 	##C.##D$/%%eT2
r%   Nr   r,   r-   rc   r4   r%   r#   rJ   rJ   P   s    3r%   rJ   c                       e Zd Zd Zy)
_FifoCachec                 8   i | _         t               x| _        j                  j                  fd}fd}fd}t        j                  ||       | _        t        j                  ||       | _        t        j                  ||       | _        y )Nc                      |      S rM   r4   rN   s     r#   rS   z _FifoCache.__init__.<locals>.getm   rT   r%   c                     ||<   t              kD  r* t        t                           t              kD  r)y y rM   )r=   nextiter)rO   rP   r"   rV   	cache_popr^   s      r#   rW   z!_FifoCache.__init__.<locals>.set_p   s7    E#Je*t#$tE{+, e*t#r%   c                 &    j                          y rM   rY   r[   s    r#   rZ   z"_FifoCache.__init__.<locals>.clearv   r\   r%   )	r^   r]   rR   rS   popr_   r`   ra   rZ   )	rb   r^   rS   rW   rZ   rV   rQ   rl   rR   s	    `   @@@@r#   rc   z_FifoCache.__init__f   s}    	+183LII	II		0	-	 ##C.##D$/%%eT2
r%   Nrd   r4   r%   r#   rf   rf   e   s    3r%   rf   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)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                 .    || _         i | _        i | _        y rM   )	_capacity_active_memory)rb   capacitys     r#   rc   zLRUMemo.__init__   s    !r%   c                     	 | j                   |   S # t        $ r: | j                  j                  |      | j                  |<   | j                  |   cY S w xY wrM   )rs   KeyErrorrt   rn   rb   rP   s     r#   __getitem__zLRUMemo.__getitem__   sQ    	%<<$$ 	% $ 0 0 5DLL<<$$	%s    A AAc                 Z    | j                   j                  |d        || j                  |<   y rM   )rt   rn   rs   )rb   rP   r"   s      r#   __setitem__zLRUMemo.__setitem__   s$    d#!Sr%   c                    	 | j                   j                  |      }t        | j                        d | j                  dz     }|D ]  }| j                  j                  |        || j                  |<   y # t
        $ r Y y w xY wNr;   )rs   rn   r/   rt   rr   rw   )rb   rP   r"   oldest_keyskey_to_deletes        r#   __delitem__zLRUMemo.__delitem__   s    	&LL$$S)E t||,-D!1C/DEK!, 0  /0 %DLL  		s   A5 5	B Bc                 l    | j                   j                          | j                  j                          y rM   )rs   rZ   rt   rb   s    r#   rZ   zLRUMemo.clear   s"    r%   N)	r   r,   r-   r.   rc   ry   r{   r   rZ   r4   r%   r#   rp   rp   ~   s     
%"	&r%   rp   c                       e Zd ZdZd Zy)UnboundedMemoz<
    A memoizing mapping that retains all deleted items
    c                      y rM   r4   rx   s     r#   r   zUnboundedMemo.__delitem__   s    r%   N)r   r,   r-   r.   r   r4   r%   r#   r   r      s    r%   r   r?   c                     dD ]  }| j                  |t        |z         }  | j                  dd      } | j                  dd      } t        |       S )Nz\^-[]r<   z\n	z\t)replace_bslashr   )r?   cs     r#   _escape_regex_range_charsr      sN     &IIa1%&			$A			$Aq6Mr%   c                   &    e Zd ZdZd ZdedefdZy)_GroupConsecutiveaQ  
    Used as a callable `key` for itertools.groupby to group
    characters that are consecutive:
        itertools.groupby("abcdejkmpqrs", key=IsConsecutive())
        yields:
            (0, iter(['a', 'b', 'c', 'd', 'e']))
            (1, iter(['j', 'k']))
            (2, iter(['m']))
            (3, iter(['p', 'q', 'r', 's']))
    c                 R    d| _         t        j                         | _        d| _        y )Nr   )prev	itertoolsrB   counterr"   r   s    r#   rc   z_GroupConsecutive.__init__   s    	 (
r%   charr9   c                     t        |      }|| j                  c| _        }||z
  dkD  rt        | j                        | _        | j                  S r}   )ordr   rj   r   r"   )rb   r   c_intr   s       r#   __call__z_GroupConsecutive.__call__   sB    D		44<!dll+DJzzr%   N)r   r,   r-   r.   rc   r   intr   r4   r%   r#   r   r      s    	
S S r%   r   	re_escapec                    dt         dt         fd}dt         dt         fd}|s|}g }t        t        |             }t        |      dkD  rt	        j
                  |t                     D ]  \  }}t        |      x}}	t        j                  t              5  |^ }}	ddd       ||	k(  r|j                   ||             W|	t        t        |      dz         k(  r"|j                   ||        ||	              |j                   ||       d	 ||	               n|D 
cg c]
  }
 ||
       }}
d
j                  |      S # 1 sw Y   xY wc c}
w )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   r9   c                     | dv rd| z   S | S )Nz\^-][\r4   r   s    r#   escape_re_range_charz8_collapse_string_to_ranges.<locals>.escape_re_range_char   s    =tax/a/r%   c                     | S rM   r4   r   s    r#   no_escape_re_range_charz;_collapse_string_to_ranges.<locals>.no_escape_re_range_char   s    r%      rP   Nr;   - )r   sortedra   r=   r   groupbyr   rj   
contextlibsuppressr   appendchrr   join)r?   r   r   r   rets_charsrO   charsfirstlastr   s              r#   _collapse_string_to_rangesr      sb   @0 0 03 3  6
C  AG
7|a "))'7H7JK 	HAu  ;&ED$$Z0 ! D! }

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

259:;OPT;U:VWX
 

+E2315I$5O4PQ)	< 1881#A&88773<7! !2 9s   E$EE	llc                     g }g | }|rK|j                  d      }t        |t              rt        |t              s||d d n|j	                  |       |rK|S )Nr   )rn   
isinstancer   r   r   )r   r   to_visitis       r#   _flattenr   $  sU    
CuH
LLOa":a+=HRaLJJqM  Jr%   	word_list	max_level_levelc                 b   dt         t           fd}|dk(  r!dj                  t        | t        d            S g }d} |t        |             D ]O  \  }}|j                  |       d}d}d|v rd}|j                  d       t	        |      d	kD  rt        d
 |D              r)|j                  | ddj                  |       d|        |||k  r3t        t        |      ||d	z         }	|j                  | d|	 d|        |j                  t        d       |j                  | ddj                  |       d|        |rI|d   }
t	        |
      d	kD  r|r|j                  | d|
 d|        &|j                  | |
 |        ?|j                  |       R dj                  |      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kD  rHt        j                  | d       D ],  \  }}|t        |D cg c]  }|dd  	 c}t         d      f . y | d   d   | d   dd  gf y c c}w w)Nr;   c                     | d d S r}   r4   )r?   s    r#   r*   zOmake_compressed_re.<locals>.get_suffixes_from_common_prefixes.<locals>.<lambda>=  s    aPRQRe r%   r   TrP   reverser   )r=   r   r   r   )r   prefixsuffixesr?   s       r#   !get_suffixes_from_common_prefixesz=make_compressed_re.<locals>.get_suffixes_from_common_prefixes;  s     x=1$-$5$5hO$T W fX%>ae%>CQUVVVW 1+a.8A;qr?"333 &?s   7A2A--A2r   |Tr   r   ?r;   c              3   8   K   | ]  }t        |      d k(    yw)r;   N)r=   ).0r?   s     r#   	<genexpr>z%make_compressed_re.<locals>.<genexpr>Q  s     113q6Q;1s   []())
r/   r   r   r   r=   r   removeallmake_compressed_resort)r   r   r   r   r   sepinitialr   trailing	suffix_resuffixs              r#   r   r   0  s   4DI 4 A~xxyc4@AA
C
C>vi?PQ $

3>HOOBx=1111

gYa(9':!H:FGI% 2x()VaZ!I JJ'!I;azBCMMc4M8JJ'!CHHX,>+?q
KL!!v;?xJJ'!F81XJ?@JJ'6(8*=>

7#;$< 773<r%   compat_namefnc                 <   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__rb   r;   c                      | g|i |S rM   r4   )rb   argskwargsr   s      r#   _innerz replaced_by_pep8.<locals>._inners  s    
 d,T,V,,r%   c                       | i |S rM   r4   )r   r   r   s     r#   r   z replaced_by_pep8.<locals>._inner|  s    
 t&v&&r%   zDeprecated - use :class:``rc   )r   r/   inspect	signature
parametersr   r   r.   r0   r   r_   FunctionType__kwdefaults__typehasattrrc   r-   r	   r   )r   r   r   s    ` r#   replaced_by_pep8r   h  s    
 
Z	$B 	x4))"-889"1==	r	- 
	- 
r	' 
	' 32;;-qCFN!FO//F"e(() " 1 1	B	'"j"9 " : : $//F6?r%   )T)r   r;   )$r   	functoolsr   r   r   r   r_   typingr   r   r   r   r	   r   r   r   r   r   r   r   r@   rC   rH   rJ   rf   rp   dictr   r   r   boolr   r/   r   r   r   r4   r%   r#   <module>r      s    &    ; ; 
b'Cx C C2 3YS Y Y Y Y  3
( 
(3 
(3 
( 
( 3Pc P P P P3 3*3 32% %PD    2 59QS(3- Q-1QQh	 	d 	 AB5}5),5:=55p%# %1 % %r%   