pandas-market-calendars 4.4.2__py3-none-any.whl → 4.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pandas_market_calendars/__init__.py +38 -38
- pandas_market_calendars/calendar_registry.py +57 -57
- pandas_market_calendars/calendar_utils.py +262 -262
- pandas_market_calendars/calendars/asx.py +66 -66
- pandas_market_calendars/calendars/bmf.py +223 -223
- pandas_market_calendars/calendars/bse.py +421 -421
- pandas_market_calendars/calendars/cboe.py +145 -145
- pandas_market_calendars/calendars/cme.py +405 -405
- pandas_market_calendars/calendars/cme_globex_agriculture.py +172 -172
- pandas_market_calendars/calendars/cme_globex_base.py +119 -119
- pandas_market_calendars/calendars/cme_globex_crypto.py +160 -160
- pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -216
- pandas_market_calendars/calendars/cme_globex_equities.py +123 -123
- pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -136
- pandas_market_calendars/calendars/cme_globex_fx.py +101 -101
- pandas_market_calendars/calendars/eurex.py +131 -131
- pandas_market_calendars/calendars/eurex_fixed_income.py +98 -98
- pandas_market_calendars/calendars/hkex.py +429 -429
- pandas_market_calendars/calendars/ice.py +81 -81
- pandas_market_calendars/calendars/iex.py +112 -112
- pandas_market_calendars/calendars/jpx.py +113 -113
- pandas_market_calendars/calendars/lse.py +114 -114
- pandas_market_calendars/calendars/mirror.py +149 -149
- pandas_market_calendars/calendars/nyse.py +1327 -1324
- pandas_market_calendars/calendars/ose.py +116 -116
- pandas_market_calendars/calendars/sifma.py +354 -354
- pandas_market_calendars/calendars/six.py +132 -132
- pandas_market_calendars/calendars/sse.py +311 -311
- pandas_market_calendars/calendars/tase.py +197 -197
- pandas_market_calendars/calendars/tsx.py +181 -181
- pandas_market_calendars/holidays/cme.py +385 -385
- pandas_market_calendars/holidays/cme_globex.py +214 -214
- pandas_market_calendars/holidays/cn.py +1456 -1456
- pandas_market_calendars/holidays/jp.py +401 -401
- pandas_market_calendars/holidays/jpx_equinox.py +506 -506
- pandas_market_calendars/holidays/nyse.py +1536 -1531
- pandas_market_calendars/holidays/oz.py +63 -63
- pandas_market_calendars/holidays/sifma.py +350 -350
- pandas_market_calendars/holidays/us.py +376 -376
- pandas_market_calendars/market_calendar.py +941 -922
- {pandas_market_calendars-4.4.2.dist-info → pandas_market_calendars-4.5.0.dist-info}/METADATA +1 -1
- pandas_market_calendars-4.5.0.dist-info/RECORD +50 -0
- {pandas_market_calendars-4.4.2.dist-info → pandas_market_calendars-4.5.0.dist-info}/WHEEL +1 -1
- pandas_market_calendars-4.4.2.dist-info/RECORD +0 -50
- {pandas_market_calendars-4.4.2.dist-info → pandas_market_calendars-4.5.0.dist-info}/LICENSE +0 -0
- {pandas_market_calendars-4.4.2.dist-info → pandas_market_calendars-4.5.0.dist-info}/NOTICE +0 -0
- {pandas_market_calendars-4.4.2.dist-info → pandas_market_calendars-4.5.0.dist-info}/top_level.txt +0 -0
@@ -1,136 +1,136 @@
|
|
1
|
-
from datetime import time
|
2
|
-
|
3
|
-
from pandas.tseries.holiday import AbstractHolidayCalendar
|
4
|
-
|
5
|
-
from pandas_market_calendars.holidays.cme import (
|
6
|
-
USMartinLutherKingJrAfter1998Before2015,
|
7
|
-
USMartinLutherKingJrAfter1998Before2016FridayBefore,
|
8
|
-
USMartinLutherKingJrAfter2015,
|
9
|
-
USPresidentsDayBefore2016FridayBefore,
|
10
|
-
USPresidentsDayBefore2015,
|
11
|
-
USPresidentsDayAfter2015,
|
12
|
-
GoodFridayBefore2021NotEarlyClose,
|
13
|
-
GoodFriday2009,
|
14
|
-
GoodFriday2010,
|
15
|
-
GoodFriday2012,
|
16
|
-
GoodFriday2015,
|
17
|
-
GoodFriday2021,
|
18
|
-
GoodFriday2022,
|
19
|
-
GoodFridayAfter2022,
|
20
|
-
USMemorialDay2013AndPrior,
|
21
|
-
USMemorialDayAfter2013,
|
22
|
-
USMemorialDay2015AndPriorFridayBefore,
|
23
|
-
USIndependenceDayBefore2014,
|
24
|
-
USIndependenceDayAfter2014,
|
25
|
-
USLaborDayStarting1887Before2014,
|
26
|
-
USLaborDayStarting1887Before2015FridayBefore,
|
27
|
-
USLaborDayStarting1887After2014,
|
28
|
-
USThanksgivingBefore2014,
|
29
|
-
USThanksgivingAfter2014,
|
30
|
-
USThanksgivingFriday,
|
31
|
-
)
|
32
|
-
from pandas_market_calendars.holidays.us import (
|
33
|
-
USNewYearsDay,
|
34
|
-
ChristmasEveInOrAfter1993,
|
35
|
-
Christmas,
|
36
|
-
USJuneteenthAfter2022,
|
37
|
-
)
|
38
|
-
from .cme_globex_base import CMEGlobexBaseExchangeCalendar
|
39
|
-
|
40
|
-
|
41
|
-
class CMEGlobexFixedIncomeCalendar(CMEGlobexBaseExchangeCalendar):
|
42
|
-
aliases = ["CME Globex Fixed Income", "CME Globex Interest Rate Products"]
|
43
|
-
|
44
|
-
regular_market_times = {
|
45
|
-
"market_open": ((None, time(18), -1),),
|
46
|
-
"market_close": ((None, time(17)),),
|
47
|
-
}
|
48
|
-
|
49
|
-
"""
|
50
|
-
Not yet implemented:
|
51
|
-
Christmas/New_Years
|
52
|
-
5am special open for a couple years (see tests)
|
53
|
-
|
54
|
-
regular market_open/market_close changed from 17/16 to 18/17?
|
55
|
-
"""
|
56
|
-
|
57
|
-
@property
|
58
|
-
def name(self):
|
59
|
-
return "CME Globex Fixed Income"
|
60
|
-
|
61
|
-
@property
|
62
|
-
def regular_holidays(self):
|
63
|
-
return AbstractHolidayCalendar(
|
64
|
-
rules=[
|
65
|
-
USNewYearsDay,
|
66
|
-
GoodFridayBefore2021NotEarlyClose,
|
67
|
-
GoodFriday2022,
|
68
|
-
Christmas,
|
69
|
-
]
|
70
|
-
)
|
71
|
-
|
72
|
-
@property
|
73
|
-
def special_closes_adhoc(self):
|
74
|
-
return [
|
75
|
-
(time(15, 15), ["2010-07-02", "2011-07-01"]),
|
76
|
-
(time(12, 15), ["2010-12-31"]),
|
77
|
-
]
|
78
|
-
|
79
|
-
@property
|
80
|
-
def special_closes(self):
|
81
|
-
# Source https://www.cmegroup.com/tools-information/holiday-calendar.html
|
82
|
-
return [
|
83
|
-
(
|
84
|
-
time(12),
|
85
|
-
AbstractHolidayCalendar(
|
86
|
-
rules=[
|
87
|
-
USMartinLutherKingJrAfter1998Before2015,
|
88
|
-
USMartinLutherKingJrAfter2015,
|
89
|
-
USPresidentsDayBefore2015,
|
90
|
-
USPresidentsDayAfter2015,
|
91
|
-
USMemorialDay2013AndPrior,
|
92
|
-
USMemorialDayAfter2013,
|
93
|
-
USIndependenceDayBefore2014,
|
94
|
-
USIndependenceDayAfter2014,
|
95
|
-
USLaborDayStarting1887Before2014,
|
96
|
-
USLaborDayStarting1887After2014,
|
97
|
-
USThanksgivingBefore2014,
|
98
|
-
USThanksgivingAfter2014,
|
99
|
-
USJuneteenthAfter2022,
|
100
|
-
]
|
101
|
-
),
|
102
|
-
),
|
103
|
-
(
|
104
|
-
time(15, 15),
|
105
|
-
AbstractHolidayCalendar(
|
106
|
-
rules=[
|
107
|
-
USMartinLutherKingJrAfter1998Before2016FridayBefore,
|
108
|
-
USPresidentsDayBefore2016FridayBefore,
|
109
|
-
GoodFriday2009,
|
110
|
-
USMemorialDay2015AndPriorFridayBefore,
|
111
|
-
USLaborDayStarting1887Before2015FridayBefore,
|
112
|
-
]
|
113
|
-
),
|
114
|
-
),
|
115
|
-
(
|
116
|
-
time(12, 15),
|
117
|
-
AbstractHolidayCalendar(
|
118
|
-
rules=[
|
119
|
-
USThanksgivingFriday,
|
120
|
-
ChristmasEveInOrAfter1993,
|
121
|
-
]
|
122
|
-
),
|
123
|
-
),
|
124
|
-
(
|
125
|
-
time(10, 15),
|
126
|
-
AbstractHolidayCalendar(
|
127
|
-
rules=[
|
128
|
-
GoodFriday2010,
|
129
|
-
GoodFriday2012,
|
130
|
-
GoodFriday2015,
|
131
|
-
GoodFriday2021,
|
132
|
-
GoodFridayAfter2022,
|
133
|
-
]
|
134
|
-
),
|
135
|
-
),
|
136
|
-
]
|
1
|
+
from datetime import time
|
2
|
+
|
3
|
+
from pandas.tseries.holiday import AbstractHolidayCalendar
|
4
|
+
|
5
|
+
from pandas_market_calendars.holidays.cme import (
|
6
|
+
USMartinLutherKingJrAfter1998Before2015,
|
7
|
+
USMartinLutherKingJrAfter1998Before2016FridayBefore,
|
8
|
+
USMartinLutherKingJrAfter2015,
|
9
|
+
USPresidentsDayBefore2016FridayBefore,
|
10
|
+
USPresidentsDayBefore2015,
|
11
|
+
USPresidentsDayAfter2015,
|
12
|
+
GoodFridayBefore2021NotEarlyClose,
|
13
|
+
GoodFriday2009,
|
14
|
+
GoodFriday2010,
|
15
|
+
GoodFriday2012,
|
16
|
+
GoodFriday2015,
|
17
|
+
GoodFriday2021,
|
18
|
+
GoodFriday2022,
|
19
|
+
GoodFridayAfter2022,
|
20
|
+
USMemorialDay2013AndPrior,
|
21
|
+
USMemorialDayAfter2013,
|
22
|
+
USMemorialDay2015AndPriorFridayBefore,
|
23
|
+
USIndependenceDayBefore2014,
|
24
|
+
USIndependenceDayAfter2014,
|
25
|
+
USLaborDayStarting1887Before2014,
|
26
|
+
USLaborDayStarting1887Before2015FridayBefore,
|
27
|
+
USLaborDayStarting1887After2014,
|
28
|
+
USThanksgivingBefore2014,
|
29
|
+
USThanksgivingAfter2014,
|
30
|
+
USThanksgivingFriday,
|
31
|
+
)
|
32
|
+
from pandas_market_calendars.holidays.us import (
|
33
|
+
USNewYearsDay,
|
34
|
+
ChristmasEveInOrAfter1993,
|
35
|
+
Christmas,
|
36
|
+
USJuneteenthAfter2022,
|
37
|
+
)
|
38
|
+
from .cme_globex_base import CMEGlobexBaseExchangeCalendar
|
39
|
+
|
40
|
+
|
41
|
+
class CMEGlobexFixedIncomeCalendar(CMEGlobexBaseExchangeCalendar):
|
42
|
+
aliases = ["CME Globex Fixed Income", "CME Globex Interest Rate Products"]
|
43
|
+
|
44
|
+
regular_market_times = {
|
45
|
+
"market_open": ((None, time(18), -1),),
|
46
|
+
"market_close": ((None, time(17)),),
|
47
|
+
}
|
48
|
+
|
49
|
+
"""
|
50
|
+
Not yet implemented:
|
51
|
+
Christmas/New_Years
|
52
|
+
5am special open for a couple years (see tests)
|
53
|
+
|
54
|
+
regular market_open/market_close changed from 17/16 to 18/17?
|
55
|
+
"""
|
56
|
+
|
57
|
+
@property
|
58
|
+
def name(self):
|
59
|
+
return "CME Globex Fixed Income"
|
60
|
+
|
61
|
+
@property
|
62
|
+
def regular_holidays(self):
|
63
|
+
return AbstractHolidayCalendar(
|
64
|
+
rules=[
|
65
|
+
USNewYearsDay,
|
66
|
+
GoodFridayBefore2021NotEarlyClose,
|
67
|
+
GoodFriday2022,
|
68
|
+
Christmas,
|
69
|
+
]
|
70
|
+
)
|
71
|
+
|
72
|
+
@property
|
73
|
+
def special_closes_adhoc(self):
|
74
|
+
return [
|
75
|
+
(time(15, 15), ["2010-07-02", "2011-07-01"]),
|
76
|
+
(time(12, 15), ["2010-12-31"]),
|
77
|
+
]
|
78
|
+
|
79
|
+
@property
|
80
|
+
def special_closes(self):
|
81
|
+
# Source https://www.cmegroup.com/tools-information/holiday-calendar.html
|
82
|
+
return [
|
83
|
+
(
|
84
|
+
time(12),
|
85
|
+
AbstractHolidayCalendar(
|
86
|
+
rules=[
|
87
|
+
USMartinLutherKingJrAfter1998Before2015,
|
88
|
+
USMartinLutherKingJrAfter2015,
|
89
|
+
USPresidentsDayBefore2015,
|
90
|
+
USPresidentsDayAfter2015,
|
91
|
+
USMemorialDay2013AndPrior,
|
92
|
+
USMemorialDayAfter2013,
|
93
|
+
USIndependenceDayBefore2014,
|
94
|
+
USIndependenceDayAfter2014,
|
95
|
+
USLaborDayStarting1887Before2014,
|
96
|
+
USLaborDayStarting1887After2014,
|
97
|
+
USThanksgivingBefore2014,
|
98
|
+
USThanksgivingAfter2014,
|
99
|
+
USJuneteenthAfter2022,
|
100
|
+
]
|
101
|
+
),
|
102
|
+
),
|
103
|
+
(
|
104
|
+
time(15, 15),
|
105
|
+
AbstractHolidayCalendar(
|
106
|
+
rules=[
|
107
|
+
USMartinLutherKingJrAfter1998Before2016FridayBefore,
|
108
|
+
USPresidentsDayBefore2016FridayBefore,
|
109
|
+
GoodFriday2009,
|
110
|
+
USMemorialDay2015AndPriorFridayBefore,
|
111
|
+
USLaborDayStarting1887Before2015FridayBefore,
|
112
|
+
]
|
113
|
+
),
|
114
|
+
),
|
115
|
+
(
|
116
|
+
time(12, 15),
|
117
|
+
AbstractHolidayCalendar(
|
118
|
+
rules=[
|
119
|
+
USThanksgivingFriday,
|
120
|
+
ChristmasEveInOrAfter1993,
|
121
|
+
]
|
122
|
+
),
|
123
|
+
),
|
124
|
+
(
|
125
|
+
time(10, 15),
|
126
|
+
AbstractHolidayCalendar(
|
127
|
+
rules=[
|
128
|
+
GoodFriday2010,
|
129
|
+
GoodFriday2012,
|
130
|
+
GoodFriday2015,
|
131
|
+
GoodFriday2021,
|
132
|
+
GoodFridayAfter2022,
|
133
|
+
]
|
134
|
+
),
|
135
|
+
),
|
136
|
+
]
|
@@ -1,101 +1,101 @@
|
|
1
|
-
from datetime import time
|
2
|
-
|
3
|
-
from pandas.tseries.holiday import AbstractHolidayCalendar
|
4
|
-
|
5
|
-
from pandas_market_calendars.calendars.cme_globex_base import (
|
6
|
-
CMEGlobexBaseExchangeCalendar,
|
7
|
-
)
|
8
|
-
from pandas_market_calendars.holidays.cme import (
|
9
|
-
USMartinLutherKingJrAfter1998Before2022,
|
10
|
-
USPresidentsDayBefore2022,
|
11
|
-
GoodFridayBefore2021,
|
12
|
-
GoodFriday2021,
|
13
|
-
GoodFriday2022,
|
14
|
-
GoodFridayAfter2022,
|
15
|
-
USMemorialDay2021AndPrior,
|
16
|
-
USIndependenceDayBefore2022,
|
17
|
-
USLaborDayStarting1887Before2022,
|
18
|
-
USThanksgivingBefore2022,
|
19
|
-
USThanksgivingFriday,
|
20
|
-
)
|
21
|
-
from pandas_market_calendars.holidays.us import (
|
22
|
-
USNewYearsDay,
|
23
|
-
ChristmasEveInOrAfter1993,
|
24
|
-
Christmas,
|
25
|
-
)
|
26
|
-
|
27
|
-
_1015 = time(10, 15)
|
28
|
-
_1200 = time(12, 0)
|
29
|
-
_1215 = time(12, 15)
|
30
|
-
|
31
|
-
|
32
|
-
class CMEGlobexFXExchangeCalendar(CMEGlobexBaseExchangeCalendar):
|
33
|
-
aliases = ["CME_Currency"]
|
34
|
-
|
35
|
-
# Using CME Globex trading times eg AUD/USD, EUR/GBP, and BRL/USD
|
36
|
-
# https://www.cmegroup.com/markets/fx/g10/australian-dollar.contractSpecs.html
|
37
|
-
# https://www.cmegroup.com/markets/fx/cross-rates/euro-fx-british-pound.contractSpecs.html
|
38
|
-
# https://www.cmegroup.com/markets/fx/emerging-market/brazilian-real.contractSpecs.html
|
39
|
-
# CME "NZD spot" has its own holiday schedule; this is a niche product (via "FX Link") and is not handled in this
|
40
|
-
# class; however, its regular hours follow the same schedule (see
|
41
|
-
# https://www.cmegroup.com/trading/fx/files/fx-product-guide-2021-us.pdf)
|
42
|
-
regular_market_times = {
|
43
|
-
"market_open": ((None, time(17), -1),), # offset by -1 day
|
44
|
-
"market_close": ((None, time(16, 00)),),
|
45
|
-
}
|
46
|
-
|
47
|
-
aliases = ["CMEGlobex_FX", "CME_FX", "CME_Currency"]
|
48
|
-
|
49
|
-
@property
|
50
|
-
def name(self):
|
51
|
-
return "CMEGlobex_FX"
|
52
|
-
|
53
|
-
@property
|
54
|
-
def regular_holidays(self):
|
55
|
-
return AbstractHolidayCalendar(
|
56
|
-
rules=[
|
57
|
-
USNewYearsDay,
|
58
|
-
GoodFridayBefore2021,
|
59
|
-
GoodFriday2022,
|
60
|
-
Christmas,
|
61
|
-
]
|
62
|
-
)
|
63
|
-
|
64
|
-
@property
|
65
|
-
def special_closes(self):
|
66
|
-
"""
|
67
|
-
Accurate 2020-2022 inclusive
|
68
|
-
TODO - enhance/verify prior to 2020
|
69
|
-
TODO - Add 2023+ once known
|
70
|
-
"""
|
71
|
-
# Source https://www.cmegroup.com/tools-information/holiday-calendar.html
|
72
|
-
return [
|
73
|
-
(
|
74
|
-
_1015,
|
75
|
-
AbstractHolidayCalendar(
|
76
|
-
rules=[
|
77
|
-
GoodFriday2021,
|
78
|
-
GoodFridayAfter2022,
|
79
|
-
]
|
80
|
-
),
|
81
|
-
),
|
82
|
-
(
|
83
|
-
_1200,
|
84
|
-
AbstractHolidayCalendar(
|
85
|
-
rules=[
|
86
|
-
USMartinLutherKingJrAfter1998Before2022,
|
87
|
-
USPresidentsDayBefore2022,
|
88
|
-
USMemorialDay2021AndPrior,
|
89
|
-
USIndependenceDayBefore2022,
|
90
|
-
USLaborDayStarting1887Before2022,
|
91
|
-
USThanksgivingBefore2022,
|
92
|
-
]
|
93
|
-
),
|
94
|
-
),
|
95
|
-
(
|
96
|
-
_1215,
|
97
|
-
AbstractHolidayCalendar(
|
98
|
-
rules=[USThanksgivingFriday, ChristmasEveInOrAfter1993]
|
99
|
-
),
|
100
|
-
),
|
101
|
-
]
|
1
|
+
from datetime import time
|
2
|
+
|
3
|
+
from pandas.tseries.holiday import AbstractHolidayCalendar
|
4
|
+
|
5
|
+
from pandas_market_calendars.calendars.cme_globex_base import (
|
6
|
+
CMEGlobexBaseExchangeCalendar,
|
7
|
+
)
|
8
|
+
from pandas_market_calendars.holidays.cme import (
|
9
|
+
USMartinLutherKingJrAfter1998Before2022,
|
10
|
+
USPresidentsDayBefore2022,
|
11
|
+
GoodFridayBefore2021,
|
12
|
+
GoodFriday2021,
|
13
|
+
GoodFriday2022,
|
14
|
+
GoodFridayAfter2022,
|
15
|
+
USMemorialDay2021AndPrior,
|
16
|
+
USIndependenceDayBefore2022,
|
17
|
+
USLaborDayStarting1887Before2022,
|
18
|
+
USThanksgivingBefore2022,
|
19
|
+
USThanksgivingFriday,
|
20
|
+
)
|
21
|
+
from pandas_market_calendars.holidays.us import (
|
22
|
+
USNewYearsDay,
|
23
|
+
ChristmasEveInOrAfter1993,
|
24
|
+
Christmas,
|
25
|
+
)
|
26
|
+
|
27
|
+
_1015 = time(10, 15)
|
28
|
+
_1200 = time(12, 0)
|
29
|
+
_1215 = time(12, 15)
|
30
|
+
|
31
|
+
|
32
|
+
class CMEGlobexFXExchangeCalendar(CMEGlobexBaseExchangeCalendar):
|
33
|
+
aliases = ["CME_Currency"]
|
34
|
+
|
35
|
+
# Using CME Globex trading times eg AUD/USD, EUR/GBP, and BRL/USD
|
36
|
+
# https://www.cmegroup.com/markets/fx/g10/australian-dollar.contractSpecs.html
|
37
|
+
# https://www.cmegroup.com/markets/fx/cross-rates/euro-fx-british-pound.contractSpecs.html
|
38
|
+
# https://www.cmegroup.com/markets/fx/emerging-market/brazilian-real.contractSpecs.html
|
39
|
+
# CME "NZD spot" has its own holiday schedule; this is a niche product (via "FX Link") and is not handled in this
|
40
|
+
# class; however, its regular hours follow the same schedule (see
|
41
|
+
# https://www.cmegroup.com/trading/fx/files/fx-product-guide-2021-us.pdf)
|
42
|
+
regular_market_times = {
|
43
|
+
"market_open": ((None, time(17), -1),), # offset by -1 day
|
44
|
+
"market_close": ((None, time(16, 00)),),
|
45
|
+
}
|
46
|
+
|
47
|
+
aliases = ["CMEGlobex_FX", "CME_FX", "CME_Currency"]
|
48
|
+
|
49
|
+
@property
|
50
|
+
def name(self):
|
51
|
+
return "CMEGlobex_FX"
|
52
|
+
|
53
|
+
@property
|
54
|
+
def regular_holidays(self):
|
55
|
+
return AbstractHolidayCalendar(
|
56
|
+
rules=[
|
57
|
+
USNewYearsDay,
|
58
|
+
GoodFridayBefore2021,
|
59
|
+
GoodFriday2022,
|
60
|
+
Christmas,
|
61
|
+
]
|
62
|
+
)
|
63
|
+
|
64
|
+
@property
|
65
|
+
def special_closes(self):
|
66
|
+
"""
|
67
|
+
Accurate 2020-2022 inclusive
|
68
|
+
TODO - enhance/verify prior to 2020
|
69
|
+
TODO - Add 2023+ once known
|
70
|
+
"""
|
71
|
+
# Source https://www.cmegroup.com/tools-information/holiday-calendar.html
|
72
|
+
return [
|
73
|
+
(
|
74
|
+
_1015,
|
75
|
+
AbstractHolidayCalendar(
|
76
|
+
rules=[
|
77
|
+
GoodFriday2021,
|
78
|
+
GoodFridayAfter2022,
|
79
|
+
]
|
80
|
+
),
|
81
|
+
),
|
82
|
+
(
|
83
|
+
_1200,
|
84
|
+
AbstractHolidayCalendar(
|
85
|
+
rules=[
|
86
|
+
USMartinLutherKingJrAfter1998Before2022,
|
87
|
+
USPresidentsDayBefore2022,
|
88
|
+
USMemorialDay2021AndPrior,
|
89
|
+
USIndependenceDayBefore2022,
|
90
|
+
USLaborDayStarting1887Before2022,
|
91
|
+
USThanksgivingBefore2022,
|
92
|
+
]
|
93
|
+
),
|
94
|
+
),
|
95
|
+
(
|
96
|
+
_1215,
|
97
|
+
AbstractHolidayCalendar(
|
98
|
+
rules=[USThanksgivingFriday, ChristmasEveInOrAfter1993]
|
99
|
+
),
|
100
|
+
),
|
101
|
+
]
|