
    l2i+                    8   d Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	 ddl
mZ ddlZddlZddlmZ ddlmZmZ dd	lmZmZ ddlZdd
lmZ ddlZddlZddlmZmZ ddlm c m!Z" ddl#m$Z$m%Z% ddl&Z'ddl&m(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 erddl8m9Z9m:Z: 	 ddl;Z<[<dZ=ddl?Z?	  e?j                  d       d,dZBd-dZCd,dZDej                  j                  gZG e7ej                         e7d      k\  r%eGj                  ej                  j                         ej                  j                  dd eMeG             ej                  j                  d       dj                         D ]e  ZP eQe'j                  j                  eP      ZT ej                  eT ej                  eT ej                  dd       ej                                      g dj                         D ]x  ZP eQe'j                  j                  eP      ZT ej                  eT ej                  eT ej                  d d!       ej                          ej                  d"d#$      %             z d&j                         D ]x  ZP eQe'j                  j                  eP      ZT ej                  eT ej                  eT ej                  d'd(       ej                          ej                  d"d#$      )             z ej                  d,d*       ZZ ej                  d+      d,d,       Z[ ej                  g d-d. /      d0        Z\e\Z] ej                  d"d1gd2 /      d3        Z^ ej                  g d45      d6        Z_ ej                  g d45      d7        Z` ej                  ddg5      d8        Za ej                  g d95      d:        Zb ej                  g d;5      d<        Zc ej                  g d=5      d>        Zd ej                  g d=5      d?        Ze ej                  dd@dAdBdCdD ej                  dE e"j                  dF      G      g5      dH        Zh ej                  d@dAdBdCdD ej                  dE e"j                  dF      G      g5      dI        Zi ej                  ddg5      dJ        Zj ej                  g dK5      dL        Zk ej                  dMdNg5      dO        Zl ej                  e0j                  dP /      dQ        ZnenZo ej                  dej                  e'j                  g5      dR        ZrerZs ej                  e0j                  dS /      dT        ZueuZv ej                  e(e+g5      dU        Zw ej                  e4e+gdVdWg/      dX        ZxexZy ej                  e4e+e'j                  gg dY/      dZ        Z{ ej                  e4e+e(e'j                  gd[ /      d\        Z|e|Z}ej                  d]        Z~ej                  d^        Zej                  d_        Zej                  d.d`       Zej                  	 	 d/da       Zdb Zdc Zi dd e0j
                  de      df e0j                  de      dg e0j                  dedhi      dj e0j                  de      dk e0j                  de      dl e0j                  de      dm e0j                  dedmn      do e0j                  dedon      dp e0j                  dedpn      dq e0j                  dedqn      dr e0j                  dedrn      ds e0j                  dedsn      dt e0j                  dedtn      du e0j                  dedun      dv e0j                  dedvn      dw e0j                  dedwn      dx e0j                  dy      j                  e       e4ej                   j#                  dz      j%                  dy      dk         e0j&                  dedwn      j                  d{       e0j&                  dedwn      j                  d|       e0j(                  de       e0j*                  de       e4g        e5j,                   eg d}g d~             e        e        e4g d       e4 ej0                  de      dn       e4 ej0                  de      dn       e4 ej0                  de      dn       e4 ej0                  de      j                  e      dn       e4 e'j                   e0j
                  de      dn            dZe=r0 e4 e'j                   e0j
                  de      dn            Zeed<    ej                  ej9                         5      d        ZeZ ej                  ej?                         D  cg c]  \  } } e|e5      r|  c}} 5      d        ZeZ ej                  ej?                         D  cg c]&  \  } }| jG                  d      s| dv s e|e5      s| ( c}} 5      d        Zej                  d0d       Zej                  d0d       Zej                  d0d       Zd Zej?                         D ci c]  \  }}d| d e|       c}}Zej                  d0d       Zej                  d0d       Ze0jX                  D ci c]&  }|jZ                   d e0j\                  d|      ( c}Zi eeeZ ej                  ej9                         5      d        Ze0jd                  D ci c]  }|jZ                   d e+|       c}Zi eeeeZ ej                  ej9                         5      d        Zej                  d/d       Zej                  d/d       Zej                  d/d       Zej                  d/d       Zej                  d0d       Z ej                   e)dd!       e%dqd      f e)dd       e%dwd      f e*dd      df e*dd      df e-ddi       e$dd      f e,d      dfg5      d        Z ej                  e0jx                  5      d        Z ej                  ej|                  e2j~                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  e2j                  ej                  e2j                  ej                  e2j                  g5      d        Z ej                  ej|                  e2j~                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  ej                  e2j                  g5      d        Zg dZ ej                  eڬ5      d        ZddgZ ej                  eܬ5      d        Zeez   Z ej                  eެ5      d        Z ej                  ej                  ej                  ej                  ej                  ej                  ej                  g5      d        Z ej                  g d5      d        Z ej                  g d5      d        Zg dZ ej                  e5      d        Zej                  d        Zej                  d1dÄ       Zej                  d1dĄ       Zej                  d2dń       Zej                  d/dƄ       Zdddddddddd e        e        edΫ       ed       edϫ      e	j<                   e	 ed"Ы             e	 edѬЫ      dҬӫ      gZe?4ej                   e?j                  dh       e?j                  d      g       eD cg c]
  } e|       c}Z e"j                   ee             ej                  ee/      dԄ               Z e"j                   eed"d              ej                  ed"d ed"d /      dՄ               ZeZdde e       e	j<                  gZe?!ej                   e?j                  d              ej                  e5      d؄        ZeZ ej                  e0j                  5      dل        Z ej                  d ej                  d e"j                  dګ      G      g5      dۄ        Z ej                  d ej                  d e"j                  dګ      G       ej                  d e"j                  dګ      G      g5      dބ        Z ej                  d ej                  d e"j                  dګ      G      g5      d        ZeZ ej                  e0j                  5      d        Z ej                  e0j                  5      d        Z ej                  dd ej                  d e"j                  dګ      G       ej                  d e"j                  dګ      G      g5      d        Z  ej                  e0j                  5      d        Z ej                  e0j                  5      d        Zej                  d3d       Z ej                  e0j                  5      d        Z ej                  e0j                  5      d        Z	 ej                  e0j                  5      d        Z ej                  e0j                  5      d        Z ej                  e0j                  5      d        Z ej                  e0j                   5      d        Z ej                  e0j$                  5      d        Z ej                  e0j(                  5      d        Z ej                  e0j,                  5      d        Z ej                  e0j(                  e0j                  z   5      d        Z ej                  e0j(                  e0j                  z   e0j2                  z   e0j4                  z   5      d        Z ej                  e0j8                  5      d        Z ej                  e0j<                  5      d        Z ej                  e0j@                  5      d        Z! ej                  e0jD                  5      d        Z# ej                  e0jH                  5      d        Z%dddej                  dgfddde'jL                  dgfdde'j                  dgfddej                  dgfdej                  ej                  ej                  gfdg fddej                  dzgfddej                  d gfddej                  d gfdd"ej                  dzgfdd"ej                  d gfd ed"      ej                   edz      gfddej                  dgfdde'jL                  dgfd ejN                  d      ej                   ejN                  d      gfdf e-d	      ej                   e-d
      gfd edd"d"      ej                   edd"d"      gfddej                  dgfdk ed"      ej                   edz      gfd ed"      ej                   edz      gfdj e*d      e'j                   e*d      gfd e)dd"      ej                   e)ddz      gfgZ( ee( \  Z)Z* ej                  e(e)/      d        Z+ej                  d        Z, ej                  g d5      d        Z- ej                  e'j                  j\                  D cg c]K  } e/ eQe'j                  |      e'j                  j`                        r|dk7  r eQe'j                  |      M c}5      d        Z1 ej                  dd g5      d        Z2 ej                         d        Z3 ej                  dddej                  ej                  ej                  fej                  e'j                  dfej                  e'jL                  dfe'jL                  e'jL                  e'jL                  fg5      d4d       Z4 ej                  e0jj                  e0jl                  e0jn                  g5      d         Z8 ej                  e0jl                  e0jn                  g5      d!        Z9 ej                  e0jj                  e0jn                  g5      d"        Z: ej                  e0jj                  e0jl                  g5      d#        Z; ej                  e0jx                  e0jl                  g5      d$        Z= ej                  e0j|                  e0jn                  g5      d%        Z?ej                  d5d&       Z@ej                  d5d'       ZAd(d)gZBe?#eBj                   e?j                  d(              ej                  eB5      d6d*       ZC ej                         d+        ZDy# e>$ r dZ=Y w xY w# e?j                  $ r dZ?Y w xY wc c}} w c c}} w c c}}w c c}w c c}w c c}w c c}w (7  a  
This file is very long and growing, but it was decided to not split it yet, as
it's still manageable (2020-03-17, ~1.1k LoC). See gh-31989

Instead of splitting it was decided to define sections here:
- Configuration / Settings
- Autouse fixtures
- Common arguments
- Missing values & co.
- Classes
- Indices
- Series'
- DataFrames
- Operators & Operations
- Data sets/files
- Time zones
- Dtypes
- Misc
    )annotations)abc)datedatetimetime	timedeltatimezone)DecimalN)Path)TYPE_CHECKINGCallable)tzlocaltzutc)
strategies)FixedOffsetutc)DatetimeTZDtypeIntervalDtype)	DataFrameIntervalPeriodSeries	Timedelta	Timestamp)ops)Index
MultiIndex)Version)HashableIteratorTFUTCc                ,    | j                  ddd       y )N--no-strict-data-filesstore_falsez6Don't fail if a test is skipped for missing data file.)actionhelp)	addoption)parsers    /var/www/tkim.planitai.co.jp/gemegg/20251205-worksheet-17AUAHQQB0nZVje9QXtdISEPtMoa8RXKkuCk4R5iHbd4/project/python/venv/lib/python3.12/site-packages/pandas/conftest.pypytest_addoptionr*   h   s    
 E      c                    | j                   j                  |      r2| j                  t        j                  j                  d|              yy)a  Ignore doctest warning.

    Parameters
    ----------
    item : pytest.Item
        pytest test item.
    path : str
        Module path to Python object, e.g. "pandas.core.frame.DataFrame.append". A
        warning will be filtered when item.name ends with in given path. So it is
        sufficient to specify e.g. "DataFrame.append".
    message : str
        Message to be filtered.
    zignore:N)nameendswith
add_markerpytestmarkfilterwarnings)itempathmessages      r)   ignore_doctest_warningr6   p   s=     yy$22WWI3FGH  r+   c                d   |j                  d      xs |j                  dd      }g d}| D ]  }|rE|j                  t        j                  j	                  d             |D ]  \  }}t        |||        d|j                  v sY|j                  t        j                  j                          y )Nz--doctest-modulesz--doctest-cythonF)default))is_int64_dtypezis_int64_dtype is deprecated)is_interval_dtypezis_interval_dtype is deprecated)is_period_dtypezis_period_dtype is deprecated)is_datetime64tz_dtypez#is_datetime64tz_dtype is deprecated)is_categorical_dtypez"is_categorical_dtype is deprecated)	is_sparsezis_sparse is deprecated)NDFrame.replacezThe 'method' keyword)r?   zSeries.replace without 'value')zSeries.idxminThe behavior of Series.idxmin)zSeries.idxmaxThe behavior of Series.idxmax)zSeriesGroupBy.idxminr@   )zSeriesGroupBy.idxmaxrA   )zmissing.mask_zero_div_zerozdivide by zero encountered)to_pydatetimez>The behavior of DatetimeProperties.to_pydatetime is deprecated)z pandas.core.generic.NDFrame.boolzY(Series|DataFrame).bool is now deprecated and will be removed in future version of pandas)z!pandas.core.generic.NDFrame.firstzqfirst is deprecated and will be removed in a future version. Please create a mask and filter using `.loc` instead)zResampler.fillnaz+DatetimeIndexResampler.fillna is deprecated)DataFrameGroupBy.fillnaz3DataFrameGroupBy.fillna with 'method' is deprecated)rC   z,DataFrame.fillna with 'method' is deprecatedadd_doctest_importsz/frame/)	getoptionr/   r0   r1   usefixturesr6   nodeidarraymanager)itemsconfig
is_doctestignored_doctest_warningsr3   r4   r5   s          r)   pytest_collection_modifyitemsrM      s    !!"56 &:J:JE ;K ;J) V  6 OOFKK334IJK!9 <g&tT7;< #OOFKK4456r+   z6.83.2ci)deadlinesuppress_health_checkz)MonthBegin MonthEnd BMonthBegin BMonthEndic   )n	normalizez%YearBegin YearEnd BYearBegin BYearEnd         )	min_value	max_value)rR   rS   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rR   rS   startingMonthc                (    t         | d<   t        | d<   y)z:
    Make `np` and `pd` names available for doctests.
    nppdN)r^   r_   )doctest_namespaces    r)   rD   rD      s    
 !d dr+   )autousec                 0    t        j                  dd       y)z<
    Configure settings for all tests and test modules.
    chained_assignmentraiseN)r_   
set_option r+   r)   configure_testsrg     s    
 MM&0r+   )r   rV   indexcolumnsc                    dt        |        S Nzaxis=reprxs    r)   <lambda>rp     s    5a	AR r+   )paramsidsc                    | j                   S )z@
    Fixture for returning the axis numbers of a DataFrame.
    paramrequests    r)   axisrx         
 ==r+   ri   c                    dt        |        S rk   rl   rn   s    r)   rp   rp     s    uT!WI5F r+   c                    | j                   S )zA
    Fixture for returning aliases of axis 1 of a DataFrame.
    rt   rv   s    r)   axis_1r|     ry   r+   )TFN)rq   c                    | j                   S )a  
    Pass in the observed keyword to groupby for [True, False]
    This indicates whether categoricals should return values for
    values which are not in the grouper [False / None], or only values which
    appear in the grouper [True]. [None] is supported for future compatibility
    if we decide to change the default (and would need to warn if this
    parameter is not passed).
    rt   rv   s    r)   observedr~           ==r+   c                    | j                   S )z6
    Boolean 'ordered' parameter for Categorical.
    rt   rv   s    r)   orderedr   -  ry   r+   c                    | j                   S )z%
    Boolean 'skipna' parameter.
    rt   rv   s    r)   skipnar   5  ry   r+   )firstlastFc                    | j                   S )z[
    Valid values for the 'keep' parameter used in
    .duplicated or .drop_duplicates
    rt   rv   s    r)   keepr   =       ==r+   )bothneitherleftrightc                    | j                   S )zA
    Fixture for trying all interval 'inclusive' parameters.
    rt   rv   s    r)   inclusive_endpoints_fixturer   F  ry   r+   )r   r   r   r   c                    | j                   S )z<
    Fixture for trying all interval closed parameters.
    rt   rv   s    r)   closedr   N  ry   r+   c                    | j                   S )zS
    Secondary closed fixture to allow parametrizing over all pairs of closed.
    rt   rv   s    r)   other_closedr   V  ry   r+   gzipbz2zipxztarzstd	zstandard)marksc                    | j                   S )zK
    Fixture for trying common compression types in compression tests.
    rt   rv   s    r)   compressionr   ^       ==r+   c                    | j                   S )zk
    Fixture for trying common compression types in compression tests excluding
    uncompressed case.
    rt   rv   s    r)   compression_onlyr   p  r   r+   c                    | j                   S )z,
    Fixture that an array is writable.
    rt   rv   s    r)   writabler     ry   r+   )innerouterr   r   c                    | j                   S )z:
    Fixture for trying all types of join operations.
    rt   rv   s    r)   	join_typer     ry   r+   nlargest	nsmallestc                    | j                   S )z1
    Fixture for trying all nselect methods.
    rt   rv   s    r)   nselect_methodr     ry   r+   c                ,    t        |       j                  S Ntype__name__rn   s    r)   rp   rp     s    d1g6F6F r+   c                    | j                   S )z/
    Fixture for each null type in pandas.
    rt   rv   s    r)   nulls_fixturer     ry   r+   c                    | j                   S )zL
    Fixture for each null type in pandas, each null type exactly once.
    rt   rv   s    r)   unique_nulls_fixturer     ry   r+   c                ,    t        |       j                  S r   r   rn   s    r)   rp   rp     s    Q8H8H r+   c                    | j                   S )z-
    Fixture for each NaT type in numpy.
    rt   rv   s    r)   np_nat_fixturer     ry   r+   c                    | j                   S )z;
    Fixture to parametrize over DataFrame and Series.
    rt   rv   s    r)   frame_or_seriesr     ry   r+   rh   seriesc                    | j                   S )z
    Fixture to parametrize over Index and Series, made necessary by a mypy
    bug, giving an error:

    List item 0 has incompatible type "Type[Series]"; expected "Type[PandasObject]"

    See GH#29725
    rt   rv   s    r)   index_or_seriesr     r   r+   )rh   r   arrayc                    | j                   S )zG
    Fixture to parametrize over Index, Series, and ExtensionArray
    rt   rv   s    r)   index_or_series_or_arrayr     ry   r+   c                    | j                   S r   )r   rn   s    r)   rp   rp     s
    1:: r+   c                    | j                   S )z]
    Fixture to test behavior for Index, Series, DataFrame, and pandas Array
    classes
    rt   rv   s    r)   box_with_arrayr     r   r+   c                 $     G d dt               } | S )z,
    Fixture for a dictionary subclass.
    c                      e Zd ZddZy)"dict_subclass.<locals>.TestSubDictc                6    t        j                  | g|i | y r   )dict__init__)selfargskwargss      r)   r   z+dict_subclass.<locals>.TestSubDict.__init__  s    MM$000r+   NreturnNone)r   
__module____qualname__r   rf   r+   r)   TestSubDictr     s    	1r+   r   )r   )r   s    r)   dict_subclassr     s    1d 1 r+   c                 8     G d dt         j                        } | S )z8
    Fixture for a non-mapping dictionary subclass.
    c                  *    e Zd ZddZd ZddZddZy)	5non_dict_mapping_subclass.<locals>.TestNonDictMappingc                    || _         y r   )_data)r   underlying_dicts     r)   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__init__  s	    (DJr+   c                8    | j                   j                  |      S r   )r   __getitem__)r   keys     r)   r   zAnon_dict_mapping_subclass.<locals>.TestNonDictMapping.__getitem__	  s    ::))#..r+   c                6    | j                   j                         S r   )r   __iter__r   s    r)   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__iter__  s    ::&&((r+   c                6    | j                   j                         S r   )r   __len__r   s    r)   r   z=non_dict_mapping_subclass.<locals>.TestNonDictMapping.__len__  s    ::%%''r+   Nr   )r   r    )r   int)r   r   r   r   r   r   r   rf   r+   r)   TestNonDictMappingr     s    	)	/	)	(r+   r   )r   Mapping)r   s    r)   non_dict_mapping_subclassr     s    (S[[ ( r+   c                 d   t        j                  d      } | j                  d d d g      j                         }|j                  j                  |j                  j                  D cg c]  }|j                  d       c}      |_        |j                  j                  g dd       |S c c}w )	z
    DataFrame with 3 level MultiIndex (year, month, day) covering
    first 100 business days from 2000-01-01 with random data
    d   c                    | j                   S r   )yearrn   s    r)   rp   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s
     r+   c                    | j                   S r   )rZ   rn   s    r)   rp   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s
    177 r+   c                    | j                   S r   )dayrn   s    r)   rp   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s
    aee r+   i8)r   rZ   r   T)inplace)	tmmakeTimeDataFramegroupbysumrh   
set_levelslevelsastype	set_names)tdfymdlevs      r)   /multiindex_year_month_day_dataframe_random_datar     s     

s
#C
++'):OL
M
Q
Q
SC		$$#))BRBR%S3cjj&6%STCIII0$?J &Ts   (B-c                 :    t        g dg dgg dg dgddg      S )z;
    2-level MultiIndex, lexsorted, with string names.
    foobarbazquxonetwothree)
r   r   r   rV   rV      r     r  r  )
r   rV   r  r   rV   rV   r  r   rV   r  r   second)r   codesnames)r   rf   r+   r)   %lexsorted_two_level_string_multiindexr  &  s+    
 ,.EF-/MN! r+   c                    | }t        t        j                  j                  d      j	                  d      |t        g dd            S )z2DataFrame with 2 level MultiIndex with random datar  )
   r  )ABCexpr-   )rh   ri   )r   r^   randomdefault_rngstandard_normalr   )r  rh   s     r)    multiindex_dataframe_random_datar  2  s@    
 2E
		a 009oE2 r+   c                     t        g d      } t        ddg      }t        j                  g d      }t        j                  g d      }ddg}t        | |g||g|d	      S )
zJ
    MultiIndex used to test the general functionality of this object
    r   r   r   )r   r   rV   r  r  r  )r   rV   r   rV   r   rV   r   r  F)r   r  r  verify_integrity)r   r^   r   r   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r)   _create_multiindexr  ?  sh     34Ju~&J((-.K((-.KH%KJ'K(	 r+   c            	     n    t        j                  ddgddgt        j                  ddd      gg d	
      S )zB
    MultiIndex with a level that is a tzaware DatetimeIndex.
    rV   r  ab20130101r  
US/Eastern)periodstzr   )r  )r   from_productr_   
date_rangerf   r+   r)   _create_mi_with_dt64tz_levelr$  S  s9    
 ""
Q#sR]]:q\RS% r+   stringr   r   zdatetime-tzz
US/Pacific)r!  periodr   rangeint8dtypeint16int32int64uint8uint16uint32uint64float32float64zbool-objectr	  r  	complex64
complex128)r   r   r   )rV   r  r  )r   r   rV   rV   r  r  Int64UInt16Float32booleanzstring[python])
bool-dtyper4  r5  categoricalintervalemptytuplesmi-with-dt64tz-levelmultirepeatsnullable_intnullable_uintnullable_floatnullable_boolzstring-pythonzstring[pyarrow]zstring-pyarrowc                D    t         | j                     j                         S )z
    Fixture for many "simple" kinds of indices.

    These indices are unlikely to cover corner cases, e.g.
        - no names
        - no NaTs/NaNs
        - no values near implementation bounds
        - ...
    )indices_dictru   copyrv   s    r)   rh   rh     s     &++--r+   c                H    | j                   }t        |   j                         S )z8
    index fixture, but excluding MultiIndex cases.
    )ru   rG  rH  )rw   r   s     r)   
index_flatrJ    s!     --C!!##r+   )r   uintfloat)r'  r=  rA  r:  c                P   t         | j                     j                  d      }|j                  j                         }| j                  dv rA|j	                         }d|d   dd z   |d<   d|d   dd z   |d<   t        j                  |      S d|d<   d|d<    t        |      |      S )	z
    Fixture for indices with missing values.

    Integer-dtype and empty cases are excluded because they cannot hold missing
    values.

    MultiIndex is excluded because isna() is not defined for MultiIndex.
    Tdeep)r>  r?  r@  r   r   rV   N)rG  ru   rH  valuestolistr   from_tuplesr   )rw   indvalss      r)   index_with_missingrV    s    . w}}
%
*
*
*
5C::??D}}CCzz|DGABK'QT"Xab\)R%%d++QRtCyr+   c                 <    t        j                         } d| _        | S )zC
    Fixture for Series of floats with Index of unique strings
    r   )r   makeStringSeriesr-   ss    r)   string_seriesr[    s    
 	AAFHr+   c                 <    t        j                         } d| _        | S )zI
    Fixture for Series of dtype object with Index of unique strings
    objects)r   makeObjectSeriesr-   rY  s    r)   object_seriesr_    s    
 	AAFHr+   c                 <    t        j                         } d| _        | S )z9
    Fixture for Series of floats with DatetimeIndex
    ts)r   makeTimeSeriesr-   rY  s    r)   datetime_seriesrc    s    
 	AAFHr+   c                    t        |       }t        j                  j                  d      j	                  |      }t        || dd      S )zHelper for the _series dictr  r  F)rh   r-   rH  )lenr^   r  r  r  r   )rh   sizedatas      r)   _create_seriesrh    s;    u:D99  #33D9D$e#E::r+   zseries-with-z-indexc                    t        |       S )zE
    Fixture for tests on series with changing types of indices.
    )rh  rh   s    r)   series_with_simple_indexrk    s    
 %  r+   c                     g dg dg} t        |  }t        j                  |      }t        j                  j                  d      j                  d      }t        ||      }t        j                  |j                  d<   |S )z:
    Fixture with a Series with a 2-level MultiIndex.
    )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r     rj  r  )
r   r   rS  r^   r  r  r  r   naniloc)arraysr>  rh   rg  sers        r)   series_with_multilevel_indexrr    sn     	A@F &\F""6*E99  #33A6D
U
#C&&CHHQKJr+   z-seriesr  )r-   r*  c                H    t         | j                     j                  d      S )z|
    Fixture for tests on indexes, series and series with a narrow dtype
    copy to avoid mutation, e.g. setting .name
    TrN  )_index_or_series_objsru   rH  rv   s    r)   index_or_series_objru    s!     !/44$4??r+   c                H    t         | j                     j                  d      S )z
    Fixture for tests on indexes, series, series with a narrow dtype and
    series with empty objects type
    copy to avoid mutation, e.g. setting .name
    TrN  )_index_or_series_memory_objsru   rH  rv   s    r)   index_or_series_memory_objrx  4  s!     (6;;;FFr+   c                 Z    t        t        j                               j                  d      S )a6  
    Fixture for DataFrame of ints with index of unique strings

    Columns are ['A', 'B', 'C', 'D']

                A  B  C  D
    vpBeWjM651  1  0  1  0
    5JyxmrP1En -1  0  0  0
    qEDaoD49U2 -1  1  0  0
    m66TkTfsFe  0  0  0  0
    EHPaNzEUFm -1  0 -1  0
    fpRJCevQhi  2  0  0  0
    OlQvnmfi3Q  0  0 -2  0
    ...        .. .. .. ..
    uB1FPlz4uP  0  0  0  1
    EcSe6yNzCU  0  0 -1  0
    L50VudaiI8 -1  1 -2  0
    y3bpw4nwIp  0 -1  0  0
    H0RdLLwrCT  1  1  0  0
    rY82K0vMwm  0  0  0  0
    1OPIUjnkjk  2  0  0  0

    [30 rows x 4 columns]
    r-  )r   r   getSeriesDatar   rf   r+   r)   	int_framer{  A  s#    4 R%%'(//88r+   c                 <    t        t        j                               S )a  
    Fixture for DataFrame of floats with DatetimeIndex

    Columns are ['A', 'B', 'C', 'D']

                       A         B         C         D
    2000-01-03 -1.122153  0.468535  0.122226  1.693711
    2000-01-04  0.189378  0.486100  0.007864 -1.216052
    2000-01-05  0.041401 -0.835752 -0.035279 -0.414357
    2000-01-06  0.430050  0.894352  0.090719  0.036939
    2000-01-07 -0.620982 -0.668211 -0.706153  1.466335
    2000-01-10 -0.752633  0.328434 -0.815325  0.699674
    2000-01-11 -2.236969  0.615737 -0.829076 -1.196106
    ...              ...       ...       ...       ...
    2000-02-03  1.642618 -0.579288  0.046005  1.385249
    2000-02-04 -0.544873 -1.160962 -0.284071 -1.418351
    2000-02-07 -2.656149 -0.601387  1.410148  0.444150
    2000-02-08 -1.201881 -1.289040  0.772992 -1.445300
    2000-02-09  1.377373  0.398619  1.008453 -0.928207
    2000-02-10  0.473194 -0.636677  0.984058  0.511519
    2000-02-11 -0.965556  0.408313 -1.312844 -0.381948

    [30 rows x 4 columns]
    )r   r   getTimeSeriesDatarf   r+   r)   datetime_framer~  ^  s    4 R))+,,r+   c                 <    t        t        j                               S )a  
    Fixture for DataFrame of floats with index of unique strings

    Columns are ['A', 'B', 'C', 'D'].

                       A         B         C         D
    P7GACiRnxd -0.465578 -0.361863  0.886172 -0.053465
    qZKh6afn8n -0.466693 -0.373773  0.266873  1.673901
    tkp0r6Qble  0.148691 -0.059051  0.174817  1.598433
    wP70WOCtv8  0.133045 -0.581994 -0.992240  0.261651
    M2AeYQMnCz -1.207959 -0.185775  0.588206  0.563938
    QEPzyGDYDo -0.381843 -0.758281  0.502575 -0.565053
    r78Jwns6dn -0.653707  0.883127  0.682199  0.206159
    ...              ...       ...       ...       ...
    IHEGx9NO0T -0.277360  0.113021 -1.018314  0.196316
    lPMj8K27FA -1.313667 -0.604776 -1.305618 -0.863999
    qa66YMWQa5  1.110525  0.475310 -0.747865  0.032121
    yOa0ATsmcE -0.431457  0.067094  0.096567 -0.264962
    65znX3uRNG  1.528446  0.160416 -0.109635 -0.032987
    eCOBvKqf3e  0.235281  1.622222  0.781255  0.392871
    xSucinXxuV -1.263557  0.252799 -0.552247  0.400426

    [30 rows x 4 columns]
    )r   r   rz  rf   r+   r)   float_framer  {  s    4 R%%'((r+   c            
         t        dddt        j                  dgdz  d      t        j                  dgdz  d      d	t        j                  d      
      S )z
    Fixture for DataFrame of float/int/string columns with RangeIndex
    Columns are ['a', 'b', 'c', 'float32', 'int32'].
          ?r  r   r	  r2  r)  rV   r,  )r  r  cr2  r,  rj  )r   r^   r   arangerf   r+   r)   mixed_type_framer    sT     xx
)<XXqcBhg6	
 iim	 	r+   c                 z   t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      t        ddd      g
} t        t        j                  j	                  d      j                  t        |             |       S )zF
    Fixture for Series with a DatetimeIndex that has duplicates.
    i  rV   r  r     rU   rj  )r   r   r^   r  r  r  re  )datess    r)   (rand_series_with_duplicate_datetimeindexr    s     	q!q!q!q!q!q!q!q!q!q!E "))''*::3u:FeTTr+   )r   r   r   g?g      ?z2012-01M)freqz	period[M]z
2012-02-01Dz	period[D]z
2011-01-01r  rZ  )unitr!  i  )secondsztimedelta64[ns]c                    | j                   S r   rt   rv   s    r)   ea_scalar_and_dtyper         ==r+   c                    | j                   S )zD
    Fixture for dunder names for common arithmetic operations.
    rt   rv   s    r)   all_arithmetic_operatorsr    ry   r+   c                    | j                   S )zU
    Fixture for operator and roperator arithmetic, comparison, and logical ops.
    rt   rv   s    r)   all_binary_operatorsr        D ==r+   c                    | j                   S )z
    Fixture for operator and roperator arithmetic functions.

    Notes
    -----
    This includes divmod and rdivmod, whereas all_arithmetic_operators
    does not.
    rt   rv   s    r)   all_arithmetic_functionsr    s    6 ==r+   )countr   maxminmeanprodstdvarmediankurtskewsemc                    | j                   S )z.
    Fixture for numeric reduction names.
    rt   rv   s    r)   all_numeric_reductionsr  3  ry   r+   allanyc                    | j                   S )z.
    Fixture for boolean reduction names.
    rt   rv   s    r)   all_boolean_reductionsr  >  ry   r+   c                    | j                   S )z>
    Fixture for all (boolean + numeric) reduction names.
    rt   rv   s    r)   all_reductionsr  I  ry   r+   c                    | j                   S )z;
    Fixture for operator module comparison functions.
    rt   rv   s    r)   comparison_opr  Q  r  r+   )__le____lt____ge____gt__c                    | j                   S )zm
    Fixture for dunder names for compare operations except == and !=

    * >=
    * >
    * <
    * <=
    rt   rv   s    r)   compare_operators_no_eq_ner  b  r   r+   )__and____rand____or____ror____xor____rxor__c                    | j                   S )zY
    Fixture for dunder names for common logical operations

    * |
    * &
    * ^
    rt   rv   s    r)   all_logical_operatorsr  o       ==r+   )cumsumcumprodcummincummaxc                    | j                   S )z0
    Fixture for numeric accumulation names
    rt   rv   s    r)   all_numeric_accumulationsr    ry   r+   c                $    | j                  d      S )zR
    Returns the configuration for the test setting `--no-strict-data-files`.
    r#   )rE   )pytestconfigs    r)   strict_data_filesr    s    
 !!":;;r+   c                 :    t        t              j                  dz  S )Ntests)r   __file__parentrf   r+   r)   
tests_pathr    s    >  7**r+   c                    | dz  dz  S )Niorg  rf   )r  s    r)   tests_io_data_pathr    s    v%%r+   c                     t         j                  j                  t         j                  j                  t              d       fd}|S )aD  
    Get the path to a data file.

    Parameters
    ----------
    path : str
        Path to the file, relative to ``pandas/tests/``

    Returns
    -------
    path including ``pandas/tests``.

    Raises
    ------
    ValueError
        If the path doesn't exist and the --no-strict-data-files option is not set.
    r  c                     t        j                  j                  g|  }t         j                  j                  |      s*rt	        d| d      t        j                  d| d       |S )NzCould not find file z' and --no-strict-data-files is not set.zCould not find .)osr4   joinexists
ValueErrorr0   skip)r   r4   	BASE_PATHr  s     r)   decozdatapath.<locals>.deco  sc    ww||I--ww~~d#  *4&0WX  KK/$q12r+   )r  r4   r  dirnamer  )r  r  r  s   ` @r)   datapathr    s2    & RWW__X6@I Kr+   c                >    t        j                   | dddd            S )z*
    The iris dataset as a DataFrame.
    r  rg  csvziris.csv)r_   read_csv)r  s    r)   irisr    s    
 ;;xfeZ@AAr+   z
