holidays 0.78__py3-none-any.whl → 0.79__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 (105) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/chinese.py +14 -4
  3. holidays/calendars/ethiopian.py +31 -0
  4. holidays/calendars/islamic.py +16 -4
  5. holidays/calendars/julian.py +14 -0
  6. holidays/calendars/mandaean.py +59 -0
  7. holidays/calendars/tibetan.py +1466 -0
  8. holidays/constants.py +2 -0
  9. holidays/countries/__init__.py +13 -0
  10. holidays/countries/afghanistan.py +6 -39
  11. holidays/countries/albania.py +3 -22
  12. holidays/countries/argentina.py +3 -18
  13. holidays/countries/azerbaijan.py +6 -39
  14. holidays/countries/bahrain.py +29 -38
  15. holidays/countries/bhutan.py +194 -0
  16. holidays/countries/bosnia_and_herzegovina.py +2 -27
  17. holidays/countries/brunei.py +7 -117
  18. holidays/countries/burkina_faso.py +4 -15
  19. holidays/countries/cameroon.py +3 -34
  20. holidays/countries/canada.py +2 -1
  21. holidays/countries/central_african_republic.py +3 -16
  22. holidays/countries/chad.py +4 -17
  23. holidays/countries/chile.py +20 -4
  24. holidays/countries/christmas_island.py +4 -15
  25. holidays/countries/cocos_islands.py +5 -24
  26. holidays/countries/egypt.py +5 -37
  27. holidays/countries/ethiopia.py +18 -47
  28. holidays/countries/fiji.py +1 -2
  29. holidays/countries/gabon.py +3 -23
  30. holidays/countries/gambia.py +168 -0
  31. holidays/countries/guinea.py +5 -27
  32. holidays/countries/guinea_bissau.py +100 -0
  33. holidays/countries/guyana.py +2 -17
  34. holidays/countries/india.py +12 -25
  35. holidays/countries/indonesia.py +6 -158
  36. holidays/countries/iran.py +16 -126
  37. holidays/countries/iraq.py +276 -0
  38. holidays/countries/kazakhstan.py +2 -18
  39. holidays/countries/kenya.py +2 -8
  40. holidays/countries/kiribati.py +124 -0
  41. holidays/countries/lebanon.py +5 -87
  42. holidays/countries/liberia.py +80 -0
  43. holidays/countries/libya.py +5 -37
  44. holidays/countries/malaysia.py +9 -130
  45. holidays/countries/mali.py +4 -9
  46. holidays/countries/mauritius.py +1 -2
  47. holidays/countries/montenegro.py +3 -18
  48. holidays/countries/nepal.py +42 -44
  49. holidays/countries/niger.py +14 -74
  50. holidays/countries/north_macedonia.py +3 -39
  51. holidays/countries/oman.py +6 -28
  52. holidays/countries/pakistan.py +5 -30
  53. holidays/countries/palestine.py +2 -5
  54. holidays/countries/philippines.py +3 -33
  55. holidays/countries/qatar.py +3 -45
  56. holidays/countries/saudi_arabia.py +3 -0
  57. holidays/countries/senegal.py +6 -16
  58. holidays/countries/sierra_leone.py +4 -20
  59. holidays/countries/singapore.py +3 -59
  60. holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
  61. holidays/countries/spain.py +3 -10
  62. holidays/countries/sri_lanka.py +3 -14
  63. holidays/countries/suriname.py +11 -19
  64. holidays/countries/syrian_arab_republic.py +134 -0
  65. holidays/countries/tanzania.py +3 -9
  66. holidays/countries/timor_leste.py +2 -17
  67. holidays/countries/togo.py +4 -29
  68. holidays/countries/trinidad_and_tobago.py +2 -9
  69. holidays/countries/turkey.py +2 -116
  70. holidays/countries/turkmenistan.py +158 -0
  71. holidays/countries/united_arab_emirates.py +5 -29
  72. holidays/countries/uzbekistan.py +3 -31
  73. holidays/countries/yemen.py +8 -52
  74. holidays/groups/__init__.py +2 -0
  75. holidays/groups/christian.py +48 -12
  76. holidays/groups/international.py +17 -1
  77. holidays/groups/islamic.py +1 -1
  78. holidays/groups/mandaean.py +107 -0
  79. holidays/groups/tibetan.py +153 -0
  80. holidays/holiday_base.py +14 -0
  81. holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
  82. holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
  83. holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
  84. holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
  85. holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
  86. holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
  87. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  88. holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
  89. holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
  90. holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
  91. holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
  92. holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
  93. holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
  94. holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
  95. holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
  96. holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
  97. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  98. holidays/registry.py +13 -0
  99. holidays/version.py +1 -1
  100. {holidays-0.78.dist-info → holidays-0.79.dist-info}/METADATA +68 -5
  101. {holidays-0.78.dist-info → holidays-0.79.dist-info}/RECORD +105 -78
  102. {holidays-0.78.dist-info → holidays-0.79.dist-info}/licenses/CONTRIBUTORS +2 -0
  103. {holidays-0.78.dist-info → holidays-0.79.dist-info}/WHEEL +0 -0
  104. {holidays-0.78.dist-info → holidays-0.79.dist-info}/licenses/LICENSE +0 -0
  105. {holidays-0.78.dist-info → holidays-0.79.dist-info}/top_level.txt +0 -0
