+
    xȇi/%                    \   ^ RI Ht ^ RIHtHt ^ RIt^ RIHtH	t	 ^ RI
Ht ^ RIH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 ^ RIHt ^ RIHt ^ RIH t  ^ RI!H"t" ^ RI#H$t$ ]'       d   ^ RI%H&t& . R Ot'R!R R llt(R R lt)R"R R llt*R R lt+R#R R llt,R t-R R lt.R R lt/R# )$    )annotations)TYPE_CHECKINGcastN)NaTlib)InvalidIndexError)find_common_type)	safe_sort)Index
_new_Indexensure_indexensure_index_from_sequencesget_unanimous_namesmaybe_sequence_to_range)CategoricalIndex)DatetimeIndex)IntervalIndex)
MultiIndex)PeriodIndex)
RangeIndex)TimedeltaIndex)Axisc               (    V ^8  d   QhRRRRRRRR/# )	   	intersectboolaxisr   sortbool | lib.NoDefaultreturnr    )formats   "g/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/core/indexes/api.py__annotate__r$   ?   s8     J JJ J 	J
 J    c                d    V  Uu. uF  qDP                  V4      NK  	  pp\        WQVR7      # u upi )a  
Extract combined index: return intersection or union (depending on the
value of "intersect") of indexes on given axis, or None if all objects
lack indexes (e.g. they are numpy arrays).

Parameters
----------
objs : list
    Series or DataFrame objects, may be mix of the two.
intersect : bool, default False
    If True, calculate the intersection between indexes. Otherwise,
    calculate the union.
axis : {0 or 'index', 1 or 'outer'}, default 0
    The axis to extract indexes from.
sort : bool, default True
    Whether the result index should come out sorted or not. NoDefault
    use for deprecation in GH#57335.

Returns
-------
Index
)r   r   )	_get_axis_get_combined_index)objsr   r   r   obj	obs_idxess   &&&&  r#   get_objs_combined_axisr,   ?   s1    8 155t$I5yDII 6s   -c                    V ^8  d   QhRRRR/# )r   r)   list[Index]r    r!   )r"   s   "r#   r$   r$   _   s      [ [ r%   c                    \        4       p. pV  F@  p\        V4      V9  g   K  VP                  \        V4      4       VP                  V4       KB  	  V# )zR
Return a list with distinct elements of "objs" (different ids).
Preserves order.
)setidaddappend)r)   idsresr*   s   &   r#   _get_distinct_objsr6   _   sH    
 EC
Cc7#GGBsGJJsO  Jr%   c               (    V ^8  d   QhRRRRRRRR/# )	r   indexesr.   r   r   r   r   r    r   r!   )r"   s   "r#   r$   r$   m   s0     ' ''' ' 	'r%   c                   \        V 4      p \        V 4      ^ 8X  d   \        ^ 4      pMz\        V 4      ^8X  d   V ^ ,          pM`V'       d,   V ^ ,          pV R,           F  pVP                  V4      pK  	  M-\	        Y\
        P                  J d   TMRR7      p\        V4      pV'       d    V\
        P                  Jd   \        V4      pV# )a  
Return the union or intersection of indexes.

Parameters
----------
indexes : list of Index or list objects
    When intersect=True, do not accept list of lists.
intersect : bool, default False
    If True, calculate the intersection between indexes. Otherwise,
    calculate the union.
sort : bool, default False
    Whether the result index should come out sorted or not. NoDefault
    used for deprecation of GH#57335

Returns
-------
Index
   NNFr   )	r6   lendefault_indexintersectionunion_indexesr   
no_defaultr   safe_sort_index)r8   r   r   indexothers   &&&  r#   r(   r(   m   s    0 !)G
7|q$Q'	W	
	
R[[E&&u-E ! gCNN4JDPUVU#CNN*&Lr%   c                    V ^8  d   QhRRRR/# )r   rC   r   r    r!   )r"   s   "r#   r$   r$      s      5 U r%   c                   V P                   '       d   V #  \        V 4      p\        V\        4      '       d   V# \	        \
        P                  V4      p\        V \        4      '       d$   \        P                  ! WP                  R7      p V # \        WP                  V P                  R7      p  V #   \         d     T # i ; i)z
Returns the sorted index

We keep the dtypes and the name attributes.

Parameters
----------
index : an Index

Returns
-------
Index
)names)namedtype)is_monotonic_increasingr
   
isinstancer   r   npndarrayr   from_tuplesrG   rH   rI   	TypeError)rC   array_sorteds   & r#   rB   rB      s     $$$L ' lE**BJJ5eZ((**<{{KE L ,ZZu{{KEL   Ls   B0 0B?>B?c                    V ^8  d   QhRRRR/# )r   r   r   r    r   r!   )r"   s   "r#   r$   r$      s#     `K `K!5 `K `Kr%   c                   \        V 4      ^ 8X  d   \        R4      h\        V 4      ^8X  d_   V ^ ,          p\        V\        4      '       d>   V'       d   V\        P
                  J d   \        V4      pV# \        \        V4      4      pV# \        V 4      w  rVR8X  d   V ^ ,          p^ p^ pV  F=  p\        V\        4      '       g   K  V^,          pVP                  f   K4  V^,          pK?  	  V^ V39  d   \        R4      hV\        V 4      8X  d!   V\        P
                  J d   RpV ^ ,          pM7V^8  d1   RpV  Uu. uF  qwP                  \        RR7      NK  	  p pV ^ ,          pV R,           F  pTP                  Y'       d   RMRR	7      pK!  	  V# VR
