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,276 @@
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 gettext import gettext as tr
14
+
15
+ from holidays.calendars import _CustomIslamicHolidays
16
+ from holidays.calendars.gregorian import JAN, MAR, JUN, JUL, AUG, SEP, OCT, NOV, DEC, FRI, SAT
17
+ from holidays.constants import CHRISTIAN, HEBREW, PUBLIC, SABIAN, YAZIDI
18
+ from holidays.groups import (
19
+ ChristianHolidays,
20
+ HebrewCalendarHolidays,
21
+ InternationalHolidays,
22
+ IslamicHolidays,
23
+ MandaeanHolidays,
24
+ )
25
+ from holidays.holiday_base import HolidayBase
26
+
27
+
28
+ class Iraq(
29
+ HolidayBase,
30
+ ChristianHolidays,
31
+ HebrewCalendarHolidays,
32
+ InternationalHolidays,
33
+ IslamicHolidays,
34
+ MandaeanHolidays,
35
+ ):
36
+ """Iraq holidays.
37
+
38
+ References:
39
+ - [Law No. 10 of 1963](https://web.archive.org/web/20200220135833/http://wiki.dorar-aliraq.net:80/iraqilaws/law/1447.html)
40
+ - [1968 Amendment to Law No. 10 of 1963](https://web.archive.org/web/20250730075454/https://wiki.dorar-aliraq.net/iraqilaws/law/18741.html)
41
+ - [Law No. 110 of 1972](https://web.archive.org/web/20240820010527/https://wiki.dorar-aliraq.net/iraqilaws/law/5663.html)
42
+ - [1973 Amendment to Law No. 110 of 1972](https://web.archive.org/web/20250730080337/https://wiki.dorar-aliraq.net/iraqilaws/law/6165.html)
43
+ - [Official Holiday Law 2024](https://web.archive.org/web/20250629123214/https://natlex.ilo.org/dyn/natlex2/natlex2/files/download/116577/قانون%20العطل%20الرسمية%20-%20Copy%20-%20Copy_396.pdf)
44
+ """
45
+
46
+ country = "IQ"
47
+ default_language = "ar"
48
+ # %s (estimated).
49
+ estimated_label = tr("%s (المقدرة)")
50
+ start_year = 1964
51
+ supported_categories = (CHRISTIAN, HEBREW, PUBLIC, SABIAN, YAZIDI)
52
+ supported_languages = ("ar", "en_US")
53
+ weekend = {FRI, SAT}
54
+
55
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
56
+ """
57
+ Args:
58
+ islamic_show_estimated:
59
+ Whether to add "estimated" label to Islamic holidays name
60
+ if holiday date is estimated.
61
+ """
62
+ ChristianHolidays.__init__(self)
63
+ HebrewCalendarHolidays.__init__(self)
64
+ InternationalHolidays.__init__(self)
65
+ IslamicHolidays.__init__(
66
+ self, cls=IraqIslamicHolidays, show_estimated=islamic_show_estimated
67
+ )
68
+ MandaeanHolidays.__init__(self)
69
+ super().__init__(*args, **kwargs)
70
+
71
+ def _populate_public_holidays(self):
72
+ if self._year >= 1973:
73
+ # New Year's Day.
74
+ self._add_new_years_day(tr("رأس السنة الميلادية"))
75
+
76
+ # Army Day.
77
+ self._add_holiday_jan_6(tr("عيد الجيش"))
78
+
79
+ if self._year <= 2024:
80
+ # February 8 Revolution.
81
+ self._add_holiday_feb_8(tr("ثورة 8 شباط"))
82
+
83
+ if self._year >= 2025:
84
+ # Commemoration of the Saddam Baath crimes against the Iraqi people.
85
+ self._add_holiday_mar_16(tr("ذكرى جرائم البعث والأنفال والهجوم على حلبجة"))
86
+
87
+ if self._year >= 1969:
88
+ # Nowruz.
89
+ self._add_holiday_mar_21(tr("عيد نوروز"))
90
+
91
+ # Labor Day.
92
+ self._add_labor_day(tr("عيد العمال العالمي"))
93
+
94
+ if self._year <= 2023:
95
+ # July 14 Revolution.
96
+ self._add_holiday_jul_14(tr("ثورة 14 تموز"))
97
+
98
+ if 1969 <= self._year <= 2023:
99
+ # July 17 Revolution.
100
+ self._add_holiday_jul_17(tr("ثورة 17 تموز"))
101
+
102
+ # Islamic New Year.
103
+ self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
104
+
105
+ # Ashura.
106
+ self._add_ashura_day(tr("عاشوراء"))
107
+
108
+ # Prophet's Birthday.
109
+ self._add_mawlid_day(tr("المولد النبوي الشريف"))
110
+
111
+ # Eid al-Fitr.
112
+ name = tr("عيد الفطر")
113
+ self._add_eid_al_fitr_day(name)
114
+ self._add_eid_al_fitr_day_two(name)
115
+ self._add_eid_al_fitr_day_three(name)
116
+
117
+ # Day of Arafah.
118
+ self._add_arafah_day(tr("يوم عرفة"))
119
+
120
+ # Eid al-Adha.
121
+ name = tr("عيد الأضحى")
122
+ self._add_eid_al_adha_day(name)
123
+ self._add_eid_al_adha_day_two(name)
124
+ self._add_eid_al_adha_day_three(name)
125
+
126
+ if self._year >= 2024:
127
+ # Eid al-Ghadir.
128
+ self._add_eid_al_ghadir_day(tr("عيد الغدير"))
129
+
130
+ def _populate_christian_holidays(self):
131
+ if self._year <= 1972:
132
+ # New Year's Day.
133
+ self._add_new_years_day(tr("رأس السنة الميلادية"))
134
+
135
+ # Easter Sunday.
136
+ self._add_easter_sunday(tr("أحد الفصح"))
137
+
138
+ # Easter Monday.
139
+ self._add_easter_monday(tr("إثنين الفصح"))
140
+
141
+ # Christmas Day.
142
+ self._add_christmas_day(tr("عيد الميلاد"))
143
+
144
+ def _populate_hebrew_holidays(self):
145
+ if self._year <= 2023:
146
+ # Pesach.
147
+ self._add_passover(tr("عيد الفصح"), range(2))
148
+
149
+ # Yom Kippur.
150
+ self._add_yom_kippur(tr("يوم الكفارة"))
151
+
152
+ # Sukkot.
153
+ self._add_sukkot(tr("عيد المظلة"), range(2))
154
+
155
+ def _populate_sabian_holidays(self):
156
+ if self._year <= 1972:
157
+ return None
158
+
159
+ # Great Feast.
160
+ name = tr("يوما عيد البنجة")
161
+ self._add_great_feast_day(name)
162
+ self._add_great_feast_day_two(name)
163
+ if self._year >= 2024:
164
+ self._add_great_feast_day_three(name)
165
+ self._add_great_feast_day_four(name)
166
+
167
+ # Feast of Creation.
168
+ name = tr("عيد الخليقة")
169
+ self._add_parwanaya_day(name)
170
+ self._add_parwanaya_day_two(name)
171
+ if self._year >= 2024:
172
+ self._add_parwanaya_day_three(name)
173
+ self._add_parwanaya_day_four(name)
174
+ self._add_parwanaya_day_five(name)
175
+
176
+ # Little Feast.
177
+ name = tr("عيد الصغير")
178
+ self._add_dehwa_hanina_day(name)
179
+ if self._year >= 2024:
180
+ self._add_dehwa_hanina_day_two(name)
181
+
182
+ # Prophet Yahya's Birthday.
183
+ self._add_dehwa_daimana_day(tr("مولد النبي يحيى عليه السلام"))
184
+
185
+ def _populate_yazidi_holidays(self):
186
+ # Yazidi New Year.
187
+ self._add_holiday_1st_wed_from_apr_14(tr("رأس السنة الإيزيدية"))
188
+
189
+ # Yazidi Summer Festival.
190
+ name = tr("مهرجان الصيف اليزيدي")
191
+ if self._year <= 2023:
192
+ self._add_holiday_jul_31(name)
193
+ self._add_holiday_aug_1(name)
194
+ self._add_holiday_aug_2(name)
195
+ self._add_holiday_aug_3(name)
196
+
197
+ # Feast of the Assembly.
198
+ name = tr("عيد الجمعية")
199
+ self._add_holiday_oct_6(name)
200
+ self._add_holiday_oct_7(name)
201
+ self._add_holiday_oct_8(name)
202
+ self._add_holiday_oct_9(name)
203
+ self._add_holiday_oct_10(name)
204
+ self._add_holiday_oct_11(name)
205
+ self._add_holiday_oct_12(name)
206
+ self._add_holiday_oct_13(name)
207
+
208
+ # Feast of Êzî.
209
+ self._add_holiday_1st_fri_from_dec_14(tr("عيد إيزي"))
210
+
211
+
212
+ class IQ(Iraq):
213
+ pass
214
+
215
+
216
+ class IRQ(Iraq):
217
+ pass
218
+
219
+
220
+ class IraqIslamicHolidays(_CustomIslamicHolidays):
221
+ # https://web.archive.org/web/20240908214306/https://www.timeanddate.com/holidays/iraq/ashura
222
+ ASHURA_DATES_CONFIRMED_YEARS = (2013, 2025)
223
+ ASHURA_DATES = {
224
+ 2013: (NOV, 14),
225
+ 2015: (OCT, 24),
226
+ 2016: (OCT, 12),
227
+ 2017: (OCT, 1),
228
+ 2019: (SEP, 10),
229
+ 2020: (AUG, 30),
230
+ 2021: (AUG, 19),
231
+ 2023: (JUL, 29),
232
+ }
233
+
234
+ # https://web.archive.org/web/20250524093010/https://www.timeanddate.com/holidays/iraq/eid-al-adha
235
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2013, 2025)
236
+ EID_AL_ADHA_DATES = {
237
+ 2015: (SEP, 24),
238
+ 2016: (SEP, 13),
239
+ 2017: (SEP, 2),
240
+ 2018: (AUG, 22),
241
+ 2019: (AUG, 12),
242
+ }
243
+
244
+ # https://web.archive.org/web/20250514061230/https://www.timeanddate.com/holidays/iraq/eid-al-fitr
245
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2013, 2025)
246
+ EID_AL_FITR_DATES = {
247
+ 2015: (JUL, 18),
248
+ 2016: (JUL, 7),
249
+ 2017: (JUN, 26),
250
+ 2025: (MAR, 31),
251
+ }
252
+
253
+ # https://web.archive.org/web/20241009070642/https://www.timeanddate.com/holidays/iraq/eid-al-ghadeer
254
+ EID_AL_GHADIR_DATES_CONFIRMED_YEARS = (2024, 2025)
255
+ EID_AL_GHADIR_DATES = {
256
+ 2025: (JUN, 15),
257
+ }
258
+
259
+ # https://web.archive.org/web/20240720191242/https://www.timeanddate.com/holidays/iraq/islamic-new-year
260
+ HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2013, 2025)
261
+ HIJRI_NEW_YEAR_DATES = {
262
+ 2013: (NOV, 5),
263
+ 2015: (OCT, 15),
264
+ 2016: (OCT, 3),
265
+ 2017: (SEP, 22),
266
+ 2020: (AUG, 21),
267
+ }
268
+
269
+ # https://web.archive.org/web/20240918050148/https://www.timeanddate.com/holidays/iraq/prophet-birthday
270
+ MAWLID_DATES_CONFIRMED_YEARS = (2013, 2025)
271
+ MAWLID_DATES = {
272
+ 2014: (JAN, 14),
273
+ 2016: (DEC, 12),
274
+ 2017: (DEC, 1),
275
+ 2018: (NOV, 21),
276
+ }
@@ -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, MAR, APR, MAY, JUL, AUG, SEP, OCT, DEC
17
17
  from holidays.calendars.julian import JULIAN_CALENDAR
