
    m*ie                    :   S r SSKJr  SSKJr  SSKJrJrJrJrJ	r	  SSK
Jr  SSKrSSKrSSKJrJr  SSKJrJr  SSKrSS	KJr  SSKrSSKrSS
KJrJr  SSKJr  SSKJ s  J!r"  SSK#J$r$J%r%  SSK&r'SSK&J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  SSK4J5r6  SSK7J8r8  SSK9J:r:J;r;  SSK<J=r=  \(       a  SSK>J?r?J@r@   SSKArBCBSrCSSKErE \ER                  " S5        GSFS jrHGSGS jrIGSFS jrJ\R                  R                  /rM\=" \R                  5      \=" S5      :  a%  \MR                  \R                  R                  5        \R                  R                  SS\S" \M5      S9  \R                  R                  S5        SR                  5        Hc  rV\W" \'R                  R                  \V5      rZ\R                  " \Z\R                  " \Z\R                  " SS5      \R                  " 5       S95        Me     S R                  5        Hs  rV\W" \'R                  R                  \V5      rZ\R                  " \Z\R                  " \Z\R                  " S!S"5      \R                  " 5       \R                  " S#S$S%9S&95        Mu     S'R                  5        Hs  rV\W" \'R                  R                  \V5      rZ\R                  " \Z\R                  " \Z\R                  " S(S)5      \R                  " 5       \R                  " S#S$S%9S*95        Mu     \R                  " SS+9GSFS, j5       r`\R                  " SS+9GSFS- j5       ra\R                  " / S.QS/ S09S1 5       rb\brc\R                  " S#S2/S3 S09S4 5       rd\R                  " / S5QS69S7 5       re\R                  " / S5QS69S8 5       rf\R                  " SS/S69S9 5       rg\R                  " / S:QS69S; 5       rh\R                  " / S<QS69S= 5       ri\R                  " / S>QS69S? 5       rj\R                  " / S>QS69S@ 5       rk\R                  " SSASBSCSDSE\R                  " SF\"R                  " SG5      SH9/S69SI 5       rn\R                  " SASBSCSDSE\R                  " SF\"R                  " SG5      SH9/S69SJ 5       ro\R                  " SS/S69SK 5       rp\R                  " / SLQS69SM 5       rq\R                  " SNSO/S69SP 5       rr\R                  " \6R                  SQ S09SR 5       rt\tru\R                  " S\R                  \'R                  /S69SS 5       rx\xry\R                  " \6R                  ST S09SU 5       r{\{r|\R                  " \)\./S69SV 5       r}\R                  " \:\./SWSX/S09SY 5       r~\~r\R                  " \:\.\'GR                   // SZQS09S[ 5       r\R                  " \:\.\)\'GR                   /S\ S09S] 5       r\r\R                  GSHS^ j5       r\R                  GSIS_ j5       r\R                  S` 5       r\R                  GSJSa j5       r\R                    GSKSb j5       rSc rSd r0 Se\:" \" Sf5       V s/ s H  n SgU  3PM
     sn \Sh9_Si\:" \" Sf5       V s/ s H  n SgU  3PM
     sn SSh9_Sj\1" SkSfSl9_Sm\1" SkSfSnSo9_Sp\2" SkSfSqSr9_Ss\3" StSfSqSu9_Sv\-" Sf5      _Sw\:" \GR                  " Sf5      SwSh9_Sx\:" \GR                  " Sf5      SxSh9_Sy\:" \GR                  " Sf5      SySh9_Sz\:" \GR                  " Sf5      SzSh9_S{\:" \GR                  " Sf5      S{Sh9_S|\:" \GR                  " Sf5      S|Sh9_S}\:" \GR                  " Sf5      S}Sh9_S~\:" \GR                  " Sf5      S~Sh9_S\:" \GR                  " Sf5      SSh9_S\:" \GR                  " Sf5      SSh9_0 S\:" SS/S"-  \Sh9_S\:" SS/S"-  \Sh9_S\:" \GR                  " SfSSh9S\GR                  " SfSSh9-  -   5      _S\:" \GR                  " SfSSh9S\GR                  " SfSSh9-  -   5      _S\(" \" S5      S-  5      _S\+GR                   " \GR"                  " SSfSS95      _S\:" / 5      _S\;GR$                  " \" / SQ/ SQ5      5      _S\" 5       _S\" 5       _S\:" / SQ5      _S\:" \GR                  " Sf5      SSh9_S\:" \GR                  " Sf5      SSh9_S\:" \GR                  " Sf5      SSh9_S\:" \GR                  " Sf5      GR)                  \5      SSh9_S\:" \'GR                   " \" Sf5       V s/ s H  n SgU  3PM
     sn SSh95      _Er\C(       a7  \:" \'GR                   " \" Sf5       V s/ s H  n SgU  3PM
     sn SSh95      r\\S'   \R                  " \GR/                  5       S69S 5       r\r\R                  " \GR5                  5        VVs/ s H  u  p\" U\;5      (       a  M  UPM     snnS69S 5       r\r\R                  " \GR5                  5        VVs/ s H8  u  pUGR=                  S5      (       a  M  US;   a  M&  \" U\;5      (       a  M6  UPM:     snnS69S 5       r\R                  GSLS j5       r\R                  GSLS j5       r\R                  GSLS j5       rS r\GR5                  5        VVs0 s H  u  p4SU S3\" U5      _M     snnr\R                  GSLS j5       r\6GRL                   VV s0 s H;  nUGRN                   S3\." \" S5      \" S5       V s/ s H  n SU  3PM
     sn SUS9_M=     sn nr0 \E\E\Er\R                  " \GR/                  5       S69S 5       r\6GRV                   Vs0 s H  oUGRN                   S3\." U5      _M     snr0 \E\E\E\Er\R                  " \GR/                  5       S69S 5       r\R                  GSKS j5       r\R                  GSKS j5       r\R                  GSLS j5       r\R                  " \*" SS"S9\%" SzS5      4\*" SSS9\%" SS5      4\," SSS9S4\," SSqS9S4\0" SSS9\$" SSS94\/" SS9S4/S69S 5       r\R                  " \6GRf                  S69S 5       r\R                  " \GRj                  \8GRl                  \GRn                  \8GRp                  \GRr                  \8GRt                  \GRv                  \8GRx                  \GRz                  \8GR|                  \GR~                  \8GR                  \GR                  \8GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  \8GR                  \GR                  \8GR                  \GR                  \8GR                  /S69S 5       r\R                  " \GRj                  \8GRl                  \GRn                  \8GRp                  \GRr                  \8GRt                  \GRv                  \8GRx                  \GRz                  \8GR|                  \GR~                  \8GR                  \GR                  \8GR                  /S69S 5       r/ SQr\R                  " \S69S 5       rSS/r\R                  " \S69S 5       r\\-   r\R                  " \S69S 5       r\R                  " \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  /S69S 5       r\R                  " / SQS69S 5       r\R                  " / SQS69S 5       r/ SQr\R                  " \S69S 5       r\R                  S 5       r\R                  GSMS j5       rSSSSSSSSSS\" 5       \" 5       \" S5      \" S5      \" S5      \	R8                  \	" \" S#S95      \	" \" SS9SS9/r\Eb4  \GR                  \ER                  " Sn5      \ER                  " S5      /5        \ V s/ s H  n \" U 5      PM     sn r\"GR                  " \" \5      5      \R                  " \\S09S 5       5       r\"GR                  " \" \S#S 5      5      \R                  " \S#S \S#S S09S 5       5       r\rSS\\" 5       \	R8                  /r\Eb!  \R                  \ER                  " S5      5        \R                  " \S69S 5       r\r\R                  " / SQS69S 5       r\r\R                  " \6GR                  S69S 5       r\R                  " S\'GR                  4\R                  " S\'GR                  4\"R                  " S5      SH9\R                  " S\R                  4\"R                  " S5      SH9S\R                  4// SQS09S 5       r\R                  " S\R                  " S\"R                  " S5      SH9/S69S 5       r\R                  " \R                  " S\R                  4\"R                  " S5      SH9\R                  " S\'GR                  4\"R                  " S5      SH9/S69S 5       r\R                  " S\R                  " S\"R                  " S5      SH9/S69S 5       r\R                  " S\'GR                  4\R                  " S\'GR                  4\"R                  " S5      SH9\R                  " S\R                  4\"R                  " S5      SH9S\R                  4// SQS09S 5       r\R                  " S\R                  " S\"R                  " S5      SH9/S69S 5       r\r\r\R                  " \6GR                  S69S 5       r\R                  " \6GR                  S69S 5       r\R                  " \GR                  " Se5      S\'GR                  4\R                  " S\'GR                  4\"R                  " S5      SH9\R                  " S\R                  4\"R                  " S5      SH9S\R                  4// SQS09S 5       r\R                  " \6GR                  S69S 5       r\R                  " \6GR                  S69S 5       Gr \R                  GSNGS  j5       Gr\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                  S69GS 5       Gr	\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                  S69GS 5       Gr\R                  " \6GR                   S69GS 5       Gr\R                  " \6GR$                  S69GS	 5       Gr\R                  " \6GR(                  S69GS
 5       Gr\R                  " \6GR$                  \6GR                  -   S69GS 5       Gr\R                  " \6GR$                  \6GR                  -   \6GR.                  -   \6GR0                  -   S69GS 5       Gr\R                  " \6GR4                  S69GS 5       Gr\R                  " \6GR8                  S69GS 5       Gr\R                  " \6GR<                  S69GS 5       Gr\R                  " \6GR@                  S69GS 5       Gr!\R                  " \6GRD                  S69GS 5       Gr#\R                  " \6GRH                  S69GS 5       Gr%SiS\R                  GS/4SiS\'GR                  GS/4GSS\'R                  GS/4GSGS\R                  GS/4S\R                  \R                  \R                  /4S/ 4GSS\R                  GS/4GSS\R                  GS/4GSGS\R                  GS/4GSS#\R                  GS/4GSS#\R                  GS/4GS\" S#5      \R                  \" GS5      /4SS\R                  S/4SS\'GR                  S/4GS \GRL                  " GS!5      \R                  \GRL                  " GS"5      /4Sj\0" GS#5      \R                  \0" GS$5      /4GS%\" GS&S#S#5      \R                  \" GS'S#S#5      /4GS(GS)\R                  GS*/4Ss\" S#5      \R                  \" GS5      /4GS+\" S#5      \R                  \" GS5      /4Sp\," GS&5      \'R                  \," GS'5      /4S\*" SS#5      \R                  \*" SGS5      /4/Gr'\" G\'6 u  Gr(Gr)\R                  " G\'G\(S09GS, 5       Gr*\R                  GS- 5       Gr+\R                  " / GS.QS69GS/ 5       Gr,\R                  " \'R                  GRZ                   Vs/ s HV  nG\." \W" \'R                  U5      \'R                  GR^                  5      (       d  M:  UGS0:w  d  MC  \W" \'R                  U5      PMX     snS69GS1 5       Gr0\R                  " SGS2 /S69GS3 5       Gr1\R                  " GS4GS5GS6\R                  \R                  \R                  4\R                  \'R                  S4\R                  \'GR                  S4\'GR                  \'GR                  \'GR                  4/S69GSOGS7 j5       Gr2\R                  " \6GRf                  \6GRh                  \6GRj                  /S69GS8 5       Gr6\R                  " \6GRh                  \6GRj                  /S69GS9 5       Gr7\R                  " \6GRf                  \6GRj                  /S69GS: 5       Gr8\R                  " \6GRf                  \6GRh                  /S69GS; 5       Gr9\R                  " \6GRt                  \6GRh                  /S69GS< 5       Gr;\R                  " \6GRx                  \6GRj                  /S69GS= 5       Gr=\R                  GSPGS> j5       Gr>\R                  GSPGS? j5       Gr?\R                  GSPGS@ j5       Gr@\R                  GSPGSA j5       GrAGSBGSC/GrB\Eb#  G\BR                  \ER                  " GSB5      5        \R                  " G\BS69GSQGSD j5       GrC\R                  " 5       GSE 5       GrDg! \D a    SrC GN>f = f! \ER                   a    SrE GN@f = fs  sn f s  sn f s  sn f s  sn f s  snnf s  snnf s  snnf s  sn f s  sn nf s  snf s  sn f s  snf (R  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)TYPE_CHECKINGCallable)tzlocaltzutc)
strategies)FixedOffsetutc_get_option)DatetimeTZDtypeIntervalDtype)CategoricalIndex	DataFrameIntervalIntervalIndexPeriod
RangeIndexSeries	Timedelta	Timestamp
date_rangeperiod_rangetimedelta_range)ops)Index
MultiIndex)Version)HashableIteratorTFUTCc                &    U R                  SSSS9  g )N--no-strict-data-filesstore_falsez6Don't fail if a test is skipped for missing data file.)actionhelp)	addoption)parsers    O/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/pandas/conftest.pypytest_addoptionr1   o   s    
 E      strc                    U R                   R                  U5      (       a2  U R                  [        R                  R                  SU 35      5        gg)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      r0   ignore_doctest_warningr>   w   s@     yy$22WWI3FGH  r2   c                    UR                  S5      =(       d    UR                  SSS9n/ SQnU(       a!  U  H  nU H  u  pV[        XEU5        M     M     g g )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)DataFrameGroupBy.fillnaz%DataFrameGroupBy.fillna is deprecated)NDFrame.replacezThe 'method' keyword)rH   zSeries.replace without 'value')zNDFrame.clipz4Downcasting behavior in Series and DataFrame methods)zSeries.idxminThe behavior of Series.idxmin)zSeries.idxmaxThe behavior of Series.idxmax)zSeriesGroupBy.fillnaz"SeriesGroupBy.fillna is deprecated)zSeriesGroupBy.idxminrI   )zSeriesGroupBy.idxmaxrJ   )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)rG   z3DataFrameGroupBy.fillna with 'method' is deprecated)rG   z,DataFrame.fillna with 'method' is deprecated)read_parquetz1Passing a BlockManager to DataFrame is deprecated)	getoptionr>   )itemsconfig
