
    bMhe                    F5   d Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	 ddl
mZ ddlZddlZddlmZmZ ddlmZmZ ddlZdd	lmZ ddlZddlZdd
lmZmZ ddlmZ ddlm c m!Z" ddl#m$Z$m%Z% ddl&Z'ddl&m(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z6 ddl7m8Z8 ddl9m:Z:m;Z; ddl<m=Z= erddl>m?Z?m@Z@ 	 ddlAZB[BdZCn# eD$ r dZCY nw xY wddlEZE	  eEjF        d           n# eEjG        $ r dZEY nw xY wdWdZHdXdZIdWdZJejK        jL        gZM e=ejN                   e=d          k    reMO                    ejK        jP                   ejQ        R                    d d eSeM          !           ejQ        T                    d            d"U                                D ]VZV eWe'jX        jY        eV          ZZ ej[        eZ ej\        eZ ej]        d#d$           ej^                    %                     Wd&U                                D ]gZV eWe'jX        jY        eV          ZZ ej[        eZ ej\        eZ ej]        d'd(           ej^                     ej]        d)d*+          ,                     hd-U                                D ]gZV eWe'jX        jY        eV          ZZ ej[        eZ ej\        eZ ej]        d.d/           ej^                     ej]        d)d*+          0                     h ej_        d1          dWd2            Z` ej_        d1          dWd3            Za ej_        g d4d5 6          d7             ZbebZc ej_        d)d8gd9 6          d:             Zd ej_        g d;<          d=             Ze ej_        g d;<          d>             Zf ej_        ddg<          d?             Zg ej_        g d@<          dA             Zh ej_        g dB<          dC             Zi ej_        g dD<          dE             Zj ej_        g dD<          dF             Zk ej_        ddGdHdIdJdK ejl        dL e"jm        dM          N          g<          dO             Zn ej_        dGdHdIdJdK ejl        dL e"jm        dM          N          g<          dP             Zo ej_        ddg<          dQ             Zp ej_        g dR<          dS             Zq ej_        dTdUg<          dV             Zr ej_        e6js        dW 6          dX             ZtetZu ej_        dejv        e'jw        g<          dY             ZxexZy ej_        e6jz        dZ 6          d[             Z{e{Z| ej_        e)e.g<          d\             Z} ej_        e:e.gd]d^g6          d_             Z~e~Z ej_        e:e.e'j        gg d`6          da             Z ej_        e:e.e)e'j        gdb 6          dc             ZeZej_        dYde            Zej_        dZdg            Zej_        dh             Zej_        d[dj            Zej_        d\dl            Zdm Zdn Zi do e:dp  edq          D             er          ds e:dt  edq          D             dr          du e1dvdqw          dx e1dvdqdyz          d{ e2dvdqd|}          d~ e3ddqd|          d e-dq          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          i d e:ddgd(z  er          d e:ddgd(z  er          d e: ej        dqdr          d ej        dqdr          z  z             d e: ej        dqdr          d ej        dqdr          z  z             d e( ed          dz            d e+j         ej        ddqd                    d e:g           d e;j         eg dg d                    d e            d e            d e:g d          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq          dr          d e: ej        dq                              e          dr          d e: e'j        d  edq          D             dr                    ZeCr3 e: e'j        d  edq          D             dr                    Zeed<    ej_        e                                <          d             ZeZ ej_        d e                                D             <          d             ZeZ ej_        d e                                D             <          d             Zej_        d]d            Zej_        d]d            Zej_        d]d            Zd Zd e                                D             Zej_        d]d            Zd e6j        D             Zi eeeZ ej_        e                                <          d             Zd e6j        D             Zi eeeeZ ej_        e                                <          d             Zej_        d\d            Zej_        d\d            Zej_        d]d            Z ej_         e*dd(           e%dd          f e*ddì           e%dd          f e,ddŬƦ          df e,dd|Ʀ          df e0ddˬ̦           e$ddˬΦ          f e/dϬЦ          dfg<          d҄             Z ej_        e6j        <          dӄ             Z ej_        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        ej        ej        ej        ej        ej        ej        e8j        ej        e8j        ej        e8j        g<          dԄ             Z ej_        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        ej        e8j        g<          dՄ             Zg d֢Z ej_        eά<          dׄ             ZddgZ ej_        eЬ<          dڄ             Zeez   Z ej_        eҬ<          dۄ             Z ej_        ej        ej        ej        ej        ej        ej        g<          d܄             Z ej_        g dݢ<          dބ             Z ej_        g dߢ<          d             Zg dZ ej_        e׬<          d             Zej_        d             Zej_        d^d            Zdddddddddd e             e             ed           ed           ed          e	j         e	 ed)                     e	 ed          d          gZeE3e۠                     eEjF        dy           eEjF        d          g           d eD             Z e"j         eeݦ                     ej_        eeݬ6          d                         Z e"j         eed)d                              ej_        ed)d         ed)d         6          d                         ZeZdde e            e	j        gZeE#eO                     eEjF        d                      ej_        e<          d             ZeZ ej_        g d<          d             ZeZ ej_        e6j        <          d             Z ej_        de'j        f ejl        de'j        f e"jm        d          N           ejl        dejv        f e"jm        d          N          dejv        fgg d6          d              Z ej_        d ejl        d e"jm        d          N          g<          d             Z ej_         ejl        dejv        f e"jm        d          N           ejl        de'j        f e"jm        d          N          g<          d             Z ej_        d ejl        d e"jm        d          N          g<          d             Z ej_        de'j        f ejl        de'j        f e"jm        d          N           ejl        dejv        f e"jm        d          N          dejv        fgg d6          d             Z ej_        d ejl        d e"jm        d          N          g<          d             ZeZeZ ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_         ej        do          de'j        f ejl        de'j        f e"jm        d          N           ejl        dejv        f e"jm        d          N          dejv        fgg d	6          d
             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Zej_        d_d            Z ej_        e6j        <          d             Z ej_        e6j         <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z	 ej_        e6j
        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        e6j         z   <          d             Z ej_        e6j        e6j         z   e6j        z   e6j        z   <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        e6j         <          d              Z!dsd!ejv        d"gfdsd!e'j        d"gfd#d!e'jw        d"gfd$d%ejv        d&gfdejv        ejv        ejv        gfdg fd'd!ejv        d(gfd#d!ejv        d)gfd*d+ejv        d)gfd,d)ejv        d(gfd-d)ejv        d)gfd. ed)          ejv         ed(          gfddejv        dgfdde'j        dgfd/ ej"        d0          ejv         ej"        d1          gfdu e0d2          ejv         e0d3          gfd4 ed5d)d)          ejv         ed6d)d)          gfd7d8ejv        d9gfd~ ed)          ejv         ed(          gfd: ed)          ejv         ed(          gfd{ e,d5          e'jw         e,d6          gfd e*dd)          ejv         e*dd(          gfgZ# ee# \  Z$Z% ej_        e#e$6          d;             Z&ej_        d<             Z' ej_        g d=<          d>             Z( ej_        d? e'jY        j)        D             <          d@             Z* ej_        ddA g<          dB             Z+ ej_        dCdDdEejv        ejv        ejv        fejv        e'jw        dfejv        e'j        dfe'j        e'j        e'j        fg<          d`dG            Z, ej_        e6j-        e6j.        e6j/        g<          dH             Z0 ej_        e6j.        e6j/        g<          dI             Z1 ej_        e6j-        e6j/        g<          dJ             Z2 ej_        e6j-        e6j.        g<          dK             Z3 ej_        e6j4        e6j.        g<          dL             Z5 ej_        e6j6        e6j/        g<          dM             Z7ej_        dadO            Z8ej_        dadP            Z9ej_        dadQ            Z:ej_        dadR            Z;dSdTgZ<eE%e<O                     eEjF        dS                      ej_        e<<          dbdU            Z= ej_                    dV             Z>dS (c  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UTCreturnNonec                6    |                      ddd           d S )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/test/jupyter/venv/lib/python3.11/site-packages/pandas/conftest.pypytest_addoptionr3   o   s2    
 E          itempytest.Itempathstrmessagec                    | j                             |          r7|                     t          j                            d|                      dS dS )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)r5   r7   r9   s      r2   ignore_doctest_warningrA   w   sZ     y$ I223FW3F3FGGHHHHHI Ir4   c                    |                     d          p|                     dd          }g d}|r| D ]}|D ]\  }}t          |||           d S d S )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)rK   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.idxminrL   )zSeriesGroupBy.idxmaxrM   )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)rJ   z3DataFrameGroupBy.fillna with 'method' is deprecated)rJ   z,DataFrame.fillna with 'method' is deprecated)read_parquetz1Passing a BlockManager to DataFrame is deprecated)	getoptionrA   )itemsconfig
