Ë
    `Qêj	.  ã                   ó4  — d dl 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 ddlmZmZ  e
deeef   ¬«      Z e
d	eeef   ¬«      Zd
e	defd„Zd„ Zdee   fd„Zdededefd„Z	 d(dedededdfd„Zdedefd„Zde j2                  de j2                  dedededefd„Zde j2                  de j2                  dededededefd „Zd!ed"ed#ede j2                  d$e j                  defd%„Zde j2                  de j2                  dededdf
d&„Zdededefd'„Zy))é    N)Ú	Parameter)ÚFunctionType)ÚCallableÚDictÚOptionalÚTupleÚTypeÚTypeVarÚUnionÚget_type_hintsé   )Úget_argsÚ	issubtypeÚ_WrappedMethod)ÚboundÚ_WrappedMethod2ÚtÚreturnc                 ó`   — t        | t        «      ryt        | «      D ]  }t        |«      sŒ y y)a_  Recursively check if `t` or any types contained by `t` is a `TypeVar`.

    Examples where we return `True`: `T`, `Optional[T]`, `Tuple[Optional[T], ...]`, ...
    Examples where we return `False`: `int`, `Optional[str]`, ...

    :param t: Type to evaluate.
    :return: `True` if the input type contains an unbound `TypeVar`, `False` otherwise.
    TF)Ú
isinstancer
   r   Ú_contains_unbound_typevar)r   Úargs     úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/overrides/signature.pyr   r      s6   € ô �!”WÔØô ˜‹{ò ˆÜ$ SÕ)Ùðð ó    c                 óp   — t        | «      ry|€yt        |«      ry	 t        | |«      S # t        $ r Y yw xY w)NT)r   r   Ú	TypeError)ÚleftÚrights     r   Ú
_issubtyper   "   sD   € Ü  Ô&ØØ€}ØÜ  Ô'ØðÜ˜˜uÓ%Ð%øÜò áðús   �) ©	5´5c                 óD   — 	 t        | «      S # t        t        f$ r Y y w xY w©N)r   Ú	NameErrorr   ©Úcallables    r   Ú_get_type_hintsr%   0   s)   € ðÜ˜hÓ'Ð'øÜ”yÐ!ò Ùðús   ‚
 �žÚ	callable1Ú	callable2c                 ó�   — | j                   j                  d«      d   }t        |dd «      }|€y|j                  d«      d   }||k(  S )Nú.r   Ú
__module__F)r*   ÚsplitÚgetattr)r&   r'   Úmod1Úmod2s       r   Ú_is_same_moduler/   7   sQ   € Ø×Ñ×%Ñ% cÓ*¨1Ñ-€Dô �9˜l¨DÓ1€DØ€|ØØ�:‰:�c‹?˜1Ñ€DØ�4‰<Ðr   Úsuper_callableÚsub_callableÚ	is_staticc           	      ó€  — t        | «      } t        |«      }	 t        j                  | «      }t	        | «      }t        j                  |«      }t	        |«      }|j
                  }t        || «      }|�0|�.t        |||«       t        ||||||«       t        |||||||«       t        ||||«       y# t        $ r Y yw xY w)aå  Ensure that the signature of `sub_callable` is compatible with the signature of `super_callable`.

    Guarantees that any call to `super_callable` will work on `sub_callable` by checking the following criteria:

    1. The return type of `sub_callable` is a subtype of the return type of `super_callable`.
    2. All parameters of `super_callable` are present in `sub_callable`, unless `sub_callable`
       declares `*args` or `**kwargs`.
    3. All positional parameters of `super_callable` appear in the same order in `sub_callable`.
    4. All parameters of `super_callable` are a subtype of the corresponding parameters of `sub_callable`.
    5. All required parameters of `sub_callable` are present in `super_callable`, unless `super_callable`
       declares `*args` or `**kwargs`.

    :param super_callable: Function to check compatibility with.
    :param sub_callable: Function to check compatibility of.
    :param is_static: True if staticmethod and should check first argument.
    N)Ú_unbound_funcÚinspectÚ	signatureÚ
