
    Mhi                    l   S r SSKJrJrJrJr  SSKJr  SSKJr	  SSK
rSSKrSSKrSSKJr  SSKrSSKJrJrJrJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJ r   \RB                  RE                  S5      r#\RB                  RI                  S5      r%\RB                  RI                  S5      r&\%S 5       r'\%S 5       r(\%S 5       r)\RB                  RU                  SSS/5      S 5       r+\RB                  RU                  S\,\-\\/5      \RB                  RU                  SSS/5      S 5       5       r.\RB                  RU                  SSS/5      S 5       r/S r0S r1S r2\%S 5       r3\RB                  RU                  SS SS//S!4S"S#SS/0S$4/5      S% 5       r4S& r5\%S' 5       r6\&S( 5       r7\&S) 5       r8\%S* 5       r9\RB                  Ru                  S+S,9\RB                  RU                  S-S.S///SS///5      S0 5       5       r;\%\RB                  RU                  S-SS/S1S2//5      S3 5       5       r<\%\RB                  RU                  S4SS/SS//5      S5 5       5       r=\%\RB                  RU                  S6S7S0S8S0/5      S9 5       5       r>S: r?\%\RB                  RU                  S;S<SS/0S<4S<SS/0S4SS//S4/5      S= 5       5       r@\%S> 5       rAS? rBS@ rC\RB                  RU                  S60 S4SA0/5      SB 5       rD\RB                  RU                  S-SC\R                  " SDSE/5      SSF1/5      SG 5       rF\RB                  RU                  SHSS/5      \RB                  RU                  SISJSK/5      SL 5       5       rG\RB                  RU                  SHSS/5      \RB                  RU                  SISM/5      SN 5       5       rH\%SO 5       rI\RB                  RU                  SPSQSR/5      SS 5       rJ\RB                  RU                  SPSQSR/5      ST 5       rK\%\RB                  RU                  SUSVS-S1/0\" \" SWSDSX5      /S1/SY94SVSSSZ.\" \" S[/S1S\9/ S]94S^S-S1S_/0\" \" SWSDSX5      \" S`SaSb5      //S1S_/SY94S^SSS/SZ.\" \R                  " \" SWSDSX5      \" S`SaSb5      4/S1S_/Sc9/ S]94/5      Sd 5       5       rM\%Se 5       rN\RB                  RU                  SUSfSSgSS/0Sh.\" \" SiSSESjSS5      SkSj/\" SiSSESSS5      SlSm/// SnQSY94SoSSS/SSF/Sp.Sh.\" \" SqSSrSsS5      \" SqSSrStSu5      SvSw/\" SqSSrSxS5      \" SqSSrSsSu5      SvSy/\" SqSSrSzS5      \" SqSSrSxSu5      SvS{/\" SqSSrSzS5      \" SqSSrSzSt5      SvS|/\" SqSSrS}S5      \" SqSSrSzSu5      SvS{/\" SqSSrS~S5      \" SqSSrS}Su5      SvS{/// SQSY94/5      S 5       rOS rP\RB                  RU                  SSS \Q4S/5      S 5       rR\RB                  RU                  SSS \Q4S/5      S 5       rSS rT\%S 5       rUS rV\RB                  RU                  SS\" S1SS/0SS94S\" S1/ SQ0SS94/5      \RB                  RU                  S-SS/5      S 5       5       rWS rX\&\RB                  RU                  S/ SQ5      S 5       5       rY\RB                  RU                  SSS\" SSS5      4SS\" SSS5      4SS\" SSSD5      4/5      S 5       rZ\&\RB                  RU                  SSS\" SSS5      4SS\" SSS5      4/5      S 5       5       r[S r\\&\RB                  RU                  SSS/S.S//S4SS/SS//S/4SS/S.S///S4SS/SS///S/4SS/S.SS//0S/4SS/S.S.S//0S4SS/S.S//S./S4/ SQSS.S//S4/ SQSS/SS//S/4/	5      S 5       5       r]\%S 5       r^\%S 5       r_\%\RB                  RU                  SSS//S4SSS/0S4/5      S 5       5       r`S ra\%S 5       rbS rc\RB                  RU                  S\R                  " SSSS9\R                  " SSSS9/5      S 5       re\&S 5       rf\%\RB                  RU                  SSS \Q4S/5      S 5       5       rg\%S 5       rhS riS rj\RB                  RU                  SSSS//4SSSS/04/5      S 5       rk\%S 5       rlS rm\%S 5       rng)zO
Tests date parsing functionality for all of the
parsers defined in parsers.py
    )datedatetime	timedeltatimezone)StringIO)parseN)parsing)	DataFrameDatetimeIndexIndex
