pandas-market-calendars 4.3.1__py3-none-any.whl → 4.3.3__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.
Files changed (49) hide show
  1. pandas_market_calendars/__init__.py +38 -37
  2. pandas_market_calendars/calendar_registry.py +53 -48
  3. pandas_market_calendars/calendar_utils.py +261 -225
  4. pandas_market_calendars/calendars/asx.py +66 -63
  5. pandas_market_calendars/calendars/bmf.py +206 -227
  6. pandas_market_calendars/calendars/bse.py +407 -409
  7. pandas_market_calendars/calendars/cboe.py +145 -115
  8. pandas_market_calendars/calendars/cme.py +402 -240
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +126 -103
  10. pandas_market_calendars/calendars/cme_globex_base.py +119 -103
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +160 -147
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -138
  13. pandas_market_calendars/calendars/cme_globex_equities.py +123 -104
  14. pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -113
  15. pandas_market_calendars/calendars/cme_globex_fx.py +101 -78
  16. pandas_market_calendars/calendars/eurex.py +139 -119
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +98 -0
  18. pandas_market_calendars/calendars/hkex.py +426 -408
  19. pandas_market_calendars/calendars/ice.py +81 -65
  20. pandas_market_calendars/calendars/iex.py +112 -98
  21. pandas_market_calendars/calendars/jpx.py +109 -103
  22. pandas_market_calendars/calendars/lse.py +114 -91
  23. pandas_market_calendars/calendars/mirror.py +130 -114
  24. pandas_market_calendars/calendars/nyse.py +1324 -1127
  25. pandas_market_calendars/calendars/ose.py +116 -150
  26. pandas_market_calendars/calendars/sifma.py +350 -297
  27. pandas_market_calendars/calendars/six.py +132 -114
  28. pandas_market_calendars/calendars/sse.py +311 -290
  29. pandas_market_calendars/calendars/tase.py +197 -195
  30. pandas_market_calendars/calendars/tsx.py +181 -159
  31. pandas_market_calendars/class_registry.py +22 -16
  32. pandas_market_calendars/holidays/cme.py +385 -340
  33. pandas_market_calendars/holidays/cme_globex.py +214 -198
  34. pandas_market_calendars/holidays/cn.py +1455 -1436
  35. pandas_market_calendars/holidays/jp.py +398 -396
  36. pandas_market_calendars/holidays/jpx_equinox.py +453 -95
  37. pandas_market_calendars/holidays/nyse.py +1531 -1472
  38. pandas_market_calendars/holidays/oz.py +63 -65
  39. pandas_market_calendars/holidays/sifma.py +338 -321
  40. pandas_market_calendars/holidays/uk.py +32 -26
  41. pandas_market_calendars/holidays/us.py +376 -360
  42. pandas_market_calendars/market_calendar.py +895 -789
  43. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/METADATA +7 -5
  44. pandas_market_calendars-4.3.3.dist-info/RECORD +50 -0
  45. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/WHEEL +1 -1
  46. pandas_market_calendars-4.3.1.dist-info/RECORD +0 -49
  47. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/LICENSE +0 -0
  48. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/NOTICE +0 -0
  49. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/top_level.txt +0 -0
