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
@@ -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
 
@@ -609,33 +609,7 @@ class MalaysiaBuddhistHolidays(_CustomBuddhistHolidays):
609
609
 
610
610
 
611
611
  class MalaysiaChineseHolidays(_CustomChineseHolidays):
612
- LUNAR_NEW_YEAR_DATES = {
613
- 2001: (JAN, 24),
614
- 2002: (FEB, 12),
615
- 2003: (FEB, 1),
616
- 2004: (JAN, 22),
617
- 2005: (FEB, 9),
618
- 2006: (JAN, 29),
619
- 2007: (FEB, 18),
620
- 2008: (FEB, 7),
621
- 2009: (JAN, 26),
622
- 2010: (FEB, 14),
623
- 2011: (FEB, 3),
624
- 2012: (JAN, 23),
625
- 2013: (FEB, 10),
626
- 2014: (JAN, 31),
627
- 2015: (FEB, 19),
628
- 2016: (FEB, 8),
629
- 2017: (JAN, 28),
630
- 2018: (FEB, 16),
631
- 2019: (FEB, 5),
632
- 2020: (JAN, 25),
633
- 2021: (FEB, 12),
634
- 2022: (FEB, 1),
635
- 2023: (JAN, 22),
636
- 2024: (FEB, 10),
637
- 2025: (JAN, 29),
638
- }
612
+ LUNAR_NEW_YEAR_DATES_CONFIRMED_YEARS = (2001, 2025)
639
613
 
640
614
 
641
615
  class MalaysiaHinduHolidays(_CustomHinduHolidays):
@@ -682,62 +656,39 @@ class MalaysiaHinduHolidays(_CustomHinduHolidays):
682
656
 
683
657
 
684
658
  class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
659
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2025)
685
660
  EID_AL_ADHA_DATES = {
686
661
  2001: (MAR, 6),
687
662
  2002: (FEB, 23),
688
663
  2003: (FEB, 12),
689
664
  2004: (FEB, 2),
690
- 2005: (JAN, 21),
691
- 2006: ((JAN, 10), (DEC, 31)),
692
- 2007: (DEC, 20),
693
665
  2008: (DEC, 9),
694
666
  2009: (NOV, 28),
695
667
  2010: (NOV, 17),
696
668
  2011: (NOV, 7),
697
- 2012: (OCT, 26),
698
- 2013: (OCT, 15),
699
669
  2014: (OCT, 5),
700
670
  2015: (SEP, 24),
701
671
  2016: (SEP, 12),
702
- 2017: (SEP, 1),
703
672
  2018: (AUG, 22),
704
- 2019: (AUG, 11),
705
- 2020: (JUL, 31),
706
- 2021: (JUL, 20),
707
673
  2022: (JUL, 10),
708
674
  2023: (JUN, 29),
709
675
  2024: (JUN, 17),
710
676
  2025: (JUN, 7),
711
677
  }
712
678
 
679
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2025)
713
680
  EID_AL_FITR_DATES = {
714
681
  2001: (DEC, 17),
715
682
  2002: (DEC, 6),
716
683
  2003: (NOV, 26),
717
- 2004: (NOV, 14),
718
- 2005: (NOV, 3),
719
684
  2006: (OCT, 24),
720
- 2007: (OCT, 13),
721
- 2008: (OCT, 1),
722
- 2009: (SEP, 20),
723
- 2010: (SEP, 10),
724
685
  2011: (AUG, 31),
725
- 2012: (AUG, 19),
726
- 2013: (AUG, 8),
727
- 2014: (JUL, 28),
728
- 2015: (JUL, 17),
729
- 2016: (JUL, 6),
730
- 2017: (JUN, 25),
731
- 2018: (JUN, 15),
732
686
  2019: (JUN, 5),
733
- 2020: (MAY, 24),
734
- 2021: (MAY, 13),
735
- 2022: (MAY, 2),
736
687
  2023: (APR, 22),
737
- 2024: (APR, 10),
738
688
  2025: (MAR, 31),
739
689
  }
