+
    ÏÜ³j^F  ã                  óª  € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHtH	t	H
t
HtHtHt ^ RIt^ RIHt ^ RIt^ RIt^ RIHtHtHtHtHtHt ^ RIt^ RIHt ^ RIHt ^ R	I H!t!H"t" ^ R
I#H$t$H%t%H&t&H't'H(t( ^ RI)H*t* ^ RI+H,t, ]'       d   ^ RI-H.t.H/t/H0t0H1t1H2t2H3t3 ^ RI4H5t5 R t6R t7R R lt8R t9R t:R R lt;R R lt<R R lt=R R lt>R R lt?]RZR R  ll4       t@]RZR! R" ll4       t@R[R# R$ llt@R[R% R& lltAR' tBR( R) ltCR* R+ ltDR, R- ltER. R/ ltFR0 R1 ltGR2 tHR3 tIR4 tJ]R5 R6 l4       tK]R7 R8 l4       tKR[R9 R: lltK]! R;4      tL]R< R= l4       tM]R> R? l4       tMR@ RA ltMRB tNRC RD ltO]P                   R\RE RF ll4       tQRG RH ltR/ ]P¦                  RIb]P¨                  RJb]Pª                  RKb]P¬                  RLb]P®                  RMb]P¦                  RIb]P°                  RIb]P²                  RNb]P´                  RNb]P¶                  ROb]P¸                  ROb]Pº                  RPb]P¼                  RPb]P¾                  RQb]PÀ                  RQb]PÂ                  RRb]PÄ                  RRb]P¨                  RJ]PÆ                  RJ]Pª                  RK]PÈ                  RK]PÊ                  RS]PÌ                  RS]PÎ                  RT]PÐ                  RT/CtiRU RV ltjRW RX ltkRY tlR# )]zh
Misc tools for implementing data structures

Note: pandas.core.common is *not* part of the public API.
)ÚannotationsN)ÚabcÚdefaultdict)ÚCallableÚ
CollectionÚ	GeneratorÚHashableÚIterableÚSequence)Úpartial)ÚTYPE_CHECKINGÚAnyÚConcatenateÚTypeVarÚcastÚoverload)Úlib)Ú'construct_1d_object_array_from_listlike)Úis_bool_dtypeÚ
is_integer)ÚABCExtensionArrayÚABCIndexÚABCMultiIndexÚABCNumpyExtensionArrayÚ	ABCSeries)Úiterable_not_string)Ú
Expression)ÚAnyArrayLikeÚ	ArrayLikeÚNpDtypeÚPÚRandomStateÚT)ÚIndexc              #  óx   "  € V  F-  p\        V4      '       d   \        V4       Rj  x€L
  K)  Vx € K/  	  R#  L5i)zÔ
Flatten an arbitrarily nested sequence.

Parameters
----------
line : sequence
    The non string sequence to flatten

Notes
-----
This doesn't consider strings sequences.

