
    Ohe                    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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ZCddlEZE	  eEj                  d       dFdZHdGdZIdFdZJej                  j                  gZM e=ej                         e=d      k\  r%eMj                  ej                  j                         ej                  j                  dd eSeM             ej                  j                  d       dj                         D ]e  ZV eWe'j                  j                  eV      ZZ ej                  eZ ej                  eZ ej                  dd       ej                                      g d j                         D ]x  ZV eWe'j                  j                  eV      ZZ ej                  eZ ej                  eZ ej                  d!d"       ej                          ej                  d#d$%      &             z d'j                         D ]x  ZV eWe'j                  j                  eV      ZZ ej                  eZ ej                  eZ ej                  d(d)       ej                          ej                  d#d$%      *             z  ej                  d+      dFd,       Z` ej                  d+      dFd-       Za ej                  g d.d/ 0      d1        ZbebZc ej                  d#d2gd3 0      d4        Zd ej                  g d56      d7        Ze ej                  g d56      d8        Zf ej                  ddg6      d9        Zg ej                  g d:6      d;        Zh ej                  g d<6      d=        Zi ej                  g d>6      d?        Zj ej                  g d>6      d@        Zk ej                  ddAdBdCdDdE ej                  dF e"j                  dG      H      g6      dI        Zn ej                  dAdBdCdDdE ej                  dF e"j                  dG      H      g6      dJ        Zo ej                  ddg6      dK        Zp ej                  g dL6      dM        Zq ej                  dNdOg6      dP        Zr ej                  e6j                  dQ 0      dR        ZtetZu ej                  dej                  e'j                  g6      dS        ZxexZy ej                  e6j                  dT 0      dU        Z{e{Z| ej                  e)e.g6      dV        Z} ej                  e:e.gdWdXg0      dY        Z~e~Z ej                  e:e.e'j                   gg dZ0      d[        Z ej                  e:e.e)e'j                   gd\ 0      d]        ZeZej                  dHd^       Zej                  dId_       Zej                  d`        Zej                  dJda       Zej                  	 	 dKdb       Zdc Zdd Zi de e: edf      D  cg c]  } dg|  	 c} eh      di e: edf      D  cg c]  } dg|  	 c} dh      dj e1dkdfl      dm e1dkdfdno      dp e2dkdfdqr      ds e3dtdfdqu      dv e-df      dw e: ej                  df      dwh      dx e: ej                  df      dxh      dy e: ej                  df      dyh      dz e: ej                  df      dzh      d{ e: ej                  df      d{h      d| e: ej                  df      d|h      d} e: ej                  df      d}h      d~ e: ej                  df      d~h      d e: ej                  df      dh      d e: ej                  df      dh      i d e:ddgd"z  eh      d e:ddgd"z  eh      d e: ej                  dfdh      d ej                  dfdh      z  z         d e: ej                  dfdh      d ej                  dfdh      z  z         d e( ed      dz        d e+j                    ej"                  ddfd            d e:g       d e;j$                   eg dg d            d e       d e       d e:g d      d e: ej                  df      dh      d e: ej                  df      dh      d e: ej                  df      dh      d e: ej                  df      j)                  e      dh      d e: e'j                    edf      D  cg c]  } dg|  	 c} dh            ZeCr7 e: e'j                    edf      D  cg c]  } dg|  	 c} dh            Zeed<    ej                  ej/                         6      d        ZeZ ej                  ej5                         D cg c]  \  }} e|e;      r| c}}6      d        ZeZ ej                  ej5                         D cg c]&  \  }}|j=                  d      s|dv s e|e;      s|( c}}6      d        Zej                  dLd       Zej                  dLd       Zej                  dLd       Zd Zej5                         D ci c]  \  }}d| d e|       c}}Zej                  dLd       Ze6jL                  D  ci c]:  }|jN                   d e. ed       ed      D  cg c]  } d|  	 c} d|      < c} }Zi eeeZ ej                  ej/                         6      d        Ze6jV                  D ci c]  }|jN                   d e.|       c}Zi eeeeZ ej                  ej/                         6      d        Zej                  dKd       Zej                  dKd       Zej                  dLd       Z ej                   e*dd"       e%dzd      f e*dd       e%dd      f e,dd      df e,ddq      df e0dd«       e$ddī      f e/dŬƫ      dfg6      dȄ        Z ej                  e6jf                  6      dɄ        Z ej                  ejj                  e8jl                  ejn                  e8jp                  ejr                  e8jt                  ejv                  e8jx                  ejz                  e8j|                  ej~                  e8j                  ej                  e8j                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  e8j                  ej                  e8j                  ej                  e8j                  g6      dʄ        Z ej                  ejj                  e8jl                  ejn                  e8jp                  ejr                  e8jt                  ejv                  e8jx                  ejz                  e8j|                  ej~                  e8j                  ej                  e8j                  g6      d˄        Zg d̢Z ej                  eѬ6      d̈́        ZddgZ ej                  eӬ6      dЄ        Zeez   Z ej                  eլ6      dф        Z ej                  ej                  ej                  ej                  ej                  ej                  ej                  g6      d҄        Z ej                  g dӢ6      dԄ        Z ej                  g dբ6      dք        Zg dעZ ej                  eڬ6      d؄        Zej                  dل        Zej                  dMdڄ       Zdddddddddd e        e        ed       ed       ed      e	j8                   e	 ed#             e	 ed      d      gZeE4eސj                   eEj                  dn       eEj                  d      g       eD  cg c]
  }  e|        c} Z e"j                   ee             ej                  ee0      d               Z e"j                   eed#d              ej                  ed#d ed#d 0      d               ZeZdde e       e	j8                  gZeE!ej                   eEj                  d              ej                  e6      d        ZeZ ej                  g d6      d        ZeZ ej                  e6j                  6      d        Z ej                  de'j                  f ej                  de'j                  f e"j                  d      H       ej                  dej                  f e"j                  d      H      dej                  fgg d0      d        Z ej                  d ej                  d e"j                  d      H      g6      d        Z ej                   ej                  dej                  f e"j                  d      H       ej                  de'j                  f e"j                  d      H      g6      d        Z ej                  d ej                  d e"j                  d      H      g6      d        Z ej                  de'j                  f ej                  de'j                  f e"j                  d      H       ej                  dej                  f e"j                  d      H      dej                  fgg d0      d        Z ej                  d ej                  d e"j                  d      H      g6      d        ZeZeZ ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                   ej                  de      de'j                  f ej                  de'j                  f e"j                  d      H       ej                  dej                  f e"j                  d      H      dej                  fgg d0      d        Z ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                  dNd        Z ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z	 ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                  e6j                  6      d        Z ej                  e6j                   6      d        Z ej                  e6j$                  6      d	        Z ej                  e6j(                  6      d
        Z ej                  e6j$                  e6j                  z   6      d        Z ej                  e6j$                  e6j                  z   e6j.                  z   e6j0                  z   6      d        Z ej                  e6j4                  6      d        Z ej                  e6j8                  6      d        Z ej                  e6j<                  6      d        Z ej                  e6j@                  6      d        Z! ej                  e6jD                  6      d        Z# ej                  e6jH                  6      d        Z%didej                  dgfdide'j                  dgfdde'j                  dgfddej                  dgfdej                  ej                  ej                  gfdg fddej                  dgfddej                  dgfddej                  dgfdd#ej                  dgfdd#ej                  dgfd ed#      ej                   ed      gfddej                  dgfdde'j                  dgfd  ejL                  d!      ej                   ejL                  d"      gfdj e0d#      ej                   e0d$      gfd% ed&d#d#      ej                   ed'd#d#      gfd(d)ej                  d*gfds ed#      ej                   ed      gfd+ ed#      ej                   ed      gfdp e,d&      e'j                   e,d'      gfd e*dd#      ej                   e*dd      gfgZ' ee' \  Z(Z) ej                  e'e(0      d,        Z*ej                  d-        Z+ ej                  g d.6      d/        Z, ej                  e'j                  jZ                  D cg c]K  } e. eWe'j                  |      e'j                  j^                        r|d0k7  r eWe'j                  |      M c}6      d1        Z0 ej                  dd2 g6      d3        Z1 ej                  d4d5d6ej                  ej                  ej                  fej                  e'j                  dfej                  e'j                  dfe'j                  e'j                  e'j                  fg6      dOd7       Z2 ej                  e6jf                  e6jh                  e6jj                  g6      d8        Z6 ej                  e6jh                  e6jj                  g6      d9        Z7 ej                  e6jf                  e6jj                  g6      d:        Z8 ej                  e6jf                  e6jh                  g6      d;        Z9 ej                  e6jt                  e6jh                  g6      d<        Z; ej                  e6jx                  e6jj                  g6      d=        Z=ej                  dPd>       Z>ej                  dPd?       Z?ej                  dPd@       Z@ej                  dPdA       ZAdBdCgZBeE#eBj                   eEj                  dB              ej                  eB6      dQdD       ZC ej                         dE        ZDy# eD$ r dZCY w xY w# eEj                  $ r dZEY w xY wc c} w c c} w c c} w c c} w c c}}w c c}}w c c}}w c c} w c c} }w c c}w c c} w c c}w (R  a  