18
18
  from holidays.groups import (
19
19
  ChristianHolidays,
@@ -146,27 +146,11 @@ class KAZ(Kazakhstan):
146
146
 
147
147
 
148
148
  class KazakhstanIslamicHolidays(_CustomIslamicHolidays):
149
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2006, 2025)
149
150
  EID_AL_ADHA_DATES = {
150
151
  2006: (JAN, 10),
151
- 2007: (DEC, 20),
152
- 2008: (DEC, 8),
153
- 2009: (NOV, 27),
154
- 2010: (NOV, 16),
155
- 2011: (NOV, 6),
156
- 2012: (OCT, 26),
157
- 2013: (OCT, 15),
158
- 2014: (OCT, 4),
159
152
  2015: (SEP, 24),
160
153
  2016: (SEP, 12),
161
- 2017: (SEP, 1),
162
- 2018: (AUG, 21),
163
- 2019: (AUG, 11),
164
- 2020: (JUL, 31),
165
- 2021: (JUL, 20),
166
- 2022: (JUL, 9),
167
- 2023: (JUN, 28),
168
- 2024: (JUN, 16),
169
- 2025: (JUN, 6),
170
154
  }
171
155
 
172
156
 
@@ -174,32 +174,26 @@ class KenyaHinduHolidays(_CustomHinduHolidays):
174
174
 