Asia/Tokyozdateutil/US/Pacificzdateutil/Asia/Singaporez+01:15z-02:15z	UTC+01:15z	UTC-02:15i,  i)hoursrP  r   r  c                    | j                   S )zD
    Fixture for trying timezones including default (None): {0}
    rt   rv   s    r)   tz_naive_fixturer    r   r+   c                    | j                   S )z4
    Fixture for trying explicit timezones: {0}
    rt   rv   s    r)   tz_aware_fixturer    r   r+   r   zdateutil/UTCc                    | j                   S )zQ
    Fixture to provide variants of UTC timezone strings and tzinfo objects.
    rt   rv   s    r)   utc_fixturer    ry   r+   c                    | j                   S )zR
    Parametrized fixture for string dtypes.

    * str
    * 'str'
    * 'U'
    rt   rv   s    r)   string_dtyper         ==r+   pyarrowc                    | j                   S )za
    Parametrized fixture for string dtypes.

    * 'string[python]'
    * 'string[pyarrow]'
    rt   rv   s    r)   nullable_string_dtyper         ==r+   pythonpyarrow_numpyc                    | j                   S )zx
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    * 'pyarrow_numpy'
    rt   rv   s    r)   string_storager  -  r   r+   numpy_nullablec                    | j                   S )zb
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    rt   rv   s    r)   dtype_backendr  ?  r  r+   c                    | j                   S )zK
    Parametrized fixture for bytes dtypes.

    * bytes
    * 'bytes'
    rt   rv   s    r)   bytes_dtyper  S       ==r+   c                    | j                   S )zN
    Parametrized fixture for object dtypes.

    * object
    * 'object'
    rt   rv   s    r)   object_dtyper  ^  r  r+   objectzstring[pyarrow_numpy]c                    | j                   S )zo
    Parametrized fixture for string dtypes.
    * 'object'
    * 'string[python]'
    * 'string[pyarrow]'
    rt   rv   s    r)   any_string_dtyper  i  r   r+   c                    | j                   S )z\
    Parametrized fixture for datetime64 dtypes.

    * 'datetime64[ns]'
    * 'M8[ns]'
    rt   rv   s    r)   datetime64_dtyper  {  r  r+   c                    | j                   S )z^
    Parametrized fixture for timedelta64 dtypes.

    * 'timedelta64[ns]'
    * 'm8[ns]'
    rt   rv   s    r)   timedelta64_dtyper    r  r+   c            	     &    t        ddddddd      S )z-
    Fixture emits fixed Timestamp.now()
    i  rV   rW   r        )r   rZ   r   hourminuter  microsecond)r   rf   r+   r)   fixed_now_tsr    s     
 1RR r+   c                    | j                   S )z^
    Parameterized fixture for float dtypes.

    * float
    * 'float32'
    * 'float64'
    rt   rv   s    r)   float_numpy_dtyper    r  r+   c                    | j                   S )zR
    Parameterized fixture for float dtypes.

    * 'Float32'
    * 'Float64'
    rt   rv   s    r)   float_ea_dtyper	    r  r+   c                    | j                   S )z~
    Parameterized fixture for float dtypes.

    * float
    * 'float32'
    * 'float64'
    * 'Float32'
    * 'Float64'
    rt   rv   s    r)   any_float_dtyper    r  r+   c                    | j                   S )zg
    Parameterized fixture for complex dtypes.

    * complex
    * 'complex64'
    * 'complex128'
    rt   rv   s    r)   complex_dtyper    r  r+   c                    | j                   S )z|
    Parameterized fixture for signed integer dtypes.

    * int
    * 'int8'
    * 'int16'
    * 'int32'
    * 'int64'
    rt   rv   s    r)   any_signed_int_numpy_dtyper    r  r+   c                    | j                   S )zx
    Parameterized fixture for unsigned integer dtypes.

    * 'uint8'
    * 'uint16'
    * 'uint32'
    * 'uint64'
    rt   rv   s    r)   any_unsigned_int_numpy_dtyper    r   r+   c                    | j                   S )z
    Parameterized fixture for any integer dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    rt   rv   s    r)   any_int_numpy_dtyper    r   r+   c                    | j                   S )z
    Parameterized fixture for any nullable integer dtype.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    rt   rv   s    r)   any_int_ea_dtyper    r  r+   c                    | j                   S )a.  
    Parameterized fixture for any nullable integer dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    rt   rv   s    r)   any_int_dtyper  
  s    . ==r+   c                    | j                   S )z
    Parameterized fixture for any nullable integer dtype and
    any float ea dtypes.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    rt   rv   s    r)   any_numeric_ea_dtyper  $  s    " ==r+   c                    | j                   S )a  
    Parameterized fixture for any nullable integer dtype and
    any float ea dtypes.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    * 'uint8[pyarrow]'
    * 'int8[pyarrow]'
    * 'uint16[pyarrow]'
    * 'int16[pyarrow]'
    * 'uint32[pyarrow]'
    * 'int32[pyarrow]'
    * 'uint64[pyarrow]'
    * 'int64[pyarrow]'
    * 'float32[pyarrow]'
    * 'float64[pyarrow]'
    rt   rv   s    r)   any_numeric_ea_and_arrow_dtyper  :  s    @ ==r+   c                    | j                   S )z~
    Parameterized fixture for any signed nullable integer dtype.

    * 'Int8'
    * 'Int16'
    * 'Int32'
    * 'Int64'
    rt   rv   s    r)   any_signed_int_ea_dtyper  ]  r   r+   c                    | j                   S )z
    Parameterized fixture for any (purely) real numeric dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    rt   rv   s    r)   any_real_numpy_dtyper  j  s    $ ==r+   c                    | j                   S )a  
    Parameterized fixture for any (purely) real numeric dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'

    and associated ea dtypes.
    rt   rv   s    r)   any_real_numeric_dtyper!    s    ( ==r+   c                    | j                   S )a  
    Parameterized fixture for all numpy dtypes.

    * bool
    * 'bool'
    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    * complex
    * 'complex64'
    * 'complex128'
    * str
    * 'str'
    * 'U'
    * bytes
    * 'bytes'
    * 'datetime64[ns]'
    * 'M8[ns]'
    * 'timedelta64[ns]'
    * 'm8[ns]'
    * object
    * 'object'
    rt   rv   s    r)   any_numpy_dtyper#    r  r+   c                    | j                   S )a  
    Parameterized fixture for all numeric dtypes.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    * complex
    * 'complex64'
    * 'complex128'
    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    rt   rv   s    r)   any_numeric_dtyper%    s    > ==r+   r  mixedbytes   a   cr=  zmixed-integerg       @floatingr  integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r  20180101r   i  i  complexy      ?      ?y       @       @r   r<  c                ^    | j                   \  }}t        j                  |t              }||fS )a  
    Fixture for all inferred dtypes from _libs.lib.infer_dtype

    The covered (inferred) types are:
    * 'string'
    * 'empty'
    * 'bytes'
    * 'mixed'
    * 'mixed-integer'
    * 'mixed-integer-float'
    * 'floating'
    * 'integer'
    * 'decimal'
    * 'boolean'
    * 'datetime64'
    * 'datetime'
    * 'date'
    * 'timedelta'
    * 'time'
    * 'period'
    * 'interval'

    Returns
    -------
    inferred_dtype : str
        The string for the inferred dtype from _libs.lib.infer_dtype
    values : np.ndarray
        An array of object dtype that will be inferred to have
        `inferred_dtype`

    Examples
    --------
    >>> from pandas._libs import lib
    >>>
    >>> def test_something(any_skipna_inferred_dtype):
    ...     inferred_dtype, values = any_skipna_inferred_dtype
    ...     # will pass
    ...     assert lib.infer_dtype(values, skipna=True) == inferred_dtype
    r)  )ru   r^   r   r  )rw   inferred_dtyperQ  s      r)   any_skipna_inferred_dtyper2    s0    R %]]NFXXfF+F 6!!r+   c                     t        j                  dd       ddlm}  ddlm}  |       }d|j                  _         | |      S )	zj
    Get an instance of IPython.InteractiveShell.

    Will raise a skip if IPython is not installed.
    IPythonz6.0.0)