This file is very long and growing, but it was decided to not split it yet, as
it's still manageable (2020-03-17, ~1.1k LoC). See gh-31989

Instead of splitting it was decided to define sections here:
- Configuration / Settings
- Autouse fixtures
- Common arguments
- Missing values & co.
- Classes
- Indices
- Series'
- DataFrames
- Operators & Operations
- Data sets/files
- Time zones
- Dtypes
- Misc
    )annotations)abc)datedatetimetime	timedeltatimezone)DecimalN)TYPE_CHECKINGCallable)tzlocaltzutc)
strategies)FixedOffsetutc_get_option)DatetimeTZDtypeIntervalDtype)CategoricalIndex	DataFrameIntervalIntervalIndexPeriod
RangeIndexSeries	Timedelta	Timestamp
date_rangeperiod_rangetimedelta_range)ops)Index
MultiIndex)Version)HashableIteratorTFUTCc                ,    | j                  ddd       y )N--no-strict-data-filesstore_falsez6Don't fail if a test is skipped for missing data file.)actionhelp)	addoption)parsers    W/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/conftest.pypytest_addoptionr1   o   s    
 E      strc                    | j                   j                  |      r2| j                  t        j                  j                  d|              yy)a  Ignore doctest warning.

    Parameters
    ----------
    item : pytest.Item
        pytest test item.
    path : str
        Module path to Python object, e.g. "pandas.core.frame.DataFrame.append". A
        warning will be filtered when item.name ends with in given path. So it is
        sufficient to specify e.g. "DataFrame.append".
    message : str
        Message to be filtered.
    zignore:N)nameendswith
