holidays 0.78__py3-none-any.whl → 0.80__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/calendars/__init__.py +1 -0
- holidays/calendars/chinese.py +14 -4
- holidays/calendars/ethiopian.py +31 -0
- holidays/calendars/hindu.py +1 -0
- holidays/calendars/islamic.py +16 -4
- holidays/calendars/julian.py +14 -0
- holidays/calendars/mandaean.py +59 -0
- holidays/calendars/tibetan.py +1466 -0
- holidays/constants.py +2 -1
- holidays/countries/__init__.py +20 -0
- holidays/countries/afghanistan.py +6 -39
- holidays/countries/albania.py +3 -22
- holidays/countries/argentina.py +7 -18
- holidays/countries/australia.py +191 -295
- holidays/countries/azerbaijan.py +6 -39
- holidays/countries/bahrain.py +29 -38
- holidays/countries/bhutan.py +194 -0
- holidays/countries/bosnia_and_herzegovina.py +7 -28
- holidays/countries/brunei.py +7 -117
- holidays/countries/burkina_faso.py +9 -15
- holidays/countries/burundi.py +95 -40
- holidays/countries/cameroon.py +8 -34
- holidays/countries/canada.py +9 -1
- holidays/countries/central_african_republic.py +3 -16
- holidays/countries/chad.py +9 -17
- holidays/countries/chile.py +20 -4
- holidays/countries/christmas_island.py +10 -15
- holidays/countries/cocos_islands.py +5 -24
- holidays/countries/comoros.py +121 -0
- holidays/countries/egypt.py +5 -37
- holidays/countries/eritrea.py +104 -0
- holidays/countries/ethiopia.py +18 -47
- holidays/countries/fiji.py +1 -2
- holidays/countries/gabon.py +5 -23
- holidays/countries/gambia.py +168 -0
- holidays/countries/georgia.py +9 -7
- holidays/countries/guinea.py +5 -27
- holidays/countries/guinea_bissau.py +96 -0
- holidays/countries/guyana.py +2 -17
- holidays/countries/india.py +12 -25
- holidays/countries/indonesia.py +6 -158
- holidays/countries/iran.py +16 -126
- holidays/countries/iraq.py +276 -0
- holidays/countries/kazakhstan.py +2 -18
- holidays/countries/kenya.py +2 -8
- holidays/countries/kiribati.py +124 -0
- holidays/countries/kyrgyzstan.py +2 -0
- holidays/countries/lebanon.py +5 -87
- holidays/countries/liberia.py +80 -0
- holidays/countries/libya.py +5 -37
- holidays/countries/macau.py +65 -63
- holidays/countries/malaysia.py +9 -130
- holidays/countries/maldives.py +2 -0
- holidays/countries/mali.py +4 -9
- holidays/countries/mauritania.py +2 -0
- holidays/countries/mauritius.py +1 -2
- holidays/countries/montenegro.py +3 -18
- holidays/countries/nepal.py +42 -44
- holidays/countries/niger.py +14 -74
- holidays/countries/nigeria.py +198 -27
- holidays/countries/north_macedonia.py +3 -39
- holidays/countries/oman.py +6 -28
- holidays/countries/pakistan.py +5 -30
- holidays/countries/palestine.py +2 -5
- holidays/countries/philippines.py +3 -33
- holidays/countries/qatar.py +3 -45
- holidays/countries/rwanda.py +162 -0
- holidays/countries/saudi_arabia.py +3 -0
- holidays/countries/senegal.py +6 -16
- holidays/countries/sierra_leone.py +5 -21
- holidays/countries/singapore.py +7 -59
- holidays/countries/somalia.py +79 -0
- holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
- holidays/countries/south_sudan.py +133 -0
- holidays/countries/spain.py +7 -10
- holidays/countries/sri_lanka.py +3 -14
- holidays/countries/suriname.py +11 -19
- holidays/countries/syrian_arab_republic.py +134 -0
- holidays/countries/tajikistan.py +116 -0
- holidays/countries/tanzania.py +291 -153
- holidays/countries/timor_leste.py +2 -17
- holidays/countries/togo.py +4 -29
- holidays/countries/trinidad_and_tobago.py +2 -9
- holidays/countries/turkey.py +2 -116
- holidays/countries/turkmenistan.py +164 -0
- holidays/countries/uganda.py +101 -0
- holidays/countries/united_arab_emirates.py +5 -29
- holidays/countries/uzbekistan.py +3 -31
- holidays/countries/yemen.py +8 -52
- holidays/financial/__init__.py +5 -0
- holidays/financial/national_stock_exchange_of_india.py +169 -0
- holidays/groups/__init__.py +2 -0
- holidays/groups/christian.py +48 -12
- holidays/groups/eastern.py +1 -1
- holidays/groups/international.py +17 -1
- holidays/groups/islamic.py +1 -1
- holidays/groups/mandaean.py +107 -0
- holidays/groups/tibetan.py +153 -0
- holidays/holiday_base.py +14 -0
- holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/registry.py +46 -14
- holidays/version.py +1 -1
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/METADATA +127 -9
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/RECORD +161 -113
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/WHEEL +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/top_level.txt +0 -0
|
@@ -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,
|
|
16
|
+
from holidays.calendars.gregorian import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
17
17
|
from holidays.groups import (
|
|
18
18
|
ChristianHolidays,
|
|
19
19
|
InternationalHolidays,
|
|
@@ -167,47 +167,34 @@ class CocosIslands(
|
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
class CocosIslandsIslamicHolidays(_CustomIslamicHolidays):
|
|
170
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = ((2007, 2010), (2019, 2025))
|
|
170
171
|
EID_AL_ADHA_DATES = {
|
|
171
|
-
2007: (DEC, 20),
|
|
172
|
-
2008: (DEC, 8),
|
|
173
172
|
2009: (NOV, 30),
|
|
174
|
-
2010: (NOV, 16),
|
|
175
173
|
2013: (OCT, 15),
|
|
176
174
|
2014: (OCT, 4),
|
|
177
175
|
2016: (SEP, 13),
|
|
178
176
|
2017: (SEP, 1),
|
|
179
|
-
2019: (AUG, 11),
|
|
180
|
-
2020: (JUL, 31),
|
|
181
|
-
2021: (JUL, 20),
|
|
182
|
-
2022: (JUL, 9),
|
|
183
|
-
2023: (JUN, 28),
|
|
184
177
|
2024: (JUN, 17),
|
|
185
178
|
2025: (JUN, 7),
|
|
186
179
|
}
|
|
187
180
|
|
|
181
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = ((2007, 2010), (2019, 2025))
|
|
188
182
|
EID_AL_FITR_DATES = {
|
|
189
183
|
2007: (OCT, 15),
|
|
190
|
-
2008: (OCT, 1),
|
|
191
184
|
2009: (SEP, 21),
|
|
192
|
-
2010: (SEP, 10),
|
|
193
185
|
2013: (AUG, 8),
|
|
194
186
|
2014: (JUL, 28),
|
|
195
187
|
2016: (JUL, 6),
|
|
196
188
|
2017: (JUN, 24),
|
|
197
189
|
2019: (JUN, 5),
|
|
198
|
-
2020: (MAY, 24),
|
|
199
|
-
2021: (MAY, 13),
|
|
200
190
|
2022: (MAY, 3),
|
|
201
|
-
2023: (APR, 21),
|
|
202
|
-
2024: (APR, 10),
|
|
203
191
|
2025: (MAR, 31),
|
|
204
192
|
}
|
|
205
193
|
|
|
194
|
+
HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2007, 2010)
|
|
206
195
|
HIJRI_NEW_YEAR_DATES = {
|
|
207
196
|
2007: (JAN, 22),
|
|
208
197
|
2008: (JAN, 10),
|
|
209
|
-
2009: (DEC, 18),
|
|
210
|
-
2010: (DEC, 7),
|
|
211
198
|
2013: (NOV, 4),
|
|
212
199
|
2014: (OCT, 25),
|
|
213
200
|
2016: (OCT, 3),
|
|
@@ -215,20 +202,14 @@ class CocosIslandsIslamicHolidays(_CustomIslamicHolidays):
|
|
|
215
202
|
2019: (SEP, 1),
|
|
216
203
|
}
|
|
217
204
|
|
|
205
|
+
MAWLID_DATES_CONFIRMED_YEARS = ((2007, 2010), (2019, 2025))
|
|
218
206
|
MAWLID_DATES = {
|
|
219
207
|
2007: (APR, 2),
|
|
220
|
-
2008: (MAR, 20),
|
|
221
|
-
2009: (MAR, 9),
|
|
222
|
-
2010: (FEB, 26),
|
|
223
208
|
2013: (JAN, 24),
|
|
224
209
|
2014: (JAN, 13),
|
|
225
210
|
2016: (DEC, 12),
|
|
226
211
|
2017: (DEC, 1),
|
|
227
|
-
2019: (NOV, 9),
|
|
228
|
-
2020: (OCT, 29),
|
|
229
212
|
2021: (OCT, 19),
|
|
230
|
-
2022: (OCT, 8),
|
|
231
|
-
2023: (SEP, 27),
|
|
232
213
|
2024: (SEP, 16),
|
|
233
214
|
2025: (SEP, 5),
|
|
234
215
|
}
|
|
@@ -0,0 +1,121 @@
|
|
|
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.calendars import _CustomIslamicHolidays
|
|
14
|
+
from holidays.calendars.gregorian import JAN, APR, OCT
|
|
15
|
+
from holidays.groups import (
|
|
16
|
+
ChristianHolidays,
|
|
17
|
+
IslamicHolidays,
|
|
18
|
+
InternationalHolidays,
|
|
19
|
+
StaticHolidays,
|
|
20
|
+
)
|
|
21
|
+
from holidays.holiday_base import HolidayBase
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class Comoros(
|
|
25
|
+
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
|
|
26
|
+
):
|
|
27
|
+
"""Comoros holidays.
|
|
28
|
+
|
|
29
|
+
References:
|
|
30
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_the_Comoros>
|
|
31
|
+
* [Prophet's Birthday 2021](https://web.archive.org/web/20250712053206/https://scontent-del1-2.xx.fbcdn.net/v/t39.30808-6/471586197_1113861707132176_3696210890184034016_n.jpg?_nc_cat=100&ccb=1-7&_nc_sid=833d8c&_nc_ohc=3hfvuVNGVbMQ7kNvwHvrgbW&_nc_oc=AdnuDzvtcvdBJMoN-qSW7Pnx2fnzj2TFgwMSRklpM_Na-5AaB9y8D0U5BINcxL-vVL0&_nc_zt=23&_nc_ht=scontent-del1-2.xx&_nc_gid=HWC_59SRsyDfwGxku5bqXw&oh=00_AfSk0LCPS7PARPjdX5-vfM_lr7WxZnrkA9jRyrdUFhoyMQ&oe=68736290)
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
country = "KM"
|
|
35
|
+
# %s (estimated).
|
|
36
|
+
estimated_label = "%s (estimated)"
|
|
37
|
+
# Independence from France on July 6, 1975.
|
|
38
|
+
start_year = 1976
|
|
39
|
+
|
|
40
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
41
|
+
"""
|
|
42
|
+
Args:
|
|
43
|
+
islamic_show_estimated:
|
|
44
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
45
|
+
if holiday date is estimated.
|
|
46
|
+
"""
|
|
47
|
+
ChristianHolidays.__init__(self)
|
|
48
|
+
InternationalHolidays.__init__(self)
|
|
49
|
+
IslamicHolidays.__init__(
|
|
50
|
+
self, cls=ComorosIslamicHolidays, show_estimated=islamic_show_estimated
|
|
51
|
+
)
|
|
52
|
+
StaticHolidays.__init__(self, ComorosStaticHolidays)
|
|
53
|
+
super().__init__(*args, **kwargs)
|
|
54
|
+
|
|
55
|
+
def _populate_public_holidays(self):
|
|
56
|
+
# New Year's Day.
|
|
57
|
+
self._add_new_years_day("New Year's Day")
|
|
58
|
+
|
|
59
|
+
# Cheikh al Maarouf Day.
|
|
60
|
+
self._add_holiday_mar_18("Cheikh al Maarouf Day")
|
|
61
|
+
|
|
62
|
+
# Labor Day.
|
|
63
|
+
self._add_labor_day("Labour Day")
|
|
64
|
+
|
|
65
|
+
# National Day.
|
|
66
|
+
self._add_holiday_jul_6("National Day")
|
|
67
|
+
|
|
68
|
+
if self._year >= 2006:
|
|
69
|
+
# Maore Day.
|
|
70
|
+
self._add_holiday_nov_12("Maore Day")
|
|
71
|
+
|
|
72
|
+
# Christmas Day.
|
|
73
|
+
self._add_christmas_day("Christmas Day")
|
|
74
|
+
|
|
75
|
+
# Islamic New Year.
|
|
76
|
+
self._add_islamic_new_year_day("Islamic New Year")
|
|
77
|
+
|
|
78
|
+
# Prophet's Birthday.
|
|
79
|
+
self._add_mawlid_day("Prophet's Birthday")
|
|
80
|
+
|
|
81
|
+
# Isra' and Mi'raj.
|
|
82
|
+
self._add_isra_and_miraj_day("Isra' and Mi'raj")
|
|
83
|
+
|
|
84
|
+
# Eid al-Fitr.
|
|
85
|
+
name = "Eid al-Fitr"
|
|
86
|
+
self._add_eid_al_fitr_day(name)
|
|
87
|
+
self._add_eid_al_fitr_day_two(name)
|
|
88
|
+
self._add_eid_al_fitr_day_three(name)
|
|
89
|
+
|
|
90
|
+
# Eid al-Adha.
|
|
91
|
+
name = "Eid al-Adha"
|
|
92
|
+
self._add_eid_al_adha_day(name)
|
|
93
|
+
self._add_eid_al_adha_day_two(name)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class KM(Comoros):
|
|
97
|
+
pass
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class COM(Comoros):
|
|
101
|
+
pass
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class ComorosIslamicHolidays(_CustomIslamicHolidays):
|
|
105
|
+
MAWLID_DATES = {
|
|
106
|
+
2021: (OCT, 19),
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class ComorosStaticHolidays:
|
|
111
|
+
"""Comoros special holidays.
|
|
112
|
+
|
|
113
|
+
References:
|
|
114
|
+
* [Décret N°24-056PR](https://web.archive.org/web/20250717033820/https://munganyo.km/decrees/225)
|
|
115
|
+
* [Décret N°25-008PR](https://web.archive.org/web/20250715223159/https://munganyo.km/decrees/374)
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
special_public_holidays = {
|
|
119
|
+
2024: (APR, 13, "National Holiday"),
|
|
120
|
+
2025: (JAN, 30, "Election Partial Day Holiday"),
|
|
121
|
+
}
|
holidays/countries/egypt.py
CHANGED
|
@@ -13,23 +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
|
|
17
|
-
JAN,
|
|
18
|
-
MAR,
|
|
19
|
-
APR,
|
|
20
|
-
MAY,
|
|
21
|
-
JUN,
|
|
22
|
-
JUL,
|
|
23
|
-
AUG,
|
|
24
|
-
SEP,
|
|
25
|
-
OCT,
|
|
26
|
-
MON,
|
|
27
|
-
TUE,
|
|
28
|
-
WED,
|
|
29
|
-
FRI,
|
|
30
|
-
SAT,
|
|
31
|
-
SUN,
|
|
32
|
-
)
|
|
16
|
+
from holidays.calendars.gregorian import JAN, APR, MAY, JUL, AUG, SEP, MON, TUE, WED, FRI, SAT, SUN
|
|
33
17
|
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
34
18
|
from holidays.constants import GOVERNMENT, PUBLIC, SCHOOL
|
|
35
19
|
from holidays.groups import (
|
|
@@ -183,40 +167,24 @@ class EGY(Egypt):
|
|
|
183
167
|
|
|
184
168
|
|
|
185
169
|
class EgyptIslamicHolidays(_CustomIslamicHolidays):
|
|
170
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
186
171
|
EID_AL_ADHA_DATES = {
|
|
187
|
-
2020: (JUL, 31),
|
|
188
|
-
2021: (JUL, 20),
|
|
189
172
|
2022: (JUL, 10),
|
|
190
|
-
2023: (JUN, 28),
|
|
191
|
-
2024: (JUN, 16),
|
|
192
|
-
2025: (JUN, 6),
|
|
193
173
|
}
|
|
194
174
|
|
|
175
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
195
176
|
EID_AL_FITR_DATES = {
|
|
196
|
-
2020: (MAY, 24),
|
|
197
|
-
2021: (MAY, 13),
|
|
198
177
|
2022: (MAY, 1),
|
|
199
|
-
2023: (APR, 21),
|
|
200
|
-
2024: (APR, 10),
|
|
201
|
-
2025: (MAR, 30),
|
|
202
178
|
}
|
|
203
179
|
|
|
180
|
+
HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
204
181
|
HIJRI_NEW_YEAR_DATES = {
|
|
205
|
-
2020: (AUG, 20),
|
|
206
182
|
2021: (AUG, 11),
|
|
207
|
-
2022: (JUL, 30),
|
|
208
|
-
2023: (JUL, 19),
|
|
209
|
-
2024: (JUL, 7),
|
|
210
|
-
2025: (JUN, 26),
|
|
211
183
|
}
|
|
212
184
|
|
|
185
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
213
186
|
MAWLID_DATES = {
|
|
214
|
-
2020: (OCT, 29),
|
|
215
|
-
2021: (OCT, 18),
|
|
216
|
-
2022: (OCT, 8),
|
|
217
187
|
2023: (SEP, 28),
|
|
218
|
-
2024: (SEP, 15),
|
|
219
|
-
2025: (SEP, 4),
|
|
220
188
|
}
|
|
221
189
|
|
|
222
190
|
|
|
@@ -0,0 +1,104 @@
|
|
|
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.calendars.ethiopian import ETHIOPIAN_CALENDAR
|
|
14
|
+
from holidays.constants import GOVERNMENT, PUBLIC
|
|
15
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
16
|
+
from holidays.holiday_base import HolidayBase
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Eritrea(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
20
|
+
"""Eritrea holidays.
|
|
21
|
+
|
|
22
|
+
References:
|
|
23
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Eritrea>
|
|
24
|
+
* <https://web.archive.org/web/20230313234629/https://explore-eritrea.com/working-hours-and-holidays/>
|
|
25
|
+
* <https://web.archive.org/web/20110903130335/http://www.eritrea.be/old/eritrea-religions.htm>
|
|
26
|
+
* <https://web.archive.org/web/20250820085307/https://www.mintageworld.com/media/detail/11411-fenkil-day-in-eritrea/>
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
country = "ER"
|
|
30
|
+
# %s (estimated).
|
|
31
|
+
estimated_label = "%s (estimated)"
|
|
32
|
+
# On 28 May 1993, Eritrea was admitted into the United Nations as the 182nd member state.
|
|
33
|
+
start_year = 1994
|
|
34
|
+
supported_categories = (GOVERNMENT, PUBLIC)
|
|
35
|
+
|
|
36
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
37
|
+
"""
|
|
38
|
+
Args:
|
|
39
|
+
islamic_show_estimated:
|
|
40
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
41
|
+
if holiday date is estimated.
|
|
42
|
+
"""
|
|
43
|
+
ChristianHolidays.__init__(self, ETHIOPIAN_CALENDAR)
|
|
44
|
+
InternationalHolidays.__init__(self)
|
|
45
|
+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
|
|
46
|
+
super().__init__(*args, **kwargs)
|
|
47
|
+
|
|
48
|
+
def _populate_public_holidays(self):
|
|
49
|
+
# New Year's Day.
|
|
50
|
+
self._add_new_years_day("New Year's Day")
|
|
51
|
+
|
|
52
|
+
# Orthodox Christmas.
|
|
53
|
+
self._add_christmas_day("Orthodox Christmas")
|
|
54
|
+
|
|
55
|
+
# Epiphany.
|
|
56
|
+
self._add_epiphany_day("Epiphany")
|
|
57
|
+
|
|
58
|
+
# Women's Day.
|
|
59
|
+
self._add_womens_day("Women's Day")
|
|
60
|
+
|
|
61
|
+
# Good Friday.
|
|
62
|
+
self._add_good_friday("Good Friday")
|
|
63
|
+
|
|
64
|
+
# Orthodox Easter.
|
|
65
|
+
self._add_easter_sunday("Orthodox Easter")
|
|
66
|
+
|
|
67
|
+
# International Workers' Day.
|
|
68
|
+
self._add_labor_day("International Workers' Day")
|
|
69
|
+
|
|
70
|
+
# Independence Day.
|
|
71
|
+
self._add_holiday_may_24("Independence Day")
|
|
72
|
+
|
|
73
|
+
# Martyrs' Day.
|
|
74
|
+
self._add_holiday_jun_20("Martyrs' Day")
|
|
75
|
+
|
|
76
|
+
# Revolution Day.
|
|
77
|
+
self._add_holiday_sep_1("Revolution Day")
|
|
78
|
+
|
|
79
|
+
# Ethiopian New Year.
|
|
80
|
+
self._add_ethiopian_new_year("Ethiopian New Year")
|
|
81
|
+
|
|
82
|
+
# Finding of the True Cross.
|
|
83
|
+
self._add_finding_of_true_cross("Finding of the True Cross")
|
|
84
|
+
|
|
85
|
+
# Prophet's Birthday.
|
|
86
|
+
self._add_mawlid_day("Prophet's Birthday")
|
|
87
|
+
|
|
88
|
+
# Eid al-Fitr.
|
|
89
|
+
self._add_eid_al_fitr_day("Eid al-Fitr")
|
|
90
|
+
|
|
91
|
+
# Eid al-Adha.
|
|
92
|
+
self._add_eid_al_adha_day("Eid al-Adha")
|
|
93
|
+
|
|
94
|
+
def _populate_government_holidays(self):
|
|
95
|
+
# Fenkil Day.
|
|
96
|
+
self._add_holiday_feb_10("Fenkil Day")
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class ER(Eritrea):
|
|
100
|
+
pass
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class ERI(Eritrea):
|
|
104
|
+
pass
|
holidays/countries/ethiopia.py
CHANGED
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from calendar import isleap
|
|
14
13
|
from gettext import gettext as tr
|
|
15
14
|
|
|
16
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
17
|
-
from holidays.calendars.
|
|
18
|
-
from holidays.calendars.
|
|
16
|
+
from holidays.calendars.ethiopian import ETHIOPIAN_CALENDAR, is_ethiopian_leap_year
|
|
17
|
+
from holidays.calendars.gregorian import AUG, SEP, NOV
|
|
19
18
|
from holidays.constants import PUBLIC, WORKDAY
|
|
20
19
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
21
20
|
from holidays.holiday_base import HolidayBase
|
|
@@ -30,7 +29,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
|
|
|
30
29
|
* <https://web.archive.org/web/20250427173714/https://www.edarabia.com/ethiopia/public-holidays/>
|
|
31
30
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Ethiopia>
|
|
32
31
|
* <https://en.wikipedia.org/wiki/Nations,_Nationalities_and_Peoples'_Day>
|
|
33
|
-
* <https://web.archive.org/web/
|
|
32
|
+
* <https://web.archive.org/web/20250811041201/https://www.timeanddate.com/holidays/ethiopia/2025>
|
|
34
33
|
"""
|
|
35
34
|
|
|
36
35
|
country = "ET"
|
|
@@ -42,22 +41,6 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
|
|
|
42
41
|
supported_categories = (PUBLIC, WORKDAY)
|
|
43
42
|
supported_languages = ("am", "ar", "en_ET", "en_US")
|
|
44
43
|
|
|
45
|
-
def _is_leap_year(self) -> bool:
|
|
46
|
-
"""Determine if the Ethiopian calendar year is a leap year.
|
|
47
|
-
|
|
48
|
-
Ethiopian leap years generally align with Gregorian leap years until
|
|
49
|
-
February 2100. However, the Ethiopian calendar starts earlier (on September 11),
|
|
50
|
-
which affects holidays between September 11 and January 1.
|
|
51
|
-
|
|
52
|
-
To account for this shift, the method checks whether next year is a leap year
|
|
53
|
-
in the Gregorian calendar.
|
|
54
|
-
|
|
55
|
-
Returns:
|
|
56
|
-
`True` if the Ethiopian year is a leap year, `False` otherwise.
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
return isleap(self._year + 1)
|
|
60
|
-
|
|
61
44
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
62
45
|
"""
|
|
63
46
|
Args:
|
|
@@ -65,7 +48,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
|
|
|
65
48
|
Whether to add "estimated" label to Islamic holidays name
|
|
66
49
|
if holiday date is estimated.
|
|
67
50
|
"""
|
|
68
|
-
ChristianHolidays.__init__(self,
|
|
51
|
+
ChristianHolidays.__init__(self, ETHIOPIAN_CALENDAR)
|
|
69
52
|
InternationalHolidays.__init__(self)
|
|
70
53
|
IslamicHolidays.__init__(
|
|
71
54
|
self, cls=EthiopiaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
@@ -77,7 +60,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
|
|
|
77
60
|
self._add_christmas_day(tr("የገና ወይም የልደት በዓል"))
|
|
78
61
|
|
|
79
62
|
# Epiphany.
|
|
80
|
-
self.
|
|
63
|
+
self._add_epiphany_day(tr("የጥምቀት በዓል"))
|
|
81
64
|
|
|
82
65
|
if self._year >= 1996:
|
|
83
66
|
# Adwa Victory Day.
|
|
@@ -100,14 +83,19 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
|
|
|
100
83
|
self._add_holiday_may_28(tr("ደርግ የወደቀበት ቀን"))
|
|
101
84
|
|
|
102
85
|
# Ethiopian New Year.
|
|
103
|
-
self.
|
|
86
|
+
self._add_ethiopian_new_year(tr("የዘመን መለወጫ (እንቁጣጣሽ) በዓል"))
|
|
104
87
|
|
|
105
88
|
# Finding of True Cross.
|
|
106
|
-
self.
|
|
89
|
+
self._add_finding_of_true_cross(tr("የመስቀል በዓል"))
|
|
107
90
|
|
|
108
91
|
if self._year <= 1990:
|
|
109
|
-
#
|
|
110
|
-
self._add_holiday(
|
|
92
|
+
# Julian Date Drift shouldn't affect this one.
|
|
93
|
+
self._add_holiday(
|
|
94
|
+
# Popular Revolution Commemoration Day.
|
|
95
|
+
tr("የአብዮት ቀን"),
|
|
96
|
+
SEP,
|
|
97
|
+
13 if is_ethiopian_leap_year(self._year) else 12,
|
|
98
|
+
)
|
|
111
99
|
|
|
112
100
|
# October Revolution Day.
|
|
113
101
|
self._add_holiday_nov_7(tr("የጥቅምት አብዮት ቀን"))
|
|
@@ -139,33 +127,16 @@ class ETH(Ethiopia):
|
|
|
139
127
|
|
|
140
128
|
|
|
141
129
|
class EthiopiaIslamicHolidays(_CustomIslamicHolidays):
|
|
130
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
142
131
|
EID_AL_ADHA_DATES = {
|
|
143
132
|
2018: (AUG, 22),
|
|
144
|
-
2019: (AUG, 11),
|
|
145
|
-
2020: (JUL, 31),
|
|
146
|
-
2021: (JUL, 20),
|
|
147
|
-
2022: (JUL, 9),
|
|
148
|
-
2023: (JUN, 28),
|
|
149
|
-
2024: (JUN, 16),
|
|
150
133
|
}
|
|
151
134
|
|
|
152
|
-
|
|
153
|
-
2018: (JUN, 15),
|
|
154
|
-
2019: (JUN, 4),
|
|
155
|
-
2020: (MAY, 24),
|
|
156
|
-
2021: (MAY, 13),
|
|
157
|
-
2022: (MAY, 2),
|
|
158
|
-
2023: (APR, 21),
|
|
159
|
-
2024: (APR, 10),
|
|
160
|
-
2025: (MAR, 30),
|
|
161
|
-
}
|
|
135
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
162
136
|
|
|
137
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
163
138
|
MAWLID_DATES = {
|
|
164
139
|
2018: (NOV, 21),
|
|
165
140
|
2019: (NOV, 10),
|
|
166
|
-
|
|
167
|
-
2021: (OCT, 18),
|
|
168
|
-
2022: (OCT, 8),
|
|
169
|
-
2023: (SEP, 27),
|
|
170
|
-
2024: (SEP, 15),
|
|
141
|
+
2025: (SEP, 5),
|
|
171
142
|
}
|
holidays/countries/fiji.py
CHANGED
|
@@ -169,13 +169,12 @@ class FijiHinduHolidays(_CustomHinduHolidays):
|
|
|
169
169
|
|
|
170
170
|
|
|
171
171
|
class FijiIslamicHolidays(_CustomIslamicHolidays):
|
|
172
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2016, 2025)
|
|
172
173
|
MAWLID_DATES = {
|
|
173
174
|
2016: (DEC, 12),
|
|
174
175
|
2017: (DEC, 2),
|
|
175
176
|
2018: (NOV, 19),
|
|
176
|
-
2019: (NOV, 9),
|
|
177
177
|
2020: (OCT, 31),
|
|
178
|
-
2021: (OCT, 18),
|
|
179
178
|
2022: (OCT, 7), # looks like observed on FRI
|
|
180
179
|
2023: (SEP, 30),
|
|
181
180
|
2024: (SEP, 16),
|
holidays/countries/gabon.py
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from holidays.calendars import _CustomIslamicHolidays
|
|
14
|
-
from holidays.calendars.gregorian import
|
|
14
|
+
from holidays.calendars.gregorian import FEB, MAR, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
15
15
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
16
16
|
from holidays.holiday_base import HolidayBase
|
|
17
17
|
|
|
@@ -27,6 +27,8 @@ class Gabon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolida
|
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
country = "GA"
|
|
30
|
+
# %s (estimated).
|
|
31
|
+
estimated_label = "%s (estimated)"
|
|
30
32
|
# On 17 August 1960, Gabon gained independence from France.
|
|
31
33
|
start_year = 1961
|
|
32
34
|
|
|
@@ -93,55 +95,35 @@ class GAB(Gabon):
|
|
|
93
95
|
|
|
94
96
|
|
|
95
97
|
class GabonIslamicHolidays(_CustomIslamicHolidays):
|
|
98
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2023)
|
|
96
99
|
EID_AL_ADHA_DATES = {
|
|
97
100
|
2001: (MAR, 6),
|
|
98
101
|
2002: (FEB, 23),
|
|
99
102
|
2003: (FEB, 12),
|
|
100
103
|
2004: (FEB, 2),
|
|
101
|
-
2005: (JAN, 21),
|
|
102
|
-
2006: ((JAN, 10), (DEC, 31)),
|
|
103
|
-
2007: (DEC, 20),
|
|
104
104
|
2008: (DEC, 9),
|
|
105
105
|
2009: (NOV, 28),
|
|
106
106
|
2010: (NOV, 17),
|
|
107
107
|
2011: (NOV, 7),
|
|
108
|
-
2012: (OCT, 26),
|
|
109
|
-
2013: (OCT, 15),
|
|
110
108
|
2014: (OCT, 5),
|
|
111
109
|
2015: (SEP, 24),
|
|
112
110
|
2016: (SEP, 13),
|
|
113
111
|
2017: (SEP, 2),
|
|
114
112
|
2018: (AUG, 22),
|
|
115
|
-
2019: (AUG, 11),
|
|
116
|
-
2020: (JUL, 31),
|
|
117
|
-
2021: (JUL, 20),
|
|
118
|
-
2022: (JUL, 9),
|
|
119
|
-
2023: (JUN, 28),
|
|
120
113
|
}
|
|
121
114
|
|
|
115
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2024)
|
|
122
116
|
EID_AL_FITR_DATES = {
|
|
123
117
|
2001: (DEC, 17),
|
|
124
118
|
2002: (DEC, 6),
|
|
125
119
|
2003: (NOV, 26),
|
|
126
|
-
2004: (NOV, 14),
|
|
127
120
|
2005: (NOV, 4),
|
|
128
121
|
2006: (OCT, 24),
|
|
129
|
-
2007: (OCT, 13),
|
|
130
122
|
2008: (OCT, 2),
|
|
131
123
|
2009: (SEP, 21),
|
|
132
|
-
2010: (SEP, 10),
|
|
133
124
|
2011: (AUG, 31),
|
|
134
|
-
2012: (AUG, 19),
|
|
135
|
-
2013: (AUG, 8),
|
|
136
125
|
2014: (JUL, 29),
|
|
137
126
|
2015: (JUL, 18),
|
|
138
127
|
2016: (JUL, 7),
|
|
139
128
|
2017: (JUN, 26),
|
|
140
|
-
2018: (JUN, 15),
|
|
141
|
-
2019: (JUN, 4),
|
|
142
|
-
2020: (MAY, 24),
|
|
143
|
-
2021: (MAY, 13),
|
|
144
|
-
2022: (MAY, 2),
|
|
145
|
-
2023: (APR, 21),
|
|
146
|
-
2024: (APR, 10),
|
|
147
129
|
}
|