@@ -156,37 +156,37 @@ class Niger(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Islam
156
156
  self._add_observed(self._add_all_saints_day(tr("Toussaint")))
157
157
 
158
158
 
159
+ class NE(Niger):
160
+ pass
161
+
162
+
163
+ class NER(Niger):
164
+ pass
165
+
166
+
159
167
  class NigerIslamicHolidays(_CustomIslamicHolidays):
168
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (1998, 2025)
160
169
  EID_AL_ADHA_DATES = {
161
170
  1998: (APR, 8),
162
171
  1999: (MAR, 28),
163
- 2000: (MAR, 16),
164
172
  2001: (MAR, 6),
165
173
  2002: (FEB, 23),
166
174
  2003: (FEB, 12),
167
175
  2004: (FEB, 2),
168
- 2005: (JAN, 21),
169
- 2006: ((JAN, 10), (DEC, 31)),
170
- 2007: (DEC, 20),
171
176
  2008: (DEC, 9),
172
177
  2009: (NOV, 28),
173
178
  2010: (NOV, 17),
174
179
  2011: (NOV, 7),
175
- 2012: (OCT, 26),
176
- 2013: (OCT, 15),
177
180
  2014: (OCT, 5),
181
+ 2015: (SEP, 24),
178
182
  2016: (SEP, 13),
179
183
  2017: (SEP, 2),
180
184
  2018: (AUG, 22),
181
- 2019: (AUG, 11),
182
- 2020: (JUL, 31),
183
- 2021: (JUL, 20),
184
185
  2022: (JUL, 10),
185
- 2023: (JUN, 28),
186
- 2024: (JUN, 16),
187
186
  2025: (JUN, 7),
188
187
  }
189
188
 
189
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (1998, 2025)
190
190
  EID_AL_FITR_DATES = {
191
191
  1998: (JAN, 30),
192
192
  1999: (JAN, 19),
@@ -194,127 +194,67 @@ class NigerIslamicHolidays(_CustomIslamicHolidays):
194
194
  2001: (DEC, 17),
195
195
  2002: (DEC, 6),
196
196
  2003: (NOV, 26),
197
- 2004: (NOV, 14),
198
197
  2005: (NOV, 4),
199
198
  2006: (OCT, 24),
200
- 2007: (OCT, 13),
201
199
  2008: (OCT, 2),
202
200
  2009: (SEP, 21),
203
- 2010: (SEP, 10),
204
201
  2011: (AUG, 31),
205
- 2012: (AUG, 19),
206
- 2013: (AUG, 8),
207
202
  2014: (JUL, 29),
208
203
  2015: (JUL, 18),
209
204
  2016: (JUL, 7),
210
205
  2017: (JUN, 26),
211
- 2018: (JUN, 15),
212
- 2019: (JUN, 4),
213
206
  2020: (MAY, 23),
214
207
  2021: (MAY, 12),
215
208
  2022: (MAY, 1),
216
- 2023: (APR, 21),
217
209
  2024: (APR, 9),
218
- 2025: (MAR, 30),
219
210
  }
220
211
 
212
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (1998, 2025)
221
213
  HIJRI_NEW_YEAR_DATES = {
222
214
  1998: (APR, 28),
223
- 1999: (APR, 17),
224
- 2000: (APR, 6),
225
- 2001: (MAR, 26),
226
- 2002: (MAR, 15),
227
215
  2003: (MAR, 5),
228
216
  2004: (FEB, 22),
229
- 2005: (FEB, 10),
230
- 2006: (JAN, 31),
231
- 2007: (JAN, 20),
232
- 2008: ((JAN, 10), (DEC, 29)),
233
- 2009: (DEC, 18),
234
217
  2010: (DEC, 8),
235
218
  2011: (NOV, 27),
236
- 2012: (NOV, 15),
237
219
  2013: (NOV, 5),
238
- 2014: (OCT, 25),
239
220
  2015: (OCT, 15),
240
221
  2016: (OCT, 3),
241
222
  2017: (SEP, 22),
242
223
  2018: (SEP, 12),
243
- 2019: (AUG, 31),
244
224
  2020: (AUG, 21),
245
225
  2021: (AUG, 10),
246
- 2022: (JUL, 30),
247
- 2023: (JUL, 19),
248
226
  2024: (JUL, 6),
249
227
  2025: (JUN, 27),
250
228
  }
251
229
 
230
+ LAYLAT_AL_QADR_DATES_CONFIRMED_YEARS = (1998, 2025)
252
231
  LAYLAT_AL_QADR_DATES = {
253
232
  1998: (JAN, 26),
254
233
  1999: (JAN, 15),
255
234
  2000: ((JAN, 4), (DEC, 24)),
256
235
  2001: (DEC, 13),
257
- 2002: (DEC, 2),
258
236
  2003: (NOV, 22),
259
237
  2004: (NOV, 11),
260
238
  2005: (OCT, 31),
261
- 2006: (OCT, 20),
262
- 2007: (OCT, 9),
263
239
  2008: (SEP, 28),
264
- 2009: (SEP, 17),
265
- 2010: (SEP, 6),
266
- 2011: (AUG, 27),
267
- 2012: (AUG, 15),
268
- 2013: (AUG, 4),
269
240
  2014: (JUL, 25),
270
- 2015: (JUL, 14),
271
- 2016: (JUL, 2),
272
- 2017: (JUN, 22),
273
- 2018: (JUN, 11),
274
- 2019: (JUN, 1),
275
- 2020: (MAY, 20),
276
- 2021: (MAY, 9),
277
- 2022: (APR, 28),
278
- 2023: (APR, 18),
279
- 2024: (APR, 6),
280
- 2025: (MAR, 27),
281
241
  }
282
242
 
243
+ MAWLID_DATES_CONFIRMED_YEARS = (1998, 2025)
283
244
  MAWLID_DATES = {
284
245
  1998: (JUL, 7),
285
- 1999: (JUN, 26),
286
246
  2000: (JUN, 15),
287
- 2001: (JUN, 4),
288
- 2002: (MAY, 24),
289
247
  2003: (MAY, 14),
290
248
  2004: (MAY, 2),
291
- 2005: (APR, 21),
292
249
  2006: (APR, 11),
293
- 2007: (MAR, 31),
294
- 2008: (MAR, 20),
295
- 2009: (MAR, 9),
296
- 2010: (FEB, 26),
297
250
  2011: (FEB, 16),
298
251
  2012: (FEB, 5),
299
- 2013: (JAN, 24),
300
252
  2014: (JAN, 14),
301
253
  2015: ((JAN, 3), (DEC, 24)),
302
254
  2016: (DEC, 12),
303
255
  2017: (DEC, 1),
304
256
  2018: (NOV, 21),
305
257
  2019: (NOV, 10),
306
- 2020: (OCT, 29),
307
- 2021: (OCT, 18),
308
- 2022: (OCT, 8),
309
- 2023: (SEP, 27),
310
258
  2024: (SEP, 16),
311
259
  2025: (SEP, 5),
312
260
  }
313
-
314
-
315
- class NE(Niger):
316
- pass
317
-
318
-
319
- class NER(Niger):
320
- pass
@@ -13,18 +13,7 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
- from holidays.calendars.gregorian import (
17
- GREGORIAN_CALENDAR,
18
- MAR,
19
- APR,
20
- MAY,
21
- JUN,
22
- JUL,
23
- AUG,
24
- SEP,
25
- OCT,
26
- NOV,
27
- )
16
+ from holidays.calendars.gregorian import GREGORIAN_CALENDAR, APR, MAY, JUL, SEP, OCT
28
17
  from holidays.calendars.julian import JULIAN_CALENDAR
29
18
  from holidays.constants import (
30
19
  ALBANIAN,
@@ -262,42 +251,17 @@ class MKD(NorthMacedonia):
262
251
 
263
252
 
264
253
  class NorthMacedoniaIslamicHolidays(_CustomIslamicHolidays):
254
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2010, 2025)
265
255
  EID_AL_ADHA_DATES = {
266
- 2010: (NOV, 16),
267
- 2011: (NOV, 6),
268
256
  2012: (OCT, 25),
269
- 2013: (OCT, 15),
270
- 2014: (OCT, 4),
271
257
  2015: (SEP, 24),
272
258
  2016: (SEP, 12),
273
- 2017: (SEP, 1),
274
- 2018: (AUG, 21),
275
- 2019: (AUG, 11),
276
- 2020: (JUL, 31),
277
- 2021: (JUL, 20),
278
- 2022: (JUL, 9),
279
- 2023: (JUN, 28),
280
- 2024: (JUN, 16),
281
- 2025: (JUN, 6),
282
259
  }
283
260
 
261
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2010, 2025)
284
262
  EID_AL_FITR_DATES = {
285
263
  2010: (SEP, 9),
286
- 2011: (AUG, 30),
287
- 2012: (AUG, 19),
288
- 2013: (AUG, 8),
289
- 2014: (JUL, 28),
290
- 2015: (JUL, 17),
291
264
  2016: (JUL, 5),
292
- 2017: (JUN, 25),
293
- 2018: (JUN, 15),
294
- 2019: (JUN, 4),
295
- 2020: (MAY, 24),
296
- 2021: (MAY, 13),
297
- 2022: (MAY, 2),
298
- 2023: (APR, 21),
299
- 2024: (APR, 10),
300
- 2025: (MAR, 30),
301
265
  }
