o
    \"<f+                  	   @   s   d Z ddlmZmZ ddlZddlZddlmZmZm	Z	m
Z
mZ dZedZedZedZed	d
dedefddZG dd deZddedededef fddZddededdfddZdedede
eeef fddZdS )zUtility.    )wraps	lru_cacheN)CallableAnyOptionalTupleList   z(?:\r\n|(?!\r\n)[\n\r])|$AZi   )maxsizestringreturnc                 C   sN   g }| D ]}t |}|t|  krtkrn nt|d n| qd|S )zLower.     )ordappendUC_AUC_Zchrjoin)r   
new_stringco r   E/var/www/html/kck/venv/lib/python3.10/site-packages/soupsieve/util.pylower   s
   0
r   c                	       s<   e Zd ZdZd	dedee dee ddf fddZ  ZS )
SelectorSyntaxErrorzSyntax error in a CSS selector.Nmsgpatternindexr   c                    sZ   d| _ d| _d| _|dur%|dur%t||\| _| _ | _d|| j | j}t | dS )zInitialize.Nz{}
  line {}:
{})linecolcontextget_pattern_contextformatsuper__init__)selfr   r   r    	__class__r   r   r'      s   zSelectorSyntaxError.__init__)NN)	__name__
__module____qualname____doc__strr   intr'   __classcell__r   r   r)   r   r      s    0r      message
stacklevel.c                    s,   dt dtf dt dtf f fd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
    func.r   c                    s*   t  dtdtdtf fdd}|S )Nargskwargsr   c                     s,   t jd j d td  | i |S )N'z' is deprecated. categoryr4   )warningswarnr+   DeprecationWarning)r6   r7   )r5   r3   r4   r   r   _deprecated_func8   s   z6deprecated.<locals>._wrapper.<locals>._deprecated_func)r   r   )r5   r>   r3   r4   )r5   r   _wrapper7   s    zdeprecated.<locals>._wrapper)r   r   )r3   r4   r@   r   r?   r   
deprecated,   s   (
rA   c                 C   s   t j| t|d dS )zWarn deprecated.r9   N)r;   r<   r=   r?   r   r   r   warn_deprecatedD   s
   
rB   r   r    c                 C   s*  d}d}d}g }d}d}t | D ]{}| ||d }	t|ds2t|s2d}
d}|| d }n)||  kr?|dk rWn nd}
||dkrLdndd }|| d }nd}
d}t|rd|d	 |d
|
|	 |dur|d	 |d||  d  |}|d7 }|d}qd|||fS )zGet the pattern context.r   r	   Nr   z-->    z    
z{}{} ^)	RE_PATTERN_LINE_SPLITfinditerstartlengroupendr   r%   r   )r   r    lastcurrent_liner"   textr!   offsetmlinetextindentr   r   r   r$   N   s8   

r$   )r2   )r.   	functoolsr   r   r;   retypingr   r   r   r   r   DEBUGcompilerH   r   r   r   r/   r   	Exceptionr   r0   rA   rB   r$   r   r   r   r   <module>   s    

 $