is_doctestignored_doctest_warningsr;   r<   r=   s          r0   pytest_collection_modifyitemsrR      sc    !!"56 &:J:JE ;K ;J- ^ D!9&t7; ":  r2   z6.83.2ci)deadlinesuppress_health_checkz)MonthBegin MonthEnd BMonthBegin BMonthEndic   )n	normalizez%YearBegin YearEnd BYearBegin BYearEnd         )	min_value	max_value)rW   rX   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rW   rX   startingMonth)autousec                (    [         U S'   [        U S'   g)z2
Make `np` and `pd` names available for doctests.
nppdN)rd   re   )doctest_namespaces    r0   add_doctest_importsrg      s    
 !d dr2   c                 2    [         R                  " SS5        g)z4
Configure settings for all tests and test modules.
chained_assignmentraiseN)re   
set_option r2   r0   configure_testsrm   	  s    
 MM&0r2   )r   r[   indexcolumnsc                    S[        U 5       3$ Nzaxis=reprxs    r0   <lambda>rv     s    5a	ARr2   )paramsidsc                    U R                   $ )z8
Fixture for returning the axis numbers of a DataFrame.
paramrequests    r0   axisr~         
 ==r2   ro   c                    S[        U 5       3$ rq   rr   rt   s    r0   rv   rv     s    uT!WI5Fr2   c                    U R                   $ )z9