302
266
 
303
267
 
@@ -14,17 +14,14 @@ from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
16
  from holidays.calendars.gregorian import (
17
- JAN,
18
17
  FEB,
19
18
  MAR,
20
19
  APR,
21
- MAY,
22
20
  JUN,
23
21
  JUL,
24
22
  AUG,
25
23
  SEP,
26
24
  OCT,
27
- NOV,
28
25
  THU,
29
26
  FRI,
30
27
  SAT,
@@ -123,63 +120,44 @@ class OMN(Oman):
123
120
 
124
121
  class OmanIslamicHolidays(_CustomIslamicHolidays):
125
122
  # https://web.archive.org/web/20240911084650/https://www.timeanddate.com/holidays/oman/muharram-new-year
123
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2018, 2024)
126
124
  HIJRI_NEW_YEAR_DATES = {
127
- 2018: (SEP, 11),
128
125
  2019: (SEP, 1),
129
126
  2020: (AUG, 21),
130
127
  2021: (AUG, 10),
131
- 2022: (JUL, 30),
132
128
  2023: (JUL, 20),
133
- 2024: (JUL, 7),
134
129
  }
135
130
 
136
131
  # https://web.archive.org/web/20240810230306/https://www.timeanddate.com/holidays/oman/prophet-birthday
