1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
U
®ý°dâFã@sÞdZddlmZmZmZmZddlZddlZddlmZm    Z    ddl
Z
ddl Z ddl m Z mZddlmZddlmZddlmZddlmmZdd    lmZmZzdd
lmZWnek
rÊdZYnXGd d „d ƒZdS) z.
Tests for Timestamp timezone-related methods
é)ÚdateÚdatetimeÚ    timedeltaÚtimezoneN)ÚgettzÚtzoffset)ÚAmbiguousTimeErrorÚNonExistentTimeError)Ú    timezones)ÚNpyDatetimeUnit)ÚOutOfBoundsDatetime)ÚNaTÚ    Timestamp)ÚZoneInfoc@sheZdZdd„Zej dddddg¡dd    „ƒZd
d „Zej d d dddg¡dd„ƒZ    dd„Z
dd„Z ej dddddg¡dd„ƒZ dd„Z ej d e d!¡ed!ƒd!d"g¡d#d$„ƒZej d%d&d'd(d)gd&d'd*d+gd&d'd,ed-d.gd&d'd/ed0d.gd1d2d3d)gd1d2d4d+gd1d2d5ed-d.gd1d2d6ed0d.gg¡ej d7d8d9g¡ej dddddg¡d:d;„ƒƒƒZej d<d0d-g¡d=d>„ƒZej dddddg¡d?d@„ƒZej dddddg¡dAdB„ƒZej dddddg¡dCdD„ƒZej dEd!d"g¡dFdG„ƒZejdHdI„ƒZdJdK„ZdLdM„ZdNdO„Zej d e d!¡ed!ƒd!d"g¡dPdQ„ƒZej d e d!¡ed!ƒd!d"g¡dRdS„ƒZ dTdU„Z!dVS)WÚTestTimestampTZOperationsc    CsÔdtj d¡›dtj›}tj d¡}|jtjjks8t‚| d¡tjt    |dtj d¡W5QRXdtj
 d¡›dtj
›}tj
 d¡}|jtj
jks t‚| d¡tjt    |dtj
 d¡W5QRXdS)Nz Converting z%Y-%m-%d %H:%M:%Sz underflows past ú
US/Pacificú
Asia/Tokyo©Úmatchz overflows past ) rÚminÚstrftimeÚ tz_localizeÚ_valueÚAssertionErrorÚ
tz_convertÚpytestÚraisesr Úmax)ÚselfÚmsgZpacZtokyo©r úcd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/scalar/timestamp/test_timezones.pyÚ%test_tz_localize_pushes_out_of_bounds,sÿ 
ÿ 
z?TestTimestampTZOperations.test_tz_localize_pushes_out_of_boundsÚunitÚnsÚusÚmsÚsc    Cs:tdƒ |¡}tddd}tddd}d}tjtj|d| d¡W5QRXtjtj|d| d¡W5QRXtdk    rÆz tdƒ}Wntk
ržYn(Xtjtj|d| |¡W5QRX|jdd    d
}||ksàt    ‚|j
t t d |›ƒj ksüt    ‚|jdd d
}||kst    ‚|j
t t d |›ƒj ks6t    ‚dS) Nz2015-11-01 01:00:03z2015-11-01 01:00:03-0500z
US/Central©Útzz2015-11-01 01:00:03-0600z.Cannot infer dst time from 2015-11-01 01:00:03rzdateutil/US/CentralT©Z    ambiguousÚNPY_FR_F)rÚas_unitrrÚpytzrrrÚKeyErrorrÚ_cresoÚgetattrr Úvalue)rr#ÚtsZ    expected0Z    expected1rr)Úresultr r r!Útest_tz_localize_ambiguous_boolDs*    z9TestTimestampTZOperations.test_tz_localize_ambiguous_boolc    CsÊtdƒ}|jddd}|jddd}|j|jdks8t‚t d¡}tjt|d|jdd    dW5QRXd
}tjt    |dtd dd  d ¡W5QRXd}tjt    |dtd ƒ 
d ¡W5QRXdS)Nz2014-11-02 01:00ú
US/EasternTr*FizK'ambiguous' parameter must be one of: True, False, 'NaT', 'raise' (default)rZinferzBCannot localize tz-aware Timestamp, use tz_convert for conversionsz
2011-01-01r(rz>Cannot convert tz-naive Timestamp, use tz_localize to localize) rrrrÚreÚescaperrÚ
ValueErrorÚ    TypeErrorr)rr2Zts_dstZ    ts_no_dstrr r r!Útest_tz_localize_ambiguousesÿz4TestTimestampTZOperations.test_tz_localize_ambiguousz    stamp, tz)z2015-03-08 02:00r5)z2015-03-08 02:30r)z2015-03-29 02:00ú Europe/Paris)z2015-03-29 02:30zEurope/Belgradec    Csnt|ƒ}tjt|d| |¡W5QRXtjt|d|j|ddW5QRX|j|ddtksjt‚dS)NrÚraise©Z nonexistentr )rrrr    rr r)rÚstampr)r2r r r!Útest_tz_localize_nonexistent{s z6TestTimestampTZOperations.test_tz_localize_nonexistentc    Cs8tdƒ}d}tjt|d|jdddW5QRXdS)Nz2015-11-1 01:00z/Cannot infer dst time from 2015-11-01 01:00:00,rrr<r*)rrrrr)rr2rr r r!Ú test_tz_localize_ambiguous_raiseŽsz:TestTimestampTZOperations.test_tz_localize_ambiguous_raisec    Cs<|}tdƒ}d}tjt|d|j|ddW5QRXdS)Nz2015-03-29 02:00:00úoThe nonexistent argument must be one of 'raise', 'NaT', 'shift_forward', 'shift_backward' or a timedelta objectrÚfoor=)rrrr8r)rÚwarsawr)r2rr r r!Ú(test_tz_localize_nonexistent_invalid_arg•s ÿzBTestTimestampTZOperations.test_tz_localize_nonexistent_invalid_argr>z2014-02-01 09:00z2014-07-08 09:00z2014-11-01 17:00z2014-11-05 00:00c    Csz|}t|ƒ}| |¡}|t||dks*t‚d}tjt|d| |¡W5QRX| d¡}||ksht‚|jdksvt‚dS)Nr(z"Cannot localize tz-aware Timestampr)rrrrrr9Útzinfo)rr>Útz_aware_fixturer)r2Z    localizedrÚresetr r r!Útest_tz_localize_roundtrip s
 
 
 z4TestTimestampTZOperations.test_tz_localize_roundtripcCsôtdƒ}d}d}|j|dd}|j|dd}|j|jks<t‚|jdksJt‚| ¡ ¡dks^t‚| ¡ ¡dksrt‚t|ƒt|ƒks†t‚|j|dd}|j|dd}|j|jks²t‚|jd    ksÀt‚t|ƒt|ƒksÔt‚| ¡ ¡| ¡ ¡ksðt‚dS)