Fixture for returning aliases of axis 1 of a DataFrame.
rz   r|   s    r0   axis_1r     r   r2   )TFN)rw   c                    U R                   $ )ai  
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).
rz   r|   s    r0   observedr   '       ==r2   c                    U R                   $ )z.
Boolean 'ordered' parameter for Categorical.
rz   r|   s    r0   orderedr   4  r   r2   c                    U R                   $ )z
Boolean 'skipna' parameter.
rz   r|   s    r0   skipnar   <  r   r2   )firstlastFc                    U R                   $ )zO
Valid values for the 'keep' parameter used in
.duplicated or .drop_duplicates
rz   r|   s    r0   keepr   D       ==r2   )bothneitherleftrightc                    U R                   $ )z9
Fixture for trying all interval 'inclusive' parameters.
rz   r|   s    r0   inclusive_endpoints_fixturer   M  r   r2   )r   r   r   r   c                    U R                   $ )z4
Fixture for trying all interval closed parameters.
rz   r|   s    r0   closedr   U  r   r2   c                    U R                   $ )zK
Secondary closed fixture to allow parametrizing over all pairs of closed.
rz   r|   s    r0   other_closedr   ]  r   r2   gzipbz2zipxztarzstd	zstandard)marksc                    U R                   $ )zC
Fixture for trying common compression types in compression tests.
rz   r|   s    r0   compressionr   e       ==r2   c                    U R                   $ )z_
Fixture for trying common compression types in compression tests excluding
uncompressed case.
rz   r|   s    r0   compression_onlyr   w  r   r2   c                    U R                   $ )z$
Fixture that an array is writable.
rz   r|   s    r0   writabler     r   r2   )innerouterr   r   c                    U R                   $ )z2
Fixture for trying all types of join operations.
rz   r|   s    r0   	join_typer     r   r2   nlargest	nsmallestc                    U R                   $ )z)
Fixture for trying all nselect methods.
rz   r|   s    r0   nselect_methodr     r   r2   c                ,    [        U 5      R                  $ Ntype__name__rt   s    r0   rv   rv     s    d1g6F6Fr2   c                    U R                   $ )z'
Fixture for each null type in pandas.
rz   r|   s    r0   nulls_fixturer     r   r2   c                    U R                   $ )zD
Fixture for each null type in pandas, each null type exactly once.
rz   r|   s    r0   unique_nulls_fixturer     r   r2   c                ,    [        U 5      R                  $ r   r   rt   s    r0   rv   rv     s    Q8H8Hr2   c                    U R                   $ )z%
Fixture for each NaT type in numpy.
rz   r|   s    r0   np_nat_fixturer     r   r2   c                    U R                   $ )z3
Fixture to parametrize over DataFrame and Series.
rz   r|   s    r0   frame_or_seriesr     r   r2   rn   seriesc                    U R                   $ )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
rz   r|   s    r0   index_or_seriesr     r   r2   )rn   r   arrayc                    U R                   $ )z?
Fixture to parametrize over Index, Series, and ExtensionArray
rz   r|   s    r0   index_or_series_or_arrayr     r   r2   c                    U R                   $ r   )r   rt   s    r0   rv   rv     s    1::r2   c                    U R                   $ )zQ
Fixture to test behavior for Index, Series, DataFrame, and pandas Array
classes
rz   r|   s    r0   box_with_arrayr     r   r2   c                 $     " S S[         5      n U $ )z$
Fixture for a dictionary subclass.
c                      \ rS rSrSS jrSrg)"dict_subclass.<locals>.TestSubDicti  c                8    [         R                  " U /UQ70 UD6  g r   )dict__init__)selfargskwargss      r0   r   +dict_subclass.<locals>.TestSubDict.__init__   s    MM$000r2   rl   NreturnNone)r   
__module____qualname____firstlineno__r   __static_attributes__rl   r2   r0   TestSubDictr     s    	1r2   r   )r   )r   s    r0   dict_subclassr     s    1d 1 r2   c                 8     " S S[         R                  5      n U $ )z0
Fixture for a non-mapping dictionary subclass.
c                  8    \ rS rSrSS jrS rS	S jrS
S jrSrg)5non_dict_mapping_subclass.<locals>.TestNonDictMappingi  c                    Xl         g r   _data)r   underlying_dicts     r0   r   >non_dict_mapping_subclass.<locals>.TestNonDictMapping.__init__  s    (Jr2   c                8    U R                   R                  U5      $ r   )r   __getitem__)r   keys     r0   r   Anon_dict_mapping_subclass.<locals>.TestNonDictMapping.__getitem__  s    ::))#..r2   c                6    U R                   R                  5       $ r   )r   __iter__r   s    r0   r   >non_dict_mapping_subclass.<locals>.TestNonDictMapping.__iter__  s    ::&&((r2   c                6    U R                   R                  5       $ r   )r   __len__r   s    r0   r   =non_dict_mapping_subclass.<locals>.TestNonDictMapping.__len__  s    ::%%''r2   r   Nr   )r   r'   )r   int)	r   r   r   r   r   r   r   r   r   rl   r2   r0   TestNonDictMappingr     s    	)	/	)	(r2   r   )r   Mapping)r   s    r0   non_dict_mapping_subclassr     s    (S[[ ( r2   c            
        [        [        R                  R                  S5      R	                  S5      [        [        S5      5      [        SSSS9S9n U R                  S	 S
 S /5      R                  5       nUR                  R                  UR                  R                   Vs/ s H  o"R                  S5      PM     sn5      Ul
        UR                  R                  / SQSS9  U$ s  snf )zx
DataFrame with 3 level MultiIndex (year, month, day) covering
first 100 business days from 2000-01-01 with random data
   )d      ABCD
2000-01-01r   Bperiodsfreq)ro   rn   c                    U R                   $ r   )yearrt   s    r0   rv   Amultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s    r2   c                    U R                   $ r   )r_   rt   s    r0   rv   r   *  s    177r2   c                    U R                   $ r   )dayrt   s    r0   rv   r   *  s    aeer2   i8)r   r_   r   T)inplace)r   rd   randomdefault_rngstandard_normalr#   listr   groupbysumrn   
set_levelslevelsastype	set_names)tdfymdlevs      r0   /multiindex_year_month_day_dataframe_random_datar    s     
		a 00:d6l#s=C
 ++'):OL
