
    ·oe+                    0   d Z ddlmZ ddlmZ ddlmZmZmZmZm	Z	 ddl
mZ ddlZddlZddlmZ ddlmZmZ dd	lmZmZ ddlZdd
lmZ ddlZddlZddlmZmZ ddlm c m!Z" ddl#m$Z$m%Z% ddl&Z'ddl&m(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.m/Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 erddl8m9Z9m:Z: 	 ddl;Z<[<dZ=n# e>$ r dZ=Y nw xY wddl?Z?	  e?j@        d           n# e?jA        $ r dZ?Y nw xY wd<dZBd=dZCd<dZDejE        jF        gZG e7ejH                   e7d          k    reGI                    ejE        jJ                   ejK        L                    d d eMeG          !           ejK        N                    d            d"O                                D ]VZP eQe'jR        jS        eP          ZT ejU        eT ejV        eT ejW        d#d$           ejX                    %                     Wd&O                                D ]gZP eQe'jR        jS        eP          ZT ejU        eT ejV        eT ejW        d'd(           ejX                     ejW        d)d*+          ,                     hd-O                                D ]gZP eQe'jR        jS        eP          ZT ejU        eT ejV        eT ejW        d.d/           ejX                     ejW        d)d*+          0                     hejY        d<d1            ZZ ejY        d2          d<d3            Z[ ejY        g d4d5 6          d7             Z\e\Z] ejY        d)d8gd9 6          d:             Z^ ejY        g d;<          d=             Z_ ejY        g d;<          d>             Z` ejY        ddg<          d?             Za ejY        g d@<          dA             Zb ejY        g dB<          dC             Zc ejY        g dD<          dE             Zd ejY        g dD<          dF             Ze ejY        ddGdHdIdJdK ejf        dL e"jg        dM          N          g<          dO             Zh ejY        dGdHdIdJdK ejf        dL e"jg        dM          N          g<          dP             Zi ejY        ddg<          dQ             Zj ejY        g dR<          dS             Zk ejY        dTdUg<          dV             Zl ejY        e0jm        dW 6          dX             ZnenZo ejY        dejp        e'jq        g<          dY             ZrerZs ejY        e0jt        dZ 6          d[             ZueuZv ejY        e(e+g<          d\             Zw ejY        e4e+gd]d^g6          d_             ZxexZy ejY        e4e+e'jz        gg d`6          da             Z{ ejY        e4e+e(e'jz        gdb 6          dc             Z|e|Z}ejY        dd             Z~ejY        de             ZejY        df             ZejY        d>dh            ZejY        d?dj            Zdk Zdl Zi dm e0j        dn          do e0j        dn          dp e0j        dndqr          ds e0j        dn          dt e0j        dn          du e0j        dn          dv e0j        dndvw          dx e0j        dndxw          dy e0j        dndyw          dz e0j        dndzw          d{ e0j        dnd{w          d| e0j        dnd|w          d} e0j        dnd}w          d~ e0j        dnd~w          d e0j        dndw          d e0j        dndw          d e0j        d                              e           e4ej                            d                              d          dk                e0j        dndw                              d           e0j        dndw                              d           e0j        dn           e0j        dn           e4g            e5j         eg dg d                     e             e             e4g d           e4 ej        dn          dw           e4 ej        dn          dw           e4 ej        dn          dw           e4 ej        dn                              e          dw           e4 e'jz         e0j        dn          dw                    dZe=r. e4 e'jz         e0j        dn          dw                    Zeed<    ejY        e                                <          d             ZeZ ejY        d e                                D             <          d             ZeZ ejY        d e                                D             <          d             ZejY        d@d            ZejY        d@d            ZejY        d@d            Zd Zd e                                D             ZejY        d@d            ZejY        d@d            Zd e0j        D             Zi eeeZ ejY        e                                <          d             Zd e0j        D             Zi eeeeZ ejY        e                                <          d             ZejY        d?d            ZejY        d?d            ZejY        d?d            ZejY        d?d            ZejY        d@d            Z ejY         e)dd(           e%dzd          f e)dd           e%dd          f e*dd          df e*dd          df e-ddr           e$dd          f e,d          dfg<          d             Z ejY        e0j        <          d             Z ejY        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        ej        ej        ej        ej        ej        ej        e2j        ej        e2j        ej        e2j        g<          d             Z ejY        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        ej        e2j        g<          d             Zg dZ ejY        e֬<          d             ZddgZ ejY        eج<          d             Zeez   Z ejY        eڬ<          d             Z ejY        ej        ej        ej        ej        ej        ej        g<          dÄ             Z ejY        g dĢ<          dń             Z ejY        g dƢ<          dǄ             Zg dȢZ ejY        e߬<          dɄ             ZejY        dʄ             ZejY        dAd̄            ZejY        dAd̈́            ZejY        dBdЄ            ZejY        d?dф            Zdddddddddd e             e             ed٦           ed           edڦ          e	j         e	 ed)ۦ                     e	 edܬۦ          dݬަ          gZe?3e                     e?j@        dq           e?j@        d          g           d߄ eD             Z e"j         ee                     ejY        ee6          d                         Z e"j         eed)d                              ejY        ed)d         ed)d         6          d                         ZeZdde e            e	j        gZe?#eI                     e?j@        d                      ejY        e<          d             ZeZ ejY        e0j        <          d             Z ejY        d ejf        d e"jg        d          N          g<          d             Z ejY        d ejf        d e"jg        d          N           ejf        d e"jg        d          N          g<          d             Z ejY        d ejf        d e"jg        d          N          g<          d             ZeZ ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        dd ejf        d e"jg        d          N           ejf        d e"jg        d          N          g<          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             ZejY        dCd            Z  ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j	        <          d             Z
 ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        e0j        z   <          d             Z ejY        e0j        e0j        z   e0j        z   e0j        z   <          d              Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z ejY        e0j        <          d             Z dmdejp        dgfdmde'j!        dgfdde'jq        dgfd	d
ejp        dgfdejp        ejp        ejp        gfdg fddejp        dgfddejp        dgfddejp        dgfdd)ejp        dgfdd)ejp        dgfd ed)          ejp         ed          gfddejp        dgfdde'j!        dgfd ej"        d          ejp         ej"        d          gfdo e-d          ejp         e-d          gfd edd)d)          ejp         edd)d)          gfddejp        dgfdt ed)          ejp         ed          gfd ed)          ejp         ed          gfds e*d          e'jq         e*d          gfd  e)dd)          ejp         e)dd          gfgZ# ee# \  Z$Z% ejY        e#e$6          d!             Z&ejY        d"             Z' ejY        g d#<          d$             Z( ejY        d% e'jS        j)        D             <          d&             Z* ejY        dd' g<          d(             Z+ ejY                    d)             Z, ejY        d*d+d,ejp        ejp        ejp        fejp        e'jq        dfejp        e'j!        dfe'j!        e'j!        e'j!        fg<          dDd.            Z- ejY        e0j.        e0j/        e0j0        g<          d/             Z1 ejY        e0j/        e0j0        g<          d0             Z2 ejY        e0j.        e0j0        g<          d1             Z3 ejY        e0j.        e0j/        g<          d2             Z4 ejY        e0j5        e0j/        g<          d3             Z6 ejY        e0j7        e0j0        g<          d4             Z8ejY        dEd6            Z9ejY        dEd7            Z:d8d9gZ;e?%e;I                     e?j@        d8                      ejY        e;<          dFd:            Z< ejY                    d;             Z=dS (G  a  
This file is very long and growing, but it was decided to not split it yet, as
it's still manageable (2020-03-17, ~1.1k LoC). See gh-31989

