holidays 0.78__py3-none-any.whl → 0.80__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 (161) 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/hindu.py +1 -0
  5. holidays/calendars/islamic.py +16 -4
  6. holidays/calendars/julian.py +14 -0
  7. holidays/calendars/mandaean.py +59 -0
  8. holidays/calendars/tibetan.py +1466 -0
  9. holidays/constants.py +2 -1
  10. holidays/countries/__init__.py +20 -0
  11. holidays/countries/afghanistan.py +6 -39
  12. holidays/countries/albania.py +3 -22
  13. holidays/countries/argentina.py +7 -18
  14. holidays/countries/australia.py +191 -295
  15. holidays/countries/azerbaijan.py +6 -39
  16. holidays/countries/bahrain.py +29 -38
  17. holidays/countries/bhutan.py +194 -0
  18. holidays/countries/bosnia_and_herzegovina.py +7 -28
  19. holidays/countries/brunei.py +7 -117
  20. holidays/countries/burkina_faso.py +9 -15
  21. holidays/countries/burundi.py +95 -40
  22. holidays/countries/cameroon.py +8 -34
  23. holidays/countries/canada.py +9 -1
  24. holidays/countries/central_african_republic.py +3 -16
  25. holidays/countries/chad.py +9 -17
  26. holidays/countries/chile.py +20 -4
  27. holidays/countries/christmas_island.py +10 -15
  28. holidays/countries/cocos_islands.py +5 -24
  29. holidays/countries/comoros.py +121 -0
  30. holidays/countries/egypt.py +5 -37
  31. holidays/countries/eritrea.py +104 -0
  32. holidays/countries/ethiopia.py +18 -47
  33. holidays/countries/fiji.py +1 -2
  34. holidays/countries/gabon.py +5 -23
  35. holidays/countries/gambia.py +168 -0
  36. holidays/countries/georgia.py +9 -7
  37. holidays/countries/guinea.py +5 -27
  38. holidays/countries/guinea_bissau.py +96 -0
  39. holidays/countries/guyana.py +2 -17
  40. holidays/countries/india.py +12 -25
  41. holidays/countries/indonesia.py +6 -158
  42. holidays/countries/iran.py +16 -126
  43. holidays/countries/iraq.py +276 -0
  44. holidays/countries/kazakhstan.py +2 -18
  45. holidays/countries/kenya.py +2 -8
  46. holidays/countries/kiribati.py +124 -0
  47. holidays/countries/kyrgyzstan.py +2 -0
  48. holidays/countries/lebanon.py +5 -87
  49. holidays/countries/liberia.py +80 -0
  50. holidays/countries/libya.py +5 -37
  51. holidays/countries/macau.py +65 -63
  52. holidays/countries/malaysia.py +9 -130
  53. holidays/countries/maldives.py +2 -0
  54. holidays/countries/mali.py +4 -9
  55. holidays/countries/mauritania.py +2 -0
  56. holidays/countries/mauritius.py +1 -2
  57. holidays/countries/montenegro.py +3 -18
  58. holidays/countries/nepal.py +42 -44
  59. holidays/countries/niger.py +14 -74
  60. holidays/countries/nigeria.py +198 -27
  61. holidays/countries/north_macedonia.py +3 -39
  62. holidays/countries/oman.py +6 -28
  63. holidays/countries/pakistan.py +5 -30
  64. holidays/countries/palestine.py +2 -5
  65. holidays/countries/philippines.py +3 -33
  66. holidays/countries/qatar.py +3 -45
  67. holidays/countries/rwanda.py +162 -0
  68. holidays/countries/saudi_arabia.py +3 -0
  69. holidays/countries/senegal.py +6 -16
  70. holidays/countries/sierra_leone.py +5 -21
  71. holidays/countries/singapore.py +7 -59
  72. holidays/countries/somalia.py +79 -0
  73. holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
  74. holidays/countries/south_sudan.py +133 -0
  75. holidays/countries/spain.py +7 -10
  76. holidays/countries/sri_lanka.py +3 -14
  77. holidays/countries/suriname.py +11 -19
  78. holidays/countries/syrian_arab_republic.py +134 -0
  79. holidays/countries/tajikistan.py +116 -0
  80. holidays/countries/tanzania.py +291 -153
  81. holidays/countries/timor_leste.py +2 -17
  82. holidays/countries/togo.py +4 -29
  83. holidays/countries/trinidad_and_tobago.py +2 -9
  84. holidays/countries/turkey.py +2 -116
  85. holidays/countries/turkmenistan.py +164 -0
  86. holidays/countries/uganda.py +101 -0
  87. holidays/countries/united_arab_emirates.py +5 -29
  88. holidays/countries/uzbekistan.py +3 -31
  89. holidays/countries/yemen.py +8 -52
  90. holidays/financial/__init__.py +5 -0
  91. holidays/financial/national_stock_exchange_of_india.py +169 -0
  92. holidays/groups/__init__.py +2 -0
  93. holidays/groups/christian.py +48 -12
  94. holidays/groups/eastern.py +1 -1
  95. holidays/groups/international.py +17 -1
  96. holidays/groups/islamic.py +1 -1
  97. holidays/groups/mandaean.py +107 -0
  98. holidays/groups/tibetan.py +153 -0
  99. holidays/holiday_base.py +14 -0
  100. holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
  101. holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
  102. holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
  103. holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
  104. holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
  105. holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
  106. holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
  107. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  108. holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
  109. holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
  110. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  111. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  112. holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
  113. holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
  114. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  115. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  116. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  117. holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
  118. holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
  119. holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
  120. holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
  121. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  122. holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
  123. holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
  124. holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
  125. holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
  126. holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
  127. holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
  128. holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
  129. holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
  130. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  131. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  132. holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
  133. holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
  134. holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
  135. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  136. holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
  137. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  138. holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
  139. holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
  140. holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
  141. holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
  142. holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
  143. holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
  144. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  145. holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
  146. holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
  147. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  148. holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
  149. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  150. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  151. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  152. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  153. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  154. holidays/registry.py +46 -14
  155. holidays/version.py +1 -1
  156. {holidays-0.78.dist-info → holidays-0.80.dist-info}/METADATA +127 -9
  157. {holidays-0.78.dist-info → holidays-0.80.dist-info}/RECORD +161 -113
  158. {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/CONTRIBUTORS +2 -0
  159. {holidays-0.78.dist-info → holidays-0.80.dist-info}/WHEEL +0 -0
  160. {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/LICENSE +0 -0
  161. {holidays-0.78.dist-info → holidays-0.80.dist-info}/top_level.txt +0 -0
@@ -190,10 +190,10 @@ class LBN(Lebanon):
190
190
 
191
191
  class LebanonIslamicHolidays(_CustomIslamicHolidays):
192
192
  # https://web.archive.org/web/20250426220233/https://www.timeanddate.com/holidays/lebanon/first-day-ashura
193
+ ASHURA_DATES_CONFIRMED_YEARS = (1978, 2024)
193
194
  ASHURA_DATES = {
194
195
  1978: (DEC, 11),
195
196
  1979: (NOV, 30),
196
- 1980: (NOV, 18),
197
197
  1981: (NOV, 8),
198
198
  1982: (OCT, 28),
199
199
  1983: (OCT, 17),
@@ -206,28 +206,15 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
206
206
  1990: (AUG, 2),
207
207
  1991: (JUL, 22),
208
208
  1992: (JUL, 11),
209
- 1993: (JUN, 30),
210
- 1994: (JUN, 19),
211
209
  1995: (JUN, 9),
212
210
  1996: (MAY, 28),
213
211
  1997: (MAY, 18),
214
212
  1998: (MAY, 7),
215
- 1999: (APR, 26),
216
- 2000: (APR, 15),
217
- 2001: (APR, 4),
218
- 2002: (MAR, 24),
219
213
  2003: (MAR, 14),
220
214
  2004: (MAR, 2),
221
- 2005: (FEB, 19),
222
- 2006: (FEB, 9),
223
- 2007: (JAN, 29),
224
- 2008: (JAN, 19),
225
- 2009: ((JAN, 7), (DEC, 27)),
226
215
  2010: (DEC, 17),
227
216
  2011: (DEC, 6),
228
- 2012: (NOV, 24),
229
217
  2013: (NOV, 14),
230
- 2014: (NOV, 3),
231
218
  2015: (OCT, 24),
232
219
  2016: (OCT, 12),
233
220
  2017: (OCT, 1),
@@ -236,11 +223,10 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
236
223
  2020: (AUG, 30),
237
224
  2021: (AUG, 19),
238
225
  2022: (AUG, 9),
239
- 2023: (JUL, 28),
240
- 2024: (JUL, 16),
241
226
  }
242
227
 
243
228
  # https://web.archive.org/web/20250316072400/https://www.timeanddate.com/holidays/lebanon/eid-al-adha
229
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (1978, 2025)
244
230
  EID_AL_ADHA_DATES = {
245
231
  1978: (NOV, 11),
246
232
  1979: (NOV, 1),
@@ -256,7 +242,6 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
256
242
  1989: (JUL, 14),
257
243
  1990: (JUL, 4),
258
244
  1991: (JUN, 23),
259
- 1992: (JUN, 11),
260
245
  1993: (JUN, 1),
261
246
  1994: (MAY, 21),
262
247
  1995: (MAY, 10),
@@ -264,35 +249,24 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
264
249
  1997: (APR, 18),
265
250
  1998: (APR, 8),
266
251
  1999: (MAR, 28),
267
- 2000: (MAR, 16),
268
252
  2001: (MAR, 6),
269
253
  2002: (FEB, 23),
270
254
  2003: (FEB, 12),
271
255
  2004: (FEB, 2),
272
- 2005: (JAN, 21),
273
- 2006: ((JAN, 10), (DEC, 31)),
274
- 2007: (DEC, 20),
275
256
  2008: (DEC, 9),
276
257
  2009: (NOV, 28),
277
258
  2010: (NOV, 17),
278
259
  2011: (NOV, 7),
279
- 2012: (OCT, 26),
280
- 2013: (OCT, 15),
281
260
  2014: (OCT, 5),
282
261
  2015: (SEP, 24),
283
262
  2016: (SEP, 13),
284
263
  2017: (SEP, 2),
285
264
  2018: (AUG, 22),
286
265
  2019: (AUG, 12),
287
- 2020: (JUL, 31),
288
- 2021: (JUL, 20),
289
- 2022: (JUL, 9),
290
- 2023: (JUN, 28),
291
- 2024: (JUN, 16),
292
- 2025: (JUN, 6),
293
266
  }
294
267
 
295
268
  # https://web.archive.org/web/20250216042303/https://www.timeanddate.com/holidays/lebanon/eid-al-fitr
269
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (1978, 2025)
296
270
  EID_AL_FITR_DATES = {
297
271
  1978: (SEP, 4),
298
272
  1979: (AUG, 25),
@@ -300,7 +274,6 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
300
274
  1981: (AUG, 2),
301
275
  1982: (JUL, 23),
302
276
  1983: (JUL, 12),
303
- 1984: (JUN, 30),
304
277
  1985: (JUN, 20),
305
278
  1986: (JUN, 9),
306
279
  1987: (MAY, 30),
@@ -308,7 +281,6 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
308
281
  1989: (MAY, 7),
309
282
  1990: (APR, 27),
310
283
  1991: (APR, 16),
311
- 1992: (APR, 4),
312
284
  1993: (MAR, 25),
313
285
  1994: (MAR, 14),
314
286
  1995: (MAR, 3),
@@ -320,35 +292,21 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
320
292
  2001: (DEC, 17),
321
293
  2002: (DEC, 6),
322
294
  2003: (NOV, 26),
323
- 2004: (NOV, 14),
324
295
  2005: (NOV, 4),
325
296
  2006: (OCT, 24),
326
- 2007: (OCT, 13),
327
297
  2008: (OCT, 2),
328
298
  2009: (SEP, 21),
329
- 2010: (SEP, 10),
330
299
  2011: (AUG, 31),
331
- 2012: (AUG, 19),
332
- 2013: (AUG, 8),
333
300
  2014: (JUL, 29),
334
- 2015: (JUL, 17),
335
301
  2016: (JUL, 7),
336
302
  2017: (JUN, 26),
337
- 2018: (JUN, 15),
338
- 2019: (JUN, 4),
339
- 2020: (MAY, 24),
340
- 2021: (MAY, 13),
341
- 2022: (MAY, 2),
342
- 2023: (APR, 21),
343
- 2024: (APR, 10),
344
- 2025: (MAR, 30),
345
303
  }
346
304
 
347
305
  # https://web.archive.org/web/20250428034326/https://www.timeanddate.com/holidays/lebanon/muharram
306
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (1978, 2025)
348
307
  HIJRI_NEW_YEAR_DATES = {
349
308
  1978: (DEC, 2),
350
309
  1979: (NOV, 21),
351
- 1980: (NOV, 9),
352
310
  1981: (OCT, 30),
353
311
  1982: (OCT, 19),
354
312
  1983: (OCT, 8),
@@ -361,47 +319,24 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
361
319
  1990: (JUL, 24),
362
320
  1991: (JUL, 13),
363
321
  1992: (JUL, 2),
364
- 1993: (JUN, 21),
365
- 1994: (JUN, 10),
366
322
  1995: (MAY, 31),
367
323
  1996: (MAY, 19),
368
324
  1997: (MAY, 9),
369
325
  1998: (APR, 28),
370
- 1999: (APR, 17),
371
- 2000: (APR, 6),
372
- 2001: (MAR, 26),
373
- 2002: (MAR, 15),
374
326
  2003: (MAR, 5),
375
327
  2004: (FEB, 22),
376
- 2005: (FEB, 10),
377
- 2006: (JAN, 31),
378
- 2007: (JAN, 20),
379
- 2008: ((JAN, 10), (DEC, 29)),
380
- 2009: (DEC, 18),
381
328
  2010: (DEC, 8),
382
329
  2011: (NOV, 27),
383
- 2012: (NOV, 15),
384
330
  2013: (NOV, 5),
385
- 2014: (OCT, 25),
386
- 2015: (OCT, 14),
387
331
  2016: (OCT, 3),
388
332
  2017: (SEP, 22),
389
- 2018: (SEP, 11),
390
- 2019: (AUG, 31),
391
- 2020: (AUG, 20),
392
- 2021: (AUG, 9),
393
- 2022: (JUL, 30),
394
- 2023: (JUL, 19),
395
- 2024: (JUL, 7),
396
- 2025: (JUN, 26),
397
333
  }
398
334
 
399
335
  # https://web.archive.org/web/20240908071444/https://www.timeanddate.com/holidays/lebanon/prophet-birthday
336
+ MAWLID_DATES_CONFIRMED_YEARS = (1978, 2024)
400
337
  MAWLID_DATES = {
401
338
  1978: (FEB, 20),
402
339
  1979: (FEB, 10),
403
- 1980: (JAN, 30),
404
- 1981: (JAN, 18),
405
340
  1982: ((JAN, 8), (DEC, 28)),
406
341
  1983: (DEC, 17),
407
342
  1984: (DEC, 6),
@@ -414,35 +349,18 @@ class LebanonIslamicHolidays(_CustomIslamicHolidays):
414
349
  1991: (SEP, 21),
415
350
  1992: (SEP, 10),
416
351
  1993: (AUG, 30),
417
- 1994: (AUG, 19),
418
352
  1995: (AUG, 9),
419
353
  1996: (JUL, 28),
420
354
  1997: (JUL, 18),
421
355
  1998: (JUL, 7),
422
- 1999: (JUN, 26),
423
356
  2000: (JUN, 15),
424
- 2001: (JUN, 4),
425
- 2002: (MAY, 24),
426
357
  2003: (MAY, 14),
427
358
  2004: (MAY, 2),
428
- 2005: (APR, 21),
429
359
  2006: (APR, 11),
430
- 2007: (MAR, 31),
431
- 2008: (MAR, 20),
432
- 2009: (MAR, 9),
433
- 2010: (FEB, 26),
434
360
  2011: (FEB, 16),
435
361
  2012: (FEB, 5),
436
- 2013: (JAN, 24),
437
362
  2014: (JAN, 14),
438
363
  2015: ((JAN, 3), (DEC, 24)),
439
364
  2016: (DEC, 12),
440
365
  2017: (DEC, 1),
441
- 2018: (NOV, 20),
442
- 2019: (NOV, 9),
443
- 2020: (OCT, 29),
444
- 2021: (OCT, 18),
445
- 2022: (OCT, 8),
446
- 2023: (SEP, 27),
447
- 2024: (SEP, 15),
448
366
  }
@@ -0,0 +1,80 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.groups import ChristianHolidays, InternationalHolidays
14
+ from holidays.holiday_base import HolidayBase
15
+
16
+
17
+ class Liberia(HolidayBase, ChristianHolidays, InternationalHolidays):
18
+ """Liberia holidays.
19
+
20
+ References:
21
+ * [Patriotic and Cultural Observances Law 1956](http://www.liberlii.org/lr/legis/codes/pacolt25lcolr654/)
22
+
23
+ Inauguration Day is celebrated on the first Monday of January in the year after the
24
+ Presidential elections.
25
+ """
26
+
27
+ country = "LR"
28
+ start_year = 1957
29
+
30
+ def __init__(self, *args, **kwargs):
31
+ ChristianHolidays.__init__(self)
32
+ InternationalHolidays.__init__(self)
33
+ super().__init__(*args, **kwargs)
34
+
35
+ def _populate_public_holidays(self):
36
+ # New Year's Day.
37
+ self._add_new_years_day("New Year's Day")
38
+
39
+ if self._year in {1960, 1964, 1968, 1972, 1976, 1986, 1998, 2006, 2012, 2018, 2024}:
40
+ # Inauguration Day.
41
+ self._add_holiday_1st_mon_of_jan("Inauguration Day")
42
+
43
+ # Armed Forces Day.
44
+ self._add_holiday_feb_11("Armed Forces Day")
45
+
46
+ # Decoration Day.
47
+ self._add_holiday_2nd_wed_of_mar("Decoration Day")
48
+
49
+ # J. J. Roberts Memorial Birthday.
50
+ self._add_holiday_mar_15("J. J. Roberts Memorial Birthday")
51
+
52
+ # Fasting and Prayer Day.
53
+ self._add_holiday_2nd_fri_of_apr("Fasting and Prayer Day")
54
+
55
+ if self._year >= 1960:
56
+ # National Unification and Integration Day.
57
+ self._add_holiday_may_14("National Unification and Integration Day")
58
+
59
+ # Independence Day.
60
+ self._add_holiday_jul_26("Independence Day")
61
+
62
+ # National Flag Day.
63
+ self._add_holiday_aug_24("National Flag Day")
64
+
65
+ # Thanksgiving Day.
66
+ self._add_holiday_1st_thu_of_nov("Thanksgiving Day")
67
+
68
+ # Tubman Administration Goodwill Day.
69
+ self._add_holiday_nov_29("Tubman Administration Goodwill Day")
70
+
71
+ # Christmas Day.
72
+ self._add_christmas_day("Christmas Day")
73
+
74
+
75
+ class LR(Liberia):
76
+ pass
77
+
78
+
79
+ class LBR(Liberia):
80
+ pass
@@ -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 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
16
+ from holidays.calendars.gregorian import JAN, FEB, MAR, JUN, JUL, AUG, SEP, OCT, NOV, DEC
17
17
  from holidays.constants import PUBLIC, WORKDAY
18
18
  from holidays.groups import InternationalHolidays, IslamicHolidays, StaticHolidays
19
19
  from holidays.holiday_base import HolidayBase
@@ -142,75 +142,43 @@ class LBY(Libya):
142
142
  class LibyaIslamicHolidays(_CustomIslamicHolidays):
143
143
  # https://web.archive.org/web/20240908234803/https://www.timeanddate.com/holidays/libya/eid-al-adha
144
144
  # https://web.archive.org/web/20250629084537/https://lawsociety.ly/legislation/قرار-رقم-773-لسنة-2017-م-بشأن-تحديد-عطلة-عيد-ال/
145
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2012, 2025)
145
146
  EID_AL_ADHA_DATES = {
146
- 2012: (OCT, 26),
147
- 2013: (OCT, 15),
148
147
  2014: (OCT, 5),
149
- 2015: (SEP, 23),
150
- 2016: (SEP, 11),
151
- 2017: (SEP, 1),
152
148
  2018: (AUG, 22),
153
- 2019: (AUG, 11),
154
- 2020: (JUL, 31),
155
- 2021: (JUL, 20),
156
- 2022: (JUL, 9),
157
- 2023: (JUN, 28),
158
- 2024: (JUN, 16),
159
- 2025: (JUN, 6),
160
149
  }
161
150
 
162
151
  # https://web.archive.org/web/20241012125707/https://www.timeanddate.com/holidays/libya/eid-al-fitr
152
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2012, 2025)
163
153
  EID_AL_FITR_DATES = {
164
- 2012: (AUG, 19),
165
- 2013: (AUG, 8),
166
154
  2014: (JUL, 29),
167
155
  2015: (JUL, 18),
168
156
  2016: (JUL, 7),
169
157
  2017: (JUN, 26),
170
- 2018: (JUN, 15),
171
- 2019: (JUN, 4),
172
- 2020: (MAY, 24),
173
- 2021: (MAY, 13),
174
- 2022: (MAY, 2),
175
- 2023: (APR, 21),
176
- 2024: (APR, 10),
177
158
  2025: (MAR, 31),
178
159
  }