132
+ MAWLID_DATES_CONFIRMED_YEARS = (2018, 2024)
137
133
  MAWLID_DATES = {
138
- 2018: (NOV, 20),
139
- 2019: (NOV, 9),
140
- 2020: (OCT, 29),
141
134
  2021: (OCT, 19),
142
135
  2022: (OCT, 9),
143
136
  2023: (SEP, 28),
144
- 2024: (SEP, 15),
145
137
  }
146
138
 
147
139
  # https://web.archive.org/web/20241231191036/https://www.timeanddate.com/holidays/oman/isra-miraj
140
+ ISRA_AND_MIRAJ_DATES_CONFIRMED_YEARS = (2018, 2025)
148
141
  ISRA_AND_MIRAJ_DATES = {
149
- 2018: (APR, 13),
150
- 2019: (APR, 3),
151
- 2020: (MAR, 22),
152
- 2021: (MAR, 11),
153
142
  2022: (MAR, 1),
154
143
  2023: (FEB, 19),
155
- 2024: (FEB, 8),
156
- 2025: (JAN, 27),
157
144
  }
158
145
 
159
146
  # https://web.archive.org/web/20240913230603/https://www.timeanddate.com/holidays/oman/eid-al-adha
147
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2019, 2024)
160
148
  EID_AL_ADHA_DATES = {
161
- 2019: (AUG, 11),
162
- 2020: (JUL, 31),
163
- 2021: (JUL, 20),
164
- 2022: (JUL, 9),
165
- 2023: (JUN, 28),
166
149
  2024: (JUN, 17),
167
150
  }
