holidays 0.81__py3-none-any.whl → 0.83__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/burmese.py +319 -0
- holidays/calendars/hebrew.py +2 -2
- holidays/calendars/islamic.py +26 -6
- holidays/calendars/thai.py +49 -2
- holidays/countries/__init__.py +11 -0
- holidays/countries/afghanistan.py +7 -5
- holidays/countries/algeria.py +89 -24
- holidays/countries/antarctica.py +58 -0
- holidays/countries/azerbaijan.py +1 -1
- holidays/countries/bouvet_island.py +31 -0
- holidays/countries/brazil.py +1 -1
- holidays/countries/british_indian_ocean_territory.py +31 -0
- holidays/countries/bulgaria.py +6 -1
- holidays/countries/canada.py +27 -13
- holidays/countries/chile.py +9 -8
- holidays/countries/cuba.py +3 -4
- holidays/countries/denmark.py +18 -6
- holidays/countries/djibouti.py +1 -1
- holidays/countries/fiji.py +2 -3
- holidays/countries/finland.py +3 -6
- holidays/countries/guyana.py +24 -32
- holidays/countries/heard_island_and_mcdonald_islands.py +31 -0
- holidays/countries/hungary.py +4 -5
- holidays/countries/india.py +27 -78
- holidays/countries/iran.py +133 -269
- holidays/countries/ireland.py +1 -1
- holidays/countries/israel.py +1 -1
- holidays/countries/japan.py +22 -18
- holidays/countries/jordan.py +6 -3
- holidays/countries/kuwait.py +6 -3
- holidays/countries/macau.py +5 -8
- holidays/countries/malaysia.py +14 -3
- holidays/countries/mauritius.py +10 -9
- holidays/countries/montserrat.py +1 -1
- holidays/countries/myanmar.py +194 -0
- holidays/countries/nepal.py +11 -30
- holidays/countries/netherlands.py +28 -24
- holidays/countries/new_zealand.py +75 -31
- holidays/countries/nigeria.py +53 -75
- holidays/countries/north_korea.py +161 -0
- holidays/countries/norway.py +24 -9
- holidays/countries/oman.py +6 -2
- holidays/countries/paraguay.py +70 -23
- holidays/countries/portugal.py +5 -6
- holidays/countries/qatar.py +5 -2
- holidays/countries/rwanda.py +8 -3
- holidays/countries/saudi_arabia.py +6 -5
- holidays/countries/serbia.py +5 -0
- holidays/countries/slovakia.py +23 -4
- holidays/countries/south_africa.py +96 -53
- holidays/countries/south_korea.py +6 -1
- holidays/countries/spain.py +4 -4
- holidays/countries/sri_lanka.py +21 -58
- holidays/countries/sudan.py +6 -3
- holidays/countries/suriname.py +1 -2
- holidays/countries/sweden.py +1 -1
- holidays/countries/switzerland.py +255 -6
- holidays/countries/taiwan.py +23 -3
- holidays/countries/tanzania.py +25 -30
- holidays/countries/thailand.py +29 -7
- holidays/countries/tonga.py +6 -1
- holidays/countries/trinidad_and_tobago.py +7 -2
- holidays/countries/ukraine.py +1 -1
- holidays/countries/united_arab_emirates.py +9 -2
- holidays/countries/united_kingdom.py +1 -1
- holidays/countries/united_states.py +18 -2
- holidays/countries/uruguay.py +6 -1
- holidays/countries/vietnam.py +6 -1
- holidays/countries/western_sahara.py +92 -0
- holidays/countries/yemen.py +6 -3
- holidays/groups/__init__.py +1 -0
- holidays/groups/balinese_saka.py +1 -1
- holidays/groups/buddhist.py +3 -3
- holidays/groups/burmese.py +273 -0
- holidays/groups/chinese.py +30 -2
- holidays/groups/christian.py +10 -0
- holidays/groups/custom.py +8 -2
- holidays/groups/eastern.py +26 -0
- holidays/groups/hebrew.py +16 -14
- holidays/groups/hindu.py +23 -15
- holidays/groups/international.py +1 -1
- holidays/groups/islamic.py +52 -50
- holidays/groups/mongolian.py +6 -3
- holidays/groups/sinhala.py +9 -11
- holidays/groups/tibetan.py +8 -6
- holidays/holiday_base.py +26 -26
- holidays/ical.py +6 -4
- holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KP.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
- holidays/locale/es/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/ko_KP/LC_MESSAGES/KP.mo +0 -0
- holidays/locale/my/LC_MESSAGES/MM.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MM.mo +0 -0
- holidays/locale/th/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/th/LC_MESSAGES/US.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
- holidays/no_holiday_base.py +21 -0
- holidays/observed_holiday_base.py +16 -4
- holidays/registry.py +8 -0
- holidays/utils.py +5 -5
- holidays/version.py +1 -1
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/METADATA +63 -19
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/RECORD +141 -118
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/WHEEL +0 -0
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.81.dist-info → holidays-0.83.dist-info}/top_level.txt +0 -0
holidays/countries/paraguay.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC
|
|
15
|
+
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC, SUN
|
|
16
16
|
from holidays.constants import GOVERNMENT, PUBLIC
|
|
17
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
@@ -28,7 +28,9 @@ class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
28
28
|
* [Ley 1.723/2001](https://web.archive.org/web/20250427173914/https://www.bacn.gov.py/leyes-paraguayas/634/ley-n-1723--autoriza-al-poder-ejecutivo-a-trasladar-los-feriados-nacionales-al-dia-lunes)
|
|
29
29
|
* [Ley 4.531/2011](https://web.archive.org/web/20250420210317/https://www.bacn.gov.py/leyes-paraguayas/3831/ley-n-4531-restablece-el-dia-14-de-mayo-de-cada-ano-como-feriado-nacional)
|
|
30
30
|
* <https://es.wikipedia.org/wiki/Anexo:Días_festivos_en_Paraguay>
|
|
31
|
-
* <https://web.archive.org/web/
|
|
31
|
+
* <https://web.archive.org/web/20131212214628/https://www.abc.com.py/nacionales/feriados-de-2013-se-trasladaran-al-dia-lunes-494705.html>
|
|
32
|
+
* <https://web.archive.org/web/20241207131557/https://www.ultimahora.com/establecen-traslados-feriados-el-2017-n1042098>
|
|
33
|
+
* <https://web.archive.org/web/20250913135012/https://foco.lanacion.com.py/2025/01/01/feriados-2025-paraguay-tendra-6-fines-de-semana-largos/>
|
|
32
34
|
"""
|
|
33
35
|
|
|
34
36
|
country = "PY"
|
|
@@ -37,6 +39,7 @@ class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
37
39
|
supported_languages = ("en_US", "es", "uk")
|
|
38
40
|
# Ley 8/1990.
|
|
39
41
|
start_year = 1991
|
|
42
|
+
weekend = {SUN}
|
|
40
43
|
|
|
41
44
|
def __init__(self, *args, **kwargs):
|
|
42
45
|
ChristianHolidays.__init__(self)
|
|
@@ -51,10 +54,12 @@ class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
51
54
|
dates_obs = {
|
|
52
55
|
2013: (MAR, 4),
|
|
53
56
|
2016: (FEB, 29),
|
|
57
|
+
2017: (FEB, 27),
|
|
54
58
|
2018: (FEB, 26),
|
|
55
59
|
2019: (MAR, 4),
|
|
56
60
|
2022: (FEB, 28),
|
|
57
61
|
2023: (FEB, 27),
|
|
62
|
+
2025: (MAR, 3),
|
|
58
63
|
}
|
|
59
64
|
self._add_holiday(
|
|
60
65
|
# Patriots Day.
|
|
@@ -82,16 +87,23 @@ class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
82
87
|
self._add_holiday_may_15(tr("Día de la Independencia Nacional"))
|
|
83
88
|
|
|
84
89
|
dates_obs = {
|
|
90
|
+
2013: (JUN, 10),
|
|
85
91
|
2014: (JUN, 16),
|
|
86
92
|
2018: (JUN, 11),
|
|
87
93
|
2019: (JUN, 17),
|
|
88
94
|
2024: (JUN, 10),
|
|
95
|
+
2025: (JUN, 16),
|
|
89
96
|
}
|
|
90
97
|
# Chaco Armistice Day.
|
|
91
98
|
self._add_holiday(tr("Día de la Paz del Chaco"), dates_obs.get(self._year, (JUN, 12)))
|
|
92
99
|
|
|
93
100
|
# Asuncion Foundation's Day.
|
|
94
|
-
|
|
101
|
+
name = tr("Día de la Fundación de Asunción")
|
|
102
|
+
# Decreto N° 6292.
|
|
103
|
+
if self._year == 2017:
|
|
104
|
+
self._add_holiday_aug_14(name)
|
|
105
|
+
else:
|
|
106
|
+
self._add_holiday_aug_15(name)
|
|
95
107
|
|
|
96
108
|
# Ley 715/1995, 1.601/2000.
|
|
97
109
|
if self._year >= 1995:
|
|
@@ -125,31 +137,43 @@ class PRY(Paraguay):
|
|
|
125
137
|
|
|
126
138
|
|
|
127
139
|
class ParaguayStaticHolidays:
|
|
140
|
+
"""Paraguay special holidays.
|
|
141
|
+
|
|
142
|
+
References:
|
|
143
|
+
* <https://web.archive.org/web/20250917075450/https://www.pgr.gov.py/wp-content/uploads/2013/12/DECRETO-991-ASUETO-EL-24-Y-EL-31-DE-DICIEMBRE.pdf>
|
|
144
|
+
* <https://web.archive.org/web/20250917074759/https://www.ultimahora.com/ejecutivo-declara-asueto-el-23-y-30-diciembre-sector-publico-n3040041>
|
|
145
|
+
* <https://web.archive.org/web/20231003173505/https://www.lanacion.com.py/politica/2023/03/24/decretan-asueto-de-funcionarios-publicos-el-miercoles-5-de-abril-por-semana-santa/>
|
|
146
|
+
* <https://web.archive.org/web/20250917042124/https://informacionpublica.paraguay.gov.py/public/1046579-RESPUESTAAIPN79397pdf-RESPUESTAAIPN79397.pdf>
|
|
147
|
+
* <https://web.archive.org/web/20250416092842/https://www.radionacional.gov.py/2024/03/22/ejecutivo-declara-asueto-el-miercoles-27-de-marzo-para-funcionarios-publicos/>
|
|
148
|
+
* <https://web.archive.org/web/20241225185947/https://www.abc.com.py/politica/2024/12/20/declaran-asueto-para-funcionarios-publicos-el-24-y-31-de-diciembre/>
|
|
149
|
+
* <https://web.archive.org/web/20250917075032/https://portal.ips.gov.py/sistemas/ipsportal/archivos/archivos/1744391513.pdf>
|
|
150
|
+
"""
|
|
151
|
+
|
|
128
152
|
# Public holiday.
|
|
129
|
-
public_holiday = tr("Asueto
|
|
153
|
+
public_holiday = tr("Asueto adicional")
|
|
130
154
|
# Public sector holiday.
|
|
131
155
|
public_sector_holiday = tr("Asueto de la Administración Pública")
|
|
132
156
|
|
|
133
157
|
special_public_holidays = {
|
|
134
|
-
#
|
|
158
|
+
# Public holiday for business purposes, in view of the recently increased risk
|
|
135
159
|
# of Dengue fever.
|
|
136
160
|
2007: (JAN, 29, public_holiday),
|
|
137
|
-
#
|
|
161
|
+
# Public sector holiday to celebrate Paraguay's football team's qualification
|
|
138
162
|
# for the 2010 World Cup.
|
|
139
163
|
2009: (SEP, 10, public_holiday),
|
|
140
|
-
#
|
|
164
|
+
# Public holiday to coincide with the Paraguay-Italy game of the current World Cup.
|
|
141
165
|
2010: (JUN, 14, public_holiday),
|
|
142
166
|
2011: (
|
|
143
|
-
#
|
|
167
|
+
# Public holiday to coincide with the current anti-Dengue drive.
|
|
144
168
|
(APR, 19, public_holiday),
|
|
145
|
-
#
|
|
169
|
+
# Public holidays to commemorate the Bicentennial of Paraguay's independence.
|
|
146
170
|
(MAY, 14, public_holiday),
|
|
147
171
|
(MAY, 16, public_holiday),
|
|
148
172
|
),
|
|
149
|
-
#
|
|
173
|
+
# Date of the inauguration of President-elect Horacio Cartes.
|
|
150
174
|
2013: (AUG, 14, public_holiday),
|
|
151
175
|
2015: (
|
|
152
|
-
#
|
|
176
|
+
# Public holidays in Paraguay on account of the upcoming visit of Pope Francis
|
|
153
177
|
# in Paraguay.
|
|
154
178
|
(JUL, 10, public_holiday),
|
|
155
179
|
(JUL, 11, public_holiday),
|
|
@@ -163,38 +187,43 @@ class ParaguayStaticHolidays:
|
|
|
163
187
|
(DEC, 31, public_sector_holiday),
|
|
164
188
|
),
|
|
165
189
|
2011: (
|
|
166
|
-
#
|
|
190
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
167
191
|
(APR, 20, public_sector_holiday),
|
|
168
192
|
# 2 year-end public sector holidays.
|
|
169
193
|
(DEC, 23, public_sector_holiday),
|
|
170
194
|
(DEC, 30, public_sector_holiday),
|
|
171
195
|
),
|
|
172
196
|
2012: (
|
|
173
|
-
#
|
|
197
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
174
198
|
(APR, 4, public_sector_holiday),
|
|
175
199
|
# 2 year-end public sector holidays.
|
|
176
200
|
(DEC, 24, public_sector_holiday),
|
|
177
201
|
(DEC, 31, public_sector_holiday),
|
|
178
202
|
),
|
|
179
|
-
|
|
180
|
-
|
|
203
|
+
2013: (
|
|
204
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
205
|
+
(MAR, 27, public_sector_holiday),
|
|
206
|
+
# 2 year-end public sector holidays.
|
|
207
|
+
(DEC, 24, public_sector_holiday),
|
|
208
|
+
(DEC, 31, public_sector_holiday),
|
|
209
|
+
),
|
|
181
210
|
2014: (
|
|
182
|
-
#
|
|
211
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
183
212
|
(APR, 16, public_sector_holiday),
|
|
184
213
|
# 2 year-end public sector holidays.
|
|
185
214
|
(DEC, 24, public_sector_holiday),
|
|
186
215
|
(DEC, 31, public_sector_holiday),
|
|
187
216
|
),
|
|
188
217
|
2015: (
|
|
189
|
-
#
|
|
218
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
190
219
|
(APR, 1, public_sector_holiday),
|
|
191
220
|
# 2 year-end public sector holidays.
|
|
192
221
|
(DEC, 24, public_sector_holiday),
|
|
193
222
|
(DEC, 31, public_sector_holiday),
|
|
194
223
|
),
|
|
195
|
-
#
|
|
224
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
196
225
|
2016: (MAR, 23, public_sector_holiday),
|
|
197
|
-
#
|
|
226
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
198
227
|
2017: (MAR, 28, public_sector_holiday),
|
|
199
228
|
2018: (
|
|
200
229
|
# 2 year-end public sector holidays.
|
|
@@ -202,13 +231,13 @@ class ParaguayStaticHolidays:
|
|
|
202
231
|
(DEC, 31, public_sector_holiday),
|
|
203
232
|
),
|
|
204
233
|
2019: (
|
|
205
|
-
#
|
|
234
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
206
235
|
(APR, 17, public_sector_holiday),
|
|
207
236
|
# 2 year-end public sector holidays.
|
|
208
237
|
(DEC, 24, public_sector_holiday),
|
|
209
238
|
(DEC, 31, public_sector_holiday),
|
|
210
239
|
),
|
|
211
|
-
#
|
|
240
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
212
241
|
2020: (APR, 8, public_sector_holiday),
|
|
213
242
|
2021: (
|
|
214
243
|
# 2 year-end public sector holidays.
|
|
@@ -216,9 +245,27 @@ class ParaguayStaticHolidays:
|
|
|
216
245
|
(DEC, 31, public_sector_holiday),
|
|
217
246
|
),
|
|
218
247
|
2022: (
|
|
219
|
-
#
|
|
248
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
220
249
|
(APR, 13, public_sector_holiday),
|
|
221
|
-
#
|
|
250
|
+
# Public sector holiday due to the annual May 1st public holiday falling on a Sunday.
|
|
222
251
|
(MAY, 2, public_sector_holiday),
|
|
252
|
+
# 2 year-end public sector holidays.
|
|
253
|
+
(DEC, 23, public_sector_holiday),
|
|
254
|
+
(DEC, 30, public_sector_holiday),
|
|
255
|
+
),
|
|
256
|
+
2023: (
|
|
257
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
258
|
+
(APR, 5, public_sector_holiday),
|
|
259
|
+
# Public sector holiday from resolution no. 1045.
|
|
260
|
+
(DEC, 7, public_sector_holiday),
|
|
261
|
+
),
|
|
262
|
+
2024: (
|
|
263
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
264
|
+
(MAR, 27, public_sector_holiday),
|
|
265
|
+
# 2 year-end public sector holidays.
|
|
266
|
+
(DEC, 24, public_sector_holiday),
|
|
267
|
+
(DEC, 31, public_sector_holiday),
|
|
223
268
|
),
|
|
269
|
+
# Public sector holiday to let civil servants begin their Holy Week earlier.
|
|
270
|
+
2025: (APR, 16, public_sector_holiday),
|
|
224
271
|
}
|
holidays/countries/portugal.py
CHANGED
|
@@ -129,15 +129,14 @@ class Portugal(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
129
129
|
if self._year >= 1911:
|
|
130
130
|
if 1933 <= self._year <= 1973:
|
|
131
131
|
# Day of Camões, Portugal, and the Portuguese Race.
|
|
132
|
-
|
|
132
|
+
name = tr("Dia de Camões, de Portugal e da Raça")
|
|
133
133
|
elif self._year >= 1978:
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
tr("Dia de Portugal, de Camões e das Comunidades Portuguesas")
|
|
137
|
-
)
|
|
134
|
+
# Day of Portugal, Camões, and the Portuguese Communities.
|
|
135
|
+
name = tr("Dia de Portugal, de Camões e das Comunidades Portuguesas")
|
|
138
136
|
else:
|
|
139
137
|
# Portugal Day.
|
|
140
|
-
|
|
138
|
+
name = tr("Dia de Portugal")
|
|
139
|
+
self._add_holiday_jun_10(name)
|
|
141
140
|
|
|
142
141
|
# Assumption Day.
|
|
143
142
|
self._add_assumption_of_mary_day(tr("Assunção de Nossa Senhora"))
|
holidays/countries/qatar.py
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
from datetime import date
|
|
13
14
|
from gettext import gettext as tr
|
|
14
15
|
|
|
15
16
|
from holidays.calendars import _CustomIslamicHolidays
|
|
@@ -36,6 +37,7 @@ class Qatar(HolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays)
|
|
|
36
37
|
start_year = 1971
|
|
37
38
|
supported_categories = (BANK, PUBLIC)
|
|
38
39
|
supported_languages = ("ar_QA", "en_US")
|
|
40
|
+
weekend = {FRI, SAT}
|
|
39
41
|
|
|
40
42
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
41
43
|
"""
|
|
@@ -51,10 +53,11 @@ class Qatar(HolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays)
|
|
|
51
53
|
StaticHolidays.__init__(self, QatarStaticHolidays)
|
|
52
54
|
super().__init__(*args, **kwargs)
|
|
53
55
|
|
|
54
|
-
def
|
|
56
|
+
def _get_weekend(self, dt: date) -> set[int]:
|
|
55
57
|
# Qatar switches from THU-FRI to FRI-SAT on Aug 1, 2003.
|
|
56
|
-
|
|
58
|
+
return {FRI, SAT} if dt >= date(2003, AUG, 1) else {THU, FRI}
|
|
57
59
|
|
|
60
|
+
def _populate_public_holidays(self):
|
|
58
61
|
if self._year >= 2012:
|
|
59
62
|
# National Sports Day.
|
|
60
63
|
self._add_holiday_2nd_tue_of_feb(tr("اليوم الوطني للرياضة"))
|
holidays/countries/rwanda.py
CHANGED
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
14
15
|
from gettext import gettext as tr
|
|
16
|
+
from typing import TYPE_CHECKING
|
|
15
17
|
|
|
16
18
|
from holidays.calendars import _CustomIslamicHolidays
|
|
17
19
|
from holidays.calendars.gregorian import MAR, JUN, JUL, AUG
|
|
@@ -22,6 +24,9 @@ from holidays.observed_holiday_base import (
|
|
|
22
24
|
SAT_SUN_TO_NEXT_WORKDAY,
|
|
23
25
|
)
|
|
24
26
|
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from datetime import date
|
|
29
|
+
|
|
25
30
|
|
|
26
31
|
class Rwanda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
27
32
|
"""Rwanda holidays.
|
|
@@ -55,7 +60,7 @@ class Rwanda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isla
|
|
|
55
60
|
kwargs.setdefault("observed_since", 2017)
|
|
56
61
|
super().__init__(*args, **kwargs)
|
|
57
62
|
|
|
58
|
-
def _populate_observed(self, dts: set[date], multiple: bool = False) -> None:
|
|
63
|
+
def _populate_observed(self, dts: set[date], *, multiple: bool = False) -> None:
|
|
59
64
|
"""
|
|
60
65
|
Applies `SAT_TO_NEXT_WORKDAY` instead of `SAT_SUN_TO_NEXT_WORKDAY`
|
|
61
66
|
observed_rule for Day after New Year's Day and Boxing Day.
|
|
@@ -71,7 +76,7 @@ class Rwanda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isla
|
|
|
71
76
|
self._add_observed(
|
|
72
77
|
dt,
|
|
73
78
|
name,
|
|
74
|
-
SAT_TO_NEXT_WORKDAY if name in special_cases else SAT_SUN_TO_NEXT_WORKDAY,
|
|
79
|
+
rule=SAT_TO_NEXT_WORKDAY if name in special_cases else SAT_SUN_TO_NEXT_WORKDAY,
|
|
75
80
|
)
|
|
76
81
|
|
|
77
82
|
def _populate_public_holidays(self):
|
|
@@ -14,7 +14,7 @@ from datetime import date
|
|
|
14
14
|
from gettext import gettext as tr
|
|
15
15
|
|
|
16
16
|
from holidays.calendars import _CustomIslamicHolidays
|
|
17
|
-
from holidays.calendars.gregorian import SEP, NOV, THU, FRI, SAT, _timedelta
|
|
17
|
+
from holidays.calendars.gregorian import JUN, SEP, NOV, THU, FRI, SAT, _timedelta
|
|
18
18
|
from holidays.groups import IslamicHolidays, StaticHolidays
|
|
19
19
|
from holidays.observed_holiday_base import (
|
|
20
20
|
ObservedHolidayBase,
|
|
@@ -46,6 +46,7 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
|
|
|
46
46
|
# %s (observed, estimated).
|
|
47
47
|
observed_estimated_label = tr("%s (المقدرة، ملاحظة)")
|
|
48
48
|
supported_languages = ("ar", "en_US")
|
|
49
|
+
weekend = {FRI, SAT}
|
|
49
50
|
|
|
50
51
|
def __init__(self, *args, islamic_show_estimated: bool = False, **kwargs):
|
|
51
52
|
"""Saudi Arabia has traditionally used the Umm al-Qura calendar
|
|
@@ -71,16 +72,16 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
|
|
|
71
72
|
for i in range(4):
|
|
72
73
|
self._add_observed(_timedelta(dt, -i), name=self[dt], rule=observed_rule)
|
|
73
74
|
|
|
74
|
-
def
|
|
75
|
+
def _get_weekend(self, dt: date) -> set[int]:
|
|
75
76
|
# Weekend used to be THU, FRI before June 28th, 2013.
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
return {FRI, SAT} if dt >= date(2013, JUN, 28) else {THU, FRI}
|
|
78
|
+
|
|
79
|
+
def _populate_public_holidays(self):
|
|
78
80
|
self._observed_rule = (
|
|
79
81
|
THU_TO_PREV_WED + FRI_TO_NEXT_SAT
|
|
80
82
|
if self._year <= 2012
|
|
81
83
|
else FRI_TO_PREV_THU + SAT_TO_NEXT_SUN
|
|
82
84
|
)
|
|
83
|
-
self.weekend = {THU, FRI} if self._year <= 2012 else {FRI, SAT}
|
|
84
85
|
|
|
85
86
|
# Eid al-Fitr Holiday.
|
|
86
87
|
eid_al_fitr_name = tr("عطلة عيد الفطر")
|
holidays/countries/serbia.py
CHANGED
|
@@ -28,6 +28,8 @@ class Serbia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
28
28
|
default_language = "sr"
|
|
29
29
|
# %s (observed).
|
|
30
30
|
observed_label = tr("%s (слободан дан)")
|
|
31
|
+
# Independence Restored on June 5th, 2006.
|
|
32
|
+
start_year = 2007
|
|
31
33
|
supported_languages = ("en_US", "sr")
|
|
32
34
|
|
|
33
35
|
def __init__(self, *args, **kwargs):
|
|
@@ -64,10 +66,13 @@ class Serbia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
64
66
|
|
|
65
67
|
# Good Friday.
|
|
66
68
|
self._add_good_friday(tr("Велики петак"))
|
|
69
|
+
|
|
67
70
|
# Holy Saturday.
|
|
68
71
|
self._add_holy_saturday(tr("Велика субота"))
|
|
72
|
+
|
|
69
73
|
# Easter Sunday.
|
|
70
74
|
self._add_easter_sunday(tr("Васкрс"))
|
|
75
|
+
|
|
71
76
|
# Easter Monday.
|
|
72
77
|
self._add_easter_monday(tr("Други дан Васкрса"))
|
|
73
78
|
|
holidays/countries/slovakia.py
CHANGED
|
@@ -25,6 +25,9 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
25
25
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Slovakia>
|
|
26
26
|
* <https://sk.wikipedia.org/wiki/Zoznam_sviatkov_na_Slovensku>
|
|
27
27
|
* <https://web.archive.org/web/20250413192257/https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1993/241/>
|
|
28
|
+
* [Law 326/2020](https://web.archive.org/web/20250713005858/https://static.slov-lex.sk/static/SK/ZZ/2020/326/20210101.html)
|
|
29
|
+
* [Law 530/2023](https://web.archive.org/web/20250424165411/https://static.slov-lex.sk/static/SK/ZZ/2023/530/20240101.html)
|
|
30
|
+
* [Law 261/2025](https://web.archive.org/web/20251014224441/https://static.slov-lex.sk/static/SK/ZZ/2025/261/20251101.html)
|
|
28
31
|
"""
|
|
29
32
|
|
|
30
33
|
country = "SK"
|
|
@@ -58,7 +61,7 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
58
61
|
# Labor Day.
|
|
59
62
|
self._add_labor_day(tr("Sviatok práce"))
|
|
60
63
|
|
|
61
|
-
if self._year >= 1997:
|
|
64
|
+
if self._year >= 1997 and self._year != 2026:
|
|
62
65
|
# Day of Victory over Fascism.
|
|
63
66
|
self._add_world_war_two_victory_day(tr("Deň víťazstva nad fašizmom"))
|
|
64
67
|
|
|
@@ -72,13 +75,14 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
72
75
|
# Constitution Day.
|
|
73
76
|
self._add_holiday_sep_1(tr("Deň Ústavy Slovenskej republiky"))
|
|
74
77
|
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
if self._year != 2026:
|
|
79
|
+
# Day of Our Lady of the Seven Sorrows.
|
|
80
|
+
self._add_holiday_sep_15(tr("Sedembolestná Panna Mária"))
|
|
77
81
|
|
|
78
82
|
# All Saints' Day.
|
|
79
83
|
self._add_all_saints_day(tr("Sviatok Všetkých svätých"))
|
|
80
84
|
|
|
81
|
-
if self._year
|
|
85
|
+
if 2001 <= self._year <= 2024:
|
|
82
86
|
# Struggle for Freedom and Democracy Day.
|
|
83
87
|
self._add_holiday_nov_17(tr("Deň boja za slobodu a demokraciu"))
|
|
84
88
|
|
|
@@ -94,14 +98,29 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
94
98
|
def _populate_workday_holidays(self):
|
|
95
99
|
# According to Law 241/1993, these state holidays are not non-working days.
|
|
96
100
|
|
|
101
|
+
# Law 261/2025.
|
|
102
|
+
if self._year == 2026:
|
|
103
|
+
# Day of Victory over Fascism.
|
|
104
|
+
self._add_world_war_two_victory_day(tr("Deň víťazstva nad fašizmom"))
|
|
105
|
+
|
|
106
|
+
# Day of Our Lady of the Seven Sorrows.
|
|
107
|
+
self._add_holiday_sep_15(tr("Sedembolestná Panna Mária"))
|
|
108
|
+
|
|
109
|
+
# Law 530/2023.
|
|
97
110
|
if self._year >= 2024:
|
|
98
111
|
# Constitution Day.
|
|
99
112
|
self._add_holiday_sep_1(tr("Deň Ústavy Slovenskej republiky"))
|
|
100
113
|
|
|
114
|
+
# Law 326/2020.
|
|
101
115
|
if self._year >= 2021:
|
|
102
116
|
# Day of the Establishment of the Independent Czech-Slovak State.
|
|
103
117
|
self._add_holiday_oct_28(tr("Deň vzniku samostatného česko-slovenského štátu"))
|
|
104
118
|
|
|
119
|
+
# Law 261/2025.
|
|
120
|
+
if self._year >= 2025:
|
|
121
|
+
# Struggle for Freedom and Democracy Day.
|
|
122
|
+
self._add_holiday_nov_17(tr("Deň boja za slobodu a demokraciu"))
|
|
123
|
+
|
|
105
124
|
|
|
106
125
|
class SK(Slovakia):
|
|
107
126
|
pass
|
|
@@ -20,15 +20,18 @@ class SouthAfrica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
20
20
|
|
|
21
21
|
References:
|
|
22
22
|
* <https://web.archive.org/web/20250424073852/https://www.gov.za/about-sa/public-holidays>
|
|
23
|
+
* [Act No. 36, 1994](https://web.archive.org/web/20250914045710/https://www.gov.za/sites/default/files/gcis_document/201409/act36of1994.pdf)
|
|
24
|
+
* <https://web.archive.org/web/20250914050022/https://www.ancestors.co.za/origins-of-public-holidays-in-south-africa/>
|
|
23
25
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_South_Africa>
|
|
24
26
|
* <https://web.archive.org/web/20240715110800/https://www.gov.za/speeches/president-cyril-ramaphosa-progress-economic-recovery-30-oct-2023-0000>
|
|
25
27
|
* <https://web.archive.org/web/20250427184315/https://www.gov.za/documents/notices/public-holidays-act-declaration-29-may-2024-public-holiday-23-feb-2024>
|
|
26
28
|
"""
|
|
27
29
|
|
|
28
30
|
country = "ZA"
|
|
31
|
+
# %s (observed).
|
|
29
32
|
observed_label = "%s (observed)"
|
|
30
|
-
#
|
|
31
|
-
start_year =
|
|
33
|
+
# Public Holidays Act (No. 3 of 1910) came in effect on January 1st, 1911.
|
|
34
|
+
start_year = 1911
|
|
32
35
|
|
|
33
36
|
def __init__(self, *args, **kwargs):
|
|
34
37
|
ChristianHolidays.__init__(self)
|
|
@@ -39,75 +42,113 @@ class SouthAfrica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
39
42
|
super().__init__(*args, **kwargs)
|
|
40
43
|
|
|
41
44
|
def _populate_public_holidays(self):
|
|
45
|
+
# New Year's Day.
|
|
42
46
|
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
43
47
|
|
|
48
|
+
if 1980 <= self._year <= 1994:
|
|
49
|
+
# Founder's Day.
|
|
50
|
+
self._add_holiday_apr_6("Founder's Day")
|
|
51
|
+
elif 1952 <= self._year <= 1973:
|
|
52
|
+
# Van Riebeeck's Day.
|
|
53
|
+
self._add_holiday_apr_6("Van Riebeeck's Day")
|
|
54
|
+
|
|
55
|
+
# Good Friday.
|
|
44
56
|
self._add_good_friday("Good Friday")
|
|
45
57
|
|
|
46
|
-
|
|
58
|
+
if self._year <= 1979:
|
|
59
|
+
# Easter Monday.
|
|
60
|
+
self._add_easter_monday("Easter Monday")
|
|
47
61
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
name
|
|
52
|
-
elif self._year <=
|
|
53
|
-
name
|
|
54
|
-
else:
|
|
55
|
-
name = "Day of Reconciliation"
|
|
56
|
-
self._add_observed(self._add_holiday_dec_16(name))
|
|
62
|
+
# Family Day.
|
|
63
|
+
name = "Family Day"
|
|
64
|
+
if self._year >= 1980:
|
|
65
|
+
self._add_easter_monday(name)
|
|
66
|
+
elif 1961 <= self._year <= 1973:
|
|
67
|
+
self._add_holiday_jul_10(name)
|
|
57
68
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
self.
|
|
61
|
-
self.
|
|
62
|
-
|
|
69
|
+
# Workers' Day.
|
|
70
|
+
name = "Workers' Day"
|
|
71
|
+
if self._year >= 1995:
|
|
72
|
+
self._add_observed(self._add_labor_day(name))
|
|
73
|
+
elif 1987 <= self._year <= 1989:
|
|
74
|
+
self._add_holiday_1st_fri_of_may(name)
|
|
63
75
|
|
|
64
76
|
if self._year >= 1995:
|
|
77
|
+
# Human Rights Day.
|
|
65
78
|
self._add_observed(self._add_holiday_mar_21("Human Rights Day"))
|
|
66
79
|
|
|
80
|
+
# Freedom Day.
|
|
67
81
|
self._add_observed(self._add_holiday_apr_27("Freedom Day"))
|
|
68
82
|
|
|
69
|
-
|
|
70
|
-
|
|
83
|
+
# Youth Day.
|
|
71
84
|
self._add_observed(self._add_holiday_jun_16("Youth Day"))
|
|
72
85
|
|
|
86
|
+
# National Women's Day.
|
|
73
87
|
self._add_observed(self._add_holiday_aug_9("National Women's Day"))
|
|
74
88
|
|
|
89
|
+
# Heritage Day.
|
|
75
90
|
self._add_observed(self._add_holiday_sep_24("Heritage Day"))
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if self._year <= 1993:
|
|
91
|
+
elif self._year <= 1993:
|
|
92
|
+
self._add_holiday_may_31(
|
|
93
|
+
# Republic Day.
|
|
94
|
+
"Republic Day"
|
|
95
|
+
if self._year >= 1961
|
|
96
|
+
# Union Day.
|
|
97
|
+
else "Union Day"
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
# Ascension Day.
|
|
87
101
|
self._add_ascension_thursday("Ascension Day")
|
|
88
102
|
|
|
89
|
-
|
|
90
|
-
|
|
103
|
+
if self._year >= 1952:
|
|
104
|
+
# Kruger Day.
|
|
105
|
+
self._add_holiday_oct_10("Kruger Day")
|
|
91
106
|
|
|
92
|
-
if self._year
|
|
93
|
-
self.
|
|
94
|
-
|
|
95
|
-
|
|
107
|
+
if self._year >= 1952:
|
|
108
|
+
if self._year <= 1960:
|
|
109
|
+
# Queen's Birthday.
|
|
110
|
+
self._add_holiday_2nd_mon_of_jul("Queen's Birthday")
|
|
96
111
|
|
|
97
|
-
|
|
98
|
-
|
|
112
|
+
if self._year <= 1979:
|
|
113
|
+
# Settlers' Day.
|
|
114
|
+
self._add_holiday_1st_mon_of_sep("Settlers' Day")
|
|
115
|
+
else:
|
|
116
|
+
# According to our sources, Act No. 3 of 1910 supposedly uses the term "Victoria Day"
|
|
117
|
+
# but as we can't find the original document and that Empire Day was supposed
|
|
118
|
+
# instituted empire-wide circa 1904 - we'll stick with its latter name for now.
|
|
99
119
|
|
|
100
|
-
|
|
101
|
-
self.
|
|
120
|
+
# Empire Day.
|
|
121
|
+
self._add_holiday_may_24("Empire Day")
|
|
102
122
|
|
|
103
|
-
|
|
123
|
+
# King's Birthday.
|
|
104
124
|
self._add_holiday_1st_mon_of_aug("King's Birthday")
|
|
105
125
|
|
|
106
|
-
if
|
|
107
|
-
|
|
126
|
+
if self._year >= 1995:
|
|
127
|
+
# Day of Reconciliation.
|
|
128
|
+
name = "Day of Reconciliation"
|
|
129
|
+
elif self._year >= 1980:
|
|
130
|
+
# Day of the Vow.
|
|
131
|
+
name = "Day of the Vow"
|
|
132
|
+
elif self._year >= 1952:
|
|
133
|
+
# Day of the Covenant.
|
|
134
|
+
name = "Day of the Covenant"
|
|
135
|
+
else:
|
|
136
|
+
# Dingaan's Day.
|
|
137
|
+
name = "Dingaan's Day"
|
|
138
|
+
self._add_observed(self._add_holiday_dec_16(name))
|
|
139
|
+
|
|
140
|
+
# Christmas Day.
|
|
141
|
+
self._add_christmas_day("Christmas Day")
|
|
108
142
|
|
|
109
|
-
|
|
110
|
-
self.
|
|
143
|
+
self._add_observed(
|
|
144
|
+
self._add_christmas_day_two(
|
|
145
|
+
# Day of Goodwill.
|
|
146
|
+
"Day of Goodwill"
|
|
147
|
+
if self._year >= 1980
|
|
148
|
+
# Boxing Day.
|
|
149
|
+
else "Boxing Day"
|
|
150
|
+
)
|
|
151
|
+
)
|
|
111
152
|
|
|
112
153
|
|
|
113
154
|
class ZA(SouthAfrica):
|
|
@@ -119,11 +160,14 @@ class ZAF(SouthAfrica):
|
|
|
119
160
|
|
|
120
161
|
|
|
121
162
|
class SouthAfricaStaticHolidays:
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
163
|
+
# Local Government Elections.
|
|
164
|
+
local_elections = "Local Government Elections"
|
|
165
|
+
# National and Provincial Government Elections.
|
|
166
|
+
national_and_provincial_elections = "National and Provincial Government Elections"
|
|
167
|
+
# Public Holiday by Presidential Decree.
|
|
168
|
+
presidential_decree_holiday = "Public Holiday by Presidential Decree"
|
|
169
|
+
# Y2K Changeover.
|
|
170
|
+
y2k_changeover = "Y2K Changeover"
|
|
127
171
|
special_public_holidays = {
|
|
128
172
|
1999: (
|
|
129
173
|
(JUN, 2, national_and_provincial_elections),
|
|
@@ -144,13 +188,12 @@ class SouthAfricaStaticHolidays:
|
|
|
144
188
|
(DEC, 27, presidential_decree_holiday),
|
|
145
189
|
),
|
|
146
190
|
2019: (MAY, 8, national_and_provincial_elections),
|
|
147
|
-
|
|
191
|
+
# Municipal elections.
|
|
192
|
+
2021: (NOV, 1, "Municipal elections"),
|
|
148
193
|
2022: (DEC, 27, presidential_decree_holiday),
|
|
149
|
-
# Winning the 2023 Rugby World Cup
|
|
150
194
|
2023: (DEC, 15, presidential_decree_holiday),
|
|
151
195
|
2024: (MAY, 29, national_and_provincial_elections),
|
|
152
196
|
}
|
|
153
|
-
|
|
154
197
|
special_public_holidays_observed = {
|
|
155
198
|
# https://web.archive.org/web/20120328122217/http://www.info.gov.za/speeches/1999/991028409p1002.htm
|
|
156
199
|
2000: (JAN, 3, y2k_changeover),
|