
    Mh                    6   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S8S jrHGS9S jrIGS8S 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S8S+ j5       r`\R                  " SS*9GS8S, j5       ra\R                  " / S-QS. S/9S0 5       rb\brc\R                  " S"S1/S2 S/9S3 5       rd\R                  " / S4QS59S6 5       re\R                  " / S4QS59S7 5       rf\R                  " SS/S59S8 5       rg\R                  " / S9QS59S: 5       rh\R                  " / S;QS59S< 5       ri\R                  " / S=QS59S> 5       rj\R                  " / S=QS59S? 5       rk\R                  " SS@SASBSCSD\R                  " SE\"R                  " SF5      SG9/S59SH 5       rn\R                  " S@SASBSCSD\R                  " SE\"R                  " SF5      SG9/S59SI 5       ro\R                  " SS/S59SJ 5       rp\R                  " / SKQS59SL 5       rq\R                  " SMSN/S59SO 5       rr\R                  " \6R                  SP S/9SQ 5       rt\tru\R                  " S\R                  \'R                  /S59SR 5       rx\xry\R                  " \6R                  SS S/9ST 5       r{\{r|\R                  " \)\./S59SU 5       r}\R                  " \:\./SVSW/S/9SX 5       r~\~r\R                  " \:\.\'GR                   // SYQS/9SZ 5       r\R                  " \:\.\)\'GR                   /S[ S/9S\ 5       r\r\R                  GS:S] j5       r\R                  GS;S^ j5       r\R                  S_ 5       r\R                  GS<S` j5       r\R                    GS=Sa j5       rSb rSc r0 Sd\:" \" Se5       V s/ s H  n SfU  3PM
     sn 5      _Sg\1" ShSeSi9_Sj\1" ShSeSkSl9_Sm\2" ShSeSnSo9_Sp\3" SqSeSnSr9_Ss\-" Se5      _St\:" \GR                  " Se5      StSu9_Sv\:" \GR                  " Se5      SvSu9_Sw\:" \GR                  " Se5      SwSu9_Sx\:" \GR                  " Se5      SxSu9_Sy\:" \GR                  " Se5      SySu9_Sz\:" \GR                  " Se5      SzSu9_S{\:" \GR                  " Se5      S{Su9_S|\:" \GR                  " Se5      S|Su9_S}\:" \GR                  " Se5      S}Su9_S~\:" \GR                  " Se5      S~Su9_S\:" SS/S!-  \Su9_\:" SS/S!-  \Su9\:" \GR                  " SeSSu9S\GR                  " SeSSu9-  -   5      \:" \GR                  " SeSSu9S\GR                  " SeSSu9-  -   5      \(" \" S5      S-  5      \+GR                   " \GR"                  " SSeSS95      \:" / 5      \;GR$                  " \" / SQ/ SQ5      5      \" 5       \" 5       \:" / SQ5      \:" \GR                  " Se5      SSu9\:" \GR                  " Se5      SSu9\:" \GR                  " Se5      SSu9\:" \GR                  " Se5      GR)                  \5      SSu9\:" \'GR                   " \" Se5       V s/ s H  n SfU  3PM
     sn SSu95      S.Er\C(       a7  \:" \'GR                   " \" Se5       V s/ s H  n SfU  3PM
     sn SSu95      r\\S'   \R                  " \GR/                  5       S59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S59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S59S 5       r\R                  GS>S j5       r\R                  GS>S j5       r\R                  GS>S 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S>S 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       S59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       S59S 5       r\R                  GS=S j5       r\R                  GS=S j5       r\R                  GS>S j5       r\R                  " \*" SS!S9\%" SxS5      4\*" SSS9\%" S~S5      4\," SSS9S4\," SSnS9S4\0" SSS9\$" SSS94\/" SS9S4/S59S 5       r\R                  " \6GRf                  S59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                  /S59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                  /S59S 5       r/ SQr\R                  " \S59S 5       rSS/r\R                  " \S59S 5       r\\-   r\R                  " \S59S 5       r\R                  " \GR                  \GR                  \GR                  \GR                  \GR                  \GR                  /S59S 5       r\R                  " / SQS59S 5       r\R                  " / SQS59S 5       r/ SQr\R                  " \S59S 5       r\R                  S 5       r\R                  GS?S j5       rSSSSSSSSSS\" 5       \" 5       \" S5      \" S5      \" S5      \	R8                  \	" \" S"S95      \	" \" SS9SS9/r\Eb4  \GR                  \ER                  " Sk5      \ER                  " S5      /5        \ V s/ s H  n \" U 5      PM     sn r\"GR                  " \" \5      5      \R                  " \\S/9S 5       5       r\"GR                  " \" \S"S 5      5      \R                  " \S"S \S"S S/9S 5       5       r\rSS\\" 5       \	R8                  /r\Eb!  \R                  \ER                  " S5      5        \R                  " \S59S 5       r\r\R                  " / SQS59S 5       r\r\R                  " \6GR                  S59S 5       r\R                  " S\R                  " S\"R                  " S5      SG9/S59S 5       r\R                  " S\R                  " S\"R                  " S5      SG9\R                  " S\"R                  " S5      SG9/S59S 5       r\R                  " S\R                  " S\"R                  " S5      SG9/S59S 5       r\r\R                  " \6GR                  S59S 5       r\R                  " \6GR                  S59S 5       r\R                  " SS\R                  " S\"R                  " S5      SG9\R                  " S\"R                  " S5      SG9/S59S 5       r\R                  " \6GR                  S59S 5       r\R                  " \6GR                  S59S 5       r\R                  GS@S j5       r\R                  " \6GR                  S59S 5       r\R                  " \6GR                  S59S 5       r\R                  " \6GR                   S59S 5       Gr\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  S59S 5       Gr	\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  S59S 5       Gr\R                  " \6GR                  \6GR                  -   S59S 5       Gr\R                  " \6GR                  \6GR                  -   \6GR"                  -   \6GR$                  -   S59S 5       Gr\R                  " \6GR(                  S59S 5       Gr\R                  " \6GR,                  S59S 5       Gr\R                  " \6GR0                  S59S 5       Gr\R                  " \6GR4                  S59GS  5       Gr\R                  " \6GR8                  S59GS 5       Gr\R                  " \6GR<                  S59GS 5       GrSdS\R                  GS/4SdS\'GR@                  GS/4GSS\'R                  GS/4GSGS\R                  GS/4GS\R                  \R                  \R                  /4G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RB                  " GS5      \R                  \GRB                  " GS5      /4Sg\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Sp\" S"5      \R                  \" GS
5      /4GS\" S"5      \R                  \" GS
5      /4Sm\," GS5      \'R                  \," GS5      /4GS\*" SS"5      \R                  \*" SGS
5      /4/Gr"\" G\"6 u  Gr#Gr$\R                  " G\"G\#S/9GS 5       Gr%\R                  GS 5       Gr&\R                  " / GS QS59GS! 5       Gr'\R                  " \'R                  GRP                   Vs/ s HV  nG\)" \W" \'R                  U5      \'R                  GRT                  5      (       d  M:  UGS":w  d  MC  \W" \'R                  U5      PMX     snS59GS# 5       Gr+\R                  " SGS$ /S59GS% 5       Gr,\R                  " GS&GS'GS(\R                  \R                  \R                  4\R                  \'R                  S4\R                  \'GR@                  S4\'GR@                  \'GR@                  \'GR@                  4/S59GSAGS) j5       Gr-\R                  " \6GR\                  \6GR^                  \6GR`                  /S59GS* 5       Gr1\R                  " \6GR^                  \6GR`                  /S59GS+ 5       Gr2\R                  " \6GR\                  \6GR`                  /S59GS, 5       Gr3\R                  " \6GR\                  \6GR^                  /S59GS- 5       Gr4\R                  " \6GRj                  \6GR^                  /S59GS. 5       Gr6\R                  " \6GRn                  \6GR`                  /S59GS/ 5       Gr8\R                  GSBGS0 j5       Gr9\R                  GSBGS1 j5       Gr:\R                  GSBGS2 j5       Gr;\R                  GSBGS3 j5       Gr<GS4GS5/Gr=\Eb#  G\=R                  \ER                  " GS45      5        \R                  " G\=S59GSCGS6 j5       Gr>\R                  " 5       GS7 5       Gr?g! \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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 (D  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    A/var/www/html/env/lib/python3.13/site-packages/pandas/conftest.pypytest_addoptionr1   o   s    
 E      c                    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)rG   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.idxminrH   )zSeriesGroupBy.idxmaxrI   )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)rF   z3DataFrameGroupBy.fillna with 'method' is deprecated)rF   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_modifyitemsrQ      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)rV   rW   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rV   rW   startingMonth)autousec                (    [         U S'   [        U S'   g)z2
Make `np` and `pd` names available for doctests.
nppdN)rc   rd   )doctest_namespaces    r0   add_doctest_importsrf      s    
 !d dr2   c                 2    [         R                  " SS5        g)z4
Configure settings for all tests and test modules.
chained_assignmentraiseN)rd   
set_option r2   r0   configure_testsrl   	  s    
 MM&0r2   )r   rZ   indexcolumnsc                    S[        U 5       3$ Nzaxis=reprxs    r0   <lambda>ru     s    5a	ARr2   )paramsidsc                    U R                   $ )z8