Returns
-------
flattened : generator
N)r   Úflatten)ÚlineÚelements   & ÚS/home/luca/screen-checking/.venv/lib/python3.14/site-packages/pandas/core/common.pyr%   r%   D   s2   é € ó" ˆÜ˜w×'Ò'Ü˜wÓ'×'Ò'àŒMó	 á'ùs   ‚%:§8¨:c                ó¤   € V ^ ,          P                   pV R,           F  p VP                   V8w  d   Rp V# K  	  V#   \         d    Rp  T# i ; i)é    :é   NNN)ÚnameÚ
ValueError)Úobjsr,   Úobjs   &  r(   Úconsensus_name_attrr0   \   si   € Ø��7�<‰<€DØ�B�xˆxˆð	Ø�x‰x˜4ÔØ�Øð €Kñ  ñ ð €Køô ô 	ØˆDÙØ€Kð	ús   ¡=½AÁAc               ó    € V ^8„  d   QhRRRR/# )é   Úkeyr   ÚreturnÚbool© )Úformats   "r(   Ú__annotate__r8   i   s   € ÷ 5ñ 5˜ð 5 ñ 5ó    c                ó�  € \        V \        \        P                  \        \
        \        34      '       d·   \        V \        4      '       g¡   V P                  \        P                  8X  db   \        P                  ! V 4      p\        P                  ! V4      '       g.   Rp\        P                  ! VRR7      '       d   \        V4      hR# R# \        V P                  4      '       d   R#  R# \        V \        4      '       dE   \!        V 4      ^ 8”  d5   \#        V 4      \        Jd   \        V 4      p \        P$                  ! V 4      # R# )as  
Check whether `key` is a valid boolean indexer.

Parameters
----------
key : Any
    Only list-likes may be considered boolean indexers.
    All other types are not considered a boolean indexer.
    For array-like input, boolean ndarrays or ExtensionArrays
    with ``_is_boolean`` set are considered boolean indexers.

Returns
-------
bool
    Whether `key` is a valid boolean indexer.

Raises
------
ValueError
    When the array is an object-dtype ndarray or ExtensionArray
    and contains missing values.

See Also
--------
check_array_indexer : Check that `key` is a valid array to index,
    and convert to an ndarray.
z=Cannot mask with non-boolean array containing NA / NaN valuesT)ÚskipnaF)Ú
isinstancer   ÚnpÚndarrayr   r   r   r   ÚdtypeÚobject_Úasarrayr   Úis_bool_arrayr-   r   ÚlistÚlenÚtypeÚis_bool_list)r3   Ú	key_arrayÚna_msgs   &  r(   Úis_bool_indexerrI   i   sï   € ô8 ØÜ	”B—J‘J¤Ô*;Ô=SÐT÷ò ô ˜œm×,Ò,Ø�9‰9œŸ
™
Ô"ÜŸ
š
 3›ˆIä×$Ò$ Y×/Ò/ØX�Ü×$Ò$ Y°t×<Ó<ô % VÓ,Ð,ÙÙÜ˜3Ÿ9™9×%Ò%Ùð &ñ ô 
�Cœ×	Ò	äˆs‹8�aŒ<Ü�C‹y¤Ó$ä˜3“i�Ü×#Ò# CÓ(Ð(ár9   c                ó€   € \         P                  ! V 4      '       d"   V P                  4       '       d   \        R4      hV # )zŽ
Disallow indexing with a float key, even if that key is a round number.

Parameters
----------
val : scalar

Returns
-------
outval : scalar
zYIndexing with a float is no longer supported. Manually convert to an integer key instead.)r   Úis_floatr   Ú
IndexError)Úvals   &r(   Úcast_scalar_indexerrN   ¡   s8   € ô ‡|‚|�C×Ò˜SŸ^™^×-Ò-Üð)ó
ð 	
ð
 €Jr9   c                 ó   € R V  4       # )zD