Nz2013-10-27 01:00:00z Europe/Londonzdateutil/Europe/LondonFr*ielRÚGMTTi€WlR)rrrrÚ to_pydatetimeÚtznameÚstr)rÚnaiveZ    pytz_zoneZ dateutil_zoneZ result_pytzZresult_dateutilr r r!Ú!test_tz_localize_ambiguous_compat·s&
 
ÿÿz;TestTimestampTZOperations.test_tz_localize_ambiguous_compatr)r5zdateutil/US/EasterncCs>tdƒ}| |¡}td|d}|j|jks.t‚||ks:t‚dS)Nú3/11/2012 04:00r()rrÚhourr©rr)r>r3Úexpectedr r r!Útest_timestamp_tz_localizeÖs
 
 
 z4TestTimestampTZOperations.test_timestamp_tz_localizezstart_ts, tz, end_ts, shiftú2015-03-29 02:20:00z Europe/Warsawz2015-03-29 03:00:00Zforwardz2015-03-29 01:59:59.999999999Zbackwardz2015-03-29 03:20:00é©Úhoursz2015-03-29 01:20:00éÿÿÿÿz2018-03-11 02:33:00rz2018-03-11 03:00:00z2018-03-11 01:59:59.999999999z2018-03-11 03:33:00z2018-03-11 01:33:00Útz_typeÚz    dateutil/c CsÞ||}t|tƒrd|}t|ƒ |¡}|j||d}t|ƒ |¡}    |dkrb||    jddks¾t‚n\|dkr’|    j|    jd}
||    j|
ddks¾t‚n,|d    kr²||    jdddks¾t‚n ||    ks¾t‚|jt    t
d
|›ƒj ksÚt‚dS) NZshift_r=r%r)Ú
nanosecondr&iè)Ú microsecondr[r'r+) Ú
isinstancerLrr,rÚreplacerr\r/r0r r1) rÚstart_tsr)Zend_tsÚshiftrYr#r2r3rRZmicrosr r r!Ú,test_timestamp_tz_localize_nonexistent_shiftçs1
 zFTestTimestampTZOperations.test_timestamp_tz_localize_nonexistent_shiftÚoffsetc    CsB|}tdƒ}d}tjt|d|j|t|ddW5QRXdS)NrTz<The provided timedelta will relocalize on a nonexistent timer)Úsecondsr=)rrrr8rr)rrbrCr)r2rr r r!Ú4test_timestamp_tz_localize_nonexistent_shift_invalid*s