Fixture for returning the axis numbers of a DataFrame.
paramrequests    r0   axisr}         
 ==r2   rn   c                    S[        U 5       3$ rp   rq   rs   s    r0   ru   ru     s    uT!WI5Fr2   c                    U R                   $ )z9
Fixture for returning aliases of axis 1 of a DataFrame.
ry   r{   s    r0   axis_1r     r~   r2   )TFN)rv   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).
ry   r{   s    r0   observedr   '       ==r2   c                    U R                   $ )z.
Boolean 'ordered' parameter for Categorical.
ry   r{   s    r0   orderedr   4  r~   r2   c                    U R                   $ )z
Boolean 'skipna' parameter.
ry   r{   s    r0   skipnar   <  r~   r2   )firstlastFc                    U R                   $ )zO
Valid values for the 'keep' parameter used in
.duplicated or .drop_duplicates
ry   r{   s    r0   keepr   D       ==r2   )bothneitherleftrightc                    U R                   $ )z9
Fixture for trying all interval 'inclusive' parameters.
ry   r{   s    r0   inclusive_endpoints_fixturer   M  r~   r2   )r   r   r   r   c                    U R                   $ )z4
Fixture for trying all interval closed parameters.
ry   r{   s    r0   closedr   U  r~   r2   c                    U R                   $ )zK
Secondary closed fixture to allow parametrizing over all pairs of closed.
ry   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.
ry   r{   s    r0   compressionr   e       ==r2   c                    U R                   $ )z_
Fixture for trying common compression types in compression tests excluding
uncompressed case.
ry   r{   s    r0   compression_onlyr   w  r   r2   c                    U R                   $ )z$
Fixture that an array is writable.
ry   r{   s    r0   writabler     r~   r2   )innerouterr   r   c                    U R                   $ )z2
Fixture for trying all types of join operations.
ry   r{   s    r0   	join_typer     r~   r2   nlargest	nsmallestc                    U R                   $ )z)
Fixture for trying all nselect methods.
ry   r{   s    r0   nselect_methodr     r~   r2   c                ,    [        U 5      R                  $ Ntype__name__rs   s    r0   ru   ru     s    d1g6F6Fr2   c                    U R                   $ )z'
Fixture for each null type in pandas.
ry   r{   s    r0   nulls_fixturer     r~   r2   c                    U R                   $ )zD
Fixture for each null type in pandas, each null type exactly once.
ry   r{   s    r0   unique_nulls_fixturer     r~   r2   c                ,    [        U 5      R                  $ r   r   rs   s    r0   ru   ru     s    Q8H8Hr2   c                    U R                   $ )z%
Fixture for each NaT type in numpy.
ry   r{   s    r0   np_nat_fixturer     r~   r2   c                    U R                   $ )z3
Fixture to parametrize over DataFrame and Series.
ry   r{   s    r0   frame_or_seriesr     r~   r2   rm   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
ry   r{   s    r0   index_or_seriesr     r   r2   )rm   r   arrayc                    U R                   $ )z?
Fixture to parametrize over Index, Series, and ExtensionArray
ry   r{   s    r0   index_or_series_or_arrayr     r~   r2   c                    U R                   $ r   )r   rs   s    r0   ru   ru     s    1::r2   c                    U R                   $ )zQ
Fixture to test behavior for Index, Series, DataFrame, and pandas Array
classes
ry   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   rk   NreturnNone)r   
__module____qualname____firstlineno__r   __static_attributes__rk   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   rk   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      [        S9[        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dtype
2000-01-01r   Bperiodsfreq)rn   rm   c                    U R                   $ r   )yearrs   s    r0   ru   Amultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s    r2   c                    U R                   $ r   )r^   rs   s    r0   ru   r   *  s    177r2   c                    U R                   $ r   )dayrs   s    r0   ru   r   *  s    aeer2   i8)r   r^   r  T)inplace)r   rc   randomdefault_rngstandard_normalr#   listobjectr   groupbysumrm   
set_levelslevelsastype	set_names)tdfymdlevs      r0   /multiindex_year_month_day_dataframe_random_datar    s     
		a 00:d6l&1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   rZ   rZ   r   r      r  r  )