is_doctestignored_doctest_warningsr5   r7   r9   s          r2   pytest_collection_modifyitemsrU      s    !!"566 &:J:JE ;K ; ;J-  -  - ^  < 	< 	<D!9 < <g&tT7;;;;<< <	< 	<r4   z6.83.2ci)deadlinesuppress_health_checkz)MonthBegin MonthEnd BMonthBegin BMonthEndic   )n	normalizez%YearBegin YearEnd BYearBegin BYearEnd         )	min_value	max_value)rZ   r[   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rZ   r[   startingMonth)autousec                .    t           | d<   t          | d<   dS )z:
    Make `np` and `pd` names available for doctests.
    nppdN)rg   rh   )doctest_namespaces    r2   add_doctest_importsrj      s     
 !d dr4   c                 0    t          j        dd           dS )z<
    Configure settings for all tests and test modules.
    chained_assignmentraiseN)rh   
set_option r4   r2   configure_testsrp   	  s    
 M&00000r4   )r   r^   indexcolumnsc                &    dt          |            S Nzaxis=reprxs    r2   <lambda>ry     s    ARaARAR r4   )paramsidsc                    | j         S )z@
    Fixture for returning the axis numbers of a DataFrame.
    paramrequests    r2   axisr         
 =r4   rr   c                &    dt          |            S rt   ru   rw   s    r2   ry   ry     s    5FT!WW5F5F r4   c                    | j         S )zA
    Fixture for returning aliases of axis 1 of a DataFrame.
    r}   r   s    r2   axis_1r     r   r4   )TFN)rz   c                    | j         S )a  
    Pass in the observed keyword to groupby for [True, False]
    This indicates whether categoricals should return values for
    values which are not in the grouper [False / None], or only values which
    appear in the grouper [True]. [None] is supported for future compatibility
    if we decide to change the default (and would need to warn if this
    parameter is not passed).
    r}   r   s    r2   observedr   '       =r4   c                    | j         S )z6
    Boolean 'ordered' parameter for Categorical.
    r}   r   s    r2   orderedr   4  r   r4   c                    | j         S )z%
    Boolean 'skipna' parameter.
    r}   r   s    r2   skipnar   <  r   r4   )firstlastFc                    | j         S )z[
    Valid values for the 'keep' parameter used in
    .duplicated or .drop_duplicates
    r}   r   s    r2   keepr   D       =r4   )bothneitherleftrightc                    | j         S )zA
    Fixture for trying all interval 'inclusive' parameters.
    r}   r   s    r2   inclusive_endpoints_fixturer   M  r   r4   )r   r   r   r   c                    | j         S )z<
    Fixture for trying all interval closed parameters.
    r}   r   s    r2   closedr   U  r   r4   c                    | j         S )zS
    Secondary closed fixture to allow parametrizing over all pairs of closed.
    r}   r   s    r2   other_closedr   ]  r   r4   gzipbz2zipxztarzstd	zstandard)marksc                    | j         S )zK
    Fixture for trying common compression types in compression tests.
    r}   r   s    r2   compressionr   e       =r4   c                    | j         S )zk
    Fixture for trying common compression types in compression tests excluding
    uncompressed case.
    r}   r   s    r2   compression_onlyr   w  r   r4   c                    | j         S )z,
    Fixture that an array is writable.
    r}   r   s    r2   writabler     r   r4   )innerouterr   r   c                    | j         S )z:
    Fixture for trying all types of join operations.
    r}   r   s    r2   	join_typer     r   r4   nlargest	nsmallestc                    | j         S )z1
    Fixture for trying all nselect methods.
    r}   r   s    r2   nselect_methodr     r   r4   c                *    t          |           j        S Ntype__name__rw   s    r2   ry   ry     s    d1gg6F r4   c                    | j         S )z/
    Fixture for each null type in pandas.
    r}   r   s    r2   nulls_fixturer     r   r4   c                    | j         S )zL
    Fixture for each null type in pandas, each null type exactly once.
    r}   r   s    r2   unique_nulls_fixturer     r   r4   c                *    t          |           j        S r   r   rw   s    r2   ry   ry     s    Q8H r4   c                    | j         S )z-
    Fixture for each NaT type in numpy.
    r}   r   s    r2   np_nat_fixturer     r   r4   c                    | j         S )z;
    Fixture to parametrize over DataFrame and Series.
    r}   r   s    r2   frame_or_seriesr     r   r4   rq   seriesc                    | j         S )z
    Fixture to parametrize over Index and Series, made necessary by a mypy
    bug, giving an error:

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

    See GH#29725
    r}   r   s    r2   index_or_seriesr     r   r4   )rq   r   arrayc                    | j         S )zG
    Fixture to parametrize over Index, Series, and ExtensionArray
    r}   r   s    r2   index_or_series_or_arrayr     r   r4   c                    | j         S r   )r   rw   s    r2   ry   ry     s    1: r4   c                    | j         S )z]
    Fixture to test behavior for Index, Series, DataFrame, and pandas Array
    classes
    r}   r   s    r2   box_with_arrayr     r   r4   