add_markerpytestmarkfilterwarnings)itempathmessages      r0   ignore_doctest_warningr>   w   s=     yy$22WWI3FGH  r2   c                    |j                  d      xs |j                  dd      }g d}|r| D ]  }|D ]  \  }}t        |||         y y )Nz--doctest-modulesz--doctest-cythonF)default))is_int64_dtypezis_int64_dtype is deprecated)is_interval_dtypezis_interval_dtype is deprecated)is_period_dtypezis_period_dtype is deprecated)is_datetime64tz_dtypez#is_datetime64tz_dtype is deprecated)is_categorical_dtypez"is_categorical_dtype is deprecated)	is_sparsezis_sparse is deprecated)DataFrameGroupBy.fillnaz%DataFrameGroupBy.fillna is deprecated)NDFrame.replacezThe 'method' keyword)rH   zSeries.replace without 'value')zNDFrame.clipz4Downcasting behavior in Series and DataFrame methods)zSeries.idxminThe behavior of Series.idxmin)zSeries.idxmaxThe behavior of Series.idxmax)zSeriesGroupBy.fillnaz"SeriesGroupBy.fillna is deprecated)zSeriesGroupBy.idxminrI   )zSeriesGroupBy.idxmaxrJ   )zmissing.mask_zero_div_zerozdivide by zero encountered)to_pydatetimez>The behavior of DatetimeProperties.to_pydatetime is deprecated)z pandas.core.generic.NDFrame.boolzY(Series|DataFrame).bool is now deprecated and will be removed in future version of pandas)z!pandas.core.generic.NDFrame.firstzqfirst is deprecated and will be removed in a future version. Please create a mask and filter using `.loc` instead)zResampler.fillnaz+DatetimeIndexResampler.fillna is deprecated)rG   z3DataFrameGroupBy.fillna with 'method' is deprecated)rG   z,DataFrame.fillna with 'method' is deprecated)read_parquetz1Passing a BlockManager to DataFrame is deprecated)	getoptionr>   )itemsconfig
is_doctestignored_doctest_warningsr;   r<   r=   s          r0   pytest_collection_modifyitemsrR      sq    !!"56 &:J:JE ;K ;J- ^  	<D!9 <g&tT7;<	< r2   z6.83.2ci)deadlinesuppress_health_checkz)MonthBegin MonthEnd BMonthBegin BMonthEndic   )n	normalizez%YearBegin YearEnd BYearBegin BYearEnd         )	min_value	max_value)rW   rX   monthz1QuarterBegin QuarterEnd BQuarterBegin BQuarterEndi   )rW   rX   startingMonth)autousec                (    t         | d<   t        | d<   y)z:
    Make `np` and `pd` names available for doctests.
    nppdN)rd   re   )doctest_namespaces    r0   add_doctest_importsrg      s    
 !d dr2   c                 0    t        j                  dd       y)z<
    Configure settings for all tests and test modules.
    chained_assignmentraiseN)re   
