a
    Pf'j                     @   s   d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ G dd dZG dd	 d	ZG d
d dZG dd dZG dd dZdS )    N)IncompatibleFrequency)PeriodDtype)IndexNaTPeriodPeriodIndexSeries
date_rangeoffsetsperiod_range)PeriodArrayc                   @   sZ   e Zd Zejdg ddd Zejdg ddd Zejd	g d
dd ZdS )TestPeriodIndexDisallowedFreqszfreq,freq_depr))2M2ME)2Q-MARz2QE-MAR)2Y-FEBz2YE-FEB)r   Z2me)r   z2qe-MAR)r   z2yE-febc                 C   s   d|dd   d|dd   d}t jt|d  tddg|d W d    n1 sV0    Y  t jt|d tdd|d	 W d    n1 s0    Y  d S )
Nzfor Period, please use '   z' instead of ''matchz
2020-01-01z
2020-01-02freqstartendr   )pytestraises
ValueErrorr   r   )selfr   	freq_deprmsg r!   f/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/indexes/period/test_constructors.py1test_period_index_offsets_frequency_error_message   s
    ".zPTestPeriodIndexDisallowedFreqs.test_period_index_offsets_frequency_error_messager   )Z2SMEZ2smeZ2CBMEZ2BYEZ2Byec                 C   s   d|dd   }t jt|d tdd|d W d    n1 sD0    Y  t jt|d  tddg|d W d    n1 s0    Y  d S )NInvalid frequency: r   r   z2020-01z2020-05r   )r   r   r   r   r   )r   r   r    r!   r!   r"   (test_period_index_frequency_invalid_freq,   s
    ,zGTestPeriodIndexDisallowedFreqs.test_period_index_frequency_invalid_freqr   )z2BQE-SEPz2BYE-MARZ2BMEc                 C   sZ   d|dd   }t dd|d}tjt|d |  W d    n1 sL0    Y  d S )Nr$   r   z01-Jan-2012   periodsr   r   )r	   r   r   r   	to_period)r   r   r    rngr!   r!   r"   2test_period_index_from_datetime_index_invalid_freq6   s    zQTestPeriodIndexDisallowedFreqs.test_period_index_from_datetime_index_invalid_freqN)	__name__
__module____qualname__r   markparametrizer#   r%   r+   r!   r!   r!   r"   r      s   


	r   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zej	d	e
ejeejgd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zej	dg dd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zej	d,d-d.ged-d.ggd/d0 Z d1d2 Z!d3d4 Z"ej	d5g d6ej	d7g d8d9d: Z#ej	d7g d8d;d< Z$d=d> Z%d?d@ Z&dAdB Z'dCdD Z(ej	dEg dFej)dGej)dHdIdJ Z*dKdL Z+dMS )NTestPeriodIndexc                 C   s   t ddd t ddd d}tjt|d  tg ddd}W d    n1 sP0    Y  tjt|d& ttg ddd}W d    n1 s0    Y  t|| tjg ddd}t|| tjtg ddd}t|| d S )	NiYordinalr   r   2The 'ordinal' keyword in PeriodIndex is deprecatedr   )r   r   r   )	r   tmassert_produces_warningFutureWarningr   nparrayassert_index_equalZfrom_ordinals)r   r    Zidx1Zidx2Zalt1Zalt2r!   r!   r"   test_from_ordinalsA   s    .4z"TestPeriodIndex.test_from_ordinalsc              	   C   s~  t dd}d}d}d}tjt|dT tjt|d& t|g|jg|j	d W d    n1 s`0    Y  W d    n1 s~0    Y  d}tjt|dT tjt|d& t|g|j
g|j	d	 W d    n1 s0    Y  W d    n1 s0    Y  d
}tjt|dX tjt|d( t|jg|j
g|j	d W d    n1 sP0    Y  W d    n1 sp0    Y  d S )N
2016-01-01Dr5   2Constructing PeriodIndex from fields is deprecatedz!Cannot pass both data and ordinalr   )datar4   r   z Cannot pass both data and fields)rA   yearr   z#Cannot pass both ordinal and fields)r4   rB   r   )r   r   r   r   r7   r8   r9   r   r4   r   rB   )r   ZperZ	depr_msg1Z	depr_msg2Zerr_msg1Zerr_msg2Zerr_msg3r!   r!   r"   test_keyword_mismatchR   s    
RRz%TestPeriodIndex.test_keyword_mismatchc                 C   s   t dddtt dddg}tt|t| ttt|tt| tjtt dddg}tt|t| ttt|tt| t dddtt dddg}tt|t|t	d ttt|tt|t	d d S )N2011-01Mr   2011-03r?   dtype)
r   r   r7   r<   r   r   r:   r;   nanobject)r   arrr!   r!   r"   "test_construction_base_constructorg   s      z2TestPeriodIndex.test_construction_base_constructorc                 C   s8   t d}g d}t||d}t||d}t|| d S )Nr?   )
2011-01-01z
2012-03-04z
2014-05-01rG   )r   r   r   r7   r<   )r   rH   valuesresultexpectedr!   r!   r"   'test_base_constructor_with_period_dtypev   s
    z7TestPeriodIndex.test_base_constructor_with_period_dtypevalues_constructorc                 C   sV   t dddtt dddg}||}t|td}t|tu s>J t|jt	| d S )NrD   rE   r   rF   rG   )