@@ -1,297 +1,350 @@
1
- from datetime import time
2
-
3
- from pandas.tseries.holiday import AbstractHolidayCalendar
4
- from pytz import timezone
5
- from itertools import chain
6
-
7
- ########################################################################################################################
8
- # SIFMA Financial Markets Calendar for US, UK, JP
9
- #
10
- # https://www.sifma.com/
11
- #
12
- # US: SIFMAUSExchangeCalendar() ['SIFMAUS', 'SIFMA_US', "Capital_Markets_US", "Financial_Markets_US", "Bond_Markets_US"]
13
- # UK: SIFMAUKExchangeCalendar() ['SIFMAUK', 'SIFMA_UK', "Capital_Markets_UK", "Financial_Markets_UK", "Bond_Markets_UK"]
14
- # JP: SIFMAJPExchangeCalendar() ['SIFMAJP', 'SIFMA_JP', "Capital_Markets_JP", "Financial_Markets_JP", "Bond_Markets_JP"]
15
- #
16
- # Trading Hours:
17
- # US: 7:00 to 17:30
18
- # UK: 8:00 to 17:00
19
- # JP: 8:30 to 18:30
20
- ########################################################################################################################
21
-
22
-
23
- from pandas_market_calendars.holidays.sifma import(
24
- # US Holidays
25
- USNewYearsDay, # Not observed if a Saturday
26
- USNewYearsEve2pmEarlyClose,
27
-
28
- MartinLutherKingJr,
29
- USPresidentsDay,
30
-
31
- GoodFridayThru2020,
32
- DayBeforeGoodFriday2pmEarlyCloseThru2020,
33
- GoodFridayAdHoc,
34
- GoodFriday2pmEarlyCloseAdHoc,
35
- DayBeforeGoodFriday2pmEarlyCloseAdHoc,
36
-
37
- DayBeforeUSMemorialDay2pmEarlyClose,
38
- USMemorialDay,
39
- USJuneteenthAfter2022,
40
-
41
- USIndependenceDay,
42
- DayBeforeUSIndependenceDay2pmEarlyClose,
43
- ThursdayBeforeUSIndependenceDay2pmEarlyClose,
44
-
45
- USLaborDay,
46
- USColumbusDay,
47
- USVeteransDay,
48
- USThanksgivingDay,
49
- DayAfterThanksgiving2pmEarlyClose,
50
-
51
- Christmas,
52
- ChristmasEve2pmEarlyClose,
53
- ChristmasEveThursday2pmEarlyClose,
54
-
55
- # UK Specific Holidays
56
- UKNewYearsDay, # Saturdays observed on Monday
57
- UKGoodFriday,
58
- UKEasterMonday,
59
- UKMayDay,
60
- UKSpringBankAdHoc, # Usually follows US Memorial Day but not always
61
- UKSummerBank,
62
- UKChristmas,
63
- UKChristmaEve,
64
- UKWeekendChristmas, # Observed Tuesday when Boxing Day is on Monday
65
- UKBoxingDay,
66
- UKWeekendBoxingDay,
67
-
68
- UKPlatinumJubilee2022,
69
- )
70
-
71
- from pandas_market_calendars.market_calendar import MarketCalendar
72
-
73
- #AbstractHolidayCalendar.start_date = '1998-01-01'
74
-
75
- ############################################################
76
- # US
77
- ############################################################
78
-
79
- class SIFMAUSExchangeCalendar(MarketCalendar):
80
- """
81
- Exchange calendar for SIFMA United States
82
-
83
- https://www.sifma.org/resources/general/holiday-schedule/#US
84
-
85
- """
86
-
87
- aliases = ['SIFMAUS', 'SIFMA_US', "Capital_Markets_US", "Financial_Markets_US", "Bond_Markets_US"]
88
-
89
- regular_market_times = {
90
- "market_open": ((None, time(7)),),
91
- "market_close": ((None, time(17, 30)),)
92
- }
93
-
94
-
95
- @property
96
- def name(self):
97
- return "SIFMA_US"
98
-
99
- @property
100
- def tz(self):
101
- return timezone("America/New_York")
102
-
103
- @property
104
- def regular_holidays(self):
105
- return AbstractHolidayCalendar(rules=[
106
- USNewYearsDay,
107
- MartinLutherKingJr,
108
- USPresidentsDay,
109
- GoodFridayThru2020,
110
- USMemorialDay,
111
- USJuneteenthAfter2022,
112
- USIndependenceDay,
113
- USLaborDay,
114
- USColumbusDay,
115
- USVeteransDay,
116
- USThanksgivingDay,
117
- Christmas,
118
- ])
119
-
120
- @property
121
- def adhoc_holidays(self):
122
- return list(chain(
123
- GoodFridayAdHoc,
124
- ))
125
-
126
-
127
-
128
- @property
129
- def special_closes(self):
130
- return [(
131
- time(14),
132
- AbstractHolidayCalendar(rules=[
133
- DayBeforeGoodFriday2pmEarlyCloseThru2020,
134
- DayBeforeUSMemorialDay2pmEarlyClose,
135
- DayBeforeUSIndependenceDay2pmEarlyClose,
136
- ThursdayBeforeUSIndependenceDay2pmEarlyClose,
137
- DayAfterThanksgiving2pmEarlyClose,
138
- ChristmasEve2pmEarlyClose,
139
- ChristmasEveThursday2pmEarlyClose,
140
- USNewYearsEve2pmEarlyClose,
141
- ])
142
- )]
143
-
144
- @property
145
- def special_closes_adhoc(self):
146
- return [
147
- (time(14, tzinfo=timezone('America/New_York')),
148
- GoodFriday2pmEarlyCloseAdHoc # list
149
- + DayBeforeGoodFriday2pmEarlyCloseAdHoc
150
- ),
151
- ]
152
-
153
- ############################################################
154
- # UK
155
- ############################################################
156
-
157
- class SIFMAUKExchangeCalendar(MarketCalendar):
158
- """
159
- Exchange calendar for SIFMA United Kingdom
160
-
161
- https://www.sifma.org/resources/general/holiday-schedule/#UK
162
-
163
- """
164
-
165
- aliases = ['SIFMAUK', 'SIFMA_UK', "Capital_Markets_UK", "Financial_Markets_UK", "Bond_Markets_UK"]
166
-
167
- regular_market_times = {
168
- "market_open": ((None, time(8)),),
169
- "market_close": ((None, time(17)),)
170
- }
171
-
172
- @property
173
- def name(self):
174
- return "SIFMA_UK"
175
-
176
- @property
177
- def tz(self):
178
- return timezone("Europe/London")
179
-
180
- @property
181
- def regular_holidays(self):
182
- return AbstractHolidayCalendar(rules=[
183
- UKNewYearsDay,
184
- MartinLutherKingJr,
185
- USPresidentsDay,
186
- UKGoodFriday,
187
- UKEasterMonday,
188
- UKMayDay,
189
- USMemorialDay,
190
- USJuneteenthAfter2022,
191
- USIndependenceDay,
192
- UKSummerBank,
193
- USLaborDay,
194
- USColumbusDay,
195
- USVeteransDay,
196
- USThanksgivingDay,
197
- UKChristmas,
198
- UKChristmaEve,
199
- UKWeekendChristmas,
200
- UKBoxingDay,
201
- UKWeekendBoxingDay
202
- ])
203
-
204
- @property
205
- def adhoc_holidays(self):
206
- return list(chain(
207
- UKSpringBankAdHoc,
208
- UKPlatinumJubilee2022,
209
- ))
210
-
211
- ############################################################
212
- # Japan
213
- ############################################################
214
- from pandas_market_calendars.holidays.jp import (JapanComingOfAgeDay, JapanNationalFoundationDay, JapanEmperorsBirthday, JapanVernalEquinox, JapanShowaDay,
215
- JapanConstitutionMemorialDay, JapanGreeneryDay, JapanChildrensDay, JapanMarineDay, JapanMountainDay,
216
- JapanRespectForTheAgedDay, JapanAutumnalEquinox,
217
- JapanHealthAndSportsDay2000To2019, JapanSportsDay2020, JapanSportsDay,
218
- JapanCultureDay, JapanLaborThanksgivingDay)
219
-
220
- class SIFMAJPExchangeCalendar(MarketCalendar):
221
- """
222
- Exchange calendar for SIFMA Japan
223
-
224
- https://www.sifma.org/resources/general/holiday-schedule/#JP
225
-
226
- """
227
-
228
- aliases = ['SIFMAJP', 'SIFMA_JP', "Capital_Markets_JP", "Financial_Markets_JP", "Bond_Markets_JP"]
229
-
230
- regular_market_times = {
231
- "market_open": ((None, time(8, 30)),),
232
- "market_close": ((None, time(18, 30)),)
233
- }
234
-
235
- @property
236
- def name(self):
237
- return "SIFMA_JP"
238
-
239
- @property
240
- def tz(self):
241
- return timezone("Asia/Tokyo")
242
-
243
- @property
244
- def regular_holidays(self):
245
- return AbstractHolidayCalendar(rules=[
246
- UKNewYearsDay,
247
- JapanComingOfAgeDay,
248
- MartinLutherKingJr,
249
- JapanNationalFoundationDay,
250
- USPresidentsDay,
251
- JapanEmperorsBirthday,
252
- JapanVernalEquinox,
253
- UKGoodFriday,
254
- UKEasterMonday,
255
- JapanShowaDay,
256
- JapanConstitutionMemorialDay,
257
- JapanGreeneryDay,
258
- JapanChildrensDay,
259
- USMemorialDay,
260
- USJuneteenthAfter2022,
261
- USIndependenceDay,
262
- JapanMarineDay,
263
- JapanMountainDay,
264
- UKSummerBank,
265
- USLaborDay,
266
- JapanRespectForTheAgedDay,
267
- JapanAutumnalEquinox,
268
- JapanSportsDay,
269
- JapanSportsDay2020,
270
- JapanHealthAndSportsDay2000To2019,
271
- JapanCultureDay,
272
- USVeteransDay,
273
- JapanLaborThanksgivingDay,
274
- USThanksgivingDay,
275
- UKChristmas,
276
- UKChristmaEve,
277
- UKBoxingDay,
278
- UKWeekendBoxingDay
279
- ])
280
-
281
- @property
282
- def adhoc_holidays(self):
283
- return list(chain(
284
- UKSpringBankAdHoc,
285
- UKPlatinumJubilee2022,
286
- ))
287
-
288
- @property
289
- def special_closes(self):
290
- return [(
291
- time(15),
292
- AbstractHolidayCalendar(rules=[
293
- UKMayDay,
294
- UKWeekendChristmas
295
- ])
296
- )]
297
-
1
+ from datetime import time
2
+
3
+ from pandas.tseries.holiday import AbstractHolidayCalendar
4
+ from pytz import timezone
5
+ from itertools import chain
6
+
7
+ ########################################################################################################################
8
+ # SIFMA Financial Markets Calendar for US, UK, JP
9
+ #
10
+ # https://www.sifma.com/
11
+ #
12
+ # US: SIFMAUSExchangeCalendar() ['SIFMAUS', 'SIFMA_US', "Capital_Markets_US", "Financial_Markets_US", "Bond_Markets_US"]
13
+ # UK: SIFMAUKExchangeCalendar() ['SIFMAUK', 'SIFMA_UK', "Capital_Markets_UK", "Financial_Markets_UK", "Bond_Markets_UK"]
14
+ # JP: SIFMAJPExchangeCalendar() ['SIFMAJP', 'SIFMA_JP', "Capital_Markets_JP", "Financial_Markets_JP", "Bond_Markets_JP"]
15
+ #
16
+ # Trading Hours:
17
+ # US: 7:00 to 17:30
18
+ # UK: 8:00 to 17:00
19
+ # JP: 8:30 to 18:30
20
+ ########################################################################################################################
21
+
22
+
23
+ from pandas_market_calendars.holidays.sifma import (
24
+ # US Holidays
25
+ USNewYearsDay, # Not observed if a Saturday
26
+ USNewYearsEve2pmEarlyClose,
27
+ MartinLutherKingJr,
28
+ USPresidentsDay,
29
+ GoodFridayThru2020,
30
+ DayBeforeGoodFriday2pmEarlyCloseThru2020,
31
+ GoodFridayAdHoc,
32
+ GoodFriday2pmEarlyCloseAdHoc,
33
+ DayBeforeGoodFriday2pmEarlyCloseAdHoc,
34
+ DayBeforeUSMemorialDay2pmEarlyClose,
35
+ USMemorialDay,
36
+ USJuneteenthAfter2022,
37
+ USIndependenceDay,
38
+ DayBeforeUSIndependenceDay2pmEarlyClose,
39
+ ThursdayBeforeUSIndependenceDay2pmEarlyClose,
40
+ USLaborDay,
41
+ USColumbusDay,
42
+ USVeteransDay,
43
+ USThanksgivingDay,
44
+ DayAfterThanksgiving2pmEarlyClose,
45
+ Christmas,
46
+ ChristmasEve2pmEarlyClose,
47
+ ChristmasEveThursday2pmEarlyClose,
48
+ # UK Specific Holidays
49
+ UKNewYearsDay, # Saturdays observed on Monday
50
+ UKGoodFriday,
51
+ UKEasterMonday,
52
+ UKMayDay,
53
+ UKSpringBankAdHoc, # Usually follows US Memorial Day but not always
54
+ UKSummerBank,
55
+ UKChristmas,
56
+ UKChristmaEve,
57
+ UKWeekendChristmas, # Observed Tuesday when Boxing Day is on Monday
58
+ UKBoxingDay,
59
+ UKWeekendBoxingDay,
60
+ UKPlatinumJubilee2022,
61
+ )
62
+ from pandas_market_calendars.market_calendar import MarketCalendar
63
+
64
+
65
+ ########################################################################################################################
66
+ # SIFMA Financial Markets Calendar for US, UK, JP
67
+ #
68
+ # https://www.sifma.com/
69
+ #
70
+ # US: SIFMAUSExchangeCalendar() ['SIFMAUS', 'SIFMA_US', "Capital_Markets_US", "Financial_Markets_US", "Bond_Markets_US"]
71
+ # UK: SIFMAUKExchangeCalendar() ['SIFMAUK', 'SIFMA_UK', "Capital_Markets_UK", "Financial_Markets_UK", "Bond_Markets_UK"]
72
+ # JP: SIFMAJPExchangeCalendar() ['SIFMAJP', 'SIFMA_JP', "Capital_Markets_JP", "Financial_Markets_JP", "Bond_Markets_JP"]
73
+ #
74
+ # Trading Hours:
75
+ # US: 7:00 to 17:30
76
+ # UK: 8:00 to 17:00
77
+ # JP: 8:30 to 18:30
78
+ ########################################################################################################################
79
+
80
+ # AbstractHolidayCalendar.start_date = '1998-01-01'
81
+
82
+ ############################################################
83
+ # US
84
+ ############################################################
85
+
86
+
87
+ class SIFMAUSExchangeCalendar(MarketCalendar):
88
+ """
89
+ Exchange calendar for SIFMA United States
90
+
91
+ https://www.sifma.org/resources/general/holiday-schedule/#US
92
+
93
+ """
94
+
95
+ aliases = [
96
+ "SIFMAUS",
97
+ "SIFMA_US",
98
+ "Capital_Markets_US",
99
+ "Financial_Markets_US",
100
+ "Bond_Markets_US",
101
+ ]
102
+
103
+ regular_market_times = {
104
+ "market_open": ((None, time(7)),),
105
+ "market_close": ((None, time(17, 30)),),
106
+ }
107
+
108
+ @property
109
+ def name(self):
110
+ return "SIFMA_US"
111
+
112
+ @property
113
+ def tz(self):
114
+ return timezone("America/New_York")
115
+
116
+ @property
117
+ def regular_holidays(self):
118
+ return AbstractHolidayCalendar(
119
+ rules=[
120
+ USNewYearsDay,
121
+ MartinLutherKingJr,
122
+ USPresidentsDay,
123
+ GoodFridayThru2020,
124
+ USMemorialDay,
125
+ USJuneteenthAfter2022,
126
+ USIndependenceDay,
127
+ USLaborDay,
128
+ USColumbusDay,
129
+ USVeteransDay,
130
+ USThanksgivingDay,
131
+ Christmas,
132
+ ]
133
+ )
134
+
135
+ @property
136
+ def adhoc_holidays(self):
137
+ return list(
138
+ chain(
139
+ GoodFridayAdHoc,
140
+ )
141
+ )
142
+
143
+ @property
144
+ def special_closes(self):
145
+ return [
146
+ (
147
+ time(14),
148
+ AbstractHolidayCalendar(
149
+ rules=[
150
+ DayBeforeGoodFriday2pmEarlyCloseThru2020,
151
+ DayBeforeUSMemorialDay2pmEarlyClose,
152
+ DayBeforeUSIndependenceDay2pmEarlyClose,
153
+ ThursdayBeforeUSIndependenceDay2pmEarlyClose,
154
+ DayAfterThanksgiving2pmEarlyClose,
155
+ ChristmasEve2pmEarlyClose,
156
+ ChristmasEveThursday2pmEarlyClose,
157
+ USNewYearsEve2pmEarlyClose,
158
+ ]
159
+ ),
160
+ )
161
+ ]
162
+
163
+ @property
164
+ def special_closes_adhoc(self):
165
+ return [
166
+ (
167
+ time(14, tzinfo=timezone("America/New_York")),
168
+ GoodFriday2pmEarlyCloseAdHoc # list
169
+ + DayBeforeGoodFriday2pmEarlyCloseAdHoc,
170
+ ),
171
+ ]
172
+
173
+
174
+ ############################################################
175
+ # UK
176
+ ############################################################
177
+
178
+
179
+ class SIFMAUKExchangeCalendar(MarketCalendar):
180
+ """
181
+ Exchange calendar for SIFMA United Kingdom
182
+
183
+ https://www.sifma.org/resources/general/holiday-schedule/#UK
184
+
185
+ """
186
+
187
+ aliases = [
188
+ "SIFMAUK",
189
+ "SIFMA_UK",
190
+ "Capital_Markets_UK",
191
+ "Financial_Markets_UK",
192
+ "Bond_Markets_UK",
193
+ ]
194
+
195
+ regular_market_times = {
196
+ "market_open": ((None, time(8)),),
197
+ "market_close": ((None, time(17)),),
198
+ }
199
+
200
+ @property
201
+ def name(self):
202
+ return "SIFMA_UK"
203
+
204
+ @property
205
+ def tz(self):
206
+ return timezone("Europe/London")
207
+
208
+ @property
209
+ def regular_holidays(self):
210
+ return AbstractHolidayCalendar(
211
+ rules=[
212
+ UKNewYearsDay,
213
+ MartinLutherKingJr,
214
+ USPresidentsDay,
215
+ UKGoodFriday,
216
+ UKEasterMonday,
217
+ UKMayDay,
218
+ USMemorialDay,
219
+ USJuneteenthAfter2022,
220
+ USIndependenceDay,
221
+ UKSummerBank,
222
+ USLaborDay,
223
+ USColumbusDay,
224
+ USVeteransDay,
225
+ USThanksgivingDay,
226
+ UKChristmas,
227
+ UKChristmaEve,
228
+ UKWeekendChristmas,
229
+ UKBoxingDay,
230
+ UKWeekendBoxingDay,
231
+ ]
232
+ )
233
+
234
+ @property
235
+ def adhoc_holidays(self):
236
+ return list(
237
+ chain(
238
+ UKSpringBankAdHoc,
239
+ UKPlatinumJubilee2022,
240
+ )
241
+ )
242
+
243
+
244
+ ############################################################
245
+ # Japan
246
+ ############################################################
247
+ from pandas_market_calendars.holidays.jp import (
248
+ JapanComingOfAgeDay,
249
+ JapanNationalFoundationDay,
250
+ JapanEmperorsBirthday,
251
+ JapanVernalEquinox,
252
+ JapanShowaDay,
253
+ JapanConstitutionMemorialDay,
254
+ JapanGreeneryDay,
255
+ JapanChildrensDay,
256
+ JapanMarineDay,
257
+ JapanMountainDay,
258
+ JapanRespectForTheAgedDay,
259
+ JapanAutumnalEquinox,
260
+ JapanHealthAndSportsDay2000To2019,
261
+ JapanSportsDay2020,
262
+ JapanSportsDay,
263
+ JapanCultureDay,
264
+ JapanLaborThanksgivingDay,
265
+ )
266
+
267
+
268
+ class SIFMAJPExchangeCalendar(MarketCalendar):
269
+ """
270
+ Exchange calendar for SIFMA Japan
271
+
272
+ https://www.sifma.org/resources/general/holiday-schedule/#JP
273
+
274
+ """
275
+
276
+ aliases = [
277
+ "SIFMAJP",
278
+ "SIFMA_JP",
279
+ "Capital_Markets_JP",
280
+ "Financial_Markets_JP",
281
+ "Bond_Markets_JP",
282
+ ]
283
+
284
+ regular_market_times = {
285
+ "market_open": ((None, time(8, 30)),),
286
+ "market_close": ((None, time(18, 30)),),
287
+ }
288
+
289
+ @property
290
+ def name(self):
291
+ return "SIFMA_JP"
292
+
293
+ @property
294
+ def tz(self):
295
+ return timezone("Asia/Tokyo")
296
+
297
+ @property
298
+ def regular_holidays(self):
299
+ return AbstractHolidayCalendar(
300
+ rules=[
301
+ UKNewYearsDay,
302
+ JapanComingOfAgeDay,
303
+ MartinLutherKingJr,
304
+ JapanNationalFoundationDay,
305
+ USPresidentsDay,
306
+ JapanEmperorsBirthday,
307
+ JapanVernalEquinox,
308
+ UKGoodFriday,
309
+ UKEasterMonday,
310
+ JapanShowaDay,
311
+ JapanConstitutionMemorialDay,
312
+ JapanGreeneryDay,
313
+ JapanChildrensDay,
314
+ USMemorialDay,
315
+ USJuneteenthAfter2022,
316
+ USIndependenceDay,
317
+ JapanMarineDay,
318
+ JapanMountainDay,
319
+ UKSummerBank,
320
+ USLaborDay,
321
+ JapanRespectForTheAgedDay,
322
+ JapanAutumnalEquinox,
323
+ JapanSportsDay,
324
+ JapanSportsDay2020,
325
+ JapanHealthAndSportsDay2000To2019,
326
+ JapanCultureDay,
327
+ USVeteransDay,
328
+ JapanLaborThanksgivingDay,
329
+ USThanksgivingDay,
330
+ UKChristmas,
331
+ UKChristmaEve,
332
+ UKBoxingDay,
333
+ UKWeekendBoxingDay,
334
+ ]
335
+ )
336
+
337
+ @property
338
+ def adhoc_holidays(self):
339
+ return list(
340
+ chain(
341
+ UKSpringBankAdHoc,
342
+ UKPlatinumJubilee2022,
343
+ )
344
+ )
345
+
346
+ @property
347
+ def special_closes(self):
348
+ return [
349
+ (time(15), AbstractHolidayCalendar(rules=[UKMayDay, UKWeekendChristmas]))
350
+ ]