Ë
    pPêjÐ  ã                  óœ  — U d dl mZ 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mZmZmZmZmZmZ d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZ d d
lm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)  G d„ de«      Z* G d„ de«      Z+dd„Z, ed«      Z-dd„Z.	 	 	 	 	 	 d d„Z/eez  Z0de1d<   d!d„Z2d"d„Z3d#d„Z4	 d$	 	 	 	 	 	 	 	 	 	 	 d%d„Z5d&d„Z6d#d„Z7d'd„Z8y)(é    )Úannotations)ÚSequence)Ú
NamedTupleÚ	TypeAliasÚTypeVar)Úformat_type)ÚARG_POSÚArgumentÚBlockÚClassDefÚContextÚSymbolTableÚTypeInfoÚVar)ÚOptions)ÚCheckerPluginInterfaceÚFunctionContextÚMethodContextÚMethodSigContext)Úadd_method_to_class)Ú$SINGLEDISPATCH_REGISTER_RETURN_CLASS)Ú
is_subtype)ÚAnyTypeÚCallableTypeÚInstanceÚNoneTypeÚ
OverloadedÚTypeÚ	TypeOfAnyÚget_proper_typec                  ó"   — e Zd ZU ded<   ded<   y)ÚSingledispatchTypeVarsr   Úreturn_typer   ÚfallbackN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/plugins/singledispatch.pyr"   r"      s   … ØÓØÔr+   r"   c                  ó"   — e Zd ZU ded<   ded<   y)ÚRegisterCallableInfor   Úregister_typer   Úsingledispatch_objNr%   r*   r+   r,   r.   r.      s   … ØÓØ Ô r+   r.   c                óX   — t        | j                  «      dk(  rt        | j                  Ž S y )Né   )ÚlenÚargsr"   )Útyps    r,   Úget_singledispatch_infor6   #   s$   € Ü
ˆ3�8‰8ƒ}˜ÒÜ% s§x¡xÐ0Ð0Ør+   ÚTc                ó"   — | r| d   r| d   d   S y)zMGet the element that corresponds to the first argument passed to the functionr   Nr*   )r4   s    r,   Úget_first_argr9   ,   s   € á��Q’Ø�A‰w�q‰zÐØr+   c                ó¢  — t        t        t        g «      «      }dt        › �|_        t	        t        «       |d«      }| j                  dg «      j                  }t        |g «      g|_	        ||g|_
        ||_        t        t        d«      t        t        j                   «      d t"        «      }t%        | |d|gt'        «       «       t        ||«      S )Nz
functools.Ú	functoolszbuiltins.objectÚnameÚ__call__)r   r   r   Úfullnamer   r   Únamed_generic_typeÚtyper   ÚbasesÚmroÚinfor
   r   r   r   Úimplementation_artifactr	   r   r   )ÚapiÚ	type_argsÚdefnrC   Úobj_typeÚfunc_args         r,   Ú!make_fake_register_class_instancerJ   3   s´   € ô Ô8¼%À»)ÓD€DØ Ô!EÐ FÐG€D„MÜ”K“M 4¨Ó5€DØ×%Ñ%Ð&7¸Ó<×AÑA€HÜ˜8 RÓ(Ð)€D„JØ�hÐ€D„HØ€D„Iäœ˜F›¤W¬Y×-NÑ-NÓ%OÐQUÔW^Ó_€HÜ˜˜T :°¨z¼8»:ÔFä�D˜)Ó$Ð$r+   Ú
_TypeAliasÚPluginContextc                ó^   — |�|}n| j                   }| j                  j                  ||«       y)a…  Emit an error message.

    This tries to emit an error message at the location specified by `context`, falling back to the
    location specified by `ctx.context`. This is helpful when the only context information about
    where you want to put the error message may be None (like it is for `CallableType.definition`)
    and falling back to the location of the calling function is fine.N)ÚcontextrE   Úfail)ÚctxÚmsgrN   Úerr_contexts       r,   rO   rO   G   s*   € ð ÐØ‰à—k‘kˆØ‡G�G‡L�L��kÕ"r+   c                óê  — t        t        | j                  «      «      }t        |t        «      rºt        |j                  «      dk  r#t        | d|j                  «       | j                  S |j                  d   j                  d¬«      s#t        | d|j                  «       | j                  S t        | j                  «      }t        |t        «      sJ ‚|xj                  |fz  c_        | j                  S )z#Called for functools.singledispatché   z6Singledispatch function requires at least one argumentr   T)ÚstarzGFirst argument to singledispatch function must be a positional argument)r    r9   Ú	arg_typesÚ
