holidays 0.66__py3-none-any.whl → 0.68__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.
- holidays/calendars/chinese.py +1 -1
- holidays/countries/__init__.py +2 -0
- holidays/countries/australia.py +6 -6
- holidays/countries/azerbaijan.py +18 -2
- holidays/countries/cambodia.py +1 -1
- holidays/countries/chile.py +1 -1
- holidays/countries/cuba.py +1 -1
- holidays/countries/denmark.py +1 -1
- holidays/countries/finland.py +19 -19
- holidays/countries/greenland.py +22 -19
- holidays/countries/guatemala.py +1 -1
- holidays/countries/haiti.py +3 -3
- holidays/countries/hongkong.py +124 -174
- holidays/countries/isle_of_man.py +15 -11
- holidays/countries/kazakhstan.py +1 -1
- holidays/countries/kenya.py +201 -45
- holidays/countries/laos.py +2 -2
- holidays/countries/malaysia.py +21 -3
- holidays/countries/nicaragua.py +1 -1
- holidays/countries/panama.py +69 -31
- holidays/countries/peru.py +1 -1
- holidays/countries/saint_lucia.py +88 -0
- holidays/countries/seychelles.py +4 -4
- holidays/countries/singapore.py +1 -1
- holidays/countries/spain.py +9 -9
- holidays/countries/sri_lanka.py +1 -1
- holidays/countries/switzerland.py +1 -1
- holidays/countries/tuvalu.py +174 -0
- holidays/countries/united_kingdom.py +72 -56
- holidays/countries/united_states.py +141 -10
- holidays/countries/uruguay.py +1 -1
- holidays/financial/brasil_bolsa_balcao.py +1 -1
- holidays/holiday_base.py +62 -13
- holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_KE/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/en_LC/LC_MESSAGES/LC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UY.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/fi/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/is/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/no/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/tvl/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MG.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/RO.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/registry.py +2 -0
- holidays/version.py +1 -1
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/AUTHORS +1 -0
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/METADATA +35 -19
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/RECORD +100 -71
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/WHEEL +1 -1
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/LICENSE +0 -0
- {holidays-0.66.dist-info → holidays-0.68.dist-info}/top_level.txt +0 -0
holidays/countries/kenya.py
CHANGED
|
@@ -10,65 +10,134 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from
|
|
14
|
-
|
|
15
|
-
from holidays.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomHinduHolidays, _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import FEB, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
17
|
+
from holidays.constants import HINDU, ISLAMIC, PUBLIC
|
|
18
|
+
from holidays.groups import (
|
|
19
|
+
ChristianHolidays,
|
|
20
|
+
HinduCalendarHolidays,
|
|
21
|
+
InternationalHolidays,
|
|
22
|
+
IslamicHolidays,
|
|
23
|
+
StaticHolidays,
|
|
24
|
+
)
|
|
25
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_WORKDAY
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Kenya(
|
|
29
|
+
ObservedHolidayBase,
|
|
30
|
+
ChristianHolidays,
|
|
31
|
+
HinduCalendarHolidays,
|
|
32
|
+
InternationalHolidays,
|
|
33
|
+
IslamicHolidays,
|
|
34
|
+
StaticHolidays,
|
|
35
|
+
):
|
|
19
36
|
"""
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
37
|
+
References:
|
|
38
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Kenya
|
|
39
|
+
- `Public Holidays Act Cap. 110 <https://new.kenyalaw.org/akn/ke/act/1912/21/eng@2024-04-26>`_
|
|
40
|
+
- `Constitution of Kenya (Art. 9) <https://new.kenyalaw.org/akn/ke/act/2010/constitution/eng@2010-09-03#chp_Two__sec_9>`_
|
|
23
41
|
"""
|
|
24
42
|
|
|
25
43
|
country = "KE"
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
default_language = "en_KE"
|
|
45
|
+
# %s (estimated).
|
|
46
|
+
estimated_label = tr("%s (estimated)")
|
|
47
|
+
# %s (observed).
|
|
48
|
+
observed_label = tr("%s (observed)")
|
|
49
|
+
# %s (observed, estimated).
|
|
50
|
+
observed_estimated_label = tr("%s (observed, estimated)")
|
|
51
|
+
supported_categories = (HINDU, ISLAMIC, PUBLIC)
|
|
52
|
+
supported_languages = ("en_KE", "en_US", "sw")
|
|
53
|
+
# Kenya gained independence on December 12, 1963.
|
|
54
|
+
start_year = 1964
|
|
28
55
|
|
|
29
56
|
def __init__(self, *args, **kwargs):
|
|
30
57
|
ChristianHolidays.__init__(self)
|
|
58
|
+
HinduCalendarHolidays.__init__(self, cls=KenyaHinduHolidays)
|
|
31
59
|
InternationalHolidays.__init__(self)
|
|
60
|
+
IslamicHolidays.__init__(self, cls=KenyaIslamicHolidays)
|
|
32
61
|
StaticHolidays.__init__(self, cls=KenyaStaticHolidays)
|
|
33
|
-
kwargs.setdefault("observed_rule",
|
|
62
|
+
kwargs.setdefault("observed_rule", SUN_TO_NEXT_WORKDAY)
|
|
63
|
+
kwargs.setdefault("observed_since", 1985)
|
|
34
64
|
super().__init__(*args, **kwargs)
|
|
35
65
|
|
|
36
66
|
def _populate_public_holidays(self):
|
|
37
|
-
|
|
38
|
-
|
|
67
|
+
dts_observed = set()
|
|
68
|
+
|
|
69
|
+
# New Year's Day.
|
|
70
|
+
dts_observed.add(self._add_new_years_day(tr("New Year's Day")))
|
|
71
|
+
|
|
72
|
+
# Good Friday.
|
|
73
|
+
self._add_good_friday(tr("Good Friday"))
|
|
74
|
+
|
|
75
|
+
# Easter Monday.
|
|
76
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
77
|
+
|
|
78
|
+
# Labor Day.
|
|
79
|
+
dts_observed.add(self._add_labor_day(tr("Labour Day")))
|
|
80
|
+
|
|
81
|
+
if self._year >= 2011:
|
|
82
|
+
# Madaraka Day.
|
|
83
|
+
dts_observed.add(self._add_holiday_jun_1(tr("Madaraka Day")))
|
|
84
|
+
|
|
85
|
+
if 1990 <= self._year <= 2009 or self._year >= 2018:
|
|
86
|
+
if self._year >= 2025:
|
|
87
|
+
# Mazingira Day.
|
|
88
|
+
name = tr("Mazingira Day")
|
|
89
|
+
elif self._year >= 2021:
|
|
90
|
+
# Utamaduni Day.
|
|
91
|
+
name = tr("Utamaduni Day")
|
|
92
|
+
else:
|
|
93
|
+
# Moi Day.
|
|
94
|
+
name = tr("Moi Day")
|
|
95
|
+
dts_observed.add(self._add_holiday_oct_10(name))
|
|
96
|
+
|
|
97
|
+
dts_observed.add(
|
|
98
|
+
self._add_holiday_oct_20(
|
|
99
|
+
# Mashujaa Day.
|
|
100
|
+
tr("Mashujaa Day")
|
|
101
|
+
if self._year >= 2011
|
|
102
|
+
# Kenyatta Day.
|
|
103
|
+
else tr("Kenyatta Day")
|
|
104
|
+
)
|
|
105
|
+
)
|
|
39
106
|
|
|
40
|
-
|
|
41
|
-
|
|
107
|
+
dts_observed.add(
|
|
108
|
+
self._add_holiday_dec_12(
|
|
109
|
+
# Jamhuri Day.
|
|
110
|
+
tr("Jamhuri Day")
|
|
111
|
+
if self._year >= 2011
|
|
112
|
+
# Independence Day.
|
|
113
|
+
else tr("Independence Day")
|
|
114
|
+
)
|
|
115
|
+
)
|
|
42
116
|
|
|
43
|
-
#
|
|
44
|
-
self.
|
|
117
|
+
# Christmas Day.
|
|
118
|
+
dts_observed.add(self._add_christmas_day(tr("Christmas Day")))
|
|
45
119
|
|
|
46
|
-
#
|
|
47
|
-
|
|
120
|
+
# Boxing Day.
|
|
121
|
+
dts_observed.add(self._add_christmas_day_two(tr("Boxing Day")))
|
|
48
122
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
self._add_observed(self._add_holiday_jun_1("Madaraka Day"))
|
|
123
|
+
# Eid-al-Fitr.
|
|
124
|
+
dts_observed.update(self._add_eid_al_fitr_day(tr("Idd-ul-Fitr")))
|
|
52
125
|
|
|
53
|
-
if
|
|
54
|
-
self.
|
|
55
|
-
# Utamaduni/Moi Day
|
|
56
|
-
self._add_holiday_oct_10("Utamaduni Day" if self._year >= 2021 else "Moi Day")
|
|
57
|
-
)
|
|
126
|
+
if self.observed:
|
|
127
|
+
self._populate_observed(dts_observed)
|
|
58
128
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
self._add_holiday_oct_20("Mashujaa Day" if self._year >= 2010 else "Kenyatta Day")
|
|
62
|
-
)
|
|
129
|
+
def _populate_hindu_holidays(self):
|
|
130
|
+
"""Additional Hindu public holidays."""
|
|
63
131
|
|
|
64
|
-
|
|
65
|
-
|
|
132
|
+
if self._year >= 1984:
|
|
133
|
+
# Diwali.
|
|
134
|
+
self._add_diwali(tr("Diwali"))
|
|
66
135
|
|
|
67
|
-
|
|
68
|
-
|
|
136
|
+
def _populate_islamic_holidays(self):
|
|
137
|
+
"""Additional Islamic public holidays."""
|
|
69
138
|
|
|
70
|
-
#
|
|
71
|
-
self.
|
|
139
|
+
# Eid-al-Adha.
|
|
140
|
+
self._add_eid_al_adha_day(tr("Idd-ul-Azha"))
|
|
72
141
|
|
|
73
142
|
|
|
74
143
|
class KE(Kenya):
|
|
@@ -79,15 +148,102 @@ class KEN(Kenya):
|
|
|
79
148
|
pass
|
|
80
149
|
|
|
81
150
|
|
|
151
|
+
class KenyaHinduHolidays(_CustomHinduHolidays):
|
|
152
|
+
DIWALI_DATES = {
|
|
153
|
+
2014: (OCT, 22),
|
|
154
|
+
2015: (NOV, 10),
|
|
155
|
+
2016: (OCT, 29),
|
|
156
|
+
2017: (OCT, 18),
|
|
157
|
+
2018: (NOV, 6),
|
|
158
|
+
2019: (OCT, 28),
|
|
159
|
+
2020: (NOV, 14),
|
|
160
|
+
2021: (NOV, 4),
|
|
161
|
+
2022: (OCT, 24),
|
|
162
|
+
2023: (NOV, 12),
|
|
163
|
+
2024: (OCT, 31),
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class KenyaIslamicHolidays(_CustomIslamicHolidays):
|
|
168
|
+
EID_AL_ADHA_DATES = {
|
|
169
|
+
2014: (OCT, 6),
|
|
170
|
+
2015: (SEP, 24),
|
|
171
|
+
2016: (SEP, 12),
|
|
172
|
+
2017: (SEP, 1),
|
|
173
|
+
2018: (AUG, 21),
|
|
174
|
+
2019: (AUG, 12),
|
|
175
|
+
2020: (JUL, 31),
|
|
176
|
+
2021: (JUL, 20),
|
|
177
|
+
2022: (JUL, 11),
|
|
178
|
+
2023: (JUN, 28),
|
|
179
|
+
2024: (JUN, 17),
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
EID_AL_FITR_DATES = {
|
|
183
|
+
2014: (JUL, 29),
|
|
184
|
+
2015: (JUL, 18),
|
|
185
|
+
2016: (JUL, 7),
|
|
186
|
+
2017: (JUN, 26),
|
|
187
|
+
2018: (JUN, 15),
|
|
188
|
+
2019: (JUN, 5),
|
|
189
|
+
2020: (MAY, 25),
|
|
190
|
+
2021: (MAY, 14),
|
|
191
|
+
2022: (MAY, 3),
|
|
192
|
+
2023: (APR, 21),
|
|
193
|
+
2024: (APR, 10),
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
|
|
82
197
|
class KenyaStaticHolidays:
|
|
198
|
+
"""
|
|
199
|
+
References:
|
|
200
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2015-11-24/129/eng@2015-11-24
|
|
201
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-08-01/107/eng@2017-08-01
|
|
202
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-19/156/eng@2017-10-19
|
|
203
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-24/159/eng@2017-10-24
|
|
204
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-11-23/174/eng@2017-11-23
|
|
205
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-07-29/147/eng@2022-07-29
|
|
206
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-09-08/182/eng@2022-09-08
|
|
207
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2023-11-06/238/eng@2023-11-06
|
|
208
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2024-05-08/61/eng@2024-05-08
|
|
209
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2024-10-31/184/eng@2024-10-31
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
# Election Day.
|
|
213
|
+
election_day = tr("Election Day")
|
|
214
|
+
|
|
215
|
+
# Inauguration Day.
|
|
216
|
+
inauguration_day = tr("Inauguration Day")
|
|
217
|
+
|
|
218
|
+
# Day of Mourning for Queen Elizabeth II.
|
|
219
|
+
mourning_for_queen_elizabeth = tr("Day of Mourning for Queen Elizabeth II")
|
|
220
|
+
|
|
221
|
+
# National Tree Growing Day.
|
|
222
|
+
national_tree_growing_day = tr("National Tree Growing Day")
|
|
223
|
+
|
|
83
224
|
special_public_holidays = {
|
|
84
|
-
|
|
225
|
+
# Visit of Pope Francis to Kenya.
|
|
226
|
+
2015: (NOV, 26, tr("Visit of Pope Francis to Kenya")),
|
|
227
|
+
2017: (
|
|
228
|
+
(AUG, 8, election_day),
|
|
229
|
+
(OCT, 25, election_day),
|
|
230
|
+
(OCT, 26, election_day),
|
|
231
|
+
(NOV, 28, inauguration_day),
|
|
232
|
+
),
|
|
233
|
+
# President Moi Memorial Day.
|
|
234
|
+
2020: (FEB, 11, tr("President Moi Memorial Day")),
|
|
85
235
|
2022: (
|
|
86
|
-
|
|
87
|
-
(
|
|
88
|
-
(
|
|
89
|
-
(SEP,
|
|
90
|
-
(SEP,
|
|
91
|
-
(SEP,
|
|
236
|
+
# State Funeral for Former President Mwai Kibaki.
|
|
237
|
+
(APR, 29, tr("State Funeral for Former President Mwai Kibaki")),
|
|
238
|
+
(AUG, 9, election_day),
|
|
239
|
+
(SEP, 10, mourning_for_queen_elizabeth),
|
|
240
|
+
(SEP, 11, mourning_for_queen_elizabeth),
|
|
241
|
+
(SEP, 12, mourning_for_queen_elizabeth),
|
|
242
|
+
(SEP, 13, inauguration_day),
|
|
243
|
+
),
|
|
244
|
+
2023: (NOV, 13, national_tree_growing_day),
|
|
245
|
+
2024: (
|
|
246
|
+
(MAY, 10, national_tree_growing_day),
|
|
247
|
+
(NOV, 1, inauguration_day),
|
|
92
248
|
),
|
|
93
249
|
}
|
holidays/countries/laos.py
CHANGED
|
@@ -156,7 +156,7 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
|
|
|
156
156
|
# Became defunct from 2018 onwards. Still accessible in `WORKDAY` category.
|
|
157
157
|
|
|
158
158
|
if 1990 <= self._year <= 2017:
|
|
159
|
-
# International Children Day.
|
|
159
|
+
# International Children's Day.
|
|
160
160
|
self._add_childrens_day(tr("ວັນເດັກສາກົນ"))
|
|
161
161
|
|
|
162
162
|
# ວັນຊາດ
|
|
@@ -281,7 +281,7 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
|
|
|
281
281
|
# Became defunct from 2018 onwards. Still accessible in `WORKDAY` category.
|
|
282
282
|
|
|
283
283
|
if self._year >= 2018:
|
|
284
|
-
# International Children Day.
|
|
284
|
+
# International Children's Day.
|
|
285
285
|
self._add_childrens_day(tr("ວັນເດັກສາກົນ"))
|
|
286
286
|
|
|
287
287
|
# ວັນປູກຕົ້ນໄມ້ແຫ່ງຊາດ
|
holidays/countries/malaysia.py
CHANGED
|
@@ -139,7 +139,8 @@ class Malaysia(
|
|
|
139
139
|
"If any day specified in the Schedule falls on Sunday then the day following shall be
|
|
140
140
|
a public holiday and if such day is already a public holiday, then the day following
|
|
141
141
|
shall be a public holiday".
|
|
142
|
-
In Johor and Kedah it's Friday to Sunday,
|
|
142
|
+
In Johor (until 1994 and in 2014-2024) and Kedah it's Friday to Sunday,
|
|
143
|
+
in Kelantan and Terengganu - Saturday to Sunday.
|
|
143
144
|
"""
|
|
144
145
|
BuddhistCalendarHolidays.__init__(self, cls=MalaysiaBuddhistHolidays, show_estimated=True)
|
|
145
146
|
ChineseCalendarHolidays.__init__(self, cls=MalaysiaChineseHolidays, show_estimated=True)
|
|
@@ -321,8 +322,14 @@ class Malaysia(
|
|
|
321
322
|
else self._add_holiday_2nd_fri_of_oct(name)
|
|
322
323
|
)
|
|
323
324
|
|
|
324
|
-
|
|
325
|
-
|
|
325
|
+
if self._year >= 2025:
|
|
326
|
+
self.dts_observed.update(
|
|
327
|
+
# Eid al-Fitr (Third Day).
|
|
328
|
+
self._add_eid_al_fitr_day_three(tr("Hari Raya Puasa (Hari Ketiga)"))
|
|
329
|
+
)
|
|
330
|
+
else:
|
|
331
|
+
# Beginning of Ramadan.
|
|
332
|
+
self.dts_observed.update(self._add_ramadan_beginning_day(tr("Awal Ramadan")))
|
|
326
333
|
|
|
327
334
|
def _populate_subdiv_05_public_holidays(self):
|
|
328
335
|
# New Year's Day.
|
|
@@ -589,6 +596,7 @@ class MalaysiaBuddhistHolidays(_CustomBuddhistHolidays):
|
|
|
589
596
|
2022: (MAY, 15),
|
|
590
597
|
2023: (MAY, 4),
|
|
591
598
|
2024: (MAY, 22),
|
|
599
|
+
2025: (MAY, 12),
|
|
592
600
|
}
|
|
593
601
|
|
|
594
602
|
|
|
@@ -618,6 +626,7 @@ class MalaysiaChineseHolidays(_CustomChineseHolidays):
|
|
|
618
626
|
2022: (FEB, 1),
|
|
619
627
|
2023: (JAN, 22),
|
|
620
628
|
2024: (FEB, 10),
|
|
629
|
+
2025: (JAN, 29),
|
|
621
630
|
}
|
|
622
631
|
|
|
623
632
|
|
|
@@ -647,6 +656,7 @@ class MalaysiaHinduHolidays(_CustomHinduHolidays):
|
|
|
647
656
|
2022: (OCT, 24),
|
|
648
657
|
2023: (NOV, 12),
|
|
649
658
|
2024: (OCT, 31),
|
|
659
|
+
2025: (OCT, 20),
|
|
650
660
|
}
|
|
651
661
|
|
|
652
662
|
THAIPUSAM_DATES = {
|
|
@@ -689,6 +699,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
689
699
|
2022: (JUL, 10),
|
|
690
700
|
2023: (JUN, 29),
|
|
691
701
|
2024: (JUN, 17),
|
|
702
|
+
2025: (JUN, 7),
|
|
692
703
|
}
|
|
693
704
|
|
|
694
705
|
EID_AL_FITR_DATES = {
|
|
@@ -716,6 +727,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
716
727
|
2022: (MAY, 2),
|
|
717
728
|
2023: (APR, 22),
|
|
718
729
|
2024: (APR, 10),
|
|
730
|
+
2025: (MAR, 31),
|
|
719
731
|
}
|
|
720
732
|
|
|
721
733
|
HARI_HOL_JOHOR_DATES = {
|
|
@@ -733,6 +745,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
733
745
|
2022: (SEP, 3),
|
|
734
746
|
2023: (AUG, 23),
|
|
735
747
|
2024: (AUG, 11),
|
|
748
|
+
2025: (JUL, 31),
|
|
736
749
|
}
|
|
737
750
|
|
|
738
751
|
HIJRI_NEW_YEAR_DATES = {
|
|
@@ -760,6 +773,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
760
773
|
2022: (JUL, 30),
|
|
761
774
|
2023: (JUL, 19),
|
|
762
775
|
2024: (JUL, 7),
|
|
776
|
+
2025: (JUN, 27),
|
|
763
777
|
}
|
|
764
778
|
|
|
765
779
|
ISRA_AND_MIRAJ_DATES = {
|
|
@@ -787,6 +801,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
787
801
|
2022: (MAR, 1),
|
|
788
802
|
2023: (FEB, 18),
|
|
789
803
|
2024: (FEB, 8),
|
|
804
|
+
2025: (JAN, 27),
|
|
790
805
|
}
|
|
791
806
|
|
|
792
807
|
MAWLID_DATES = {
|
|
@@ -814,6 +829,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
814
829
|
2022: (OCT, 10),
|
|
815
830
|
2023: (SEP, 28),
|
|
816
831
|
2024: (SEP, 16),
|
|
832
|
+
2025: (SEP, 5),
|
|
817
833
|
}
|
|
818
834
|
|
|
819
835
|
NUZUL_AL_QURAN_DATES = {
|
|
@@ -841,6 +857,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
841
857
|
2022: (APR, 19),
|
|
842
858
|
2023: (APR, 8),
|
|
843
859
|
2024: (MAR, 28),
|
|
860
|
+
2025: (MAR, 18),
|
|
844
861
|
}
|
|
845
862
|
|
|
846
863
|
RAMADAN_BEGINNING_DATES = {
|
|
@@ -868,6 +885,7 @@ class MalaysiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
868
885
|
2022: (APR, 3),
|
|
869
886
|
2023: (MAR, 23),
|
|
870
887
|
2024: (MAR, 12),
|
|
888
|
+
2025: (MAR, 2),
|
|
871
889
|
}
|
|
872
890
|
|
|
873
891
|
|
holidays/countries/nicaragua.py
CHANGED
|
@@ -98,7 +98,7 @@ class Nicaragua(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
98
98
|
# Independence Day.
|
|
99
99
|
self._add_holiday_sep_15(tr("Día de la Independencia"))
|
|
100
100
|
|
|
101
|
-
#
|
|
101
|
+
# Immaculate Conception.
|
|
102
102
|
self._add_immaculate_conception_day(tr("Concepción de María"))
|
|
103
103
|
|
|
104
104
|
# Christmas Day.
|
holidays/countries/panama.py
CHANGED
|
@@ -10,66 +10,94 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars.gregorian import JUL
|
|
16
|
+
from holidays.constants import BANK, PUBLIC
|
|
17
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
14
18
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
15
19
|
|
|
16
20
|
|
|
17
|
-
class Panama(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
21
|
+
class Panama(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
18
22
|
"""
|
|
19
23
|
References:
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Panama
|
|
25
|
+
- `Labor Code 1947 <https://docs.panama.justia.com/federales/leyes/67-de-1947-nov-26-1947.pdf>`_
|
|
26
|
+
- `Cabinet Decree #347 of 1969 <https://docs.panama.justia.com/federales/decretos-de-gabinete/decreto-de-gabinete-347-de-1969-nov-14-1969.pdf>`_
|
|
27
|
+
- `Labor Code 1971 <https://www.mitradel.gob.pa/wp-content/uploads/2016/12/c%C3%B3digo-detrabajo.pdf>`_
|
|
28
|
+
- `Law #4 of Jun 25, 1990 <https://s3-legispan.asamblea.gob.pa/legispan/NORMAS/1990/1990/LEY/Administrador%20Legispan_21570_1990_7_2_ASAMBLEA%20LEGISLATIVA_4.pdf>`_
|
|
29
|
+
- `Law #55 of Nov 7, 2001 <https://docs.panama.justia.com/federales/leyes/55-de-2001-nov-14-2001.pdf>`_
|
|
22
30
|
"""
|
|
23
31
|
|
|
24
32
|
country = "PA"
|
|
25
|
-
|
|
33
|
+
default_language = "es"
|
|
34
|
+
# %s (observed).
|
|
35
|
+
observed_label = tr("%s (puente)")
|
|
36
|
+
supported_categories = (BANK, PUBLIC)
|
|
37
|
+
supported_languages = ("en_US", "es", "uk")
|
|
38
|
+
start_year = 1948
|
|
26
39
|
|
|
27
40
|
def __init__(self, *args, **kwargs):
|
|
28
41
|
ChristianHolidays.__init__(self)
|
|
29
42
|
InternationalHolidays.__init__(self)
|
|
43
|
+
StaticHolidays.__init__(self, PanamaStaticHolidays)
|
|
30
44
|
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
45
|
+
kwargs.setdefault("observed_since", 1972)
|
|
31
46
|
super().__init__(*args, **kwargs)
|
|
32
47
|
|
|
33
48
|
def _populate_public_holidays(self):
|
|
34
|
-
# New Year's Day
|
|
35
|
-
self._add_observed(self._add_new_years_day("
|
|
49
|
+
# New Year's Day.
|
|
50
|
+
self._add_observed(self._add_new_years_day(tr("Año Nuevo")))
|
|
36
51
|
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
if self._year >= 1972:
|
|
53
|
+
# Martyrs' Day.
|
|
54
|
+
self._add_observed(self._add_holiday_jan_9(tr("Día de los Mártires")))
|
|
39
55
|
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
if self._year <= 1971:
|
|
57
|
+
# Constitution Day.
|
|
58
|
+
self._add_holiday_mar_1(tr("Día de la Constitución"))
|
|
42
59
|
|
|
43
|
-
#
|
|
44
|
-
self.
|
|
60
|
+
# Carnival Tuesday.
|
|
61
|
+
self._add_carnival_tuesday(tr("Martes de Carnaval"))
|
|
45
62
|
|
|
46
|
-
#
|
|
47
|
-
self.
|
|
63
|
+
# Good Friday.
|
|
64
|
+
self._add_good_friday(tr("Viernes Santo"))
|
|
48
65
|
|
|
49
|
-
#
|
|
50
|
-
self.
|
|
66
|
+
# Labor Day.
|
|
67
|
+
self._add_observed(self._add_labor_day(tr("Día del Trabajo")))
|
|
51
68
|
|
|
52
|
-
#
|
|
53
|
-
self.
|
|
69
|
+
# Separation Day.
|
|
70
|
+
self._add_observed(self._add_holiday_nov_3(tr("Separación de Panamá de Colombia")))
|
|
54
71
|
|
|
55
|
-
#
|
|
56
|
-
self.
|
|
72
|
+
# Law #55 of Nov 7, 2001.
|
|
73
|
+
if self._year >= 2002:
|
|
74
|
+
# Colon Day.
|
|
75
|
+
self._add_observed(self._add_holiday_nov_5(tr("Día de Colón")))
|
|
57
76
|
|
|
58
|
-
#
|
|
59
|
-
self.
|
|
77
|
+
# Cabinet Decree #347 of 1969.
|
|
78
|
+
if self._year >= 1969:
|
|
79
|
+
# Los Santos Uprising Day.
|
|
80
|
+
self._add_observed(self._add_holiday_nov_10(tr("Primer Grito de Independencia")))
|
|
60
81
|
|
|
61
|
-
# Independence Day
|
|
62
|
-
self._add_observed(self._add_holiday_nov_28("
|
|
82
|
+
# Independence Day.
|
|
83
|
+
self._add_observed(self._add_holiday_nov_28(tr("Independencia de Panamá de España")))
|
|
63
84
|
|
|
64
|
-
# Mother's Day
|
|
65
|
-
self._add_observed(self._add_holiday_dec_8("
|
|
85
|
+
# Mother's Day.
|
|
86
|
+
self._add_observed(self._add_holiday_dec_8(tr("Día de la Madre")))
|
|
66
87
|
|
|
67
|
-
# National Mourning Day
|
|
68
88
|
if self._year >= 2022:
|
|
69
|
-
|
|
89
|
+
# National Mourning Day.
|
|
90
|
+
self._add_observed(self._add_holiday_dec_20(tr("Día de Duelo Nacional")))
|
|
91
|
+
|
|
92
|
+
# Christmas Day.
|
|
93
|
+
self._add_observed(self._add_christmas_day(tr("Navidad")))
|
|
94
|
+
|
|
95
|
+
def _populate_bank_holidays(self):
|
|
96
|
+
# Carnival Monday.
|
|
97
|
+
self._add_carnival_monday(tr("Lunes de Carnaval"))
|
|
70
98
|
|
|
71
|
-
#
|
|
72
|
-
self.
|
|
99
|
+
# National Symbols Day.
|
|
100
|
+
self._add_holiday_nov_4(tr("Día de los Símbolos Patrios"))
|
|
73
101
|
|
|
74
102
|
|
|
75
103
|
class PA(Panama):
|
|
@@ -78,3 +106,13 @@ class PA(Panama):
|
|
|
78
106
|
|
|
79
107
|
class PAN(Panama):
|
|
80
108
|
pass
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class PanamaStaticHolidays:
|
|
112
|
+
# Presidential Inauguration Day.
|
|
113
|
+
presidential_inauguration_day = tr("Toma posesión del Presidente de la república")
|
|
114
|
+
special_public_holidays = {
|
|
115
|
+
2014: (JUL, 1, presidential_inauguration_day),
|
|
116
|
+
2019: (JUL, 1, presidential_inauguration_day),
|
|
117
|
+
2024: (JUL, 1, presidential_inauguration_day),
|
|
118
|
+
}
|
holidays/countries/peru.py
CHANGED
|
@@ -50,7 +50,7 @@ class Peru(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
50
50
|
# Labor Day.
|
|
51
51
|
self._add_labor_day(tr("Día del Trabajo"))
|
|
52
52
|
|
|
53
|
-
# Saint Peter and Saint Paul.
|
|
53
|
+
# Saint Peter and Saint Paul's Day.
|
|
54
54
|
self._add_saints_peter_and_paul_day(tr("San Pedro y San Pablo"))
|
|
55
55
|
|
|
56
56
|
# Independence Day.
|
|
@@ -0,0 +1,88 @@
|
|
|
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 AUTHORS 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.groups import ChristianHolidays, InternationalHolidays
|
|
16
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON, SUN_TO_NEXT_TUE
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SaintLucia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
20
|
+
"""
|
|
21
|
+
References:
|
|
22
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Lucia
|
|
23
|
+
- https://www.timeanddate.com/holidays/saint-lucia/
|
|
24
|
+
- https://archive.stlucia.gov.lc/saint_lucia/public_holidays.htm
|
|
25
|
+
- https://archive.stlucia.gov.lc/stluciasilver/national_holidays.htm
|
|
26
|
+
- https://web.archive.org/web/20160314100648/http://www.stluciachamber.org/uploadedImages/contentImg/file/List%20of%20Holidays%20for%202015%20(1).pdf
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
country = "LC"
|
|
30
|
+
default_language = "en_LC"
|
|
31
|
+
# %s (observed).
|
|
32
|
+
observed_label = tr("%s (observed)")
|
|
33
|
+
supported_languages = ("en_LC", "en_US")
|
|
34
|
+
start_year = 1979
|
|
35
|
+
|
|
36
|
+
def __init__(self, *args, **kwargs):
|
|
37
|
+
ChristianHolidays.__init__(self)
|
|
38
|
+
InternationalHolidays.__init__(self)
|
|
39
|
+
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
40
|
+
super().__init__(*args, **kwargs)
|
|
41
|
+
|
|
42
|
+
def _populate_public_holidays(self):
|
|
43
|
+
# New Year's Day.
|
|
44
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")), rule=SUN_TO_NEXT_TUE)
|
|
45
|
+
|
|
46
|
+
# New Year's Holiday.
|
|
47
|
+
self._add_observed(self._add_new_years_day_two(tr("New Year's Holiday")))
|
|
48
|
+
|
|
49
|
+
# Independence Day.
|
|
50
|
+
self._add_observed(self._add_holiday_feb_22(tr("Independence Day")))
|
|
51
|
+
|
|
52
|
+
# Good Friday.
|
|
53
|
+
self._add_good_friday(tr("Good Friday"))
|
|
54
|
+
|
|
55
|
+
# Easter Monday.
|
|
56
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
57
|
+
|
|
58
|
+
# Labor Day.
|
|
59
|
+
self._add_observed(self._add_labor_day(tr("Labour Day")))
|
|
60
|
+
|
|
61
|
+
# Whit Monday.
|
|
62
|
+
self._add_whit_monday(tr("Whit Monday"))
|
|
63
|
+
|
|
64
|
+
# Corpus Christi.
|
|
65
|
+
self._add_corpus_christi_day(tr("Corpus Christi"))
|
|
66
|
+
|
|
67
|
+
# Emancipation Day.
|
|
68
|
+
self._add_observed(self._add_holiday_aug_1(tr("Emancipation Day")))
|
|
69
|
+
|
|
70
|
+
# Thanksgiving Day.
|
|
71
|
+
self._add_holiday_1st_mon_of_oct(tr("Thanksgiving Day"))
|
|
72
|
+
|
|
73
|
+
# National Day.
|
|
74
|
+
self._add_observed(self._add_holiday_dec_13(tr("National Day")))
|
|
75
|
+
|
|
76
|
+
# Christmas Day.
|
|
77
|
+
self._add_observed(self._add_christmas_day(tr("Christmas Day")), rule=SUN_TO_NEXT_TUE)
|
|
78
|
+
|
|
79
|
+
# Boxing Day.
|
|
80
|
+
self._add_observed(self._add_christmas_day_two(tr("Boxing Day")))
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class LC(SaintLucia):
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class LCA(SaintLucia):
|
|
88
|
+
pass
|