§
    ñyIfŠ  ã                  óš   — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d	„ Zd
„ Zd„ Zdd„ZdZddd„Zdd„ZdS )é    )Úannotations)Úregister_module_extender)Úextract_nodeÚparse©Ú	PY39_PLUS)ÚInferenceContext)ÚAttributeInferenceError)ÚAstroidManager)ÚClassDefc                 ó\   — t          dt          ¦   «         z   t          ¦   «         z   ¦  «        S )Nz¦
    class defaultdict(dict):
        default_factory = None
        def __missing__(self, key): pass
        def __getitem__(self, key): return default_factory

    )r   Ú_deque_mockÚ_ordered_dict_mock© ó    úS/var/www/piapp/venv/lib/python3.11/site-packages/astroid/brain/brain_collections.pyÚ_collections_transformr      s7   € Ýð	õ ‰-Œ-ñ	õ Ñ
Ô
ñ	ñ
ô 
ð 
r   c                 ó"   — d} t           r| dz  } | S )NaÎ  
    class deque(object):
        maxlen = 0
        def __init__(self, iterable=None, maxlen=None):
            self.iterable = iterable or []
        def append(self, x): pass
        def appendleft(self, x): pass
        def clear(self): pass
        def count(self, x): return 0
        def extend(self, iterable): pass
        def extendleft(self, iterable): pass
        def pop(self): return self.iterable[0]
        def popleft(self): return self.iterable[0]
        def remove(self, value): pass
        def reverse(self): return reversed(self.iterable)
        def rotate(self, n=1): return self
        def __iter__(self): return self
        def __reversed__(self): return self.iterable[::-1]
        def __getitem__(self, index): return self.iterable[index]
        def __setitem__(self, index, value): pass
        def __delitem__(self, index): pass
        def __bool__(self): return bool(self.iterable)
        def __nonzero__(self): return bool(self.iterable)
        def __contains__(self, o): return o in self.iterable
        def __len__(self): return len(self.iterable)
        def __copy__(self): return deque(self.iterable)
        def copy(self): return deque(self.iterable)
        def index(self, x, start=0, end=0): return 0
        def insert(self, i, x): pass
        def __add__(self, other): pass
        def __iadd__(self, other): pass
        def __mul__(self, other): pass
        def __imul__(self, other): pass
        def __rmul__(self, other): passzK
        @classmethod
        def __class_getitem__(self, item): return clsr   )Úbase_deque_classs    r   r   r      s-   € ð!+ÐõD ð 9Øð 9ñ 	9Ðð Ðr   c                 ó"   — d} t           r| dz  } | S )Nz„
    class OrderedDict(dict):
        def __reversed__(self): return self[::-1]
        def move_to_end(self, key, last=False): passzJ
        @classmethod
        def __class_getitem__(cls, item): return clsr   )Úbase_ordered_dict_classs    r   r   r   H   s,   € ð8Ðõ ð 8Øð $8ñ 	8Ðð #Ð"r   Únoder   ÚreturnÚboolc                óò   — |                       ¦   «                              d¦  «        s'|                       ¦   «                              d¦  «        r(	 |                      d¦  «         dS # t          $ r Y nw xY wdS )zš
    Returns True if the node corresponds to a ClassDef of the Collections.abc module
    that supports subscripting.

    :param node: ClassDef node
    Ú_collectionsÚcollectionsÚ__class_getitem__TF)ÚqnameÚ
startswithÚgetattrr
   )r   s    r   Ú_looks_like_subscriptabler"   T   s†   € ð ‡z‚z�|„|×Ò˜~Ñ.Ô.ð °$·*²*±,´,×2IÒ2IØñ3ô 3ð ð	Ø�LŠLÐ,Ñ-Ô-Ð-Ø�4øÝ&ð 	ð 	ð 	ØˆDð	øøøàˆ5s   ÁA' Á'
A4Á3A4z?
@classmethod
def __class_getitem__(cls, item):
    return cls
NÚcontextúInferenceContext | Nonec                óD   — t          t          ¦  «        }|g| j        d<   d S )Nr   )r   ÚCLASS_GET_ITEM_TEMPLATEÚlocals)r   r#   Úfunc_to_adds      r   Úeasy_class_getitem_inferencer)   m   s'   € õ Õ6Ñ7Ô7€KØ(3 }€D„KÐ#Ñ$Ð$Ð$r   Úmanagerr   ÚNonec                ó�   — t          | dt          ¦  «         t          r(|                      t          t
          t          ¦  «         d S d S )Nr   )r   r   r   Úregister_transformr   r)   r"   )r*   s    r   Úregisterr.   t   sT   € Ý˜W mÕ5KÑLÔLÐLåð 
ð
 	×"Ò"ÝÕ2Õ4Mñ	
ô 	
ð 	
ð 	
ð 	
ð
ð 
r   )r   r   r   r   )N)r#   r$   )r*   r   r   r+   )Ú
__future__r   Úastroid.brain.helpersr   Úastroid.builderr   r   Úastroid.constr   Úastroid.contextr	   Úastroid.exceptionsr
   Úastroid.managerr   Úastroid.nodes.scoped_nodesr   r   r   r   r"   r&   r)   r.   r   r   r   ú<module>r7      s  ðð
 #Ð "Ð "Ð "Ð "Ð "à :Ð :Ð :Ð :Ð :Ð :Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø *Ð *Ð *Ð *Ð *Ð *Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð'ð 'ð 'ðT	#ð 	#ð 	#ðð ð ð ð$Ð ð5ð 5ð 5ð 5ð 5ð

ð 

ð 

ð 

ð 

ð 

r   