set_option r2   r0   configure_testsrm   	  s    
 MM&0r2   )r   r[   indexcolumnsc                    dt        |        S Nzaxis=reprxs    r0   <lambda>rv     s    5a	AR r2   )paramsidsc                    | j                   S )z@
    Fixture for returning the axis numbers of a DataFrame.
    paramrequests    r0   axisr~         
 ==r2   ro   c                    dt        |        S rq   rr   rt   s    r0   rv   rv     s    uT!WI5F r2   c                    | j                   S )zA
    Fixture for returning aliases of axis 1 of a DataFrame.
    rz   r|   s    r0   axis_1r     r   r2   )TFN)rw   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).
    rz   r|   s    r0   observedr   '       ==r2   c                    | j                   S )z6
    Boolean 'ordered' parameter for Categorical.
    rz   r|   s    r0   orderedr   4  r   r2   c                    | j                   S )z%
    Boolean 'skipna' parameter.
    rz   r|   s    r0   skipnar   <  r   r2   )firstlastFc                    | j                   S )z[
    Valid values for the 'keep' parameter used in
    .duplicated or .drop_duplicates
    rz   r|   s    r0   keepr   D       ==r2   )bothneitherleftrightc                    | j                   S )zA
    Fixture for trying all interval 'inclusive' parameters.
    rz   r|   s    r0   inclusive_endpoints_fixturer   M  r   r2   )r   r   r   r   c                    | j                   S )z<
    Fixture for trying all interval closed parameters.
    rz   r|   s    r0   closedr   U  r   r2   c                    | j                   S )zS
    Secondary closed fixture to allow parametrizing over all pairs of closed.
    rz   r|   s    r0   other_closedr   ]  r   r2   gzipbz2zipxztarzstd	zstandard)marksc                    | j                   S )zK
    Fixture for trying common compression types in compression tests.
    rz   r|   s    r0   compressionr   e       ==r2   c                    | j                   S )zk
    Fixture for trying common compression types in compression tests excluding
    uncompressed case.
    rz   r|   s    r0   compression_onlyr   w  r   r2   c                    | j                   S )z,
    Fixture that an array is writable.
    rz   r|   s    r0   writabler     r   r2   )innerouterr   r   c                    | j                   S )z:
    Fixture for trying all types of join operations.
    rz   r|   s    r0   	join_typer     r   r2   nlargest	nsmallestc                    | j                   S )z1
    Fixture for trying all nselect methods.
    rz   r|   s    r0   nselect_methodr     r   r2   c                ,    t        |       j                  S Ntype__name__rt   s    r0   rv   rv     s    d1g6F6F r2   c                    | j                   S )z/
    Fixture for each null type in pandas.
    rz   r|   s    r0   nulls_fixturer     r   r2   c                    | j                   S )zL
    Fixture for each null type in pandas, each null type exactly once.
    rz   r|   s    r0   unique_nulls_fixturer     r   r2   c                ,    t        |       j                  S r   r   rt   s    r0   rv   rv     s    Q8H8H r2   c                    | j                   S )z-
    Fixture for each NaT type in numpy.
    rz   r|   s    r0   np_nat_fixturer     r   r2   c                    | j                   S )z;
    Fixture to parametrize over DataFrame and Series.
    rz   r|   s    r0   frame_or_seriesr     r   r2   rn   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
    rz   r|   s    r0   index_or_seriesr     r   r2   )rn   r   arrayc                    | j                   S )zG
    Fixture to parametrize over Index, Series, and ExtensionArray
    rz   r|   s    r0   index_or_series_or_arrayr     r   r2   c                    | j                   S r   )r   rt   s    r0   rv   rv     s
    1:: r2   c                    | j                   S )z]
    Fixture to test behavior for Index, Series, DataFrame, and pandas Array
    classes
    rz   r|   s    r0   box_with_arrayr     r   r2   c                 $     G d dt               } | S )z,
    Fixture for a dictionary subclass.
    c                      e Zd ZddZy)"dict_subclass.<locals>.TestSubDictc                6    t        j                  | g|i | y r   )dict__init__)selfargskwargss      r0   r   z+dict_subclass.<locals>.TestSubDict.__init__   s    MM$000r2   NreturnNone)r   
__module____qualname__r   rl   r2   r0   TestSubDictr     s    	1r2   r   )r   )r   s    r0   dict_subclassr     s    1d 1 r2   c                 8     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y)	5non_dict_mapping_subclass.<locals>.TestNonDictMappingc                    || _         y r   )_data)r   underlying_dicts     r0   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__init__  s	    (DJr2   c                8    | j                   j                  |      S r   )r   __getitem__)r   keys     r0   r   zAnon_dict_mapping_subclass.<locals>.TestNonDictMapping.__getitem__  s    ::))#..r2   c                6    | j                   j                         S r   )r   __iter__r   s    r0   r   z>non_dict_mapping_subclass.<locals>.TestNonDictMapping.__iter__  s    ::&&((r2   c                6    | j                   j                         S r   )r   __len__r   s    r0   r   z=non_dict_mapping_subclass.<locals>.TestNonDictMapping.__len__  s    ::%%''r2   Nr   )r   r'   )r   int)r   r   r   r   r   r   r   rl   r2   r0   TestNonDictMappingr     s    	)	/	)	(r2   r   )r   Mapping)r   s    r0   non_dict_mapping_subclassr     s    (S[[ ( r2   c            	        t        t        j                  j                  d      j	                  d      t        t        d            t        ddd            } | j                  d	 d
 d g      j                         }|j                  j                  |j                  j                  D cg c]  }|j                  d       c}      |_
        |j                  j                  g dd       |S c c}w )z
    DataFrame with 3 level MultiIndex (year, month, day) covering
    first 100 business days from 2000-01-01 with random data
       )d      ABCD
2000-01-01r   Bperiodsfreq)ro   rn   c                    | j                   S r   )yearrt   s    r0   rv   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s
     r2   c                    | j                   S r   )r_   rt   s    r0   rv   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s
    177 r2   c                    | j                   S r   )dayrt   s    r0   rv   zAmultiindex_year_month_day_dataframe_random_data.<locals>.<lambda>*  s
    aee r2   i8)r   r_   r   T)inplace)r   rd   randomdefault_rngstandard_normalr#   listr   groupbysumrn   
set_levelslevelsastype	set_names)tdfymdlevs      r0   /multiindex_year_month_day_dataframe_random_datar    s     
		a 00:d6l#s=C
 ++'):OL
M
Q
Q
SC		$$#))BRBR%S3cjj&6%STCIII0$?J &Ts   +C0c                 :    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$   rl   r2   r0   %lexsorted_two_level_string_multiindexr  1  s+    
 ,.EF-/MN! r2   c                    | }t        t        j                  j                  d      j	                  d      |t        g dd            S )z2DataFrame with 2 level MultiIndex with random datar   )
   r  )Ar   Cexpr5   rn   ro   )r   rd   r   r   r   r#   )r  rn   s     r0    multiindex_dataframe_random_datar  =  s@    
 2E
		a 009oE2 r2   c                     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#   rd   r   r$   )