M
Q
Q
SC		$$#))BRBR%SBR3jj&6BR%STCIII0$?J &Ts   %C)c                 4    [        / SQ/ SQ// SQ/ SQ/SS/S9$ )z3
2-level MultiIndex, lexsorted, with string names.
foobarbazquxonetwothree)
r   r   r   r[   r[   r   r      r  r  )
r   r[   r   r   r[   r[   r   r   r[   r   r   second)r
  codesnames)r$   rl   r2   r0   %lexsorted_two_level_string_multiindexr  1  s+    
 ,.EF-/MN! r2   c           	         U n[        [        R                  R                  S5      R	                  S5      U[        / SQSS9S9$ )z2DataFrame with 2 level MultiIndex with random datar   )
   r  )Ar   Cexpr5   rn   ro   )r   rd   r  r  r  r#   )r  rn   s     r0    multiindex_dataframe_random_datar'  =  s@    
 2E
		a 009oE2 r2   c                     [        / SQ5      n [        SS/5      n[        R                  " / SQ5      n[        R                  " / SQ5      nSS/n[        X/X#/USS	9$ )
zB
MultiIndex used to test the general functionality of this object
r  r  r  )r   r   r[   r   r  r  )r   r[   r   r[   r   r[   r   r  F)r
  r  r  verify_integrity)r#   rd   r   r$   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r0   _create_multiindexr/  J  sd     34Ju~&J((-.K((-.KH%K'(	 r2   c            
     P    [         R                  " SS/SS/[        SSSS9// S	QS
9$ )z:
MultiIndex with a level that is a tzaware DatetimeIndex.
r[   r   ab20130101r  
US/Easternr   tzr  )r  )r$   from_productr   rl   r2   r0   _create_mi_with_dt64tz_levelr8  ^  s5    
 ""
Q#sZ
A,OP% r2   objectr   pandas_dtypestringr   z
2020-01-01)r   zdatetime-tzz
US/Pacificr5  periodDr   r   z1 day)startr   r   rangeint8int16int32int64uint8uint16uint32uint64float32float64zbool-object
bool-dtype	complex64y              ?
complex128categoricalabcd   intervale   )numemptytuples)r  r  r  )r[   r   r  mi-with-dt64tz-levelmultirepeats)r   r   r[   r[   r   r   nullable_intInt64nullable_uintUInt16nullable_floatFloat32nullable_boolbooleanzstring-pythonzstring[python]zstring[pyarrow]zstring-pyarrowc                D    [         U R                     R                  5       $ )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_dictr{   copyr|   s    r0   rn   rn     s     &++--r2   c                H    U R                   n[        U   R                  5       $ )z0
index fixture, but excluding MultiIndex cases.
)r{   rc  rd  )r}   r   s     r0   
index_flatrf    s!     --C!!##r2   )r   uintfloat)rA  rU  rY  rL  c                P   [         U R                     R                  SS9nUR                  R                  5       nU R                  S;   aB  UR	                  5       nSUS   SS -   US'   SUS   SS -   US'   [
        R                  " U5      $ SUS'   SUS'   [        U5      " U5      $ )	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)rV  rW  rX  r   r   r[   N)rc  r{   rd  valuestolistr$   from_tuplesr   )r}   indvalss      r0   index_with_missingrr    s    . w}}