Returns a generator consisting of the arguments that are not None.
c              3  ó0   "  € T F  qf   K  Vx € K  	  R # 5i©Nr6   ©Ú.0Úargs   & r(   Ú	<genexpr>Únot_none.<locals>.<genexpr>»   s   é € Ð3™4�C�CŠC›4ùs   ‚Œ
r6   ©Úargss   *r(   Únot_nonerY   ·   s   € ñ 4™4Ó3Ð3r9   c               ó   € V ^8„  d   QhRR/# ©r2   r4   r5   r6   )r7   s   "r(   r8   r8   ¾   ó   € ÷ ,ñ ,�tñ ,r9   c                 ój   € \         ;QJ d    R V  4       F  '       g   K   R# 	  R# ! R V  4       4      # )z7
Returns a boolean indicating if any argument is None.
c              3  ó(   "  € T F  qR J x € K
  	  R # 5irQ   r6   rR   s   & r(   rU   Úany_none.<locals>.<genexpr>Â   ó   é € Ð+¡d˜s�d�{£dùó   ‚TF©ÚanyrW   s   *r(   Úany_nonerd   ¾   ó-   € ÷ ‹3Ñ+¡dÓ+�3Œ3Ð+Š3Ð+ˆ3Ñ+¡dÓ+Ó+Ð+r9   c               ó   € V ^8„  d   QhRR/# r[   r6   )r7   s   "r(   r8   r8   Å   r\   r9   c                 ój   € \         ;QJ d    R V  4       F  '       d   K   R# 	  R# ! R V  4       4      # )z9
Returns a boolean indicating if all arguments are None.
c              3  ó(   "  € T F  qR J x € K
  	  R # 5irQ   r6   rR   s   & r(   rU   Úall_none.<locals>.<genexpr>É   r`   ra   FT©ÚallrW   s   *r(   Úall_nonerl   Å   re   r9   c               ó   € V ^8„  d   QhRR/# r[   r6   )r7   s   "r(   r8   r8   Ì   ó   € ÷ 0ñ 0˜4ñ 0r9   c                 ój   € \         ;QJ d    R V  4       F  '       g   K   R# 	  R# ! R V  4       4      # )z;
Returns a boolean indicating if any argument is not None.
c              3  ó(   "  € T F  qR Jx € K
  	  R # 5irQ   r6   rR   s   & r(   rU   Úany_not_none.<locals>.<genexpr>Ð   ó   é € Ð/©$ 3˜$�«$ùra   TFrb   rW   s   *r(   Úany_not_noners   Ì   ó-   € ÷ ‹3Ñ/©$Ó/�3Œ3Ð/Š3Ð/ˆ3Ñ/©$Ó/Ó/Ð/r9   c               ó   € V ^8„  d   QhRR/# r[   r6   )r7   s   "r(   r8   r8   Ó   rn   r9   c                 ój   € \         ;QJ d    R V  4       F  '       d   K   R# 	  R# ! R V  4       4      # )z=
Returns a boolean indicating if all arguments are not None.
c              3  ó(   "  € T F  qR Jx € K
  	  R # 5irQ   r6   rR   s   & r(   rU   Úall_not_none.<locals>.<genexpr>×   rr   ra   FTrj   rW   s   *r(   Úall_not_nonery   Ó   rt   r9   c               ó   € V ^8„  d   QhRR/# )r2   r4   Úintr6   )r7   s   "r(   r8   r8   Ú   s   € ÷ ,ñ ,˜Sñ ,r9   c                 ó&   € \        R V  4       4      # )z3
Returns the count of arguments that are not None.
c              3  ó(   "  € T F  qR Jx € K
  	  R # 5irQ   r6   )rS   Úxs   & r(   rU   Ú!count_not_none.<locals>.<genexpr>Þ   s   é € Ð+¡d ˜�}£dùra   )ÚsumrW   s   *r(   Úcount_not_noner�   Ú   s   € ô Ñ+¡dÓ+Ó+Ð+r9   c               ó$   € V ^8„  d   QhRRRRRR/# )r2   ÚvalueszArrayLike | list | tuple | zipr?   úNpDtype | Noner4   ú
np.ndarrayr6   )r7   s   "r(   r8   r8   â   s$   € ÷ ñ Ø*ðØ3Aðàñr9   c                ó   € R # rQ   r6   ©rƒ   r?   s   &&r(   Úasarray_tuplesaferˆ   á   s   € ñ r9   c               ó$   € V ^8„  d   QhRRRRRR/# ©r2   rƒ   r	   r?   r„   r4   r   r6   )r7   s   "r(   r8   r8   ì   s   € × VÑ V˜hÐ V¨~Ð VÈ	Ñ Vr9   c                ó   € R # rQ   r6   r‡   s   &&r(   rˆ   rˆ   ë   s   € ÙSVr9   c               ó$   € V ^8„  d   QhRRRRRR/# rŠ   r6   )r7   s   "r(   r8   r8   ï   s!   € ÷ ñ ˜hð ¨~ð Èñ r9   c                óä  € \        V \        \        34      '       g   \        V R 4      '       g   \        V 4      p MD\        V \        4      '       d   V P
                  # \        V \        4      '       d   V P
                  # \        V \        4      '       d'   V\        P                  \        39   d   \        V 4      #  \        P                  ! WR7      p\        TP                  P                  \         4      '       d   \        P                  ! T \        R7      pTP"                  ^8X  d&   T  Uu. uF  p\        T4      NK  	  p p\        T 4      pT#   \         d    \        T 4      u # i ; iu upi )Ú	__array__©r?   )r<   rC   ÚtupleÚhasattrr   Ú_valuesr   r=   r@   Úobjectr   rA   r-   Ú
issubclassr?   rE   ÚstrÚndim)rƒ   r?   Úresultr~   s   &&  r(   rˆ   rˆ   ï   s  € Ü�v¤¤e˜}×-Ò-´¸À×1MÒ1MÜ�f“‰Ü	�FœH×	%Ò	%Ø�~‰~ÐÜ	�FœI×	&Ò	&Ø�~‰~Ðä�&œ$×Ò E¬b¯j©j¼&Ð-AÔ$AÜ6°vÓ>Ð>ð?Ü—’˜FÔ0ˆô �&—,‘,×#Ñ#¤S×)Ò)Ü—’˜F¬&Ô1ˆà‡{�{�aÔá$*Ó+¡F˜q”%˜–(¡FˆÐ+Ü8¸Ó@ˆà€Møô ô ?ô
 7°vÓ>Ò>ð?üò ,s   Â<E Ä.E-ÅE*Å)E*c               ó$   € V ^8„  d   QhRRRRRR/# )r2   Úlabelsznp.ndarray | Iterabler?   r„   r4   r…   r6   )r7   s   "r(   r8   r8     s$   € ÷ ñ Ø!ðØ*8ðàñr9   c                óè   € \        V \        \        34      '       d   V .p \        V \        \        P
                  34      '       g    \        V 4      p \        WR7      pV#   \         d    T .p  Li ; i)zÇ
Transform label or iterable of labels to array, for use in Index.

Parameters
----------
dtype : dtype
    If specified, use as dtype of the resulting array, otherwise infer.

Returns
-------
array
r�   )r<   r•   r�   rC   r=   r>   Ú	TypeErrorrˆ   )r™   r?   Úrlabelss   && r(   Úindex_labels_to_arrayr�     si   € ô �&œ3¤˜,×'Ò'Ø�ˆä�fœt¤R§Z¡ZÐ0×1Ò1ð	Ü˜&“\ˆFô   Ô4€Gà€Nøô ô 	Ø�XŠFð	ús   ÁA  Á A1Á0A1c                óL   € V e    \        V \        \        34      '       g   V .# V # rQ   )r<   r�   rC   ©r/   s   &r(   Úmaybe_make_listr    +  s#   € Ø
‚œz¨#´´t¨}×=Ò=ØˆuˆØ€Jr9   c               ó    € V ^8„  d   QhRRRR/# )r2   r/   zIterable[T] | Tr4   zCollection[T] | Tr6   )r7   s   "r(   r8   r8   1  s   € ÷ ñ  ð Ð4Eñ r9   c                ó¼   € \        V \        P                  4      '       d,   \        V \        P                  4      '       g   \	        V 4      # \        \        V 4      p V # )z:
If obj is Iterable but not list-like, consume into list.
)r<   r   r	   ÚSizedrC   r   r   rŸ   s   &r(   Úmaybe_iterable_to_listr¤   1  s@   € ô �#”s—|‘|×$Ò$¬Z¸¼S¿Y¹Y×-GÒ-GÜ�C‹yÐÜ
Œz˜3Ó
€CØ€Jr9   c               ó   € V ^8„  d   QhRR/# r[   r6   )r7   s   "r(   r8   r8   ;  s   € ÷ 	ñ 	˜$ñ 	r9   c                ó¦   € \        V \        4      ;'       d;    V P                  RJ ;'       d%    V P                  RJ ;'       d    V P                  RJ # )z
We have a null slice.
N©r<   ÚsliceÚstartÚstopÚsteprŸ   s   &r(   Úis_null_slicer¬   ;  sW   € ô
 	�3œÓ÷ 	ð 	Ø�I‰I˜Ð÷	ð 	à�H‰H˜Ð÷	ð 	ð �H‰H˜Ðð	r9   c               ó   € V ^8„  d   QhRR/# r[   r6   )r7   s   "r(   r8   r8   G  s   € ÷ 	ñ 	˜4ñ 	r9   c                ó¼   € \        V \        4      ;'       dF    V P                  RJ;'       d0    V P                  RJ;'       d    V P                  V P                  8H  # )z6
We have an empty slice, e.g. no values are selected.
N)r<   r¨   r©   rª   rŸ   s   &r(   Úis_empty_slicer¯   G  s[   € ô
 	�3œÓ÷ 	"ð 	"Ø�I‰I˜TÐ!÷	"ð 	"à�H‰H˜DÐ ÷	"ð 	"ð �I‰I˜Ÿ™Ñ!ð	r9   c               ó    € V ^8„  d   QhRRRR/# )r2   r&   zabc.Iterabler4   zabc.Generator[bool, None, None]r6   )r7   s   "r(   r8   r8   S  s   € ÷ <ñ <˜ð <Ð*Iñ <r9   c              #  ót   "  € V  F-  p\        V\        4      ;'       d    \        V4      '       * x € K/  	  R# 5i)z3
Find non-trivial slices in "line": yields a bool.
N)r<   r¨   r¬   )r&   Úks   & r(   Úis_true_slicesr³   S  s.   é € ó ˆÜ˜œEÓ"×;Ð;¬=¸Ó+;Ô';Ô;ó ùs   ‚8Ÿ8c               ó    € V ^8„  d   QhRRRR/# )r2   r&   r{   r4   r5   r6   )r7   s   "r(   r8   r8   \  s   € ÷ 	ñ 	˜Sð 	 Tñ 	r9   c                óª   € \        V \        4      ;'       d=    V P                  ^ 8H  ;'       d&    V P                  V8H  ;'       d    V P                  RJ # )z
We have a full length slice.
Nr§   )r/   r&   s   &&r(   Úis_full_slicer¶   \  sV   € ô
 	�3œÓ÷ 	ð 	Ø�I‰I˜‰N÷	ð 	à�H‰H˜Ñ÷	ð 	ð �H‰H˜Ðð	r9   c                óä   € \        V R 4      '       d   V P                  # \        V \        4      '       d   \	        V P
                  4      # \        V 4      '       d   \        V 4      P                  # R# )Ú__name__N)r‘   r¸   r<   r   Úget_callable_nameÚfuncÚcallablerE   rŸ   s   &r(   r¹   r¹   h  sS   € äˆs�J×ÒØ�|‰|Ðä�#”w×ÒÜ  §¡Ó*Ð*ä�‡}‚}Ü�C‹y×!Ñ!Ð!ñ
 r9   c                óŒ   € \        V \        4      '       d   V P                  ! V3/ VB # \        V 4      '       d
   V ! V3/ VB # V # )z¸
Evaluate possibly callable input using obj and kwargs if it is callable,
otherwise return as it is.

Parameters
----------
maybe_callable : possibly a callable
obj : NDFrame
**kwargs
)r<   r   Ú_eval_expressionr»   )Úmaybe_callabler/   Úkwargss   &&,r(   Úapply_if_callablerÀ   y  sH   € ô �.¤*×-Ò-Ø×.Ò.¨sÑ=°fÑ=Ð=Ü	�.×	!Ò	!Ù˜cÑ, VÑ,Ð,àÐr9   c                ó<  € \         P                  ! V 4      '       g<   \        V \        4      '       d   \	        \        V P
                  4      # \        V 4      p \        V \        P                  4      '       g   \        RV  24      hV \        8X  d   \        R4      hV # )aÕ  
Helper function to standardize a supplied mapping.

Parameters
----------
into : instance or subclass of collections.abc.Mapping
    Must be a class, an initialized collections.defaultdict,
    or an instance of a collections.abc.Mapping subclass.

Returns
-------
mapping : a collections.abc.Mapping subclass or other constructor
    a callable object that can accept an iterator to create
    the desired Mapping.

See Also
--------
DataFrame.to_dict
Series.to_dict
zunsupported type: z/to_dict() only accepts initialized defaultdicts)ÚinspectÚisclassr<   r   r   Údefault_factoryrE   r”   r   ÚMappingr›   )Úintos   &r(   Ústandardize_mappingrÇ   Œ  sy   € ô* �?Š?˜4× Ò Ü�dœK×(Ò(Üœ;¨×(<Ñ(<Ó=Ð=Ü�D‹zˆÜ�dœCŸK™K×(Ò(ÜÐ,¨T¨FÐ3Ó4Ð4ØŒ{ÔÜÐIÓJÐJØ€Kr9   c               ó    € V ^8„  d   QhRRRR/# )r2   Ústateznp.random.Generatorr4   r6   )r7   s   "r(   r8   r8   ­  s   € × HÑ HÐ+Ð HÐ0CÑ Hr9   c                ó   € R # rQ   r6   ©rÉ   s   &r(   Úrandom_staterÌ   ¬  s   € ÙEHr9   c               ó    € V ^8„  d   QhRRRR/# )r2   rÉ   zHint | np.ndarray | np.random.BitGenerator | np.random.RandomState | Noner4   znp.random.RandomStater6   )r7   s   "r(   r8   r8   ±  s   € ÷  ñ  ØSð àñ r9   c                ó   € R # rQ   r6   rË   s   &r(   rÌ   rÌ   °  s   € ñ  r9   c               ó   € V ^8„  d   QhRR/# )r2   rÉ   zRandomState | Noner6   )r7   s   "r(   r8   r8   ¶  s   € ÷  
ñ  
Ð*ñ  
r9   c                óÄ  € \        V 4      '       g;   \        V \        P                  \        P                  P
                  34      '       d    \        P                  P                  V 4      # \        V \        P                  P                  4      '       d   V # \        V \        P                  P                  4      '       d   V # V f   \        P                  # \        R4      h)a9  
Helper function for processing random_state arguments.

Parameters
----------
state : int, array-like, BitGenerator, Generator, np.random.RandomState, None.
    If receives an int, array-like, or BitGenerator, passes to
    np.random.RandomState() as seed.
    If receives an np.random RandomState or Generator, just returns that unchanged.
    If receives `None`, returns np.random.
    If receives anything else, raises an informative ValueError.

    Default None.

Returns
-------
np.random.RandomState or np.random.Generator. If state is None, returns np.random

zdrandom_state must be an integer, array-like, a BitGenerator, Generator, a numpy RandomState, or None)	r   r<   r=   r>   ÚrandomÚBitGeneratorr!   r   r-   rË   s   &r(   rÌ   rÌ   ¶  sœ   € ô( �%×ÒœJ u¬r¯z©z¼2¿9¹9×;QÑ;QÐ.R×SÒSÜ�y‰y×$Ñ$ UÓ+Ð+Ü	�Eœ2Ÿ9™9×0Ñ0×	1Ò	1ØˆÜ	�Eœ2Ÿ9™9×.Ñ.×	/Ò	/ØˆØ	ŠÜ�y‰yÐäð+ó
ð 	
r9   Ú_Tc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r2   r/   rÓ   rº   zCallable[Concatenate[_T, P], T]rX   zP.argsr¿   zP.kwargsr4   r"   r6   )r7   s   "r(   r8   r8   Ý  s:   € ÷ ñ Ø	ðà
)ðð ðð ð	ð
 ñr9   c                ó   € R # rQ   r6   ©r/   rº   rX   r¿   s   &&*,r(   Úpiper×   Ü  ó   € ñ 	r9   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r2   r/   r   rº   ztuple[Callable[..., T], str]rX   r¿   r4   r"   r6   )r7   s   "r(   r8   r8   æ  s:   € ÷ ñ Ø	ðà
&ðð ðð ð	ð
 ñr9   c                ó   € R # rQ   r6   rÖ   s   &&*,r(   r×   r×   å  rØ   r9   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r2   r/   rÓ   rº   z>Callable[Concatenate[_T, P], T] | tuple[Callable[..., T], str]rX   r   r¿   r4   r"   r6   )r7   s   "r(   r8   r8   î  s:   € ÷ &*ñ &*Ø	ð&*à
Hð&*ð ð&*ð ð	&*ð
 ñ&*r9   c                ó’   € \        V\        4      '       d'   Vw  rEWS9   d   V R2p\        V4      hWV&   V! V/ VB # V! V .VO5/ VB # )a#  
Apply a function ``func`` to object ``obj`` either by passing obj as the
first argument to the function or, in the case that the func is a tuple,
interpret the first element of the tuple as a function and pass the obj to
that function as a keyword argument whose key is the value of the second
element of the tuple.

Parameters
----------
func : callable or tuple of (callable, str)
    Function to apply to this object or, alternatively, a
    ``(callable, data_keyword)`` tuple where ``data_keyword`` is a
    string indicating the keyword of ``callable`` that expects the
    object.
*args : iterable, optional
    Positional arguments passed into ``func``.
**kwargs : dict, optional
    A dictionary of keyword arguments passed into ``func``.

Returns
-------
object : the return type of ``func``.
z/ is both the pipe target and a keyword argument)r<   r�   r-   )r/   rº   rX   r¿   Úfunc_ÚtargetÚmsgs   &&*,   r(   r×   r×   î  sa   € ô: �$œ×Òà‰ˆØÔØ�HÐKÐLˆCÜ˜S“/Ð!Øˆv‰Ù�dÐ%˜fÑ%Ð%á�CÐ)˜$Ò) &Ñ)Ð)r9   c                ód   a € V 3R lp\        S \        P                  \        34      '       d   V# S # )zj
Returns a function that will map names/labels, dependent if mapper
is a dict, Series or just a function.
c                ó(   <€ V S9   d
   SV ,          # V # rQ   r6   )r~   Úmappers   &€r(   ÚfÚget_rename_function.<locals>.f  s   ø€ Ø�Œ;Ø˜!•9ÐàˆHr9   )r<   r   rÅ   r   )râ   rã   s   f r(   Úget_rename_functionrå     s*   ø€ õô ˜6¤C§K¡K´Ð#;×<Ò<ˆ1ÐHÀ&ÐHr9   c               ó    € V ^8„  d   QhRRRR/# )r2   rƒ   z"Hashable | Iterable | AnyArrayLiker4   zlist | AnyArrayLiker6   )r7   s   "r(   r8   r8   &  s   € ÷ ñ Ø.ðàñr9   c                óø   € \        V \        \        P                  \        \
        \        34      '       d   V # \        V \        P                  4      '       d"   \        V \        4      '       g   \        V 4      # V .# )z˜
Convert list-like or scalar input to list-like. List, numpy and pandas array-like
inputs are returned unmodified whereas others are converted to list.
)
r<   rC   r=   r>   r   r   r   r   r	   r•   )rƒ   s   &r(   Úconvert_to_list_likerè   &  sT   € ô �&œ4¤§¡¬X´yÔBSÐT×UÒUØˆÜ	�FœCŸL™L×	)Ò	)´*¸VÄS×2IÒ2IÜ�F‹|Ðàˆ8€Or9   c               ó$   € V ^8„  d   QhRRRRRR/# )r2   Úattrr•   Ú	conditionr5   r4   zGenerator[None]r6   )r7   s   "r(   r8   r8   6  s!   € ÷ *ñ *˜Cð *°4ð *À?ñ *r9   c              #  ó¶   "  € V'       d   \        W4      p\        WV4        V x € V'       d   \        WX4       R# R#   T'       d   \        YX4       i i ; i5i)a˜  
Temporarily set attribute on an object.

Parameters
----------
obj : object
    Object whose attribute will be modified.
attr : str
    Attribute to modify.
value : Any
    Value to temporarily set attribute to.
condition : bool, default True
    Whether to set the attribute. Provided in order to not have to
    conditionally use this context manager.

Yields
------
object : obj with modified attribute.
N)ÚgetattrÚsetattr)r/   rê   Úvaluerë   Ú	old_values   &&&& r(   Útemp_setattrrñ   5  sL   é € ÷* Ü˜CÓ&ˆ	Ü�˜5Ô!ð*ØŠ	çÜ�C˜yÖ)ñ ø�9Ü�C˜yÕ)ð üs   ‚ A£? §A¿AÁAc               ó    € V ^8„  d   QhRRRR/# )r2   Úindexr#   r4   ÚNoner6   )r7   s   "r(   r8   r8   T  s   € ÷ 

ñ 

 eð 

°ñ 

r9   c                ó€   € \        V 4      \        V4      8w  d%   \        R\        V 4       R\        V4       R24      hR# )z;
Check the length of data matches the length of the index.
zLength of values (z") does not match length of index (Ú)N)rD   r-   )Údataró   s   &&r(   Úrequire_length_matchrø   T  sI   € ô ˆ4ƒy”C˜“JÔÜðÜ�D“	ˆ{ð ä�E“
ˆ|˜1ðó
ð 	
ñ r9   r€   ÚmaxÚminrk   rc   ÚmeanÚprodÚstdÚvarÚmedianÚcumprodÚcumsumc               ó    € V ^8„  d   QhRRRR/# )r2   rT   r   r4   z
str | Noner6   )r7   s   "r(   r8   r8   ~  s   € ÷ "ñ "˜ð " jñ "r9   c                ó,   € \         P                  V 4      # )z@
if we define an internal function for this argument, return it
)Ú_cython_tableÚget)rT   s   &r(   Úget_cython_funcr  ~  s   € ô ×Ñ˜SÓ!Ð!r9   c               ó    € V ^8„  d   QhRRRR/# )r2   ÚnameszSequence[Hashable | None]r4   zlist[Hashable]r6   )r7   s   "r(   r8   r8   …  s   € ÷ Tñ TÐ7ð T¸Nñ Tr9   c                ó^   € \        V 4       UUu. uF  w  rVf   RV 2MTNK  	  upp# u uppi )zç
If a name is missing then replace it by level_n, where n is the count

Parameters
----------
names : list-like
    list of column names or None values.

Returns
-------
list
    list of column names with the None values replaced.
Úlevel_)Ú	enumerate)r  Úir,   s   &  r(   Úfill_missing_namesr  …  s6   € ô CLÈEÔBRÔSÑBR±w°q˜DšLˆf�Q�C‰L¨dÒ2ÑBRÒSÐSùÓSs   �)c                ó„   € \         P                  ! ^4      pVP                  P                  4        F  pW J g   K
   R# 	  R# )aQ  