Instead of splitting it was decided to define sections here:
- Configuration / Settings
- Autouse fixtures
- Common arguments
- Missing values & co.
- Classes
- Indices
- Series'
- DataFrames
- Operators & Operations
- Data sets/files
- Time zones
- Dtypes
- Misc
    )annotations)abc)datedatetimetime	timedeltatimezone)DecimalN)Path)TYPE_CHECKINGCallable)tzlocaltzutc)
strategies)FixedOffsetutc)DatetimeTZDtypeIntervalDtype)	DataFrameIntervalPeriodSeries	Timedelta	Timestamp)ops)Index
MultiIndex)Version)HashableIteratorTF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    d/mounts/lovelace/software/anaconda3/envs/kraken-biom/lib/python3.11/site-packages/pandas/conftest.pypytest_addoptionr,   h   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)r.   r0   r2   s      r+   ignore_doctest_warningr:   p   sZ     y$ I223FW3F3FGGHHHHHI Ir-   c                d   |                     d          p|                     dd          }g d}| D ]|}|rK|                    t          j                            d                     |D ]\  }}t          |||           d|j        v r$|                    t          j        j                   }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)NDFrame.replacezThe 'method' keyword)rC   zSeries.replace without 'value')zSeries.idxminThe behavior of Series.idxmin)zSeries.idxmaxThe behavior of Series.idxmax)zSeriesGroupBy.idxminrD   )zSeriesGroupBy.idxmaxrE   )zmissing.mask_zero_div_zerozdivide by zero encountered)to_pydatetimez>The behavior of DatetimeProperties.to_pydatetime is deprecated)z pandas.core.generic.NDFrame.boolzY(Series|DataFrame).bool is now deprecated and will be removed in future version of pandas)z!pandas.core.generic.NDFrame.firstzqfirst is deprecated and will be removed in a future version. Please create a mask and filter using `.loc` instead)zResampler.fillnaz+DatetimeIndexResampler.fillna is deprecated)DataFrameGroupBy.fillnaz3DataFrameGroupBy.fillna with 'method' is deprecated)rG   z,DataFrame.fillna with 'method' is deprecatedadd_doctest_importsz/frame/)	getoptionr6   r7   r8   usefixturesr:   nodeidarraymanager)itemsconfig
is_doctestignored_doctest_warningsr.   r0   r2   s          r+   pytest_collection_modifyitemsrQ      s    !!"566 &:J:JE ;K ; ;J)  )  ) V  6 6 	< OOFK334IJJKKK!9 < <g&tT7;;;; ##OOFK45556 6r-   z6.83.2ci)deadlinesuppress_health_checkz)MonthBegin MonthEnd BMonthBegin BMonthEndic   )n	normalizez%YearBegin YearEnd BYearBegin BYearEnd         )	min_value	max_value)rV   rW   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rV   rW   startingMonthc                .    t           | d<   t          | d<   dS )z:
    Make `np` and `pd` names available for doctests.
    nppdN)rb   rc   )doctest_namespaces    r+   rH   rH      s     
 !d dr-   )autousec                 0    t          j        dd           dS )z<
    Configure settings for all tests and test modules.
    chained_assignmentraiseN)rc   