740
690
 
691
+ HARI_HOL_JOHOR_DATES_CONFIRMED_YEARS = (2011, 2025)
741
692
  HARI_HOL_JOHOR_DATES = {
742
693
  2011: (JAN, 12),
743
694
  2012: (DEC, 20),
@@ -746,93 +697,48 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
746
697
  2015: (NOV, 19),
747
698
  2016: (NOV, 7),
748
699
  2017: (OCT, 27),
749
- 2018: (OCT, 15),
750
- 2019: (OCT, 5),
751
700
  2020: (SEP, 24),
752
- 2021: (SEP, 13),
753
701
  2022: (SEP, 3),
754
702
  2023: (AUG, 23),
755
703
  2024: (AUG, 11),
756
- 2025: (JUL, 31),
757
704
  }
758
705
 
706
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2001, 2025)
759
707
  HIJRI_NEW_YEAR_DATES = {
760
- 2001: (MAR, 26),
761
- 2002: (MAR, 15),
762
708
  2003: (MAR, 5),
763
709
  2004: (FEB, 22),
764
- 2005: (FEB, 10),
765
- 2006: (JAN, 31),
766
- 2007: (JAN, 20),
767
- 2008: ((JAN, 10), (DEC, 29)),
768
- 2009: (DEC, 18),
769
710
  2010: (DEC, 8),
770
711
  2011: (NOV, 27),
771
- 2012: (NOV, 15),
772
712
  2013: (NOV, 5),
773
- 2014: (OCT, 25),
774
- 2015: (OCT, 14),
775
- 2016: (OCT, 2),
776
713
  2017: (SEP, 22),
777
- 2018: (SEP, 11),
778
714
  2019: (SEP, 1),
779
- 2020: (AUG, 20),
780
715
  2021: (AUG, 10),
781
- 2022: (JUL, 30),
782
- 2023: (JUL, 19),
783
- 2024: (JUL, 7),
784
716
  2025: (JUN, 27),
785
717
  }
786
718
 
719
+ ISRA_AND_MIRAJ_DATES_CONFIRMED_YEARS = (2001, 2025)
787
720
  ISRA_AND_MIRAJ_DATES = {
788
721
  2001: (OCT, 15),
789
- 2002: (OCT, 4),
790
- 2003: (SEP, 24),
791
- 2004: (SEP, 12),
792
- 2005: (SEP, 1),
793
722
  2006: (AUG, 22),
794
723
  2007: (AUG, 11),
795
724
  2008: (JUL, 31),
796
- 2009: (JUL, 20),
797
- 2010: (JUL, 9),
798
- 2011: (JUN, 29),
799
- 2012: (JUN, 17),
800
- 2013: (JUN, 6),
801
725
  2014: (MAY, 27),
802
- 2015: (MAY, 16),
803
726
  2016: (MAY, 5),
804
- 2017: (APR, 24),
805
727
  2018: (APR, 14),
806
- 2019: (APR, 3),
807
- 2020: (MAR, 22),
808
- 2021: (MAR, 11),
809
728
  2022: (MAR, 1),
810
- 2023: (FEB, 18),
811
- 2024: (FEB, 8),
812
- 2025: (JAN, 27),
813
729
  }
814
730
 
731
+ MAWLID_DATES_CONFIRMED_YEARS = (2001, 2025)
815
732
  MAWLID_DATES = {
816
- 2001: (JUN, 4),
817
- 2002: (MAY, 24),
818
733
  2003: (MAY, 14),
819
734
  2004: (MAY, 2),
820
- 2005: (APR, 21),
821
735
  2006: (APR, 11),
822
- 2007: (MAR, 31),
823
- 2008: (MAR, 20),
824
- 2009: (MAR, 9),
825
- 2010: (FEB, 26),
826
736
  2011: (FEB, 16),
827
737
  2012: (FEB, 5),
828
- 2013: (JAN, 24),
829
738
  2014: (JAN, 14),
830
739
  2015: ((JAN, 3), (DEC, 24)),
831
740
  2016: (DEC, 12),
832
741
  2017: (DEC, 1),
833
- 2018: (NOV, 20),
834
- 2019: (NOV, 9),
835
- 2020: (OCT, 29),
836
742
  2021: (OCT, 19),
837
743
  2022: (OCT, 10),
838
744
  2023: (SEP, 28),
@@ -840,58 +746,31 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
840
746
  2025: (SEP, 5),
841
747
  }