r   r   r   rJ   typer7   assert_numpy_array_equalrN   r:   r;   )r   rR   r(   rN   rO   r!   r!   r"   test_index_object_dtype~   s    

z'TestPeriodIndex.test_index_object_dtypec                 C   s   d}t jt|d tddd}W d    n1 s40    Y  d}t jt|d tdddd}W d    n1 st0    Y  t jt|d t|dd	}W d    n1 s0    Y  t || d S )
N#Period with BDay freq is deprecatedr   z4/2/2012Br   PeriodDtype\[B\] is deprecated
   r   r(   r   r   r(   )r7   r8   r9   r   r   r<   )r   Zmsg1pZmsg2rP   indexr!   r!   r"   test_constructor_use_start_freq   s    *,*z/TestPeriodIndex.test_constructor_use_start_freqc              	   C   s  t ddddd }t t ddddd }d	}tjt|d
 t||dd}W d    n1 sl0    Y  tdddd}t	|| tjt|d
 t||dd}W d    n1 s0    Y  t
|j|j tjt|d
 t||d}W d    n1 s0    Y  t	|| g d}ddg}d}tjt|d
N tjt|d
 t||dd W d    n1 s|0    Y  W d    n1 s0    Y  tjt|d
N tjt|d
 t||dd W d    n1 s0    Y  W d    n1 s
0    Y  g d}g d}tjt|d
 t||dd}	W d    n1 sX0    Y  tdddd}
t	|	|
 d S )Ni  i        r         r@   r   Q-DECrB   quarterr   Z1990Q3Z2009Q2r   z2Q-DECrB   rf   )  rh   rh   zMismatched Period array lengthsrE   )rB   monthr   r   )r   r`      2007-01rj   r'   )r:   arangerepeattiler7   r8   r9   r   r   r<   rT   asi8r   r   r   )r   yearsquartersdepr_msgr]   rP   index2monthsr    idxexpr!   r!   r"   test_constructor_field_arrays   s8    ,,,NN.z-TestPeriodIndex.test_constructor_field_arraysc                 C   sb   t tdddtddddd}ttdddtdddtdddtdddgdd}t|| d S )	Nr   nsr3   r_   r   r`   rj   r   )r   r   r   r7   r<   r   ru   rv   r!   r!   r"   test_constructor_nano   s    





	z%TestPeriodIndex.test_constructor_nanoc                 C   s   t jddt jdd}t t jg dt jdd}d}tjt|d t	||d	}W d    n1 sh0    Y  t
