
    X-Ph                    |    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ddZ
 G d de          Z	 dddZddZdS )    )annotations)Callable)TypeInfo)Instance)
type_stateNinfor   obj_typeCallable[[], Instance] | NonereturnNonec                    t          | |          }|sJ d|              || _        t          d | j        D                       | _        t	          j        |            dS )zbCalculate and set mro (method resolution order).

    Raise MroError if cannot determine mro.
    z#Could not produce a MRO at all for c              3  $   K   | ]}|j         V  d S N)fallback_to_any).0baseinfos     H/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypy/mro.py	<genexpr>z calculate_mro.<locals>.<genexpr>   s%      QQHx7QQQQQQ    N)linearize_hierarchymroanyr   r   reset_all_subtype_caches_for)r   r	   r   s      r   calculate_mror   
   so    
 dH
-
-C<<<d<<<<<DHQQQQQQQD+D11111r   c                      e Zd ZdZdS )MroErrorz<Raised if a consistent mro cannot be determined for a class.N)__name__
__module____qualname____doc__ r   r   r   r      s        FFFFr   r   list[TypeInfo]c                V   | j         r| j         S |                                 }|s| j        dk    r| |            j        g}g }|D ]<}|J d| j         d|             |                    t          ||                     =|                    |           | gt          |          z   S )Nzbuiltins.objectzCannot linearize bases for  )r   direct_base_classesfullnametypeappendr   merge)r   r	   bases	lin_basesbases        r   r   r      s     x x$$&&E "T]&777H<P !I > >!Vt}!V!Vu!V!V,T8<<====U6E)$$$$r   seqslist[list[TypeInfo]]c                    d | D             } g }	 d | D             } | s|S | D ]}|d         fd| D             s nt                      |                               | D ]}|d         u r|d= c)Nc                6    g | ]}|                                 S r!   )copyr   ss     r   
<listcomp>zmerge.<locals>.<listcomp>/   s     ###AFFHH###r   Tc                    g | ]}||S r!   r!   r2   s     r   r4   zmerge.<locals>.<listcomp>2   s    %%%a1%%%%r   r   c                ,    g | ]}|d d         v |S )   Nr!   )r   r3   heads     r   r4   zmerge.<locals>.<listcomp>7   s&    555!tqu}}A}}}r   )r   r(   )r-   resultseqr3   r8   s       @r   r)   r)   .   s    ##d###DF%%4%%% 	M 	 	Cq6D5555t555  **d 	 	Att||aDr   r   )r   r   r	   r
   r   r   )r   r   r	   r
   r   r"   )r-   r.   r   r"   )
__future__r   typingr   
mypy.nodesr   
mypy.typesr   mypy.typestater   r   	Exceptionr   r   r)   r!   r   r   <module>rA      s    " " " " " "                   % % % % % %
2 
2 
2 
2 
2G G G G Gy G G G
 ?C% % % % %&     r   