pandas-market-calendars 4.3.3__py3-none-any.whl → 4.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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
+ )