major_axis
minor_axismajor_codesminor_codesindex_namess        r0   _create_multiindexr&  J  sh     34Ju~&J((-.K((-.KH%KJ'K(	 r2   c            	     Z    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   rl   r2   r0   _create_mi_with_dt64tz_levelr/  ^  s5    
 ""
Q#sZ
A,OP% r2   objectr   pandas_dtypestringr   z
2020-01-01)r   zdatetime-tzz
US/Pacificr,  periodDr   r   z1 day)startr   r   rangeint8int16int32int64uint8uint16uint32uint64float32float64zbool-object
bool-dtype	complex64y              ?
complex128categoricalabcd   intervale   )numemptytuples)r
  r  r  )r[   r   r  mi-with-dt64tz-levelmultirepeats)r   r   r[   r[   r   r   nullable_intInt64nullable_uintUInt16nullable_floatFloat32nullable_boolbooleanzstring-pythonzstring[python]zstring[pyarrow]zstring-pyarrowc                D    t         | j                     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    r0   rn   rn     s     &++--r2   c                H    | j                   }t        |   j                         S )z8
    index fixture, but excluding MultiIndex cases.
    )r{   rZ  r[  )r}   r   s     r0   
index_flatr]    s!     --C!!##r2   )r   uintfloat)r8  rL  rP  rC  c                P   t         | j                     j                  d      }|j                  j                         }| j                  dv rA|j	                         }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)rM  rN  rO  r   r   r[   N)rZ  r{   r[  valuestolistr$   from_tuplesr   )r}   indvalss      r0   index_with_missingri    s    . w}}
%
*
*
*
5C::??D}}CCzz|DGABK'QT"Xab\)R%%d++QRtCyr2   c            
         t        t        j                  dt        j                        dz  t	        t        d      D  cg c]  } d|  	 c}       d      S c c} w )zC
    Fixture for Series of floats with Index of unique strings
       r2  g?i_r   rn   r5   )r   rd   arangerB  r#   r8  is    r0   string_seriesrq    sK    
 
		"BJJ'#-uRy1!r!X12 1s   Ac                     t        d      D  cg c]  } d|  	 }} t        t        d      D  cg c]  } d|  	 c}       }t        ||dt              S c c} w c c} w )zI
    Fixture for Series of dtype object with Index of unique strings
    rk  foo_bar_objectsrn   r5   r3  )r8  r#   r   r0  )rp  datarn   s      r0   object_seriesrx    sY    
 !&b	*1d1#J*D*uRy1!T!:12E$e)6BB +1s
   AAc                     t        t        j                  j                  d      j	                  d      t        ddd      d      S )z9
    Fixture for Series of floats with DatetimeIndex
    r   rk  r   r   r   tsrm  )r   rd   r   r   r   r   rl   r2   r0   datetime_seriesr{    s=    
 
		a 004r< r2   c                    t        |       }t        j                  j                  d      j	                  |      }t        || dd      S )zHelper for the _series dictr   r(  F)rn   r5   r[  )lenrd   r   r   r   r   )rn   sizerw  s      r0   _create_seriesr    s;    u:D99  #33D9D$e#E::r2   zseries-with-z-indexc                    t        |       S )zE
    Fixture for tests on series with changing types of indices.
    )r  rn   s    r0   series_with_simple_indexr    s    
 %  r2   z-seriesrk  zi-r(  rv  c                H    t         | j                     j                  d      S )z|
    Fixture for tests on indexes, series and series with a narrow dtype
    copy to avoid mutation, e.g. setting .name
    Tra  )_index_or_series_objsr{   r[  r|   s    r0   index_or_series_objr  %  s!     !/44$4??r2   c                H    t         | j                     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
    Tra  )_index_or_series_memory_objsr{   r[  r|   s    r0   index_or_series_memory_objr  ;  s!     (6;;;FFr2   c            
         t        t        j                  dt        j                        t	        t        d      D  cg c]  } d|  	 c}       t	        t        d                  S c c} w )zj
    Fixture for DataFrame of ints with index of unique strings

    Columns are ['A', 'B', 'C', 'D']
    rk  r   r2  rk  rs  r   r  )r   rd   onesr<  r#   r8  r   ro  s    r0   	int_framer  H  sO     