type[dict]c                 ,     G d dt                     } | S )z,
    Fixture for a dictionary subclass.
    c                      e Zd ZddZdS )"dict_subclass.<locals>.TestSubDictr)   r*   c                0    t          j        | g|R i | d S r   )dict__init__)selfargskwargss      r2   r   z+dict_subclass.<locals>.TestSubDict.__init__   s(    M$000000000r4   Nr)   r*   )r   
__module____qualname__r   ro   r4   r2   TestSubDictr     s(        	1 	1 	1 	1 	1 	1r4   r   )r   )r   s    r2   dict_subclassr     s4    1 1 1 1 1d 1 1 1 r4   type[abc.Mapping]c                 6     G d dt           j                  } | S )z8
    Fixture for a non-mapping dictionary subclass.
    c                  ,    e Zd Zd
dZd ZddZddZd	S )5non_dict_mapping_subclass.<locals>.TestNonDictMappingr)   r*   c                    || _         d S r   )_data)r   underlying_dicts     r2   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__init__  s    (DJJJr4   c                6    | j                             |          S r   )r   __getitem__)r   keys     r2   r   zAnon_dict_mapping_subclass.<locals>.TestNonDictMapping.__getitem__  s    :))#...r4   r'   c                4    | j                                         S r   )r   __iter__r   s    r2   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__iter__  s    :&&(((r4   intc                4    | j                                         S r   )r   __len__r   s    r2   r   z=non_dict_mapping_subclass.<locals>.TestNonDictMapping.__len__  s    :%%'''r4   Nr   )r)   r'   )r)   r   )r   r   r   r   r   r   r   ro   r4   r2   TestNonDictMappingr     s_        	) 	) 	) 	)	/ 	/ 	/	) 	) 	) 	)	( 	( 	( 	( 	( 	(r4   r   )r   Mapping)r   s    r2   non_dict_mapping_subclassr     s6    ( ( ( ( (S[ ( ( ( r4   c            	        t          t          j                            d                              d          t          t          d                    t          ddd                    } |                     d	 d
 d g          	                                }|j
                            d |j
        j        D                       |_
        |j
                            g dd           |S )z
    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)rr   rq   c                    | j         S r   )yearrw   s    r2   ry   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s     r4   c                    | j         S r   )rb   rw   s    r2   ry   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s    17 r4   c                    | j         S r   )dayrw   s    r2   ry   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s    ae r4   c                8    g | ]}|                     d           S )i8)astype).0levs     r2   
<listcomp>zCmultiindex_year_month_day_dataframe_random_data.<locals>.<listcomp>,  s$    %S%S%S3cjj&6&6%S%S%Sr4   )r   rb   r   T)inplace)r   rg   randomdefault_rngstandard_normalr#   listr   groupbysumrq   
set_levelslevels	set_names)tdfymds     r2   /multiindex_year_month_day_dataframe_random_datar    s     
	a  00::d6ll##s===  C
 ++''):):OOL
M
M
Q
Q
S
SC	$$%S%S#)BR%S%S%STTCII000$???Jr4   r$   c                 B    t          g dg dgg dg dgddg          S )z;
    2-level MultiIndex, lexsorted, with string names.
    foobarbazquxonetwothree)