842
748
 
749
+ NUZUL_AL_QURAN_DATES_CONFIRMED_YEARS = (2001, 2025)
843
750
  NUZUL_AL_QURAN_DATES = {
844
751
  2001: (DEC, 3),
845
- 2002: (NOV, 22),
846
752
  2003: (NOV, 12),
847
753
  2004: (NOV, 1),
848
754
  2005: (OCT, 21),
849
- 2006: (OCT, 10),
850
- 2007: (SEP, 29),
851
755
  2008: (SEP, 18),
852
- 2009: (SEP, 7),
853
- 2010: (AUG, 27),
854
- 2011: (AUG, 17),
855
- 2012: (AUG, 5),
856
- 2013: (JUL, 25),
857
756
  2014: (JUL, 15),
858
- 2015: (JUL, 4),
859
- 2016: (JUN, 22),
860
- 2017: (JUN, 12),
861
757
  2018: (JUN, 2),
862
- 2019: (MAY, 22),
863
- 2020: (MAY, 10),
864
- 2021: (APR, 29),
865
758
  2022: (APR, 19),
866
- 2023: (APR, 8),
867
759
  2024: (MAR, 28),
868
760
  2025: (MAR, 18),
869
761
  }
870
762
 
763
+ RAMADAN_BEGINNING_DATES_CONFIRMED_YEARS = (2001, 2025)
871
764
  RAMADAN_BEGINNING_DATES = {
872
765
  2001: (NOV, 17),
873
- 2002: (NOV, 6),
874
766
  2003: (OCT, 27),
875
767
  2004: (OCT, 16),
876
768
  2005: (OCT, 5),
877
- 2006: (SEP, 24),
878
- 2007: (SEP, 13),
879
769
  2008: (SEP, 2),
880
- 2009: (AUG, 22),
881
- 2010: (AUG, 11),
882
- 2011: (AUG, 1),
883
- 2012: (JUL, 20),
884
- 2013: (JUL, 9),
885
770
  2014: (JUN, 29),
886
- 2015: (JUN, 18),
887
771
  2016: (JUN, 7),
888
- 2017: (MAY, 27),
889
772
  2018: (MAY, 17),
890
- 2019: (MAY, 6),
891
- 2020: (APR, 24),
892
- 2021: (APR, 13),
893
773
  2022: (APR, 3),
894
- 2023: (MAR, 23),
895
774
  2024: (MAR, 12),
896
775
  2025: (MAR, 2),
897
776
  }
@@ -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, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
16
+ from holidays.calendars.gregorian import JAN, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
17
17
  from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
18
18
  from holidays.holiday_base import HolidayBase
19
19
 
@@ -107,43 +107,38 @@ class MLI(Mali):
107
107
 
108
108
  class MaliIslamicHolidays(_CustomIslamicHolidays):
109
109
  # https://web.archive.org/web/20250619042440/https://www.timeanddate.com/holidays/mali/eid-al-adha
110
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2015, 2025)
110
111
  EID_AL_ADHA_DATES = {
111
112
  2015: (SEP, 24),
112
113
  2016: (SEP, 13),
113
114
  2017: (SEP, 2),
114
115
  2018: (AUG, 22),
115
- 2019: (AUG, 11),
116
- 2020: (JUL, 31),
117
116
  2021: (JUL, 21),
118
- 2022: (JUL, 9),
119
- 2023: (JUN, 28),
120
117
  2024: (JUN, 17),
121
118
  2025: (JUN, 7),
122
119
  }