rxx(r3AtA3Z34d6l# 3s   A'c            
         t        t        j                  j                  d      j	                  d      t        t        d      D  cg c]  } d|  	 c}       t        t        d                  S c c} w )zm
    Fixture for DataFrame of floats with index of unique strings

    Columns are ['A', 'B', 'C', 'D'].
    r   r  rk  rs  r   r  )r   rd   r   r   r   r#   r8  r   ro  s    r0   float_framer  V  sZ     
		a 009r3AtA3Z34d6l# 3s   A0c                 z   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                  j	                  d      j                  t        |             |       S )zF
    Fixture for Series with a DatetimeIndex that has duplicates.
    i  r[   r   r  r   rZ   r  )r   r   rd   r   r   r   r}  )datess    r0   (rand_series_with_duplicate_datetimeindexr  d  s     	q!q!q!q!q!q!q!q!q!q!E "))''*::3u:FeTTr2   )r   r   r   g?g      ?z2012-01M)r   z	period[M]z
2012-02-01z	period[D]z
2011-01-01r+  )r-  s)unitr-  i  )secondsztimedelta64[ns]c                    | j                   S r   rz   r|   s    r0   ea_scalar_and_dtyper  |       ==r2   c                    | j                   S )zD
    Fixture for dunder names for common arithmetic operations.
    rz   r|   s    r0   all_arithmetic_operatorsr    r   r2   c                    | j                   S )zU
    Fixture for operator and roperator arithmetic, comparison, and logical ops.
    rz   r|   s    r0   all_binary_operatorsr        D ==r2   c                    | j                   S )z
    Fixture for operator and roperator arithmetic functions.

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

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

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

    * str
    * 'str'
    * 'U'
    rz   r|   s    r0   string_dtyper         ==r2   pythonpyarrow)string=string[python]string=string[pyarrow]string=str[pyarrow]string=str[python]c                L    | j                   \  }}t        j                  ||      S )z
    Parametrized fixture for string dtypes.
    * 'string[python]' (NA variant)
    * 'string[pyarrow]' (NA variant)
    * 'str' (NaN variant, with pyarrow)
    * 'str' (NaN variant, without pyarrow)
    )r{   re   StringDtyper}   storagena_values      r0   string_dtype_no_objectr    s#    0  GX>>'8,,r2   c                    | j                   S )za
    Parametrized fixture for string dtypes.

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

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

    * 'python'
    * 'pyarrow'
    rz   r|   s    r0   string_storager    r  r2   c                    | j                   S )z
    Parametrized fixture for StringDtype storage and na_value.

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

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

    * object
    * 'object'
    rz   r|   s    r0   object_dtyper  U  r  r2   )zstring=objectr  r  r  r  c                    t        | j                  t        j                        r| j                  S | j                  \  }}t	        j
                  ||      S )z
    Parametrized fixture for string dtypes.
    * 'object'
    * 'string[python]' (NA variant)
    * 'string[pyarrow]' (NA variant)
    * 'str' (NaN variant, with pyarrow)
    * 'str' (NaN variant, without pyarrow)
    )
isinstancer{   rd   r3  re   r  r  s      r0   any_string_dtyper	  `  sA    2 '--*}} $MM~~gx00r2   c                    | j                   S )z\
    Parametrized fixture for datetime64 dtypes.

    * 'datetime64[ns]'
    * 'M8[ns]'
    rz   r|   s    r0   datetime64_dtyper    r  r2   c                    | j                   S )z^
    Parametrized fixture for timedelta64 dtypes.

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

    * float
    * 'float32'
    * 'float64'
    rz   r|   s    r0   float_numpy_dtyper    r  r2   c                    | j                   S )zR
    Parameterized fixture for float dtypes.

    * 'Float32'
    * 'Float64'
    rz   r|   s    r0   float_ea_dtyper    r  r2   c                    | j                   S )z~
    Parameterized fixture for float dtypes.

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

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

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

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

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

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

    * 'UInt8'
    * 'Int8'
    * 'UInt16'
    * 'Int16'
    * 'UInt32'
    * 'Int32'
    * 'UInt64'
    * 'Int64'
    rz   r|   s    r0   any_int_ea_dtyper&    r  r2   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'
    rz   r|   s    r0   any_int_dtyper(     s    . ==r2   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'
    rz   r|   s    r0   any_numeric_ea_dtyper*  :  s    " ==r2   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]'
    rz   r|   s    r0   any_numeric_ea_and_arrow_dtyper,  P  s    @ ==r2   c                    | j                   S )z~
    Parameterized fixture for any signed nullable integer dtype.

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

    * int
    * 'int8'
    * 'uint8'
    * 'int16'
    * 'uint16'
    * 'int32'
    * 'uint32'
    * 'int64'
    * 'uint64'
    * float
    * 'float32'
    * 'float64'
    rz   r|   s    r0   any_real_numpy_dtyper0    s    $ ==r2   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.
    rz   r|   s    r0   any_real_numeric_dtyper2    s    ( ==r2   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'
    rz   r|   s    r0   any_numpy_dtyper4    r  r2   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]'
    rz   r|   s    r0   any_real_nullable_dtyper6    s    : ==r2   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'
    rz   r|   s    r0   any_numeric_dtyper8    s    > ==r2   cmixedbytes   a   czmixed-integerr   g       @floatingg      ?integerzmixed-integer-floatdecimal
datetime64z
2013-01-01z
2018-01-01r*  20180101r   i  i  complexy      ?      ?y       @       @r   c                ^    | 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
    r2  )r{   rd   r   r0  )r}   inferred_dtyperd  s      r0   any_skipna_inferred_dtyperF  2  s0    R %]]NFXXfF+F 6!!r2   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:)rO   )r8   importorskipIPython.core.interactiveshellrJ  traitlets.configrK  HistoryManager	hist_file)rJ  rK  r9  s      r0   iprQ  e  s<     	g6> (A!+A1%%r2   )bsrcoocsccsrdiadoklilc                ^    t        j                  d      }t        || j                  dz         S )z-
    Yields scipy sparse matrix classes.
    zscipy.sparse_matrix)r8   rL  getattrr{   )r}   sparses     r0   spmatrixr]  x  s*    
   0F67==9455r2   Tickc                    | j                   S )zN
    Fixture for Tick based datetime offsets available for a time series.
    rz   r|   s    r0   tick_classesr`    r  r2   c                    | S r   rl   rt   s    r0   rv   rv     s     r2   c                    | j                   S )zk
    Simple fixture for testing keys in sorting methods.
    Tests None (no key) and the identity key.
    rz   r|   s    r0   sort_by_keyrc    r   r2   )r
  NN)EgonVenkmanN)NCC1701Drf  rf  c                    | j                   S )zP
    A 3-tuple of names, the first two for operands, the last for a result.
    rz   r|   s    r0   r  r    s      ==r2   c                    | j                   S )zI
    Parametrize over __setitem__, loc.__setitem__, iloc.__setitem__
    rz   r|   s    r0   indexer_sliri    r   r2   c                    | j                   S )z<
    Parametrize over loc.__getitem__, iloc.__getitem__
    rz   r|   s    r0   