set_option r-   r+   configure_testsrk     s    
 M&00000r-   )r   rZ   indexcolumnsc                &    dt          |            S Nzaxis=reprxs    r+   <lambda>rt     s    ARaARAR r-   )paramsidsc                    | j         S )z@
    Fixture for returning the axis numbers of a DataFrame.
    paramrequests    r+   axisr|         
 =r-   rm   c                &    dt          |            S ro   rp   rr   s    r+   rt   rt     s    5FT!WW5F5F r-   c                    | j         S )zA
    Fixture for returning aliases of axis 1 of a DataFrame.
    rx   rz   s    r+   axis_1r     r}   r-   )TFN)ru   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).
    rx   rz   s    r+   observedr           =r-   c                    | j         S )z6
    Boolean 'ordered' parameter for Categorical.
    rx   rz   s    r+   orderedr   -  r}   r-   c                    | j         S )z%
    Boolean 'skipna' parameter.
    rx   rz   s    r+   skipnar   5  r}   r-   )firstlastFc                    | j         S )z[
    Valid values for the 'keep' parameter used in
    .duplicated or .drop_duplicates
    rx   rz   s    r+   keepr   =       =r-   )bothneitherleftrightc                    | j         S )zA
    Fixture for trying all interval 'inclusive' parameters.
    rx   rz   s    r+   inclusive_endpoints_fixturer   F  r}   r-   )r   r   r   r   c                    | j         S )z<
    Fixture for trying all interval closed parameters.
    rx   rz   s    r+   closedr   N  r}   r-   c                    | j         S )zS
    Secondary closed fixture to allow parametrizing over all pairs of closed.
    rx   rz   s    r+   other_closedr   V  r}   r-   gzipbz2zipxztarzstd	zstandard)marksc                    | j         S )zK
    Fixture for trying common compression types in compression tests.
    rx   rz   s    r+   compressionr   ^       =r-   c                    | j         S )zk
    Fixture for trying common compression types in compression tests excluding
    uncompressed case.
    rx   rz   s    r+   compression_onlyr   p  r   r-   c                    | j         S )z,
    Fixture that an array is writable.
    rx   rz   s    r+   writabler     r}   r-   )innerouterr   r   c                    | j         S )z:
    Fixture for trying all types of join operations.
    rx   rz   s    r+   	join_typer     r}   r-   nlargest	nsmallestc                    | j         S )z1
    Fixture for trying all nselect methods.
    rx   rz   s    r+   nselect_methodr     r}   r-   c                *    t          |           j        S Ntype__name__rr   s    r+   rt   rt     s    d1gg6F r-   c                    | j         S )z/
    Fixture for each null type in pandas.
    rx   rz   s    r+   nulls_fixturer     r}   r-   c                    | j         S )zL
    Fixture for each null type in pandas, each null type exactly once.
    rx   rz   s    r+   unique_nulls_fixturer     r}   r-   c                *    t          |           j        S r   r   rr   s    r+   rt   rt     s    Q8H r-   c                    | j         S )z-
    Fixture for each NaT type in numpy.
    rx   rz   s    r+   np_nat_fixturer     r}   r-   c                    | j         S )z;
    Fixture to parametrize over DataFrame and Series.
    rx   rz   s    r+   frame_or_seriesr     r}   r-   rl   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
    rx   rz   s    r+   index_or_seriesr     r   r-   )rl   r   arrayc                    | j         S )zG
    Fixture to parametrize over Index, Series, and ExtensionArray
    rx   rz   s    r+   index_or_series_or_arrayr     r}   r-   c                    | j         S r   )r   rr   s    r+   rt   rt     s    1: r-   c                    | j         S )z]
    Fixture to test behavior for Index, Series, DataFrame, and pandas Array
    classes
    rx   rz   s    r+   box_with_arrayr     r   r-   c                 ,     G d dt                     } | S )z,
    Fixture for a dictionary subclass.
    c                      e Zd ZddZdS )"dict_subclass.<locals>.TestSubDictr"   r#   c                0    t          j        | g|R i | d S r   )dict__init__)selfargskwargss      r+   r   z+dict_subclass.<locals>.TestSubDict.__init__  s(    M$000000000r-   Nr"   r#   )r   