%
*
*
*
5C::??D}}CCzz|DGABK'QT"Xab\)R%%d++QRCyr2   c            
         [        [        R                  " S[        R                  S9S-  [	        [        S5       V s/ s H  n SU  3PM
     sn 5      SS9$ s  sn f )z;
Fixture for Series of floats with Index of unique strings
   r;  g?i_r   rn   r5   )r   rd   arangerK  r#   rA  is    r0   string_seriesrz    sO    
 
		"BJJ'#-uRy1y!r!Xy12 1s   Ac                     [        S5       V s/ s H  n SU  3PM
     nn [        [        S5       V s/ s H  n SU  3PM
     sn 5      n[        XS[        S9$ s  sn f s  sn f )zA
Fixture for Series of dtype object with Index of unique strings
rt  foo_bar_objectsrn   r5   r<  )rA  r#   r   r9  )ry  datarn   s      r0   object_seriesr    s\    
 !&b	*	1d1#J	D*uRy1y!T!:y12E$)6BB +1s
   AAc            	         [        [        R                  R                  S5      R	                  S5      [        SSSS9SS9$ )z1
Fixture for Series of floats with DatetimeIndex
r   rt  r   r   r   tsrv  )r   rd   r  r  r  r   rl   r2   r0   datetime_seriesr    s=    
 
		a 004r< r2   c                    [        U 5      n[        R                  R                  S5      R	                  U5      n[        X SSS9$ )zHelper for the _series dictr   r1  F)rn   r5   rd  )lenrd   r  r  r  r   )rn   sizer  s      r0   _create_seriesr    s9    u:D99  #33D9D$#E::r2   zseries-with-z-indexc                    [        U 5      $ )z=
Fixture for tests on series with changing types of indices.
)r  rn   s    r0   series_with_simple_indexr    s    
 %  r2   z-seriesrt  zi-r1  r  c                B    [         U R                     R                  SS9$ )zp
Fixture for tests on indexes, series and series with a narrow dtype
copy to avoid mutation, e.g. setting .name
Trj  )_index_or_series_objsr{   rd  r|   s    r0   index_or_series_objr  %  s!     !/44$4??r2   c                B    [         U R                     R                  SS9$ )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
Trj  )_index_or_series_memory_objsr{   rd  r|   s    r0   index_or_series_memory_objr  ;  s!     (6;;;FFr2   c            
         [        [        R                  " S[        R                  S9[	        [        S5       V s/ s H  n SU  3PM
     sn 5      [	        [        S5      5      S9$ s  sn f )z^
Fixture for DataFrame of ints with index of unique strings

Columns are ['A', 'B', 'C', 'D']
rt  r   r;  rt  r|  r   r&  )r   rd   onesrE  r#   rA  r  rx  s    r0   	int_framer  H  sS     
rxx(r3AtA3Z34d6l# 3s   A%c            
         [        [        R                  R                  S5      R	                  S5      [        [        S5       V s/ s H  n SU  3PM
     sn 5      [        [        S5      5      S9$ s  sn f )za
Fixture for DataFrame of floats with index of unique strings

Columns are ['A', 'B', 'C', 'D'].
r   r  rt  r|  r   r&  )r   rd   r  r  r  r#   rA  r  rx  s    r0   float_framer  V  s^     
		a 009r3AtA3Z34d6l# 3s   A0c                 t   [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      [        SSS5      /
n [        [        R                  R	                  S5      R                  [        U 5      5      U S9$ )z>
Fixture for Series with a DatetimeIndex that has duplicates.
i  r[   r   r  r   rZ   r  )r   r   rd   r  r  r  r  )datess    r0   (rand_series_with_duplicate_datetimeindexr  d  s     	q!q!q!q!q!q!q!q!q!q!E "))''*::3u:FeTTr2   )r   r   r   g?g      ?z2012-01M)r   z	period[M]z
2012-02-01z	period[D]z
2011-01-01r4  )r6  s)unitr6  i  )secondsztimedelta64[ns]c                    U R                   $ r   rz   r|   s    r0   ea_scalar_and_dtyper  |       ==r2   c                    U R                   $ )z<
Fixture for dunder names for common arithmetic operations.
rz   r|   s    r0   all_arithmetic_operatorsr    r   r2   c                    U R                   $ )zM
Fixture for operator and roperator arithmetic, comparison, and logical ops.
rz   r|   s    r0   all_binary_operatorsr        D ==r2   c                    U R                   $ )z
Fixture for operator and roperator arithmetic functions.

Notes
-----
This includes divmod and rdivmod, whereas all_arithmetic_operators
does not.
rz   r|   s    r0   all_arithmetic_functionsr    s    6 ==r2   )countr  maxminmeanprodstdvarmediankurtskewsemc                    U R                   $ )z&
Fixture for numeric reduction names.
rz   r|   s    r0   all_numeric_reductionsr    r   r2   allanyc                    U R                   $ )z&
Fixture for boolean reduction names.
rz   r|   s    r0   all_boolean_reductionsr    r   r2   c                    U R                   $ )z6
Fixture for all (boolean + numeric) reduction names.
rz   r|   s    r0   all_reductionsr    r   r2   c                    U R                   $ )z3
Fixture for operator module comparison functions.
rz   r|   s    r0   comparison_opr    r  r2   )__le____lt____ge____gt__c                    U R                   $ )zU
Fixture for dunder names for compare operations except == and !=

* >=
* >
* <
* <=
rz   r|   s    r0   compare_operators_no_eq_ner    r   r2   )__and____rand____or____ror____xor____rxor__c                    U R                   $ )zE
Fixture for dunder names for common logical operations

* |
* &
* ^
rz   r|   s    r0   all_logical_operatorsr  )       ==r2   )cumsumcumprodcummincummaxc                    U R                   $ )z(
Fixture for numeric accumulation names
rz   r|   s    r0   all_numeric_accumulationsr  :  r   r2   c                $    U R                  S5      $ )zJ
Returns the configuration for the test setting `--no-strict-data-files`.
r*   )rM   )pytestconfigs    r0   strict_data_filesr  E  s    
 !!":;;r2   c                   ^ ^ [         R                  R                  [         R                  R                  [        5      S5      mUU 4S jnU$ )a  
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.
testsc                    > [         R                  R                  " T/U Q76 n[         R                  R                  U5      (       d0  T(       a  [	        SU S35      e[
        R                  " SU S35        U$ )NzCould not find file z' and --no-strict-data-files is not set.zCould not find .)osr<   joinexists
ValueErrorr8   skip)r   r<   	BASE_PATHr  s     r0   decodatapath.<locals>.decob  sf    ww||I--ww~~d##  *4&0WX  KK/$q12r2   )r  r<   r  dirname__file__)r  r  r  s   ` @r0   datapathr  M  s2    & RWW__X6@I Kr2   z
Asia/Tokyozdateutil/US/Pacificzdateutil/Asia/Singaporez+01:15z-02:15z	UTC+01:15z	UTC-02:15i,  i)hoursrl  r  r%  c                    U R                   $ )z<
Fixture for trying timezones including default (None): {0}
rz   r|   s    r0   tz_naive_fixturer    r   r2   c                    U R                   $ )z,
Fixture for trying explicit timezones: {0}
rz   r|   s    r0   tz_aware_fixturer    r   r2   r   zdateutil/UTCc                    U R                   $ )zI
Fixture to provide variants of UTC timezone strings and tzinfo objects.
rz   r|   s    r0   utc_fixturer    r   r2   )r  msusnsc                    U R                   $ )z
datetime64 units we support.
rz   r|   s    r0   r  r    r   r2   c                    U R                   $ )z>
Parametrized fixture for string dtypes.