168
151
 
169
152
  # https://web.archive.org/web/20241231191036/https://www.timeanddate.com/holidays/oman/eid-al-fitr
153
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2019, 2025)
170
154
  EID_AL_FITR_DATES = {
171
- 2019: (JUN, 4),
172
- 2020: (MAY, 24),
173
- 2021: (MAY, 13),
174
- 2022: (MAY, 2),
175
155
  2023: (APR, 22),
176
- 2024: (APR, 10),
177
156
  2025: (MAR, 31),
178
157
  }
179
158
 
180
159
  # https://web.archive.org/web/20240814104839/https://www.timeanddate.com/holidays/oman/ramadan-begins
160
+ RAMADAN_BEGINNING_DATES_CONFIRMED_YEARS = (2023, 2025)
181
161
  RAMADAN_BEGINNING_DATES = {
182
- 2023: (MAR, 23),
183
162
  2024: (MAR, 12),
184
- 2025: (MAR, 1),
185
163
  }
@@ -107,48 +107,32 @@ class PAK(Pakistan):
107
107
 
108
108
  class PakistanIslamicHolidays(_CustomIslamicHolidays):
109
109
  # https://web.archive.org/web/20250724060822/https://www.timeanddate.com/holidays/pakistan/ashura
110
+ ASHURA_DATES_CONFIRMED_YEARS = (2005, 2025)
110
111
  ASHURA_DATES = {
111
112
  2005: (FEB, 18),
112
113
  2006: (FEB, 8),
113
114
  2007: (JAN, 28),
114
115
  2008: (JAN, 18),
115
116
  2009: ((JAN, 6), (DEC, 26)),
116
- 2010: (DEC, 16),
117
- 2011: (DEC, 5),
118
117
  2012: (NOV, 23),
119
- 2013: (NOV, 13),
120
- 2014: (NOV, 3),
121
- 2015: (OCT, 23),
122
- 2016: (OCT, 11),
123
- 2017: (SEP, 30),
124
118
  2018: (SEP, 21),
125
- 2019: (SEP, 9),
126
- 2020: (AUG, 29),
127
- 2021: (AUG, 18),
128
119
  2022: (AUG, 9),
129
- 2023: (JUL, 28),
130
- 2024: (JUL, 16),
131
120
  2025: (JUL, 6),
132
121
  }
133
122
 
134
123
  # https://web.archive.org/web/20250724060629/https://www.timeanddate.com/holidays/pakistan/eid-ul-azha
124
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2005, 2025)
135
125
  EID_AL_ADHA_DATES = {
136
- 2005: (JAN, 21),
137
- 2006: ((JAN, 10), (DEC, 31)),
138
- 2007: (DEC, 20),
139
126
  2008: (DEC, 9),
140
127
  2009: (NOV, 28),
141
128
  2010: (NOV, 17),
142
129
  2011: (NOV, 7),
143
- 2012: (OCT, 26),
144
- 2013: (OCT, 15),
145
130
  2014: (OCT, 6),
146
131
  2015: (SEP, 24),
147
132
  2016: (SEP, 12),
148
133
  2017: (SEP, 2),
149
134
  2018: (AUG, 22),
150
135
  2019: (AUG, 12),
151
- 2020: (JUL, 31),
152
136
  2021: (JUL, 21),
153
137
  2022: (JUL, 10),
154
138
  2023: (JUN, 29),
@@ -157,41 +141,32 @@ class PakistanIslamicHolidays(_CustomIslamicHolidays):
157
141
  }