8X  Ed,   \        V 4      '       g   \!        V  Uu. uF  qfP"                  NK  	  up4      p	V  U
u. uF  qP                  V	RR7      NK  	  pp
V^ ,          P%                  4       pV^,          P'                  VR,          4      pWP)                  V4      R8H  ,          p\        V4      '       d    VP'                  VP%                  4       4      pV'       d   VP+                  4       pM	V ^ ,          p\-        V !  ^ ,          pWP.                  8w  d   VP1                  V4      pV# VR8X  d   V  Uu. uF'  p\        V\        4      '       g   K  VP"                  NK)  	  ppV'       d   \!        V4      p	MRp	R V  4       p\        \        P2                  ! V\5        V4      R	7      V	R7      # \7        RV: R24      hu upi u upi u up
i u upi )a-  
Return the union of indexes.

The behavior of sort and names is not consistent.

Parameters
----------
indexes : list of Index or list objects
sort : bool, default True
    Whether the result index should come out sorted or not. NoDefault
    used for deprecation of GH#57335.

Returns
-------
Index
z#Must have at least 1 Index to unionspecialNz0Cannot join tz-naive with tz-aware DatetimeIndexTF)copyr:   r<   array:r   NNlistc              3  r   "   T F-  p\        V\        4      '       d   VP                  4       MTx  K/  	  R # 5iN)rK   r   tolist).0idxs   & r#   	<genexpr> union_indexes.<locals>.<genexpr>  s)     XPWZU%;%;SZZ\DPWs   57)rI   zkind=z& must be 'special', 'array' or 'list'.)r=   AssertionErrorrK   rV   r   rA   r   sorted_sanitize_and_checkr   tzrO   astypeobjectunionall_indexes_samer	   rI   uniquer3   get_indexer_forsort_valuesr   rH   renamefast_unique_multiple_list_genr   
ValueError)r8   r   resultkindnum_dtisnum_dti_tzsr[   xrD   rI   indindsrC   diffrH   dtypes	all_listss   &&               r#   r@   r@      s   " 7|qBCC
7|qfd##43>>1v  vf~.'0MGyC#}--A66%1$K	 
 q(m+
 NOOs7|#s~~%QZF\ D >EEWxxUx3WGEQZFR[[E\\%dd\FF !	(($7%C7Cii7%CDE=DEWcJJu5J1WDEGNN$EGNN48,E..u5;<D4yyT[[]3))+AJE"G,Q/::LL&E	'.Iw*S%2H)#))wI$V,EEXPWX	--id4jI
 	

 ED7"HIJJK F &DE  Js   ?M9M$M)M.2M.c                b   V  Uu0 uF  p\        V4      kK  	  pp\        V9   d_   \        V4      ^8  dK   V  Uu. uF/  p\        V\        4      '       g   \	        \        V4      4      MTNK1  	  p pV\        0,          pMV R3# \        V4      ^8  g   \        V9  d   V R3# V R3# u upi u upi )a  
Verify the type of indexes and convert lists to Index.

Cases:

- [list, list, ...]: Return ([list, list, ...], 'list')
- [list, Index, ...]: Return _sanitize_and_check([Index, Index, ...])
    Lists are sorted and converted to Index.
- [Index, Index, ...]: Return ([Index, Index, ...], TYPE)
    TYPE = 'special' if at least one special type, 'array' otherwise.

Parameters
----------
indexes : list of Index or list objects

Returns
-------
sanitized_indexes : list of Index or list objects
type : {'list', 'array', 'special'}
rV   rS   rU   )typerV   r=   rK   r   )r8   rC   kindsrq   s   &   r#   ra   ra     s    * '..gUT%[gE.u}u:>KRKRajE&:&:d1gA7   dVOEF?"
5zA~e+	!! /s
   B'5B,c                   V ^8  d   QhRR/# )r   r    r   r!   )r"   s   "r#   r$   r$   B  s     5 5 5r%   c                   a \        V 4      p\        V4      o\        ;QJ d    V3R lV 4       F  '       d   K   R# 	  R# ! V3R lV 4       4      # )z
Determine if all indexes contain the same elements.

Parameters
----------
indexes : iterable of Index objects

Returns
-------
bool
    True if all indexes contain the same elements, False otherwise.
c              3  F   <"   T F  pSP                  V4      x  K  	  R # 5irX   )equals)rZ   rC   firsts   & r#   r\   #all_indexes_same.<locals>.<genexpr>Q  s     4uu||E""s   !FT)iternextall)r8   itrr~   s   & @r#   rf   rf   B  s@     w-CIE3443343434444r%   c                    V ^8  d   QhRRRR/# )r   nintr    r   r!   )r"   s   "r#   r$   r$   T  s     2 2S 2Z 2r%   c                H    \        V 4      p\        P                  ! VR R7      # )N)rH   )ranger   _simple_new)r   rngs   & r#   r>   r>   T  s    
(C!!#D11r%   )r   r   r   r   r   r   r   r   r   r   r   rf   r>   r   r   r,   r   r   rB   r@   )Fr   T)FF)T)0
__future__r   typingr   r   numpyrL   pandas._libsr   r   pandas.errorsr   pandas.core.dtypes.castr	   pandas.core.algorithmsr
   pandas.core.indexes.baser   r   r   r   r   r   pandas.core.indexes.categoryr   pandas.core.indexes.datetimesr   pandas.core.indexes.intervalr   pandas.core.indexes.multir   pandas.core.indexes.periodr   pandas.core.indexes.ranger   pandas.core.indexes.timedeltasr   pandas._typingr   __all__r,   r6   r(   rB   r@   ra   rf   r>   r!   r%   r#   <module>r      s    "
  , 4 ,  : 7 6 0 2 0 9#0J@'TD`KF# L5$2r%   