ValueErrorr%   Ú__qualname__r/   Ú ensure_return_type_compatibilityÚ ensure_all_kwargs_defined_in_subÚ)ensure_all_positional_args_defined_in_subÚensure_no_extra_args_in_sub)	r0   r1   r2   Ú	super_sigÚsuper_type_hintsÚsub_sigÚsub_type_hintsÚmethod_nameÚsame_main_modules	            r   Úensure_signature_is_compatiblerC   B   sÝ   € ô* # >Ó2€NÜ  Ó.€LðÜ×%Ñ% nÓ5ˆ	ô ' ~Ó6ÐÜ×Ñ Ó-€GÜ$ \Ó2€Nà×+Ñ+€KÜ& |°^ÓDÐàÐ#¨Ð(BÜ(Ð)9¸>È;ÔWÜ(Ø�wÐ 0°.À)È[ô	
ô 	2ØØØØØØØô	
ô   	¨7°I¸{ÕKøô1 ò Ùðús   ˜B1 Â1	B=Â<B=r$   c                 óN   — t        | d«      rt        | d«      r| j                  S | S )NÚ__self__Ú__func__)ÚhasattrrF   r#   s    r   r4   r4   w   s&   € Üˆx˜Ô$¬°¸:Ô)FØ× Ñ Ð Ø€Or   r=   r?   r>   r@   Úcheck_first_parameterrA   c                 ó>  — t        d„ |j                  j                  «       D «       «      }t        | j                  j	                  «       «      D �]Ì  \  }\  }}	|dk(  r|sŒ|	j
                  t        j                  k(  rŒ0|	j
                  t        j                  k(  rŒNt        |d|||	«      st        |› d|› d�«      ‚||j                  v sŒ}|	j
                  t        j                  k7  sŒ›t        |j                  j                  «       «      j                  |«      }
|j                  |   }|	j
                  |j
                  k7  rX|	j
                  t        j                  k(  r|j
                  t        j                   k(  st        |› d|› d|	j
                  › d�«      ‚||
kD  r1|	j
                  t        j                  k7  rt        |› d|› d|› d�«      ‚||v s�Œ‰||v s�Œ�t#        ||   ||   «      r�Œ£t        d|› d	|› d
|	j$                  › d|j$                  › d�	«      ‚ y )Nc              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr!   ©Úkindr   ÚVAR_KEYWORD©Ú.0Úps     r   ú	<genexpr>z3ensure_all_kwargs_defined_in_sub.<locals>.<genexpr>…   s$   è ø€ ò Ø,-ˆ�‰”)×'Ñ'Õ'ñùó   ‚')r   Tú: `z` is not present.ú
` is not `ú`z` is not parameter at index `ú: z must be a supertype of `ú
` but is `)ÚanyÚ
parametersÚvaluesÚ	enumerateÚitemsrL   r   ÚVAR_POSITIONALÚPOSITIONAL_ONLYÚis_param_defined_in_subr   rM   ÚlistÚkeysÚindexÚKEYWORD_ONLYÚPOSITIONAL_OR_KEYWORDr   Ú
annotation)r=   r?   r>   r@   rH   rA   Úsub_has_var_kwargsÚsuper_indexÚnameÚsuper_paramÚ	sub_indexÚ	sub_params               r   r:   r:   }   s  € ô ñ Ø18×1CÑ1C×1JÑ1JÓ1Lôó Ðô -6°i×6JÑ6J×6PÑ6PÓ6RÓ,Só Ñ(ˆÑ(�d˜KØ˜!ÒÑ$9ØØ×Ñœy×7Ñ7Ò7ØØ×Ñœy×8Ñ8Ò8ØÜ&Ø�$Ð*¨G°[ô
ô ˜{˜m¨3¨t¨fÐ4EÐFÓGÐGØ�W×'Ñ'Ò'¨K×,<Ñ,<Ä	×@UÑ@UÓ,UÜ˜W×/Ñ/×4Ñ4Ó6Ó7×=Ñ=¸dÓCˆIØ×*Ñ*¨4Ñ0ˆIà×Ñ 9§>¡>Ò1Ø× Ñ ¤I×$:Ñ$:Ò:Ø—N‘N¤i×&EÑ&EÒEä ; -¨s°4°&¸
À;×CSÑCSÐBTÐTUÐ VÓWÐWØ˜yÒ(¨[×-=Ñ-=Ä×AWÑAWÒ-WÜØ"�m 3 t fÐ,IÈ+ÈÐVWÐXóð ð Ð(Ó(Ø˜NÓ*Ü"Ð#3°DÑ#9¸>È$Ñ;OÖPäØ˜�} B t fÐ,EÀk×F\ÑF\ÐE]Ð]gÐhq×h|Ñh|Ðg}Ð}~Ðóð ñ;r   Úis_same_main_modulec                 óæ  — |j                   j                  «       D �cg c]0  }|j                  t        j                  t        j
                  fvr|‘Œ2 }}| j                   j                  «       D �cg c]0  }|j                  t        j                  t        j
                  fvr|‘Œ2 }	}t        d„ |D «       «      }