r   r   r   r^   r^   r   r      r  r  )
r   r^   r   r   r^   r^   r   r   r^   r   r   second)r	  codesnames)r$   ro   r4   r2   %lexsorted_two_level_string_multiindexr  1  sM    
 ,,,.E.E.EF---/M/M/MN!   r4   r   c                    | }t          t          j                            d                              d          |t          g dd                    S )z2DataFrame with 2 level MultiIndex with random datar   )
   r  )Ar   Cexpr;   rq   rr   )r   rg   r  r  r  r#   )r  rq   s     r2    multiindex_dataframe_random_datar$  =  sX    
 2E
	a  0099oooE222   r4   c                     t          g d          } t          ddg          }t          j        g d          }t          j        g d          }ddg}t          | |g||g|d	          S )
zJ
    MultiIndex used to test the general functionality of this object
    r  r  r  )r   r   r^   r   r  r  )r   r^   r   r^   r   r^   r   r  F)r	  r  r  verify_integrity)r#   rg   r   r$   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r2   _create_multiindexr,  J  s     33344Ju~&&J(---..K(---..KH%KJ'K(	   r4   c            	     `    t          j        ddgddgt          ddd          gg d	
          S )zB
    MultiIndex with a level that is a tzaware DatetimeIndex.
    r^   r   ab20130101r  
US/Easternr   tzr  )r  )r$   from_productr   ro   r4   r2   _create_mi_with_dt64tz_levelr5  ^  sH    
 "
Q#sZ
A,OOOP%%%   r4   objectc                    g | ]}d | S pandas_ro   r   is     r2   r   r   j      777q]q]]777r4   r   dtypestringc                    g | ]}d | S r8  ro   r:  s     r2   r   r   k  r<  r4   r   z
2020-01-01)r   zdatetime-tzz
US/Pacificr2  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-pythonc                    g | ]}d | S r8  ro   r:  s     r2   r   r     s    444A-A--444r4   zstring[python]c                    g | ]}d | S r8  ro   r:  s     r2   r   r     s    <<<A-A--<<<r4   zstring[pyarrow]zstring-pyarrowc                J    t           | j                                                 S )z
    Fixture for many "simple" kinds of indices.

    These indices are unlikely to cover corner cases, e.g.
        - no names
        - no NaTs/NaNs
        - no values near implementation bounds
        - ...
    )indices_dictr~   copyr   s    r2   rq   rq     s     &++---r4   c                B    g | ]\  }}t          |t                    |S ro   )
isinstancer$   r   r   values      r2   r   r     s;       U*UJ:W:W  r4   c                N    | j         }t          |                                         S )z8
    index fixture, but excluding MultiIndex cases.
    )r~   rh  ri  )r   r   s     r2   
index_flatro    s"     -C!!###r4   c                t    g | ]5\  }}|                     d           s|dv t          |t                    3|6S ))r   uintfloat)rD  rX  r\  rO  )
startswithrk  r$   rl  s      r2   r   r     s_       CNN344	
 AAA5*-- B	 	 BAAr4   c                ~   t           | j                                     d          }|j                                        }| j        dv rT|                                }d|d         dd         z   |d<   d|d         dd         z   |d<   t          j        |          S d|d<   d|d<    t          |          |          S )	z
    Fixture for indices with missing values.

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

    MultiIndex is excluded because isna() is not defined for MultiIndex.
    Tdeep)rY  rZ  r[  r   r   r^   N)rh  r~   ri  valuestolistr$   from_tuplesr   )r   indvalss      r2   index_with_missingr}    s    . w}
%
*
*
*
5
5C:??D}CCCzz||DGABBK'QT"Xabb\)R%d+++QRtCyyr4   r   c            	         t          t          j        dt          j                  dz  t	          d t          d          D                       d          S )zC
    Fixture for Series of floats with Index of unique strings
       r=  g?c                    g | ]}d | S )i_ro   r:  s     r2   r   z!string_series.<locals>.<listcomp>  s    111!X!XX111r4   r   rq   r;   )r   rg   arangerN  r#   rD  ro   r4   r2   string_seriesr    sW    
 
	"BJ'''#-11uRyy11122   r4   c                     d t          d          D             } t          d t          d          D                       }t          | |dt                    S )zI
    Fixture for Series of dtype object with Index of unique strings
    c                    g | ]}d | S foo_ro   r:  s     r2   r   z!object_series.<locals>.<listcomp>  s    ***1J1JJ***r4   r  c                    g | ]}d | S )bar_ro   r:  s     r2   r   z!object_series.<locals>.<listcomp>  s    111!:!::111r4   objectsrq   r;   r>  )rD  r#   r   r6  )datarq   s     r2   object_seriesr    sV    
 +*b		***D11uRyy11122E$e)6BBBBr4   c                     t          t          j                            d                              d          t          ddd          d          S )z9
    Fixture for Series of floats with DatetimeIndex
    r   r  r   r   r   tsr  )r   rg   r  r  r  r   ro   r4   r2   datetime_seriesr    sQ    
 
	a  0044r<<<   r4   c                    t          |           }t          j                            d                              |          }t          || dd          S )zHelper for the _series dictr   r.  F)rq   r;   ri  )lenrg   r  r  r  r   )rq   sizer  s      r2   _create_seriesr    sG    u::D9  ##33D99D$e#E::::r4   c                <    i | ]\  }}d | dt          |          S )zseries-with-z-indexr  )r   index_idrq   s      r2   
