
    e                        d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZ d dlmZ ddZdZdd	ZdddZddZy
)    )annotations)contextinference_tipnodes)register_module_extender)_extract_single_nodeparse)	PY39_PLUS
PY311_PLUS)AstroidManagerc                 6    t         rd} nd} t        d|  d      S )Nz import re._compiler as _compilerzimport sre_compile as _compilerz
    a  
    NOFLAG = 0
    ASCII = _compiler.SRE_FLAG_ASCII
    IGNORECASE = _compiler.SRE_FLAG_IGNORECASE
    LOCALE = _compiler.SRE_FLAG_LOCALE
    UNICODE = _compiler.SRE_FLAG_UNICODE
    MULTILINE = _compiler.SRE_FLAG_MULTILINE
    DOTALL = _compiler.SRE_FLAG_DOTALL
    VERBOSE = _compiler.SRE_FLAG_VERBOSE
    TEMPLATE = _compiler.SRE_FLAG_TEMPLATE
    DEBUG = _compiler.SRE_FLAG_DEBUG
    A = ASCII
    I = IGNORECASE
    L = LOCALE
    U = UNICODE
    M = MULTILINE
    S = DOTALL
    X = VERBOSE
    T = TEMPLATE
    )r   r	   )import_compilers    8/usr/lib/python3/dist-packages/astroid/brain/brain_re.py_re_transformr      s3     <; 	     z?
@classmethod
def __class_getitem__(cls, item):
    return cls
c                   | j                         j                  dk(  xr t        | j                  t        j
                        xr | j                  j                  dk(  xr t        | j                  t        j                        xr| t        | j                  j                        dk(  xrX t        | j                  j                  d   t        j                        xr% | j                  j                  d   j                  dv S )zCheck for re.Pattern or re.Match call in stdlib.

    Match these patterns from stdlib/re.py
    ```py
    Pattern = type(...)
    Match = type(...)
    ```
    retype   r   >   MatchPattern)rootname
isinstancefuncr   NameparentAssignlentargets
AssignName)nodes    r   _looks_like_pattern_or_matchr#   6   s     			D  	@tyy%**-	@IINNf$	@ t{{ELL1	@ ##$)		@
 t{{**1-u/?/?@	@ KK"''+??r   Nc                @   t        j                  | j                  j                  d   j                  | j
                  | j                  | j                  | j                  | j                        }t        rt        t              }|g|j                  d<   t        |g      S )zVInfer re.Pattern and re.Match as classes.

    For PY39+ add `__class_getitem__`.
    r   )r   lineno
col_offsetr   
end_linenoend_col_offset__class_getitem__)r   ClassDefr   r    r   r%   r&   r'   r(   r
   r   CLASS_GETITEM_TEMPLATElocalsiter)r"   ctx	class_deffunc_to_adds       r   infer_pattern_matchr1   J   s    
 [[  #(({{??{{??**I *+AB1<	,-r   c                    t        | dt               | j                  t        j                  t        t              t               y )Nr   )r   r   register_transformr   Callr   r1   r#   )managers    r   registerr6   ]   s.    WdM:

M"568Tr   )returnznodes.Module)r"   
nodes.Callr7   bool)N)r"   r8   r.   zcontext.InferenceContext | None)r5   r   r7   None)
__future__r   astroidr   r   r   astroid.brain.helpersr   astroid.builderr   r	   astroid.constr
   r   astroid.managerr   r   r+   r#   r1   r6    r   r   <module>rB      s9   
 # 1 1 : 7 / *B (&r   