pandas-market-calendars 4.3.3__py3-none-any.whl → 4.6.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.
Files changed (47) hide show
  1. pandas_market_calendars/__init__.py +39 -38
  2. pandas_market_calendars/calendar_registry.py +57 -53
  3. pandas_market_calendars/calendar_utils.py +1200 -261
  4. pandas_market_calendars/calendars/asx.py +66 -66
  5. pandas_market_calendars/calendars/bmf.py +223 -206
  6. pandas_market_calendars/calendars/bse.py +421 -407
  7. pandas_market_calendars/calendars/cboe.py +145 -145
  8. pandas_market_calendars/calendars/cme.py +405 -402
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +172 -126
  10. pandas_market_calendars/calendars/cme_globex_base.py +119 -119
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +160 -160
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -216
  13. pandas_market_calendars/calendars/cme_globex_equities.py +123 -123
  14. pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -136
  15. pandas_market_calendars/calendars/cme_globex_fx.py +101 -101
  16. pandas_market_calendars/calendars/eurex.py +131 -139
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +98 -98
  18. pandas_market_calendars/calendars/hkex.py +429 -426
  19. pandas_market_calendars/calendars/ice.py +81 -81
  20. pandas_market_calendars/calendars/iex.py +151 -112
  21. pandas_market_calendars/calendars/jpx.py +113 -109
  22. pandas_market_calendars/calendars/lse.py +114 -114
  23. pandas_market_calendars/calendars/mirror.py +149 -130
  24. pandas_market_calendars/calendars/nyse.py +1466 -1324
  25. pandas_market_calendars/calendars/ose.py +116 -116
  26. pandas_market_calendars/calendars/sifma.py +354 -350
  27. pandas_market_calendars/calendars/six.py +132 -132
  28. pandas_market_calendars/calendars/sse.py +311 -311
  29. pandas_market_calendars/calendars/tase.py +220 -197
  30. pandas_market_calendars/calendars/tsx.py +181 -181
  31. pandas_market_calendars/holidays/cme.py +385 -385
  32. pandas_market_calendars/holidays/cme_globex.py +214 -214
  33. pandas_market_calendars/holidays/cn.py +1476 -1455
  34. pandas_market_calendars/holidays/jp.py +401 -398
  35. pandas_market_calendars/holidays/jpx_equinox.py +1 -0
  36. pandas_market_calendars/holidays/nyse.py +1536 -1531
  37. pandas_market_calendars/holidays/oz.py +63 -63
  38. pandas_market_calendars/holidays/sifma.py +350 -338
  39. pandas_market_calendars/holidays/us.py +376 -376
  40. pandas_market_calendars/market_calendar.py +1057 -895
  41. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/METADATA +13 -9
  42. pandas_market_calendars-4.6.0.dist-info/RECORD +50 -0
  43. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/WHEEL +1 -1
  44. pandas_market_calendars-4.3.3.dist-info/RECORD +0 -50
  45. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/LICENSE +0 -0
  46. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/NOTICE +0 -0
  47. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/top_level.txt +0 -0