<dictcomp>r    sA       % $8###^E%:%:  r4   c                     t          |           S )zE
    Fixture for tests on series with changing types of indices.
    r  rq   s    r2   series_with_simple_indexr    s    
 %   r4   c           
         i | ]B}|j          d t          t          d          d t          d          D             d|          CS )-seriesr  c                    g | ]}d | S )zi-ro   r:  s     r2   r   z<dictcomp>.<listcomp>  s    666q(q((666r4   r.  r  )r   r   rD  r   r>  s     r2   r  r    sj        	 ~b		66E"II666S! ! !  r4   c                N    t           | j                                     d          S )z|
    Fixture for tests on indexes, series and series with a narrow dtype
    copy to avoid mutation, e.g. setting .name
    Tru  )_index_or_series_objsr~   ri  r   s    r2   index_or_series_objr  %  s"     !/44$4???r4   c                >    i | ]}|j          d t          |          S )r  )r   r   r  s     r2   r  r  .  s8       27u~u  r4   c                N    t           | j                                     d          S )z
    Fixture for tests on indexes, series, series with a narrow dtype and
    series with empty objects type
    copy to avoid mutation, e.g. setting .name
    Tru  )_index_or_series_memory_objsr~   ri  r   s    r2   index_or_series_memory_objr  ;  s"     (6;;;FFFr4   c            	         t          t          j        dt          j                  t	          d t          d          D                       t	          t          d                              S )zj
    Fixture for DataFrame of ints with index of unique strings

    Columns are ['A', 'B', 'C', 'D']
    r  r   r=  c                    g | ]}d | S r  ro   r:  s     r2   r   zint_frame.<locals>.<listcomp>Q      333AZAZZ333r4   r  r   r#  )r   rg   onesrH  r#   rD  r  ro   r4   r2   	int_framer  H  s`     
rx(((33r33344d6ll##   r4   c            	        t          t          j                            d                              d          t          d t          d          D                       t          t          d                              S )zm
    Fixture for DataFrame of floats with index of unique strings

    Columns are ['A', 'B', 'C', 'D'].
    r   r  c                    g | ]}d | S r  ro   r:  s     r2   r   zfloat_frame.<locals>.<listcomp>_  r  r4   r  r   r#  )r   rg   r  r  r  r#   rD  r  ro   r4   r2   float_framer  V  sm     
	a  009933r33344d6ll##   r4   c                    t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          t          ddd          g
} t          t          j                            d                              t          |                     |           S )zF
    Fixture for Series with a DatetimeIndex that has duplicates.
    i  r^   r   r  r   r]   r  )r   r   rg   r  r  r  r  )datess    r2   (rand_series_with_duplicate_datetimeindexr  d  s     	q!q!q!q!q!q!q!q!q!q!E ")''**::3u::FFeTTTTr4   )r   r   r   g?g      ?z2012-01M)r   z	period[M]z
2012-02-01z	period[D]z
2011-01-01r1  )r3  s)unitr3  i  )secondsztimedelta64[ns]c                    | j         S r   r}   r   s    r2   ea_scalar_and_dtyper  |       =r4   c                    | j         S )zD
    Fixture for dunder names for common arithmetic operations.
    r}   r   s    r2   all_arithmetic_operatorsr    r   r4   c                    | j         S )zU
    Fixture for operator and roperator arithmetic, comparison, and logical ops.
    r}   r   s    r2   all_binary_operatorsr        D =r4   c                    | j         S )z
    Fixture for operator and roperator arithmetic functions.

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

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

    * |
    * &
    * ^
    r}   r   s    r2   all_logical_operatorsr  )       =r4   )cumsumcumprodcummincummaxc                    | j         S )z0
    Fixture for numeric accumulation names
    r}   r   s    r2   all_numeric_accumulationsr  :  r   r4   c                ,    |                      d          S )zR
    Returns the configuration for the test setting `--no-strict-data-files`.
    r,   )rP   )pytestconfigs    r2   strict_data_filesr  E  s    
 !!":;;;r4   r  Callable[..., str]c                     t           j                            t           j                            t                    d           fd}|S )aD  
    Get the path to a data file.

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

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

    Raises
    ------
    ValueError
        If the path doesn't exist and the --no-strict-data-files option is not set.
    testsc                     t          j        j        g| R  }t           j                            |          s-rt	          d| d          t          j        d| d           |S )NzCould not find file z' and --no-strict-data-files is not set.zCould not find .)osr7   joinexists