158
142
 
159
143
  # https://web.archive.org/web/20250724060834/https://www.timeanddate.com/holidays/pakistan/eid-ul-fitr-1
144
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2005, 2025)
160
145
  EID_AL_FITR_DATES = {
161
146
  2005: (NOV, 4),
162
147
  2006: (OCT, 24),
163
- 2007: (OCT, 13),
164
148
  2008: (OCT, 2),
165
149
  2009: (SEP, 21),
166
- 2010: (SEP, 10),
167
150
  2011: (AUG, 31),
168
- 2012: (AUG, 19),
169
- 2013: (AUG, 8),
170
151
  2014: (JUL, 29),
171
- 2015: (JUL, 17),
172
- 2016: (JUL, 6),
173
152
  2017: (JUN, 26),
174
153
  2018: (JUN, 16),
175
154
  2019: (JUN, 5),
176
- 2020: (MAY, 24),
177
- 2021: (MAY, 13),
178
155
  2022: (MAY, 3),
179
156
  2023: (APR, 22),
180
- 2024: (APR, 10),
181
157
  2025: (MAR, 31),
182
158
  }
183
159
 
184
160
  # https://web.archive.org/web/20250724061027/https://www.timeanddate.com/holidays/pakistan/eid-milad-un-nabi
161
+
162
+ MAWLID_DATES_CONFIRMED_YEARS = (2005, 2024)
185
163
  MAWLID_DATES = {
186
164
  2005: (APR, 22),
187
165
  2006: (APR, 11),
188
- 2007: (MAR, 31),
189
166
  2008: (MAR, 21),
190
- 2009: (MAR, 9),
191
167
  2010: (MAR, 1),
192
168
  2011: (FEB, 17),
193
169
  2012: (FEB, 5),
194
- 2013: (JAN, 24),
195
170
  2014: (JAN, 14),
196
171
  2015: (JAN, 4),
197
172
  2016: (DEC, 12),
@@ -13,7 +13,7 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
- from holidays.calendars.gregorian import GREGORIAN_CALENDAR, SEP
16
+ from holidays.calendars.gregorian import GREGORIAN_CALENDAR
17
17
  from holidays.calendars.julian import JULIAN_CALENDAR
18
18
  from holidays.constants import CATHOLIC, ORTHODOX, PUBLIC
19
19
  from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
@@ -171,7 +171,4 @@ class PSE(Palestine):
171
171
 
172
172
 
173
173
  class PalestineIslamicHolidays(_CustomIslamicHolidays):
174
- # All other dates follow Umm al-Qura calendar.
175
- MAWLID_DATES = {
176
- 2023: (SEP, 27),
177
- }
174
+ MAWLID_DATES_CONFIRMED_YEARS = (2020, 2024)
@@ -201,68 +201,38 @@ class PHL(Philippines):
201
201
 
202
202
 
203
203
  class PhilippinesChineseHolidays(_CustomChineseHolidays):
204
- LUNAR_NEW_YEAR_DATES = {
205
- 2012: (JAN, 23),
206
- 2013: (FEB, 10),
207
- 2014: (JAN, 31),
208
- 2015: (FEB, 19),
209
- 2016: (FEB, 8),
210
- 2017: (JAN, 28),
211
- 2018: (FEB, 16),
212
- 2019: (FEB, 5),
213
- 2020: (JAN, 25),
214
- 2021: (FEB, 12),
215
- 2022: (FEB, 1),
216
- 2023: (JAN, 22),
217
- 2024: (FEB, 10),
218
- 2025: (JAN, 29),
219
- }
204
+ LUNAR_NEW_YEAR_DATES_CONFIRMED_YEARS = (2012, 2025)
220
205
 
221
206
 
222
207
  class PhilippinesIslamicHolidays(_CustomIslamicHolidays):
208
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2010, 2025)
223
209
  EID_AL_ADHA_DATES = {
224
210
  2010: (NOV, 17),
225
211
  2011: (NOV, 7),
226
- 2012: (OCT, 26),
227
- 2013: (OCT, 15),
228
212
  2014: (OCT, 6),
229
213
  2015: (SEP, 25),
230
214
  2016: (SEP, 10),
231
215
  2017: (SEP, 2),
232
- 2018: (AUG, 21),
233
216
  2019: (AUG, 12),
234
- 2020: (JUL, 31),
235
- 2021: (JUL, 20),
236
- 2022: (JUL, 9),
237
- 2023: (JUN, 28),
238
217
  2024: (JUN, 17),
239
- 2025: (JUN, 6),
240
218
  }