zNTestTimestampTZOperations.test_timestamp_tz_localize_nonexistent_shift_invalidcCs0|}tdƒ |¡}|j|dd}|tks,t‚dS)NrTr r=)rr,rr r)rrCr#r)r2r3r r r!Ú*test_timestamp_tz_localize_nonexistent_NaT3szDTestTimestampTZOperations.test_timestamp_tz_localize_nonexistent_NaTc    Csp|}tdƒ |¡}d}tjtj|d|j|ddW5QRXd}tjt|d|j|ddW5QRXdS)NrTrr<r=rArB)rr,rrr-r    rr8)rrCr#r)r2rr r r!Ú,test_timestamp_tz_localize_nonexistent_raise;sÿzFTestTimestampTZOperations.test_timestamp_tz_localize_nonexistent_raisecCs^|}t|dd}| |¡}| d¡}|t|ƒks4t‚|jdksBt‚|| d¡ d¡ksZt‚dS)NÚUTCr()rrrrEr)rr>rFr)r2Z    convertedrGr r r!Útest_tz_convert_roundtripMs
 
 
z3TestTimestampTZOperations.test_tz_convert_roundtripÚtzstrcCs>tddd}| |¡}| |¡}||ks,t‚t|tƒs:t‚dS)Nz3/11/2012 22:00rgr()rrÚ
astimezonerr])rriZutcdaterRr3r r r!Útest_astimezoneas
 
 
 z)TestTimestampTZOperations.test_astimezonecCsXtdt d¡d}|| tj ¡¡ks*t‚tdt d¡d}|| tj ¡¡ksTt‚dS)Nz2001-01-05 11:56z dateutil/UTCr()rr
Ú maybe_get_tzrÚdateutilr)Ztzutcr)rr2r r r!Ú#test_tz_convert_utc_with_system_utcksz=TestTimestampTZOperations.test_tz_convert_utc_with_system_utccCsJtddd}|jtjkst‚|jdks*t‚tdƒ d¡}|jdksFt‚dS)Nú3/11/2012 05:00Úutcr(é)rrErrprrPr)rZ    utc_stampr r r!Ú!test_timestamp_constructor_tz_utczs
 z;TestTimestampTZOperations.test_timestamp_constructor_tz_utccCs2tddƒ}td|d}t| ¡ƒ}||ks.t‚dS)Ni rOr()rrrJr)rrErRr3r r r!Ú#test_timestamp_to_datetime_tzoffset‚s
  z=TestTimestampTZOperations.test_timestamp_to_datetime_tzoffsetc
CsºdD]V}td|d}tdƒ |¡}||ks.t‚d}tjtj|dtd|dW5QRXqtddd}tdƒ d¡}||ks‚t‚d    }tjtj|dtd    ddW5QRXtd
ƒ}| d ¡ d ¡}td d d}||ksÞt‚tddd}tddd}||kst‚tddd}tddd}||ks*t‚d    }tjtj|dtd    ddW5QRXtddd}t|     d¡j
ƒ}| d ¡ d¡}||kst‚tddd}tddd}||ks¶t‚dS)N)zEurope/Brusselsz Europe/Praguez2015-10-25 01:00r(z.Cannot infer dst time from 2015-10-25 02:00:00rz2015-10-25 02:00z2017-03-26 01:00r;z2017-03-26 02:00z2015-11-18 10:00:00rgz Asia/Kolkataz2015-11-18 15:30:00+0530z2017-03-26 00:00z2017-03-26 00:00:00+0100z2017-03-26 01:00:00+0100z2017-03-26 02:00:00+0100r$z2017-03-26 03:00z2017-03-26 03:00:00+0200) rrrrrr-rr    rr,r)rr)r3rRrrMr r r!Ú,test_timestamp_constructor_near_dst_boundaryˆsB             zFTestTimestampTZOperations.test_timestamp_constructor_near_dst_boundarycCs@ttdddƒ|d}td|d}|j|jks0t‚||ks<t‚dS)NiÜéé r(z    3/11/2012)rrrPr)rr)r3rRr r r!Ú)test_timestamp_constructed_by_date_and_tzºs  zCTestTimestampTZOperations.test_timestamp_constructed_by_date_and_tzcCs6td|d}|tdd}td|d}||ks2t‚dS)Nz3/10/2012 22:00r(érVro)rrrrQr r r!Ú3test_timestamp_add_timedelta_push_over_dst_boundaryÍs  zMTestTimestampTZOperations.test_timestamp_add_timedelta_push_over_dst_boundaryc    CsLt |¡}td|d}tdddddd|d    }| ¡}| ¡}||ksHt‚dS)
Nz2018-06-04 10:20:30r(iârxéé
éé)rPÚminuteÚsecondrE)r
rlrrÚtimetzr)rZtz_naive_fixturer)r>Ú    _datetimer3rRr r r!Ú1test_timestamp_timetz_equivalent_with_datetime_tzãs 
 zKTestTimestampTZOperations.test_timestamp_timetz_equivalent_with_datetime_tzN)"Ú__name__Ú
__module__Ú __qualname__r"rÚmarkZ parametrizer4r:r?r@rDrHrNr-rrrSrrardrerfrhrkÚtdZskip_if_windowsrnrrrsrtrwryr‚r r r r!r(sä
 üþ    
 
 üþ    
üþ    
 
üüü
üüüßþ+
 
 
üþ    
 
    
2üþ    
 
üþ    
r) Ú__doc__rrrrr6rmZ dateutil.tzrrrr-Zpytz.exceptionsrr    Zpandas._libs.tslibsr
Zpandas._libs.tslibs.dtypesr Z pandas.errorsr Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr‡Zpandasr rZzoneinforÚ ImportErrorrr r r r!Ú<module>s"