MultiIndexSeries	Timestamp)
date_range)start_caching_at)read_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrow_xfailpyarrow_skipc           
      *   S n[        S5      nU R                  [        SUSSUSS9n/ SQn[        R                  " U Vs/ s H  n[        R
                  " USS	9PM     snSS
9n[        / SQ/ SQ/ SQS.US9n[        R                  " X65        g s  snf )Nc                     U R                  [        R                  5      n U R                  [        5      n [        R
                  " U SS9$ Nsunitastypenpfloat64intpdto_timedeltatimes    Y/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_parse_dates.py__custom_date_parserCtest_read_csv_with_custom_date_parser.<locals>.__custom_date_parser/   3    {{2::&{{3t#..    a  time e n h
        41047.00 -98573.7297 871458.0640 389.0089
        41048.00 -98573.7299 871458.0640 389.0089
        41049.00 -98573.7300 871458.0642 389.0088
        41050.00 -98573.7299 871458.0643 389.0088
        41051.00 -98573.7302 871458.0640 389.0086
         Please use 'date_format' insteadTr#   delim_whitespaceparse_datesdate_parser	index_col)iW  iX  iY  iZ  i[  r   r   name)g>٬Vgzr1   g1)禛 D*Ar2   g D*Ag D*Ar2   )St$Px@r3   Gx$Px@r4   g9#Px@)enhindex)	r   read_csv_check_warningsFutureWarningr    TimedeltaIndexr!   r
   tmassert_frame_equal)all_parsersr%   testdataresultr#   iexpecteds          r$   %test_read_csv_with_custom_date_parserrD   ,   s    /
 	H 00*( 1 F /DDIDqbooac:DIPVWDRRC	

 H &+ Js    Bc           
          S n[        S5      nU R                  [        SUSSUSS9n[        / SQSS	9n[	        S
/ SQ0US9n[
        R                  " X55        g )Nc                     U R                  [        R                  5      n U R                  [        5      n [        R
                  " U SS9$ r   r   r"   s    r$   r%   Utest_read_csv_with_custom_date_parser_parse_dates_false.<locals>.__custom_date_parserW   r'   r(   ztime e
        41047.00 -93.77
        41048.00 -95.79
        41049.00 -98.73
        41050.00 -93.99
        41051.00 -97.72
        r)   TFr#   r*   )g    
@g     @g     @g    @@g    `@r/   r5   )gzGqWg(\WgQXg(\WgGznXr8   )r   r:   r;   r   r
   r=   r>   )r?   r%   r@   rA   r#   rC   s         r$   7test_read_csv_with_custom_date_parser_parse_dates_falserH   T   sy    /
 	H 00*( 1 F D6RD	67H
 &+r(   c           
          U nSn[        [        SSSSSS5      S//SS/S	9nS
n[        R                  " [        USS9   UR                  [        U5      SSSSS/0S S9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)Nz06-02-2013;13:00;1-000.215           r   gQA@DatecolumnsKSupport for nested sequences for 'parse_dates' in pd.read_csv is deprecatedFmatchcheck_stacklevel;-   )sep	thousandsr,   header)r
   r   r=   assert_produces_warningr;   r   r   r>   )r?   parserdatarC   depr_msgdfs         r$   test_separator_date_conflictr`   w   s     F'D
4Ar1a
((	34vqkH
 	V  
	#	#X
 __TN!Q(  

 "h'
 
s   !A??
Bkeep_date_colTFc                 d   SnU nU(       a>  UR                   S:X  a.  [        R                  R                  SS9nUR	                  U5        S nS USS/SS/S	.U/ S
QS.nUR
                  " [        S[        U5      40 UDSS0D6n[        [        SSSSS5      [        SSSSS5      SSSSSSSSS/[        SSSSS5      [        SSSSS5      SSSS S!S"SSS#/[        SSSS$S5      [        SSSSS5      SSS%S&S'S"S(SS/[        SSSS$S5      [        SSSS$S5      SSS%S)S*S+S,SS-/[        SSSS.S5      [        SSSS$S5      SSS/S0S'S1S2SS3/[        SSSS4S5      [        SSSS.S5      SSS5S6S'S1S7SS/// S8QS99n	U(       d  U	R                  / S:QSS;9n	XR                     n[        R                  " X5        g )<N  KORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
pyarrowCpyarrow doesn't support disabling auto-inference on column numbers.reasonc                  \    [         R                  " [         R                  " U 5      [        S9$ )z
Test date parser.

Parameters
----------
date_cols : args
    The list of data columns to parse.

Returns
-------
parsed : Series
)r\   )r	   try_parse_datesconcat_date_colsdu_parse)	date_colss    r$   r-   2test_multiple_date_col_custom.<locals>.date_parser   s'     &&$$Y/
 	
r(   rW   rL      actualnominal	X0X1X2X3X4X5X6X7X8)rZ   r-   r,   ra   namesuse 'date_format' insteadraise_on_extra_warningsF        r      8   KORD19990127	 19:00:00	 18:56:00Q?{Gz@@             q@   	 20:00:00	 19:56:00{Gz?Gz@     @p@   	 21:00:00	 20:56:00zG@	 21:18:00GzGz @@     p@   	 22:00:00	 21:56:00\(\?ffffff@      r@   	 23:00:00	 22:56:00ffffff@)rp   rq   rs   rt   ru   rv   rw   rx   ry   rz   r{   rO   rt   ru   rv   axis)enginepytestmarkxfailapplymarkerr:   r;   r   r
   r   droprP   r=   r>   )
r?   ra   requestr]   r\   r   r-   kwdsrA   rC   s
             r$   test_multiple_date_col_customr      s   D F)3 {{  X ! 
 	D!
$ "#$a&aV<&GD ++# 	
 !&F  q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"-EO	
`
c^H@ ==!3!=<
 $$%F&+r(   	containerdimrW   rL   c                    ^ ^ SnSm[        U U4S j[        U5       5       5      n[        R                  " [        US9   [
        R                  " U5        S S S 5        g ! , (       d  f       g = f)Nz0not all elements from date_cols are numpy arraysr   c              3   6   >#    U  H  nT" T/5      v   M     g 7fN ).0_r   values     r$   	<genexpr>,test_concat_date_col_fail.<locals>.<genexpr>7  s     =*Qi((*s   rS   )tupleranger   raises
ValueErrorr	   rj   )r   r   msgrl   r   s   `   @r$   test_concat_date_col_failr   1  sK     =CE=%*==I	z	-  + 
.	-	-s   A
A-c                    SnU nU(       a>  UR                   S:X  a.  [        R                  R                  SS9nUR	                  U5        SnS SS/SS//U/ S	QS
.n[
        R                  " [        [        4USS9   UR                  " [        U5      40 UD6nS S S 5        [        [        SSSSS5      [        SSSSS5      SSSSSSSSS/[        SSSSS5      [        SSSSS5      SSSSSS SSS!/[        SSSS"S5      [        SSSSS5      SSS#S$S%S S&SS/[        SSSS"S5      [        SSSS"S5      SSS#S'S(S)S*SS+/[        SSSS,S5      [        SSSS"S5      SSS-S.S%S/S0SS1/[        SSSS2S5      [        SSSS,S5      SSS3S4S%S/S5SS/// S6QS79n	U(       d  U	R                  / S8QSS99n	[
        R                  " WU	5        g ! , (       d  f       GN0= f):Nrc   rd   re   rf   8The 'keep_date_col' keyword in pd.read_csv is deprecatedrW   rL   rn   rr   )rZ   r,   ra   r|   FrR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )X1_X2X1_X3rs   rt   ru   rv   rw   rx   ry   rz   r{   rO   r   r   )r   r   r   r   r   r=   r[   DeprecationWarningr;   r   r   r
   r   r   r>   )
r?   ra   r   r]   r\   r   r^   r   rA   rC   s
             r$   test_multiple_date_colr   =  s   D F)3 {{  X ! 
 	D!IH AA'&G	D 
	#	#	]+8e
 $848

  q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"- q"b!,q"b"-EO	
`
c^H@ ==!3!=<&(+Q
 
s   ;G
Gc                    SnU nS S/S/ SQS.nUR                   " [        U5      40 UD6n[        [        SSSSS5      [        SSSS	S5      [        SSSS
S5      [        SSSS
S5      [        SSSSS5      /SS9n[	        / SQ/ SQ/ SQ/ SQ/ SQ// SQUS9nUR
                  S:X  a3  [        R                  " SUS   -   5      R                  R                  US'   [        R                  " XF5        g )Naz  KORD,19990127 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
rW   )rs   rt   ru   rv   rw   rx   ry   rz   )rZ   r,   r.   r|   r   r   r   r   r   r   r   rt   r/   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )rs   ru   rv   rw   rx   ry   rz   rP   r9   rd   
1970-01-01ru   )r   r   r   r   r
   r   r    to_datetimedtr#   r=   r>   )r?   r]   r\   r   rA   r9   rC   s          r$   test_date_col_as_index_colr     s   D FsA	D __Xd^4t4FT1b"a(T1b"a(T1b"a(T1b"a(T1b"a(	
 	E >>???	
 ;
H }}	! x~(EFIINN&+r(   c                 f   SnSS/SS/S.nU nS U[         R                  S.nUR                  " [        S[	        U5      40 UDSS	0D6n[        [        S
SSSS5      [        S
SSSS5      SS/[        S
SSSS5      [        S
SSSS5      SS/[        S
SSSS5      [        S
SSSS5      SS/[        S
SSSS5      [        S
SSSS5      SS/[        S
SSSS5      [        S
SSSS5      SS/[        S
SSSS5      [        S
SSSS5      SS/// SQS9nXVR                     n[        R                  " XV5        g )NKORD,19990127, 19:00:00, 18:56:00, 0.8100
KORD,19990127, 20:00:00, 19:56:00, 0.0100
KORD,19990127, 21:00:00, 20:56:00, -0.5900
KORD,19990127, 21:00:00, 21:18:00, -0.9900
KORD,19990127, 22:00:00, 21:56:00, -0.5900
KORD,19990127, 23:00:00, 22:56:00, -0.5900rW   rL   rn   ro   rZ   r,   r-   r}   r~   Fr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   rq   r      rO   )
r    r   r:   r;   r   r
   r   rP   r=   r>   )r?   r]   r,   r\   r   rA   rC   s          r$    test_multiple_date_cols_int_castr     s   	5 	  VA7KF "~~D
 ++# 	
 !&F dAr2q)8D!RR+H&RVWdAr2q)8D!RR+H&RVWq"b!,q"b"-	 q"b!,q"b"-	 q"b!,q"b"-	 q"b!,q"b"-	+	
8 ,;HF $$%F&+r(   c           
         U nSnUR                  [        S[        U5      SS//S [        SS9n[	        [        S5      SSS	S[
        R                  S/[        S5      SS
S	S[
        R                  S/// SQS9n[        R                  " X45        g )Nz]05/31/2012,15:30:00.029,1306.25,1,E,0,,1306.25
05/31/2012,15:30:00.029,1306.25,8,E,0,,1306.25r}   r   rW   F)r,   rZ   r-   r~   z05/31/2012, 15:30:00.029g     i@E   )0_1rL   rn   r      rK      rO   )	r:   r;   r   r   r
   r   nanr=   r>   r?   r\   r]   rA   rC   s        r$   &test_multiple_date_col_timestamp_parser   2  s    F2D ++#VH % , F  45 45	
( *+H. &+r(   c                     U nSnSn[         R                  " [        USS9   UR                  [	        U5      SSS/0S9nS S S 5        [        [        S	SS
SS5      SSSSSSS/[        S	SS
SS5      SSSSSSS/[        S	SS
SS5      SSSSSSS/[        S	SS
SS5      SSSSS SS!/[        S	SS
S"S5      SS#SS$S%SS&/[        S	SS
S'S5      SS(SS$S)SS/// S*QS+9n[         R                  " WU5        g ! , (       d  f       N= f),Na  ID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
KORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000rQ   FrR   rq   rW   rL   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rq   ID
ActualTimeTDewTAir	WindspeedPrecipWindDirrO   )r=   r[   r;   r   r   r
   r   r>   r?   r\   r]   r^   rA   rC   s         r$   #test_multiple_date_cols_with_headerr   Z  s   FPD 	V  
	#	#X
 $i!Q=PQ
  q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	g=	
|	
IHT &(+]
 
s   C//
C=zdata,parse_dates,msgzSdate_NominalTime,date,NominalTime
KORD1,19990127, 19:00:00
KORD2,19990127, 20:00:00z0New date column already in dict date_NominalTimezCID,date,nominalTime
KORD,19990127, 19:00:00
KORD,19990127, 20:00:00r   zDate column ID already in dictc                    U nSn[         R                  " [        US9   [        R                  " [
        [        4USS9   UR                  [        U5      US9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrQ   r   FrR   r   )	r   r   r   r=   r[   r;   r   r   r   )r?   r]   r,   r   r\   r^   s         r$   %test_multiple_date_col_name_collisionr     sw    , F 	V  
z	-''./xRW
 OOHTNOD
 
.	-
 
 
.	-s"   !A;A*A;*
A8	4A;;
B	c           
          U nSnUR                  [        S[        U5      SS/S SS9n[        / SQ// SQ[	        [        S	5      /S
S9S9n[        R                  " X45        g )Nzposix_timestamp,elapsed,sys,user,queries,query_time,rows,accountid,userid,contactid,level,silo,method
1343103150,0.062353,0,4,6,0.01690,3,12345,1,-1,3,invoice_InvoiceResource,search
r}   r   c                 t    [         R                  " [        U 5      [        R                  S9R                  S S9$ )N)tz)tzinfo)r   fromtimestampr   r   utcreplacexs    r$   <lambda>*test_date_parser_int_bug.<locals>.<lambda>  s-    h44SVMUU V 
r(   F)r.   r,   r-   r~   )go?r   r   rK   gX5;N?rn   i90  rW   rn   invoice_InvoiceResourcesearch)elapsedsysuserqueries
query_timerows	accountiduserid	contactidlevelsilomethodz2012-07-24 04:12:30posix_timestampr/   r   )r:   r;   r   r
   r   r   r=   r>   r   s        r$   test_date_parser_int_bugr	    s    F	8 	 ++#C
 !& , F 	
 
 Y456=NO? HB &+r(   c                    U n[        [        R                  " SSS9[        S5      R	                  S5      S.5      n[        R
                  UR                  SS2S S 24'   [        R                  " S	5       nUR                  U5        UR                  US
S/S9n[        R                  " XB5        S S S 5        g ! , (       d  f       g = f)N
   r   dtype20010101ns)ABrn   rK   z__nat_parse_.csvr   r  r.   r,   )r
   r   aranger   as_unitr   ilocr=   ensure_cleanto_csvr   r>   )r?   r\   r_   pathrA   s        r$   test_nat_parser    s     F	2Y/:&..t4	

B ffBGGAaCFO	+	,
		$F
f)	 
-	,	,s   5:B88
Cc                    SnU nUR                  [        S[        U5      S S9nUR                  [        U5      SS9n[        R
                  " X45        UR                  [        U5      SS9n[        R
                  " X45        g )	N3A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
r}   c                 0    [         R                  " U S5      $ )N%Y%m%d)r   strptimer   s    r$   r   (test_csv_custom_parser.<locals>.<lambda>6  s    h//8<r(   )r-   Tr   r  )date_format)r:   r;   r   r   r=   r>   r?   r]   r\   rA   rC   s        r$   test_csv_custom_parserr"  *  s    D
 F++#<	 , F x~4@H&+__Xd^_BF&+r(   c                     SnU nUR                  [        U5      SS9nUR                  [        U5      SSS9n[        R                  " X45        g )Nr  Tr   r   r  r   r   r=   r>   r!  s        r$   #test_parse_dates_implicit_first_colr%  >  sL    D
 F__Xd^_>Fx~MH&+r(   c                     SnU nUR                  [        U5      SS/S9n[        SSSS9R                  S 5      n[	        / SQ/ SQ/ S	QS
.US9n[
        R                  " X55        g )Nz8date,A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
r   r  z1/1/2009rn   )periodsr0   abc)rW   rn   r   )rL   r   r   r  r  Cr8   )r   r   r   
_with_freqr
   r=   r>   )r?   r]   r\   rA   r9   rC   s         r$   test_parse_dates_stringr/  L  si    D
 F__Xd^vF8_TFz16:EEdKEII>eH &+r(   z#yearfirst is not surfaced in read_*rf   r,   r   r#   c                    SnU nUR                  [        S[        U5      SUS9n[        [	        SSSSSS5      [	        SS	S
SSS5      [	        SSSSSS5      /[
        SS9n[        / SQ/ SQS.US9n[        R                  " XF5        g )Nz>date,time,B,C
090131,0010,1,2
090228,1020,3,4
090331,0830,5,6
Could not infer formatr   r    rW      r  rL      r   rn   r      	date_timer  r0   )rW   rn   r   )rL   r   rK   r  r-  r8   )	r:   UserWarningr   r   r   objectr
   r=   r>   )r?   r,   r]   r\   rA   r9   rC   s          r$   test_yy_format_with_year_firstr;  `  s    D
 F++  , F T1b!R+T1b"b!,T1b!R+	

 E yy9GH&+r(   r)  r+  c           	          SnU n[        [        SSS5      /S/[        SSS5      /S.5      nUR                  SS/5      nUR                  [	        U5      S	S/US
S9n[
        R                  " XT5        g )Nza,b,c
01/01/2010,1,15/02/2010  rW   rL      r(  r)  r*  r   T)r.   r,   dayfirst)r
   r   	set_indexr   r   r=   r>   )r?   r,   r]   r\   rC   rA   s         r$   test_parse_dates_column_listrA  }  s     ,DFa#$A3htQ6K5LMH !!3*-H__1a&kD  F &+r(   r.   c                 v   SnU n[         R                  " [        SSS5      [        SSS5      [        SSS5      4S/SS/S	9nUSS
/:X  a  UR                  S
S5      n[	        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	/ SQUS9nUR                  [        S[        U5      USS9n[        R                  " Xe5        g )Nzindex1,index2,A,B,C
20090101,one,a,1,2
20090101,two,b,3,4
20090101,three,c,4,5
20090102,one,a,1,2
20090102,two,b,3,4
20090102,three,c,4,5
20090103,one,a,1,2
20090103,two,b,3,4
20090103,three,c,4,5
r2  rW   rL   rn   )onetwothreeindex1index2r|   r   )r)  rW   rL   )r*  rn   r   )r+  r   r   r,  r   r1  Tr  )
r   from_productr   	swaplevelr
   r:   r9  r   r=   r>   )r?   r.   r]   r\   r9   rC   rA   s          r$   test_multi_index_parse_datesrK    s    
D F##dAq!8D!Q#7$19MN#	
 "E QF1%
	
  H ++  , F &+r(   kwargsr?  	day_firstc                   ^ U nSnST;   a  UR                  [        S[        U5      / SQU4S jSSSS/S	9	n[        [	        S
SS5      [	        S
SS5      [	        S
SS5      /SS9n[        / SQS[        R                  S/S.USS/S9n[        R                  " XF5        g Sn[        R                  " [        US9   UR                  [        S[        U5      / SQU4S jS/SSS/S9	  S S S 5        g ! , (       d  f       g = f)Nz:foo,bar,baz
31/01/2010,1,2
01/02/2010,1,NA
02/02/2010,1,2
r?  r}   )r#   QNTUc                    > [        U 40 TD6$ r   rk   drL  s    r$   r   5test_parse_dates_custom_euro_format.<locals>.<lambda>  s    (1"7"7r(   r   TNA)r|   r-   rZ   r.   r,   	na_valuesr=  rW   r3  rL   r#   r/   )rW   rW   rW   )rO  rP  rO  rP  r9   rP   z.got an unexpected keyword argument 'day_first'r   c                    > [        U 40 TD6$ r   rR  rS  s    r$   r   rU    s    hq&;F&;r(   )r|   r-   skiprowsr.   r,   rW  )r:   r;   r   r   r   r
   r   r   r=   r>   r   r   	TypeError)r?   rL  r\   r]   r_   	exp_indexrC   r   s    `      r$   #test_parse_dates_custom_euro_formatr]    s    FD
 V++'TN&7f , 

 dAr"HT1a$8(4A:NO
	 QN3%L

 	b+>]]9C0**+*; & + 
 100s   :-C00
C>c                    U nSnUR                  [        U5      SSS9nUR                  S:X  a   UR                  R	                  S5      Ul        [        SS/0[        [        S	5      /S
S9S9nUR                  S:X  a  [        R                  nO[        R                  n[        R                  " X45        UR                  R                  UL d   eg )NzDate,x
2012-06-13T01:39:00Z,0.5r   Tr  rd   r  r   g      ?z2012-06-13 01:39:00+00:00rN   r/   r8   )r   r   r   r9   r  r
   r   r   pytzr   r   r=   r>   r   )r?   r\   r]   rA   rC   expected_tzs         r$   test_parse_tz_awarera    s    F-D__Xd^qd_KF}}	!||++D1	seE9-H#I"JQWXH }}	!hhll&+<<??k)))r(   zparse_dates,index_colrq   c                 f   U nSn[        [        SSSSS5      SSS	S
SSS/[        SSSSS5      SSSSSSS/[        SSSSS5      SSSSSSS/[        SSSSS5      SSSSSSS/[        SSSSS5      S S!SS"S#SS$/[        SSSS%S5      S&S'SS"S(SS/// S)QS*9nUR                  S+5      n[        U[        5      (       d  S,UR
                  l        S-n[        R                  " [        US.S/9   UR                  [        U5      XS09nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)1Na  
ID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
KORD1,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD2,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD3,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD4,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD5,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD6,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
r   rW   r   r   r   KORD1r   r   r   r   r   r   r   KORD2r   r   r   r   r   KORD3r   r   r   KORD4r   r   r   r   r   r   KORD5r   r   r   r   r   KORD6r   r   r   rO   rq   date_NominalTimerQ   FrR   r,   r.   )r
   r   r@  
isinstancedictr9   r0   r=   r[   r;   r   r   r>   )r?   r,   r.   r\   r]   rC   r^   rA   s           r$   test_multiple_date_cols_indexrm    s    FD  q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	g=	
|	
IHT !!),Hk4((0 	V  
	#	#X
 TN ! 

 &(+
 
s   (D""
D0c                    U nSn[        [        SSSSS5      SSS	S
SSS/[        SSSSS5      SSSSSSS/[        SSSSS5      SSSSSSS/[        SSSSS5      SSSSSSS/[        SSSSS5      SSSSSSS /[        SSSS!S5      SS"SSS#SS/// S$QS%9nUR                  S&5      nS'n[        R                  " [
        US(S)9   UR                  [        U5      S&SS*/0S&S*S+9 n[        U5      nS S S 5        S S S 5        [        R                  " WS   US S* 5        [        R                  " US   US*S, 5        [        R                  " US*   US,S  5        g ! , (       d  f       Nn= f! , (       d  f       Nw= f)-N  ID,date,nominalTime,actualTime,A,B,C,D,E
KORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
r   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rq   r   
actualTimer  r  r-  Dr   rO   rq   rQ   FrR   rL   )r,   r.   	chunksizer   )
r
   r   r@  r=   r[   r;   r   r   listr>   )r?   r\   r]   rC   r^   readerchunkss          r$   test_multiple_date_cols_chunkedrv  p  s   FD  q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	 q"b!,	g=	
| I@HB !!),H 	V  
	#	#X
 __TN"QF+	  

 &\F

 &)Xbq\2&)Xa]3&)Xab\2
 

 
s$    E'"E.E'
E$	 E''
E5c                    U nSnSn[         R                  " [        [        4USS9   UR	                  [        U5      SSS/0SS9nS S S 5        [         R                  " [        [        4USS9   UR	                  [        U5      SSS	S
/0S9nS S S 5        [         R                  " WW5        g ! , (       d  f       Nm= f! , (       d  f       N7= f)Nro  rQ   FrR   rq   rW   rL   rj  r   nominalTimer  )r=   r[   r;   r   r   r   r>   )r?   r\   r]   r^   with_indices
with_namess         r$   )test_multiple_date_col_named_index_compatr{    s    FD 	V  
	#	#	*+8e
 TNQF(;y ' 

 
	#	#	*+8e
 __TN"V]$;< % 


 ,
3
 

 
s   B-.B>-
B;>
Cc                    U nSnSn[         R                  " [        [        4USS9   UR	                  [        U5      SS/SSS/0S	9nS S S 5        [         R                  " [        [        4USS9   UR	                  [        U5      SSS/0S
9nS S S 5        WR                  SS/5      n[         R                  " WU5        g ! , (       d  f       N= f! , (       d  f       NJ= f)Nro  rQ   FrR   rq   r   rW   rL   r  r   )r=   r[   r;   r   r   r   r@  r>   r   s         r$   ,test_multiple_date_col_multiple_index_compatr}    s    FD 	V  
	#	#	*+8e
 TNy$&7iRSUVQWEX ! 

 
	#	#	*+8e
 ??8D>	Aq6?R?S

 !!9d"34H&(+
 

 
s   !C0C
C
C r-  c                     U nSnSn[         R                  " [        US9   UR                  " [	        U5      4SS0UD6  S S S 5        g ! , (       d  f       g = f)NSOnly booleans, lists, and dictionaries are accepted for the 'parse_dates' parameterA,B,C
    1,2,2003-11-1r   r,   r-  r   r   r[  r   r   )r?   rL  r\   r   r]   s        r$   *test_read_with_parse_dates_scalar_non_boolr    sP     F	7 D 
y	,BCB6B 
-	,	,s   A
ArW   r   r   rn   c                     U nSnSn[         R                  " [        US9   UR                  [	        U5      SS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r   r  r   r  )r?   r,   r\   r   r]   s        r$   'test_read_with_parse_dates_invalid_typer     sH    F	7 D 
y	,D9 
-	,	,s   A
Acache_datesr   r    c                 d    U n[        U S3[        S-   -  5      nUR                  US SS/S/US9  g )N,
rW   foobar)rZ   r|   r,   r  )r   r   r   )r?   r  r   r\   r   s        r$   test_bad_date_parser  .  sJ    
 FUG3-$4q$89:A
OO	enG  r(   0c                     U n[        U S3S-  5      nUR                  S:X  a  S nOU(       a  S nO[        nUR                  USUS SS/S/USS9  g )	Nr  iP  rd   r1  r  r  F)rZ   r|   r,   r  r~   )r   r   r9  r:   )r?   r  r   r\   r   warns         r$    test_bad_date_parse_with_warningr  ?  sq    
 FUG3-5()A}}	!
 	 
"" 	enG % # 	r(   c                     U nSnUR                  [        U5      S/SS9n[        [        SSS5      S/[        R
                  S//SS/S	9n[        R                  " X45        g )
NDate,test
2012-01-01,1
,2rN   F)r,   	na_filteri  rW   rL   testrO   )r   r   r
   r   r    NaTr=   r>   r   s        r$   test_parse_dates_empty_stringr  _  sg     F(D__Xd^&U_SF
4A
	"RVVQK066:JH &+r(   rt  r:   read_table_check_warningsc           
      R    U nSn[        X!5      " [        S[        U5      S/SSSS9  g )Nr  z2The argument 'infer_datetime_format' is deprecatedrN   T,F)r,   infer_datetime_formatrX   r~   )getattrr;   r   )r?   rt  r\   r]   s       r$   .test_parse_dates_infer_datetime_format_warningr  l  s6    
 F(DF<H" %r(   c                     U nSnSn[         R                  " [        US9   [        X!5      " [        S[        U5      S/[        R                  SSS9  S S S 5        g ! , (       d  f       g = f)	Nr  z/Cannot use both 'date_parser' and 'date_format'r   r}   rN   ISO8601r  )r,   r-   r   rX   )r   r   r[  r  r;   r   r    r   )r?   rt  r\   r]   r   s        r$   ,test_parse_dates_date_parser_and_date_formatr    sY    
 F(D
;C	y	,'TN!	
 
-	,	,s   2A
A)zdata,kwargs,expectedza
04.15.2016i  r>  rO   rj  z
2016-04-15r/   rX  za,b
04.15.2016,09.16.2013r*  rJ   	      rH  c                 p    U nUR                   " [        U5      4SS0UD6n[        R                  " XS5        g )NrY   .r$  r?   r]   rL  rC   r\   rA   s         r$   %test_parse_dates_no_convert_thousandsr    s4    F F__Xd^EsEfEF&+r(   c           	         SnU nUR                  [        S[        U5      SS/SSS/0[        R                  S9n[        SSSS	SS5      S
S/[        SSSSSS5      SS//n[        U/ SQS9n[        R                  " X55        g )NzUD,T,A,B
date, time,a,b
2001-01-05, 09:00:00, 0.0, 10.
2001-01-06, 00:00:00, 1.0, 11.
r}   r   rW   r6  r     r   r  r         $@rK         ?      &@)r6  )r  r)  )r  r*  rO   )	r:   r;   r   r    r   r   r
   r=   r>   )r?   r]   r\   rA   expected_datarC   s         r$   ,test_parse_date_time_multi_level_column_namer    s    D F++#1v 1a&)NN , F 
$1aA	&T2	$1aA	&T2M 0UVH&+r(   zKdate,time,a,b
2001-01-05, 10:00:00, 0.0, 10.
2001-01-05, 00:00:00, 1., 11.
r6  rZ   r,   r  r  r   r  r  )r6  r)  r*  r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                     U nUR                   " [        S[        U5      4S[        R                  0UDSS0D6nXSR
                     n[        R                  " XS5        g )Nr}   r-   r~   F)r:   r;   r   r    r   rP   r=   r>   r  s         r$   test_parse_date_timer    sg    R F++# NN	
  !&F $$%F&+r(   c           
          U nSnUR                  [        S[        U5      SS/ SQ0S SS9n[        [	        S	S
S5      S/[	        S	SS
5      S//SS/S9n[
        R                  " X45        g )N-year,month,day,a
2001,01,10,10.
2001,02,1,11.r}   r   ymd)r   rW   rL   c                     U $ r   r   r   s    r$   r   (test_parse_date_fields.<locals>.<lambda>9  s    ar(   FrZ   r,   r-   r~   r  rW   r  r  rL   r  r)  rO   )r:   r;   r   r
   r   r=   r>   r   s        r$   test_parse_date_fieldsr  0  s    F<D++#I& % , F 
4B
	&$1)=t(DEH &+r(   )keyr   r  r-   c                 ,    [         R                  " U SS9$ )N%Y %m %d %H %M %Sformatr    r   r   s    r$   r   r   I  s    bnnQ/BCr(   )r   r  Nc                     U nSnUR                   " US[        U5      4SS/ SQ0S.X0DSS0D6n[        [        S	S
SSSS5      SS/[        S	S
SSSS5      SS/// SQS9n[        R
                  " Xg5        g )NzZyear,month,day,hour,minute,second,a,b
2001,01,05,10,00,0,0.0,10.
2001,01,5,10,0,00,1.,11.
r}   r   ymdHMSr   rW   rL   rn   r   r   r  r~   Fr  rW   r   r  r   r  r  r  r  r)  r*  rO   r:   r   r
   r   r=   r>   r?   r  r   r  r\   r]   rA   rC   s           r$   test_parse_date_all_fieldsr  D  s     FD
 ++# 12 , !&F dAq"a+S$7dAq"a+S$7	
 %H &+r(   c                 ,    [         R                  " U SS9$ )N%Y %m %d %H %M %S.%fr  r  r   s    r$   r   r   n  s    bnnQ/EFr(   )r   r  Nc                     U nSnUR                   " US[        U5      4SS/ SQ0S.X0DSS0D6n[        [        S	S
SSSSSS9SS/[        S	S
SSSSSS9SS/// SQS9n[        R
                  " Xg5        g )Nzgyear,month,day,hour,minute,second,a,b
2001,01,05,10,00,0.123456,0.0,10.
2001,01,5,10,0,0.500000,1.,11.
r}   r   r  r  r  r~   Fr  rW   r   r  i@ )microsecondr   r  i  r  r  r  rO   r  r  s           r$    test_datetime_fractional_secondsr  i  s     FD
 ++# 12 , !&F dAq"a?dKdAq"a?dK	
 %H &+r(   c           
         U nSnS nUR                  [        S[        U5      SSSS/0USS9n[        [	        S	SS5      S
S/[	        S	SS5      SS/// SQS9nUS   R                  S5      US'   [        R                  " XE5        g )Nr  c           
          [        X5       VVs/ s H"  u  p#[        [        U5      [        U5      SS9PM$     snn$ s  snnf )NrW   )yearmonthday)zipr   r   )yymmyms       r$   parse_function$test_generic.<locals>.parse_function  s1    CFr;O;41#a&AA6;OOOs   )<r}   r   ymrW   Fr  r  r  r  rL   r  )r  r  r)  rO   datetime64[ns])r:   r;   r   r
   r   r   r=   r>   )r?   r\   r]   r  rA   rC   s         r$   test_genericr    s    F<DP ++#Aq6N" % , F 
tQ
B	%T1a(8!T'BC"H d^**+;<HTN&+r(   c           	         U nSnS nUR                  [        S[        U5      USSS/0SS/S9n[        R                  " S	/S
-  SS9n[        SS/S
-  0[        R                  " U/ SQ/SS/S9S9n[        R                  " XF5        g )Nzxdate,time,prn,rxstatus
2013-11-03,19:00:00,126,00E80000
2013-11-03,19:00:00,23,00E80000
2013-11-03,19:00:00,13,00E80000
c           	           U S-   U-   n[        R
                  " USS9$ ! [          a=    [        X5       VVs/ s H  u  p4[        R                  " X45      PM     Os  snnf nnn N[f = f)NTdatetime64[s]r  )r[  r  r   combiner   array)r   r#   arrrT  ts        r$   r-   :test_date_parser_resolution_if_not_ns.<locals>.date_parser  se    	Es(T/C xx?33  	E69"mDmda8##A)mDCDC	Es    A&"A
A&%A&r}   r   r   r#   prn)r-   r,   r.   z2013-11-03T19:00:00rn   r  r  rxstatus00E80000)~   r   rM   rH  )r]   r9   )
r:   r;   r   r   r  r
   r   from_arraysr=   r>   )r?   r\   r]   r-   rA   	datetimesrC   s          r$   %test_date_parser_resolution_if_not_nsr    s     FD4 ++#&&!12u% , F /014OLI:,*+$$&u%
H &+r(   c                     U nSnUR                  [        U5      S/S9nSS/SS/SS//n[        US	S/S
9n[        R                  " X55        g )Nz+case,opdate
7,10/18/2006
7,10/18/2008
621, opdater   r   z
10/18/2006z
10/18/2008im   caserO   r   r   r
   r=   r>   )r?   r\   r]   rA   r  rC   s         r$   (test_parse_date_column_with_empty_stringr    s]    F;D__Xd^(_DF&L(9C:FM0BCH&+r(   zdata,expectedz"a
135217135789158401
1352171357E+5l   0l    Hbk r   r  z%a
99999999999
123456789012345
1234E+0)l   g] l   y_"A i  c                 f    U nUR                  [        U5      US9n[        R                  " XR5        g )Nr   r$  )r?   r]   rC   r,   r\   rA   s         r$   test_parse_date_floatr    s-    & F__Xd^_EF&+r(   c                     U nSnUR                  [        U5      S/S9n[        SSS[        [	        SS95      S	9R                  S 5      nU/ S
QS.n[        U5      n[        R                  " X65        g )Nzdt,val
              2018-01-04 09:01:00+09:00,23350
              2018-01-04 09:02:00+09:00,23400
              2018-01-04 09:03:00+09:00,23400
              2018-01-04 09:04:00+09:00,23400
              2018-01-04 09:05:00+09:00,23400r   r   z2018-01-04 09:01:00z2018-01-04 09:05:001mini  )minutes)startendfreqr   )i6[  h[  r  r  r  )r   val)	r   r   r   r   r   r.  r
   r=   r>   )r?   r\   r]   rA   dtir  rC   s          r$   test_parse_timezoner    s|    F1D __Xd^$_@F
#!Ic*+	
 j  'JKM'H&+r(   date_string)z
32/32/2019z
02/30/2019z
13/13/2019z13/2019z
a3/11/2018z
10/11/2o17c                     U n[        SU/0SS9nUR                  [        U5      S S/S9n[        R                  " XC5        g )Nr   r:  r  r  )r
   r   r   r=   r>   )r?   r  r\   rC   rA   s        r$   !test_invalid_parse_delimited_dater    sO     F!k]+8<H__C  F
 &+r(   zdate_string,dayfirst,expectedz
13/02/2019i  rM   z
02/13/2019z
04/02/2019c                    U n[        SU/0SS9nUR                  S:X  a\  U(       d  [        R                  " SS9  Sn[        R                  " [
        US9   UR                  [        U5      S US/S	9  S S S 5        g UR                  [        U5      S US/S	9n[        R                  " Xs5        g ! , (       d  f       g = f)
Nr   r  r  rd   z,https://github.com/apache/arrow/issues/38676rf   z@The 'dayfirst' option is not supported with the 'pyarrow' enginer   rZ   r?  r,   )
r
   r   r   skipr   r   r   r   r=   r>   )r?   r  r?  rC   r   r\   r   rA   s           r$   )test_parse_delimited_date_swap_no_warningr     s     F!hZ0@AH}}	!KKMNP]]:S1OO%dXTUSV   2 	__dXA3  F &+ 21 	s   B//
B=c           	          U n[        SU/0SS9nSnUR                  [        U[        U5      S US/S9n[        R
                  " Xc5        g )Nr   r  r  zParsing dates in .* format when dayfirst=.* was specified. Pass `dayfirst=.*` or specify a format to silence this warning.r  )r
   r:   r9  r   r=   r>   )r?   r  r?  rC   r\   warning_msgrA   s          r$   +test_parse_delimited_date_swap_with_warningr  :  sg     F!hZ0@AH	J  ++C , F &+r(   c                      [         R                  " [        SS9   [        R                  " / SQ5        S S S 5        g ! , (       d  f       g = f)Nz_^time data "31/05/2000" doesn\'t match format "%m/%d/%Y", at position 1. You might want to try:r   )z
01/01/2000z
31/05/2000z
31/05/2001z
01/02/2000)r   r   r   r    r   r   r(   r$   6test_parse_multiple_delimited_dates_with_swap_warningsr  X  s5    	5
 	OP
 
 
s	   <
A
z)names, usecols, parse_dates, missing_colsr  z
date, time)date1time1temperaturer  r	  c           
      ~   U n[        S5      nSU S3nSn[        n	[        U[        5      (       a  [	        S U 5       5      (       a  S n	[
        R                  " [        US9   [        R                  " XSS9   UR                  US	XUS
9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz%date,time,val
2020-01-31,04:20:32,32
z+Missing column provided to 'parse_dates': ''rQ   c              3   N   #    U  H  n[        U[        [        45      v   M     g 7fr   )rk  r   str)r   r   s     r$   r   9test_missing_parse_dates_column_raises.<locals>.<genexpr>  s!      -+6a
1sCj!!;s   #%r   FrR   r  )rX   r|   usecolsr,   )r   r;   rk  rs  allr   r   r   r=   r[   r   )
r?   r|   r  r,   missing_colsr\   contentr   r^   r  s
             r$   &test_missing_parse_dates_column_raisesr  e  s    0 F@AG7~Q
GC 	V  D+t$$ -+6- * * 	z	-''uUOOSK   V 
.	-UU 
.	-s$   #B.9BB.
B+	'B..
B<c                     U n[        S5      n[        nUR                  S:X  a  [        [        4nUR	                  USUS/S/S9n[        SSS/0SS	/S
9n[        R                  " XE5        g )Nzx,y
1,2rd   r1  r  )r,   r|   r  2r   1r8   )r   r9  r   r   r:   r
   r=   r>   )r?   r\   r]   r  rA   rC   s         r$   test_date_parser_and_namesr    s     FN#DD}}	!/0++ Ee , F #Sz*3*=H&+r(   c                     U nSnUR                  [        U5      S/SS/S9n[        [        S5      R	                  S5      S/S	.5      n[
        R                  " X45        g )
Nza,b
1,2
2019-12-31,6r)  r  r   rW   r,   rZ   
2019-12-31r  rK   )r  r*  r  )r   r   r
   r   r  r=   r>   r   s        r$   #test_date_parser_multiindex_columnsr    sc    FD __Xd^*qRSf_UF|,44T:LH &+r(   zparse_spec, col_namer  r  )a_b1_2)r  r  c                 .   U nSnSn[         R                  " [        USS9   UR                  [	        U5      USS/S9nS S S 5        [        U[        S5      R                  S	5      S
S/05      n[         R                  " WU5        g ! , (       d  f       NN= f)Nza,b,c
1,2,3
2019-12,-31,6rQ   FrR   r   rW   r  r  r  )r+  3rK   )	r=   r[   r;   r   r   r
   r   r  r>   )r?   
parse_speccol_namer\   r]   r^   rA   rC   s           r$   0test_date_parser_multiindex_columns_combine_colsr$    s     FD
 	V  
	#	#X
 TN"q6 ! 

 	9\*2248*qcJH &(+
 
s   B
Bc           	         SnU nUR                   S:X  aC  Sn[        R                  " [        US9   UR	                  [        U5      S/SS/SS9  S S S 5        g UR                  [        S	[        U5      S/SS/SS9n[        S
S/[        S5      /S-  S.5      n[        R                  " XE5        g ! , (       d  f       g = f)Nz2A,B,C
    1,3,20-09-01-01
    2,4,20-09-01-01
    rd   zAThe 'thousands' option is not supported with the 'pyarrow' enginer   rW   rL   rV   )r,   r  rY   r1  rn   r   z20-09-2001 01:00:00r8  )r   r   r   r   r   r   r:   r9  r
   r   r=   r>   )r?   r]   r\   r   rA   rC   s         r$   "test_date_parser_usecols_thousandsr&    s    D
 F}}	!Q]]:S1OOCA	   2 	++ CA , F 1vY7L-M,NQR,RSTH&+% 21 	s   B00
B>c                 &   U nSnSn[         R                  " [        USS9   UR                  [	        U5      SS/0SS9nS S S 5        [        S	5      [        S
5      /n[        XUS.5      n[         R                  " WU5        g ! , (       d  f       NI= f)NzA
20150908
20150909
r   FrR   r   r  T)r,   ra   z
2015-09-08z
2015-09-09)r   r  )r=   r[   r;   r   r   r   r
   r>   )r?   r\   r]   r^   rA   r  rC   s          r$   )test_parse_dates_and_keep_original_columnr(    s     FD JH		#	#X
 TN#t ! 

 |,i.EFM-DEH&(+
 
s   B
Bc                     Sn [        SS/SS SS9nSn[        [        U 5      S/SSS	9R                  n[        R
                  " X5        [        R                  " [        US
9   [        [        U 5      S/SSS	9R                  nS S S 5        [        R
                  " UW5        Sn [        SS/SSS9n[        [        U 5      S/SSS	9R                  n[        R
                  " X5        [        R                  " [        US
9   [        [        U 5      S/SSS	9R                  nS S S 5        [        R
                  " UW5        g ! , (       d  f       N= f! , (       d  f       N7= f)Nzdate
31/12/2014
10/03/2011z
2014-12-31z
2011-03-10r  r   r  r  r0   r  T)r,   r?  r.   r   Fzdate
31/12/2014
03/30/2011z
31/12/2014z
03/30/2011r:  r7  )	r   r   r   r9   r=   assert_index_equalr[   r9  r   )inputrC   r  res1res2res5res6s          r$   test_dayfirst_warningsr1    sW    +E	|$,<4fH	J  fXe 	 () 
	#	#K{	CUO&EV

% 	 
D (D) +ElL1OH fXe 	 () 
	#	#K{	CUO&EV

% 	 
D (D)3 
D	C* 
D	Cs   "!E !E
E
E zdate_string, dayfirstz	31/1/2014zsecond date is single-digit)idz	1/31/2014zfirst date is single-digitc                     SU  3n[        S/SS SS9nSn[        R                  " [        US9   [	        [        U5      S/SUS9R                  nS S S 5        [        R                  " UW5        g ! , (       d  f       N&= f)	Nzdate
z
2014-01-31r  r   r*  r  r   )r,   r.   r?  )r   r=   r[   r9  r   r   r9   r+  )r  r?  initial_valuerC   r  ress         r$   &test_dayfirst_warnings_no_leading_zeror6  6  s    " [M*M	.TH	J  
	#	#K{	C]#	

 % 	 
D (C( 
D	Cs   !A//
A=c                     U nSnUR                  [        U5      S/S9n[        SSSS.S/S	9n[        R                  " X45        g )
Nza,b,c
1970-01-01,2,3,4r)  r   r  rn   r   r(  r   r8   r  r   s        r$    test_infer_first_column_as_indexr8  Y  sR     F$D__E  F s3L>JH&+r(   c                 ,    [         R                  " U SS9$ )N%Y-%m-%dr  r  r   s    r$   r   r   j  s    "..:"Fr(   )r   r:  Nc           
         U nSnUR                   " US[        U5      4SSS/0S/S.X0D6n[        S[        S5      [        R
                  [        S5      [        R
                  [        S	5      /05      n[        R                  " Xg5        g )
Nz*Test
2012-10-01
0
2015-05-15
#
2017-09-09
r}   Test#r  )rW  r,   z
2012-10-01z
2015-05-15z
2017-09-09)r:   r   r
   r   r    r  r=   r>   r  s           r$   &test_replace_nans_before_parsing_datesr>  f  s     FD ++# C:&H ,F ,',','	

H &+r(   c                     U nSnUR                  [        U5      SS/S9n[        S/[        S5      /S.5      nUS   R	                  S5      US'   [
        R                  " X45        g )	Nza,b
1,2019-12-31
stringr*  )r  r,   r  r  r)  r*  r)  )r   r   r
   r   r   r=   r>   r   s        r$   !test_parse_dates_and_string_dtyperB    sk     FD __Xd^8#_OFuIl,C+DEFHSM((2HSM&+r(   c           	          U nSnUR                   S:X  a  [        SS/SSS9nS nO[        SS	/S
SS9n[        nSnUR	                  UU[        U5      SSSS9n[        SSS/0US9n[        R                  " Xg5        g )Nz7a,b
27.03.2003 14:55:00.000,1
03.08.2003 15:20:00.000,2rd   z27.03.2003 14:55:00.000z03.08.2003 15:20:00.000r:  r)  r7  z2003-03-27 14:55:00z2003-08-03 15:20:00r  z1when dayfirst=False \(the default\) was specifiedTr   F)r,   r.   r~   r*  rW   rL   r8   )	r   r   r   r9  r:   r   r
   r=   r>   )r?   r\   r]   expected_indexr  r   rA   rC   s           r$   test_parse_dot_separated_datesrE    s    FD }}	!&(AB

 &"$9:"

 
>C++ % , F #1vn=H&+r(   c                     U nSnUR                  [        U5      SSS.SS/S9n[        [        S5      [        S	5      /[        S5      [        S	5      /S.5      n[        R
                  " X45        g )
N/a,b
2019-12-31,31-12-2019
2020-12-31,31-12-2020r:  z%d-%m-%YrA  r)  r*  r   r,   r  
2020-12-31)r   r   r
   r   r=   r>   r   s        r$   test_parse_dates_dict_formatrJ    s~    FD __$:6#J  F
 L)9\+BCL)9\+BC	
H &+r(   zkey, parse_datesr  r  c                 ,   U nSnSn[         R                  " [        [        4USS9   UR	                  [        U5      US0US9nS S S 5        [        U[        S5      [        S5      /05      n[         R                  " WU5        g ! , (       d  f       NG= f)	Nza,b
31-,12-2019
31-,12-2020rQ   FrR   z	%d- %m-%YrH  r  rI  )	r=   r[   r;   r   r   r   r
   r   r>   )r?   r  r,   r\   r]   r^   rA   rC   s           r$   (test_parse_dates_dict_format_two_columnsrL    s    
 FD
 	V  
	#	#	*+8e
 TNk(: ! 

 )L)9\+BC	
H
 &(+
 
s   B
Bc           	          U nSnUR                  [        U5      SS0SSS9n[        SSS	/0[        [	        S
5      [	        S5      /SS9S9n[
        R                  " X45        g )NrG  r)  r:  Tr   )r   r,   r.   r*  z
31-12-2019z
31-12-2020r  rI  r/   r8   )r   r   r
   r   r   r=   r>   r   s        r$   "test_parse_dates_dict_format_indexrN    s~     FD __S*$54ST  F ,-	
 Y|,i.EFSQ	H &+r(   c                    U nSnUR                  [        U5      S/S9nUR                  S:X  a!  US   R                  R	                  S5      US'   [        [        S5      [        S5      /SS	.5      n[        R                  " X45        g )
Nz/a,b
2000-01-01 00:00:00,1
2000-01-01 00:00:01,1r)  r   rd   r  z2000-01-01 00:00:00z2000-01-01 00:00:01rW   rA  )	r   r   r   r   r  r
   r   r=   r>   r   s        r$   test_parse_dates_arrow_enginerP   	  s    FD __Xd^#_?F}}	!Sknn,,T2s /0/0 	
H &+r(   c                     U nSnUR                  [        U5      S/S9S   n[        [        S5      [        S5      /SSS/S9n[        R
                  " X45        g )	Nz5a
2020-01-01T00:00:00+01:00
2020-01-01T00:00:00+00:00r)  r   z2020-01-01 00:00:00+01:00z2020-01-01 00:00:00+00:00r   rW   )r0   r9   )r   r   r   r   r=   assert_series_equalr   s        r$    test_from_csv_with_mixed_offsetsrS  	  sf    FDD__Xd^#_?DF1212	
 !fH 6,r(   )o__doc__r   r   r   r   ior   dateutil.parserr   rk   numpyr   r   r_  pandas._libs.tslibsr	   pandasr    r
   r   r   r   r   r   pandas._testing_testingr=   pandas.core.indexes.datetimesr   pandas.core.tools.datetimesr   pandas.io.parsersr   r   filterwarnings
pytestmarkusefixturesxfail_pyarrowskip_pyarrowrD   rH   r`   parametrizer   rs  r   r   r   r   r   r   r   r   r	  r  r"  r%  r/  r   r;  rA  rK  r]  ra  rm  rv  r{  r}  r  r  r  r  r  r  r  r  from_tuplesr  r  r  r  r;   r  r  r  r  r  r  r  r  r   r  r  r  r  r  r$  r&  r(  r1  paramr6  r8  r>  rB  rE  rJ  rL  rN  rP  rS  r   r(   r$   <module>rg     s:  
   -    '    4 8 &[[''C
 ''8{{&&~6 $, $,N , ,D ( (6 4-8Z, 9Z,z tUE6&BCA', ( D, 4-8C, 9C,L+,\=,@%,P \, \,~  VH?	
 Aq6N,	
*
E+*
E8,v * *$ , ,& 
, 
, , ,& ?@66*:);q!fX(FG, H A,6 !Q#s(<=, > , 1v1v&67/, 8 /,d Z$6d8K#LM* N *Z*( 1a&9%QF(;Q'?Aq6(AOc,	 
c,L _3 _3D4B,: Bc(:#;<C =C rxxA/?!Q(HI
: J
: u65"+. / 7 u63%( ) 7< 	, 	, (*EF  (*EF

"  SE"xa,-u=	
  q1M<.sCRP	
 )S#J'4B'$2)>?@3PS*	
 ) 1v6 ,,tQ+XdAr-BCDSRUJ 			
%@,A B, , ,2 
 +1v)>?dAq"a3S"=dAq!Q2C> 0	
"= 1v1a&,QR !q"b!4 q"b"5	 !q"b!4 q"b"5	 !q"b!4 q"b"5	 !q"b!4 q"b"5	 !q"b!4 q"b"5	 !q"b!4 q"b"5	?%L 4O(3	
!DGP,QGP,$,(  C	

 	3
,
,4  F	

 	6
,
,4,0 #, #,L,  3s/AB)T	

 7s@AS	
	 u6, 7,,. U,	 
, # 
tXdAr23	uhtQ34	tXdAq12
,
,. # 
uhtQ34	tXdAr23	, ,(	Q /	w(,7	wFV,	w&&)*L9	w!Vv.	w!V-v6	w&&!12LA	w&&)62LA	*D662BLQ-m$f		
&' (0 , ,& 	, 	, z
"	#^4
Z0	1<@, ,.,B , ,&-*` ,	

 	+	
))( 	, 	, 	FV), ,@ 	, 	,,B,* %1a&*UUQFO,DE,,0 , ,&,. - -r(   