holidays 0.67__py3-none-any.whl → 0.69__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/__init__.py +1 -0
- holidays/calendars/balinese_saka.py +112 -0
- holidays/calendars/chinese.py +1 -1
- holidays/calendars/hindu.py +865 -1
- holidays/constants.py +1 -0
- holidays/countries/__init__.py +1 -0
- holidays/countries/afghanistan.py +8 -2
- holidays/countries/albania.py +8 -2
- holidays/countries/algeria.py +6 -2
- holidays/countries/american_samoa.py +6 -2
- holidays/countries/azerbaijan.py +26 -4
- holidays/countries/bahrain.py +8 -2
- holidays/countries/bosnia_and_herzegovina.py +8 -2
- holidays/countries/brunei.py +8 -2
- holidays/countries/burkina_faso.py +8 -2
- holidays/countries/burundi.py +6 -2
- holidays/countries/cameroon.py +8 -2
- holidays/countries/chad.py +8 -2
- holidays/countries/djibouti.py +6 -2
- holidays/countries/egypt.py +6 -2
- holidays/countries/ethiopia.py +8 -2
- holidays/countries/gabon.py +8 -2
- holidays/countries/ghana.py +6 -2
- holidays/countries/guam.py +6 -2
- holidays/countries/hongkong.py +38 -52
- holidays/countries/india.py +482 -166
- holidays/countries/indonesia.py +14 -58
- holidays/countries/iran.py +8 -2
- holidays/countries/jordan.py +6 -2
- holidays/countries/kazakhstan.py +8 -2
- holidays/countries/kenya.py +209 -47
- holidays/countries/kuwait.py +6 -2
- holidays/countries/kyrgyzstan.py +6 -2
- holidays/countries/macau.py +474 -0
- holidays/countries/malaysia.py +30 -6
- holidays/countries/maldives.py +6 -2
- holidays/countries/mauritania.py +6 -2
- holidays/countries/montenegro.py +8 -2
- holidays/countries/morocco.py +6 -2
- holidays/countries/nigeria.py +6 -2
- holidays/countries/north_macedonia.py +6 -2
- holidays/countries/northern_mariana_islands.py +6 -2
- holidays/countries/pakistan.py +8 -2
- holidays/countries/philippines.py +13 -3
- holidays/countries/poland.py +1 -1
- holidays/countries/puerto_rico.py +6 -2
- holidays/countries/saudi_arabia.py +6 -2
- holidays/countries/singapore.py +7 -2
- holidays/countries/spain.py +8 -2
- holidays/countries/sri_lanka.py +8 -2
- holidays/countries/taiwan.py +226 -29
- holidays/countries/tanzania.py +8 -2
- holidays/countries/timor_leste.py +21 -2
- holidays/countries/tunisia.py +6 -2
- holidays/countries/turkey.py +8 -2
- holidays/countries/united_arab_emirates.py +8 -2
- holidays/countries/united_states.py +84 -35
- holidays/countries/united_states_minor_outlying_islands.py +6 -2
- holidays/countries/united_states_virgin_islands.py +6 -2
- holidays/countries/uzbekistan.py +8 -2
- holidays/groups/__init__.py +1 -0
- holidays/groups/balinese_saka.py +45 -0
- holidays/groups/chinese.py +68 -3
- holidays/groups/hindu.py +255 -0
- holidays/groups/islamic.py +5 -2
- holidays/holiday_base.py +44 -29
- holidays/locale/de/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_KE/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/KE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
- holidays/registry.py +1 -0
- holidays/version.py +1 -1
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/AUTHORS +1 -0
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/METADATA +24 -19
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/RECORD +99 -83
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/WHEEL +1 -1
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/LICENSE +0 -0
- {holidays-0.67.dist-info → holidays-0.69.dist-info}/top_level.txt +0 -0
holidays/countries/indonesia.py
CHANGED
|
@@ -20,6 +20,7 @@ from holidays.calendars import (
|
|
|
20
20
|
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
21
21
|
from holidays.constants import GOVERNMENT, PUBLIC
|
|
22
22
|
from holidays.groups import (
|
|
23
|
+
BalineseSakaCalendarHolidays,
|
|
23
24
|
BuddhistCalendarHolidays,
|
|
24
25
|
ChineseCalendarHolidays,
|
|
25
26
|
ChristianHolidays,
|
|
@@ -32,6 +33,7 @@ from holidays.observed_holiday_base import ObservedHolidayBase
|
|
|
32
33
|
|
|
33
34
|
class Indonesia(
|
|
34
35
|
ObservedHolidayBase,
|
|
36
|
+
BalineseSakaCalendarHolidays,
|
|
35
37
|
BuddhistCalendarHolidays,
|
|
36
38
|
ChineseCalendarHolidays,
|
|
37
39
|
ChristianHolidays,
|
|
@@ -44,10 +46,8 @@ class Indonesia(
|
|
|
44
46
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Indonesia
|
|
45
47
|
- https://id.wikipedia.org/wiki/Hari_libur_di_Indonesia
|
|
46
48
|
- https://www.liburnasional.com/sejarah/
|
|
47
|
-
- https://id.wikipedia.org/wiki/Indonesia_dalam_tahun_1963 (1963-
|
|
49
|
+
- https://id.wikipedia.org/wiki/Indonesia_dalam_tahun_1963 (1963-2025)
|
|
48
50
|
- https://www.timeanddate.com/holidays/indonesia
|
|
49
|
-
- https://en.wikipedia.org/wiki/Nyepi
|
|
50
|
-
- https://bali.com/bali/travel-guide/culture/nyepi-balinese-new-year/
|
|
51
51
|
"""
|
|
52
52
|
|
|
53
53
|
country = "ID"
|
|
@@ -62,12 +62,19 @@ class Indonesia(
|
|
|
62
62
|
supported_categories = (GOVERNMENT, PUBLIC)
|
|
63
63
|
start_year = 1946
|
|
64
64
|
|
|
65
|
-
def __init__(self, *args, **kwargs):
|
|
65
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
66
|
+
"""
|
|
67
|
+
:param islamic_show_estimated:
|
|
68
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
69
|
+
"""
|
|
70
|
+
BalineseSakaCalendarHolidays.__init__(self)
|
|
66
71
|
BuddhistCalendarHolidays.__init__(self, cls=IndonesiaBuddhistHolidays, show_estimated=True)
|
|
67
72
|
ChineseCalendarHolidays.__init__(self, cls=IndonesiaChineseHolidays, show_estimated=True)
|
|
68
73
|
ChristianHolidays.__init__(self)
|
|
69
74
|
InternationalHolidays.__init__(self)
|
|
70
|
-
IslamicHolidays.__init__(
|
|
75
|
+
IslamicHolidays.__init__(
|
|
76
|
+
self, cls=IndonesiaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
77
|
+
)
|
|
71
78
|
StaticHolidays.__init__(self, cls=IndonesiaStaticHolidays)
|
|
72
79
|
super().__init__(*args, **kwargs)
|
|
73
80
|
|
|
@@ -148,59 +155,8 @@ class Indonesia(
|
|
|
148
155
|
|
|
149
156
|
# Keputusan Presiden no 3 tahun 1983. (1983-01-19; Added Nationally)
|
|
150
157
|
if self._year >= 1983:
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
1984: (MAR, 4),
|
|
154
|
-
1985: (MAR, 22),
|
|
155
|
-
1986: (MAR, 12),
|
|
156
|
-
1987: (MAR, 31),
|
|
157
|
-
1988: (MAR, 19),
|
|
158
|
-
1989: (MAR, 9),
|
|
159
|
-
1990: (MAR, 27),
|
|
160
|
-
1991: (MAR, 17),
|
|
161
|
-
1992: (MAR, 5),
|
|
162
|
-
1993: (MAR, 24),
|
|
163
|
-
1994: (MAR, 12),
|
|
164
|
-
1995: (APR, 1),
|
|
165
|
-
1996: (MAR, 21),
|
|
166
|
-
1997: (APR, 9),
|
|
167
|
-
1998: (MAR, 29),
|
|
168
|
-
1999: (MAR, 18),
|
|
169
|
-
2000: (APR, 4),
|
|
170
|
-
2001: (MAR, 25),
|
|
171
|
-
2002: (APR, 13),
|
|
172
|
-
2003: (APR, 2),
|
|
173
|
-
2004: (MAR, 22),
|
|
174
|
-
2005: (MAR, 11),
|
|
175
|
-
2006: (MAR, 30),
|
|
176
|
-
2007: (MAR, 19),
|
|
177
|
-
2008: (MAR, 7),
|
|
178
|
-
2009: (MAR, 26),
|
|
179
|
-
2010: (MAR, 16),
|
|
180
|
-
2011: (MAR, 5),
|
|
181
|
-
2012: (MAR, 23),
|
|
182
|
-
2013: (MAR, 12),
|
|
183
|
-
2014: (MAR, 31),
|
|
184
|
-
2015: (MAR, 21),
|
|
185
|
-
2016: (MAR, 9),
|
|
186
|
-
2017: (MAR, 28),
|
|
187
|
-
2018: (MAR, 17),
|
|
188
|
-
2019: (MAR, 7),
|
|
189
|
-
2020: (MAR, 25),
|
|
190
|
-
2021: (MAR, 14),
|
|
191
|
-
2022: (MAR, 3),
|
|
192
|
-
2023: (MAR, 22),
|
|
193
|
-
2024: (MAR, 11),
|
|
194
|
-
2025: (MAR, 29),
|
|
195
|
-
2026: (MAR, 19),
|
|
196
|
-
2027: (MAR, 8),
|
|
197
|
-
2028: (MAR, 26),
|
|
198
|
-
2029: (MAR, 15),
|
|
199
|
-
2030: (MAR, 5),
|
|
200
|
-
}
|
|
201
|
-
if self._year in dates_obs:
|
|
202
|
-
# Day of Silence.
|
|
203
|
-
self._add_holiday(tr("Hari Suci Nyepi"), dates_obs[self._year])
|
|
158
|
+
# Day of Silence.
|
|
159
|
+
self._add_nyepi(tr("Hari Suci Nyepi"))
|
|
204
160
|
|
|
205
161
|
# Vesak Day.
|
|
206
162
|
self._add_vesak(tr("Hari Raya Waisak"))
|
holidays/countries/iran.py
CHANGED
|
@@ -50,8 +50,14 @@ class Iran(HolidayBase, IslamicHolidays, PersianCalendarHolidays):
|
|
|
50
50
|
start_year = 1980
|
|
51
51
|
weekend = {FRI}
|
|
52
52
|
|
|
53
|
-
def __init__(self, *args, **kwargs):
|
|
54
|
-
|
|
53
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
54
|
+
"""
|
|
55
|
+
:param islamic_show_estimated:
|
|
56
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
57
|
+
"""
|
|
58
|
+
IslamicHolidays.__init__(
|
|
59
|
+
self, cls=IranIslamicHolidays, show_estimated=islamic_show_estimated
|
|
60
|
+
)
|
|
55
61
|
PersianCalendarHolidays.__init__(self)
|
|
56
62
|
super().__init__(*args, **kwargs)
|
|
57
63
|
|
holidays/countries/jordan.py
CHANGED
|
@@ -30,10 +30,14 @@ class Jordan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolid
|
|
|
30
30
|
estimated_label = tr("(تقدير) %s")
|
|
31
31
|
supported_languages = ("ar", "en_US")
|
|
32
32
|
|
|
33
|
-
def __init__(self, *args, **kwargs):
|
|
33
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
34
|
+
"""
|
|
35
|
+
:param islamic_show_estimated:
|
|
36
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
37
|
+
"""
|
|
34
38
|
ChristianHolidays.__init__(self)
|
|
35
39
|
InternationalHolidays.__init__(self)
|
|
36
|
-
IslamicHolidays.__init__(self)
|
|
40
|
+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
|
|
37
41
|
super().__init__(*args, **kwargs)
|
|
38
42
|
|
|
39
43
|
def _populate_public_holidays(self):
|
holidays/countries/kazakhstan.py
CHANGED
|
@@ -92,10 +92,16 @@ class Kazakhstan(
|
|
|
92
92
|
# Kazakhstan declared its sovereignty on 25 October 1990.
|
|
93
93
|
start_year = 1991
|
|
94
94
|
|
|
95
|
-
def __init__(self, *args, **kwargs):
|
|
95
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
96
|
+
"""
|
|
97
|
+
:param islamic_show_estimated:
|
|
98
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
99
|
+
"""
|
|
96
100
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
97
101
|
InternationalHolidays.__init__(self)
|
|
98
|
-
IslamicHolidays.__init__(
|
|
102
|
+
IslamicHolidays.__init__(
|
|
103
|
+
self, cls=KazakhstanIslamicHolidays, show_estimated=islamic_show_estimated
|
|
104
|
+
)
|
|
99
105
|
StaticHolidays.__init__(self, KazakhstanStaticHolidays)
|
|
100
106
|
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
|
|
101
107
|
kwargs.setdefault("observed_since", 2002)
|
holidays/countries/kenya.py
CHANGED
|
@@ -10,65 +10,140 @@
|
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
55
|
+
|
|
56
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
57
|
+
"""
|
|
58
|
+
:param islamic_show_estimated:
|
|
59
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
60
|
+
"""
|
|
30
61
|
ChristianHolidays.__init__(self)
|
|
62
|
+
HinduCalendarHolidays.__init__(self, cls=KenyaHinduHolidays)
|
|
31
63
|
InternationalHolidays.__init__(self)
|
|
64
|
+
IslamicHolidays.__init__(
|
|
65
|
+
self, cls=KenyaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
66
|
+
)
|
|
32
67
|
StaticHolidays.__init__(self, cls=KenyaStaticHolidays)
|
|
33
|
-
kwargs.setdefault("observed_rule",
|
|
68
|
+
kwargs.setdefault("observed_rule", SUN_TO_NEXT_WORKDAY)
|
|
69
|
+
kwargs.setdefault("observed_since", 1985)
|
|
34
70
|
super().__init__(*args, **kwargs)
|
|
35
71
|
|
|
36
72
|
def _populate_public_holidays(self):
|
|
37
|
-
|
|
38
|
-
|
|
73
|
+
dts_observed = set()
|
|
74
|
+
|
|
75
|
+
# New Year's Day.
|
|
76
|
+
dts_observed.add(self._add_new_years_day(tr("New Year's Day")))
|
|
77
|
+
|
|
78
|
+
# Good Friday.
|
|
79
|
+
self._add_good_friday(tr("Good Friday"))
|
|
80
|
+
|
|
81
|
+
# Easter Monday.
|
|
82
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
83
|
+
|
|
84
|
+
# Labor Day.
|
|
85
|
+
dts_observed.add(self._add_labor_day(tr("Labour Day")))
|
|
86
|
+
|
|
87
|
+
if self._year >= 2011:
|
|
88
|
+
# Madaraka Day.
|
|
89
|
+
dts_observed.add(self._add_holiday_jun_1(tr("Madaraka Day")))
|
|
90
|
+
|
|
91
|
+
if 1990 <= self._year <= 2009 or self._year >= 2018:
|
|
92
|
+
if self._year >= 2025:
|
|
93
|
+
# Mazingira Day.
|
|
94
|
+
name = tr("Mazingira Day")
|
|
95
|
+
elif self._year >= 2021:
|
|
96
|
+
# Utamaduni Day.
|
|
97
|
+
name = tr("Utamaduni Day")
|
|
98
|
+
else:
|
|
99
|
+
# Moi Day.
|
|
100
|
+
name = tr("Moi Day")
|
|
101
|
+
dts_observed.add(self._add_holiday_oct_10(name))
|
|
102
|
+
|
|
103
|
+
dts_observed.add(
|
|
104
|
+
self._add_holiday_oct_20(
|
|
105
|
+
# Mashujaa Day.
|
|
106
|
+
tr("Mashujaa Day")
|
|
107
|
+
if self._year >= 2011
|
|
108
|
+
# Kenyatta Day.
|
|
109
|
+
else tr("Kenyatta Day")
|
|
110
|
+
)
|
|
111
|
+
)
|
|
39
112
|
|
|
40
|
-
|
|
41
|
-
|
|
113
|
+
dts_observed.add(
|
|
114
|
+
self._add_holiday_dec_12(
|
|
115
|
+
# Jamhuri Day.
|
|
116
|
+
tr("Jamhuri Day")
|
|
117
|
+
if self._year >= 2011
|
|
118
|
+
# Independence Day.
|
|
119
|
+
else tr("Independence Day")
|
|
120
|
+
)
|
|
121
|
+
)
|
|
42
122
|
|
|
43
|
-
#
|
|
44
|
-
self.
|
|
123
|
+
# Christmas Day.
|
|
124
|
+
dts_observed.add(self._add_christmas_day(tr("Christmas Day")))
|
|
45
125
|
|
|
46
|
-
#
|
|
47
|
-
|
|
126
|
+
# Boxing Day.
|
|
127
|
+
dts_observed.add(self._add_christmas_day_two(tr("Boxing Day")))
|
|
48
128
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
self._add_observed(self._add_holiday_jun_1("Madaraka Day"))
|
|
129
|
+
# Eid-al-Fitr.
|
|
130
|
+
dts_observed.update(self._add_eid_al_fitr_day(tr("Idd-ul-Fitr")))
|
|
52
131
|
|
|
53
|
-
if
|
|
54
|
-
self.
|
|
55
|
-
# Utamaduni/Moi Day
|
|
56
|
-
self._add_holiday_oct_10("Utamaduni Day" if self._year >= 2021 else "Moi Day")
|
|
57
|
-
)
|
|
132
|
+
if self.observed:
|
|
133
|
+
self._populate_observed(dts_observed)
|
|
58
134
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
self._add_holiday_oct_20("Mashujaa Day" if self._year >= 2010 else "Kenyatta Day")
|
|
62
|
-
)
|
|
135
|
+
def _populate_hindu_holidays(self):
|
|
136
|
+
"""Additional Hindu public holidays."""
|
|
63
137
|
|
|
64
|
-
|
|
65
|
-
|
|
138
|
+
if self._year >= 1984:
|
|
139
|
+
# Diwali.
|
|
140
|
+
self._add_diwali(tr("Diwali"))
|
|
66
141
|
|
|
67
|
-
|
|
68
|
-
|
|
142
|
+
def _populate_islamic_holidays(self):
|
|
143
|
+
"""Additional Islamic public holidays."""
|
|
69
144
|
|
|
70
|
-
#
|
|
71
|
-
self.
|
|
145
|
+
# Eid-al-Adha.
|
|
146
|
+
self._add_eid_al_adha_day(tr("Idd-ul-Azha"))
|
|
72
147
|
|
|
73
148
|
|
|
74
149
|
class KE(Kenya):
|
|
@@ -79,15 +154,102 @@ class KEN(Kenya):
|
|
|
79
154
|
pass
|
|
80
155
|
|
|
81
156
|
|
|
157
|
+
class KenyaHinduHolidays(_CustomHinduHolidays):
|
|
158
|
+
DIWALI_DATES = {
|
|
159
|
+
2014: (OCT, 22),
|
|
160
|
+
2015: (NOV, 10),
|
|
161
|
+
2016: (OCT, 29),
|
|
162
|
+
2017: (OCT, 18),
|
|
163
|
+
2018: (NOV, 6),
|
|
164
|
+
2019: (OCT, 28),
|
|
165
|
+
2020: (NOV, 14),
|
|
166
|
+
2021: (NOV, 4),
|
|
167
|
+
2022: (OCT, 24),
|
|
168
|
+
2023: (NOV, 12),
|
|
169
|
+
2024: (OCT, 31),
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class KenyaIslamicHolidays(_CustomIslamicHolidays):
|
|
174
|
+
EID_AL_ADHA_DATES = {
|
|
175
|
+
2014: (OCT, 6),
|
|
176
|
+
2015: (SEP, 24),
|
|
177
|
+
2016: (SEP, 12),
|
|
178
|
+
2017: (SEP, 1),
|
|
179
|
+
2018: (AUG, 21),
|
|
180
|
+
2019: (AUG, 12),
|
|
181
|
+
2020: (JUL, 31),
|
|
182
|
+
2021: (JUL, 20),
|
|
183
|
+
2022: (JUL, 11),
|
|
184
|
+
2023: (JUN, 28),
|
|
185
|
+
2024: (JUN, 17),
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
EID_AL_FITR_DATES = {
|
|
189
|
+
2014: (JUL, 29),
|
|
190
|
+
2015: (JUL, 18),
|
|
191
|
+
2016: (JUL, 7),
|
|
192
|
+
2017: (JUN, 26),
|
|
193
|
+
2018: (JUN, 15),
|
|
194
|
+
2019: (JUN, 5),
|
|
195
|
+
2020: (MAY, 25),
|
|
196
|
+
2021: (MAY, 14),
|
|
197
|
+
2022: (MAY, 3),
|
|
198
|
+
2023: (APR, 21),
|
|
199
|
+
2024: (APR, 10),
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
|
|
82
203
|
class KenyaStaticHolidays:
|
|
204
|
+
"""
|
|
205
|
+
References:
|
|
206
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2015-11-24/129/eng@2015-11-24
|
|
207
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-08-01/107/eng@2017-08-01
|
|
208
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-19/156/eng@2017-10-19
|
|
209
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-10-24/159/eng@2017-10-24
|
|
210
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2017-11-23/174/eng@2017-11-23
|
|
211
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-07-29/147/eng@2022-07-29
|
|
212
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2022-09-08/182/eng@2022-09-08
|
|
213
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2023-11-06/238/eng@2023-11-06
|
|
214
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/gazette/2024-05-08/61/eng@2024-05-08
|
|
215
|
+
- https://new.kenyalaw.org/akn/ke/officialGazette/2024-10-31/184/eng@2024-10-31
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
# Election Day.
|
|
219
|
+
election_day = tr("Election Day")
|
|
220
|
+
|
|
221
|
+
# Inauguration Day.
|
|
222
|
+
inauguration_day = tr("Inauguration Day")
|
|
223
|
+
|
|
224
|
+
# Day of Mourning for Queen Elizabeth II.
|
|
225
|
+
mourning_for_queen_elizabeth = tr("Day of Mourning for Queen Elizabeth II")
|
|
226
|
+
|
|
227
|
+
# National Tree Growing Day.
|
|
228
|
+
national_tree_growing_day = tr("National Tree Growing Day")
|
|
229
|
+
|
|
83
230
|
special_public_holidays = {
|
|
84
|
-
|
|
231
|
+
# Visit of Pope Francis to Kenya.
|
|
232
|
+
2015: (NOV, 26, tr("Visit of Pope Francis to Kenya")),
|
|
233
|
+
2017: (
|
|
234
|
+
(AUG, 8, election_day),
|
|
235
|
+
(OCT, 25, election_day),
|
|
236
|
+
(OCT, 26, election_day),
|
|
237
|
+
(NOV, 28, inauguration_day),
|
|
238
|
+
),
|
|
239
|
+
# President Moi Memorial Day.
|
|
240
|
+
2020: (FEB, 11, tr("President Moi Memorial Day")),
|
|
85
241
|
2022: (
|
|
86
|
-
|
|
87
|
-
(
|
|
88
|
-
(
|
|
89
|
-
(SEP,
|
|
90
|
-
(SEP,
|
|
91
|
-
(SEP,
|
|
242
|
+
# State Funeral for Former President Mwai Kibaki.
|
|
243
|
+
(APR, 29, tr("State Funeral for Former President Mwai Kibaki")),
|
|
244
|
+
(AUG, 9, election_day),
|
|
245
|
+
(SEP, 10, mourning_for_queen_elizabeth),
|
|
246
|
+
(SEP, 11, mourning_for_queen_elizabeth),
|
|
247
|
+
(SEP, 12, mourning_for_queen_elizabeth),
|
|
248
|
+
(SEP, 13, inauguration_day),
|
|
249
|
+
),
|
|
250
|
+
2023: (NOV, 13, national_tree_growing_day),
|
|
251
|
+
2024: (
|
|
252
|
+
(MAY, 10, national_tree_growing_day),
|
|
253
|
+
(NOV, 1, inauguration_day),
|
|
92
254
|
),
|
|
93
255
|
}
|
holidays/countries/kuwait.py
CHANGED
|
@@ -31,9 +31,13 @@ class Kuwait(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
31
31
|
estimated_label = tr("(تقدير) %s")
|
|
32
32
|
supported_languages = ("ar", "en_US")
|
|
33
33
|
|
|
34
|
-
def __init__(self, *args, **kwargs):
|
|
34
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
35
|
+
"""
|
|
36
|
+
:param islamic_show_estimated:
|
|
37
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
38
|
+
"""
|
|
35
39
|
InternationalHolidays.__init__(self)
|
|
36
|
-
IslamicHolidays.__init__(self)
|
|
40
|
+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
|
|
37
41
|
super().__init__(*args, **kwargs)
|
|
38
42
|
|
|
39
43
|
def _populate_public_holidays(self):
|
holidays/countries/kyrgyzstan.py
CHANGED
|
@@ -25,10 +25,14 @@ class Kyrgyzstan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicH
|
|
|
25
25
|
|
|
26
26
|
country = "KG"
|
|
27
27
|
|
|
28
|
-
def __init__(self, *args, **kwargs):
|
|
28
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
29
|
+
"""
|
|
30
|
+
:param islamic_show_estimated:
|
|
31
|
+
Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
|
|
32
|
+
"""
|
|
29
33
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
30
34
|
InternationalHolidays.__init__(self)
|
|
31
|
-
IslamicHolidays.__init__(self)
|
|
35
|
+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
|
|
32
36
|
super().__init__(*args, **kwargs)
|
|
33
37
|
|
|
34
38
|
def _populate_public_holidays(self):
|