minversionr   )InteractiveShell)Configz:memory:)rJ   )r0   importorskipIPython.core.interactiveshellr6  traitlets.configr7  HistoryManager	hist_file)r6  r7  r  s      r)   ipr=  /  s<     	g6> (A!+A1%%r+   )bsrcoocsccsrdiadoklilc                ^    t        j                  d      }t        || j                  dz         S )z-
    Yields scipy sparse matrix classes.
    zscipy.sparse_matrix)r0   r8  getattrru   )rw   sparses     r)   spmatrixrI  B  s*    
   0F67==9455r+   Tickc                    | j                   S )zN
    Fixture for Tick based datetime offsets available for a time series.
    rt   rv   s    r)   tick_classesrL  L  r  r+   c                    | S r   rf   rn   s    r)   rp   rp   Z  s     r+   c                    | j                   S )zk
    Simple fixture for testing keys in sorting methods.
    Tests None (no key) and the identity key.
    rt   rv   s    r)   sort_by_keyrO  Z  r   r+   c               #    K   t        j                  d       ddlm}  ddlm} ddlm}  G d d|      } | d|d	
        |        |j                  dd        d |j                  d<   |j                  j                          y w)Nfsspecr   )register_implementation)MemoryFileSystem)	_registryc                  *     e Zd ZdZdgZd fdZ xZS ) fsspectest.<locals>.TestMemoryFStestmemNc                b    |j                  dd       | j                  d<   t        |   di | y )Ntestr   rf   )poprY  superr   )r   r   	__class__s     r)   r   z)fsspectest.<locals>.TestMemoryFS.__init__n  s+    !::fd3DIIaLG&v&r+   r   )r   r   r   protocolrY  r   __classcell__)r\  s   @r)   TestMemoryFSrV  j  s    v	' 	'r+   r_  rW  T)clobber)r0   r8  rQ  rR  fsspec.implementations.memoryrS  fsspec.registryrT  rZ  rY  storeclear)rR  rS  registryr_  s       r)   