isinstancer   r3   Ú	arg_kindsrO   Ú
definitionÚdefault_return_typeÚis_positionalr   r4   )rP   Ú	func_typer0   s      r,   Ú'create_singledispatch_function_callbackr]   W   sÚ   € ä¤¨c¯m©mÓ <Ó=€IÜ�)œ\Ô*Üˆy×"Ñ"Ó# aÒ'ÜØÐMÈy×OcÑOcôð ×*Ñ*Ð*à×$Ñ$ QÑ'×5Ñ5¸4Ð5Ô@ÜØØYØ×$Ñ$ôð
 ×*Ñ*Ð*ô -¨S×-DÑ-DÓEÐÜÐ,¬hÔ7Ð7Ð7Ø×Ò I <Ñ/Õà×"Ñ"Ð"r+   c                óì  — t        | j                  t        «      sJ ‚t        t	        | j
                  «      «      }t        |t        t        f«      r[|j                  «       rK|j                  d   j                  «       }t        || j                  «      }t        | j                  |«      }|S t        |t        «      r.t        | | j                  || j                  j                  «       |S | j                   S )z5Called for functools._SingleDispatchCallable.registerr   )rW   r@   r   r    r9   rV   r   r   Úis_type_objÚitemsÚget_instance_typer.   rJ   rE   Úregister_functionÚoptionsrZ   )rP   Úfirst_arg_typer/   rF   Úregister_callables        r,   Ú singledispatch_register_callbackrf   r   s¿   € ä�c—h‘h¤Ô)Ð)Ð)ä$¤]°3·=±=Ó%AÓB€NÜ�.¤<´Ð"<Ô=À.×B\ÑB\ÔB^ð '×,Ñ,¨QÑ/×AÑAÓCˆÜ(¨¸¿¹ÓAˆ	Ü=¸c¿g¹gÀyÓQÐØ Ð Ü	�N¤LÔ	1ä˜#˜sŸx™x¨¸¿¹¿¹ÔIð
 Ðð ×"Ñ"Ð"r+   Nc           
     ó<  — t        |«      }t        |t        «      syt        |«      }|€yt	        ||«      }|€y|j
                  }|j                  d   }t        ||«      s<t        | dj                  t        ||«      t        ||«      «      |j                  «       yy)zRegister a functionNr   zGDispatch type {} must be subtype of fallback function first argument {})r    rW   r   r6   Úget_dispatch_typer$   rV   r   rO   Úformatr   rY   )	rP   r0   Úfuncrc   Úregister_argÚmetadataÚdispatch_typer$   Úfallback_dispatch_types	            r,   rb   rb   ‘   s®   € ô ˜4Ó €DÜ�dœLÔ)ØÜ&Ð'9Ó:€HØÐð 	Ü% d¨LÓ9€MØÐð 	Ø× Ñ €Hà%×/Ñ/°Ñ2ÐÜ�mÐ%;Ô<ÜØØU×\Ñ\Ü˜M¨7Ó3´[ÐAWÐY`Ó5aóð �O‰Oô	
ð 	Ø
r+   c                óB   — |�|S | j                   r| j                   d   S y )Nr   )rV   )rj   rk   s     r,   rh   rh   ¶   s'   € ØÐØÐØ‡~‚~Ø�~‰~˜aÑ Ð Ør+   c                ó  — | j                   }t        |t        «      rbt        |j                  Ž }t        | j                  «      }|�9t        | |j                  || j                  j                  |j                  «       |S | j                  S )z7Called on the function after passing a type to register)r@   rW   r   r.   r4   r9   rV   rb   r0   rE   rc   r/   rZ   )rP   re   rF   rj   s       r,   Ú4call_singledispatch_function_after_register_argumentrq   ¾   sv   € àŸ™ÐÜÐ#¤XÔ.Ü(Ð*;×*@Ñ*@ÐAˆ	Ü˜SŸ]™]Ó+ˆØÐÜØ�Y×1Ñ1°4¸¿¹¿¹È)×JaÑJaôð ˆKØ×"Ñ"Ð"r+   c                ó¬   — t        | j                  t        «      s| j                  S t	        | j                  «      }|€| j                  S |j
                  S )z5Called for functools._SingleDispatchCallable.__call__)rW   r@   r   Údefault_signaturer6   r$   )rP   rl   s     r,   Ú%call_singledispatch_function_callbackrt   Í   sH   € ä�c—h‘h¤Ô)Ø×$Ñ$Ð$Ü& s§x¡xÓ0€HØÐØ×$Ñ$Ð$Ø×ÑÐr+   )r5   r   ÚreturnzSingledispatchTypeVars | None)r4   zlist[list[T]]ru   zT | None)rE   r   rF   zSequence[Type]ru   r   )rP   rL   rQ   ÚstrrN   zContext | Noneru   ÚNone)rP   r   ru   r   )rP   r   ru   r   )N)rP   rL   r0   r   rj   r   rc   r   rk   úType | Noneru   rw   )rj   r   rk   rx   ru   rx   )rP   r   ru   r   )9Ú
__future__r   Úcollections.abcr   Útypingr   r   rK   r   Úmypy.messagesr   Ú
mypy.nodesr	   r
   r   r   r   r   r   r   Úmypy.optionsr   Úmypy.pluginr   r   r   r   Úmypy.plugins.commonr   Úmypy.plugins.constantsr   Úmypy.subtypesr   Ú
mypy.typesr   r   r   r   r   r   r   r    r"   r.   r6   r7   r9   rJ   rL   r)   rO   r]   rf   rb   rh   rq   rt   r*   r+   r,   ú<module>r„      sû   ðÞ "å $ß ?Ñ ?å %ß ^× ^Ó ^Ý  ß `Ó `Ý 3Ý GÝ $÷	÷ 	ó 	ô˜Zô ô
!˜:ô !ó
ñ ˆCƒL€óð%Ø	ð%Ø,:ð%àó%ð" ,¨mÑ;€ˆzÓ ;ó#ó #ó6#ðH !%ð"Ø	ð"à ð"ð ð"ð ð	"ð
 ð"ð 
ó"óJó#ôr+   