ValueErrorr>   skip)r   r7   	BASE_PATHr  s     r2   decozdatapath.<locals>.decob  s}    w|I----w~~d## 	3   X4XXX   K1$111222r4   )r  r7   r  dirname__file__)r  r  r  s   ` @r2   datapathr  M  sN    & RW__X66@@I      Kr4   z
Asia/Tokyozdateutil/US/Pacificzdateutil/Asia/Singaporez+01:15z-02:15z	UTC+01:15z	UTC-02:15i,  i)hoursrw  r  r"  c                ,    g | ]}t          |          S ro   ru   r:  s     r2   r   r     s    +++AQ+++r4   c                    | j         S )zD
    Fixture for trying timezones including default (None): {0}
    r}   r   s    r2   tz_naive_fixturer    r   r4   c                    | j         S )z4
    Fixture for trying explicit timezones: {0}
    r}   r   s    r2   tz_aware_fixturer    r   r4   r   zdateutil/UTCc                    | j         S )zQ
    Fixture to provide variants of UTC timezone strings and tzinfo objects.
    r}   r   s    r2   utc_fixturer    r   r4   )r  msusnsc                    | j         S )z&
    datetime64 units we support.
    r}   r   s    r2   r  r    r   r4   c                    | j         S )zR
    Parametrized fixture for string dtypes.

    * str
    * 'str'
    * 'U'
    r}   r   s    r2   string_dtyper         =r4   pythonpyarrow)string=string[python]string=string[pyarrow]string=str[pyarrow]string=str[python]c                @    | j         \  }}t          j        ||          S )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~   rh   StringDtyper   storagena_values      r2   string_dtype_no_objectr    s"    0  GX>'8,,,r4   c                    | j         S )za
    Parametrized fixture for string dtypes.

    * 'string[python]'
    * 'string[pyarrow]'
    r}   r   s    r2   nullable_string_dtyper         =r4   c                (    t          j        | j         S )zq
    Parametrized fixture for string dtypes backed by Pyarrow.

    * 'str[pyarrow]'
    * 'string[pyarrow]'
    )rh   r  r~   r   s    r2   pyarrow_string_dtyper    s     >7=))r4   c                    | j         S zb
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    r}   r   s    r2   string_storager     r  r4   c                    | j         S )z
    Parametrized fixture for StringDtype storage and na_value.

    * 'python' + pd.NA
    * 'pyarrow' + pd.NA
    * 'pyarrow' + np.nan
    r}   r   s    r2   string_dtype_argumentsr"    s    , =r4   numpy_nullablec                    | j         S r  r}   r   s    r2   dtype_backendr%  5  r  r4   c                    | j         S )zK
    Parametrized fixture for bytes dtypes.

    * bytes
    * 'bytes'
    r}   r   s    r2   bytes_dtyper'  J       =r4   c                    | j         S )zN
    Parametrized fixture for object dtypes.

    * object
    * 'object'
    r}   r   s    r2   object_dtyper*  U  r(  r4   )zstring=objectr  r  r  r  c                    t          | j        t          j                  r| j        S | j        \  }}t	          j        ||          S )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)
    )rk  r~   rg   r>  rh   r  r  s      r2   any_string_dtyper,  `  sB    2 '-** 1} $M~gx000r4   c                    | j         S )z\
    Parametrized fixture for datetime64 dtypes.

    * 'datetime64[ns]'
    * 'M8[ns]'
    r}   r   s    r2   datetime64_dtyper.    r(  r4   c                    | j         S )z^
    Parametrized fixture for timedelta64 dtypes.

    * 'timedelta64[ns]'
    * 'm8[ns]'
    r}   r   s    r2   timedelta64_dtyper0    r(  r4   r   c            	     .    t          ddddddd          S )z-
    Fixture emits fixed Timestamp.now()
    i  r^   r_   r         )r   rb   r   hourminuter  microsecond)r   ro   r4   r2   fixed_now_tsr7    s*    
 1RR   r4   c                    | j         S )z^
    Parameterized fixture for float dtypes.

    * float
    * 'float32'
    * 'float64'
    r}   r   s    r2   float_numpy_dtyper9    r  r4   c                    | j         S )zR
    Parameterized fixture for float dtypes.

    * 'Float32'
    * 'Float64'
    r}   r   s    r2   float_ea_dtyper;    r(  r4   c                    | j         S )z~
    Parameterized fixture for float dtypes.

    * float
    * 'float32'
    * 'float64'
    * 'Float32'
    * 'Float64'
    r}   r   s    r2   any_float_dtyper=    r  r4   c                    | j         S )zg
    Parameterized fixture for complex dtypes.

    * complex
    * 'complex64'
    * 'complex128'
    r}   r   s    r2   complex_dtyper?    r  r4   c                    | j         S )z
    Parameterized fixture for complex and numpy float dtypes.

    * complex
    * 'complex64'
    * 'complex128'
    * float
    * 'float32'
    * 'float64'
    r}   r   s    r2   complex_or_float_dtyperA    s     =r4   c                    | j         S )z|
    Parameterized fixture for signed integer dtypes.

    * int
    * 'int8'
    * 'int16'
    * 'int32'
    * 'int64'
    r}   r   s    r2   any_signed_int_numpy_dtyperC    r  r4   c                    | j         S )zx
    Parameterized fixture for unsigned integer dtypes.

    * 'uint8'
    * 'uint16'
    * 'uint32'
    * 'uint64'
    r}   r   s    r2   any_unsigned_int_numpy_dtyperE    r   r4   c                    | j         S )z
    Parameterized fixture for any integer dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    r}   r   s    r2   any_int_numpy_dtyperG    r   r4   c                    | j         S )z
    Parameterized fixture for any nullable integer dtype.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    r}   r   s    r2   any_int_ea_dtyperI    r  r4   c                    | j         S )a.  
    Parameterized fixture for any nullable integer dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    r}   r   s    r2   any_int_dtyperK     s    . =r4   c                    | j         S )z
    Parameterized fixture for any nullable integer dtype and
    any float ea dtypes.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    r}   r   s    r2   any_numeric_ea_dtyperM  :  s    " =r4   c                    | j         S )a  
    Parameterized fixture for any nullable integer dtype and
    any float ea dtypes.

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    * 'uint8[pyarrow]'
    * 'int8[pyarrow]'
    * 'uint16[pyarrow]'
    * 'int16[pyarrow]'
    * 'uint32[pyarrow]'
    * 'int32[pyarrow]'
    * 'uint64[pyarrow]'
    * 'int64[pyarrow]'
    * 'float32[pyarrow]'
    * 'float64[pyarrow]'
    r}   r   s    r2   any_numeric_ea_and_arrow_dtyperO  P  s    @ =r4   c                    | j         S )z~
    Parameterized fixture for any signed nullable integer dtype.

    * 'Int8'
    * 'Int16'
    * 'Int32'
    * 'Int64'
    r}   r   s    r2   any_signed_int_ea_dtyperQ  s  r   r4   c                    | j         S )z
    Parameterized fixture for any (purely) real numeric dtype.

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    r}   r   s    r2   any_real_numpy_dtyperS    s    $ =r4   c                    | j         S )a  
    Parameterized fixture for any (purely) real numeric dtype.

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

    and associated ea dtypes.
    r}   r   s    r2   any_real_numeric_dtyperU    s    ( =r4   c                    | j         S )a  
    Parameterized fixture for all numpy dtypes.

    * bool
    * 'bool'
    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    * complex
    * 'complex64'
    * 'complex128'
    * str
    * 'str'
    * 'U'
    * bytes
    * 'bytes'
    * 'datetime64[ns]'
    * 'M8[ns]'
    * 'timedelta64[ns]'
    * 'm8[ns]'
    * object
    * 'object'
    r}   r   s    r2   any_numpy_dtyperW    r  r4   c                    | j         S )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]'
    r}   r   s    r2   any_real_nullable_dtyperY    s    : =r4   c                    | j         S )a  
    Parameterized fixture for all numeric dtypes.

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

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

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

    Examples
    --------
    >>> from pandas._libs import lib
    >>>
    >>> def test_something(any_skipna_inferred_dtype):
    ...     inferred_dtype, values = any_skipna_inferred_dtype
    ...     # will pass
    ...     assert lib.infer_dtype(values, skipna=True) == inferred_dtype
    r=  )r~   rg   r   r6  )r   inferred_dtyperx  s      r2   any_skipna_inferred_dtyperi  2  s2    R %]NFXfF+++F 6!!r4   c                     t          j        dd           ddlm}  ddlm}  |            }d|j        _         | |          S )	zj
    Get an instance of IPython.InteractiveShell.

    Will raise a skip if IPython is not installed.
    IPythonz6.0.0)
minversionr   )InteractiveShell)Configz:memory:)rR   )r>   importorskipIPython.core.interactiveshellrm  traitlets.configrn  HistoryManager	hist_file)rm  rn  r\  s      r2   iprt  e  sj     	g6666>>>>>> ('''''A!+A1%%%%r4   )bsrcoocsccsrdiadoklilc                Z    t          j        d          }t          || j        dz             S )z-
    Yields scipy sparse matrix classes.
    zscipy.sparse_matrix)r>   ro  getattrr~   )r   sparses     r2   spmatrixr  x  s+    
  00F67=94555r4   c                    g | ]Y}t          t          t          j        |          t          j        j                  r |d k    ?t          t          j        |          ZS )Tick)
issubclassr~  rh   offsetsr  )r   os     r2   r   r     s[       gbj!,,bjo>> DE;; 	
ACN;;r4   c                    | j         S )zN
    Fixture for Tick based datetime offsets available for a time series.
    r}   r   s    r2   tick_classesr    r  r4   c                    | S r   ro   rw   s    r2   ry   ry     s     r4   c                    | j         S )zk
    Simple fixture for testing keys in sorting methods.
    Tests None (no key) and the identity key.
    r}   r   s    r2   sort_by_keyr    r   r4   )r  NN)EgonVenkmanN)NCC1701Dr  r  #tuple[Hashable, Hashable, Hashable]c                    | j         S )zP
    A 3-tuple of names, the first two for operands, the last for a result.
    r}   r   s    r2   r  r    s      =r4   c                    | j         S )zI
    Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
    r}   r   s    r2   indexer_slir    r   r4   c                    | j         S )z<
    Parametrize over loc.__getitem__, iloc.__getitem__
    r}   r   s    r2   
indexer_lir    r   r4   c                    | j         S )z8
    Parametrize over __setitem__, iloc.__setitem__
    r}   r   s    r2   
indexer_sir    r   r4   c                    | j         S )z7
    Parametrize over __setitem__, loc.__setitem__
    r}   r   s    r2   
indexer_slr    r   r4   c                    | j         S )z:
    Parametrize over at.__setitem__, loc.__setitem__
    r}   r   s    r2   
indexer_alr    r   r4   c                    | j         S )z<
    Parametrize over iat.__setitem__, iloc.__setitem__
    r}   r   s    r2   indexer_ialr    r   r4   boolc                 ,    t          dd          dk    S )z>
    Fixture to check if the array manager is being used.
    mode.data_managerTsilentr   r   ro   r4   r2   using_array_managerr    s    
 *4888GCCr4   c                 \    t           j        j        j        du ot	          dd          dk    S )z7
    Fixture to check if Copy-on-Write is enabled.
    Tr  r  blockrh   optionsmodecopy_on_writer   ro   r4   r2   using_copy_on_writer    s4     	
%- 	E+D999WDr4   c                 `    t           j        j        j        dk    ot	          dd          dk    S )z?
    Fixture to check if Copy-on-Write is in warning mode.
    warnr  Tr  r  r  ro   r4   r2   warn_copy_on_writer    s4     	