Helper function used in detecting chained assignment.

If the pandas object (DataFrame/Series) is a local variable
in the caller's frame, it should not be a case of chained
assignment or method call.

For example:

def test():
    df = pd.DataFrame(...)
    df["a"] = 1  # not chained assignment

Inside ``df.__setitem__``, we call this function to check whether `df`
(`self`) is a local variable in `test` frame (the frame calling setitem). If
so, we know it is not a case of chained assignment (even when the refcount
of `df` is below the threshold due to optimization of local variables).
TF)ÚsysÚ	_getframeÚf_localsrƒ   )r/   ÚframeÚvs   &  r(   Úis_local_in_caller_framer  –  s6   € ô& �MŠM˜!Ó€EØ�^‰^×"Ñ"Ö$ˆØ�8Úñ %ñ r9   ).rQ   )T)mÚ__doc__Ú
__future__r   ÚbuiltinsÚcollectionsr   r   Úcollections.abcr   r   r   r   r	   r
   Ú
contextlibÚ	functoolsr   rÂ   r  Útypingr   r   r   r   r   r   Únumpyr=   Úpandas._libsr   Úpandas.core.dtypes.castr   Úpandas.core.dtypes.commonr   r   Úpandas.core.dtypes.genericr   r   r   r   r   Úpandas.core.dtypes.inferencer   Úpandas.core.colr   Úpandas._typingr   r   r   r    r!   r"   Úpandasr#   r%   r0   rI   rN   rY   rd   rl   rs   ry   r�   rˆ   r�   r    r¤   r¬   r¯   r³   r¶   r¹   rÀ   rÇ   rÌ   rÓ   r×   rå   rè   Úcontextmanagerrñ   rø   r€   rù   rú   rk   rc   Únansumrû   Únanmeanrü   Únanprodrý   Únanstdrþ   Únanvarrÿ   Ú	nanmedianÚnanmaxÚnanminr   Ú
nancumprodr  Ú	nancumsumr  r  r  r  r6   r9   r(   Ú<module>r1     sû  ðñõ #ã ÷÷÷ ó Ý Û Û 
÷÷ ó å å K÷÷õ õ =å &ç÷÷ õ òò0
õ5òpò,4õ,õ,õ0õ0õ,ð 
öó 
ðð 
Þ Vó 
Ø V÷÷>ò:õõ	õ	õ<õ	òò"ò&ð@ 
Ü Hó 
Ø Hð 
ô ó 
ð ÷
 
ñF ˆTƒ]€ð 
ôó 
ðð 
ôó 
ðõ&*òRIõð ×Ñö*ó ð*õ<

ðØ‡L�L�%ðà‡L�L�%ðð ‡L�L�%ðð ‡F�FˆEð	ð
 ‡F�FˆEðð ‡F�FˆEðð ‡I�Iˆuðð ‡G�GˆVðð ‡J�J�ðð ‡G�GˆVðð ‡J�J�ðð ‡F�FˆEðð ‡I�Iˆuðð ‡F�FˆEðð ‡I�Iˆuðð  ‡I�Iˆxð!ð" ‡L�L�(ð#ð$ ‡F�FˆEØ‡I�IˆuØ‡F�FˆEØ‡I�IˆuØ‡J�J�	Ø‡M�M�9Ø‡I�IˆxØ‡L�L�(ñ3€õ:"õTô"r9   