@@ -929,25 +929,31 @@ def is_subperiod(source, target):
929
929
if _is_quarterly (source ):
930
930
return _quarter_months_conform (_get_rule_month (source ),
931
931
_get_rule_month (target ))
932
- return source in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' ]
932
+ return source in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
933
933
elif _is_quarterly (target ):
934
- return source in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' ]
934
+ return source in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
935
935
elif target == 'M' :
936
- return source in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
936
+ return source in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
937
937
elif _is_weekly (target ):
938
- return source in [target , 'D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
938
+ return source in [target , 'D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
939
939
elif target == 'B' :
940
- return source in ['B' , 'H' , 'T' , 'S' ]
940
+ return source in ['B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
941
941
elif target == 'C' :
942
- return source in ['C' , 'H' , 'T' , 'S' ]
942
+ return source in ['C' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
943
943
elif target == 'D' :
944
- return source in ['D' , 'H' , 'T' , 'S' ]
944
+ return source in ['D' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
945
945
elif target == 'H' :
946
- return source in ['H' , 'T' , 'S' ]
946
+ return source in ['H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
947
947
elif target == 'T' :
948
- return source in ['T' , 'S' ]
948
+ return source in ['T' , 'S' , 'L' , 'U' , 'N' ]
949
949
elif target == 'S' :
950
- return source in ['S' ]
950
+ return source in ['S' , 'L' , 'U' , 'N' ]
951
+ elif target == 'L' :
952
+ return source in ['L' , 'U' , 'N' ]
953
+ elif target == 'U' :
954
+ return source in ['U' , 'N' ]
955
+ elif target == 'N' :
956
+ return source in ['N' ]
951
957
952
958
953
959
def is_superperiod (source , target ):
@@ -982,25 +988,31 @@ def is_superperiod(source, target):
982
988
smonth = _get_rule_month (source )
983
989
tmonth = _get_rule_month (target )
984
990
return _quarter_months_conform (smonth , tmonth )
985
- return target in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' ]
991
+ return target in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
986
992
elif _is_quarterly (source ):
987
- return target in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' ]
993
+ return target in ['D' , 'C' , 'B' , 'M' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
988
994
elif source == 'M' :
989
- return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
995
+ return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
990
996
elif _is_weekly (source ):
991
- return target in [source , 'D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
997
+ return target in [source , 'D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
992
998
elif source == 'B' :
993
- return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
999
+ return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
994
1000
elif source == 'C' :
995
- return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
1001
+ return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
996
1002
elif source == 'D' :
997
- return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' ]
1003
+ return target in ['D' , 'C' , 'B' , 'H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
998
1004
elif source == 'H' :
999
- return target in ['H' , 'T' , 'S' ]
1005
+ return target in ['H' , 'T' , 'S' , 'L' , 'U' , 'N' ]
1000
1006
elif source == 'T' :
1001
- return target in ['T' , 'S' ]
1007
+ return target in ['T' , 'S' , 'L' , 'U' , 'N' ]
1002
1008
elif source == 'S' :
1003
- return target in ['S' ]
1009
+ return target in ['S' , 'L' , 'U' , 'N' ]
1010
+ elif source == 'L' :
1011
+ return target in ['L' , 'U' , 'N' ]
1012
+ elif source == 'U' :
1013
+ return target in ['U' , 'N' ]
1014
+ elif source == 'N' :
1015
+ return target in ['N' ]
1004
1016
1005
1017
1006
1018
def _get_rule_month (source , default = 'DEC' ):
0 commit comments