__module____qualname__r   rj   r-   r+   TestSubDictr     s(        	1 	1 	1 	1 	1 	1r-   r   )r   )r   s    r+   dict_subclassr     s4    1 1 1 1 1d 1 1 1 r-   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     r+   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__init__  s    (DJJJr-   c                6    | j                             |          S r   )r   __getitem__)r   keys     r+   r   zAnon_dict_mapping_subclass.<locals>.TestNonDictMapping.__getitem__	  s    :))#...r-   r    c                4    | j                                         S r   )r   __iter__r   s    r+   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__iter__  s    :&&(((r-   intc                4    | j                                         S r   )r   __len__r   s    r+   r   z=non_dict_mapping_subclass.<locals>.TestNonDictMapping.__len__  s    :%%'''r-   Nr   )r"   r    )r"   r   )r   r   r   r   r   r   r   rj   r-   r+   TestNonDictMappingr     s_        	) 	) 	) 	)	/ 	/ 	/	) 	) 	) 	)	( 	( 	( 	( 	( 	(r-   r   )r   Mapping)r   s    r+   non_dict_mapping_subclassr     s6    ( ( ( ( (S[ ( ( ( r-   c                 *   t          j        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   c                    | j         S r   )yearrr   s    r+   rt   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s     r-   c                    | j         S r   )r^   rr   s    r+   rt   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s    17 r-   c                    | j         S r   )dayrr   s    r+   rt   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>  s    ae r-   c                8    g | ]}|                     d           S )i8)astype).0levs     r+   
<listcomp>zCmultiindex_year_month_day_dataframe_random_data.<locals>.<listcomp>!  s$    %S%S%S3cjj&6&6%S%S%Sr-   )r   r^   r   T)inplace)tmmakeTimeDataFramegroupbysumrl   
set_levelslevels	set_names)tdfymds     r+   /multiindex_year_month_day_dataframe_random_datar     s     
s
#
#C
++''):):OOL
M
M
Q
Q
S
SC	$$%S%S#)BR%S%S%STTCII000$???Jr-   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   rZ   rZ      r     r  r  )
r   rZ   r  r   rZ   rZ   r  r   rZ   r  r   second)r   codesnames)r   rj   r-   r+   %lexsorted_two_level_string_multiindexr  &  sM    
 ,,,.E.E.EF---/M/M/MN!   r-   r   c                    | }t          t          j                            d                              d          |t          g dd                    S )z2DataFrame with 2 level MultiIndex with random datar  )
   r  )ABCexpr4   )rl   rm   )r   rb   randomdefault_rngstandard_normalr   )r  rl   s     r+    multiindex_dataframe_random_datar  2  sX    
 2E
	a  0099oooE222   r-   c                     t          g d          } t          ddg          }t          j        g d          }t          j        g d          }ddg}t          | |g||g|d	          S )
zJ
    MultiIndex used to test the general functionality of this object
    r   r  r  )r   r   rZ   r  r  r  )r   rZ   r   rZ   r   rZ   r   r	  F)r   r
  r  verify_integrity)r   rb   r   r   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r+   _create_multiindexr  ?  s     33344Ju~&&J(---..K(---..KH%KJ'K(	   r-   c            	     j    t          j        ddgddgt          j        ddd          gg d	
          S )zB
    MultiIndex with a level that is a tzaware DatetimeIndex.
    rZ   r  ab20130101r  
US/Eastern)periodstzr  )r  )r   from_productrc   
date_rangerj   r-   r+   _create_mi_with_dt64tz_levelr)  S  sJ    
 "
Q#sR]:q\RRRS%%%   r-   stringr   r   zdatetime-tzz
US/Pacific)r&  periodr   rangeint8dtypeint16int32int64uint8uint16uint32uint64float32float64zbool-objectr  r  	complex64
complex128)r   r   r  )rZ   r  r  )r   r   rZ   rZ   r  r  Int64UInt16Float32booleanzstring[python])
bool-dtyper9  r:  categoricalintervalemptytuplesmi-with-dt64tz-levelmultirepeatsnullable_intnullable_uintnullable_floatnullable_boolzstring-pythonzstring[pyarrow]zstring-pyarrowc                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_dictry   copyrz   s    r+   rl   rl     s     &++---r-   c                B    g | ]\  }}t          |t                    |S rj   )
isinstancer   r   r   values      r+   r   r     s;       U*UJ:W:W  r-   c                N    | j         }t          |                                         S )z8
    index fixture, but excluding MultiIndex cases.
    )ry   rL  rM  )r{   r   s     r+   
index_flatrS    s"     -C!!###r-   c                t    g | ]5\  }}|                     d           s|dv t          |t                    3|6S ))r   uintfloat)r,  rB  rF  r?  )
startswithrO  r   rP  s      r+   r   r     s_       CNN344	
 AAA5*-- B	 	 BAAr-   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)rC  rD  rE  r   r   rZ   N)rL  ry   rM  valuestolistr   from_tuplesr   )r{   indvalss      r+   index_with_missingra    s    . w}
