Ë
    pPêj^  ã                  óL   — d Z ddlmZ ddlmZmZmZ ddœ	 	 	 	 	 	 	 d	d„Zd
d„Zy)zf
This is a module for various lookup functions:
functions that will find a semantic node by its name.
é    )Úannotations)ÚMypyFileÚSymbolTableNodeÚTypeInfoF)Úraise_on_missingc               ó  — | j                  d«      }|dk(  r| n| d| }g }	 d|vr|rd|v s
J d| › �«       ‚y|j                  dd¬«      \  }}|j                  |«       |j                  |«      }|�nŒQ|j                  }|s|r|sJ d| › d	�«       ‚y|dk7  r|d
xx   | |d z  cc<   	 |j                  «       }	|	|vr|r|	|v sJ d|	›d| ›�«       ‚y||	   }
|s|
S |
j                  }t        |t        «      s|r|s
J d| › �«       ‚y|j                  }Œi)aW  Find a symbol using it fully qualified name.

    The algorithm has two steps: first we try splitting the name on '.' to find
    the module, then iteratively look for each next chunk after a '.' (e.g. for
    nested classes).

    This function should *not* be used to find a module. Those should be looked
    in the modules dictionary.
    z
<subclass éÿÿÿÿNú.zCannot find module for é   ©ÚmaxsplitzCannot find z, got a module symbolr   zCannot find component z for )	ÚfindÚrsplitÚappendÚgetÚnamesÚpopÚnodeÚ
isinstancer   )ÚnameÚmodulesr   ÚiÚheadÚrestÚtailÚmodr   ÚkeyÚstnoder   s               úP/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/lookup.pyÚlookup_fully_qualifiedr       sa  € ð 	�	‰	�,Ó€AØ˜’7‰4  R a €DØ€Dà
Ø�d‰?ÙØ˜d‘{ÐDÐ&=¸d¸VÐ$DÓD�{Øð —[‘[ ¨q�[Ó1‰
ˆˆdØ�‰�DÔØ�k‰k˜$ÓˆØˆ?Øð ð �I‰I€EááÙÐC˜<¨ vÐ-BÐCÓC�4ØØˆB‚wØˆQ‹�4˜˜�8Ñ‹Ø
Ø�h‰h‹jˆØ�eÑÙØ˜e‘|ÐRÐ'=¸c¸WÀEÈ$ÈÐ%RÓR�|ØØ�s‘ˆÙØˆMØ�{‰{ˆô ˜$¤Ô)ÙÙÐ2˜|¨D¨6Ð2Ó2�tØØ—
‘
ˆð! ó    c                ó¢   — | j                  dd¬«      \  }}||   j                  |   }t        |j                  t        «      sJ ‚|j                  S )zÎFind TypeInfo for a standard library type.

    This fast path assumes that the type exists at module top-level, use this
    function only for common types like `builtins.object` or `typing.Iterable`.
    r
   r   r   )r   r   r   r   r   )Úfullnamer   Úmoduler   Úsyms        r   Úlookup_stdlib_typeinfor&   G   sK   € ð —?‘? 3°�?Ó3�L€FˆDØ
�&‰/×
Ñ
 Ñ
%€CÜ�c—h‘h¤Ô)Ð)Ð)Ø�8‰8€Or!   N)r   Ústrr   údict[str, MypyFile]r   ÚboolÚreturnzSymbolTableNode | None)r#   r'   r   r(   r*   r   )	Ú__doc__Ú
__future__r   Ú
mypy.nodesr   r   r   r    r&   © r!   r   ú<module>r/      sG   ðñõ
 #ç :Ñ :ð JOñ7Ø
ð7Ø+ð7ØBFð7àó7ôt	r!   