fsspectestrf  c  sp     
!.>5'' ' I|TB
.LLD!Las   BB)r   NN)EgonVenkmanN)NCC1701Dri  ri  c                    | j                   S )zP
    A 3-tuple of names, the first two for operands, the last for a result.
    rt   rv   s    r)   r  r  y  s      ==r+   c                    | j                   S )zI
    Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
    rt   rv   s    r)   indexer_slirl    ry   r+   c                    | j                   S )z<
    Parametrize over loc.__getitem__, iloc.__getitem__
    rt   rv   s    r)   
indexer_lirn    ry   r+   c                    | j                   S )z8
    Parametrize over __setitem__, iloc.__setitem__
    rt   rv   s    r)   
indexer_sirp    ry   r+   c                    | j                   S )z7
    Parametrize over __setitem__, loc.__setitem__
    rt   rv   s    r)   
indexer_slrr    ry   r+   c                    | j                   S )z:
    Parametrize over at.__setitem__, loc.__setitem__
    rt   rv   s    r)   
indexer_alrt    ry   r+   c                    | j                   S )z<
    Parametrize over iat.__setitem__, iloc.__setitem__
    rt   rv   s    r)   indexer_ialrv    ry   r+   c                 P    t         j                  j                  j                  dk(  S )z>
    Fixture to check if the array manager is being used.
    r   )r_   optionsmodedata_managerrf   r+   r)   using_array_managerr{    s    
 ::??''722r+   c                     t         j                  j                  j                  xr' t         j                  j                  j                  dk(  S )z7
    Fixture to check if Copy-on-Write is enabled.
    block)r_   rx  ry  copy_on_writerz  rf   r+   r)   using_copy_on_writer    s0    
 ::??((TRZZ__-I-IW-TTr+   zEurope/Warsawzdateutil/Europe/Warsawc                    | j                   S )zE
    tzinfo for Europe/Warsaw using pytz, dateutil, or zoneinfo.
    rt   rv   s    r)   warsawr    ry   r+   c                      y)N)r  r  rf   rf   r+   r)   arrow_string_storager    s    'r+   r   )r3   zpytest.Itemr4   strr5   r  r   r   )r   r   )r   r   )r   r   )r   r   )r  r  r   zCallable[..., str])r   r   )r   z#tuple[Hashable, Hashable, Hashable])r   bool)r   r  (E  __doc__