175
175
 
176
176
  class KenyaIslamicHolidays(_CustomIslamicHolidays):
177
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2024)
177
178
  EID_AL_ADHA_DATES = {
178
179
  2014: (OCT, 6),
179
180
  2015: (SEP, 24),
180
181
  2016: (SEP, 12),
181
- 2017: (SEP, 1),
182
- 2018: (AUG, 21),
183
182
  2019: (AUG, 12),
184
- 2020: (JUL, 31),
185
- 2021: (JUL, 20),
186
183
  2022: (JUL, 11),
187
- 2023: (JUN, 28),
188
184
  2024: (JUN, 17),
189
185
  }
190
186
 
187
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2024)
191
188
  EID_AL_FITR_DATES = {
192
189
  2014: (JUL, 29),
193
190
  2015: (JUL, 18),
194
191
  2016: (JUL, 7),
195
192
  2017: (JUN, 26),
196
- 2018: (JUN, 15),
197
193
  2019: (JUN, 5),
198
194
  2020: (MAY, 25),
199
195
  2021: (MAY, 14),
200
196
  2022: (MAY, 3),
201
- 2023: (APR, 21),
202
- 2024: (APR, 10),
203
197
  }
204
198
 
205
199
 
@@ -0,0 +1,124 @@
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.observed_holiday_base import (
15
+ ObservedHolidayBase,
16
+ SAT_SUN_TO_NEXT_MON,
17
+ SAT_SUN_TO_NEXT_MON_TUE,
18
+ )
19
+
20
+
21
+ class Kiribati(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
22
+ """Kiribati holidays.
23
+
24
+ References:
25
+ * [Public Holidays Ordinance](https://web.archive.org/web/20250130150749/https://www.paclii.org/ki/legis/consol_act/pho216/)
26
+ * [Public Holidays (Amendment) Act 2002](https://web.archive.org/web/20250130161614/https://www.paclii.org/ki/legis/num_act/pha2002243/)
27
+ * [Public Holidays Act Consolidated](https://web.archive.org/web/20250404213705/https://www.paclii.org/ki/legis/consol_act/pho216.pdf)
28
+
29
+ Note:
30
+ The 2025 holidays list for Kiribati
31
+ (http://web.archive.org/web/20250808191339/https://www.pso.gov.ki/kiribati-national-public-holidays-2025/)
32
+ mentions the following holidays even though they do not appear in the law:
33
+ Labor Day, National Culture and Senior Citizens Day, National Police Day, and World
34
+ Teachers' Day.
35
+
36
+ Additionally, the list shows that traditional holidays (International Women's Day,
37
+ Labor Day, Gospel Day, and Human Rights and Peace Day) were celebrated on different
38
+ dates than usual, seemingly shifting Thursday/Saturday holidays to the adjacent Friday.
39
+ No legal provision or start year was cited for this adjustment.
40
+ """
41
+
42
+ country = "KI"
43
+ observed_label = "%s (observed)"
44
+ start_year = 1980
45
+
46
+ def __init__(self, *args, **kwargs):
47
+ ChristianHolidays.__init__(self)
48
+ InternationalHolidays.__init__(self)
49
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
50
+ super().__init__(*args, **kwargs)
51
+
52
+ def _populate_public_holidays(self):
53
+ # New Year's Day.
54
+ self._add_observed(self._add_new_years_day("New Year's Day"))
55
+
56
+ if self._year >= 2003:
57
+ # International Women's Day.
58
+ self._add_observed(self._add_womens_day("International Women's Day"))
59
+
60
+ # Good Friday.
61
+ self._add_good_friday("Good Friday")
62
+
63
+ if self._year <= 2002:
64
+ # Holy Saturday.
65
+ self._add_holy_saturday("Holy Saturday")
66
+
67
+ # Easter Monday.
68
+ self._add_easter_monday("Easter Monday")
69
+
70
+ if self._year >= 2003:
71
+ # National Health Day.
72
+ self._add_observed(self._add_holiday_apr_19("National Health Day"))
73
+
74
+ if 1993 <= self._year <= 2002:
75
+ # Public Holiday.
76
+ self._add_observed(self._add_holiday_may_9("Public Holiday"))
77
+
78
+ if self._year >= 2002:
79
+ # Gospel Day.
80
+ self._add_holiday_jul_11("Gospel Day")
81
+
82
+ if self._year >= 1993:
83
+ # National Day - Independence Anniversary.
84
+ self._add_observed(self._add_holiday_jul_12("National Day - Independence Anniversary"))
85
+
86
+ if self._year >= 2002:
87
+ # National Day (in honor of Unimwane).
88
+ self._add_holiday_jul_15("National Day (in honor of Unimwane)")
89
+ # National Day (in honor of Unaine).
90
+ self._add_observed(self._add_holiday_jul_16("National Day (in honor of Unaine)"))
91
+
92
+ if self._year <= 2002:
93
+ # Public Holiday.
94
+ self._add_holiday_1st_mon_of_aug("Public Holiday")
95
+ else:
96
+ # Youth Day.
97
+ self._add_observed(self._add_holiday_aug_5("Youth Day"))
98
+
99
+ if self._year <= 1992:
100
+ # Public Holiday.
101
+ self._add_observed(self._add_holiday_nov_10("Public Holiday"))
102
+
103
+ if self._year >= 1993:
104
+ # Human Rights and Peace Day.
105
+ name = "Human Rights and Peace Day"
106
+ self._add_observed(
107
+ self._add_holiday_dec_9(name)
108
+ if self._year >= 2003
109
+ else self._add_holiday_dec_10(name)
110
+ )
111
+
112
+ # Christmas Day.
113
+ self._add_observed(self._add_christmas_day("Christmas Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
114
+
115
+ # Boxing Day.
116
+ self._add_observed(self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
117
+
118
+
119
+ class KI(Kiribati):
120
+ pass
121
+
122
+
123
+ class KIR(Kiribati):
124
+ pass
@@ -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
  }