@@ -1,197 +1,220 @@
1
- from datetime import time
2
-
3
- from pandas import Timestamp
4
- from pytz import timezone
5
-
6
- from pandas_market_calendars.market_calendar import MarketCalendar
7
-
8
- TASEClosedDay = [
9
- # 2019
10
- Timestamp("2019-03-21", tz="Asia/Jerusalem"),
11
- Timestamp("2019-04-09", tz="Asia/Jerusalem"),
12
- Timestamp("2019-04-25", tz="Asia/Jerusalem"),
13
- Timestamp("2019-04-26", tz="Asia/Jerusalem"),
14
- Timestamp("2019-05-08", tz="Asia/Jerusalem"),
15
- Timestamp("2019-05-09", tz="Asia/Jerusalem"),
16
- Timestamp("2019-06-09", tz="Asia/Jerusalem"),
17
- Timestamp("2019-08-11", tz="Asia/Jerusalem"),
18
- Timestamp("2019-09-17", tz="Asia/Jerusalem"),
19
- Timestamp("2019-09-29", tz="Asia/Jerusalem"),
20
- Timestamp("2019-09-30", tz="Asia/Jerusalem"),
21
- Timestamp("2019-10-01", tz="Asia/Jerusalem"),
22
- Timestamp("2019-10-08", tz="Asia/Jerusalem"),
23
- Timestamp("2019-10-09", tz="Asia/Jerusalem"),
24
- Timestamp("2019-10-13", tz="Asia/Jerusalem"),
25
- Timestamp("2019-10-14", tz="Asia/Jerusalem"),
26
- Timestamp("2019-10-20", tz="Asia/Jerusalem"),
27
- Timestamp("2019-10-21", tz="Asia/Jerusalem"),
28
- # 2020
29
- Timestamp("2020-03-02", tz="Asia/Jerusalem"),
30
- Timestamp("2020-03-10", tz="Asia/Jerusalem"),
31
- Timestamp("2020-04-08", tz="Asia/Jerusalem"),
32
- Timestamp("2020-04-09", tz="Asia/Jerusalem"),
33
- Timestamp("2020-04-14", tz="Asia/Jerusalem"),
34
- Timestamp("2020-04-15", tz="Asia/Jerusalem"),
35
- Timestamp("2020-04-28", tz="Asia/Jerusalem"),
36
- Timestamp("2020-04-29", tz="Asia/Jerusalem"),
37
- Timestamp("2020-05-28", tz="Asia/Jerusalem"),
38
- Timestamp("2020-05-29", tz="Asia/Jerusalem"),
39
- Timestamp("2020-07-30", tz="Asia/Jerusalem"),
40
- Timestamp("2020-09-20", tz="Asia/Jerusalem"),
41
- Timestamp("2020-09-27", tz="Asia/Jerusalem"),
42
- Timestamp("2020-09-28", tz="Asia/Jerusalem"),
43
- # 2021
44
- Timestamp("2021-02-26", tz="Asia/Jerusalem"),
45
- Timestamp("2021-03-28", tz="Asia/Jerusalem"),
46
- Timestamp("2021-04-02", tz="Asia/Jerusalem"),
47
- Timestamp("2021-04-14", tz="Asia/Jerusalem"),
48
- Timestamp("2021-04-15", tz="Asia/Jerusalem"),
49
- Timestamp("2021-05-16", tz="Asia/Jerusalem"),
50
- Timestamp("2021-05-17", tz="Asia/Jerusalem"),
51
- Timestamp("2021-07-18", tz="Asia/Jerusalem"),
52
- Timestamp("2021-09-06", tz="Asia/Jerusalem"),
53
- Timestamp("2021-09-07", tz="Asia/Jerusalem"),
54
- Timestamp("2021-09-08", tz="Asia/Jerusalem"),
55
- Timestamp("2021-09-15", tz="Asia/Jerusalem"),
56
- Timestamp("2021-09-16", tz="Asia/Jerusalem"),
57
- Timestamp("2021-09-20", tz="Asia/Jerusalem"),
58
- Timestamp("2021-09-21", tz="Asia/Jerusalem"),
59
- Timestamp("2021-09-27", tz="Asia/Jerusalem"),
60
- Timestamp("2021-09-28", tz="Asia/Jerusalem"),
61
- # 2022
62
- Timestamp("2022-03-17", tz="Asia/Jerusalem"),
63
- Timestamp("2022-03-18", tz="Asia/Jerusalem"),
64
- Timestamp("2022-04-15", tz="Asia/Jerusalem"),
65
- Timestamp("2022-04-21", tz="Asia/Jerusalem"),
66
- Timestamp("2022-04-22", tz="Asia/Jerusalem"),
67
- Timestamp("2022-05-05", tz="Asia/Jerusalem"),
68
- Timestamp("2022-06-05", tz="Asia/Jerusalem"),
69
- Timestamp("2022-08-07", tz="Asia/Jerusalem"),
70
- Timestamp("2022-09-25", tz="Asia/Jerusalem"),
71
- Timestamp("2022-09-26", tz="Asia/Jerusalem"),
72
- Timestamp("2022-09-27", tz="Asia/Jerusalem"),
73
- Timestamp("2022-10-04", tz="Asia/Jerusalem"),
74
- Timestamp("2022-10-05", tz="Asia/Jerusalem"),
75
- Timestamp("2022-10-09", tz="Asia/Jerusalem"),
76
- Timestamp("2022-10-10", tz="Asia/Jerusalem"),
77
- Timestamp("2022-10-16", tz="Asia/Jerusalem"),
78
- Timestamp("2022-10-17", tz="Asia/Jerusalem"),
79
- Timestamp("2022-11-01", tz="Asia/Jerusalem"),
80
- # 2023
81
- Timestamp("2023-03-07", tz="Asia/Jerusalem"),
82
- Timestamp("2023-03-08", tz="Asia/Jerusalem"),
83
- Timestamp("2023-04-05", tz="Asia/Jerusalem"),
84
- Timestamp("2023-04-06", tz="Asia/Jerusalem"),
85
- Timestamp("2023-04-11", tz="Asia/Jerusalem"),
86
- Timestamp("2023-04-12", tz="Asia/Jerusalem"),
87
- Timestamp("2023-04-25", tz="Asia/Jerusalem"),
88
- Timestamp("2023-04-26", tz="Asia/Jerusalem"),
89
- Timestamp("2023-05-25", tz="Asia/Jerusalem"),
90
- Timestamp("2023-05-26", tz="Asia/Jerusalem"),
91
- Timestamp("2023-07-27", tz="Asia/Jerusalem"),
92
- Timestamp("2023-09-15", tz="Asia/Jerusalem"),
93
- Timestamp("2023-09-17", tz="Asia/Jerusalem"),
94
- Timestamp("2023-09-24", tz="Asia/Jerusalem"),
95
- Timestamp("2023-09-25", tz="Asia/Jerusalem"),
96
- Timestamp("2023-09-29", tz="Asia/Jerusalem"),
97
- Timestamp("2023-10-06", tz="Asia/Jerusalem"),
98
- Timestamp("2023-10-31", tz="Asia/Jerusalem"),
99
- # 2024
100
- Timestamp("2024-03-24", tz="Asia/Jerusalem"),
101
- Timestamp("2024-03-25", tz="Asia/Jerusalem"),
102
- Timestamp("2024-04-22", tz="Asia/Jerusalem"),
103
- Timestamp("2024-04-23", tz="Asia/Jerusalem"),
104
- Timestamp("2024-04-28", tz="Asia/Jerusalem"),
105
- Timestamp("2024-04-29", tz="Asia/Jerusalem"),
106
- Timestamp("2024-05-13", tz="Asia/Jerusalem"),
107
- Timestamp("2024-05-14", tz="Asia/Jerusalem"),
108
- Timestamp("2024-06-11", tz="Asia/Jerusalem"),
109
- Timestamp("2024-06-12", tz="Asia/Jerusalem"),
110
- Timestamp("2024-08-13", tz="Asia/Jerusalem"),
111
- Timestamp("2024-10-02", tz="Asia/Jerusalem"),
112
- Timestamp("2024-10-03", tz="Asia/Jerusalem"),
113
- Timestamp("2024-10-04", tz="Asia/Jerusalem"),
114
- Timestamp("2024-10-11", tz="Asia/Jerusalem"),
115
- Timestamp("2024-10-16", tz="Asia/Jerusalem"),
116
- Timestamp("2024-10-17", tz="Asia/Jerusalem"),
117
- Timestamp("2024-10-23", tz="Asia/Jerusalem"),
118
- Timestamp("2024-10-24", tz="Asia/Jerusalem"),
119
- # 2025
120
- Timestamp("2025-03-14", tz="Asia/Jerusalem"),
121
- Timestamp("2025-04-13", tz="Asia/Jerusalem"),
122
- Timestamp("2025-04-18", tz="Asia/Jerusalem"),
123
- Timestamp("2025-04-30", tz="Asia/Jerusalem"),
124
- Timestamp("2025-05-01", tz="Asia/Jerusalem"),
125
- Timestamp("2025-06-01", tz="Asia/Jerusalem"),
126
- Timestamp("2025-06-02", tz="Asia/Jerusalem"),
127
- Timestamp("2025-08-03", tz="Asia/Jerusalem"),
128
- Timestamp("2025-09-22", tz="Asia/Jerusalem"),
129
- Timestamp("2025-09-23", tz="Asia/Jerusalem"),
130
- Timestamp("2025-09-24", tz="Asia/Jerusalem"),
131
- Timestamp("2025-10-01", tz="Asia/Jerusalem"),
132
- Timestamp("2025-10-02", tz="Asia/Jerusalem"),
133
- Timestamp("2025-10-06", tz="Asia/Jerusalem"),
134
- Timestamp("2025-10-07", tz="Asia/Jerusalem"),
135
- Timestamp("2025-10-13", tz="Asia/Jerusalem"),
136
- Timestamp("2025-10-14", tz="Asia/Jerusalem"),
137
- ]
138
-
139
-
140
- class TASEExchangeCalendar(MarketCalendar):
141
- """
142
- Exchange calendar for TASE Stock Exchange
143
-
144
- Note these dates are only checked against 2020 and 2021
145
- https://info.tase.co.il/Eng/about_tase/corporate/Pages/vacation_schedule.aspx
146
-
147
- Opening times for the regular trading of equities (not including closing auction call)
148
- Open Time: 10:00 AM Asia/Jerusalem
149
- Close Time: 3:59 PM Asia/Jerusalem
150
-
151
- Daylight Saving Time in Israel comes into effect on the Friday before the last Sunday in March, and lasts until the
152
- last Sunday in October.
153
- During the Daylight Saving time period the clock will be UTC+3, and for the rest of the year UTC+2.
154
-
155
- Regularly-Observed Holidays (not necessarily in order):
156
- - Purim
157
- - Passover_I_Eve
158
- - Passover_I
159
- - Passover_II_Eve
160
- - Passover_II
161
- - Independence_Day
162
- - Yom_HaZikaron
163
- - Shavuot_Eve
164
- - Shavuot
165
- - Tisha_beAv
166
- - Jewish_New_Year_Eve
167
- - Jewish_New_Year_I
168
- - Jewish_New_Year_II
169
- - Yom_Kippur_Eve
170
- - Yom_Kippur
171
- - Sukkoth_Eve
172
- - Sukkoth
173
- - Simchat_Tora_Eve
174
- - Simchat_Tora
175
- """
176
-
177
- aliases = ["TASE"]
178
- regular_market_times = {
179
- "market_open": ((None, time(10)),),
180
- "market_close": ((None, time(15, 59)),),
181
- }
182
-
183
- @property
184
- def name(self):
185
- return "TASE"
186
-
187
- @property
188
- def tz(self):
189
- return timezone("Asia/Jerusalem")
190
-
191
- @property
192
- def adhoc_holidays(self):
193
- return TASEClosedDay
194
-
195
- @property
196
- def weekmask(self):
197
- return "Sun Mon Tue Wed Thu"
1
+ from datetime import time
2
+
3
+ from typing import Literal, Union
4
+ from pandas import Timestamp, Timedelta, DatetimeIndex
5
+ from pytz import timezone
6
+
7
+ from pandas_market_calendars.market_calendar import MarketCalendar
8
+ from pandas_market_calendars.calendar_utils import Day_Anchor, Month_Anchor
9
+
10
+ TASEClosedDay = [
11
+ # 2019
12
+ Timestamp("2019-03-21", tz="Asia/Jerusalem"),
13
+ Timestamp("2019-04-09", tz="Asia/Jerusalem"),
14
+ Timestamp("2019-04-25", tz="Asia/Jerusalem"),
15
+ Timestamp("2019-04-26", tz="Asia/Jerusalem"),
16
+ Timestamp("2019-05-08", tz="Asia/Jerusalem"),
17
+ Timestamp("2019-05-09", tz="Asia/Jerusalem"),
18
+ Timestamp("2019-06-09", tz="Asia/Jerusalem"),
19
+ Timestamp("2019-08-11", tz="Asia/Jerusalem"),
20
+ Timestamp("2019-09-17", tz="Asia/Jerusalem"),
21
+ Timestamp("2019-09-29", tz="Asia/Jerusalem"),
22
+ Timestamp("2019-09-30", tz="Asia/Jerusalem"),
23
+ Timestamp("2019-10-01", tz="Asia/Jerusalem"),
24
+ Timestamp("2019-10-08", tz="Asia/Jerusalem"),
25
+ Timestamp("2019-10-09", tz="Asia/Jerusalem"),
26
+ Timestamp("2019-10-13", tz="Asia/Jerusalem"),
27
+ Timestamp("2019-10-14", tz="Asia/Jerusalem"),
28
+ Timestamp("2019-10-20", tz="Asia/Jerusalem"),
29
+ Timestamp("2019-10-21", tz="Asia/Jerusalem"),
30
+ # 2020
31
+ Timestamp("2020-03-02", tz="Asia/Jerusalem"),
32
+ Timestamp("2020-03-10", tz="Asia/Jerusalem"),
33
+ Timestamp("2020-04-08", tz="Asia/Jerusalem"),
34
+ Timestamp("2020-04-09", tz="Asia/Jerusalem"),
35
+ Timestamp("2020-04-14", tz="Asia/Jerusalem"),
36
+ Timestamp("2020-04-15", tz="Asia/Jerusalem"),
37
+ Timestamp("2020-04-28", tz="Asia/Jerusalem"),
38
+ Timestamp("2020-04-29", tz="Asia/Jerusalem"),
39
+ Timestamp("2020-05-28", tz="Asia/Jerusalem"),
40
+ Timestamp("2020-05-29", tz="Asia/Jerusalem"),
41
+ Timestamp("2020-07-30", tz="Asia/Jerusalem"),
42
+ Timestamp("2020-09-20", tz="Asia/Jerusalem"),
43
+ Timestamp("2020-09-27", tz="Asia/Jerusalem"),
44
+ Timestamp("2020-09-28", tz="Asia/Jerusalem"),
45
+ # 2021
46
+ Timestamp("2021-02-26", tz="Asia/Jerusalem"),
47
+ Timestamp("2021-03-28", tz="Asia/Jerusalem"),
48
+ Timestamp("2021-04-02", tz="Asia/Jerusalem"),
49
+ Timestamp("2021-04-14", tz="Asia/Jerusalem"),
50
+ Timestamp("2021-04-15", tz="Asia/Jerusalem"),
51
+ Timestamp("2021-05-16", tz="Asia/Jerusalem"),
52
+ Timestamp("2021-05-17", tz="Asia/Jerusalem"),
53
+ Timestamp("2021-07-18", tz="Asia/Jerusalem"),
54
+ Timestamp("2021-09-06", tz="Asia/Jerusalem"),
55
+ Timestamp("2021-09-07", tz="Asia/Jerusalem"),
56
+ Timestamp("2021-09-08", tz="Asia/Jerusalem"),
57
+ Timestamp("2021-09-15", tz="Asia/Jerusalem"),
58
+ Timestamp("2021-09-16", tz="Asia/Jerusalem"),
59
+ Timestamp("2021-09-20", tz="Asia/Jerusalem"),
60
+ Timestamp("2021-09-21", tz="Asia/Jerusalem"),
61
+ Timestamp("2021-09-27", tz="Asia/Jerusalem"),
62
+ Timestamp("2021-09-28", tz="Asia/Jerusalem"),
63
+ # 2022
64
+ Timestamp("2022-03-17", tz="Asia/Jerusalem"),
65
+ Timestamp("2022-03-18", tz="Asia/Jerusalem"),
66
+ Timestamp("2022-04-15", tz="Asia/Jerusalem"),
67
+ Timestamp("2022-04-21", tz="Asia/Jerusalem"),
68
+ Timestamp("2022-04-22", tz="Asia/Jerusalem"),
69
+ Timestamp("2022-05-05", tz="Asia/Jerusalem"),
70
+ Timestamp("2022-06-05", tz="Asia/Jerusalem"),
71
+ Timestamp("2022-08-07", tz="Asia/Jerusalem"),
72
+ Timestamp("2022-09-25", tz="Asia/Jerusalem"),
73
+ Timestamp("2022-09-26", tz="Asia/Jerusalem"),
74
+ Timestamp("2022-09-27", tz="Asia/Jerusalem"),
75
+ Timestamp("2022-10-04", tz="Asia/Jerusalem"),
76
+ Timestamp("2022-10-05", tz="Asia/Jerusalem"),
77
+ Timestamp("2022-10-09", tz="Asia/Jerusalem"),
78
+ Timestamp("2022-10-10", tz="Asia/Jerusalem"),
79
+ Timestamp("2022-10-16", tz="Asia/Jerusalem"),
80
+ Timestamp("2022-10-17", tz="Asia/Jerusalem"),
81
+ Timestamp("2022-11-01", tz="Asia/Jerusalem"),
82
+ # 2023
83
+ Timestamp("2023-03-07", tz="Asia/Jerusalem"),
84
+ Timestamp("2023-03-08", tz="Asia/Jerusalem"),
85
+ Timestamp("2023-04-05", tz="Asia/Jerusalem"),
86
+ Timestamp("2023-04-06", tz="Asia/Jerusalem"),
87
+ Timestamp("2023-04-11", tz="Asia/Jerusalem"),
88
+ Timestamp("2023-04-12", tz="Asia/Jerusalem"),
89
+ Timestamp("2023-04-25", tz="Asia/Jerusalem"),
90
+ Timestamp("2023-04-26", tz="Asia/Jerusalem"),
91
+ Timestamp("2023-05-25", tz="Asia/Jerusalem"),
92
+ Timestamp("2023-05-26", tz="Asia/Jerusalem"),
93
+ Timestamp("2023-07-27", tz="Asia/Jerusalem"),
94
+ Timestamp("2023-09-15", tz="Asia/Jerusalem"),
95
+ Timestamp("2023-09-17", tz="Asia/Jerusalem"),
96
+ Timestamp("2023-09-24", tz="Asia/Jerusalem"),
97
+ Timestamp("2023-09-25", tz="Asia/Jerusalem"),
98
+ Timestamp("2023-09-29", tz="Asia/Jerusalem"),
99
+ Timestamp("2023-10-06", tz="Asia/Jerusalem"),
100
+ Timestamp("2023-10-31", tz="Asia/Jerusalem"),
101
+ # 2024
102
+ Timestamp("2024-03-24", tz="Asia/Jerusalem"),
103
+ Timestamp("2024-03-25", tz="Asia/Jerusalem"),
104
+ Timestamp("2024-04-22", tz="Asia/Jerusalem"),
105
+ Timestamp("2024-04-23", tz="Asia/Jerusalem"),
106
+ Timestamp("2024-04-28", tz="Asia/Jerusalem"),
107
+ Timestamp("2024-04-29", tz="Asia/Jerusalem"),
108
+ Timestamp("2024-05-13", tz="Asia/Jerusalem"),
109
+ Timestamp("2024-05-14", tz="Asia/Jerusalem"),
110
+ Timestamp("2024-06-11", tz="Asia/Jerusalem"),
111
+ Timestamp("2024-06-12", tz="Asia/Jerusalem"),
112
+ Timestamp("2024-08-13", tz="Asia/Jerusalem"),
113
+ Timestamp("2024-10-02", tz="Asia/Jerusalem"),
114
+ Timestamp("2024-10-03", tz="Asia/Jerusalem"),
115
+ Timestamp("2024-10-04", tz="Asia/Jerusalem"),
116
+ Timestamp("2024-10-11", tz="Asia/Jerusalem"),
117
+ Timestamp("2024-10-16", tz="Asia/Jerusalem"),
118
+ Timestamp("2024-10-17", tz="Asia/Jerusalem"),
119
+ Timestamp("2024-10-23", tz="Asia/Jerusalem"),
120
+ Timestamp("2024-10-24", tz="Asia/Jerusalem"),
121
+ # 2025
122
+ Timestamp("2025-03-14", tz="Asia/Jerusalem"),
123
+ Timestamp("2025-04-13", tz="Asia/Jerusalem"),
124
+ Timestamp("2025-04-18", tz="Asia/Jerusalem"),
125
+ Timestamp("2025-04-30", tz="Asia/Jerusalem"),
126
+ Timestamp("2025-05-01", tz="Asia/Jerusalem"),
127
+ Timestamp("2025-06-01", tz="Asia/Jerusalem"),
128
+ Timestamp("2025-06-02", tz="Asia/Jerusalem"),
129
+ Timestamp("2025-08-03", tz="Asia/Jerusalem"),
130
+ Timestamp("2025-09-22", tz="Asia/Jerusalem"),
131
+ Timestamp("2025-09-23", tz="Asia/Jerusalem"),
132
+ Timestamp("2025-09-24", tz="Asia/Jerusalem"),
133
+ Timestamp("2025-10-01", tz="Asia/Jerusalem"),
134
+ Timestamp("2025-10-02", tz="Asia/Jerusalem"),
135
+ Timestamp("2025-10-06", tz="Asia/Jerusalem"),
136
+ Timestamp("2025-10-07", tz="Asia/Jerusalem"),
137
+ Timestamp("2025-10-13", tz="Asia/Jerusalem"),
138
+ Timestamp("2025-10-14", tz="Asia/Jerusalem"),
139
+ ]
140
+
141
+
142
+ class TASEExchangeCalendar(MarketCalendar):
143
+ """
144
+ Exchange calendar for TASE Stock Exchange
145
+
146
+ Note these dates are only checked against 2020 and 2021
147
+ https://info.tase.co.il/Eng/about_tase/corporate/Pages/vacation_schedule.aspx
148
+
149
+ Opening times for the regular trading of equities (not including closing auction call)
150
+ Open Time: 10:00 AM Asia/Jerusalem
151
+ Close Time: 3:59 PM Asia/Jerusalem
152
+
153
+ Daylight Saving Time in Israel comes into effect on the Friday before the last Sunday in March, and lasts until the
154
+ last Sunday in October.
155
+ During the Daylight Saving time period the clock will be UTC+3, and for the rest of the year UTC+2.
156
+
157
+ Regularly-Observed Holidays (not necessarily in order):
158
+ - Purim
159
+ - Passover_I_Eve
160
+ - Passover_I
161
+ - Passover_II_Eve
162
+ - Passover_II
163
+ - Independence_Day
164
+ - Yom_HaZikaron
165
+ - Shavuot_Eve
166
+ - Shavuot
167
+ - Tisha_beAv
168
+ - Jewish_New_Year_Eve
169
+ - Jewish_New_Year_I
170
+ - Jewish_New_Year_II
171
+ - Yom_Kippur_Eve
172
+ - Yom_Kippur
173
+ - Sukkoth_Eve
174
+ - Sukkoth
175
+ - Simchat_Tora_Eve
176
+ - Simchat_Tora
177
+ """
178
+
179
+ aliases = ["TASE"]
180
+ regular_market_times = {
181
+ "market_open": ((None, time(10)),),
182
+ "market_close": ((None, time(15, 59)),),
183
+ }
184
+
185
+ @property
186
+ def name(self):
187
+ return "TASE"
188
+
189
+ @property
190
+ def tz(self):
191
+ return timezone("Asia/Jerusalem")
192
+
193
+ @property
194
+ def adhoc_holidays(self):
195
+ return TASEClosedDay
196
+
197
+ @property
198
+ def weekmask(self):
199
+ return "Sun Mon Tue Wed Thu"
200
+
201
+ def date_range_htf(
202
+ self,
203
+ frequency: Union[str, Timedelta, int, float],
204
+ start: Union[str, Timestamp, int, float, None] = None,
205
+ end: Union[str, Timestamp, int, float, None] = None,
206
+ periods: Union[int, None] = None,
207
+ closed: Union[Literal["left", "right"], None] = "right",
208
+ *,
209
+ day_anchor: Day_Anchor = "SAT", # Change the default day anchor
210
+ month_anchor: Month_Anchor = "JAN",
211
+ ) -> DatetimeIndex:
212
+ return super().date_range_htf(
213
+ frequency,
214
+ start,
215
+ end,
216
+ periods,
217
+ closed,
218
+ day_anchor=day_anchor,
219
+ month_anchor=month_anchor,
220
+ )