%
*
*
*
5
5C:??D}CCCzz||DGABBK'QT"Xabb\)R%d+++QRtCyyr-   r   c                 :    t          j                    } d| _        | S )zC
    Fixture for Series of floats with Index of unique strings
    r   )r   makeStringSeriesr4   ss    r+   string_seriesrf    s    
 	AAFHr-   c                 :    t          j                    } d| _        | S )zI
    Fixture for Series of dtype object with Index of unique strings
    objects)r   makeObjectSeriesr4   rd  s    r+   object_seriesrj    s    
 	AAFHr-   c                 :    t          j                    } d| _        | S )z9
    Fixture for Series of floats with DatetimeIndex
    ts)r   makeTimeSeriesr4   rd  s    r+   datetime_seriesrn    s    
 	AAFHr-   c                    t          |           }t          j                            d                              |          }t          || dd          S )zHelper for the _series dictr  r!  F)rl   r4   rM  )lenrb   r  r  r  r   )rl   sizedatas      r+   _create_seriesrs    sG    u::D9  ##33D99D$e#E::::r-   c                <    i | ]\  }}d | dt          |          S )zseries-with-z-indexrs  )r   index_idrl   s      r+   
<dictcomp>rw    sA       % $8###^E%:%:  r-   c                     t          |           S )zE
    Fixture for tests on series with changing types of indices.
    ru  rl   s    r+   series_with_simple_indexrz    s    
 %   r-   c                     g dg dg} t          |  }t          j        |          }t          j                            d                              d          }t          ||          }t          j        |j	        d<   |S )z:
    Fixture with a Series with a 2-level MultiIndex.
    )r   r   r  r  r  r  r   r   )r  r  r  r  r  r  r  r  r     ry  r  )
r   r   r^  rb   r  r  r  r   naniloc)arraysrC  rl   rr  sers        r+   series_with_multilevel_indexr    s     	A@@@@@F &\F"6**E9  ##33A66D
U
#
#
#C&CHQKJr-   c                L    i | ]!}|j          d t          j        d|          "S )-seriesr!  )r4   r/  )r   r   make_rand_seriesr   r/  s     r+   rw  rw    sE        ~ 3E J J J  r-   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
    TrY  )_index_or_series_objsry   rM  rz   s    r+   index_or_series_objr    s"     !/44$4???r-   c                >    i | ]}|j          d t          |          S )r  )r   r   r  s     r+   rw  rw  '  s8       27u~u  r-   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
    TrY  )_index_or_series_memory_objsry   rM  rz   s    r+   index_or_series_memory_objr  4  s"     (6;;;FFFr-   c                 h    t          t          j                                                  d          S )a6  
    Fixture for DataFrame of ints with index of unique strings

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

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

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

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

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

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

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

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

    [30 rows x 4 columns]
    )r   r   r  rj   r-   r+   float_framer  {  s    4 R%''(((r-   c            
         t          dddt          j        dgdz  d          t          j        dgdz  d          d	t          j        d          
          S )z
    Fixture for DataFrame of float/int/string columns with RangeIndex
    Columns are ['a', 'b', 'c', 'float32', 'int32'].
          ?r  r   r  r7  r.  rZ   r1  )r!  r"  cr7  r1  ry  )r   rb   r   arangerj   r-   r+   mixed_type_framer    sk     x
)<<<XqcBhg666	
 	
 imm	 	 	 	r-   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  rZ   r  r     rY   ry  )r   r   rb   r  r  r  rp  )datess    r+   (rand_series_with_duplicate_datetimeindexr    s     	q!q!q!q!q!q!q!q!q!q!E ")''**::3u::FFeTTTTr-   )r   r   r   g?g      ?z2012-01M)freqz	period[M]z
2012-02-01Dz	period[D]z
2011-01-01r$  re  )unitr&  i  )secondsztimedelta64[ns]c                    | j         S r   rx   rz   s    r+   ea_scalar_and_dtyper         =r-   c                    | j         S )zD
    Fixture for dunder names for common arithmetic operations.
    rx   rz   s    r+   all_arithmetic_operatorsr    r}   r-   c                    | j         S )zU
    Fixture for operator and roperator arithmetic, comparison, and logical ops.
    rx   rz   s    r+   all_binary_operatorsr        D =r-   c                    | j         S )z
    Fixture for operator and roperator arithmetic functions.

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

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

    * |
    * &
    * ^
    rx   rz   s    r+   all_logical_operatorsr  o       =r-   )cumsumcumprodcummincummaxc                    | j         S )z0
    Fixture for numeric accumulation names
    rx   rz   s    r+   all_numeric_accumulationsr    r}   r-   c                ,    |                      d          S )zR
    Returns the configuration for the test setting `--no-strict-data-files`.
    r%   )rI   )pytestconfigs    r+   strict_data_filesr    s    
 !!":;;;r-   r   c                 :    t          t                    j        dz  S )Ntests)r   __file__parentrj   r-   r+   