r   rZ   r   r   rZ   rZ   r   r   rZ   r   r   second)r  codesnames)r$   rk   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r4   rm   rn   )r   rc   r  r  r  r#   )r!  rm   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   rZ   r   r  r  )r   rZ   r   rZ   r   rZ   r   r  F)r  r  r   verify_integrity)r#   rc   r   r$   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r0   _create_multiindexr1  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.
rZ   r   ab20130101r  
US/Easternr   tzr  )r   )r$   from_productr   rk   r2   r0   _create_mi_with_dt64tz_levelr:  ^  s5    
 ""
Q#sZ
A,OP% r2   stringr   pandas_r   z
2020-01-01)r   zdatetime-tzz
US/Pacificr7  periodDr   r   z1 day)startr   r   rangeint8r   int16int32int64uint8uint16uint32uint64float32float64zbool-object	complex64y              ?
complex128abcd   e   )num)r  r  r  )rZ   r   r  )r   r   rZ   rZ   r   r   Int64UInt16Float32booleanzstring[python])
bool-dtyperK  rL  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    [         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_dictrz   copyr{   s    r0   rm   rm     s     &++--r2   c                H    U R                   n[        U   R                  5       $ )z0
index fixture, but excluding MultiIndex cases.
)rz   rb  rc  )r|   r   s     r0   
index_flatre    s!     --C!!##r2   )r   uintfloat)r@  rX  r\  rU  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)rY  rZ  r[  r   r   rZ   N)rb  rz   rc  valuestolistr$   from_tuplesr   )r|   indvalss      r0   index_with_missingrq    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 [        S9SS9$ s  sn f )z;
Fixture for Series of floats with Index of unique strings
   r   g?i_r   rm   r4   )r   rc   arangerJ  r#   r@  r  is    r0   string_seriesry    sQ    
 
		"BJJ'#-uRy1y!r!Xy1@ 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 [        S9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
