
    g                    1   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dIdZHdJdZIdId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          dId2            Z` ej_        d1          dId3            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_        dKde            Zej_        dLdg            Zej_        dh             Zej_        dMdj            Zej_        dNdl            Zdm Zdn Zi do e:dp  edq          D                       dr e1dsdqt          du e1dsdqdvw          dx e2dsdqdyz          d{ e3d|dqdy}          d~ e-dq          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e: ej        dq          d          d e:ddgd(z  e           e:ddgd(z  e           e: ej        dqd          d ej        dqd          z  z              e: ej        dqd          d ej        dqd          z  z              e( ed          dz             e+j         ej        ddqd                     e:g            e;j         eg dg d                     e             e             e:g d           e: ej        dq          d           e: ej        dq          d           e: ej        dq          d           e: ej        dq                              e          d           e: e'j        d  edq          D             d                    dZeCr3 e: e'j        d  edq          D             d                    Zeed<    ej_        e                                <          d             ZeZ ej_        d e                                D             <          d             ZeZ ej_        d e                                D             <          d             Zej_        dOd            Zej_        dOd            Zej_        dOd            Zd Zd e                                D             Zej_        dOd            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_        dNd            Zej_        dNd            Zej_        dOd            Z ej_         e*dd(           e%dd          f e*dd           e%dd          f e,dd          df e,ddy          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_        dPd؄            Zdddddddddd e             e             ed           ed           ed          e	j         e	 ed)                     e	 ed          d          gZeE3e۠                     eEjF        dv           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_        d ejl        d e"jm        d          N          g<          d             Z ej_        d ejl        d e"jm        d          N           ejl        d e"jm        d          N          g<          d             Z ej_        d ejl        d e"jm        d          N          g<          d             ZeZ ej_        e6j        <          d             Z ej_        e6j        <          d             Z ej_        dd ejl        d e"jm        d          N           ejl        d e"jm        d          N          g<          d             Z ej_        e6j        <          d             Z ej_        e6j        <          d             Zej_        dQd            Z ej_        e6j        <          d             Z ej_        e6j        <          d              Z ej_        e6j        <          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        e6j        z   <          d	             Z ej_        e6j        e6j        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dodejv        dgfdode'j        dgfdde'jw        dgfddejv        dgfdejv        ejv        ejv        gf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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        d!          ejv         ej        d"          gfdr e0d#          ejv         e0d$          gfd% ed&d)d)          ejv         ed'd)d)          gfd(d)ejv        d*gfd{ ed)          ejv         ed          gfd+ ed)          ejv         ed          gfdx e,d&          e'jw         e,d'          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/<          d0             Z# ej_        d1 e'jY        j$        D             <          d2             Z% ej_        dd3 g<          d4             Z& ej_        d5d6d7e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<          dRd9            Z' ej_        e6j(        e6j)        e6j*        g<          d:             Z+ ej_        e6j)        e6j*        g<          d;             Z, ej_        e6j(        e6j*        g<          d<             Z- ej_        e6j(        e6j)        g<          d=             Z. ej_        e6j/        e6j)        g<          d>             Z0 ej_        e6j1        e6j*        g<          d?             Z2ej_        dSdA            Z3ej_        dSdB            Z4ej_        dSdC            Z5ej_        dSdD            Z6dEdFgZ7eE%e7O                     eEjF        dE                      ej_        e7<          dTdG            Z8 ej_                    dH             Z9dS (U  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    [/var/www/html/nodeJS/PythonScripts/venv3.11/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                    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dtype
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#   listobjectr   groupbysumrq   
set_levelslevels	set_names)tdfymds     r2   /multiindex_year_month_day_dataframe_random_datar    s     
	a  00::d6ll&111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_levelr8  ^  sH    
 "
Q#sZ
A,OOOP%%%   r4   stringc                    g | ]}d | S pandas_ro   r   is     r2   r  r  j  s    777q]q]]777r4   r   r   z
2020-01-01)r   zdatetime-tzz
US/Pacificr5  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  )r^   r   r  )r   r   r^   r^   r   r   Int64UInt16Float32booleanc                    g | ]}d | S r;  ro   r=  s     r2   r  r    s    444A-A--444r4   zstring[python])
bool-dtyperM  rN  categoricalintervalemptytuplesmi-with-dt64tz-levelmultirepeatsnullable_intnullable_uintnullable_floatnullable_boolzstring-pythonc                    g | ]}d | S r;  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~   rf  rg  )r   r   s     r2   
index_flatrm    s"     -C!!###r4   c                t    g | ]5\  }}|                     d           s|dv t          |t                    3|6S ))r   uintfloat)rB  r[  r_  rX  )
startswithri  r$   rj  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)r\  r]  r^  r   r   r^   N)rf  r~   rg  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             t                    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   arangerL  r#   rB  r  ro   r4   r2   string_seriesr    s\    
 
	"BJ'''#-11uRyy111@@@   r4   c                     d t          d          D             } t          d t          d          D             t                    }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   r   objectsrq   r;   r   )rB  r#   r  r   )datarq   s     r2   object_seriesr    s[    
 +*b		***D11uRyy111@@@E$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   r1  F)rq   r;   rg  )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   r1  r  )r   r   rB  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
    Trs  )_index_or_series_objsr~   rg  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
    Trs  )_index_or_series_memory_objsr~   rg  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	          t          d          t                              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>P      333AZAZZ333r4   r}  r   r&  )r   rg   onesrF  r#   rB  r  r  ro   r4   r2   	int_framer  G  sj     
rx(((33r3336BBBd6ll&111   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#   rB  r  ro   r4   r2   float_framer  U  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  c  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-01r4  )r6  s)unitr6  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  9  r   r4   c                ,    |                      d          S )zR
    Returns the configuration for the test setting `--no-strict-data-files`.
    r,   )rP   )pytestconfigs    r2   strict_data_filesr  D  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>.decoa  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  L  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)hoursru  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   pyarrowc                    | j         S )za
    Parametrized fixture for string dtypes.

    * 'string[python]'
    * 'string[pyarrow]'
    r}   r   s    r2   nullable_string_dtyper         =r4   pythonpyarrow_numpyc                    | j         S )zx
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    * 'pyarrow_numpy'
    r}   r   s    r2   string_storager    r   r4   numpy_nullablec                    | j         S )zb
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    r}   r   s    r2   dtype_backendr    r  r4   c                    | j         S )zK
    Parametrized fixture for bytes dtypes.

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

    * object
    * 'object'
    r}   r   s    r2   object_dtyper    r  r4   r  zstring[pyarrow_numpy]c                    | j         S )zo
    Parametrized fixture for string dtypes.
    * 'object'
    * 'string[python]'
    * 'string[pyarrow]'
    r}   r   s    r2   any_string_dtyper    r   r4   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_dtyper   8  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_tsr'  C  s*    
 1RR   r4   c                    | j         S )z^
    Parameterized fixture for float dtypes.

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

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

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

    * complex
    * 'complex64'
    * 'complex128'
    r}   r   s    r2   complex_dtyper/  r  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_dtyper1  ~  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_dtyper3    r  r4   c                    | j         S )zx
    Parameterized fixture for unsigned integer dtypes.

    * 'uint8'
    * 'uint16'
    * 'uint32'
    * 'uint64'
    r}   r   s    r2   any_unsigned_int_numpy_dtyper5    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_dtyper7    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_dtyper9    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_dtyper;    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_dtyper=    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_dtyper?    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_dtyperA    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_dtyperC  +  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_dtyperE  @  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_dtyperG  W  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_dtyperI  |  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_dtyperK    s    > =r4   r1  cmixedbytes   a   cr[  zmixed-integerr   g       @floatingg      ?integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r3  20180101r   i  i  complexy      ?      ?y       @       @r   rZ  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   r  )r   inferred_dtyperv  s      r2   any_skipna_inferred_dtyperY    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.interactiveshellr]  traitlets.configr^  HistoryManager	hist_file)r]  r^  rL  s      r2   iprd    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>   r_  getattrr~   )r   sparses     r2   spmatrixrp  #  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)
issubclassrn  rh   offsetsrr  )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_classesrw  -  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_keyrz  ;  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  D  s      =r4   c                    | j         S )zI
    Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
    r}   r   s    r2   indexer_slir  W  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  g  r   r4   c                    | j         S )z7
    Parametrize over __setitem__, loc.__setitem__
    r}   r   s    r2   
indexer_slr  o  r   r4   c                    | j         S )z:
    Parametrize over at.__setitem__, loc.__setitem__
    r}   r   s    r2   
indexer_alr  w  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  r  ro   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	   rS  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;   rn  tseriesrt  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/  r8  rB  r  r  r  r  from_breakslinspacerx  r   r   rf  idxkeysrq   index_fixture2rQ   rm  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	  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_DTYPESr1  SIGNED_INT_NUMPY_DTYPESr3  UNSIGNED_INT_NUMPY_DTYPESr5  ALL_INT_NUMPY_DTYPESr7  ALL_INT_EA_DTYPESr9  ALL_INT_DTYPESr;  r=  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRr?  SIGNED_INT_EA_DTYPESrA  ALL_REAL_NUMPY_DTYPESrC  ALL_REAL_DTYPESrE  ALL_NUMPY_DTYPESrG  ALL_REAL_NULLABLE_DTYPESrI  ALL_NUMERIC_DTYPESrK  NArT  _any_skipna_inferred_dtyper{   _rY  rd  rp  __all__rw  rz  r  setitemlocilocr  r  r  r  atr  iatr  r  r  r  r  warsawsr  r  ro   r4   r2   <module>r3     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788'

<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  $#DDLL2$566))+"+a#*F*F*FGGU2YY$j$SS)>)>)>			%J%JKK88::!!u'''((E)")C..888U929S>>:::eIBIcNN)<<<U929S>>0066iHHHU44s444<LMMM I' ' 'P  )
%<<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'(((  )( &mbmI.F.FGGG     YmbmI&>&>???_MBM),D,DEEE     YmbmI&>&>???     ! r'''  (' r'(((  )( &mbmI.F.FGGG,MBM)4L4LMMM	     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+