tests_pathr    s    >> 7**r-   c                    | dz  dz  S )Niorr  rj   )r  s    r+   tests_io_data_pathr    s    v%%r-   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.
    r  c                     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 .)osr0   joinexists
ValueErrorr7   skip)r   r0   	BASE_PATHr  s     r+   decozdatapath.<locals>.deco  s}    w|I----w~~d## 	3   X4XXX   K1$111222r-   )r  r0   r  dirnamer  )r  r  r  s   ` @r+   datapathr    sN    & RW__X66@@I      Kr-   c                B    t          j         | dddd                    S )z*
    The iris dataset as a DataFrame.
    r  rr  csvziris.csv)rc   read_csv)r  s    r+   irisr    s$    
 ;xxfeZ@@AAAr-   z
Asia/Tokyozdateutil/US/Pacificzdateutil/Asia/Singaporez+01:15z-02:15z	UTC+01:15z	UTC-02:15i,  i)hoursr[  r   r  c                ,    g | ]}t          |          S rj   rp   )r   is     r+   r   r     s    +++AQ+++r-   c                    | j         S )zD
    Fixture for trying timezones including default (None): {0}
    rx   rz   s    r+   tz_naive_fixturer    r   r-   c                    | j         S )z4
    Fixture for trying explicit timezones: {0}
    rx   rz   s    r+   tz_aware_fixturer    r   r-   r   zdateutil/UTCc                    | j         S )zQ
    Fixture to provide variants of UTC timezone strings and tzinfo objects.
    rx   rz   s    r+   utc_fixturer    r}   r-   c                    | j         S )zR
    Parametrized fixture for string dtypes.

    * str
    * 'str'
    * 'U'
    rx   rz   s    r+   string_dtyper         =r-   pyarrowc                    | j         S )za
    Parametrized fixture for string dtypes.

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

    * 'python'
    * 'pyarrow'
    * 'pyarrow_numpy'
    rx   rz   s    r+   string_storager  -  r   r-   numpy_nullablec                    | j         S )zb
    Parametrized fixture for pd.options.mode.string_storage.

    * 'python'
    * 'pyarrow'
    rx   rz   s    r+   dtype_backendr	  ?  r  r-   c                    | j         S )zK
    Parametrized fixture for bytes dtypes.

    * bytes
    * 'bytes'
    rx   rz   s    r+   bytes_dtyper  S       =r-   c                    | j         S )zN
    Parametrized fixture for object dtypes.

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

    * 'datetime64[ns]'
    * 'M8[ns]'
    rx   rz   s    r+   datetime64_dtyper  {  r  r-   c                    | j         S )z^
    Parametrized fixture for timedelta64 dtypes.

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

    * float
    * 'float32'
    * 'float64'
    rx   rz   s    r+   float_numpy_dtyper    r  r-   c                    | j         S )zR
    Parameterized fixture for float dtypes.

    * 'Float32'
    * 'Float64'
    rx   rz   s    r+   float_ea_dtyper     r  r-   c                    | j         S )z~
    Parameterized fixture for float dtypes.

    * float
    * 'float32'
    * 'float64'
    * 'Float32'
    * 'Float64'
    rx   rz   s    r+   any_float_dtyper"    r  r-   c                    | j         S )zg
    Parameterized fixture for complex dtypes.

    * complex
    * 'complex64'
    * 'complex128'
    rx   rz   s    r+   complex_dtyper$    r  r-   c                    | j         S )z|
    Parameterized fixture for signed integer dtypes.

    * int
    * 'int8'
    * 'int16'
    * 'int32'
    * 'int64'
    rx   rz   s    r+   any_signed_int_numpy_dtyper&    r  r-   c                    | j         S )zx
    Parameterized fixture for unsigned integer dtypes.

    * 'uint8'
    * 'uint16'
    * 'uint32'
    * 'uint64'
    rx   rz   s    r+   any_unsigned_int_numpy_dtyper(    r   r-   c                    | j         S )z
    Parameterized fixture for any integer dtype.

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

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

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

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

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

    * 'Int8'
    * 'Int16'
    * 'Int32'
    * 'Int64'
    rx   rz   s    r+   any_signed_int_ea_dtyper4  ]  r   r-   c                    | j         S )z
    Parameterized fixture for any (purely) real numeric dtype.

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

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

    and associated ea dtypes.
    rx   rz   s    r+   any_real_numeric_dtyper8    s    ( =r-   c                    | j         S )a  
    Parameterized fixture for all numpy dtypes.

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

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    * complex
    * 'complex64'
    * 'complex128'
    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    * 'Float32'
    * 'Float64'
    rx   rz   s    r+   any_numeric_dtyper<    s    > =r-   r!  r  mixedbytes   a   crB  zmixed-integerg       @floatingr  integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r#  20180101r   i  i  complexy      ?      ?y       @       @r   rA  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.  )ry   rb   r   r  )r{   inferred_dtyper\  s      r+   any_skipna_inferred_dtyperI    s2    R %]NFXfF+++F 6!!r-   c                     t          j        dd           ddlm}  ddlm}  |            }d|j        _         | |          S )	zj
    Get an instance of IPython.InteractiveShell.

    Will raise a skip if IPython is not installed.
    IPythonz6.0.0)