__future__r   collectionsr   r   r   r   r   r	   r,  r
   operatorr  pathlibr   typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyr^   r0   pytzr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasr_   r   r   r   r   r   r   pandas._testing_testingr   pandas.corer   pandas.core.indexes.apir   r   pandas.util.versionr   collections.abcr   r    r  pahas_pyarrowImportErrorzoneinfoZoneInfoZoneInfoNotFoundErrorr*   r6   rM   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr-   rG  tseriesoffsetsclsregister_type_strategybuildsintegersbooleansfixturerD   rg   rx   
axis_framer|   r~   r   r   r   r   r   r   ru   
skip_if_nor   r   r   r   r   NULL_OBJECTSr   nulls_fixture2rn  NaTr   unique_nulls_fixture2NP_NAT_OBJECTSr   np_nat_fixture2r   r   index_or_series2r   r   r   box_with_array2r   r   r   r  r  r  r$  makeStringIndexmakeDateIndexmakePeriodIndexmakeTimedeltaIndexmakeRangeIndexmakeIntIndexmakeUIntIndexmakeFloatIndexmakeBoolIndexr   r  r  r  r  makeNumericIndexmakeCategoricalIndexmakeIntervalIndexrS  r   r  r  rG  idxkeysrh   index_fixture2rI   
isinstancerJ  index_flat2
startswithrV  r[  r_  rc  rh  _seriesrk  rr  NARROW_NP_DTYPESr   make_rand_series_narrow_seriesrt  ru  PYTHON_DATA_TYPES_typ_objects_seriesrw  rx  r{  r~  r  r  r  r  arithmetic_dunder_methodsr  addraddsubrsubmulrmultruedivrtruedivfloordiv	rfloordivmodrmodpowrpoweqneltlegtgeand_rand_xorrxoror_ror_r  r  _all_numeric_reductionsr  _all_boolean_reductionsr  _all_reductionsr  r  r  r  _all_numeric_accumulationsr  r  r  r  r  r  	TIMEZONESextendrm   TIMEZONE_IDSparametrize_fixture_docr  r  r  tz_aware_fixture2_UTCSr  utc_fixture2STRING_DTYPESr  r  r  r  string_storage2BYTES_DTYPESr  OBJECT_DTYPESr  r  DATETIME64_DTYPESr  TIMEDELTA64_DTYPESr  r  FLOAT_NUMPY_DTYPESr  FLOAT_EA_DTYPESr	  ALL_FLOAT_DTYPESr  COMPLEX_DTYPESr  SIGNED_INT_NUMPY_DTYPESr  UNSIGNED_INT_NUMPY_DTYPESr  ALL_INT_NUMPY_DTYPESr  ALL_INT_EA_DTYPESr  ALL_INT_DTYPESr  r  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRr  SIGNED_INT_EA_DTYPESr  ALL_REAL_NUMPY_DTYPESr  ALL_REAL_DTYPESr!  ALL_NUMPY_DTYPESr#  ALL_NUMERIC_DTYPESr%  NAr-  _any_skipna_inferred_dtyperr   _r2  r=  rI  __all__
issubclassrJ  rL  rO  rf  r  setitemlocro  rl  rn  rp  rr  atrt  iatrv  r{  r  warsawsr  r  )r   valueindex_idrh   r*  ios   0000000r)   <module>r"     s*  & #     	 
  '  
 * )
     (
 	K HeI$=6@ '22;;< 
:!!"gh&77##J$:$:$N$NO    $ $  89 %         & 8==? D
"**$$d
+CBYRYYskbkk#r2kbkkmL 499; 
D
"**$$d
+CB		bkk"a !bkkm"++R8		

 @EEG 
D
"**$$d
+CB		bkk#r"!bkkm%"++R@		

 ! ! 1 1 17RS T 
 9~+FG H *+	 ,	 *+ , e}% & /0 1 ;< = ;< = ;< = V=2==#=>

 V=2==#=>		 e}% & :; < 