* str
* 'str'
* 'U'
rz   r|   s    r0   string_dtyper         ==r2   pythonpyarrow)string=string[python]string=string[pyarrow]string=str[pyarrow]string=str[python]c                J    U R                   u  p[        R                  " X5      $ )z
Parametrized fixture for string dtypes.
* 'string[python]' (NA variant)
* 'string[pyarrow]' (NA variant)
* 'str' (NaN variant, with pyarrow)
* 'str' (NaN variant, without pyarrow)
)r{   re   StringDtyper}   storagena_values      r0   string_dtype_no_objectr    s    0  G>>',,r2   c                    U R                   $ )zQ
Parametrized fixture for string dtypes.

* 'string[python]'
* 'string[pyarrow]'
rz   r|   s    r0   nullable_string_dtyper          ==r2   c                <    [         R                  " U R                  6 $ )za
Parametrized fixture for string dtypes backed by Pyarrow.

* 'str[pyarrow]'
* 'string[pyarrow]'
)re   r  r{   r|   s    r0   pyarrow_string_dtyper    s     >>7==))r2   c                    U R                   $ zR
Parametrized fixture for pd.options.mode.string_storage.

* 'python'
* 'pyarrow'
rz   r|   s    r0   string_storager    r  r2   c                    U R                   $ )zy
Parametrized fixture for StringDtype storage and na_value.

* 'python' + pd.NA
* 'pyarrow' + pd.NA
* 'pyarrow' + np.nan
rz   r|   s    r0   string_dtype_argumentsr    s    , ==r2   numpy_nullablec                    U R                   $ r  rz   r|   s    r0   dtype_backendr  5  r  r2   c                    U R                   $ )z;
Parametrized fixture for bytes dtypes.

* bytes
* 'bytes'
rz   r|   s    r0   bytes_dtyper  J       ==r2   c                    U R                   $ )z>
Parametrized fixture for object dtypes.