|jt| t
|jt| t	j||d	}t
|| d S )
Ni    rG   r_   )r   r`   rj   r_   (   r@   r   rg   )r:   rl   int64rm   rn   r;   r7   r8   r9   r   r<   rB   r   rf   Zfrom_fields)r   rp   rq   r    ZpindexZaltr!   r!   r"   %test_constructor_arrays_negative_year   s    *z5TestPeriodIndex.test_constructor_arrays_negative_yearc              	   C   s   d}d}t jt|dZ tjt|d, ttddttddd W d    n1 sX0    Y  W d    n1 sv0    Y  d S )	Nr@   zQuarter must be 1 <= q <= 4r   r{   i  r_   rd   re   )	r   r   r   r7   r8   r9   r   rangelist)r   rr   r    r!   r!   r"   !test_constructor_invalid_quarters   s    z1TestPeriodIndex.test_constructor_invalid_quartersc                 C   s^   d}t jt|d tdddd}W d    n1 s60    Y  tdddd}t || d S )Nz:Non-integer 'periods' in pd.date_range, pd.timedelta_ranger   rk   g      %@rE   r'   rY   )r7   r8   r9   r   r<   )r   r    rO   rv   r!   r!   r"   #test_period_range_fractional_period   s
    ,z3TestPeriodIndex.test_period_range_fractional_periodc                 C   s8   t ddd}t|d|jd}t|dd}t|| d S )Nz2002-01-01 00:00Z30minr   rb   rZ   r[   )r   r   r   r7   r<   )r   r   rv   rO   r!   r!   r"   "test_constructor_with_without_freq   s    z2TestPeriodIndex.test_constructor_with_without_freqc                 C   s  t dddd}tt|j| ttt|j| d}tjt|d t|j	 W d    n1 sh0    Y  tjt|d tt|j	 W d    n1 s0    Y  d}tjt
|d" ttdd	d
d W d    n1 s0    Y  tt|}t|| t|}t|| t|dd
}t|| t|t d
}t|| |jdksbJ t|dd
}t||d |jdksJ t|tdd
}t||d |jdksJ t|dd
}|dd}t|| d S )Nrk   rc   rE   r'   z)freq not specified and cannot be inferredr   z'Period' object is not iterableZ2007r2   r   )rA   MEr   r   r`   r?   e)r   r7   r<   r   rN   r   r   r   r   ro   	TypeErrorr   iterr
   ZMonthEndr   Zasfreq)r   ru   r    rO   rv   r!   r!   r"   test_constructor_fromarraylike   s:    (,0z.TestPeriodIndex.test_constructor_fromarraylikec                 C   sR   t jdddt jd}|t d}t|dd}t|ddd}t|| d S )	Ni i d   rG   zM8[us]r?   r   zM8[ns])	r:   rl   r}   viewrH   r   Zastyper7   r<   )r   valspirP   r!   r!   r"   test_constructor_datetime64arr!  s
    z.TestPeriodIndex.test_constructor_datetime64arrbox)Nseriesr]   c                 C   sZ   t dddd}|d u r|j}n|dkr.t|}t|dd}tg ddd}t|| d S )	NZ2017r_   r   r'   r   r?   r   )z
2017-01-31z
2017-02-28z
2017-03-31z
2017-04-30)r	   Z_valuesr   r   r7   r<   )r   r   rA   rO   rP   r!   r!   r"   !test_constructor_datetime64arr_ok*  s    z1TestPeriodIndex.test_constructor_datetime64arr_okc                 C   s(  t ddgdd}t ddgdd}t|| |jdks:J t ddgd	d}t ddgd
d}t|| |jd	kstJ t ddgdd}t |dd}t ddgdd}t|| |jdksJ t |dd}t|| |jdksJ d}tjt|d  t dgddd W d    n1 s0    Y  d S )Nz2013-01z2013-03z	period[M]rG   rE   r   z
2013-01-05z
2013-03-05z
period[3D]3Dz
2013-01-01z
2013-01-02r?   z&specified freq and dtype are differentr   rD   z	period[D])r   rH   )r   r7   r<   rH   r   r   r   )r   ru   rv   resr    r!   r!   r"   test_constructor_dtype9  s&    z&TestPeriodIndex.test_constructor_dtypec                 C   sr   t g dd}t|t sJ t|dks*J |jdks8J tjtdd t g  W d    n1 sd0    Y  d S )NrE   r   r   r   freq not specifiedr   )r   
isinstancelenr   r   r   r   )r   ru   r!   r!   r"   test_constructor_emptyV  s    z&TestPeriodIndex.test_constructor_emptyc              
   C   s  t tdddttdddg}t g ddd}t|| t ttdddttdddg}t|| t tttdddtdddg}t g ddd}t|| t ttttdddtdddg}t|| t ttddgdd}t|| tjt	dd t ttg W d    n1 s*0    Y  tjt	dd" t tttg W d    n1 sl0    Y  tjt	dd t ddg W d    n1 s0    Y  tjt	dd" t tddg W d    n1 s0    Y  d S )	NrD   rE   r   rD   r   rD   )r   r   rD   rD   r   r   r   )