123
120
 
124
121
  # https://web.archive.org/web/20250318001443/https://www.timeanddate.com/holidays/mali/eid-al-fitr
122
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2015, 2025)
125
123
  EID_AL_FITR_DATES = {
126
124
  2015: (JUL, 18),
127
125
  2016: (JUL, 7),
128
126
  2017: (JUN, 26),
129
- 2018: (JUN, 15),
130
127
  2019: (JUN, 3),
131
128
  2020: (MAY, 23),
132
129
  2021: (MAY, 12),
133
130
  2022: (MAY, 1),
134
- 2023: (APR, 21),
135
131
  2024: (APR, 9),
136
- 2025: (MAR, 30),
137
132
  }
138
133
 
139
134
  # https://web.archive.org/web/20240424165412/https://www.timeanddate.com/holidays/mali/prophet-birthday
135
+ MAWLID_DATES_CONFIRMED_YEARS = (2015, 2024)
140
136
  MAWLID_DATES = {
141
137
  2015: ((JAN, 3), (DEC, 24)),
142
138
  2016: (DEC, 12),
143
139
  2017: (DEC, 1),
144
140
  2018: (NOV, 21),
145
141
  2019: (NOV, 10),
146
- 2020: (OCT, 29),
147
142
  2021: (OCT, 19),
148
143
  2022: (OCT, 9),
149
144
  2023: (SEP, 28),
@@ -165,12 +165,11 @@ class MauritiusHinduHolidays(_CustomHinduHolidays):
165
165
 
166
166
  class MauritiusIslamicHolidays(_CustomIslamicHolidays):
167
167
  # https://web.archive.org/web/20250420201326/https://www.timeanddate.com/holidays/mauritius/eid-al-fitr
168
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2016, 2025)
168
169
  EID_AL_FITR_DATES = {
169
- 2016: (JUL, 6),
170
170
  2017: (JUN, 26),
171
171
  2018: (JUN, 16),
172
172
  2019: (JUN, 5),
173
- 2020: (MAY, 24),
174
173
  2021: (MAY, 14),
175
174
  2022: (MAY, 3),
176
175
  2023: (APR, 22),
@@ -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, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
16
+ from holidays.calendars.gregorian import GREGORIAN_CALENDAR, JUN, JUL, AUG, SEP, OCT, NOV
17
17
  from holidays.calendars.julian import JULIAN_CALENDAR
18
18
  from holidays.constants import CATHOLIC, HEBREW, ISLAMIC, ORTHODOX, PUBLIC, WORKDAY
19
19
  from holidays.groups import (
@@ -164,36 +164,21 @@ class MNE(Montenegro):
164
164
 
165
165
 
166
166
  class MontenegroIslamicHolidays(_CustomIslamicHolidays):
167
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2012, 2024)
167
168
  EID_AL_ADHA_DATES = {
168
- 2012: (OCT, 26),
169
- 2013: (OCT, 15),
170
169
  2014: (OCT, 5),
171
170
  2015: (SEP, 24),
172
171
  2016: (SEP, 13),
173
172
  2017: (SEP, 2),
174
173
  2018: (AUG, 22),
175
- 2019: (AUG, 11),
176
- 2020: (JUL, 31),
177
- 2021: (JUL, 20),
178
- 2022: (JUL, 9),
179
- 2023: (JUN, 28),
180
- 2024: (JUN, 16),
181
174
  }
182
175
 
176
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2012, 2024)
183
177
  EID_AL_FITR_DATES = {
184
- 2012: (AUG, 19),
185
- 2013: (AUG, 8),
186
178
  2014: (JUL, 29),
187
179
  2015: (JUL, 18),
188
180
  2016: (JUL, 7),
189
181
  2017: (JUN, 26),
190
- 2018: (JUN, 15),
191
- 2019: (JUN, 4),
192
- 2020: (MAY, 24),
193
- 2021: (MAY, 13),
194
- 2022: (MAY, 2),
195
- 2023: (APR, 21),
196
- 2024: (APR, 10),
197
182
  }