179
160
 
180
161
  # https://web.archive.org/web/20250418094505/https://www.timeanddate.com/holidays/libya/muharram-new-year
162
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2012, 2025)
181
163
  HIJRI_NEW_YEAR_DATES = {
182
- 2012: (NOV, 15),
183
164
  2013: (NOV, 5),
184
- 2014: (OCT, 25),
185
165
  2015: (OCT, 15),
186
166
  2016: (OCT, 3),
187
167
  2017: (SEP, 22),
188
168
  2018: (SEP, 12),
189
- 2019: (AUG, 31),
190
- 2020: (AUG, 20),
191
169
  2021: (AUG, 10),
192
- 2022: (JUL, 30),
193
- 2023: (JUL, 19),
194
- 2024: (JUL, 7),
195
- 2025: (JUN, 26),
196
170
  }
197
171
 
198
172
  # https://web.archive.org/web/20241213175353/https://www.timeanddate.com/holidays/libya/prophet-birthday
199
173
  # https://web.archive.org/web/20250629084607/https://lawsociety.ly/legislation/قرار-رقم-1299-لسنة-2019-م-بشأن-عطلة-ذكرى-المولد/
174
+ MAWLID_DATES_CONFIRMED_YEARS = (2012, 2024)
200
175
  MAWLID_DATES = {
201
176
  2012: (FEB, 5),
202
- 2013: (JAN, 24),
203
177
  2014: (JAN, 14),
204
- 2015: ((JAN, 3), (DEC, 23)),
205
178
  2016: (DEC, 12),
206
179
  2017: (DEC, 1),
207
180
  2018: (NOV, 21),
208
- 2019: (NOV, 9),
209
- 2020: (OCT, 29),
210
181
  2021: (OCT, 19),
211
- 2022: (OCT, 8),
212
- 2023: (SEP, 27),
213
- 2024: (SEP, 15),
214
182
  }