r   r   r   r7   r<   r:   r;   r   r   r   ry   r!   r!   r"   test_constructor_pi_nat_  s<    ,2,z'TestPeriodIndex.test_constructor_pi_natc              
   C   sF  d}t jt|d. ttdddttdddg W d    n1 sF0    Y  t jt|d4 tttdddttdddg W d    n1 s0    Y  t jt|d. tttdddtdddg W d    n1 s0    Y  t jt|d4 ttttdddtdddg W d    n1 s80    Y  d S )Nz5Input has different freq=D from PeriodIndex\(freq=M\)r   rD   rE   r   r?   )r   r   r   r   r   r   r:   r;   r   r    r!   r!   r"   test_constructor_incompat_freq  s"    <"<z.TestPeriodIndex.test_constructor_incompat_freqc                 C   s   t dttdddg}t g ddd}t|| t dttdddg}t g ddd}t|| t tdddtd	g}t g d
dd}t|| d S )NrD   rE   r   r   r   )r   r   rD   rM   r?   
2012-01-01)rM   r   r   )r   r   r   r7   r<   ry   r!   r!   r"   test_constructor_mixed  s    z&TestPeriodIndex.test_constructor_mixedfloats皙? @c                 C   s>   d}t jt|d t| W d    n1 s00    Y  d S )Nz9PeriodIndex does not allow floating point in constructionr   )r   r   r   r   )r   r   r    r!   r!   r"   test_constructor_floats  s    z'TestPeriodIndex.test_constructor_floatsc                 C   s   t g d}|d }d}tjt|d t||d}W d    n1 sH0    Y  dd t||D }ttt|}t|}t	|| d S )N)i  i  i  r{   r@   r   rg   c                 S   s&   g | ]}|d  dd|d dqS )r   dQr   r!   ).0tr!   r!   r"   
<listcomp>      zETestPeriodIndex.test_constructor_year_and_quarter.<locals>.<listcomp>)
r   r7   r8   r9   r   zipr   mapr   r<   )r   rB   rf   r    ru   strsZlopsr\   r!   r!   r"   !test_constructor_year_and_quarter  s    *z1TestPeriodIndex.test_constructor_year_and_quarterc                 C   sD  t dddd}tg ddd}t|| t ddd	d
}tg dd	d}t|| t dddd}tg ddd}t|| d}tjt|d tdgdd W d    n1 s0    Y  d}tjt|d tdgdd W d    n1 s0    Y  d}tjt|d t dddd W d    n1 s60    Y  d S )N2014-01r   r_   r   r   r(   )r   z2014-03z2014-05z2014-07r   
2014-01-02z
2014-01-15r   r   )r   z
2014-01-05z
2014-01-08z
2014-01-11z
2014-01-142014-01-01 17:00Z4hrj   )r   r   r(   )z2014-01-01 09:00z2014-01-01 13:00r   z;Frequency must be positive, because it represents span: -1Mr   rD   z-1Mz:Frequency must be positive, because it represents span: 0MZ0Mr'   )r   r   r7   r<   r   r   r   )r   pidxrP   r    r!   r!   r"   test_constructor_freq_mult  s.    ,,z*TestPeriodIndex.test_constructor_freq_multzfreq_offset, freq_period))ZYEr2   )r   rE   )r?   r?   )minr   )sr   mult)r   r`   rj   r_   rb   c                 C   sJ   t || }t || }td|dd}td|dd|}t|| d S )N
2014-04-01rY   r   )strr   r	   r)   r7   r<   )r   r   Zfreq_offsetZfreq_periodZfreqstr_offsetZfreqstr_periodr   rP   r!   r!   r"   %test_constructor_freq_mult_dti_compat  s    z5TestPeriodIndex.test_constructor_freq_mult_dti_compatc                 C   sD   t d| ddd}td| ddd| d}t|| d S )Nr   rE   rY   r   r   )r   r	   r)   r7   r<   )r   r   r   rP   r!   r!   r"   +test_constructor_freq_mult_dti_compat_month  s    z;TestPeriodIndex.test_constructor_freq_mult_dti_compat_monthc                 C   sb   dD ]$}t ddg|d}t ddgdd}qdD ].}tdd|d	}t dd
gdd}t|| q.d S )N)Z1D1hZ1h1Dr>   z
2016-01-02r   z2016-01-01 00:00z2016-01-02 00:00Z25hr`   rZ   z2016-01-02 01:00)r   r   r7   r<   )r   r   r   rP   r!   r!   r"   test_constructor_freq_combined  s    z.TestPeriodIndex.test_constructor_freq_combinedc                 C   sv  t dddd}t|dksJ t dddd}t|dks<J t dddd}t|d	ksZJ t d
ddd}t|dksxJ d}tjt|d t dddd}W d    n1 s0    Y  t|dksJ t dddd}t|dksJ t dddd}t|dksJ t dddd}t|dks&J tjt|d& tdd}t |dd}W d    n1 sb0    Y  t|dks~J |j|jksJ |d |ksJ tdd}t |d d!}t|d ksJ |j|jksJ |d" |ksJ d#}tjt|d tdd$}W d    n1 s"0    Y  t |d d!}t|t|ksNJ ||k s`J |j|jksrJ d S )%Nr2   z1/1/2001z	12/1/2009)r   r   r   	   r   $   rE   l   r?   z
12/31/2009i  rV   r   rW   i-	  hz12/31/2001 23:00i8"  ZMinz1/1/2001 23:59i  r   z1/1/2001 23:59:59iQ 02-Apr-2005rc   r[   r   
2006-12-31WrY   )r   r(   r6   :'w' is deprecated and will be removed in a future version.Z1w)r   r   r7   r8   r9   r   r   all)r   r   r    r   i1end_intvi2r!   r!   r"   test_period_range_length  sH    ,
,
*z(TestPeriodIndex.test_period_range_lengthc                 C   s   d}t jt|dB tdd}tdd}t||d t|tddg}W d    n1 sZ0    Y  t|dkstJ |d	 |ksJ t jt|d( tt|tddg}W d    n1 s0    Y  t|dksJ |d	 |ksJ d S )
NrV   r   r   rW   
2005-05-01)r   r   z
2005-05-05r`   r   )	r7   r8   r9   r   r   r   r   r:   r;   )r   r    r   r   r   r!   r!   r"   "test_infer_freq_from_first_element1  s    

06z2TestPeriodIndex.test_infer_freq_from_first_elementc              	   C   s^  d}t jt|d tdd}W d    n1 s20    Y  d}t jt|d |tddg}W d    n1 sr0    Y  d}d	}tjt|dF t jt|d t| W d    n1 s0    Y  W d    n1 s0    Y  t	|}tjt|dH t jt|d t| W d    n1 s00    Y  W d    n1 sP0    Y  d S )
NrV   r   r   rW   r   r   wz9Input has different freq=W-SUN from PeriodIndex\(freq=B\)rX   )
r7   r8   r9   r   r   r   r   r   r:   r;   )r   r    r   r   rr   r!   r!   r"   test_mixed_freq_raisesB  s    (,D
z&TestPeriodIndex.test_mixed_freq_raisesr   )rE   r   r2   r?   rW   r   r   msusrx   r   z8ignore:Period with BDay freq is deprecated:FutureWarningz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   s,   t d|dd}t|j|d}t|| d S )Nz
2001/04/01r   r   r   )r   r   rN   r7   r<   )r   r   orgru   r!   r!   r"   test_recreate_from_dataU  s    z'TestPeriodIndex.test_recreate_from_datac                 C   sd   g d}t |dd}tdd |D }|t}t|ts>J tdd |D sTJ t|| d S )N)i  rh   i  r2   r   c                 S   s   g | ]}t |qS r!   )r   )r   numr!   r!   r"   r   e  r   zDTestPeriodIndex.test_map_with_string_constructor.<locals>.<listcomp>c                 s   s   | ]}t |tV  qd S )N)r   r   )r   Zresir!   r!   r"   	<genexpr>l  r   zCTestPeriodIndex.test_map_with_string_constructor.<locals>.<genexpr>)r   r   r   r   r   r   r7   r<   )r   rawr]   rP   r   r!   r!   r"    test_map_with_string_constructora  s    
z0TestPeriodIndex.test_map_with_string_constructorN),r,   r-   r.   r=   rC   rL   rQ   r   r/   r0   r   r:   r;   r   r   Z_from_sequencerU   r^   rw   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   filterwarningsr   r   r!   r!   r!   r"   r1   @   sb   
&	*	
	(

	
	0
r1   c                   @   sD   e Zd Zdd Zdd Zejdddge	ddggdd	 Z
d
S )TestSimpleNewc                 C   s   t ddddd}tjtdd |j|dd W d    n1 sB0    Y  |j|jdd}t|| d	}tjt|d, t|jjt	|j
|jd
 W d    n1 s0    Y  t|jj|j
|jd
}|j|dd}t|| d S )Nrk   r\   r`   rE   )namer(   r   <class .*PeriodIndex'>r   r   z Should be numpy array of type i8rG   )r   r   r   AssertionError_simple_new_datar7   r<   rS   r   ro   rH   )r   ru   rO   r    rK   r!   r!   r"   test_constructor_simple_news  s    ,:z)TestSimpleNew.test_constructor_simple_newc                 C   sj   t g ddd}tjtdd |j|dd W d    n1 s@0    Y  |j|jdd}t|| d S )NrE   r\   )r   r   r   r   r   )r   r   r   r   r   r   r7   r<   )r   ru   rO   r!   r!   r"   !test_constructor_simple_new_empty  s
    ,z/TestSimpleNew.test_constructor_simple_new_emptyr   r   r   c                 C   s<   t jtdd t| W d    n1 s.0    Y  d S )Nz<class r   )r   r   r   r   r   )r   r   r!   r!   r"   -test_period_index_simple_new_disallows_floats  s    z;TestSimpleNew.test_period_index_simple_new_disallows_floatsN)r,   r-   r.   r   r   r   r/   r0   r:   r;   r   r!   r!   r!   r"   r   r  s   	r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestShallowCopyc                 C   s(   t g dd}| }|}t|| d S )NrE   r   )r   Z_viewr7   r<   )r   ru   rO   rP   r!   r!   r"   test_shallow_copy_empty  s    z'TestShallowCopy.test_shallow_copy_emptyc                 C   sL   t dddd}tjtdd ||j W d    n1 s>0    Y  d S )N