241
219
 
220
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2002, 2025)
242
221
  EID_AL_FITR_DATES = {
243
222
  2002: (DEC, 6),
244
223
  2003: (NOV, 26),
245
- 2004: (NOV, 14),
246
224
  2005: (NOV, 4),
247
225
  2006: (OCT, 24),
248
226
  2007: (OCT, 12),
249
- 2008: (OCT, 1),
250
227
  2009: (SEP, 21),
251
- 2010: (SEP, 10),
252
- 2011: (AUG, 30),
253
228
  2012: (AUG, 20),
254
229
  2013: (AUG, 9),
255
230
  2014: (JUL, 29),
256
- 2015: (JUL, 17),
257
231
  2016: (JUL, 7),
258
232
  2017: (JUN, 26),
259
- 2018: (JUN, 15),
260
233
  2019: (JUN, 5),
261
234
  2020: (MAY, 25),
262
- 2021: (MAY, 13),
263
235
  2022: (MAY, 3),
264
- 2023: (APR, 21),
265
- 2024: (APR, 10),
266
236
  2025: (APR, 1),
267
237
  }
268
238
 
@@ -13,22 +13,7 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
- from holidays.calendars.gregorian import (
17
- JAN,
18
- MAR,
19
- APR,
20
- MAY,
21
- JUN,
22
- JUL,
23
- AUG,
24
- SEP,
25
- OCT,
26
- NOV,
27
- DEC,
28
- THU,
29
- FRI,
30
- SAT,
31
- )
16
+ from holidays.calendars.gregorian import JAN, JUL, AUG, SEP, OCT, NOV, DEC, THU, FRI, SAT
32
17
  from holidays.constants import BANK, PUBLIC
33
18
  from holidays.groups import InternationalHolidays, IslamicHolidays, StaticHolidays
34
19
  from holidays.holiday_base import HolidayBase
@@ -109,52 +94,25 @@ class QAT(Qatar):
109
94
 
110
95
  class QatarIslamicHolidays(_CustomIslamicHolidays):
111
96
  # https://web.archive.org/web/20250422212912/https://www.timeanddate.com/holidays/qatar/eid-al-adha
97
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2005, 2024)
112
98
  EID_AL_ADHA_DATES = {
113
- 2005: (JAN, 21),
114
- 2006: ((JAN, 10), (DEC, 31)),
115
- 2007: (DEC, 20),
116
99
  2008: (DEC, 9),
117
100
  2009: (NOV, 28),
118
101
  2010: (NOV, 15),
119
- 2011: (NOV, 6),
120
- 2012: (OCT, 26),
121
- 2013: (OCT, 15),
122
- 2014: (OCT, 4),
123
- 2015: (SEP, 23),
124
102
  2016: (SEP, 10),
125
103
  2017: (AUG, 31),
126
104
  2018: (AUG, 22),
127
- 2019: (AUG, 11),
128
- 2020: (JUL, 31),
129
- 2021: (JUL, 20),
130
- 2022: (JUL, 9),
131
- 2023: (JUN, 28),
132
- 2024: (JUN, 16),
133
105
  }
134
106
 
135
107
  # https://web.archive.org/web/20241207022523/https://www.timeanddate.com/holidays/qatar/eid-al-fitr