215
183
 
216
184
 
@@ -13,7 +13,7 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars.gregorian import FEB, SEP, OCT, DEC
16
- from holidays.constants import GOVERNMENT, MANDATORY, PUBLIC
16
+ from holidays.constants import GOVERNMENT, OPTIONAL, PUBLIC
17
17
  from holidays.groups import (
18
18
  ChineseCalendarHolidays,
19
19
  ChristianHolidays,
@@ -77,7 +77,7 @@ class Macau(
77
77
  "澳門市": "M",
78
78
  "澳门市": "M",
79
79
  }
80
- supported_categories = (GOVERNMENT, MANDATORY, PUBLIC)
80
+ supported_categories = (GOVERNMENT, OPTIONAL, PUBLIC)
81
81
  supported_languages = ("en_MO", "en_US", "pt_MO", "th", "zh_CN", "zh_MO")
82
82
 
83
83
  def __init__(self, *args, **kwargs):
@@ -91,6 +91,63 @@ class Macau(
91
91
  super().__init__(*args, **kwargs)
92
92
 
93
93
  def _populate_public_holidays(self):
94
+ """Macau Mandatory (Statutory) Holidays.
95
+
96
+ Decreto-Lei n.º 101/84/M - Earliest Available Version Online.
97
+ Decreto-Lei n.º 24/89/M - Added Ching Ming Festival.
98
+ Lei n.º 8/2000 - Removed Day of Portugal
99
+ - Added Macao S.A.R. Establishment Day.
100
+ - Moved Mid-Autumn to Day following Mid-Autumn to match Public Holidays.
101
+ Lei n.º 7/2008 - Consolidated with other laws, reaffirming 2000 Amendment list.
102
+ """
103
+ if self._year <= 1984:
104
+ return None
105
+
106
+ # New Year's Day.
107
+ self._add_new_years_day(tr("元旦"))
108
+
109
+ # Chinese New Year's Day.
110
+ self._add_chinese_new_years_day(tr("農曆正月初一"))
111
+
112
+ # The second day of Chinese New Year.
113
+ self._add_chinese_new_years_day_two(tr("農曆正月初二"))
114
+
115
+ # The third day of Chinese New Year.
116
+ self._add_chinese_new_years_day_three(tr("農曆正月初三"))
117
+
118
+ # Labor Day.
119
+ self._add_labor_day(tr("勞動節"))
120
+
121
+ # Double Ninth Festival.
122
+ self._add_double_ninth_festival(tr("重陽節"))
123
+
124
+ # National Day of the People's Republic of China.
125
+ self._add_holiday_oct_1(tr("中華人民共和國國慶日"))
126
+
127
+ # Decreto-Lei n.º 24/89/M - Adds Ching Ming as a Mandatory Holiday.
128
+ if self._year >= 1989:
129
+ # Tomb-Sweeping Day.
130
+ self._add_qingming_festival(tr("清明節"))
131
+
132
+ # Lei n.º 8/2000 - Removed Day of Portugal as a Mandatory Holiday.
133
+ # - Changed observance from Mid-Autumn to the following day.
134
+ # - Adds Macao S.A.R. Establishment Day as a Mandatory Holiday.
135
+ if self._year <= 1999:
136
+ # Day of Portugal, Camões, and the Portuguese Communities.
137
+ self._add_holiday_jun_10(tr("葡國日、賈梅士日暨葡僑日"))
138
+
139
+ # Mid-Autumn Festival.
140
+ self._add_mid_autumn_festival(tr("中秋節"))
141
+
142
+ else:
143
+ # The Day following Mid-Autumn Festival.
144
+ self._add_mid_autumn_festival_day_two(tr("中秋節翌日"))
145
+
146
+ # Macao S.A.R. Establishment Day.
147
+ self._add_holiday_dec_20(tr("澳門特別行政區成立紀念日"))
148
+
149
+ def _populate_optional_holidays(self):
150
+ """Macau General Holidays."""
94
151
  # New Year's Day.
95
152
  self._add_new_years_day(tr("元旦"))
96
153
 
@@ -223,61 +280,6 @@ class Macau(
223
280
  # Macao S.A.R. Establishment Day.
224
281
  self._add_holiday_dec_20(tr("澳門特別行政區成立紀念日"))
225
282
 
226
- def _populate_mandatory_holidays(self):
227
- """
228
- Decreto-Lei n.º 101/84/M - Earliest Available Version Online.
229
- Decreto-Lei n.º 24/89/M - Added Ching Ming Festival.
230
- Lei n.º 8/2000 - Removed Day of Portugal
231
- - Added Macao S.A.R. Establishment Day.
232
- - Moved Mid-Autumn to Day following Mid-Autumn to match Public Holidays.
233
- Lei n.º 7/2008 - Consolidated with other laws, reaffirming 2000 Amendment list.
234
- """
235
- if self._year <= 1984:
236
- return None
237
-
238
- # New Year's Day.
239
- self._add_new_years_day(tr("元旦"))
240
-
241
- # Chinese New Year's Day.
242
- self._add_chinese_new_years_day(tr("農曆正月初一"))
243
-
244
- # The second day of Chinese New Year.
245
- self._add_chinese_new_years_day_two(tr("農曆正月初二"))
246
-
247
- # The third day of Chinese New Year.
248
- self._add_chinese_new_years_day_three(tr("農曆正月初三"))
249
-
250
- # Labor Day.
251
- self._add_labor_day(tr("勞動節"))
252
-
253
- # Double Ninth Festival.
254
- self._add_double_ninth_festival(tr("重陽節"))
255
-
256
- # National Day of the People's Republic of China.
257
- self._add_holiday_oct_1(tr("中華人民共和國國慶日"))
258
-
259
- # Decreto-Lei n.º 24/89/M - Adds Ching Ming as a Mandatory Holiday.
260
- if self._year >= 1989:
261
- # Tomb-Sweeping Day.
262
- self._add_qingming_festival(tr("清明節"))
263
-
264
- # Lei n.º 8/2000 - Removed Day of Portugal as a Mandatory Holiday.
265
- # - Changed observance from Mid-Autumn to the following day.
266
- # - Adds Macao S.A.R. Establishment Day as a Mandatory Holiday.
267
- if self._year <= 1999:
268
- # Day of Portugal, Camões, and the Portuguese Communities.
269
- self._add_holiday_jun_10(tr("葡國日、賈梅士日暨葡僑日"))
270
-
271
- # Mid-Autumn Festival.
272
- self._add_mid_autumn_festival(tr("中秋節"))
273
-
274
- else:
275
- # The Day following Mid-Autumn Festival.
276
- self._add_mid_autumn_festival_day_two(tr("中秋節翌日"))
277
-
278
- # Macao S.A.R. Establishment Day.
279
- self._add_holiday_dec_20(tr("澳門特別行政區成立紀念日"))
280
-
281
283
  def _populate_government_holidays(self):
282
284
  # While Cross-Checking References are available for from 2005-2025,
283
285
  # SUN in-lieus starts in 2011; SAT-SUN in-lieus starts in 2012.
@@ -378,7 +380,7 @@ class Macau(
378
380
  )
379
381
  self._populate_observed(dts_observed, multiple=True)
380
382
 
381
- def _populate_subdiv_i_public_holidays(self):
383
+ def _populate_subdiv_i_optional_holidays(self):
382
384
  # Decreto-Lei n.º 15/93/M - Moved Day of the Municipality of Ilhas from JUL 13 to NOV 30.
383
385
  # Regulamento Administrativo n.º 4/1999 - Removed as a Public Holiday.
384
386
  if self._year <= 1999:
@@ -389,7 +391,7 @@ class Macau(
389
391
  else:
390
392
  self._add_holiday_jul_13(name)
391
393
 
392
- def _populate_subdiv_m_public_holidays(self):
394
+ def _populate_subdiv_m_optional_holidays(self):
393
395
  # Regulamento Administrativo n.º 4/1999 - Removed Macau City Day as a Public Holiday.
394
396
  if self._year <= 1999:
395
397
  # Macau City Day.
@@ -407,10 +409,10 @@ class MAC(Macau):
407
409
  class MacauStaticHolidays:
408
410
  """Macau special holidays.
409
411
 
410
- Special Public and Government Holidays:
412
+ Special General and Government Holidays:
411
413
  * <https://web.archive.org/web/20240421052702/https://www.io.gov.mo/pt/legis/rec/111020>
412
414
 
413
- Special Mandatory Holidays:
415
+ Special Mandatory (Statutory) Holidays:
414
416
  * <https://web.archive.org/web/20250421090753/https://www.dsal.gov.mo/pt/standard/holiday_table.html>
415
417
 
416
418
  Cross-Checking:
@@ -457,10 +459,10 @@ class MacauStaticHolidays:
457
459
  2014: (OCT, 3, name_double_ninth_festival_national_day_2_overlap),
458
460
  2020: (OCT, 5, name_mid_autumn_festival_day_2_national_day_2_overlap),
459
461
  }
460
- special_mandatory_holidays = {
462
+ special_public_holidays = {
461
463
  2015: (SEP, 3, name_70th_war_of_resistance),
462
464
  }
463
- special_public_holidays = {
465
+ special_optional_holidays = {
464
466
  1998: (
465
467
  (DEC, 23, name_fullday),
466
468
  (DEC, 31, name_halfday),