COMPAT with dateutil 2.6.1, fixed ambiguous tz dst behavior (#16880) Needed after...
authorJeff Reback <jeff@reback.net>
Tue, 11 Jul 2017 16:39:39 +0000 (12:39 -0400)
committerMo Zhou <cdluminate@gmail.com>
Sat, 20 Jan 2018 09:00:31 +0000 (09:00 +0000)
Gbp-Pq: Name dateutil-2.6.1-fixed-ambiguous-tz-dst-be.patch

ci/requirements-3.5.run
ci/requirements-3.5.sh
ci/requirements-3.6_NUMPY_DEV.run
pandas/tests/tseries/test_offsets.py
pandas/tests/tseries/test_timezones.py

index 43e6814ed6c8e54a3ed306432a85f8ff5b3706dd..52828b52209971d49fb4d31d2bf80446ea69cc2c 100644 (file)
@@ -1,4 +1,3 @@
-python-dateutil
 pytz
 numpy=1.11.3
 openpyxl
index d0f0b81802dc672d6b883e5ba48152a346fc80c4..917439a8765a2240fc084262f662191949734a42 100644 (file)
@@ -5,3 +5,7 @@ source activate pandas
 echo "install 35"
 
 conda install -n pandas -c conda-forge feather-format
+
+# pip install python-dateutil to get latest
+conda remove -n pandas python-dateutil --force
+pip install python-dateutil
index 0aa987baefb1d5b9e35f102def05be2718eb063f..af44f198c687e245aada835efbab2f75ed2c9baf 100644 (file)
@@ -1,2 +1 @@
-python-dateutil
 pytz
index 09de064c151834411496152b7c8b61dbc3b6b9e4..adc6ff6814bdf7897600213df6873fe8b99de69c 100644 (file)
@@ -4850,7 +4850,7 @@ class TestDST(object):
             hrs_pre = utc_offsets['utc_offset_daylight']
             hrs_post = utc_offsets['utc_offset_standard']
 
-            if dateutil.__version__ != LooseVersion('2.6.0'):
+            if dateutil.__version__ < LooseVersion('2.6.0'):
                 # buggy ambiguous behavior in 2.6.0
                 # GH 14621
                 # https://github.com/dateutil/dateutil/issues/321
@@ -4858,6 +4858,9 @@ class TestDST(object):
                     n=3, tstart=self._make_timestamp(self.ts_pre_fallback,
                                                      hrs_pre, tz),
                     expected_utc_offset=hrs_post)
+            elif dateutil.__version__ > LooseVersion('2.6.0'):
+                # fixed, but skip the test
+                continue
 
     def test_springforward_plural(self):
         # test moving from standard to daylight savings
index 97c54922d36e90317961406b5c4e2b18601b8041..deedd535a7670c226d87c45947b09030560d586c 100644 (file)
@@ -562,8 +562,16 @@ class TestTimeZoneSupportPytz(object):
                            tz=tz, ambiguous='infer')
         assert times[0] == Timestamp('2013-10-26 23:00', tz=tz, freq="H")
 
-        if dateutil.__version__ != LooseVersion('2.6.0'):
-            # see gh-14621
+        if str(tz).startswith('dateutil'):
+            if dateutil.__version__ < LooseVersion('2.6.0'):
+                # see gh-14621
+                assert times[-1] == Timestamp('2013-10-27 01:00:00+0000',
+                                              tz=tz, freq="H")
+            elif dateutil.__version__ > LooseVersion('2.6.0'):
+                # fixed ambiguous behavior
+                assert times[-1] == Timestamp('2013-10-27 01:00:00+0100',
+                                              tz=tz, freq="H")
+        else:
             assert times[-1] == Timestamp('2013-10-27 01:00:00+0000',
                                           tz=tz, freq="H")
 
@@ -1256,13 +1264,18 @@ class TestTimeZones(object):
         assert result_pytz.value == result_dateutil.value
         assert result_pytz.value == 1382835600000000000
 
-        # dateutil 2.6 buggy w.r.t. ambiguous=0
-        if dateutil.__version__ != LooseVersion('2.6.0'):
+        if dateutil.__version__ < LooseVersion('2.6.0'):
+            # dateutil 2.6 buggy w.r.t. ambiguous=0
             # see gh-14621
             # see https://github.com/dateutil/dateutil/issues/321
             assert (result_pytz.to_pydatetime().tzname() ==
                     result_dateutil.to_pydatetime().tzname())
             assert str(result_pytz) == str(result_dateutil)
+        elif dateutil.__version__ > LooseVersion('2.6.0'):
+            # fixed ambiguous behavior
+            assert result_pytz.to_pydatetime().tzname() == 'GMT'
+            assert result_dateutil.to_pydatetime().tzname() == 'BST'
+            assert str(result_pytz) != str(result_dateutil)
 
         # 1 hour difference
         result_pytz = (Timestamp('2013-10-27 01:00:00')