+
    ÏÜ³j"  ã                  óL  € R 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t^ RIHt ^ RIHt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Ht ^ R
I H!t!H"t"H#t# M^ RIH$t$ ]$t]$t!]$t# ! R R]],          4      t% ! R R]%]#,          4      t& ! R R]%]!,          4      t'R# )z+
Implementation of nlargest and nsmallest.
)Úannotations)ÚHashableÚSequence)ÚTYPE_CHECKINGÚGenericÚLiteralÚcastÚfinalN)Úalgos)Úis_bool_dtypeÚis_complex_dtypeÚis_integer_dtypeÚis_list_likeÚis_numeric_dtypeÚneeds_i8_conversion)ÚBaseMaskedDtype)Údefault_index)ÚDtypeObjÚ
IndexLabelÚNDFrameT)Ú	DataFrameÚIndexÚSeries)ÚTc                  óz   € ] tR t^9tR R ltR R lt]R R l4       t]R R l4       t]]	R	 R
 l4       4       t
RtR# )ÚSelectNc               ó(   € V ^8„  d   QhRRRRRRRR/# )	é   Úobjr   ÚnÚintÚkeepúLiteral['first', 'last', 'all']ÚreturnÚNone© )Úformats   "Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/pandas/core/methods/selectn.pyÚ__annotate__ÚSelectN.__annotate__:   s2   € ÷ Mñ MØðMØ #ðMØ+JðMà	ñMó    c                	ób   € Wn         W n        W0n        V P                  R9  d   \        R4      hR# )Úfirstz,keep must be either "first", "last" or "all"N)r,   ÚlastÚall)r   r   r!   Ú
ValueError)Úselfr   r   r!   s   &&&&r'   Ú__init__ÚSelectN.__init__:   s1   € ð ŒØŒØŒ	à�9‰9Ð4Ô4ÜÐKÓLÐLñ 5r*   c               ó    € V ^8„  d   QhRRRR/# )r   ÚmethodÚstrr#   r   r%   )r&   s   "r'   r(   r)   D   s   € ÷ "ñ "˜cð " hñ "r*   c                	ó   € \         h©N)ÚNotImplementedError)r0   r4   s   &&r'   ÚcomputeÚSelectN.computeD   s   € Ü!Ð!r*   c               ó   € V ^8„  d   QhRR/# ©r   r#   r   r%   )r&   s   "r'   r(   r)   H   s   € ÷ (ñ (˜(ñ (r*   c                	ó$   € V P                  R 4      # )Únlargest©r9   ©r0   s   &r'   r>   ÚSelectN.nlargestG   s   € à�|‰|˜JÓ'Ð'r*   c               ó   € V ^8„  d   QhRR/# r<   r%   )r&   s   "r'   r(   r)   L   s   € ÷ )ñ )˜8ñ )r*   c                	ó$   € V P                  R 4      # )Ú	nsmallestr?   r@   s   &r'   rD   ÚSelectN.nsmallestK   s   € à�|‰|˜KÓ(Ð(r*   c               ó    € V ^8„  d   QhRRRR/# )r   Údtyper   r#   Úboolr%   )r&   s   "r'   r(   r)   Q   s   € ÷ *ñ * xð *°Dñ *r*   c                óZ   € \        V 4      '       d   \        V 4      '       * # \        V 4      # )zO
Helper function to determine if dtype is valid for
nsmallest/nlargest methods
)r   r   r   )rG   s   &r'   Úis_valid_dtype_n_methodÚSelectN.is_valid_dtype_n_methodO   s(   € ô ˜E×"Ò"Ü'¨Ó.Ô.Ð.Ü" 5Ó)Ð)r*   )r!   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r1   r9   r	   r>   rD   ÚstaticmethodrJ   Ú__static_attributes__r%   r*   r'   r   r   9   sQ   † õMõ"ð ô(ó ð(ð ô)ó ð)ð Øô*ó ó ô*r*   r   c                  ó&   € ] tR t^[tRtR R ltRtR# )ÚSelectNSeriesz¢
Implement n largest/smallest for Series

Parameters
----------
obj : Series
n : int
keep : {'first', 'last'}, default 'first'

Returns
-------
nordered : Series
c               ó    € V ^8„  d   QhRRRR/# )r   r4   r5   r#   r   r%   )r&   s   "r'   r(   ÚSelectNSeries.__annotate__j   s   € ÷ Tñ T˜cð T fñ Tr*   c                	ó†  € ^ RI Hp V P                  pV P                  P                  pV P                  V4      '       g   \        RV RV 24      hV^ 8:  d   V P                  . ,          # V P                  P                  pV P                  P                  RR7      pV\        V4      8¼  dK   VR8H  pVP                  ! VRR7      P                  V4      pVP                  VP                  4      Vn        V# VP                  ! 4       p	VP                  ! V	P                  4      p
V	P                  pV	P                  p\!        VP                  4      '       d   VP#                  R	4      pMC\%        VP                  \&        4      '       d   VP(                  pM\*        P,                  ! V4      pVP                  P.                  R
8X  d    VP#                  \*        P0                  4      pVR8X  d:   V) p\3        V4      '       d   V^,          pM\5        V4      '       d   ^V) ,
          pV P6                  R8X  d   VRRR1,          pTp\        V4      p\9        W>4      p\        V4      ^ 8”  d0   \:        P<                  ! VP?                  RR7      V^,
          4      pM\*        P@                  p\*        PB                  ! WÏ8*  4      w  pVVV,          PE                  RR7      ,          pV P6                  R8w  d	   VRV pTpM[\        V4      Tu;8  d!   \        V
4      \        V4      ,           8:  d    M M\        V
4      \        V4      ,           pM\        V4      pV P6                  R8X  d   V^,
          V,
          pV! V	PF                  V,          V
.4      PF                  RV pVP                  VP                  4      Vn        V# )é    )ÚconcatzCannot use method 'z' with dtype T©ÚdroprD   Ústable©Ú	ascendingÚkindÚi8Úbr>   r-   NÚC)Úorder)r^   r.   éÿÿÿÿ)$Úpandas.core.reshape.concatrX   r   r   rG   rJ   Ú	TypeErrorÚindexÚreset_indexÚlenÚsort_valuesÚheadÚtakeÚdropnarZ   Ú_valuesr   ÚviewÚ
isinstancer   Ú_dataÚnpÚasarrayr^   Úuint8r   r   r!   ÚminÚlibalgosÚkth_smallestÚcopyÚnanÚnonzeroÚargsortÚiloc)r0   r4   rX   r   rG   Úoriginal_indexr   r]   ÚresultÚdroppedÚ	nan_indexÚ	new_dtypeÚarrÚnbaseÚnarrÚkth_valÚnsÚindsÚfindexs   &&                 r'   r9   ÚSelectNSeries.computej   sì  € Ý5à�F‰FˆØ—‘—‘ˆØ×+Ñ+¨E×2Ò2ÜÐ1°&°¸ÀuÀgÐNÓOÐOà�Œ6Ø—8‘8˜B•<Ðð !%§¡§¡ˆØŸ™×,Ñ,°$Ð,Ó7ˆð ”�MÓ"Ô"Ø +Ñ-ˆIØ"×.Ò.¸ÈÔR×WÑWØóˆFð *×.Ñ.¨v¯|©|Ó<ˆFŒLØˆMð  ×&Ò&Ó(ˆØ!×&Ò& w§}¡}Ó5ˆ	à—M‘Mˆ	ð �o‰oˆÜ˜sŸy™y×)Ò)Ø—(‘(˜4“.‰CÜ˜Ÿ	™	¤?×3Ò3Ø—)‘)‰Cä—*’*˜S“/ˆCØ�9‰9�>‰>˜SÔ Ø—(‘(œ2Ÿ8™8Ó$ˆCà�ZÔØ�$ˆCÜ 	×*Ò*à�q•‘ä˜y×)Ò)à˜C˜4•j�à�9‰9˜ÔØ‘d˜�d•)ˆCàˆÜ�3‹xˆÜ�‹Lˆô
 ˆs‹8�aŒ<Ü×+Ò+¨C¯H©H¸3¨HÓ,?ÀÀQÅÓG‰Gä—f‘fˆGÜ—
’
˜3™>Ó*‰ˆØ�#�b•'—/‘/ x�/Ó0Õ1ˆà�9‰9˜ÔØ˜˜�8ˆDØ‰FÜ�‹Y˜Ö<¤# i£.´3°t³9Õ"<×<Ü˜“^¤c¨$£iÕ/‰Fä˜“YˆFà�9‰9˜Ôà˜!•8˜d•?ˆDá˜Ÿ™ dÕ+¨YÐ7Ó8×=Ñ=¸g¸vÐFˆØ%×*Ñ*¨6¯<©<Ó8ˆŒØˆr*   r%   N)rL   rM   rN   rO   Ú__doc__r9   rQ   r%   r*   r'   rS   rS   [   s   † ñ÷Tñ Tr*   rS   c                  ó>   a € ] tR t^ÁtRtR V 3R lltR R ltRtV ;t# )ÚSelectNFramezÁ
Implement n largest/smallest for DataFrame

Parameters
----------
obj : DataFrame
n : int
keep : {'first', 'last'}, default 'first'
columns : list or str

Returns
-------
nordered : DataFrame
c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r   r   r   r    r!   r"   Úcolumnsr   r#   r$   r%   )r&   s   "r'   r(   ÚSelectNFrame.__annotate__Ñ   s<   € ÷ ñ àðð ðð .ð	ð
 ðð 
ñr*   c                	óÔ   <€ \         SV `  WV4       \        V4      '       d   \        V\        4      '       d   V.p\        \        \        ,          V4      p\        V4      pW@n	        R # r7   )
Úsuperr1   r   ro   Útupler   r   r   Úlistr�   )r0   r   r   r!   r�   Ú	__class__s   &&&&&€r'   r1   ÚSelectNFrame.__init__Ñ   sQ   ø€ ô 	‰Ñ˜ Ô&Ü˜G×$Ò$¬
°7¼E×(BÒ(BØ�iˆGä”x¤Õ)¨7Ó3ˆÜ�w“-ˆØŽr*   c               ó    € V ^8„  d   QhRRRR/# )r   r4   r5   r#   r   r%   )r&   s   "r'   r(   rŽ   à   s"   € ÷ LNñ LN˜cð LN iñ LNr*   c           
     	óÖ  a€ V P                   pV P                  pV P                  pV FC  pW5,          P                  pV P	                  V4      '       d   K.  \        R V: RV RS: R24      h	  R V3R llpVP                  pVP                  RR7      ;r“Tp
\        ^ 4      p\        V4       Fæ  w  rÅW•,          p\        V4      ^,
          V8H  p\        VS4      ! Y®'       d   V P                  MRR	7      pV'       g   \        V4      V
8:  d   V! W¿P                  4      p MuWÿVP                  R,          ,          8H  pVV,          pVV( ,          pV! VVP                  4      pV	P                  VP                  ,          p	V\        V4      ,
          p
Kè  	  VP                  V4      pVP                  V4      Vn        \        V4      ^8X  d   V# SR
8H  pVP                  VVRR7      # )zColumn z has dtype z, cannot use method z with this dtypec               ó$   € V ^8„  d   QhRRRRRR/# )r   Úcurrent_indexerr   Úother_indexerr#   r%   )r&   s   "r'   r(   Ú*SelectNFrame.compute.<locals>.__annotate__í   s!   € ÷ 	=ñ 	=¨ð 	=¸uð 	=Èñ 	=r*   c                óV   <€ SR8X  d   V P                  V4      # VP                  V 4      # )zW
Helper function to concat `current_indexer` and `other_indexer`
depending on `method`
rD   )Úappend)r˜   r™   r4   s   &&€r'   Úget_indexerÚ)SelectNFrame.compute.<locals>.get_indexerí   s/   ø€ ð
 ˜Ô$Ø&×-Ñ-¨mÓ<Ð<à$×+Ñ+¨OÓ<Ð<r*   TrY   r.   )r!   rD   r[   r\   rc   )r   r   r�   rG   rJ   re   rf   rg   r   Ú	enumeraterh   Úgetattrr!   Úlocrk   ri   )r0   r4   r   Úframer�   ÚcolumnrG   r�   r|   Ú	cur_frameÚcur_nÚindexerÚiÚseriesÚis_last_columnÚvaluesÚborder_valueÚunsafe_valuesÚsafe_valuesr]   s   &f                  r'   r9   ÚSelectNFrame.computeà   sÝ  ø€ Ø�F‰FˆØ—‘ˆØ—,‘,ˆãˆFØ•M×'Ñ'ˆEØ×/Ñ/°×6Ô6ÜØ˜f™Z {°5°'ð :)Ø)/©
Ð2BðDóð ñ ÷	=ð 	=ð Ÿ™ˆØ!×-Ñ-°4Ð-Ó8Ð8ˆ	ØˆÜ& qÓ)ˆä" 7Ö+‰IˆAð Õ&ˆFÜ  ›\¨AÕ-°Ñ2ˆNÜ˜V VÔ,Ø®˜DŸIšI¸UôˆF÷ ¤ V£°Ô!5Ù% g¯|©|Ó<�Ùð
 "¨F¯L©L¸Õ,<Õ%=Ñ=ˆLð # <Õ0ˆMð ! , Õ/ˆKÙ! '¨;×+<Ñ+<Ó=ˆGð "Ÿ™ m×&9Ñ&9Õ:ˆIØœ˜G›Õ$ŠEñE ,ðH —
‘
˜7Ó#ˆð %×)Ñ)¨'Ó2ˆŒô ˆw‹<˜1ÔØˆLà˜kÑ)ˆ	à× Ñ  °IÀHÐ ÓMÐMr*   )r�   )	rL   rM   rN   rO   r‰   r1   r9   rQ   Ú__classcell__)r“   s   @r'   r‹   r‹   Á   s    ø† ñ÷ð ÷LNó LNr*   r‹   )(r‰   Ú
__future__r   Úcollections.abcr   r   Útypingr   r   r   r   r	   Únumpyrq   Úpandas._libsr
   ru   Úpandas.core.dtypes.commonr   r   r   r   r   r   Úpandas.core.dtypes.dtypesr   Úpandas.core.indexes.apir   Úpandas._typingr   r   r   Úpandasr   r   r   r   r   rS   r‹   r%   r*   r'   Ú<module>rº      s�   ðñõ #÷÷õ ó å *÷÷ õ 6å 1ç÷ñ ÷ò õ !à€HØ€IØ€Fô*ˆg�hÕô *ôDc�G˜F•Oô côLkN�7˜9Õ%ö kNr*   