%/ 	E+D999WDr4   c                 2    t           j        j        j        du S )z=
    Fixture to check if infer string option is enabled.
    T)rh   r  futureinfer_stringro   r4   r2   using_infer_stringr    s    
 :)T11r4   zEurope/Warsawzdateutil/Europe/Warsawc                    | j         S )zE
    tzinfo for Europe/Warsaw using pytz, dateutil, or zoneinfo.
    r}   r   s    r2   warsawr    r   r4   c                     dS )N)r  pyarrow_numpyro   ro   r4   r2   arrow_string_storager    s    ''r4   r   )r5   r6   r7   r8   r9   r8   r)   r*   )r)   r   )r)   r   )r)   r$   )r)   r   )r)   r   )r  r8   r)   r  )r)   r   )r)   r  )r)   r  )r)   r8   (?  __doc__
__future__r   collectionsr   r   r   r   r   r	   rc  r
   operatorr  typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyrg   r>   pytzr   r   pandas._config.configr   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasrh   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ZoneInfoNotFoundErrorr3   rA   rU   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr;   r~  tseriesr  clsregister_type_strategybuildsintegersbooleansfixturerj   rp   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,  r5  rD  r6  r  r  r  from_breakslinspacerz  r   r   rh  idxkeysrq   index_fixture2rQ   ro  index_flat2r}  r  r  r  r  _seriesr  NARROW_NP_DTYPES_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extendTIMEZONE_IDSparametrize_fixture_docr8   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_DTYPESr0  r7  FLOAT_NUMPY_DTYPESr9  FLOAT_EA_DTYPESr;  ALL_FLOAT_DTYPESr=  COMPLEX_DTYPESr?  COMPLEX_FLOAT_DTYPESrA  SIGNED_INT_NUMPY_DTYPESrC  UNSIGNED_INT_NUMPY_DTYPESrE  ALL_INT_NUMPY_DTYPESrG  ALL_INT_EA_DTYPESrI  ALL_INT_DTYPESrK  rM  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRrO  SIGNED_INT_EA_DTYPESrQ  ALL_REAL_NUMPY_DTYPESrS  ALL_REAL_DTYPESrU  ALL_NUMPY_DTYPESrW  ALL_REAL_NULLABLE_DTYPESrY  ALL_NUMERIC_DTYPESr[  rd  _any_skipna_inferred_dtyper{   _ri  rt  r  __all__r  r  r  setitemlocilocr  r  r  r  atr  iatr  r  r  r  r  warsawsr  r  ro   r4   r2   <module>rE     s.)   & # " " " " "                           				       
            ' ' ' ' ' '            
 . - - - - - ) ) ) ) ) ) ) ) )       
                                                   ( ' ' ' ' '        
 	KK	    KKK He%   HHH   I I I I$9< 9< 9< 9<x '2;< 
7:!""ggh&7&777##J$:$NOOO   $ $ % 899 %          & & & 8==??  D
'"*$d
+
+CBYRYskbk#r22kbkmmLLL    499;; 
 
D
'"*$d
+
+CB	bk"a  !bkmm"+R888		
 	
 	
    @EEGG 
 
D
'"*$d
+
+CB	bk#r""!bkmm%"+R@@@		
 	
 	
   $ ! ! ! ! 1 1 1 1 1117R7RSSS  TS 
 9~+F+FGGG  HG ***+++	 	 ,+	 ***+++  ,+ e}%%%  &% ///000  10 ;;;<<<  =< ;;;<<<  =< ;;;<<<  =< V=2=#=#=>>>
 
 
 
 
 V=2=#=#=>>>	 	 	 	 	 e}%%%  &% :::;;;  <; 
