holidays 0.77__py3-none-any.whl → 0.79__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/calendars/__init__.py +1 -0
- holidays/calendars/chinese.py +14 -4
- holidays/calendars/ethiopian.py +31 -0
- holidays/calendars/islamic.py +48 -5
- holidays/calendars/julian.py +14 -0
- holidays/calendars/mandaean.py +59 -0
- holidays/calendars/tibetan.py +1466 -0
- holidays/constants.py +2 -0
- holidays/countries/__init__.py +14 -0
- holidays/countries/afghanistan.py +6 -39
- holidays/countries/albania.py +3 -22
- holidays/countries/argentina.py +3 -18
- holidays/countries/azerbaijan.py +6 -39
- holidays/countries/bahrain.py +29 -38
- holidays/countries/bhutan.py +194 -0
- holidays/countries/bosnia_and_herzegovina.py +2 -27
- holidays/countries/brunei.py +7 -117
- holidays/countries/burkina_faso.py +4 -15
- holidays/countries/cameroon.py +3 -34
- holidays/countries/canada.py +2 -1
- holidays/countries/central_african_republic.py +3 -16
- holidays/countries/chad.py +4 -17
- holidays/countries/chile.py +20 -4
- holidays/countries/christmas_island.py +4 -15
- holidays/countries/cocos_islands.py +5 -24
- holidays/countries/egypt.py +175 -51
- holidays/countries/ethiopia.py +18 -47
- holidays/countries/fiji.py +1 -2
- holidays/countries/gabon.py +3 -23
- holidays/countries/gambia.py +168 -0
- holidays/countries/germany.py +41 -0
- holidays/countries/guinea.py +5 -27
- holidays/countries/guinea_bissau.py +100 -0
- holidays/countries/guyana.py +2 -17
- holidays/countries/india.py +12 -25
- holidays/countries/indonesia.py +11 -160
- 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/lebanon.py +5 -87
- holidays/countries/liberia.py +80 -0
- holidays/countries/libya.py +5 -37
- holidays/countries/luxembourg.py +13 -0
- holidays/countries/malaysia.py +9 -130
- holidays/countries/mali.py +4 -9
- 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/north_macedonia.py +3 -39
- holidays/countries/oman.py +6 -28
- holidays/countries/pakistan.py +12 -35
- holidays/countries/palestine.py +2 -5
- holidays/countries/philippines.py +3 -33
- holidays/countries/pitcairn_islands.py +85 -0
- holidays/countries/qatar.py +3 -45
- holidays/countries/saudi_arabia.py +46 -35
- holidays/countries/senegal.py +6 -16
- holidays/countries/sierra_leone.py +4 -20
- holidays/countries/singapore.py +3 -59
- holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
- holidays/countries/spain.py +3 -10
- holidays/countries/sri_lanka.py +3 -14
- holidays/countries/suriname.py +11 -19
- holidays/countries/syrian_arab_republic.py +134 -0
- holidays/countries/tanzania.py +3 -9
- 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 +158 -0
- holidays/countries/united_arab_emirates.py +5 -29
- holidays/countries/uzbekistan.py +3 -31
- holidays/countries/yemen.py +8 -52
- holidays/groups/__init__.py +2 -0
- holidays/groups/christian.py +48 -12
- holidays/groups/international.py +17 -1
- holidays/groups/islamic.py +1 -11
- holidays/groups/mandaean.py +107 -0
- holidays/groups/tibetan.py +153 -0
- holidays/holiday_base.py +86 -91
- 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/{ar → ar_EG}/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/de/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/de/LC_MESSAGES/LU.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_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.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/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/LU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/lb/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LU.mo +0 -0
- holidays/registry.py +14 -0
- holidays/utils.py +18 -18
- holidays/version.py +1 -1
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/METADATA +79 -9
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/RECORD +121 -92
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/licenses/CONTRIBUTORS +3 -0
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/WHEEL +0 -0
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.77.dist-info → holidays-0.79.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
17
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_MON
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Gambia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
22
|
+
"""Gambia holidays.
|
|
23
|
+
|
|
24
|
+
References:
|
|
25
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_the_Gambia>
|
|
26
|
+
* <https://web.archive.org/web/20230610113952/https://www.visitthegambia.gm/public-holidays/>
|
|
27
|
+
* <https://web.archive.org/web/20250803084358/https://www.op.gov.gm/media-advisory-public-holidays>
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
country = "GM"
|
|
31
|
+
default_language = "en_GM"
|
|
32
|
+
# %s (estimated).
|
|
33
|
+
estimated_label = tr("%s (estimated)")
|
|
34
|
+
# %s (observed).
|
|
35
|
+
observed_label = tr("%s (observed)")
|
|
36
|
+
# %s (observed, estimated).
|
|
37
|
+
observed_estimated_label = tr("%s (observed, estimated)")
|
|
38
|
+
start_year = 1966
|
|
39
|
+
supported_languages = ("en_GM", "en_US")
|
|
40
|
+
|
|
41
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
42
|
+
"""
|
|
43
|
+
Args:
|
|
44
|
+
islamic_show_estimated:
|
|
45
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
46
|
+
if holiday date is estimated.
|
|
47
|
+
"""
|
|
48
|
+
ChristianHolidays.__init__(self)
|
|
49
|
+
InternationalHolidays.__init__(self)
|
|
50
|
+
IslamicHolidays.__init__(
|
|
51
|
+
self, cls=GambiaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
52
|
+
)
|
|
53
|
+
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
|
|
54
|
+
kwargs.setdefault("observed_since", 2021)
|
|
55
|
+
super().__init__(*args, **kwargs)
|
|
56
|
+
|
|
57
|
+
def _populate_public_holidays(self):
|
|
58
|
+
# New Year's Day.
|
|
59
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")))
|
|
60
|
+
|
|
61
|
+
# Independence Day.
|
|
62
|
+
self._add_observed(self._add_holiday_feb_18(tr("Independence Day")))
|
|
63
|
+
|
|
64
|
+
# Good Friday.
|
|
65
|
+
self._add_good_friday(tr("Good Friday"))
|
|
66
|
+
|
|
67
|
+
# Easter Monday.
|
|
68
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
69
|
+
|
|
70
|
+
# Labor Day.
|
|
71
|
+
self._add_observed(self._add_labor_day(tr("Labour Day")))
|
|
72
|
+
|
|
73
|
+
# Africa Liberation Day.
|
|
74
|
+
self._add_observed(self._add_africa_day(tr("Africa Liberation Day")))
|
|
75
|
+
|
|
76
|
+
# July 22 Revolution Day.
|
|
77
|
+
self._add_observed(self._add_holiday_jul_22(tr("July 22 Revolution Day")))
|
|
78
|
+
|
|
79
|
+
# Assumption Day.
|
|
80
|
+
self._add_observed(self._add_assumption_of_mary_day(tr("Feast of the Assumption")))
|
|
81
|
+
|
|
82
|
+
# Christmas Day.
|
|
83
|
+
self._add_christmas_day(tr("Christmas Day"))
|
|
84
|
+
|
|
85
|
+
# Boxing Day.
|
|
86
|
+
self._add_observed(self._add_christmas_day_two(tr("Boxing Day")))
|
|
87
|
+
|
|
88
|
+
# Ashura.
|
|
89
|
+
for dt in self._add_ashura_day(tr("Yawmul Ashura")):
|
|
90
|
+
self._add_observed(dt)
|
|
91
|
+
|
|
92
|
+
# Prophet's Birthday.
|
|
93
|
+
for dt in self._add_mawlid_day(tr("Mawlid Nabi")):
|
|
94
|
+
self._add_observed(dt)
|
|
95
|
+
|
|
96
|
+
# Laylat al-Qadr.
|
|
97
|
+
for dt in self._add_laylat_al_qadr_day(tr("Lialat-Ul-Qadr")):
|
|
98
|
+
self._add_observed(dt)
|
|
99
|
+
|
|
100
|
+
# Eid al-Fitr.
|
|
101
|
+
name = tr("Koriteh")
|
|
102
|
+
self._add_eid_al_fitr_day(name)
|
|
103
|
+
if self._year >= 2021:
|
|
104
|
+
for dt in self._add_eid_al_fitr_day_two(name):
|
|
105
|
+
self._add_observed(dt)
|
|
106
|
+
|
|
107
|
+
# Eid al-Adha.
|
|
108
|
+
name = tr("Tobaski")
|
|
109
|
+
self._add_eid_al_adha_day(name)
|
|
110
|
+
if self._year >= 2021:
|
|
111
|
+
for dt in self._add_eid_al_adha_day_two(name):
|
|
112
|
+
self._add_observed(dt)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class GM(Gambia):
|
|
116
|
+
pass
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class GMB(Gambia):
|
|
120
|
+
pass
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class GambiaIslamicHolidays(_CustomIslamicHolidays):
|
|
124
|
+
# https://web.archive.org/web/20240716225449/https://www.timeanddate.com/holidays/gambia/ashura
|
|
125
|
+
ASHURA_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
126
|
+
ASHURA_DATES = {
|
|
127
|
+
2015: (OCT, 24),
|
|
128
|
+
2016: (OCT, 12),
|
|
129
|
+
2017: (OCT, 1),
|
|
130
|
+
2019: (SEP, 10),
|
|
131
|
+
2021: (AUG, 19),
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
# https://web.archive.org/web/20241209170416/https://www.timeanddate.com/holidays/gambia/eid-al-adha
|
|
135
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
136
|
+
EID_AL_ADHA_DATES = {
|
|
137
|
+
2015: (SEP, 24),
|
|
138
|
+
2016: (SEP, 13),
|
|
139
|
+
2017: (SEP, 2),
|
|
140
|
+
2018: (AUG, 22),
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
# https://web.archive.org/web/20241204114244/https://www.timeanddate.com/holidays/gambia/eid-al-fitr
|
|
144
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
145
|
+
EID_AL_FITR_DATES = {
|
|
146
|
+
2015: (JUL, 18),
|
|
147
|
+
2016: (JUL, 7),
|
|
148
|
+
2017: (JUN, 26),
|
|
149
|
+
2020: (MAY, 23),
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
# https://web.archive.org/web/20241209070551/https://www.timeanddate.com/holidays/gambia/laylat-al-qadr
|
|
153
|
+
LAYLAT_AL_QADR_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
154
|
+
LAYLAT_AL_QADR_DATES = {
|
|
155
|
+
2016: (JUL, 3),
|
|
156
|
+
2022: (APR, 29),
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
# https://web.archive.org/web/20240909111449/https://www.timeanddate.com/holidays/gambia/prophet-birthday
|
|
160
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2016, 2024)
|
|
161
|
+
MAWLID_DATES = {
|
|
162
|
+
2016: (DEC, 12),
|
|
163
|
+
2017: (DEC, 1),
|
|
164
|
+
2018: (NOV, 21),
|
|
165
|
+
2021: (OCT, 19),
|
|
166
|
+
2023: (SEP, 28),
|
|
167
|
+
2024: (SEP, 16),
|
|
168
|
+
}
|
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
|
|
holidays/countries/guinea.py
CHANGED
|
@@ -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 MAR, APR,
|
|
16
|
+
from holidays.calendars.gregorian import MAR, APR, JUN, JUL, AUG, SEP, NOV, DEC
|
|
17
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
18
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
19
19
|
|
|
@@ -125,58 +125,36 @@ class GIN(Guinea):
|
|
|
125
125
|
|
|
126
126
|
|
|
127
127
|
class GuineaIslamicHolidays(_CustomIslamicHolidays):
|
|
128
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
128
129
|
EID_AL_ADHA_DATES = {
|
|
129
130
|
2015: (SEP, 24),
|
|
130
131
|
2016: (SEP, 13),
|
|
131
132
|
2017: (SEP, 2),
|
|
132
133
|
2018: (AUG, 22),
|
|
133
|
-
2019: (AUG, 11),
|
|
134
|
-
2020: (JUL, 31),
|
|
135
|
-
2021: (JUL, 20),
|
|
136
134
|
2022: (JUL, 10),
|
|
137
|
-
2023: (JUN, 28),
|
|
138
|
-
2024: (JUN, 16),
|
|
139
135
|
2025: (JUN, 7),
|
|
140
136
|
}
|
|
141
137
|
|
|
138
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
142
139
|
EID_AL_FITR_DATES = {
|
|
143
140
|
2015: (JUL, 18),
|
|
144
141
|
2016: (JUL, 7),
|
|
145
142
|
2017: (JUN, 26),
|
|
146
|
-
2018: (JUN, 15),
|
|
147
|
-
2019: (JUN, 4),
|
|
148
|
-
2020: (MAY, 24),
|
|
149
|
-
2021: (MAY, 13),
|
|
150
|
-
2022: (MAY, 2),
|
|
151
|
-
2023: (APR, 21),
|
|
152
|
-
2024: (APR, 10),
|
|
153
143
|
2025: (MAR, 31),
|
|
154
144
|
}
|
|
155
145
|
|
|
146
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
156
147
|
MAWLID_DATES = {
|
|
157
148
|
2015: (DEC, 24),
|
|
158
149
|
2016: (DEC, 12),
|
|
159
150
|
2017: (DEC, 1),
|
|
160
|
-
2018: (NOV, 20),
|
|
161
151
|
2019: (NOV, 10),
|
|
162
|
-
2020: (OCT, 29),
|
|
163
|
-
2021: (OCT, 18),
|
|
164
|
-
2022: (OCT, 8),
|
|
165
|
-
2023: (SEP, 27),
|
|
166
|
-
2024: (SEP, 15),
|
|
167
152
|
2025: (SEP, 5),
|
|
168
153
|
}
|
|
169
154
|
|
|
155
|
+
LAYLAT_AL_QADR_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
170
156
|
LAYLAT_AL_QADR_DATES = {
|
|
171
|
-
2015: (JUL, 14),
|
|
172
157
|
2016: (JUL, 3),
|
|
173
|
-
2017: (JUN, 22),
|
|
174
158
|
2018: (JUN, 12),
|
|
175
|
-
2019: (JUN, 1),
|
|
176
|
-
2020: (MAY, 20),
|
|
177
|
-
2021: (MAY, 9),
|
|
178
159
|
2022: (APR, 29),
|
|
179
|
-
2023: (APR, 18),
|
|
180
|
-
2024: (APR, 6),
|
|
181
|
-
2025: (MAR, 27),
|
|
182
160
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GuineaBissau(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
21
|
+
"""Guinea-Bissau holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* [Ley núm. 7/2022, de 18 de julio, que aprueba el Código del Trabajo](https://archive.org/details/742984686-co-digo-de-trabalho-lei-no-7-2022)
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
country = "GW"
|
|
28
|
+
default_language = "pt_GW"
|
|
29
|
+
# %s (estimated).
|
|
30
|
+
estimated_label = tr("%s (prevista)")
|
|
31
|
+
# %s (observed).
|
|
32
|
+
observed_label = tr("%s (ponte)")
|
|
33
|
+
# %s (estimated, observed).
|
|
34
|
+
observed_estimated_label = tr("%s (prevista, ponte)")
|
|
35
|
+
supported_languages = ("en_US", "pt_GW")
|
|
36
|
+
start_year = 2023
|
|
37
|
+
|
|
38
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
39
|
+
"""
|
|
40
|
+
Args:
|
|
41
|
+
islamic_show_estimated:
|
|
42
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
43
|
+
if holiday date is estimated.
|
|
44
|
+
"""
|
|
45
|
+
ChristianHolidays.__init__(self)
|
|
46
|
+
InternationalHolidays.__init__(self)
|
|
47
|
+
IslamicHolidays.__init__(
|
|
48
|
+
self, cls=GuineaBissauIslamicHolidays, show_estimated=islamic_show_estimated
|
|
49
|
+
)
|
|
50
|
+
super().__init__(*args, **kwargs)
|
|
51
|
+
|
|
52
|
+
def _populate_public_holidays(self):
|
|
53
|
+
# New Year's Day.
|
|
54
|
+
self._add_new_years_day(tr("Ano Novo"))
|
|
55
|
+
|
|
56
|
+
# National Heroes' Day.
|
|
57
|
+
self._add_holiday_jan_20(tr("Dia dos Heróis Nacionais"))
|
|
58
|
+
|
|
59
|
+
# Day of the Beginning of the Armed Struggle.
|
|
60
|
+
self._add_holiday_jan_23(tr("Dia do Início da Luta Armada"))
|
|
61
|
+
|
|
62
|
+
# International Women's Day.
|
|
63
|
+
self._add_womens_day(tr("Dia Internacional da Mulher"))
|
|
64
|
+
|
|
65
|
+
# Easter Sunday.
|
|
66
|
+
self._add_easter_sunday(tr("Páscoa"))
|
|
67
|
+
|
|
68
|
+
# Worker's Day.
|
|
69
|
+
self._add_labor_day(tr("Dia do Trabalhador"))
|
|
70
|
+
|
|
71
|
+
# Pidjiguiti Day.
|
|
72
|
+
self._add_holiday_aug_3(tr("Dia de Pidjiguiti"))
|
|
73
|
+
|
|
74
|
+
# Independence Day.
|
|
75
|
+
self._add_holiday_sep_24(tr("Dia da Independência"))
|
|
76
|
+
|
|
77
|
+
# Christmas Day.
|
|
78
|
+
self._add_christmas_day(tr("Dia de Natal"))
|
|
79
|
+
|
|
80
|
+
# Eid al-Fitr.
|
|
81
|
+
self._add_eid_al_fitr_day(tr("Korité"))
|
|
82
|
+
|
|
83
|
+
# Eid al-Adha.
|
|
84
|
+
self._add_eid_al_adha_day(tr("Tabaski"))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class GW(GuineaBissau):
|
|
88
|
+
pass
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class GNB(GuineaBissau):
|
|
92
|
+
pass
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class GuineaBissauIslamicHolidays(_CustomIslamicHolidays):
|
|
96
|
+
# http://web.archive.org/web/20250811201914/https://www.timeanddate.com/holidays/guinea-bissau/eid-al-adha
|
|
97
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2023, 2025)
|
|
98
|
+
|
|
99
|
+
# http://web.archive.org/web/20250811202225/https://www.timeanddate.com/holidays/guinea-bissau/eid-al-fitr
|
|
100
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2023, 2025)
|
holidays/countries/guyana.py
CHANGED
|
@@ -208,56 +208,41 @@ class GuyanaHinduHolidays(_CustomHinduHolidays):
|
|
|
208
208
|
|
|
209
209
|
class GuyanaIslamicHolidays(_CustomIslamicHolidays):
|
|
210
210
|
# https://web.archive.org/web/20250424074512/https://www.timeanddate.com/holidays/guyana/eid-al-adha
|
|
211
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
211
212
|
EID_AL_ADHA_DATES = {
|
|
212
213
|
2001: (MAR, 6),
|
|
213
214
|
2002: (FEB, 23),
|
|
214
215
|
2003: (FEB, 12),
|
|
215
216
|
2004: (FEB, 2),
|
|
216
|
-
2005: (JAN, 21),
|
|
217
|
-
2006: ((JAN, 10), (DEC, 31)),
|
|
218
|
-
2007: (DEC, 20),
|
|
219
217
|
2008: (DEC, 9),
|
|
220
218
|
2009: (NOV, 28),
|
|
221
219
|
2010: (NOV, 17),
|
|
222
220
|
2011: (NOV, 7),
|
|
223
|
-
2012: (OCT, 26),
|
|
224
|
-
2013: (OCT, 15),
|
|
225
221
|
2014: (OCT, 5),
|
|
226
222
|
2015: (SEP, 24),
|
|
227
223
|
2016: (SEP, 13),
|
|
228
224
|
2017: (SEP, 2),
|
|
229
225
|
2018: (AUG, 22),
|
|
230
|
-
2019: (AUG, 11),
|
|
231
|
-
2020: (JUL, 31),
|
|
232
226
|
2021: (JUL, 21),
|
|
233
|
-
2022: (JUL, 9),
|
|
234
227
|
2023: (JUN, 29),
|
|
235
228
|
2024: (JUN, 17),
|
|
236
229
|
2025: (JUN, 7),
|
|
237
230
|
}
|
|
238
231
|
|
|
239
232
|
# https://web.archive.org/web/20241006104125/https://www.timeanddate.com/holidays/guyana/prophet-birthday
|
|
233
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
240
234
|
MAWLID_DATES = {
|
|
241
|
-
2001: (JUN, 4),
|
|
242
|
-
2002: (MAY, 24),
|
|
243
235
|
2003: (MAY, 14),
|
|
244
236
|
2004: (MAY, 2),
|
|
245
|
-
2005: (APR, 21),
|
|
246
237
|
2006: (APR, 11),
|
|
247
|
-
2007: (MAR, 31),
|
|
248
|
-
2008: (MAR, 20),
|
|
249
|
-
2009: (MAR, 9),
|
|
250
|
-
2010: (FEB, 26),
|
|
251
238
|
2011: (FEB, 16),
|
|
252
239
|
2012: (FEB, 5),
|
|
253
|
-
2013: (JAN, 24),
|
|
254
240
|
2014: (JAN, 14),
|
|
255
241
|
2015: ((JAN, 3), (DEC, 24)),
|
|
256
242
|
2016: (DEC, 12),
|
|
257
243
|
2017: (DEC, 1),
|
|
258
244
|
2018: (NOV, 21),
|
|
259
245
|
2019: (NOV, 10),
|
|
260
|
-
2020: (OCT, 29),
|
|
261
246
|
2021: (OCT, 19),
|
|
262
247
|
2022: (OCT, 9),
|
|
263
248
|
2023: (SEP, 28),
|
holidays/countries/india.py
CHANGED
|
@@ -501,17 +501,20 @@ class India(
|
|
|
501
501
|
self._add_holiday_may_9(tr("Rabindra Jayanti"))
|
|
502
502
|
|
|
503
503
|
|
|
504
|
+
class IN(India):
|
|
505
|
+
pass
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
class IND(India):
|
|
509
|
+
pass
|
|
510
|
+
|
|
511
|
+
|
|
504
512
|
class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
505
|
-
|
|
513
|
+
ASHURA_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
506
514
|
ASHURA_DATES = {
|
|
507
|
-
2001: (APR, 4),
|
|
508
|
-
2002: (MAR, 24),
|
|
509
515
|
2003: (MAR, 14),
|
|
510
516
|
2004: (MAR, 2),
|
|
511
|
-
2005: (FEB, 19),
|
|
512
|
-
2006: (FEB, 9),
|
|
513
517
|
2007: (JAN, 30),
|
|
514
|
-
2008: (JAN, 19),
|
|
515
518
|
2009: ((JAN, 7), (DEC, 28)),
|
|
516
519
|
2010: (DEC, 17),
|
|
517
520
|
2011: (DEC, 6),
|
|
@@ -531,15 +534,13 @@ class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
531
534
|
2025: (JUL, 6),
|
|
532
535
|
}
|
|
533
536
|
|
|
534
|
-
|
|
537
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
535
538
|
EID_AL_ADHA_DATES = {
|
|
536
539
|
2001: (MAR, 6),
|
|
537
540
|
2002: (FEB, 23),
|
|
538
541
|
2003: (FEB, 12),
|
|
539
542
|
2004: (FEB, 2),
|
|
540
|
-
2005: (JAN, 21),
|
|
541
543
|
2006: ((JAN, 11), (DEC, 31)),
|
|
542
|
-
2007: (DEC, 20),
|
|
543
544
|
2008: (DEC, 9),
|
|
544
545
|
2009: (NOV, 28),
|
|
545
546
|
2010: (NOV, 17),
|
|
@@ -560,21 +561,16 @@ class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
560
561
|
2025: (JUN, 7),
|
|
561
562
|
}
|
|
562
563
|
|
|
563
|
-
|
|
564
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
564
565
|
EID_AL_FITR_DATES = {
|
|
565
566
|
2001: (DEC, 17),
|
|
566
567
|
2002: (DEC, 6),
|
|
567
568
|
2003: (NOV, 26),
|
|
568
|
-
2004: (NOV, 14),
|
|
569
|
-
2005: (NOV, 3),
|
|
570
569
|
2006: (OCT, 24),
|
|
571
|
-
2007: (OCT, 13),
|
|
572
570
|
2008: (OCT, 2),
|
|
573
571
|
2009: (SEP, 21),
|
|
574
|
-
2010: (SEP, 10),
|
|
575
572
|
2011: (AUG, 31),
|
|
576
573
|
2012: (AUG, 20),
|
|
577
|
-
2013: (AUG, 8),
|
|
578
574
|
2014: (JUL, 29),
|
|
579
575
|
2015: (JUL, 18),
|
|
580
576
|
2016: (JUL, 7),
|
|
@@ -589,7 +585,7 @@ class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
589
585
|
2025: (MAR, 31),
|
|
590
586
|
}
|
|
591
587
|
|
|
592
|
-
|
|
588
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2001, 2025)
|
|
593
589
|
MAWLID_DATES = {
|
|
594
590
|
2001: (JUN, 5),
|
|
595
591
|
2002: (MAY, 25),
|
|
@@ -599,7 +595,6 @@ class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
599
595
|
2006: (APR, 11),
|
|
600
596
|
2007: (APR, 1),
|
|
601
597
|
2008: (MAR, 21),
|
|
602
|
-
2009: (MAR, 9),
|
|
603
598
|
2010: (FEB, 27),
|
|
604
599
|
2011: (FEB, 16),
|
|
605
600
|
2012: (FEB, 5),
|
|
@@ -617,11 +612,3 @@ class IndiaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
617
612
|
2024: (SEP, 16),
|
|
618
613
|
2025: (SEP, 5),
|
|
619
614
|
}
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
class IN(India):
|
|
623
|
-
pass
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
class IND(India):
|
|
627
|
-
pass
|