* object
* 'object'
rz   r|   s    r0   object_dtyper  U  r  r2   )zstring=objectr  r  r  r  c                    [        U R                  [        R                  5      (       a  U R                  $ U R                  u  p[        R
                  " X5      $ )z
Parametrized fixture for string dtypes.
* 'object'
* 'string[python]' (NA variant)
* 'string[pyarrow]' (NA variant)
* 'str' (NaN variant, with pyarrow)
* 'str' (NaN variant, without pyarrow)
)
isinstancer{   rd   r<  re   r  r  s      r0   any_string_dtyper  `  s@    2 '--**}} $MM~~g00r2   c                    U R                   $ )zL
Parametrized fixture for datetime64 dtypes.

* 'datetime64[ns]'
* 'M8[ns]'
rz   r|   s    r0   datetime64_dtyper    r  r2   c                    U R                   $ )zN
Parametrized fixture for timedelta64 dtypes.

* 'timedelta64[ns]'
* 'm8[ns]'
rz   r|   s    r0   timedelta64_dtyper    r  r2   c            
          [        SSSSSSSS9$ )z%
Fixture emits fixed Timestamp.now()
i  r[   r\   r         )r   r_   r   hourminuter  microsecond)r   rl   r2   r0   fixed_now_tsr    s     
 1RR r2   c                    U R                   $ )zJ
Parameterized fixture for float dtypes.

* float
* 'float32'
* 'float64'
rz   r|   s    r0   float_numpy_dtyper     r  r2   c                    U R                   $ )zB
Parameterized fixture for float dtypes.

* 'Float32'
* 'Float64'
rz   r|   s    r0   float_ea_dtyper"    r  r2   c                    U R                   $ )zb
Parameterized fixture for float dtypes.

* float
* 'float32'
* 'float64'
* 'Float32'
* 'Float64'
rz   r|   s    r0   any_float_dtyper$    r  r2   c                    U R                   $ )zS
Parameterized fixture for complex dtypes.

* complex
* 'complex64'
* 'complex128'
rz   r|   s    r0   complex_dtyper&    r  r2   c                    U R                   $ )z
Parameterized fixture for complex and numpy float dtypes.

* complex
* 'complex64'
* 'complex128'
* float
* 'float32'
* 'float64'
rz   r|   s    r0   complex_or_float_dtyper(    s     ==r2   c                    U R                   $ )z`
Parameterized fixture for signed integer dtypes.

* int
* 'int8'
* 'int16'
* 'int32'
* 'int64'
rz   r|   s    r0   any_signed_int_numpy_dtyper*    r  r2   c                    U R                   $ )z`
Parameterized fixture for unsigned integer dtypes.

* 'uint8'
* 'uint16'
* 'uint32'
* 'uint64'
rz   r|   s    r0   any_unsigned_int_numpy_dtyper,    r   r2   c                    U R                   $ )z
Parameterized fixture for any integer dtype.

* int
* 'int8'
* 'uint8'
* 'int16'
* 'uint16'
* 'int32'
* 'uint32'
* 'int64'
* 'uint64'
rz   r|   s    r0   any_int_numpy_dtyper.    r   r2   c                    U R                   $ )z
Parameterized fixture for any nullable integer dtype.

* 'UInt8'
* 'Int8'
* 'UInt16'
* 'Int16'
* 'UInt32'
* 'Int32'
* 'UInt64'
* 'Int64'
rz   r|   s    r0   any_int_ea_dtyper0    r  r2   c                    U R                   $ )z
Parameterized fixture for any nullable integer dtype.

* int
* 'int8'
* 'uint8'
* 'int16'
* 'uint16'
* 'int32'
* 'uint32'
* 'int64'
* 'uint64'
* 'UInt8'
* 'Int8'
* 'UInt16'
* 'Int16'
* 'UInt32'
* 'Int32'
* 'UInt64'
* 'Int64'
rz   r|   s    r0   any_int_dtyper2     s    . ==r2   c                    U R                   $ )z
Parameterized fixture for any nullable integer dtype and
any float ea dtypes.

* 'UInt8'
* 'Int8'
* 'UInt16'
* 'Int16'
* 'UInt32'
* 'Int32'
* 'UInt64'
* 'Int64'
* 'Float32'
* 'Float64'
rz   r|   s    r0   any_numeric_ea_dtyper4  :  s    " ==r2   c                    U R                   $ )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]'
rz   r|   s    r0   any_numeric_ea_and_arrow_dtyper6  P  s    @ ==r2   c                    U R                   $ )zf
Parameterized fixture for any signed nullable integer dtype.

* 'Int8'
* 'Int16'
* 'Int32'
* 'Int64'
rz   r|   s    r0   any_signed_int_ea_dtyper8  s  r   r2   c                    U R                   $ )z
Parameterized fixture for any (purely) real numeric dtype.

* int
* 'int8'
* 'uint8'
* 'int16'
* 'uint16'
* 'int32'
* 'uint32'
* 'int64'
* 'uint64'
* float
* 'float32'
* 'float64'
rz   r|   s    r0   any_real_numpy_dtyper:    s    $ ==r2   c                    U R                   $ )z
Parameterized fixture for any (purely) real numeric dtype.

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

and associated ea dtypes.
rz   r|   s    r0   any_real_numeric_dtyper<    s    ( ==r2   c                    U R                   $ )aT  
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'
rz   r|   s    r0   any_numpy_dtyper>    r  r2   c                    U R                   $ )a  
Parameterized fixture for all real dtypes that can hold NA.

* float
* 'float32'
* 'float64'
* 'Float32'
* 'Float64'
* 'UInt8'
* 'UInt16'
* 'UInt32'
* 'UInt64'
* 'Int8'
* 'Int16'
* 'Int32'
* 'Int64'
* 'uint8[pyarrow]'
* 'uint16[pyarrow]'
* 'uint32[pyarrow]'
* 'uint64[pyarrow]'
* 'int8[pyarrow]'
* 'int16[pyarrow]'
* 'int32[pyarrow]'
* 'int64[pyarrow]'
* 'float[pyarrow]'
* 'double[pyarrow]'
rz   r|   s    r0   any_real_nullable_dtyper@    s    : ==r2   c                    U R                   $ )a9  
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'
rz   r|   s    r0   any_numeric_dtyperB    s    > ==r2   cmixedbytes   a   czmixed-integerr   g       @floatingg      ?integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r3  20180101r   i  i  complexy      ?      ?y       @       @r   c                V    U R                   u  p[        R                  " U[        S9nX4$ )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;  )r{   rd   r   r9  )r}   inferred_dtyperm  s      r0   any_skipna_inferred_dtyperP  2  s,    R %]]NXXfF+F !!r2   c                     [         R                  " SSS9  SSKJn   SSKJn  U" 5       nSUR                  l        U " US9$ )	z^
Get an instance of IPython.InteractiveShell.

Will raise a skip if IPython is not installed.
IPythonz6.0.0)
minversionr   )InteractiveShell)Configz:memory:)rO   )r8   importorskipIPython.core.interactiveshellrT  traitlets.configrU  HistoryManager	hist_file)rT  rU  rC  s      r0   ipr[  e  s<     	g6> (A!+A1%%r2   )bsrcoocsccsrdiadoklilc                ^    [         R                  " S5      n[        XR                  S-   5      $ )z%
Yields scipy sparse matrix classes.
zscipy.sparse_matrix)r8   rV  getattrr{   )r}   sparses     r0   spmatrixrg  x  s(    
   0F6==9455r2   Tickc                    U R                   $ )zF
Fixture for Tick based datetime offsets available for a time series.
rz   r|   s    r0   tick_classesrj    r  r2   c                    U $ r   rl   rt   s    r0   rv   rv     s    r2   c                    U R                   $ )z_
Simple fixture for testing keys in sorting methods.
Tests None (no key) and the identity key.
rz   r|   s    r0   sort_by_keyrm    r   r2   )r  NN)EgonVenkmanN)NCC1701Drp  rp  c                    U R                   $ )zH
A 3-tuple of names, the first two for operands, the last for a result.
rz   r|   s    r0   r  r    s      ==r2   c                    U R                   $ )zA
Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
rz   r|   s    r0   indexer_slirs    r   r2   c                    U R                   $ )z4
Parametrize over loc.__getitem__, iloc.__getitem__
rz   r|   s    r0   
indexer_liru    r   r2   c                    U R                   $ )z0
Parametrize over __setitem__, iloc.__setitem__
rz   r|   s    r0   
indexer_sirw    r   r2   c                    U R                   $ )z/
Parametrize over __setitem__, loc.__setitem__
rz   r|   s    r0   
indexer_slry    r   r2   c                    U R                   $ )z2
Parametrize over at.__setitem__, loc.__setitem__
rz   r|   s    r0   
indexer_alr{    r   r2   c                    U R                   $ )z4
Parametrize over iat.__setitem__, iloc.__setitem__
rz   r|   s    r0   indexer_ialr}    r   r2   c                     [        SSS9S:H  $ )z6
Fixture to check if the array manager is being used.
mode.data_managerTsilentr   r   rl   r2   r0   using_array_managerr    s    
 *48GCCr2   c                 v    [         R                  R                  R                  SL =(       a    [	        SSS9S:H  $ )z/
Fixture to check if Copy-on-Write is enabled.
Tr  r  blockre   optionsmodecopy_on_writer   rl   r2   r0   using_copy_on_writer    s5     	

%%- 	E+D9WDr2   c                 x    [         R                  R                  R                  S:H  =(       a    [	        SSS9S:H  $ )z7
Fixture to check if Copy-on-Write is in warning mode.
warnr  Tr  r  r  rl   r2   r0   warn_copy_on_writer    s5     	

%%/ 	E+D9WDr2   c                 N    [         R                  R                  R                  SL $ )z5
Fixture to check if infer string option is enabled.
T)re   r  futureinfer_stringrl   r2   r0   using_infer_stringr    s    
 ::))T11r2   zEurope/Warsawzdateutil/Europe/Warsawc                    U R                   $ )z=
tzinfo for Europe/Warsaw using pytz, dateutil, or zoneinfo.
rz   r|   s    r0   warsawr    r   r2   c                     g)N)r  pyarrow_numpyrl   rl   r2   r0   arrow_string_storager    s    'r2   r   )r;   zpytest.Itemr<   r3   r=   r3   r   r   )r   z
type[dict])r   ztype[abc.Mapping])r   r$   )r   r   )r   r   )r  r3   r   zCallable[..., str])r   r   )r   z#tuple[Hashable, Hashable, Hashable])r   bool)r   r3   (E  __doc__
__future__r   collectionsr   r   r   r   r   r	   rJ  r
   operatorr  typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyrd   r8   pytzr   r   pandas._config.configr   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasre   r   r   r   r   r   r   r   r   r   r   r    r!   pandas._testing_testingtmpandas.corer"   pandas.core.indexes.apir#   r$   pandas.util.versionr%   collections.abcr&   r'   r  pahas_pyarrowImportErrorzoneinfoZoneInfoZoneInfoNotFoundErrorr1   r>   rR   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr5   re  tseriesoffsetsclsregister_type_strategybuildsintegersbooleansfixturerg   rm   r~   
axis_framer   r   r   r   r   r   r   r   r{   
skip_if_nor   r   r   r   r   NULL_OBJECTSr   nulls_fixture2nanNaTr   unique_nulls_fixture2NP_NAT_OBJECTSr   np_nat_fixture2r   r   index_or_series2r   r   r   box_with_array2r   r   r  r  r'  r/  r8  rA  r9  rw  r  r  from_breakslinspacero  r   r  rc  idxkeysrn   index_fixture2rN   r  rf  index_flat2
startswithrr  rz  r  r  r  _seriesr  NARROW_NP_DTYPESr   _narrow_seriesr  r  PYTHON_DATA_TYPES_typ_objects_seriesr  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  	TIMEZONESextendrs   TIMEZONE_IDSparametrize_fixture_docr3   r  r  tz_aware_fixture2_UTCSr  utc_fixture2r  unit2STRING_DTYPESr  NAr  r   r  r  r  r  string_storage2string_dtype_arguments2BYTES_DTYPESr  OBJECT_DTYPESr  r<  r  DATETIME64_DTYPESr  TIMEDELTA64_DTYPESr  r  FLOAT_NUMPY_DTYPESr   FLOAT_EA_DTYPESr"  ALL_FLOAT_DTYPESr$  COMPLEX_DTYPESr&  COMPLEX_FLOAT_DTYPESr(  SIGNED_INT_NUMPY_DTYPESr*  UNSIGNED_INT_NUMPY_DTYPESr,  ALL_INT_NUMPY_DTYPESr.  ALL_INT_EA_DTYPESr0  ALL_INT_DTYPESr2  r4  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRr6  SIGNED_INT_EA_DTYPESr8  ALL_REAL_NUMPY_DTYPESr:  ALL_REAL_DTYPESr<  ALL_NUMPY_DTYPESr>  ALL_REAL_NULLABLE_DTYPESr@  ALL_NUMERIC_DTYPESrB  rK  _any_skipna_inferred_dtyperx   _rP  r[  rg  __all__
issubclassrh  rj  rm  r  setitemlocilocrs  ru  rw  ry  atr{  iatr}  r  r  r  r  warsawsr  r  )ry  r   valueindex_idrn   r<  os   0000000r0   <module>r-     s  & #     	
  '  
 . ) )
       (
 	K eI$9<x '22;;< 
:!!"gh&77##J$:$:$N$NO    $ $  89 %         & 8==?D
"**$$d
+CRYYsbkk#r2bkkmL @ 499;D
"**$$d
+C
		kk"a kkm++R8		
 < @EEGD
"**$$d
+C
		kk#r"kkm++R@		
 H( ! ! 1 1 17RS T 
 9~+FG H *+	 ,	 *+ , e}% & /0 1 ;< = ;< = ;< = V2==#=>

 V2==#=>		 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  "   		 	((eE#J7Jqwqc]J7vF(eE#J7Jqwqc]J7uE( 
<5( :lCLI	(
 l<3?( w#F( Z_( E"))C./( U299S>1( U299S>1( U299S>1( U299S>1( eBIIcN(3( eBIIcN(3( eBIIcN(3(  uRYYs^95!(" uRYYs^95#($ 5$*&9%(& %u)6'(( 
		#[)D299S3T,TT)(. %
		#\*TBIIc4V-VV/(4 #DL2$565(6 ))"++a#*FG7(8 U2Y9(: j$$S)>	%JK;(< 8:=(> !?(@ u'(A(B E"))C.8C(D U299S>:E(F eBIIcN)<G(H U299S>006iHI(J U
s4AGA3-4<LMK(R 
s<AGA3-<DUV
WC%(L!" |((*+. ,.  *0022
*UJ:W2
$
$   ',,..JCNN34 	 AA	 	 5*- 	.

:   C C  ; (--// 8*F#^E%::/ ! ! $$	 % ~~gb	E"I6IqBqc(I6S!  %	 F<E7EnE  ,1134@ 5@ <>;O;O;O%~~gu-;O 
      	   388:;G <G 
 
 
 
 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 < <  J 			GINLLYQ YR u-%	( l+e$	
 "++AQ+ C-.yl3 4 / CQR 012y},qr*:; < 3 %  
UWhll;	LL""5)* u   ./ 0 	 r''( ) 	255i'r}}Y/GHi(i0HI	266		-- &bmmI.FG i(i0HIi'r}}Y/GH** YbmmI&>? 	255i'r}}Y/GHi(i0HI	266		 YbmmI&>? !0  r' ( r''( ) 
	255i'r}}Y/GHi(i0HI	266	 1! 1$ r++, - r,,- .   r,,- . r))* + r**+
 ,
 r(() * r../ 0 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223 4> r,,- .F RVVS!"RUUC !sBFFC !tRVVT"#rvvrvvrvv&'bMsBFFA&'sBFFC !#rvvs#$BFFAQ,-RVVWQZ01rvvu%&ruue$%BMM,/|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  ###Agbjj!,bjjoo> 	CD; 	

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

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

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

BFF+, - rvv' ( () * D D     2 2 4
5NN8$$_56 w   ( (k=  K %% HJ 87H 5 =0"`  7(~
 ,ls   6As0 As? At(At$At"At'At,
At,
At2
1At2
9At2
	At2
1At83(AuAt>*Au5 Au	@1Aug&9Auh#Auh,Aus0As<s;As<s?AttAtt>Au