K0111  21 r,F,FGGG  HG  bfbf-...  /. -  r(.H.HIII  JI ! 	6*+++  ,+ vWh,?@@@	 	 A@	 #  vrx06R6R6RSSS  TS vy"(;AUAUVVV  WV ! 	 	 	 	    0   "     	 	 	 	  (  (ee77EE#JJ777vFFF(ee77EE#JJ777uEEE( 

<555( ::lCLIII	(
 ll<3???( w#FFF( ZZ__( EE)")C..///( UU929S>>111( UU929S>>111( UU929S>>111( UU929S>>111( eeIBIcNN(333( eeIBIcNN(333( eeIBIcNN(333(  uuYRYs^^9555!(" uuYRYs^^9555#( ($ 55$*&999%(& %%u)666'(( 	#[)))D929S3T3T3T,TT )(. %%	#\***TIBIc4V4V4V-VV /(4 ##DDLL2$5665(6 ))+"+a#*F*F*FGG7(8 UU2YY9(: $j$SS)>)>)>			%J%JKK;(< 88::=(> !!?(@ uu'''((A(B EE)")C..888C(D UU929S>>:::E(F eeIBIcNN)<<<G(H UU929S>>0066iHHHI(J UU44s444<LMMM K( (R  )
%<<s<<<DUVVV
W
WC%(L!" |((**+++. . ,+.   *0022    
$ $ 
$   &,,..  
 
 
 
 
:     C C C C    ; ; ; '--//   ! ! ! !  $	   F<E7EnE  ,1133444@ @ 54@ ;=;O   
      	   388::;;;G G <;G 
 
 
 
 
 
 
 
 U U U U. 	q	"	"	"MM'7$C$CD	s#	&	&	&i(I(IJ			$	$	$k2	3	'	'	'5Il|444O666	
 
3			!23
     r3444  54 	5  < = <   $	 	% $	     .///  0/ !%.  .///  0/ *,CC '''  (' 	 	 	 	 	 ???@@@	 	 A@	 NNN     GFF  1222  32 < < <    J 			EGGGIIKKNNKLHYYQ  HYYR   u---%	( Hl++He$$	
   ,++++ CC--..yl333  43 /. CCQRR 01122y},qrr*:;;;  <; 32 %  
UUWWhl;	LL""5))*** u    ...///  0/ 	 r'(((  )( 	25i'}r}Y/G/GHHHi(i0H0HIII	26		 	 	  - - - &mbmI.F.FGGG     i(i0H0HIIIi'}r}Y/G/GHHH  * * * YmbmI&>&>???     	25i'}r}Y/G/GHHHi(i0H0HIII	26		 	 	     YmbmI&>&>???     !0  r'''  (' r'(((  )( 	25i'}r}Y/G/GHHHi(i0H0HIII	26	 	 	   1 1!  1$ r+,,,  -, r,---  .-     r,---  .- r)***  +* r*+++
 
 ,+
 r()))  *) r.///  0/ r1222
 
 32
 r3444	 	 54	 r.///  0/" r+,,,  -,  r()))  *)2 r+b.@@AAA  BA* () 	&'    : r.///	 	 0/	 r/000  10( r)***  +*, r*+++! ! ,+!H r2333  43> r,---  .-F RVS!"RUC !sBFC !tRVT"#rvrvrv&'bMsBFA&'sBFC !#rvs#$BFAQ,-RVWWQZZ01rvu%&rue$%MBM,//|9T9TUV))J'':1F1FGHdd4AT1a(8(89:() 99Q<<167dd1ggrvttAww'(tbfffTll34((1a.."&((1a..9:3 6 
(	)Q 1s;;;," ," <;,"d & & &$ HHHIII6 6 JI6  #       kk*+++  ,+ !,	 			ru	      
BFBG4555  65 ()))  *) 
BG,---  .- 
BF+,,,  -, rv'''  (' ()))  *) D D D D         2 2 2 2 4
5NN$8$_55666 w     ( ( ( ( (s$   1B9 9CCC C+*C+