198
183
 
199
184
 
@@ -292,46 +292,12 @@ class Nepal(
292
292
  self._add_non_continuous_holidays(is_workday=True)
293
293
 
294
294
 
295
- class NepalIslamicHolidays(_CustomIslamicHolidays):
296
- # Bakrid / Eid-al-Adha.
297
- EID_AL_ADHA_DATES = {
298
- 2010: (NOV, 17),
299
- 2011: (NOV, 7),
300
- 2012: (OCT, 27),
301
- 2013: (OCT, 16),
302
- 2014: (OCT, 6),
303
- 2015: (SEP, 25),
304
- 2016: (SEP, 13),
305
- 2017: (SEP, 2),
306
- 2018: (AUG, 22),
307
- 2019: (AUG, 12),
308
- 2020: (AUG, 1),
309
- 2021: (JUL, 21),
310
- 2022: (JUL, 10),
311
- 2023: (JUN, 29),
312
- 2024: (JUN, 17),
313
- 2025: (JUN, 7),
314
- }
295
+ class NP(Nepal):
296
+ pass
315
297
 
316
- # Id-ul-Fitr / Eid-al-Fitr.
317
- EID_AL_FITR_DATES = {
318
- 2010: (SEP, 10),
319
- 2011: (AUG, 31),
320
- 2012: (AUG, 20),
321
- 2013: (AUG, 8),
322
- 2014: (JUL, 29),
323
- 2015: (JUL, 18),
324
- 2016: (JUL, 7),
325
- 2017: (JUN, 26),
326
- 2018: (JUN, 16),
327
- 2019: (JUN, 5),
328
- 2020: (MAY, 25),
329
- 2021: (MAY, 14),
330
- 2022: (MAY, 3),
331
- 2023: (APR, 22),
332
- 2024: (APR, 11),
333
- 2025: (MAR, 31),
334
- }
298
+
299
+ class NPL(Nepal):
300
+ pass
335
301
 
336
302
 
337
303
  class NepalHinduHolidays(_CustomHinduHolidays):
@@ -398,12 +364,44 @@ class NepalHinduHolidays(_CustomHinduHolidays):
398
364
  }
399
365
 
400
366
 
401
- class NP(Nepal):
402
- pass
403
-
367
+ class NepalIslamicHolidays(_CustomIslamicHolidays):
368
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2010, 2025)
369
+ EID_AL_ADHA_DATES = {
370
+ 2010: (NOV, 17),
371
+ 2011: (NOV, 7),
372
+ 2012: (OCT, 27),
373
+ 2013: (OCT, 16),
374
+ 2014: (OCT, 6),
375
+ 2015: (SEP, 25),
376
+ 2016: (SEP, 13),
377
+ 2017: (SEP, 2),
378
+ 2018: (AUG, 22),
379
+ 2019: (AUG, 12),
380
+ 2020: (AUG, 1),
381
+ 2021: (JUL, 21),
382
+ 2022: (JUL, 10),
383
+ 2023: (JUN, 29),
384
+ 2024: (JUN, 17),
385
+ 2025: (JUN, 7),
386
+ }
404
387
 
405
- class NPL(Nepal):
406
- pass
388
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2010, 2025)
389
+ EID_AL_FITR_DATES = {
390
+ 2011: (AUG, 31),
391
+ 2012: (AUG, 20),
392
+ 2014: (JUL, 29),
393
+ 2015: (JUL, 18),
394
+ 2016: (JUL, 7),
395
+ 2017: (JUN, 26),
396
+ 2018: (JUN, 16),
397
+ 2019: (JUN, 5),
398
+ 2020: (MAY, 25),
399
+ 2021: (MAY, 14),
400
+ 2022: (MAY, 3),
401
+ 2023: (APR, 22),
402
+ 2024: (APR, 11),
403
+ 2025: (MAR, 31),
404
+ }
407
405
 
408
406
 
409
407
  class NepalStaticHolidays: