holidays 0.76__py3-none-any.whl → 0.78__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/islamic.py +32 -1
- holidays/countries/__init__.py +20 -0
- holidays/countries/australia.py +6 -8
- holidays/countries/british_virgin_islands.py +6 -6
- holidays/countries/cabo_verde.py +293 -0
- holidays/countries/cayman_islands.py +162 -0
- holidays/countries/central_african_republic.py +143 -0
- holidays/countries/christmas_island.py +215 -0
- holidays/countries/cocos_islands.py +4 -4
- holidays/countries/dr_congo.py +139 -0
- holidays/countries/egypt.py +203 -47
- holidays/countries/faroe_islands.py +102 -0
- holidays/countries/georgia.py +11 -5
- holidays/countries/germany.py +41 -0
- holidays/countries/gibraltar.py +219 -0
- holidays/countries/guernsey.py +6 -6
- holidays/countries/indonesia.py +5 -2
- holidays/countries/japan.py +6 -8
- holidays/countries/jersey.py +2 -2
- holidays/countries/lebanon.py +448 -0
- holidays/countries/luxembourg.py +13 -0
- holidays/countries/mali.py +151 -0
- holidays/countries/montserrat.py +177 -0
- holidays/countries/nepal.py +8 -8
- holidays/countries/new_zealand.py +2 -2
- holidays/countries/niue.py +115 -0
- holidays/countries/norfolk_island.py +129 -0
- holidays/countries/pakistan.py +7 -5
- holidays/countries/palau.py +1 -1
- holidays/countries/palestine.py +177 -0
- holidays/countries/peru.py +12 -0
- holidays/countries/pitcairn_islands.py +85 -0
- holidays/countries/saint_vincent_and_the_grenadines.py +130 -0
- holidays/countries/saudi_arabia.py +43 -35
- holidays/countries/seychelles.py +1 -1
- holidays/countries/solomon_islands.py +2 -2
- holidays/countries/tokelau.py +66 -0
- holidays/countries/turks_and_caicos_islands.py +2 -2
- holidays/countries/united_kingdom.py +2 -2
- holidays/countries/united_states.py +2 -5
- holidays/groups/christian.py +10 -10
- holidays/groups/hebrew.py +2 -2
- holidays/groups/islamic.py +17 -10
- holidays/holiday_base.py +73 -92
- holidays/locale/ar/LC_MESSAGES/LB.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/PS.mo +0 -0
- holidays/locale/{ar → ar_EG}/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/da/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/de/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/de/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/de/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/en_CX/LC_MESSAGES/CX.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/GI.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/KY.mo +0 -0
- holidays/locale/en_MS/LC_MESSAGES/MS.mo +0 -0
- holidays/locale/en_NF/LC_MESSAGES/NF.mo +0 -0
- holidays/locale/en_NU/LC_MESSAGES/NU.mo +0 -0
- holidays/locale/en_TK/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CX.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LB.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ML.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VC.mo +0 -0
- holidays/locale/en_VC/LC_MESSAGES/VC.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/fo/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CD.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CF.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/ML.mo +0 -0
- holidays/locale/is/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/lb/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/no/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/pt_CV/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/tkl/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PE.mo +0 -0
- holidays/observed_holiday_base.py +3 -1
- holidays/registry.py +16 -0
- holidays/utils.py +18 -18
- holidays/version.py +1 -1
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/METADATA +118 -6
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/RECORD +106 -51
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/licenses/CONTRIBUTORS +4 -0
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/WHEEL +0 -0
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.76.dist-info → holidays-0.78.dist-info}/top_level.txt +0 -0
holidays/countries/egypt.py
CHANGED
|
@@ -12,20 +12,63 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.calendars
|
|
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
33
|
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
17
|
-
from holidays.
|
|
18
|
-
from holidays.
|
|
34
|
+
from holidays.constants import GOVERNMENT, PUBLIC, SCHOOL
|
|
35
|
+
from holidays.groups import (
|
|
36
|
+
ChristianHolidays,
|
|
37
|
+
IslamicHolidays,
|
|
38
|
+
InternationalHolidays,
|
|
39
|
+
StaticHolidays,
|
|
40
|
+
)
|
|
41
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, ObservedRule
|
|
19
42
|
|
|
43
|
+
EG_OBSERVED_RULE = ObservedRule({MON: +3, TUE: +2, WED: +1, SUN: +4})
|
|
20
44
|
|
|
21
|
-
|
|
22
|
-
|
|
45
|
+
|
|
46
|
+
class Egypt(
|
|
47
|
+
ObservedHolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolidays, StaticHolidays
|
|
48
|
+
):
|
|
49
|
+
"""Egypt holidays.
|
|
50
|
+
|
|
51
|
+
References:
|
|
52
|
+
* <https://ar.wikipedia.org/wiki/قائمة_العطل_الرسمية_في_مصر>
|
|
53
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Egypt>
|
|
54
|
+
* [National Holidays (Arabic)](https://web.archive.org/web/20250614072551/https://www.presidency.eg/ar/مصر/العطلات-الرسمية/)
|
|
55
|
+
* [National Holidays (English)](https://web.archive.org/web/20250529043734/https://www.presidency.eg/en/مصر/العطلات-الرسمية/)
|
|
56
|
+
* [National Holidays (French)](https://web.archive.org/web/20250608173134/https://www.presidency.eg/fr/مصر/العطلات-الرسمية/)
|
|
57
|
+
* [Ministerial Decision 1193](https://web.archive.org/web/20250423073350/https://manshurat.org/node/44922)
|
|
58
|
+
"""
|
|
23
59
|
|
|
24
60
|
country = "EG"
|
|
25
|
-
default_language = "
|
|
61
|
+
default_language = "ar_EG"
|
|
26
62
|
# %s (estimated).
|
|
27
63
|
estimated_label = tr("%s (المقدرة)")
|
|
28
|
-
|
|
64
|
+
# %s (observed).
|
|
65
|
+
observed_label = tr("%s (ملاحظة)")
|
|
66
|
+
# %s (observed, estimated).
|
|
67
|
+
observed_estimated_label = tr("%s (المقدرة، ملاحظة)")
|
|
68
|
+
# Republic of Egypt was declared on 18 June 1953.
|
|
69
|
+
start_year = 1954
|
|
70
|
+
supported_categories = (GOVERNMENT, PUBLIC, SCHOOL)
|
|
71
|
+
supported_languages = ("ar_EG", "en_US", "fr")
|
|
29
72
|
weekend = {FRI, SAT}
|
|
30
73
|
|
|
31
74
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
@@ -37,67 +80,98 @@ class Egypt(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolida
|
|
|
37
80
|
"""
|
|
38
81
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
39
82
|
InternationalHolidays.__init__(self)
|
|
40
|
-
IslamicHolidays.__init__(
|
|
83
|
+
IslamicHolidays.__init__(
|
|
84
|
+
self, cls=EgyptIslamicHolidays, show_estimated=islamic_show_estimated
|
|
85
|
+
)
|
|
86
|
+
StaticHolidays.__init__(self, cls=EgyptStaticHolidays)
|
|
87
|
+
kwargs.setdefault("observed_rule", EG_OBSERVED_RULE)
|
|
88
|
+
kwargs.setdefault("observed_since", 2020)
|
|
41
89
|
super().__init__(*args, **kwargs)
|
|
42
90
|
|
|
43
91
|
def _populate_public_holidays(self):
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
# Coptic Christmas Day.
|
|
48
|
-
self._add_christmas_day(tr("عيد الميلاد المجيد (تقويم قبطي)"))
|
|
92
|
+
if self._year >= 2002 and self._year not in {2022, 2023}:
|
|
93
|
+
# Coptic Christmas Day.
|
|
94
|
+
self._add_christmas_day(tr("عيد الميلاد المجيد"))
|
|
49
95
|
|
|
50
|
-
if self._year >=
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
96
|
+
if self._year >= 2009:
|
|
97
|
+
self._move_holiday(
|
|
98
|
+
self._add_holiday_jan_25(
|
|
99
|
+
# January 25th Revolution and National Police Day.
|
|
100
|
+
tr("ثورة ٢٥ يناير وعيد الشرطة")
|
|
101
|
+
if self._year >= 2012
|
|
102
|
+
# National Police Day.
|
|
103
|
+
else tr("عيد الشرطة")
|
|
104
|
+
)
|
|
105
|
+
)
|
|
56
106
|
|
|
57
|
-
|
|
58
|
-
|
|
107
|
+
if self._year >= 1983:
|
|
108
|
+
# Sinai Liberation Day.
|
|
109
|
+
dt = self._add_holiday_apr_25(tr("عيد تحرير سيناء"))
|
|
110
|
+
if self._year != 2022:
|
|
111
|
+
self._move_holiday(dt)
|
|
59
112
|
|
|
60
113
|
# Spring Festival.
|
|
61
|
-
self._add_easter_monday(tr("شم النسيم"))
|
|
62
|
-
|
|
63
|
-
if self._year > 1982:
|
|
64
|
-
# Sinai Liberation Day.
|
|
65
|
-
self._add_holiday_apr_25(tr("عيد تحرير سيناء"))
|
|
114
|
+
self._add_easter_monday(tr("عيد شم النسيم"))
|
|
66
115
|
|
|
67
116
|
# Labor Day.
|
|
68
|
-
self.
|
|
69
|
-
|
|
70
|
-
# Armed Forces Day.
|
|
71
|
-
self._add_holiday_oct_6(tr("عيد القوات المسلحة"))
|
|
117
|
+
if self._year != 2024:
|
|
118
|
+
self._move_holiday(self._add_labor_day(tr("عيد العمال")))
|
|
72
119
|
|
|
73
120
|
if self._year >= 2014:
|
|
74
121
|
# June 30 Revolution Day.
|
|
75
|
-
self._add_holiday_jun_30(tr("عيد ثورة
|
|
122
|
+
dt = self._add_holiday_jun_30(tr("عيد ثورة ٣٠ يونيو"))
|
|
123
|
+
if self._year != 2024:
|
|
124
|
+
self._move_holiday(dt)
|
|
76
125
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
126
|
+
# July 23 Revolution Day.
|
|
127
|
+
dt = self._add_holiday_jul_23(tr("عيد ثورة ٢٣ يوليو"))
|
|
128
|
+
if self._year != 2023:
|
|
129
|
+
self._move_holiday(dt)
|
|
130
|
+
|
|
131
|
+
# Armed Forces Day.
|
|
132
|
+
dt = self._add_holiday_oct_6(tr("عيد القوات المسلحة"))
|
|
133
|
+
if self._year != 2024:
|
|
134
|
+
self._move_holiday(dt)
|
|
135
|
+
|
|
136
|
+
# Islamic New Year.
|
|
137
|
+
for dt in self._add_islamic_new_year_day(tr("رأس السنة الهجرية")):
|
|
138
|
+
self._move_holiday(dt)
|
|
139
|
+
|
|
140
|
+
# Prophet's Birthday.
|
|
141
|
+
self._add_mawlid_day(tr("المولد النبوي الشريف"))
|
|
80
142
|
|
|
81
143
|
# Eid al-Fitr.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
self._add_eid_al_fitr_day_two(
|
|
85
|
-
self._add_eid_al_fitr_day_three(tr("عطلة عيد الفطر"))
|
|
144
|
+
name = tr("عيد الفطر المبارك")
|
|
145
|
+
self._add_eid_al_fitr_day(name)
|
|
146
|
+
self._add_eid_al_fitr_day_two(name)
|
|
86
147
|
|
|
87
148
|
# Arafat Day.
|
|
88
|
-
self._add_arafah_day(tr("
|
|
149
|
+
self._add_arafah_day(tr("وقفة عيد الأضحى المبارك"))
|
|
89
150
|
|
|
90
151
|
# Eid al-Adha.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
self._add_eid_al_adha_day_two(
|
|
94
|
-
self._add_eid_al_adha_day_three(
|
|
152
|
+
name = tr("عيد الأضحى المبارك")
|
|
153
|
+
self._add_eid_al_adha_day(name)
|
|
154
|
+
self._add_eid_al_adha_day_two(name)
|
|
155
|
+
self._add_eid_al_adha_day_three(name)
|
|
95
156
|
|
|
96
|
-
|
|
97
|
-
self.
|
|
157
|
+
def _populate_government_holidays(self):
|
|
158
|
+
if self._year >= 2019:
|
|
159
|
+
# Eid al-Fitr.
|
|
160
|
+
name = tr("عيد الفطر المبارك")
|
|
161
|
+
self._add_eid_al_fitr_eve(name)
|
|
162
|
+
self._add_eid_al_fitr_day_three(name)
|
|
98
163
|
|
|
99
|
-
|
|
100
|
-
|
|
164
|
+
if self._year >= 2018:
|
|
165
|
+
# Eid al-Adha.
|
|
166
|
+
self._add_eid_al_adha_day_four(tr("عيد الأضحى المبارك"))
|
|
167
|
+
|
|
168
|
+
def _populate_school_holidays(self):
|
|
169
|
+
if self._year >= 2019:
|
|
170
|
+
# Taba Liberation Day.
|
|
171
|
+
self._add_holiday_mar_19(tr("عيد تحرير طابا"))
|
|
172
|
+
|
|
173
|
+
# Evacuation Day.
|
|
174
|
+
self._add_holiday_jun_18(tr("عيد الجلاء"))
|
|
101
175
|
|
|
102
176
|
|
|
103
177
|
class EG(Egypt):
|
|
@@ -106,3 +180,85 @@ class EG(Egypt):
|
|
|
106
180
|
|
|
107
181
|
class EGY(Egypt):
|
|
108
182
|
pass
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
class EgyptIslamicHolidays(_CustomIslamicHolidays):
|
|
186
|
+
EID_AL_ADHA_DATES = {
|
|
187
|
+
2020: (JUL, 31),
|
|
188
|
+
2021: (JUL, 20),
|
|
189
|
+
2022: (JUL, 10),
|
|
190
|
+
2023: (JUN, 28),
|
|
191
|
+
2024: (JUN, 16),
|
|
192
|
+
2025: (JUN, 6),
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
EID_AL_FITR_DATES = {
|
|
196
|
+
2020: (MAY, 24),
|
|
197
|
+
2021: (MAY, 13),
|
|
198
|
+
2022: (MAY, 1),
|
|
199
|
+
2023: (APR, 21),
|
|
200
|
+
2024: (APR, 10),
|
|
201
|
+
2025: (MAR, 30),
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
HIJRI_NEW_YEAR_DATES = {
|
|
205
|
+
2020: (AUG, 20),
|
|
206
|
+
2021: (AUG, 11),
|
|
207
|
+
2022: (JUL, 30),
|
|
208
|
+
2023: (JUL, 19),
|
|
209
|
+
2024: (JUL, 7),
|
|
210
|
+
2025: (JUN, 26),
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
MAWLID_DATES = {
|
|
214
|
+
2020: (OCT, 29),
|
|
215
|
+
2021: (OCT, 18),
|
|
216
|
+
2022: (OCT, 8),
|
|
217
|
+
2023: (SEP, 28),
|
|
218
|
+
2024: (SEP, 15),
|
|
219
|
+
2025: (SEP, 4),
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
class EgyptStaticHolidays:
|
|
224
|
+
"""Egypt special holidays.
|
|
225
|
+
|
|
226
|
+
References:
|
|
227
|
+
* [2022 Coptic Christmas](https://web.archive.org/web/20240227004025/https://english.ahram.org.eg/NewsContent/1/2/454491/Egypt/Society/Thursday-paid-day-off-at-public-sector-in-Egypt-fo.aspx)
|
|
228
|
+
"""
|
|
229
|
+
|
|
230
|
+
# Coptic Christmas Day.
|
|
231
|
+
coptic_christmas_day = tr("عيد الميلاد المجيد")
|
|
232
|
+
|
|
233
|
+
# Eid al-Adha.
|
|
234
|
+
eid_al_adha = tr("عيد الأضحى المبارك")
|
|
235
|
+
|
|
236
|
+
# Eid al-Fitr.
|
|
237
|
+
eid_al_fitr = tr("عيد الفطر المبارك")
|
|
238
|
+
|
|
239
|
+
special_public_holidays = {
|
|
240
|
+
2021: (
|
|
241
|
+
(JUL, 17, eid_al_adha),
|
|
242
|
+
(JUL, 18, eid_al_adha),
|
|
243
|
+
),
|
|
244
|
+
2022: (
|
|
245
|
+
(JUL, 13, eid_al_adha),
|
|
246
|
+
(JUL, 14, eid_al_adha),
|
|
247
|
+
),
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
special_public_holidays_observed = {
|
|
251
|
+
2022: (
|
|
252
|
+
(JAN, 6, coptic_christmas_day),
|
|
253
|
+
(MAY, 4, eid_al_fitr),
|
|
254
|
+
),
|
|
255
|
+
2023: (
|
|
256
|
+
(JAN, 8, coptic_christmas_day),
|
|
257
|
+
(APR, 24, eid_al_fitr),
|
|
258
|
+
# June 30 Revolution Day.
|
|
259
|
+
(JUL, 2, tr("عيد ثورة ٣٠ يونيو")),
|
|
260
|
+
(JUL, 3, eid_al_adha),
|
|
261
|
+
),
|
|
262
|
+
# Labor Day.
|
|
263
|
+
2024: (MAY, 5, tr("عيد العمال")),
|
|
264
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
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.constants import HALF_DAY, PUBLIC
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class FaroeIslands(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
21
|
+
"""Faroe Islands holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_the_Faroe_Islands>
|
|
25
|
+
* [Decree no. 52 of 23 April 2003](https://web.archive.org/web/20241204233745/https://logir.fo/Kunngerd/52-fra-23-04-2003-um-flagging-fra-landsins-bygningum)
|
|
26
|
+
* [2007](https://web.archive.org/web/20250125193236/https://www.framtak.com/info/holidays.html))
|
|
27
|
+
* [2024](https://web.archive.org/web/20250615193008/https://visitfaroeislands.com/en/plan-your-stay/get-ready-for-your-trip/general-facts/public-holidays)
|
|
28
|
+
* [2025](https://web.archive.org/web/20250615193215/https://guidetofaroeislands.fo/travel-information/faroe-islands-holiday/)
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
country = "FO"
|
|
32
|
+
default_language = "fo"
|
|
33
|
+
# Denmark granted home rule to the Faroe Islands on 30 March 1948.
|
|
34
|
+
start_year = 1949
|
|
35
|
+
supported_categories = (HALF_DAY, PUBLIC)
|
|
36
|
+
supported_languages = ("da", "en_US", "fo", "is", "no", "sv")
|
|
37
|
+
|
|
38
|
+
def __init__(self, *args, **kwargs):
|
|
39
|
+
ChristianHolidays.__init__(self)
|
|
40
|
+
InternationalHolidays.__init__(self)
|
|
41
|
+
super().__init__(*args, **kwargs)
|
|
42
|
+
|
|
43
|
+
def _populate_public_holidays(self):
|
|
44
|
+
# New Year's Day.
|
|
45
|
+
self._add_new_years_day(tr("Nýggjársdagur"))
|
|
46
|
+
|
|
47
|
+
# Maundy Thursday.
|
|
48
|
+
self._add_holy_thursday(tr("Skírhósdagur"))
|
|
49
|
+
|
|
50
|
+
# Good Friday.
|
|
51
|
+
self._add_good_friday(tr("Langifríggjadagur"))
|
|
52
|
+
|
|
53
|
+
# Easter Sunday.
|
|
54
|
+
self._add_easter_sunday(tr("Páskadagur"))
|
|
55
|
+
|
|
56
|
+
# Easter Monday.
|
|
57
|
+
self._add_easter_monday(tr("Annar páskadagur"))
|
|
58
|
+
|
|
59
|
+
# Great Prayer Day.
|
|
60
|
+
self._add_holiday_26_days_past_easter(tr("Dýri biðidagur"))
|
|
61
|
+
|
|
62
|
+
# Ascension Day.
|
|
63
|
+
self._add_ascension_thursday(tr("Kristi himmalsferðardagur"))
|
|
64
|
+
|
|
65
|
+
# Whit Sunday.
|
|
66
|
+
self._add_whit_sunday(tr("Hvítusunnudagur"))
|
|
67
|
+
|
|
68
|
+
# Whit Monday.
|
|
69
|
+
self._add_whit_monday(tr("Annar hvítusunnudagur"))
|
|
70
|
+
|
|
71
|
+
# Saint Olaf's Day.
|
|
72
|
+
self._add_holiday_jul_29(tr("Ólavsøkudagur"))
|
|
73
|
+
|
|
74
|
+
# Christmas Eve.
|
|
75
|
+
self._add_christmas_eve(tr("Jólaaftan"))
|
|
76
|
+
|
|
77
|
+
# Christmas Day.
|
|
78
|
+
self._add_christmas_day(tr("Jóladagur"))
|
|
79
|
+
|
|
80
|
+
# Second Day of Christmas.
|
|
81
|
+
self._add_christmas_day_two(tr("Annar jóladagur"))
|
|
82
|
+
|
|
83
|
+
# New Year's Eve.
|
|
84
|
+
self._add_new_years_eve(tr("Nýggjársaftan"))
|
|
85
|
+
|
|
86
|
+
def _populate_half_day_holidays(self):
|
|
87
|
+
# National Flag Day.
|
|
88
|
+
self._add_holiday_apr_25(tr("Flaggdagur"))
|
|
89
|
+
|
|
90
|
+
# Constitution Day.
|
|
91
|
+
self._add_holiday_jun_5(tr("Grundlógardagur"))
|
|
92
|
+
|
|
93
|
+
# Saint Olaf's Eve.
|
|
94
|
+
self._add_holiday_jul_28(tr("Ólavsøkuaftan"))
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class FO(FaroeIslands):
|
|
98
|
+
pass
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class FRO(FaroeIslands):
|
|
102
|
+
pass
|
holidays/countries/georgia.py
CHANGED
|
@@ -19,12 +19,13 @@ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
19
19
|
from holidays.holiday_base import HolidayBase
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
|
+
class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
23
23
|
"""Georgia holidays.
|
|
24
24
|
|
|
25
25
|
References:
|
|
26
26
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Georgia_(country)>
|
|
27
|
-
*
|
|
27
|
+
* [Labour Code of Georgia](https://web.archive.org/web/20250121212149/https://matsne.gov.ge/en/document/view/1155567?publication=24)
|
|
28
|
+
* [Organic Law 4455-XVIმს-Xმპ](https://web.archive.org/web/20250421162538/https://matsne.gov.ge/ka/document/view/6283937?publication=0)
|
|
28
29
|
"""
|
|
29
30
|
|
|
30
31
|
country = "GE"
|
|
@@ -57,6 +58,9 @@ class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
57
58
|
# International Women's Day.
|
|
58
59
|
self._add_womens_day(tr("ქალთა საერთაშორისო დღე"))
|
|
59
60
|
|
|
61
|
+
# National Unity Day.
|
|
62
|
+
self._add_holiday_apr_9(tr("ეროვნული ერთიანობის დღე"))
|
|
63
|
+
|
|
60
64
|
# Good Friday.
|
|
61
65
|
self._add_good_friday(tr("წითელი პარასკევი"))
|
|
62
66
|
|
|
@@ -69,15 +73,17 @@ class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
69
73
|
# Easter Monday.
|
|
70
74
|
self._add_easter_monday(tr("შავი ორშაბათი"))
|
|
71
75
|
|
|
72
|
-
# National Unity Day.
|
|
73
|
-
self._add_holiday_apr_9(tr("ეროვნული ერთიანობის დღე"))
|
|
74
|
-
|
|
75
76
|
# Day of Victory over Fascism.
|
|
76
77
|
self._add_world_war_two_victory_day(tr("ფაშიზმზე გამარჯვების დღე"), is_western=False)
|
|
77
78
|
|
|
78
79
|
# Saint Andrew's Day.
|
|
79
80
|
self._add_holiday_may_12(tr("წმინდა ანდრია პირველწოდებულის დღე"))
|
|
80
81
|
|
|
82
|
+
# Established by Organic Law 4455-XVIმს-Xმპ.
|
|
83
|
+
if self._year >= 2025:
|
|
84
|
+
# Day of Family Sanctity and Respect for Parents.
|
|
85
|
+
self._add_holiday_may_17(tr("ოჯახის სიწმინდისა და მშობლების პატივისცემის დღე"))
|
|
86
|
+
|
|
81
87
|
# Independence Day.
|
|
82
88
|
self._add_holiday_may_26(tr("დამოუკიდებლობის დღე"))
|
|
83
89
|
|
holidays/countries/germany.py
CHANGED
|
@@ -31,12 +31,17 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
31
31
|
"Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
|
|
32
32
|
in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
|
|
33
33
|
in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
|
|
34
|
+
|
|
35
|
+
References:
|
|
36
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Germany>
|
|
37
|
+
* [Bavaria's Feiertagsgesetz](https://web.archive.org/web/20250724092008/https://www.gesetze-bayern.de/Content/Document/BayFTG-1)
|
|
34
38
|
"""
|
|
35
39
|
|
|
36
40
|
country = "DE"
|
|
37
41
|
default_language = "de"
|
|
38
42
|
start_year = 1990
|
|
39
43
|
subdivisions = (
|
|
44
|
+
# States.
|
|
40
45
|
"BB", # Brandenburg.
|
|
41
46
|
"BE", # Berlin.
|
|
42
47
|
"BW", # Baden-Württemberg.
|
|
@@ -53,6 +58,8 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
53
58
|
"SN", # Sachsen.
|
|
54
59
|
"ST", # Sachsen-Anhalt.
|
|
55
60
|
"TH", # Thüringen.
|
|
61
|
+
# Cities.
|
|
62
|
+
"Augsburg",
|
|
56
63
|
)
|
|
57
64
|
subdivisions_aliases = {
|
|
58
65
|
"Brandenburg": "BB",
|
|
@@ -147,9 +154,13 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
147
154
|
|
|
148
155
|
def _populate_subdiv_by_public_holidays(self):
|
|
149
156
|
if self._year >= 1991:
|
|
157
|
+
# Epiphany.
|
|
150
158
|
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
159
|
+
|
|
160
|
+
# Corpus Christi.
|
|
151
161
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
152
162
|
|
|
163
|
+
# All Saints' Day.
|
|
153
164
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
154
165
|
|
|
155
166
|
def _populate_subdiv_by_catholic_holidays(self):
|
|
@@ -159,63 +170,83 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
159
170
|
|
|
160
171
|
def _populate_subdiv_hb_public_holidays(self):
|
|
161
172
|
if self._year >= 2018:
|
|
173
|
+
# Reformation Day.
|
|
162
174
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
163
175
|
|
|
164
176
|
def _populate_subdiv_he_public_holidays(self):
|
|
165
177
|
if self._year >= 1991:
|
|
178
|
+
# Corpus Christi.
|
|
166
179
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
167
180
|
|
|
168
181
|
def _populate_subdiv_hh_public_holidays(self):
|
|
169
182
|
if self._year >= 2018:
|
|
183
|
+
# Reformation Day.
|
|
170
184
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
171
185
|
|
|
172
186
|
def _populate_subdiv_mv_public_holidays(self):
|
|
173
187
|
if self._year >= 2023:
|
|
188
|
+
# International Women's Day.
|
|
174
189
|
self._add_womens_day(tr("Internationaler Frauentag"))
|
|
175
190
|
|
|
191
|
+
# Reformation Day.
|
|
176
192
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
177
193
|
|
|
178
194
|
def _populate_subdiv_ni_public_holidays(self):
|
|
179
195
|
if self._year >= 2018:
|
|
196
|
+
# Reformation Day.
|
|
180
197
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
181
198
|
|
|
182
199
|
def _populate_subdiv_nw_public_holidays(self):
|
|
183
200
|
if self._year >= 1991:
|
|
201
|
+
# Corpus Christi.
|
|
184
202
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
185
203
|
|
|
204
|
+
# All Saints' Day.
|
|
186
205
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
187
206
|
|
|
188
207
|
def _populate_subdiv_rp_public_holidays(self):
|
|
189
208
|
if self._year >= 1991:
|
|
209
|
+
# Corpus Christi.
|
|
190
210
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
191
211
|
|
|
212
|
+
# All Saints' Day.
|
|
192
213
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
193
214
|
|
|
194
215
|
def _populate_subdiv_sh_public_holidays(self):
|
|
195
216
|
if self._year >= 2018:
|
|
217
|
+
# Reformation Day.
|
|
196
218
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
197
219
|
|
|
198
220
|
def _populate_subdiv_sl_public_holidays(self):
|
|
199
221
|
if self._year >= 1991:
|
|
222
|
+
# Corpus Christi.
|
|
200
223
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
224
|
+
|
|
225
|
+
# Assumption Day.
|
|
201
226
|
self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
|
|
202
227
|
|
|
228
|
+
# All Saints' Day.
|
|
203
229
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
204
230
|
|
|
205
231
|
def _populate_subdiv_sn_public_holidays(self):
|
|
232
|
+
# Reformation Day.
|
|
206
233
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
207
234
|
|
|
208
235
|
if self._year >= 1995:
|
|
236
|
+
# Repentance and Prayer Day.
|
|
209
237
|
self._add_holiday_1st_wed_before_nov_22(tr("Buß- und Bettag"))
|
|
210
238
|
|
|
211
239
|
def _populate_subdiv_sn_catholic_holidays(self):
|
|
212
240
|
if self._year >= 1991:
|
|
241
|
+
# Corpus Christi.
|
|
213
242
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
214
243
|
|
|
215
244
|
def _populate_subdiv_st_public_holidays(self):
|
|
216
245
|
if self._year >= 1991:
|
|
246
|
+
# Epiphany.
|
|
217
247
|
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
218
248
|
|
|
249
|
+
# Reformation Day.
|
|
219
250
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
220
251
|
|
|
221
252
|
def _populate_subdiv_th_public_holidays(self):
|
|
@@ -223,12 +254,21 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
223
254
|
# World Children's Day.
|
|
224
255
|
self._add_holiday_sep_20(tr("Weltkindertag"))
|
|
225
256
|
|
|
257
|
+
# Reformation Day.
|
|
226
258
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
227
259
|
|
|
228
260
|
def _populate_subdiv_th_catholic_holidays(self):
|
|
229
261
|
if self._year >= 1991:
|
|
262
|
+
# Corpus Christi.
|
|
230
263
|
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
231
264
|
|
|
265
|
+
def _populate_subdiv_augsburg_public_holidays(self):
|
|
266
|
+
self._populate_subdiv_by_public_holidays()
|
|
267
|
+
|
|
268
|
+
if self._year >= 1991:
|
|
269
|
+
# Augsburg Peace Festival.
|
|
270
|
+
self._add_holiday_aug_8(tr("Augsburger Hohes Friedensfest"))
|
|
271
|
+
|
|
232
272
|
|
|
233
273
|
class DE(Germany):
|
|
234
274
|
pass
|
|
@@ -248,6 +288,7 @@ class GermanyStaticHolidays:
|
|
|
248
288
|
"""
|
|
249
289
|
|
|
250
290
|
special_public_holidays = {
|
|
291
|
+
# Reformation Day.
|
|
251
292
|
2017: (OCT, 31, tr("Reformationstag")),
|
|
252
293
|
}
|
|
253
294
|
|