K01 2 r,FG H  bffbff-. / -  r((.HI J ! 	6*+ , vWh,?@	 A	 #  vrxx06RS T vy"((;AUV W ! 	 	  0 
 
   		 	(! b  %!   %! #2##CL9!  b  %	!
 &&&s+! Rs#! OBOOCv.! _R__S0! _R__S0! _R__S0! Rc1! bs(3! bs(3! bs(3!  r  I6!   r  I6!!" #2##B'..v6#!$ 		--a0@@DqHI$$$S	:AA+N%"%%c;BB<P*2**3/$$$S)2Y$j$$S)>	%JK8:!'()"))C.89299S>:IBIIcN)<9299S>006iH8288$6B$6$6s$;CSTUA!D 
+++C08IJ
KC%(L!" |((*+. ,.  *002U*UJ:W
$
$   ',,.CNN34AA5*- 	

:      ; (--/% 8*F#^E%:: ! !  $ $$ ~~g 3 3 3E JJ F<E7EnE  ,1134@ 5@ <>;O;O27u~~gu- 
      	   388:;G <G 9 98 - -8 ) )8  " U U. 	q	"M'7$CD	s#	&i(IJ			$k2	3	'5l|46	
 
3	!23
 r334 5 		5<=< $	%$	   ./ 0 !%.  ./ 0 *,CC ' ( 		 ?@	 A	 N G  12 3 < < + + & &  B B B 			GINLLYQ YR u-%	( Hl+He$	
 "++AQ+ C-.yl3 4 / CQR 012y},qr*:; < 3 %  
UWhll;	LL"""5)* u   r''( ) &mbmmI.FG YmbmmI&>?_MBMM),DE YmbmmI&>? ! r' ( r''( ) &mbmmI.FG,MBMM)4LM	 r++, - r,,- .   r,,- . r))* + r**+
 ,
 r(() * r112
 3
 r334	 5	 r../ 0" r++, -  r(() *2 r++b.@.@@A B* (() 	&&': r../	 0	 r//0 1( r))* +, r**+! ,!H r,,- .F RVVS!"RUUC !sBFFC !tRVVT"#rvvrvvrvv&'bMsBFFA&'sBFFC !#rvvs#$BFFAQ,-RVVWQZ01rvvu%&ruue$%MBMM,/|9TUV)J':1FGHd4AT1a(89:() 9Q<167d1grvvtAw'(tbfffTl34(1a."&&(1a.9:3 6 
(	)Q 1s;," <,"d & &$ HI6 J6  ##gbjj!,bjjoo>1; 	

A k*+ ,  * !,	 			ruu	 

BFFBGG45 6 () * 

BGG,- . 

BFF+, - rvv' ( () * 3 3 U U 4
5NN$8$$_56 w   ( (M<  K %% Hv"X>$| ,Psi   %An: 1Ao Ao 
0Ao 
%+Ao&
2Ao,+Ao21Ao7CAo<b9AApn:AooAooAooAo