ó
    Ñ]j  ã                  ó  • S r SSKJr  SSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJr  \(       a  SSKJr  SS	KrSS
KJrJr  SSKJr  SSKJr  \" SSS9r S       SS jjr S         SS jjr " S S\5      r " S S\5      rg	)z?
Shared methods for Index subclasses backed by ExtensionArray.
é    )Úannotations)Ú	signature)ÚTYPE_CHECKINGÚTypeVar)Úcache_readonly)ÚABCDataFrame)ÚIndex)ÚCallableN)Ú	ArrayLikeÚnpt)ÚIntervalArray)ÚNDArrayBackedExtensionArrayÚ_ExtensionIndexTÚExtensionIndex)Úboundc                óÔ  ^ ^^• [        UT 5      m[        T[        5      (       d  [        T5      R                  S:X  ag  U(       a+  U 4S jnT Ul        TR
                  Ul        [        U5      nU$ U U4S jnSU 4S jjnT Ul        TR
                  Ul        [        Xg5      n U$ [        T5      (       d  TnU$ UU4S jnT Ul        TR
                  Ul        [        T5      Ul	        U$ )a¢  
Make an alias for a method of the underlying ExtensionArray.

Parameters
----------
name : str
    Name of an attribute the class should inherit from its EA parent.
delegate : class
cache : bool, default False
    Whether to convert wrapped properties into cache_readonly
wrap : bool, default False
    Whether to wrap the inherited result in an Index.

Returns
-------
attribute, method, property, or cache_readonly
Úgetset_descriptorc                ó0   >• [        U R                  T5      $ ©N)ÚgetattrÚ_data)ÚselfÚnames    €ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/indexes/extension.pyÚcachedÚ"_inherit_from_data.<locals>.cached=   s   ø€ Ü˜tŸz™z¨4Ó0Ð0ó    c                óX  >• [        U R                  T5      nT(       a‹  [        U[        U R                  5      5      (       a"  [        U 5      R	                  XR
                  S9$ [        U[        5      (       a  UR                  U 5      $ [        XR
                  UR                  SS9$ U$ )N©r   F©r   ÚdtypeÚcopy)
r   r   Ú
isinstanceÚtypeÚ_simple_newr   r   Ú	set_indexr	   r!   )r   Úresultr   Úwraps     €€r   ÚfgetÚ _inherit_from_data.<locals>.fgetF   sƒ   ø€ Ü  §¡¨TÓ2�ÞÜ! &¬$¨t¯z©zÓ*:×;Ñ;Ü# D›z×5Ñ5°fÇ9Á9Ð5ÐMÐMÜ# F¬L×9Ñ9Ø%×/Ñ/°Ó5Ð5Ü  ¯i©i¸v¿|¹|ÐRWÑXÐXØ�r   c                ó4   >• [        U R                  TU5        g r   )Úsetattrr   )r   Úvaluer   s     €r   ÚfsetÚ _inherit_from_data.<locals>.fsetP   s   ø€ Ü˜Ÿ
™
 D¨%Õ0r   c                ó¦  >• SU;   a!  [        S[        U 5      R                   35      eT" U R                  /UQ70 UD6nT(       a‹  [	        U[        U R                  5      5      (       a"  [        U 5      R                  X0R                  S9$ [	        U[        5      (       a  UR                  U 5      $ [        X0R                  UR                  SS9$ U$ )NÚinplacezcannot use inplace with r   Fr    )Ú
ValueErrorr$   Ú__name__r   r#   r%   r   r   r&   r	   r!   )r   ÚargsÚkwargsr'   Úattrr(   s       €€r   ÚmethodÚ"_inherit_from_data.<locals>.method_   s°   ø€ Ø˜FÓ"Ü Ð#;¼DÀ»J×<OÑ<OÐ;PÐ!QÓRÐRÙ˜$Ÿ*™*Ð6 tÒ6¨vÑ6ˆFÞÜ˜f¤d¨4¯:©:Ó&6×7Ñ7Ü ›:×1Ñ1°&¿y¹yÐ1ÐIÐIÜ ¬×5Ñ5Ø!×+Ñ+¨DÓ1Ð1Ü˜V¯)©)¸6¿<¹<ÈeÑTÐTØˆMr   )ÚreturnÚNone)
r   r#   Úpropertyr$   r3   Ú__doc__r   Úcallabler   Ú__signature__)	r   ÚdelegateÚcacher(   r   r7   r)   r.   r6   s	   `  `    @r   Ú_inherit_from_datarA   #   sÏ   ú€ ô( �8˜TÓ"€Dä�$œ×!Ñ!¤T¨$£Z×%8Ñ%8Ð<OÓ%Oæõ1ð #ˆFŒOØ!Ÿ\™\ˆFŒNÜ# FÓ+ˆFðZ €MöS÷1ð !ˆDŒMØŸ<™<ˆDŒLä˜dÓ)‰Fð2 €Mô/ �d�^‰^àˆð* €Mö!
	ð ˆŒØŸ™ˆŒÜ(¨›ˆÔØ€Mr   c                ó$   ^ ^^^• SUUU U4S jjnU$ )z÷
Class decorator to pin attributes from an ExtensionArray to an Index subclass.

Parameters
----------
names : List[str]
delegate : class
cache : bool, default False
wrap : bool, default False
    Whether to wrap the inherited result in an Index.
c                óJ   >• T H  n[        UTTTS9n[        XU5        M     U $ )N)r@   r(   )rA   r,   )Úclsr   Úmethr@   r?   Únamesr(   s      €€€€r   ÚwrapperÚinherit_names.<locals>.wrapper�   s.   ø€ ÛˆDÜ% d¨H¸EÈÑMˆDÜ�C˜tÖ$ñ ð ˆ
r   )rD   útype[_ExtensionIndexT]r9   rI   © )rF   r?   r@   r(   rG   s   ```` r   Úinherit_namesrK   r   s   û€ ÷ò ð €Nr   c                  ó>   • \ rS rSr% SrS\S'   S r\S	S j5       rSr	g)
r   é‹   z6
Index subclass for indexes backed by ExtensionArray.
z+IntervalArray | NDArrayBackedExtensionArrayr   c                ó8   • U R                   R                  U5      $ )z5
Convert value to be insertable to underlying array.
)r   Ú_validate_setitem_value)r   r-   s     r   Ú_validate_fill_valueÚ#ExtensionIndex._validate_fill_value—   s   € ð �z‰z×1Ñ1°%Ó8Ð8r   c                ó6   • U R                   R                  5       $ r   )r   Úisna©r   s    r   Ú_isnanÚExtensionIndex._isnan�   s   € ð �z‰z�‰Ó Ð r   rJ   N)r9   znpt.NDArray[np.bool_])
r3   Ú
__module__Ú__qualname__Ú__firstlineno__r<   Ú__annotations__rP   r   rU   Ú__static_attributes__rJ   r   r   r   r   ‹   s(   ‡ ñð 7Ó6ò9ð ó!ó ó!r   c                  ó8   • \ rS rSr% SrS\S'   S	S jrS
S jrSrg)ÚNDArrayBackedExtensionIndexé¤   zC
Index subclass for indexes backed by NDArrayBackedExtensionArray.
r   r   c                ó.   • U R                   R                  $ r   )r   Ú_ndarrayrT   s    r   Ú_get_engine_targetÚ.NDArrayBackedExtensionIndex._get_engine_target«   s   € Ø�z‰z×"Ñ"Ð"r   c                ó˜   • UR                   U R                  R                  R                   :X  d   eU R                  R                  U5      $ r   )r!   r   r`   Ú_from_backing_data)r   r'   s     r   Ú_from_join_targetÚ-NDArrayBackedExtensionIndex._from_join_target®   s9   € Ø�|‰|˜tŸz™z×2Ñ2×8Ñ8Ó8Ð8Ð8Ø�z‰z×,Ñ,¨VÓ4Ð4r   rJ   N)r9   ú
np.ndarray)r'   rg   r9   r   )	r3   rW   rX   rY   r<   rZ   ra   re   r[   rJ   r   r   r]   r]   ¤   s   ‡ ñð 'Ó&ô#÷5r   r]   )FF)r   Ústrr?   r$   r@   Úboolr(   ri   )
rF   z	list[str]r?   r$   r@   ri   r(   ri   r9   z:Callable[[type[_ExtensionIndexT]], type[_ExtensionIndexT]])r<   Ú
__future__r   Úinspectr   Útypingr   r   Úpandas.util._decoratorsr   Úpandas.core.dtypes.genericr   Úpandas.core.indexes.baser	   Úcollections.abcr
   ÚnumpyÚnpÚpandas._typingr   r   Úpandas.core.arraysr   Úpandas.core.arrays._mixinsr   r   rA   rK   r   r]   rJ   r   r   Ú<module>rv      sÅ   ðñõ #å ÷õ
 3å 3å *æÝ(ã÷õ
 1ÝFáÐ-Ð5EÑFÐ ð BGðLØ
ðLØðLØ&*ðLØ:>õLð` INðØðØ $ðØ-1ðØAEðà?õô2!�Uô !ô25 .õ 5r   