indexer_lirk    r   r2   c                    | j                   S )z8
    Parametrize over __setitem__, iloc.__setitem__
    rz   r|   s    r0   
indexer_sirm    r   r2   c                    | j                   S )z7
    Parametrize over __setitem__, loc.__setitem__
    rz   r|   s    r0   
indexer_slro    r   r2   c                    | j                   S )z:
    Parametrize over at.__setitem__, loc.__setitem__
    rz   r|   s    r0   
indexer_alrq    r   r2   c                    | j                   S )z<
    Parametrize over iat.__setitem__, iloc.__setitem__
    rz   r|   s    r0   indexer_ialrs    r   r2   c                 "    t        dd      dk(  S )z>
    Fixture to check if the array manager is being used.
    mode.data_managerTsilentr   r   rl   r2   r0   using_array_managerrx    s    
 *48GCCr2   c                 r    t         j                  j                  j                  du xr t	        dd      dk(  S )z7
    Fixture to check if Copy-on-Write is enabled.
    Tru  rv  blockre   optionsmodecopy_on_writer   rl   r2   r0   using_copy_on_writer    s5     	

%%- 	E+D9WDr2   c                 t    t         j                  j                  j                  dk(  xr t	        dd      dk(  S )z?
    Fixture to check if Copy-on-Write is in warning mode.
    warnru  Trv  rz  r{  rl   r2   r0   warn_copy_on_writer    s5     	

%%/ 	E+D9WDr2   c                 N    t         j                  j                  j                  du S )z=
    Fixture to check if infer string option is enabled.
    T)re   r|  futureinfer_stringrl   r2   r0   using_infer_stringr    s    
 ::))T11r2   zEurope/Warsawzdateutil/Europe/Warsawc                    | j                   S )zE
    tzinfo for Europe/Warsaw using pytz, dateutil, or zoneinfo.
    rz   r|   s    r0   warsawr    r   r2   c                      y)N)r  pyarrow_numpyrl   rl   r2   r0   arrow_string_storager    s    'r2   r   )r;   zpytest.Itemr<   r3   r=   r3   r   r   )r   z
type[dict])r   ztype[abc.Mapping])r   r$   )r   r   )r   r   )r  r3   r   zCallable[..., str])r   r   )r   z#tuple[Hashable, Hashable, Hashable])r   bool)r   r3   (E  __doc__
__future__r   collectionsr   r   r   r   r   r	   r@  r
   operatorr  typingr   r   dateutil.tzr   r   