minversionr   )InteractiveShell)Configz:memory:)rN   )r7   importorskipIPython.core.interactiveshellrM  traitlets.configrN  HistoryManager	hist_file)rM  rN  r  s      r+   iprT  /  sj     	g6666>>>>>> ('''''A!+A1%%%%r-   )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)r7   rO  getattrry   )r{   sparses     r+   spmatrixr`  B  s+    
  00F67=94555r-   c                    g | ]Y}t          t          t          j        |          t          j        j                  r |d k    ?t          t          j        |          ZS )Tick)
issubclassr^  rc   offsetsrb  )r   os     r+   r   r   M  s[       gbj!,,bjo>> DE;; 	
ACN;;r-   c                    | j         S )zN
    Fixture for Tick based datetime offsets available for a time series.
    rx   rz   s    r+   tick_classesrg  L  r  r-   c                    | S r   rj   rr   s    r+   rt   rt   Z  s     r-   c                    | j         S )zk
    Simple fixture for testing keys in sorting methods.
    Tests None (no key) and the identity key.
    rx   rz   s    r+   sort_by_keyrj  Z  r   r-   c               #    K   t          j        d           ddlm}  ddlm} ddlm}  G d d|          } | d|d	
            |            V  |                    dd            d |j	        d<   |j
                                         d S )Nfsspecr   )register_implementation)MemoryFileSystem)	_registryc                  *     e Zd ZdZdgZd fdZ xZS ) fsspectest.<locals>.TestMemoryFStestmemNr"   r#   c                v    |                     dd           | j        d<    t                      j        di | d S )Ntestr   rj   )poprt  superr   )r   r   	__class__s     r+   r   z)fsspectest.<locals>.TestMemoryFS.__init__n  s?    !::fd33DIaLEGG&&v&&&&&r-   r   )r   r   r   protocolrt  r   __classcell__)rw  s   @r+   TestMemoryFSrq  j  sI        v	' 	' 	' 	' 	' 	' 	' 	' 	' 	'r-   rz  rr  T)clobber)r7   rO  rl  rm  fsspec.implementations.memoryrn  fsspec.registryro  ru  rt  storeclear)rm  rn  registryrz  s       r+   
fsspectestr  c  s      
!!!......>>>>>>555555' ' ' ' '' ' ' ' I|TBBBB
,..LLD!!!Lar-   )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.
    rx   rz   s    r+   r  r  y  s      =r-   c                    | j         S )zI
    Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
    rx   rz   s    r+   indexer_slir    r}   r-   c                    | j         S )z<
    Parametrize over loc.__getitem__, iloc.__getitem__
    rx   rz   s    r+   
indexer_lir    r}   r-   c                    | j         S )z8
    Parametrize over __setitem__, iloc.__setitem__
    rx   rz   s    r+   
indexer_sir    r}   r-   c                    | j         S )z7
    Parametrize over __setitem__, loc.__setitem__
    rx   rz   s    r+   
indexer_slr    r}   r-   c                    | j         S )z:
    Parametrize over at.__setitem__, loc.__setitem__
    rx   rz   s    r+   
indexer_alr    r}   r-   c                    | j         S )z<
    Parametrize over iat.__setitem__, iloc.__setitem__
    rx   rz   s    r+   indexer_ialr    r}   r-   boolc                 6    t           j        j        j        dk    S )z>
    Fixture to check if the array manager is being used.
    r   )rc   optionsmodedata_managerrj   r-   r+   using_array_managerr    s    
 :?'722r-   c                 b    t           j        j        j        ot           j        j        j        dk    S )z7
    Fixture to check if Copy-on-Write is enabled.
    block)rc   r  r  copy_on_writer  rj   r-   r+   using_copy_on_writer    s"    
 :?(TRZ_-IW-TTr-   zEurope/Warsawzdateutil/Europe/Warsawc                    | j         S )zE
    tzinfo for Europe/Warsaw using pytz, dateutil, or zoneinfo.
    rx   rz   s    r+   warsawr    r}   r-   c                     dS )N)r  r  rj   rj   r-   r+   arrow_string_storager    s    ''r-   r   )r.   r/   r0   r1   r2   r1   r"   r#   )r"   r   )r"   r   )r"   r   )r"   r   )r  r1   r"   r  )r"   r   )r"   r  )r"   r  )r"   r1   (>  __doc__
__future__r   collectionsr   r   r   r   r   r	   rC  r
   operatorr  pathlibr   typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyrb   r7   pytzr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasrc   r   r   r   r   r   r   pandas._testing_testingr   pandas.corer   pandas.core.indexes.apir   r   pandas.util.versionr   collections.abcr   r    r  pahas_pyarrowImportErrorzoneinfoZoneInfoZoneInfoNotFoundErrorr,   r:   rQ   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr4   r^  tseriesrd  clsregister_type_strategybuildsintegersbooleansfixturerH   rk   r|   
axis_framer   r   r   r   r   r   r   r   ry   
skip_if_nor   r   r   r   r   NULL_OBJECTSr   nulls_fixture2r}  NaTr   unique_nulls_fixture2NP_NAT_OBJECTSr   np_nat_fixture2r   r   index_or_series2r   r   r   box_with_array2r   r   r   r  r  r  r)  makeStringIndexmakeDateIndexmakePeriodIndexmakeTimedeltaIndexmakeRangeIndexmakeIntIndexmakeUIntIndexmakeFloatIndexmakeBoolIndexr   r  r  r  r  makeNumericIndexmakeCategoricalIndexmakeIntervalIndexr^  r   r  r  rL  idxkeysrl   index_fixture2rM   rS  index_flat2ra  rf  rj  rn  rs  _seriesrz  r  NARROW_NP_DTYPES_narrow_seriesr  r  PYTHON_DATA_TYPES_typ_objects_seriesr  r  r  r  r  r  r  r  arithmetic_dunder_methodsr  addraddsubrsubmulrmultruedivrtruedivfloordiv	rfloordivmodrmodpowrpoweqneltlegtgeand_rand_xorrxoror_ror_r  r  _all_numeric_reductionsr  _all_boolean_reductionsr  _all_reductionsr  r  r  r  _all_numeric_accumulationsr  r  r  r  r  r  	TIMEZONESextendTIMEZONE_IDSparametrize_fixture_docr1   r  r  tz_aware_fixture2_UTCSr  utc_fixture2STRING_DTYPESr  r  r  r	  string_storage2BYTES_DTYPESr  OBJECT_DTYPESr  r  DATETIME64_DTYPESr  TIMEDELTA64_DTYPESr  r  FLOAT_NUMPY_DTYPESr  FLOAT_EA_DTYPESr   ALL_FLOAT_DTYPESr"  COMPLEX_DTYPESr$  SIGNED_INT_NUMPY_DTYPESr&  UNSIGNED_INT_NUMPY_DTYPESr(  ALL_INT_NUMPY_DTYPESr*  ALL_INT_EA_DTYPESr,  ALL_INT_DTYPESr.  r0  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRr2  SIGNED_INT_EA_DTYPESr4  ALL_REAL_NUMPY_DTYPESr6  ALL_REAL_DTYPESr8  ALL_NUMPY_DTYPESr:  ALL_NUMERIC_DTYPESr<  NArD  _any_skipna_inferred_dtyperv   _rI  rT  r`  __all__rg  rj  r  r  setitemlocr~  r  r  r  r  atr  iatr  r  r  warsawsr  r  rj   r-   r+   <module>r4     s%   & # " " " " "                           				             
            ' ' ' ' ' '            
 * ) ) ) ) ) ) ) )       
                                       ( ' ' ' ' '        
 	KK	    KKK He%   HHH   I I I I$=6 =6 =6 =6@ '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 
 
 
     	 	 	 	  (  ! b %%!  %%! #2#CL999!  b %%	!
 &&s++! Rs##! OBOCv...! _R_S000! _R_S000! _R_S000! Rc111! bs(333! bs(333! bs(333!  r I666!   r I666!!" #2#B''..v66#!$ %	--a00@@DDqHII$$S	:::AA+NN%"%c;;;BB<PP*2*3//$$S))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U828$6B$6s$;$;CSTTTUUA! ! !D  )
%++C008IJJJ
K
KC%(L!" |((**+++. . ,+.   *0022    
$ $ 
$   &,,..  
 
 
 
 
:            ; ; ; '--//   ! ! ! !      $   F<E7EnE  ,1133444@ @ 54@ ;=;O   
      	   388::;;;G G <;G 9 9 9 98 - - - -8 ) ) ) )8    " 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 < < < + + + + & & & &    B B B B B 			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    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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,---  .-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'''  (' ()))  *) 3 3 3 3 U U U U 4
5NN$8$_55666 w     ( ( ( ( (s$   %B- -B76B7?C CC