
    ,h                        d Z ddlmZ ddlmZmZ ddlZddlZddlm	Z	m
Z
 dZ ej                  d      Z ed      Z ed	      Z ed
      dd       Z G d de      ZdddZdddZddZy)zUtility.    )annotations)wraps	lru_cacheN)CallableAny   z(?:\r\n|(?!\r\n)[\n\r])|$AZi   )maxsizec                    g }| D ]B  }t        |      }|j                  t        |cxk  r	t        k  rn nt	        |dz         n|       D dj                  |      S )zLower.     )ordappendUC_AUC_Zchrjoin)string
new_stringcos       P/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/soupsieve/util.pylowerr      sX     J CF):d):#a"f+BC 77:    c                  &     e Zd ZdZdd fdZ xZS )SelectorSyntaxErrorzSyntax error in a CSS selector.c                    d| _         d| _        d| _        |?|=t        ||      \  | _        | _         | _        | d| j                    d| j                   }t        |   |       y)zInitialize.Nz
  line z:
)linecolcontextget_pattern_contextsuper__init__)selfmsgpatternindex	__class__s       r   r$   zSelectorSyntaxError.__init__   si     	5#40CGU0S-DL$)TXE499+S?Cr   )NN)r&   strr'   z
str | Noner(   z
int | NonereturnNone)__name__
__module____qualname____doc__r$   __classcell__)r)   s   @r   r   r      s    ) r   r   c                     d fd}|S )z
    Raise a `DeprecationWarning` when wrapped function/method is called.

    Usage:

        @deprecated("This method will be removed in version X; use Y instead.")
        def some_method()"
            pass
    c                6     t               d fd       }|S )Nc                 l    t        j                  dj                   d t                | i |S )N'z' is deprecated. category
stacklevel)warningswarnr-   DeprecationWarning)argskwargsfuncmessager8   s     r   _deprecated_funcz6deprecated.<locals>._wrapper.<locals>._deprecated_func9   s<    MMDMM?"3G9=+%
 (((r   )r<   r   r=   r   r+   r   )r   )r>   r@   r?   r8   s   ` r   _wrapperzdeprecated.<locals>._wrapper8   s!    	t	) 
	)  r   )r>   Callable[..., Any]r+   rB    )r?   r8   rA   s   `` r   
deprecatedrD   -   s    	  Or   c                <    t        j                  | t        |       y)zWarn deprecated.r6   N)r9   r:   r;   )r?   r8   s     r   warn_deprecatedrF   E   s     MM#r   c                   d}d}d}g }d}d}t         j                  |       D ]  }| ||j                  d       }	t        |j	                  d            st        |      sd}
d}||z
  dz   }nG||cxk  r|j                  d      k  r)n n&d}
||j                  d      kD  rdnddz   }||z
  dz   }nd}
d}t        |      r|j                  d	       |j                  |
 |	        |-|j                  d	       |j                  d
||z   z  dz          |}|dz  }|j                  d      }	 dj                  |      ||fS )zGet the pattern context.r   r   Nr   z-->    z    
 ^)RE_PATTERN_LINE_SPLITfinditerstartlengroupendr   r   )r'   r(   lastcurrent_liner    textr   offsetmlinetextindents              r   r"   r"   O   sU    DL
CDDF #++G4 4
+1771:s4yFF$,"CU%QUU1X%F!AGGAJ.bA:F$,"CFFt9 KKvhxj)*KKKKsV|,s23DuuQx36 774=$##r   )r   r*   r+   r*   )   )r?   r*   r8   intr+   rB   )r?   r*   r8   r[   r+   r,   )r'   r*   r(   r[   r+   ztuple[str, int, int])r0   
__future__r   	functoolsr   r   r9   retypingr   r   DEBUGcompilerM   r   r   r   r   	Exceptionr   rD   rF   r"   rC   r   r   <module>rc      st     " &  	  "

#?@ 
3x
3x 3 ) $0&$r   