108
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2005, 2025)
136
109
  EID_AL_FITR_DATES = {
137
110
  2005: (NOV, 4),
138
111
  2006: (OCT, 24),
139
- 2007: (OCT, 13),
140
112
  2008: (OCT, 2),
141
113
  2009: (SEP, 21),
142
- 2010: (SEP, 10),
143
114
  2011: (AUG, 31),
144
- 2012: (AUG, 19),
145
- 2013: (AUG, 8),
146
- 2014: (JUL, 28),
147
115
  2015: (JUL, 18),
148
- 2016: (JUL, 6),
149
- 2017: (JUN, 25),
150
- 2018: (JUN, 15),
151
- 2019: (JUN, 4),
152
- 2020: (MAY, 24),
153
- 2021: (MAY, 13),
154
- 2022: (MAY, 2),
155
- 2023: (APR, 21),
156
- 2024: (APR, 10),
157
- 2025: (MAR, 30),
158
116
  }
159
117
 
160
118
 
@@ -125,10 +125,13 @@ class SAU(SaudiArabia):
125
125
 
126
126
 
127
127
  class SaudiArabiaIslamicHolidays(_CustomIslamicHolidays):
128
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2025)
128
129
  EID_AL_ADHA_DATES = {
129
130
  2015: (SEP, 24),
130
131
  }
131
132
 
133
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2025)
134
+
132
135
 
133
136
  class SaudiArabiaStaticHolidays:
134
137
  special_public_holidays = {
@@ -13,7 +13,7 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
- from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC
16
+ from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC
17
17
  from holidays.groups import (
18
18
  ChristianHolidays,
19
19
  InternationalHolidays,
@@ -131,15 +131,13 @@ class SEN(Senegal):
131
131
 
132
132
  class SenegalIslamicHolidays(_CustomIslamicHolidays):
133
133
  # https://web.archive.org/web/20250609044648/https://www.timeanddate.com/holidays/senegal/tamkharit
134
+ ASHURA_DATES_CONFIRMED_YEARS = (2020, 2024)
134
135
  ASHURA_DATES = {
135
- 2020: (AUG, 29),
136
- 2021: (AUG, 18),
137
- 2022: (AUG, 8),
138
- 2023: (JUL, 28),
139
136
  2024: (JUL, 17),
140
137
  }
141
138
 
142
139
  # https://web.archive.org/web/20250609061446/https://www.timeanddate.com/holidays/senegal/grand-magal-de-touba
140
+ GRAND_MAGAL_OF_TOUBA_DATES_CONFIRMED_YEARS = (2020, 2024)
143
141
  GRAND_MAGAL_OF_TOUBA_DATES = {
144
142
  2020: (OCT, 6),
145
143
  2021: (SEP, 26),
@@ -149,27 +147,19 @@ class SenegalIslamicHolidays(_CustomIslamicHolidays):
149
147
  }
150
148
 
151
149
  # https://web.archive.org/web/20250609091559/https://www.timeanddate.com/holidays/senegal/maouloud
152
- MAWLID_DATES = {
153
- 2020: (OCT, 29),
154
- 2021: (OCT, 18),
155
- 2022: (OCT, 8),
156
- 2023: (SEP, 27),
157
- 2024: (SEP, 15),
158
- }
150
+ MAWLID_DATES_CONFIRMED_YEARS = (2020, 2024)
159
151
 
160
152
  # https://web.archive.org/web/20250609092813/https://www.timeanddate.com/holidays/senegal/korite
153
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2020, 2025)
161
154
  EID_AL_FITR_DATES = {
162
- 2020: (MAY, 24),
163
155
  2021: (MAY, 12),
164
156
  2022: (MAY, 1),
165
157
  2023: (APR, 22),
166
- 2024: (APR, 10),
167
- 2025: (MAR, 30),
168
158
  }
169
159
 
170
160
  # https://web.archive.org/web/20250609102658/https://www.timeanddate.com/holidays/senegal/tabaski
161
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2020, 2024)
171
162
  EID_AL_ADHA_DATES = {
172
- 2020: (JUL, 31),
173
163
  2021: (JUL, 21),
174
164
  2022: (JUL, 10),
175
165
  2023: (JUN, 29),