hypothesisr   stnumpyrd   r8   pytzr   r   pandas._config.configr   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.dtypesr   r   pandasre   r   r   r   r   r   r   r   r   r   r   r    r!   pandas._testing_testingtmpandas.corer"   pandas.core.indexes.apir#   r$   pandas.util.versionr%   collections.abcr&   r'   r  pahas_pyarrowImportErrorzoneinfoZoneInfoZoneInfoNotFoundErrorr1   r>   rR   HealthChecktoo_slowhypothesis_health_checks__version__appenddiffering_executorssettingsregister_profiletupleload_profilesplitr5   r[  tseriesoffsetsclsregister_type_strategybuildsintegersbooleansfixturerg   rm   r~   
axis_framer   r   r   r   r   r   r   r   r{   
skip_if_nor   r   r   r   r   NULL_OBJECTSr   nulls_fixture2nanNaTr   unique_nulls_fixture2NP_NAT_OBJECTSr   np_nat_fixture2r   r   index_or_series2r   r   r   box_with_array2r   r   r  r  r  r&  r/  r8  r0  rn  r  r   from_breakslinspacerf  r   r  rZ  idxkeysrn   index_fixture2rN   r  r]  index_flat2
startswithri  rq  rx  r{  r  _seriesr  NARROW_NP_DTYPESr   _narrow_seriesr  r  PYTHON_DATA_TYPES_typ_objects_seriesr  r  r  r  r  r  arithmetic_dunder_methodsr  addraddsubrsubmulrmultruedivrtruedivfloordiv	rfloordivmodrmodpowrpoweqneltlegtgeand_rand_xorrxoror_ror_r  r  _all_numeric_reductionsr  _all_boolean_reductionsr  _all_reductionsr  r  r  r  _all_numeric_accumulationsr  r  r  	TIMEZONESextendrs   TIMEZONE_IDSparametrize_fixture_docr3   r  r  tz_aware_fixture2_UTCSr  utc_fixture2r  unit2STRING_DTYPESr  NAr  r  r  r  r  r  string_storage2string_dtype_arguments2BYTES_DTYPESr  OBJECT_DTYPESr  r3  r	  DATETIME64_DTYPESr  TIMEDELTA64_DTYPESr  r  FLOAT_NUMPY_DTYPESr  FLOAT_EA_DTYPESr  ALL_FLOAT_DTYPESr  COMPLEX_DTYPESr  COMPLEX_FLOAT_DTYPESr  SIGNED_INT_NUMPY_DTYPESr   UNSIGNED_INT_NUMPY_DTYPESr"  ALL_INT_NUMPY_DTYPESr$  ALL_INT_EA_DTYPESr&  ALL_INT_DTYPESr(  r*  ALL_INT_PYARROW_DTYPES_STR_REPRFLOAT_PYARROW_DTYPES_STR_REPRr,  SIGNED_INT_EA_DTYPESr.  ALL_REAL_NUMPY_DTYPESr0  ALL_REAL_DTYPESr2  ALL_NUMPY_DTYPESr4  ALL_REAL_NULLABLE_DTYPESr6  ALL_NUMERIC_DTYPESr8  rA  _any_skipna_inferred_dtyperx   _rF  rQ  r]  __all__
issubclassr^  r`  rc  r  setitemlocilocri  rk  rm  ro  atrq  iatrs  rx  r  r  r  warsawsr  r  )rp  r   valueindex_idrn   r3  os   0000000r0   <module>r#     s  & #     	
  '  
 . ) )
       (
 	K HeI$9<x '22;;< 
:!!"gh&77##J$:$:$N$NO    $ $  89 %         & 8==? D
"**$$d
+CBYRYYskbkk#r2kbkkmL 499; 
D
"**$$d
+CB		bkk"a !bkkm"++R8		

 @EEG 
D
"**$$d
+CB		bkk#r"!bkkm%"++R@		

( ! ! 1 1 17RS T 
 9~+FG H *+	 ,	 *+ , e}% & /0 1 ;< = ;< = ;< = V=2==#=>

 V=2==#=>		 e}% & :; < 
K01 2 r,FG H  bffbff-. / -  r((.HI J ! 	6*+ , vWh,?@	 A	 #  vrxx06RS T vy"((;AUV W ! 	 	  0  "   		 	((eE#J7qwqc]7vF(eE#J7qwqc]7uE( 
<5( :lCLI	(
 l<3?( w#F( Z_( E)"))C./( U9299S>1( U9299S>1( U9299S>1( U9299S>1( eIBIIcN(3( eIBIIcN(3( eIBIIcN(3(  uYRYYs^95!(" uYRYYs^95#($ 5$*&9%(& %u)6'(( 		#[)D9299S3T,TT)(. %		#\*TIBIIc4V-VV/(4 #DL2$565(6 )))+"++a#*FG7(8 U2Y9(: $j$$S)>	%JK;(< 8:=(> !?(@ u'(A(B E)"))C.8C(D U9299S>:E(F eIBIIcN)<G(H U9299S>006iHI(J Us4AGA3-4<LMK(R 
s<AGA3-<DUV
WC%(L!" |((*+. ,.  *002U*UJ:W
$
$   ',,.CNN34AA5*- 	

:   C C  ; (--/% 8*F#^E%:: ! ! $$	 	 ~~gb	E"I6qBqc(6S!  F<E7EnE  ,1134@ 5@ <>;O;O27u~~gu- 
      	   388:;G <G 
 
 
 
 U U. 	q	"M'7$CD	s#	&i(IJ			$k2	3	'5l|46	
 
3	!23
 r334 5 		5<=< $	%$	   ./ 0 !%.  ./ 0 *,CC ' ( 		 ?@	 A	 N G  12 3 < <  J 			GINLLYQ YR u-%	( Hl+He$	
 "++AQ+ C-.yl3 4 / CQR 012y},qr*:; < 3 %  
UWhll;	LL"""5)* u   ./ 0 	 r''( ) 	255i'}r}}Y/GHi(i0HI	266		-- &mbmmI.FG i(i0HIi'}r}}Y/GH** YmbmmI&>? 	255i'}r}}Y/GHi(i0HI	266		 YmbmmI&>? !0  r' ( r''( ) 	255i'}r}}Y/GHi(i0HI	266	 1! 1$ r++, - r,,- .   r,,- . r))* + r**+
 ,
 r(() * r../ 0 r112
 3
 r334	 5	 r../ 0" r++, -  r(() *2 r++b.@.@@A B* (() 	&&': r../	 0	 r//0 1( r))* +, r**+! ,!H r223 4> r,,- .F RVVS!"RUUC !sBFFC !tRVVT"#rvvrvvrvv&'bMsBFFA&'sBFFC !#rvvs#$BFFAQ,-RVVWQZ01rvvu%&ruue$%MBMM,/|9TUV)J':1FGHd4AT1a(89:() 9Q<167d1grvvtAw'(tbfffTl34(1a."&&(1a.9:3 6 
(	)Q 1s;," <,"d & &$ HI6 J6  ##gbjj!,bjjoo>1; 	

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

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

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

BFF+, - rvv' ( () * D D     2 2 4
5NN$8$$_56 w   ( (k=  K %% HJ 87H 5 =0"`  7(~
 ,ls   1Ax2 =Ay  Ay0Ay7Ay"-Ay'Ay,
'Ay,
+Ay2
)Ay8('AzAy>Az*Az	C!AzlAAzx2Ax=x<Ax=y AyyAyy>Az