@@ -573,7 +573,7 @@ def rollback(self, date):
573
573
574
574
575
575
class YearEnd (YearOffset ):
576
- _freq = "Y "
576
+ _freq = "YE "
577
577
_day_option = "end"
578
578
_default_month = 12
579
579
@@ -669,6 +669,7 @@ def _generate_anchored_offsets(base_freq, offset):
669
669
"A" : YearEnd ,
670
670
"AS" : YearBegin ,
671
671
"Y" : YearEnd ,
672
+ "YE" : YearEnd ,
672
673
"YS" : YearBegin ,
673
674
"Q" : partial (QuarterEnd , month = 12 ),
674
675
"QE" : partial (QuarterEnd , month = 12 ),
@@ -691,6 +692,7 @@ def _generate_anchored_offsets(base_freq, offset):
691
692
** _generate_anchored_offsets ("A" , YearEnd ),
692
693
** _generate_anchored_offsets ("YS" , YearBegin ),
693
694
** _generate_anchored_offsets ("Y" , YearEnd ),
695
+ ** _generate_anchored_offsets ("YE" , YearEnd ),
694
696
** _generate_anchored_offsets ("QS" , QuarterBegin ),
695
697
** _generate_anchored_offsets ("Q" , QuarterEnd ),
696
698
** _generate_anchored_offsets ("QE" , QuarterEnd ),
@@ -716,7 +718,8 @@ def _generate_anchored_deprecated_frequencies(deprecated, recommended):
716
718
717
719
718
720
_DEPRECATED_FREQUENICES = {
719
- "A" : "Y" ,
721
+ "A" : "YE" ,
722
+ "Y" : "YE" ,
720
723
"AS" : "YS" ,
721
724
"Q" : "QE" ,
722
725
"M" : "ME" ,
@@ -725,7 +728,8 @@ def _generate_anchored_deprecated_frequencies(deprecated, recommended):
725
728
"S" : "s" ,
726
729
"L" : "ms" ,
727
730
"U" : "us" ,
728
- ** _generate_anchored_deprecated_frequencies ("A" , "Y" ),
731
+ ** _generate_anchored_deprecated_frequencies ("A" , "YE" ),
732
+ ** _generate_anchored_deprecated_frequencies ("Y" , "YE" ),
729
733
** _generate_anchored_deprecated_frequencies ("AS" , "YS" ),
730
734
** _generate_anchored_deprecated_frequencies ("Q" , "QE" ),
731
735
}
@@ -979,7 +983,7 @@ def cftime_range(
979
983
+--------+--------------------------+
980
984
| Alias | Description |
981
985
+========+==========================+
982
- | Y | Year-end frequency |
986
+ | YE | Year-end frequency |
983
987
+--------+--------------------------+
984
988
| YS | Year-start frequency |
985
989
+--------+--------------------------+
@@ -1009,29 +1013,29 @@ def cftime_range(
1009
1013
+------------+--------------------------------------------------------------------+
1010
1014
| Alias | Description |
1011
1015
+============+====================================================================+
1012
- | Y(S)-JAN | Annual frequency, anchored at the end (or beginning) of January |
1016
+ | Y(E, S)-JAN | Annual frequency, anchored at the ( end, beginning) of January |
1013
1017
+------------+--------------------------------------------------------------------+
1014
- | Y(S)-FEB | Annual frequency, anchored at the end (or beginning) of February |
1018
+ | Y(E, S)-FEB | Annual frequency, anchored at the ( end, beginning) of February |
1015
1019
+------------+--------------------------------------------------------------------+
1016
- | Y(S)-MAR | Annual frequency, anchored at the end (or beginning) of March |
1020
+ | Y(E, S)-MAR | Annual frequency, anchored at the ( end, beginning) of March |
1017
1021
+------------+--------------------------------------------------------------------+
1018
- | Y(S)-APR | Annual frequency, anchored at the end (or beginning) of April |
1022
+ | Y(E, S)-APR | Annual frequency, anchored at the ( end, beginning) of April |
1019
1023
+------------+--------------------------------------------------------------------+
1020
- | Y(S)-MAY | Annual frequency, anchored at the end (or beginning) of May |
1024
+ | Y(E, S)-MAY | Annual frequency, anchored at the ( end, beginning) of May |
1021
1025
+------------+--------------------------------------------------------------------+
1022
- | Y(S)-JUN | Annual frequency, anchored at the end (or beginning) of June |
1026
+ | Y(E, S)-JUN | Annual frequency, anchored at the ( end, beginning) of June |
1023
1027
+------------+--------------------------------------------------------------------+
1024
- | Y(S)-JUL | Annual frequency, anchored at the end (or beginning) of July |
1028
+ | Y(E, S)-JUL | Annual frequency, anchored at the ( end, beginning) of July |
1025
1029
+------------+--------------------------------------------------------------------+
1026
- | Y(S)-AUG | Annual frequency, anchored at the end (or beginning) of August |
1030
+ | Y(E, S)-AUG | Annual frequency, anchored at the ( end, beginning) of August |
1027
1031
+------------+--------------------------------------------------------------------+
1028
- | Y(S)-SEP | Annual frequency, anchored at the end (or beginning) of September |
1032
+ | Y(E, S)-SEP | Annual frequency, anchored at the ( end, beginning) of September |
1029
1033
+------------+--------------------------------------------------------------------+
1030
- | Y(S)-OCT | Annual frequency, anchored at the end (or beginning) of October |
1034
+ | Y(E, S)-OCT | Annual frequency, anchored at the ( end, beginning) of October |
1031
1035
+------------+--------------------------------------------------------------------+
1032
- | Y(S)-NOV | Annual frequency, anchored at the end (or beginning) of November |
1036
+ | Y(E, S)-NOV | Annual frequency, anchored at the ( end, beginning) of November |
1033
1037
+------------+--------------------------------------------------------------------+
1034
- | Y(S)-DEC | Annual frequency, anchored at the end (or beginning) of December |
1038
+ | Y(E, S)-DEC | Annual frequency, anchored at the ( end, beginning) of December |
1035
1039
+------------+--------------------------------------------------------------------+
1036
1040
| Q(E,S)-JAN | Quarter frequency, anchored at the (end, beginning) of January |
1037
1041
+------------+--------------------------------------------------------------------+
@@ -1311,11 +1315,8 @@ def date_range_like(source, calendar, use_cftime=None):
1311
1315
freq = freq .replace ("QE" , "Q" )
1312
1316
elif isinstance (freq_as_offset , YearBegin ) and "YS" in freq :
1313
1317
freq = freq .replace ("YS" , "AS" )
1314
- elif isinstance (freq_as_offset , YearEnd ) and "Y-" in freq :
1315
- # Check for and replace "Y-" instead of just "Y" to prevent
1316
- # corrupting anchored offsets that contain "Y" in the month
1317
- # abbreviation, e.g. "Y-MAY" -> "A-MAY".
1318
- freq = freq .replace ("Y-" , "A-" )
1318
+ elif isinstance (freq_as_offset , YearEnd ) and "YE" in freq :
1319
+ freq = freq .replace ("YE" , "A" )
1319
1320
1320
1321
use_cftime = _should_cftime_be_used (source , calendar , use_cftime )
1321
1322
0 commit comments