2018-01-01rj   2Dr'   Zndarrayr   )r   r   r   r   _shallow_copyro   r   r   r!   r!   r"   test_shallow_copy_disallow_i8  s    z-TestShallowCopy.test_shallow_copy_disallow_i8c                 C   sJ   t dddd}tjtdd || W d    n1 s<0    Y  d S )Nr   rj   r   r'   r   r   )r   r   r   r   r   r   r!   r!   r"   0test_shallow_copy_requires_disallow_period_index  s    z@TestShallowCopy.test_shallow_copy_requires_disallow_period_indexN)r,   r-   r.   r   r   r   r!   r!   r!   r"   r     s   r   c                   @   s   e Zd Zdd Zdd ZdS )TestSeriesPeriodc                 C   sL   d}t jt|d& ttddddtd W d    n1 s>0    Y  d S )Nz(Cannot cast PeriodIndex to dtype float64r   z
2000-01-01rY   r?   r'   rG   )r   r   r   r   r   floatr   r!   r!   r"   !test_constructor_cant_cast_period  s    z2TestSeriesPeriod.test_constructor_cant_cast_periodc                 C   s4   t ddd}t|tdd}t|}t|| d S )Nz1/1/2000rY   )r(   r?   rG   )r   r   r   r7   Zassert_series_equal)r   r   Zserrv   r!   r!   r"   test_constructor_cast_object  s    z-TestSeriesPeriod.test_constructor_cast_objectN)r,   r-   r.   r   r   r!   r!   r!   r"   r     s   r   )numpyr:   r   Zpandas._libs.tslibs.periodr   Zpandas.core.dtypes.dtypesr   Zpandasr   r   r   r   r   r	   r
   r   Zpandas._testingZ_testingr7   Zpandas.core.arraysr   r   r1   r   r   r   r!   r!   r!   r"   <module>   s   (
*    6"