holidays 0.81__py3-none-any.whl → 0.83__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 (141) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/burmese.py +319 -0
  3. holidays/calendars/hebrew.py +2 -2
  4. holidays/calendars/islamic.py +26 -6
  5. holidays/calendars/thai.py +49 -2
  6. holidays/countries/__init__.py +11 -0
  7. holidays/countries/afghanistan.py +7 -5
  8. holidays/countries/algeria.py +89 -24
  9. holidays/countries/antarctica.py +58 -0
  10. holidays/countries/azerbaijan.py +1 -1
  11. holidays/countries/bouvet_island.py +31 -0
  12. holidays/countries/brazil.py +1 -1
  13. holidays/countries/british_indian_ocean_territory.py +31 -0
  14. holidays/countries/bulgaria.py +6 -1
  15. holidays/countries/canada.py +27 -13
  16. holidays/countries/chile.py +9 -8
  17. holidays/countries/cuba.py +3 -4
  18. holidays/countries/denmark.py +18 -6
  19. holidays/countries/djibouti.py +1 -1
  20. holidays/countries/fiji.py +2 -3
  21. holidays/countries/finland.py +3 -6
  22. holidays/countries/guyana.py +24 -32
  23. holidays/countries/heard_island_and_mcdonald_islands.py +31 -0
  24. holidays/countries/hungary.py +4 -5
  25. holidays/countries/india.py +27 -78
  26. holidays/countries/iran.py +133 -269
  27. holidays/countries/ireland.py +1 -1
  28. holidays/countries/israel.py +1 -1
  29. holidays/countries/japan.py +22 -18
  30. holidays/countries/jordan.py +6 -3
  31. holidays/countries/kuwait.py +6 -3
  32. holidays/countries/macau.py +5 -8
  33. holidays/countries/malaysia.py +14 -3
  34. holidays/countries/mauritius.py +10 -9
  35. holidays/countries/montserrat.py +1 -1
  36. holidays/countries/myanmar.py +194 -0
  37. holidays/countries/nepal.py +11 -30
  38. holidays/countries/netherlands.py +28 -24
  39. holidays/countries/new_zealand.py +75 -31
  40. holidays/countries/nigeria.py +53 -75
  41. holidays/countries/north_korea.py +161 -0
  42. holidays/countries/norway.py +24 -9
  43. holidays/countries/oman.py +6 -2
  44. holidays/countries/paraguay.py +70 -23
  45. holidays/countries/portugal.py +5 -6
  46. holidays/countries/qatar.py +5 -2
  47. holidays/countries/rwanda.py +8 -3
  48. holidays/countries/saudi_arabia.py +6 -5
  49. holidays/countries/serbia.py +5 -0
  50. holidays/countries/slovakia.py +23 -4
  51. holidays/countries/south_africa.py +96 -53
  52. holidays/countries/south_korea.py +6 -1
  53. holidays/countries/spain.py +4 -4
  54. holidays/countries/sri_lanka.py +21 -58
  55. holidays/countries/sudan.py +6 -3
  56. holidays/countries/suriname.py +1 -2
  57. holidays/countries/sweden.py +1 -1
  58. holidays/countries/switzerland.py +255 -6
  59. holidays/countries/taiwan.py +23 -3
  60. holidays/countries/tanzania.py +25 -30
  61. holidays/countries/thailand.py +29 -7
  62. holidays/countries/tonga.py +6 -1
  63. holidays/countries/trinidad_and_tobago.py +7 -2
  64. holidays/countries/ukraine.py +1 -1
  65. holidays/countries/united_arab_emirates.py +9 -2
  66. holidays/countries/united_kingdom.py +1 -1
  67. holidays/countries/united_states.py +18 -2
  68. holidays/countries/uruguay.py +6 -1
  69. holidays/countries/vietnam.py +6 -1
  70. holidays/countries/western_sahara.py +92 -0
  71. holidays/countries/yemen.py +6 -3
  72. holidays/groups/__init__.py +1 -0
  73. holidays/groups/balinese_saka.py +1 -1
  74. holidays/groups/buddhist.py +3 -3
  75. holidays/groups/burmese.py +273 -0
  76. holidays/groups/chinese.py +30 -2
  77. holidays/groups/christian.py +10 -0
  78. holidays/groups/custom.py +8 -2
  79. holidays/groups/eastern.py +26 -0
  80. holidays/groups/hebrew.py +16 -14
  81. holidays/groups/hindu.py +23 -15
  82. holidays/groups/international.py +1 -1
  83. holidays/groups/islamic.py +52 -50
  84. holidays/groups/mongolian.py +6 -3
  85. holidays/groups/sinhala.py +9 -11
  86. holidays/groups/tibetan.py +8 -6
  87. holidays/holiday_base.py +26 -26
  88. holidays/ical.py +6 -4
  89. holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
  90. holidays/locale/ar/LC_MESSAGES/EH.mo +0 -0
  91. holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
  92. holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
  93. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  94. holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
  95. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  96. holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
  97. holidays/locale/en_US/LC_MESSAGES/EH.mo +0 -0
  98. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  99. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  100. holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
  101. holidays/locale/en_US/LC_MESSAGES/KP.mo +0 -0
  102. holidays/locale/en_US/LC_MESSAGES/MM.mo +0 -0
  103. holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
  104. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  105. holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
  106. holidays/locale/es/LC_MESSAGES/EH.mo +0 -0
  107. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  108. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  109. holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
  110. holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
  111. holidays/locale/fr/LC_MESSAGES/EH.mo +0 -0
  112. holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
  113. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  114. holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
  115. holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
  116. holidays/locale/ko_KP/LC_MESSAGES/KP.mo +0 -0
  117. holidays/locale/my/LC_MESSAGES/MM.mo +0 -0
  118. holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
  119. holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
  120. holidays/locale/th/LC_MESSAGES/CH.mo +0 -0
  121. holidays/locale/th/LC_MESSAGES/DK.mo +0 -0
  122. holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
  123. holidays/locale/th/LC_MESSAGES/MM.mo +0 -0
  124. holidays/locale/th/LC_MESSAGES/NL.mo +0 -0
  125. holidays/locale/th/LC_MESSAGES/US.mo +0 -0
  126. holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
  127. holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
  128. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  129. holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
  130. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  131. holidays/no_holiday_base.py +21 -0
  132. holidays/observed_holiday_base.py +16 -4
  133. holidays/registry.py +8 -0
  134. holidays/utils.py +5 -5
  135. holidays/version.py +1 -1
  136. {holidays-0.81.dist-info → holidays-0.83.dist-info}/METADATA +63 -19
  137. {holidays-0.81.dist-info → holidays-0.83.dist-info}/RECORD +141 -118
  138. {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/CONTRIBUTORS +2 -0
  139. {holidays-0.81.dist-info → holidays-0.83.dist-info}/WHEEL +0 -0
  140. {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/LICENSE +0 -0
  141. {holidays-0.81.dist-info → holidays-0.83.dist-info}/top_level.txt +0 -0
@@ -57,9 +57,15 @@ class Iran(HolidayBase, IslamicHolidays, PersianCalendarHolidays):
57
57
  islamic_show_estimated:
58
58
  Whether to add "estimated" label to Islamic holidays name
59
59
  if holiday date is estimated.
60
+
61
+ In Iran, the dates of the Islamic calendar usually fall a day later than
62
+ the corresponding dates in the Umm al-Qura calendar.
60
63
  """
61
64
  IslamicHolidays.__init__(
62
- self, cls=IranIslamicHolidays, show_estimated=islamic_show_estimated
65
+ self,
66
+ cls=IranIslamicHolidays,
67
+ show_estimated=islamic_show_estimated,
68
+ calendar_delta_days=+1,
63
69
  )
64
70
  PersianCalendarHolidays.__init__(self)
65
71
  super().__init__(*args, **kwargs)
@@ -164,338 +170,196 @@ class IRN(Iran):
164
170
  class IranIslamicHolidays(_CustomIslamicHolidays):
165
171
  ALI_AL_RIDA_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
166
172
  ALI_AL_RIDA_DEATH_DATES = {
167
- 2001: (MAY, 24),
168
- 2002: (MAY, 13),
169
- 2003: (MAY, 2),
170
- 2004: (APR, 20),
171
- 2006: (MAR, 30),
172
- 2007: (MAR, 20),
173
- 2009: (FEB, 26),
174
- 2010: (FEB, 15),
175
- 2011: (FEB, 4),
176
- 2012: (JAN, 24),
177
- 2014: ((JAN, 2), (DEC, 23)),
178
- 2015: (DEC, 12),
179
- 2016: (NOV, 30),
180
- 2017: (NOV, 19),
181
- 2019: (OCT, 29),
182
- 2021: (OCT, 7),
183
- 2022: (SEP, 27),
184
- 2023: (SEP, 16),
185
- 2024: (SEP, 4),
186
- 2025: (AUG, 24),
173
+ 2005: (APR, 9),
174
+ 2008: (MAR, 8),
175
+ 2013: (JAN, 12),
176
+ 2018: (NOV, 8),
177
+ 2020: (OCT, 17),
187
178
  }
188
179
 
189
180
  ALI_BIRTHDAY_DATES_CONFIRMED_YEARS = (2001, 2025)
190
181
  ALI_BIRTHDAY_DATES = {
191
- 2001: (OCT, 1),
192
- 2002: (SEP, 21),
193
- 2004: (AUG, 30),
194
- 2005: (AUG, 19),
195
- 2006: (AUG, 8),
196
- 2007: (JUL, 28),
197
- 2010: (JUN, 26),
198
- 2011: (JUN, 16),
199
- 2012: (JUN, 4),
200
- 2013: (MAY, 24),
201
- 2014: (MAY, 13),
202
- 2016: (APR, 21),
203
- 2017: (APR, 11),
204
- 2018: (MAR, 31),
205
- 2022: (FEB, 15),
206
- 2025: (JAN, 14),
182
+ 2003: (SEP, 10),
183
+ 2008: (JUL, 16),
184
+ 2009: (JUL, 6),
185
+ 2015: (MAY, 2),
186
+ 2019: (MAR, 20),
187
+ 2020: (MAR, 8),
188
+ 2021: (FEB, 25),
189
+ 2023: (FEB, 4),
190
+ 2024: (JAN, 25),
207
191
  }
208
192
 
209
193
  ALI_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
210
194
  ALI_DEATH_DATES = {
211
- 2001: (DEC, 7),
212
- 2002: (NOV, 27),
213
- 2003: (NOV, 16),
214
- 2004: (NOV, 5),
215
- 2005: (OCT, 25),
216
- 2006: (OCT, 15),
217
- 2008: (SEP, 22),
218
- 2010: (SEP, 1),
219
- 2012: (AUG, 10),
220
- 2013: (JUL, 30),
221
- 2014: (JUL, 19),
222
- 2016: (JUN, 27),
223
- 2018: (JUN, 6),
224
- 2019: (MAY, 27),
225
- 2020: (MAY, 15),
226
- 2021: (MAY, 4),
227
- 2022: (APR, 23),
228
- 2024: (APR, 1),
229
- 2025: (MAR, 22),
195
+ 2007: (OCT, 3),
196
+ 2009: (SEP, 11),
197
+ 2011: (AUG, 21),
198
+ 2015: (JUL, 8),
199
+ 2017: (JUN, 16),
200
+ 2023: (APR, 12),
230
201
  }
231
202
 
232
203
  ARBAEEN_DATES_CONFIRMED_YEARS = (2001, 2025)
233
204
  ARBAEEN_DATES = {
234
- 2003: (APR, 23),
235
- 2004: (APR, 11),
236
- 2005: (MAR, 31),
237
- 2006: (MAR, 21),
238
- 2008: (FEB, 28),
239
- 2009: (FEB, 16),
240
- 2010: (FEB, 5),
241
- 2011: (JAN, 25),
205
+ 2001: (MAY, 14),
206
+ 2002: (MAY, 3),
207
+ 2007: (MAR, 10),
208
+ 2012: (JAN, 14),
242
209
  2013: ((JAN, 3), (DEC, 23)),
243
- 2014: (DEC, 13),
244
- 2018: (OCT, 30),
245
- 2020: (OCT, 8),
246
- 2022: (SEP, 17),
247
- 2023: (SEP, 6),
248
- 2024: (AUG, 25),
210
+ 2015: (DEC, 2),
211
+ 2016: (NOV, 20),
212
+ 2017: (NOV, 9),
213
+ 2019: (OCT, 19),
214
+ 2021: (SEP, 27),
215
+ 2025: (AUG, 14),
249
216
  }
250
217
 
251
218
  ASHURA_DATES_CONFIRMED_YEARS = (2001, 2025)
252
219
  ASHURA_DATES = {
253
- 2001: (APR, 5),
254
- 2002: (MAR, 25),
255
- 2003: (MAR, 14),
256
- 2004: (MAR, 2),
257
- 2005: (FEB, 20),
258
- 2007: (JAN, 30),
259
- 2011: (DEC, 6),
260
- 2012: (NOV, 25),
261
- 2013: (NOV, 14),
262
- 2014: (NOV, 4),
263
- 2015: (OCT, 24),
264
- 2016: (OCT, 12),
265
- 2017: (OCT, 1),
266
- 2019: (SEP, 10),
267
- 2020: (AUG, 30),
268
- 2021: (AUG, 19),
269
- 2025: (JUL, 6),
220
+ 2006: (FEB, 9),
221
+ 2008: (JAN, 19),
222
+ 2009: ((JAN, 7), (DEC, 27)),
223
+ 2010: (DEC, 16),
224
+ 2018: (SEP, 20),
225
+ 2022: (AUG, 8),
226
+ 2023: (JUL, 28),
227
+ 2024: (JUL, 16),
270
228
  }
271
229
 
272
230
  EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2025)
273
231
  EID_AL_ADHA_DATES = {
274
- 2001: (MAR, 6),
275
- 2002: (FEB, 23),
276
- 2003: (FEB, 12),
277
- 2004: (FEB, 2),
232
+ 2005: (JAN, 21),
278
233
  2006: ((JAN, 11), (DEC, 31)),
279
- 2007: (DEC, 21),
280
- 2008: (DEC, 9),
281
- 2009: (NOV, 28),
282
- 2010: (NOV, 17),
283
- 2011: (NOV, 7),
284
- 2013: (OCT, 16),
285
- 2014: (OCT, 5),
286
- 2015: (SEP, 24),
287
- 2016: (SEP, 12),
288
- 2018: (AUG, 22),
289
- 2019: (AUG, 12),
290
- 2021: (JUL, 21),
291
- 2022: (JUL, 10),
292
- 2023: (JUN, 29),
293
- 2024: (JUN, 17),
234
+ 2012: (OCT, 26),
235
+ 2017: (SEP, 1),
236
+ 2020: (JUL, 31),
237
+ 2025: (JUN, 6),
294
238
  }
295
239
 
296
240
  EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2025)
297
241
  EID_AL_FITR_DATES = {
298
- 2002: (DEC, 6),
299
- 2003: (NOV, 26),
300
- 2005: (NOV, 4),
301
- 2006: (OCT, 24),
302
- 2011: (AUG, 31),
303
- 2013: (AUG, 9),
304
- 2014: (JUL, 29),
305
- 2015: (JUL, 18),
306
- 2017: (JUN, 26),
307
- 2019: (JUN, 5),
308
- 2022: (MAY, 3),
309
- 2023: (APR, 22),
310
- 2025: (MAR, 31),
242
+ 2001: (DEC, 16),
243
+ 2004: (NOV, 14),
244
+ 2007: (OCT, 13),
245
+ 2008: (OCT, 1),
246
+ 2009: (SEP, 20),
247
+ 2010: (SEP, 10),
248
+ 2012: (AUG, 19),
249
+ 2016: (JUL, 6),
250
+ 2018: (JUN, 15),
251
+ 2020: (MAY, 24),
252
+ 2021: (MAY, 13),
253
+ 2024: (APR, 10),
311
254
  }
312
255
 
313
256
  EID_AL_GHADIR_DATES_CONFIRMED_YEARS = (2001, 2025)
314
257
  EID_AL_GHADIR_DATES = {
315
- 2001: (MAR, 14),
316
- 2002: (MAR, 3),
317
- 2003: (FEB, 20),
318
- 2004: (FEB, 10),
319
- 2006: (JAN, 19),
258
+ 2005: (JAN, 29),
320
259
  2007: ((JAN, 8), (DEC, 29)),
321
- 2008: (DEC, 17),
322
- 2009: (DEC, 6),
323
- 2010: (NOV, 25),
324
- 2011: (NOV, 15),
325
- 2013: (OCT, 24),
326
- 2014: (OCT, 13),
327
- 2015: (OCT, 2),
328
- 2016: (SEP, 20),
329
- 2018: (AUG, 30),
330
- 2019: (AUG, 20),
331
- 2021: (JUL, 29),
332
- 2022: (JUL, 18),
333
- 2023: (JUL, 7),
334
- 2024: (JUN, 25),
260
+ 2012: (NOV, 3),
261
+ 2017: (SEP, 9),
262
+ 2020: (AUG, 8),
263
+ 2025: (JUN, 14),
335
264
  }
336
265
 
337
266
  FATIMA_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
338
267
  FATIMA_DEATH_DATES = {
339
- 2001: (AUG, 23),
340
- 2003: (AUG, 2),
341
- 2004: (JUL, 21),
342
- 2005: (JUL, 10),
343
- 2009: (MAY, 28),
344
- 2011: (MAY, 7),
345
- 2012: (APR, 25),
346
- 2013: (APR, 14),
347
- 2015: (MAR, 24),
348
- 2016: (MAR, 13),
349
- 2018: (FEB, 20),
350
- 2019: (FEB, 9),
351
- 2020: (JAN, 29),
352
- 2021: (JAN, 17),
353
- 2023: (DEC, 17),
354
- 2024: (DEC, 5),
268
+ 2002: (AUG, 12),
269
+ 2006: (JUN, 29),
270
+ 2007: (JUN, 18),
271
+ 2008: (JUN, 7),
272
+ 2010: (MAY, 17),
273
+ 2014: (APR, 3),
274
+ 2017: (MAR, 2),
275
+ 2022: ((JAN, 6), (DEC, 27)),
276
+ 2025: (NOV, 24),
355
277
  }
356
278
 
357
279
  HASAN_AL_ASKARI_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
358
280
  HASAN_AL_ASKARI_DEATH_DATES = {
359
- 2001: (JUN, 1),
360
- 2002: (MAY, 21),
361
- 2003: (MAY, 10),
362
- 2004: (APR, 28),
363
- 2006: (APR, 7),
364
- 2007: (MAR, 28),
365
- 2009: (MAR, 6),
366
- 2010: (FEB, 23),
367
- 2011: (FEB, 12),
368
- 2012: (FEB, 1),
369
- 2014: ((JAN, 10), (DEC, 31)),
370
- 2015: (DEC, 20),
371
- 2016: (DEC, 8),
372
- 2017: (NOV, 27),
373
- 2019: (NOV, 6),
374
- 2021: (OCT, 15),
375
- 2022: (OCT, 5),
376
- 2023: (SEP, 24),
377
- 2024: (SEP, 12),
378
- 2025: (SEP, 1),
281
+ 2005: (APR, 17),
282
+ 2008: (MAR, 16),
283
+ 2013: (JAN, 20),
284
+ 2018: (NOV, 16),
285
+ 2020: (OCT, 25),
379
286
  }
380
287
 
381
288
  IMAM_MAHDI_BIRTHDAY_DATES_CONFIRMED_YEARS = (2001, 2025)
382
289
  IMAM_MAHDI_BIRTHDAY_DATES = {
383
- 2001: (NOV, 1),
384
- 2002: (OCT, 22),
385
- 2003: (OCT, 12),
386
290
  2004: (OCT, 1),
387
- 2005: (SEP, 20),
388
- 2006: (SEP, 9),
389
- 2007: (AUG, 29),
390
- 2008: (AUG, 17),
391
- 2009: (AUG, 7),
392
- 2011: (JUL, 17),
393
- 2015: (JUN, 3),
394
- 2017: (MAY, 12),
395
- 2018: (MAY, 2),
396
- 2019: (APR, 21),
397
- 2020: (APR, 9),
398
- 2021: (MAR, 29),
399
- 2023: (MAR, 8),
291
+ 2010: (JUL, 27),
292
+ 2012: (JUL, 5),
293
+ 2013: (JUN, 24),
294
+ 2014: (JUN, 13),
295
+ 2016: (MAY, 22),
296
+ 2022: (MAR, 18),
297
+ 2024: (FEB, 25),
298
+ 2025: (FEB, 14),
400
299
  }
401
300
 
402
301
  ISRA_AND_MIRAJ_DATES_CONFIRMED_YEARS = (2001, 2025)
403
302
  ISRA_AND_MIRAJ_DATES = {
404
- 2001: (OCT, 15),
405
- 2002: (OCT, 5),
406
- 2004: (SEP, 13),
407
- 2005: (SEP, 2),
408
- 2006: (AUG, 22),
409
- 2007: (AUG, 11),
410
- 2010: (JUL, 10),
411
- 2011: (JUN, 30),
412
- 2012: (JUN, 18),
413
- 2013: (JUN, 7),
414
- 2014: (MAY, 27),
415
- 2016: (MAY, 5),
416
- 2017: (APR, 25),
417
- 2018: (APR, 14),
418
- 2022: (MAR, 1),
419
- 2025: (JAN, 28),
303
+ 2003: (SEP, 24),
304
+ 2008: (JUL, 30),
305
+ 2009: (JUL, 20),
306
+ 2015: (MAY, 16),
307
+ 2019: (APR, 3),
308
+ 2020: (MAR, 22),
309
+ 2021: (MAR, 11),
310
+ 2023: (FEB, 18),
311
+ 2024: (FEB, 8),
420
312
  }
421
313
 
422
314
  PROPHET_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
423
315
  PROPHET_DEATH_DATES = {
424
- 2003: (MAY, 1),
425
- 2004: (APR, 19),
426
- 2005: (APR, 8),
427
- 2006: (MAR, 29),
428
- 2008: (MAR, 7),
429
- 2009: (FEB, 24),
430
- 2010: (FEB, 13),
431
- 2011: (FEB, 2),
316
+ 2001: (MAY, 22),
317
+ 2002: (MAY, 11),
318
+ 2007: (MAR, 18),
319
+ 2012: (JAN, 22),
432
320
  2013: ((JAN, 11), (DEC, 31)),
433
- 2014: (DEC, 21),
434
- 2018: (NOV, 7),
435
- 2020: (OCT, 16),
436
- 2022: (SEP, 25),
437
- 2023: (SEP, 14),
438
- 2024: (SEP, 2),
321
+ 2015: (DEC, 10),
322
+ 2016: (NOV, 28),
323
+ 2017: (NOV, 17),
324
+ 2019: (OCT, 27),
325
+ 2021: (OCT, 5),
326
+ 2025: (AUG, 22),
439
327
  }
440
328
 
441
329
  SADIQ_BIRTHDAY_DATES_CONFIRMED_YEARS = (2001, 2025)
442
330
  SADIQ_BIRTHDAY_DATES = {
443
- 2001: (JUN, 10),
444
- 2002: (MAY, 30),
445
- 2003: (MAY, 19),
446
- 2004: (MAY, 7),
447
- 2006: (APR, 16),
448
- 2007: (APR, 6),
449
- 2009: (MAR, 15),
450
- 2010: (MAR, 4),
451
- 2011: (FEB, 21),
452
- 2012: (FEB, 10),
453
- 2014: (JAN, 19),
454
- 2015: ((JAN, 9), (DEC, 29)),
455
- 2016: (DEC, 17),
456
- 2017: (DEC, 6),
457
- 2019: (NOV, 15),
458
- 2021: (OCT, 24),
459
- 2022: (OCT, 14),
460
- 2023: (OCT, 3),
461
- 2024: (SEP, 21),
462
- 2025: (SEP, 10),
331
+ 2005: (APR, 26),
332
+ 2008: (MAR, 25),
333
+ 2013: (JAN, 29),
334
+ 2018: (NOV, 25),
335
+ 2020: (NOV, 3),
463
336
  }
464
337
 
465
338
  SADIQ_DEATH_DATES_CONFIRMED_YEARS = (2001, 2025)
466
339
  SADIQ_DEATH_DATES = {
340
+ 2001: (JAN, 20),
467
341
  2002: ((JAN, 9), (DEC, 30)),
468
- 2003: (DEC, 20),
469
- 2005: (NOV, 28),
470
- 2006: (NOV, 17),
471
- 2011: (SEP, 24),
472
- 2013: (SEP, 2),
473
- 2014: (AUG, 22),
474
- 2015: (AUG, 11),
475
- 2017: (JUL, 20),
476
- 2019: (JUN, 29),
477
- 2022: (MAY, 27),
478
- 2023: (MAY, 16),
479
- 2025: (APR, 24),
342
+ 2004: (DEC, 8),
343
+ 2007: (NOV, 6),
344
+ 2008: (OCT, 25),
345
+ 2009: (OCT, 14),
346
+ 2010: (OCT, 4),
347
+ 2012: (SEP, 12),
348
+ 2016: (JUL, 30),
349
+ 2018: (JUL, 9),
350
+ 2020: (JUN, 17),
351
+ 2021: (JUN, 6),
352
+ 2024: (MAY, 4),
480
353
  }
481
354
 
482
355
  TASUA_DATES_CONFIRMED_YEARS = (2001, 2025)
483
356
  TASUA_DATES = {
484
- 2001: (APR, 4),
485
- 2002: (MAR, 24),
486
- 2003: (MAR, 13),
487
- 2004: (MAR, 1),
488
- 2005: (FEB, 19),
489
- 2007: (JAN, 29),
490
- 2011: (DEC, 5),
491
- 2012: (NOV, 24),
492
- 2013: (NOV, 13),
493
- 2014: (NOV, 3),
494
- 2015: (OCT, 23),
495
- 2016: (OCT, 11),
496
- 2017: (SEP, 30),
497
- 2019: (SEP, 9),
498
- 2020: (AUG, 29),
499
- 2021: (AUG, 18),
500
- 2025: (JUL, 5),
357
+ 2006: (FEB, 8),
358
+ 2008: (JAN, 18),
359
+ 2009: ((JAN, 6), (DEC, 26)),
360
+ 2010: (DEC, 15),
361
+ 2018: (SEP, 19),
362
+ 2022: (AUG, 7),
363
+ 2023: (JUL, 27),
364
+ 2024: (JUL, 15),
501
365
  }
@@ -47,7 +47,7 @@ class Ireland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
47
47
 
48
48
  # Saint Patrick's Day.
49
49
  if self._year >= 1903:
50
- self._add_holiday_mar_17("Saint Patrick's Day")
50
+ self._add_saint_patricks_day("Saint Patrick's Day")
51
51
 
52
52
  # Easter Monday.
53
53
  self._add_easter_monday("Easter Monday")
@@ -50,7 +50,7 @@ class Israel(ObservedHolidayBase, HebrewCalendarHolidays):
50
50
  super().__init__(*args, **kwargs)
51
51
 
52
52
  def _add_observed(self, dt, name, rule):
53
- is_observed, _ = super()._add_observed(dt, name, rule)
53
+ is_observed, _ = super()._add_observed(dt, name, rule=rule)
54
54
  if not is_observed:
55
55
  self._add_holiday(name, dt)
56
56
 
@@ -99,30 +99,38 @@ class Japan(ObservedHolidayBase, InternationalHolidays, StaticHolidays):
99
99
  # Foundation Day.
100
100
  dts_observed.add(self._add_holiday_feb_11(tr("建国記念の日")))
101
101
 
102
- if self._year >= 2020:
102
+ if self._year != 2019:
103
103
  # Emperor's Birthday.
104
- dts_observed.add(self._add_holiday_feb_23(tr("天皇誕生日")))
104
+ name = tr("天皇誕生日")
105
+ if self._year >= 2020:
106
+ # Reiwa Emperor's Birthday.
107
+ dt = self._add_holiday_feb_23(name)
108
+ elif self._year >= 1989:
109
+ # Heisei Emperor's Birthday.
110
+ dt = self._add_holiday_dec_23(name)
111
+ else:
112
+ # Showa Emperor's Birthday.
113
+ dt = self._add_holiday_apr_29(name)
114
+ dts_observed.add(dt)
105
115
 
106
116
  # Vernal Equinox Day.
107
117
  dts_observed.add(self._add_holiday(tr("春分の日"), self._vernal_equinox_date))
108
118
 
109
- # Showa Emperor's Birthday, Greenery Day or Showa Day.
110
- if self._year <= 1988:
111
- name = tr("天皇誕生日")
112
- elif self._year <= 2006:
113
- # Greenery Day.
114
- name = tr("みどりの日")
115
- else:
119
+ if self._year >= 2007:
116
120
  # Showa Day.
117
- name = tr("昭和の日")
118
- dts_observed.add(self._add_holiday_apr_29(name))
121
+ dts_observed.add(self._add_holiday_apr_29(tr("昭和の日")))
119
122
 
120
123
  # Constitution Day.
121
124
  dts_observed.add(self._add_holiday_may_3(tr("憲法記念日")))
122
125
 
123
- # Greenery Day.
124
- if self._year >= 2007:
125
- dts_observed.add(self._add_holiday_may_4(tr("みどりの日")))
126
+ if self._year >= 1989:
127
+ # Greenery Day.
128
+ name = tr("みどりの日")
129
+ dts_observed.add(
130
+ self._add_holiday_may_4(name)
131
+ if self._year >= 2007
132
+ else self._add_holiday_apr_29(name)
133
+ )
126
134
 
127
135
  # Children's Day.
128
136
  dts_observed.add(self._add_holiday_may_5(tr("こどもの日")))
@@ -188,10 +196,6 @@ class Japan(ObservedHolidayBase, InternationalHolidays, StaticHolidays):
188
196
  # Labor Thanksgiving Day.
189
197
  dts_observed.add(self._add_holiday_nov_23(tr("勤労感謝の日")))
190
198
 
191
- # Regarding the Emperor of Heisei.
192
- if 1989 <= self._year <= 2018:
193
- dts_observed.add(self._add_holiday_dec_23(tr("天皇誕生日")))
194
-
195
199
  if self.observed:
196
200
  self._populate_observed(dts_observed)
197
201
 
@@ -10,9 +10,10 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from datetime import date
13
14
  from gettext import gettext as tr
14
15
 
15
- from holidays.calendars.gregorian import THU, FRI, SAT
16
+ from holidays.calendars.gregorian import JAN, THU, FRI, SAT
16
17
  from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
17
18
  from holidays.holiday_base import HolidayBase
18
19
 
@@ -30,6 +31,7 @@ class Jordan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolid
30
31
  # %s (estimated).
31
32
  estimated_label = tr("%s (المقدرة)")
32
33
  supported_languages = ("ar", "en_US")
34
+ weekend = {FRI, SAT}
33
35
 
34
36
  def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
35
37
  """
@@ -43,11 +45,12 @@ class Jordan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolid
43
45
  IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
44
46
  super().__init__(*args, **kwargs)
45
47
 
46
- def _populate_public_holidays(self):
48
+ def _get_weekend(self, dt: date) -> set[int]:
47
49
  # The resting days are Friday and Saturday since Jan 6, 2000.
48
50
  # https://web.archive.org/web/20241226195649/http://archive.wfn.org/2000/01/msg00078.html
49
- self.weekend = {THU, FRI} if self._year <= 1999 else {FRI, SAT}
51
+ return {FRI, SAT} if dt >= date(2000, JAN, 6) else {THU, FRI}
50
52
 
53
+ def _populate_public_holidays(self):
51
54
  # New Year's Day.
52
55
  self._add_new_years_day(tr("رأس السنة الميلادية"))
53
56
 
@@ -10,9 +10,10 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from datetime import date
13
14
  from gettext import gettext as tr
14
15
 
15
- from holidays.calendars.gregorian import THU, FRI, SAT
16
+ from holidays.calendars.gregorian import SEP, THU, FRI, SAT
16
17
  from holidays.groups import InternationalHolidays, IslamicHolidays
17
18
  from holidays.holiday_base import HolidayBase
18
19
 
@@ -31,6 +32,7 @@ class Kuwait(HolidayBase, InternationalHolidays, IslamicHolidays):
31
32
  # %s (estimated).
32
33
  estimated_label = tr("%s (المقدرة)")
33
34
  supported_languages = ("ar", "en_US")
35
+ weekend = {FRI, SAT}
34
36
 
35
37
  def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
36
38
  """
@@ -43,11 +45,12 @@ class Kuwait(HolidayBase, InternationalHolidays, IslamicHolidays):
43
45
  IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
44
46
  super().__init__(*args, **kwargs)
45
47
 
46
- def _populate_public_holidays(self):
48
+ def _get_weekend(self, dt: date) -> set[int]:
47
49
  # The resting days are Friday and Saturday since Sep 1, 2007.
48
50
  # https://web.archive.org/web/20250414072729/https://www.arabnews.com/node/298933
49
- self.weekend = {THU, FRI} if self._year <= 2006 else {FRI, SAT}
51
+ return {FRI, SAT} if dt >= date(2007, SEP, 1) else {THU, FRI}
50
52
 
53
+ def _populate_public_holidays(self):
51
54
  # New Year's Day.
52
55
  self._add_new_years_day(tr("رأس السنة الميلادية"))
53
56