rs  foo_bar_r   objectsrm   r4   r   )r@  r#   r  r   )rx  datarm   s      r0   object_seriesr    s^    
 !&b	*	1d1#J	D*uRy1y!T!:y1@E$)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   rs  r   r   r   tsru  )r   rc   r  r  r  r   rk   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   r3  F)rm   r4   rc  )lenrc   r  r  r  r   )rm   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  rm   s    r0   series_with_simple_indexr    s    
 %  r2   z-seriesrs  zi-r3  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
Tri  )_index_or_series_objsrz   rc  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
Tri  )_index_or_series_memory_objsrz   rc  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 [        S9[	        [        S5      [        S9S9$ s  sn f )z^
Fixture for DataFrame of ints with index of unique strings

Columns are ['A', 'B', 'C', 'D']
rs  r   r   rs  r{  r   r(  )r   rc   onesrD  r#   r@  r  r  rw  s    r0   	int_framer  G  sW     
rxx(r3AtA3Z36Bd6l&1 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  rs  r{  r   r(  )r   rc   r  r  r  r#   r@  r  rw  s    r0   float_framer  U  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  rZ   r   r  r   rY   r  )r   r   rc   r  r  r  r  )datess    r0   (rand_series_with_duplicate_datetimeindexr  c  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-01r6  )r8  s)unitr8  i  )secondsztimedelta64[ns]c                    U R                   $ r   ry   r{   s    r0   ea_scalar_and_dtyper  {       ==r2   c                    U R                   $ )z<
Fixture for dunder names for common arithmetic operations.
ry   r{   s    r0   all_arithmetic_operatorsr    r~   r2   c                    U R                   $ )zM
Fixture for operator and roperator arithmetic, comparison, and logical ops.
ry   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.
ry   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.
ry   r{   s    r0   all_numeric_reductionsr    r~   r2   allanyc                    U R                   $ )z&
Fixture for boolean reduction names.
ry   r{   s    r0   all_boolean_reductionsr    r~   r2   c                    U R                   $ )z6
Fixture for all (boolean + numeric) reduction names.
ry   r{   s    r0   all_reductionsr    r~   r2   c                    U R                   $ )z3
Fixture for operator module comparison functions.
ry   r{   s    r0   comparison_opr  
  r  r2   )__le____lt____ge____gt__c                    U R                   $ )zU
Fixture for dunder names for compare operations except == and !=

* >=
* >
* <
* <=
ry   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

* |
* &
* ^
ry   r{   s    r0   all_logical_operatorsr  (       ==r2   )cumsumcumprodcummincummaxc                    U R                   $ )z(
Fixture for numeric accumulation names
ry   r{   s    r0   all_numeric_accumulationsr  9  r~   r2   c                $    U R                  S5      $ )zJ
Returns the configuration for the test setting `--no-strict-data-files`.
r*   )rL   )pytestconfigs    r0   strict_data_filesr  D  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
ValueErrorr7   skip)r   r;   	BASE_PATHr  s     r0   decodatapath.<locals>.decoa  sf    ww||I--ww~~d##  *4&0WX  KK/$q12r2   )r  r;   r  dirname__file__)r  r  r  s   ` @r0   datapathr  L  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)hoursrk  r  r'  c                    U R                   $ )z<
Fixture for trying timezones including default (None): {0}
ry   r{   s    r0   tz_naive_fixturer    r   r2   c                    U R                   $ )z,
Fixture for trying explicit timezones: {0}
ry   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.
ry   r{   s    r0   utc_fixturer    r~   r2   )r  msusnsc                    U R                   $ )z
datetime64 units we support.
ry   r{   s    r0   r  r    r~   r2   c                    U R                   $ )z>
Parametrized fixture for string dtypes.

* str
* 'str'
* 'U'
ry   r{   s    r0   string_dtyper         ==r2   pyarrowc                    U R                   $ )zQ
Parametrized fixture for string dtypes.

* 'string[python]'
* 'string[pyarrow]'
ry   r{   s    r0   nullable_string_dtyper         ==r2   pythonpyarrow_numpyc                    U R                   $ )zd
Parametrized fixture for pd.options.mode.string_storage.

* 'python'
* 'pyarrow'
* 'pyarrow_numpy'
ry   r{   s    r0   string_storager    r   r2   numpy_nullablec                    U R                   $ )zR
Parametrized fixture for pd.options.mode.string_storage.

* 'python'
* 'pyarrow'
ry   r{   s    r0   dtype_backendr    r  r2   c                    U R                   $ )z;
Parametrized fixture for bytes dtypes.

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

* object
* 'object'
ry   r{   s    r0   object_dtyper    r  r2   r  zstring[pyarrow_numpy]c                    U R                   $ )z[
Parametrized fixture for string dtypes.
* 'object'
* 'string[python]'
* 'string[pyarrow]'
ry   r{   s    r0   any_string_dtyper    r   r2   c                    U R                   $ )zL
Parametrized fixture for datetime64 dtypes.

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

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

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

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

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

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

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

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

* 'uint8'
* 'uint16'
* 'uint32'
* 'uint64'
ry   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'
ry   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'
ry   r{   s    r0   any_int_ea_dtyper     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'
ry   r{   s    r0   any_int_dtyper"    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'
ry   r{   s    r0   any_numeric_ea_dtyper$    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]'
ry   r{   s    r0   any_numeric_ea_and_arrow_dtyper&    s    @ ==r2   c                    U R                   $ )zf
Parameterized fixture for any signed nullable integer dtype.

* 'Int8'
* 'Int16'
* 'Int32'
* 'Int64'
ry   r{   s    r0   any_signed_int_ea_dtyper(    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'
ry   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.
ry   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'
ry   r{   s    r0   any_numpy_dtyper.  W  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]'
ry   r{   s    r0   any_real_nullable_dtyper0  |  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'
ry   r{   s    r0   any_numeric_dtyper2    s    > ==r2   cmixedbytes   a   crX  zmixed-integerr   g       @floatingg      ?integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r5  20180101r   i  i  complexy      ?      ?y       @       @r   rW  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   )rz   rc   r   r  )r|   inferred_dtyperl  s      r0   any_skipna_inferred_dtyper@    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:)rN   )r7   importorskipIPython.core.interactiveshellrD  traitlets.configrE  HistoryManager	hist_file)rD  rE  r3  s      r0   iprK    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)r7   rF  getattrrz   )r|   sparses     r0   spmatrixrW  #  s(    
   0F6==9455r2   Tickc                    U R                   $ )zF
Fixture for Tick based datetime offsets available for a time series.
ry   r{   s    r0   tick_classesrZ  -  r  r2   c                    U $ r   rk   rs   s    r0   ru   ru   ;  s    r2   c                    U R                   $ )z_
Simple fixture for testing keys in sorting methods.
Tests None (no key) and the identity key.
ry   r{   s    r0   sort_by_keyr]  ;  r   r2   )r  NN)EgonVenkmanN)NCC1701Dr`  r`  c                    U R                   $ )zH
A 3-tuple of names, the first two for operands, the last for a result.
ry   r{   s    r0   r   r   D  s      ==r2   c                    U R                   $ )zA
Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
ry   r{   s    r0   indexer_slirc  W  r~   r2   c                    U R                   $ )z4
Parametrize over loc.__getitem__, iloc.__getitem__
ry   r{   s    r0   
indexer_lire  _  r~   r2   c                    U R                   $ )z0
Parametrize over __setitem__, iloc.__setitem__
ry   r{   s    r0   
indexer_sirg  g  r~   r2   c                    U R                   $ )z/
Parametrize over __setitem__, loc.__setitem__
ry   r{   s    r0   
indexer_slri  o  r~   r2   c                    U R                   $ )z2
Parametrize over at.__setitem__, loc.__setitem__
ry   r{   s    r0   
indexer_alrk  w  r~   r2   c                    U R                   $ )z4
Parametrize over iat.__setitem__, iloc.__setitem__
ry   r{   s    r0   indexer_ialrm    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   rk   r2   r0   using_array_managerrr    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.
Tro  rp  blockrd   optionsmodecopy_on_writer   rk   r2   r0   using_copy_on_writery    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.
warnro  Trp  rt  ru  rk   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)rd   rv  futureinfer_stringrk   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.
ry   r{   s    r0   warsawr    r~   r2   c                     g)N)r  r  rk   rk   r2   r0   arrow_string_storager    s    'r2   r   )r:   zpytest.Itemr;   strr<   r  r   r   )r   z
type[dict])r   ztype[abc.Mapping])r   r$   )r   r   )r   r   )r  r  r   zCallable[..., str])r   r   )r   z#tuple[Hashable, Hashable, Hashable])r   bool)r   r  (@  __doc__
__future__r   collectionsr   r   r   r   r   r	   r:  r
   operatorr  typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyrc   r7   pytzr   r   pandas._config.configr   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasrd   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=   rQ   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr4   rU  tseriesoffsetsclsregister_type_strategybuildsintegersbooleansfixturerf   rl   r}   