t        d„ |	D «       «      }|
s%t        |«      t        |	«      k  rt        |› d�«      ‚d}t        |«      D �]e  \  }}|dk(  r|sŒ||z   t        |	«      k\  r’|j                  t        j                  k(  rŒ>|j                  t        j                  k(  r|j                  t        j                  k7  rŒy|j                  t        j                  k(  rŒ—t        |› d|j                  › d�«      ‚|j                  t        j                  k(  r y |	||z      }|j                  t        j                  k(  r|dz  }|j                  t        j                  k(  r|
st        |› d|j                  › d�«      ‚�Œ7|j                  |j                  k7  rŽ|j                  t        j                  k(  r|j                  t        j                  k(  sT|j                  t        j                  k(  r|s5t        |› d|j                  › d	|j                  › d
|j                  › d�«      ‚|j                  |v s|s�Œðt!        |j#                  |j                  d «      |j#                  |j                  d «      «      r�Œ2t        d|› d|j                  › d|j$                  › d|j$                  › d�	«      ‚ y c c}w c c}w )Nc              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr!   ©rL   r   r]   rN   s     r   rQ   z<ensure_all_positional_args_defined_in_sub.<locals>.<genexpr>½   s$   è ø€ ò Ø/0ˆ�‰”)×*Ñ*Õ*ñùrR   c              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr!   ro   rN   s     r   rQ   z<ensure_all_positional_args_defined_in_sub.<locals>.<genexpr>À   s$   è ø€ ò Ø/0ˆ�‰”)×*Ñ*Õ*ñùrR   z: parameter list too shortr   rS   z8` positionally required in subclass but not in supertyper   z` must be presentrT   z
` and is `rU   rV   z$ overriding must be a supertype of `rW   )rY   rZ   rL   r   rc   rM   rX   Úlenr   r[   r]   r^   ÚdefaultÚemptyrd   rh   r   Úgetre   )r=   r?   r>   r@   rH   rl   rA   ÚvÚsub_parameter_valuesÚsuper_parameter_valuesÚsub_has_var_argsÚsuper_has_var_argsÚsuper_shiftrb   rk   ri   s                   r   r;   r;   ª   sb  € ð ×#Ñ#×*Ñ*Ó,öàØ�6‰6œ)×0Ñ0´)×2GÑ2GÐHÑHò 	
ðÐð ð ×%Ñ%×,Ñ,Ó.öàØ�6‰6œ)×0Ñ0´)×2GÑ2GÐHÑHò 	
ðÐð ô
 ñ Ø4Hôó Ðô ñ Ø4Jôó Ðñ ¤Ð$8Ó 9¼CÐ@VÓ<WÒ WÜ˜;˜-Ð'AÐBÓCÐCØ€KÜ%Ð&:Ó;ó ,ÑˆˆyØ�AŠ:Ñ3ØØ�;Ñ¤#Ð&<Ó"=Ò=Ø�~‰~¤×!9Ñ!9Ò9Øà—‘¤)×";Ñ";Ò;Ø×%Ñ%¬¯©Ò8àØ�~‰~¤×!@Ñ!@Ò@ØÜØ�-˜s 9§>¡>Ð"2Ð2jÐkóð ð �>‰>œY×5Ñ5Ò5ÙØ,¨U°[Ñ-@ÑAˆØ×Ñœy×7Ñ7Ò7Ø˜1ÑˆKØ×Ñœy×7Ñ7Ò7Ù#Ü ; -¨s°;×3CÑ3CÐ2DÐDUÐ VÓWÐWÙà×Ñ 	§¡Ò.à× Ñ ¤I×$=Ñ$=Ò=Ø—N‘N¤i×&EÑ&EÒEà—^‘^¤y×'@Ñ'@Ò@ÑEWäØ�-˜s 9§>¡>Ð"2°*¸[×=MÑ=MÐ<NÈjÐYb×YgÑYgÐXhÐhiÐjóð ð ×ÑÐ 0Ñ0Ó4GÜØ× Ñ  ×!1Ñ!1°4Ó8Ø×Ñ˜yŸ~™~¨tÓ4ö
ô Ø�K�=  9§>¡>Ð"2Ð2VÐWb×WmÑWmÐVnÐnxð  zC÷  zNñ  zNð  yOð  OPð  Qóð ñU,ùò'ùò
s   �5M)Á05M.rh   rx   rf   ri   c                 ó„  — | |j                   v xs± |j                  t        j                  k(  xr |xsŽ |j                  t        j                  k(  xr |xsk |j                  t        j
                  k(  xr |xsH |j                  t        j                  k(  xr |xr |xs! |j                  t        j                  k(  xr |S r!   )rY   rL   r   r]   rM   r^   rd   rc   )rh   rx   rf   r?   ri   s        r   r_   r_   õ   sÇ   € ð 	�×"Ñ"Ð"ò 		OØ×Ñ¤	× 8Ñ 8Ñ8ÒMÐ=Mò		Oà×Ñ¤	× 5Ñ 5Ñ5ÒLÐ:Lò		Oð ×Ñ¤	× 9Ñ 9Ñ9ÒNÐ>Nò		Oð
 ×Ñ¤	× ?Ñ ?Ñ?ò #Ø ò#à"ò		Oð ×Ñ¤	× 6Ñ 6Ñ6ÒMÐ;Mðr   c                 óP  — | j                   j                  «       }t        d„ |D «       «      }t        d„ |D «       «      }t        |j                   j	                  «       «      D �]A  \  }\  }}	|	j
                  t        j                  k(  r8t        |«      |kD  r*t        |«      |   j
                  t        j                  k(  rŒ_|| j                   vsŒn|	j                  t        j                  k(  sŒŒ|	j
                  t        j                  k7  sŒª|	j
                  t        j                  k7  sŒÈ|	j
                  t        j                  k(  r|rŒè|	j
                  t        j                  k(  r|r�Œ	|	j
                  t        j                  k(  r|r�Œ*|dkD  s|s�Œ3t!        |› d|› d�«      ‚ y )Nc              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr!   ro   rN   s     r   rQ   z.ensure_no_extra_args_in_sub.<locals>.<genexpr>  s   è ø€ ÒRÀ˜Ÿ™¤9×#;Ñ#;Õ;ÑRùrR   c              3   óV   K  — | ]!  }|j                   t        j                  k(  –— Œ# y ­wr!   rK   rN   s     r   rQ   z.ensure_no_extra_args_in_sub.<locals>.<genexpr>  s   è ø€ ÒQ¸q˜1Ÿ6™6¤Y×%:Ñ%:Õ:ÑQùrR   r   rS   z` is not a valid parameter.)rY   rZ   rX   r[   r\   rL   r   r^   rq   r`   rr   rs   r]   rM   rc   rd   r   )
r=   r?   rH   rA   Úsuper_paramsÚsuper_var_argsÚsuper_var_kwargsrj   rh   rk   s
             r   r<   r<   
  sL  € ð ×'Ñ'×.Ñ.Ó0€LÜÑRÀ\ÔRÓR€NÜÑQÀLÔQÓQÐÜ(1°'×2DÑ2D×2JÑ2JÓ2LÓ(Mó RÑ$ˆ	Ñ$�D˜)à�N‰Nœi×7Ñ7Ò7Ü�LÓ! IÒ-Ü�\Ó" 9Ñ-×2Ñ2´i×6OÑ6OÒOàà˜	×,Ñ,Ò,Ø×!Ñ!¤Y§_¡_Ó4Ø—‘¤)×":Ñ":Ó:Ø—‘¤)×"7Ñ"7Ó7Ø—^‘^¤y×'=Ñ'=Ò=ÒBRØ—^‘^¤y×'@Ñ'@Ò@Ã^à—‘¤)×"AÑ"AÒAÃnà˜Q’Ó"7ä˜{˜m¨3¨t¨fÐ4OÐPÓQÐQñ'Rr   c                 ó’   — | j                  dd «      }|j                  dd «      }t        ||«      s|�t        |› d|› d|› d�«      ‚y y )Nr   z: return type `z` is not a `z`.)rt   r   r   )r>   r@   rA   Úsuper_returnÚ
sub_returns        r   r9   r9   )  sd   € ð $×'Ñ'¨°$Ó7€LØ×#Ñ# H¨dÓ3€JÜ�j ,Ô/°LÐ4LÜØˆm˜?¨:¨,°lÀ<À.ÐPRÐSó
ð 	
ð 5MÐ/r   )F) r5   r   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_utilsr   r   r   r   Úboolr   r   r%   r/   rC   r4   Ú	SignatureÚstrr:   r;   r_   r<   r9   © r   r   ú<module>rŒ      s"  ðÛ Ý Ý ß X× XÓ Xç -áÐ)°°|ÀXÐ7MÑ1NÔO€ÙÐ+°5¸ÀxÐ9OÑ3PÔQ€ð ð ¨$ó ò,ð ¨$¡ó ð˜~ð ¸/ð Èdó ð ñ2LØ"ð2Là!ð2Lð ð2Lð 
ó	2Lðj˜Nð ¨~ó ð*Ø× Ñ ð*à×Ñð*ð ð*ð ð	*ð
  ð*ð ó*ðZHØ× Ñ ðHà×ÑðHð ðHð ð	Hð
  ðHð ðHð óHðVØ
ðàðð ðð ×Ñð	ð
 ×"Ñ"ðð 
óð*RØ× Ñ ðRà×ÑðRð  ðRð ð	Rð
 
óRð>
Øð
Ø,0ð
Ø?Bô
r   