axis_framer   r   r   r   r   r   r   r   rz   
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)  r1  r:  r@  rv  r  r  r  from_breakslinspacern  r   r  rb  idxkeysrm   index_fixture2rM   
isinstancere  index_flat2
startswithrq  ry  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extendrr   TIMEZONE_IDSparametrize_fixture_docr  r  r  tz_aware_fixture2_UTCSr  utc_fixture2r  unit2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  COMPLEX_FLOAT_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_REAL_NULLABLE_DTYPESr0  ALL_NUMERIC_DTYPESr2  NAr;  _any_skipna_inferred_dtyperw   _r@  rK  rW  __all__
issubclassrX  rZ  r]  r   setitemlocilocrc  re  rg  ri  atrk  iatrm  rr  ry  r|  r  warsawsr  r  )rx  r   valueindex_idrm   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78'
<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 $DL2$56))"++a#*FG2Y$$S)>	%JK8:!'("))C.8299S>:BIIcN)<299S>006iH
s4AGA3-4<LMI'P 
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''( ) &bmmI.FG YbmmI&>?_BMM),DE YbmmI&>? ! r' ( r''( ) &bmmI.FG,BMM)4LM	 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   ( (A;  K %% HJ 8H 5 =0"`  7(~
 ,Ds   6Ak/ Ak> Al%Al*!Al!Al&
Al&
Al,
3Al,
;Al,
Al,
3Al25(Al=Al8,Al=7 Am3Am_%9Am`"Am`+Amk/Ak;k:Ak;k>AllAll8Al=