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
|
@@ -0,0 +1,177 @@
|
|
|
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 GREGORIAN_CALENDAR, SEP
|
|
17
|
+
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
18
|
+
from holidays.constants import CATHOLIC, ORTHODOX, PUBLIC
|
|
19
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
20
|
+
from holidays.holiday_base import HolidayBase
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Palestine(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
24
|
+
"""Palestine holidays.
|
|
25
|
+
|
|
26
|
+
References:
|
|
27
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Palestine>
|
|
28
|
+
* <https://web.archive.org/web/20250705114216/https://info.wafa.ps/pages/details/29601>
|
|
29
|
+
* [Declaration of Palestine independence](https://en.wikipedia.org/wiki/Palestine#Uprising,_declaration_and_peace_treaty)
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
country = "PS"
|
|
33
|
+
default_language = "ar"
|
|
34
|
+
# %s (estimated).
|
|
35
|
+
estimated_label = tr("%s (المقدرة)")
|
|
36
|
+
# State of Palestine declared in November 1988.
|
|
37
|
+
start_year = 1989
|
|
38
|
+
supported_categories = (CATHOLIC, ORTHODOX, PUBLIC)
|
|
39
|
+
supported_languages = ("ar", "en_US")
|
|
40
|
+
|
|
41
|
+
def __init__(self, *args, islamic_show_estimated: bool = False, **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, calendar=JULIAN_CALENDAR)
|
|
49
|
+
InternationalHolidays.__init__(self)
|
|
50
|
+
IslamicHolidays.__init__(
|
|
51
|
+
self, cls=PalestineIslamicHolidays, show_estimated=islamic_show_estimated
|
|
52
|
+
)
|
|
53
|
+
super().__init__(*args, **kwargs)
|
|
54
|
+
|
|
55
|
+
def _populate_public_holidays(self):
|
|
56
|
+
# New Year's Day.
|
|
57
|
+
self._add_new_years_day(tr("رأس السنة الميلادي"))
|
|
58
|
+
|
|
59
|
+
# Orthodox Christmas Day.
|
|
60
|
+
self._add_christmas_day(tr("عيد الميلاد المجيد الشرقي"))
|
|
61
|
+
|
|
62
|
+
# International Women's Day.
|
|
63
|
+
self._add_womens_day(tr("يوم المراة العالمي"))
|
|
64
|
+
|
|
65
|
+
# Easter.
|
|
66
|
+
self._add_easter_sunday(tr("عيد الفصح المجيد"), GREGORIAN_CALENDAR)
|
|
67
|
+
|
|
68
|
+
# Easter.
|
|
69
|
+
self._add_easter_sunday(tr("عيد الفصح المجيد"))
|
|
70
|
+
|
|
71
|
+
# Labor Day.
|
|
72
|
+
self._add_labor_day(tr("عيد العمال"))
|
|
73
|
+
|
|
74
|
+
# Independence Day.
|
|
75
|
+
self._add_holiday_nov_15(tr("عيد الإستقلال"))
|
|
76
|
+
|
|
77
|
+
# Catholic Christmas Day.
|
|
78
|
+
self._add_christmas_day(tr("عيد الميلاد المجيد الغربي"), GREGORIAN_CALENDAR)
|
|
79
|
+
|
|
80
|
+
# Hijri New Year.
|
|
81
|
+
self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
|
|
82
|
+
|
|
83
|
+
# Prophet's Birthday.
|
|
84
|
+
self._add_mawlid_day(tr("ذكرى المولد النبوي الشريف"))
|
|
85
|
+
|
|
86
|
+
# Isra' and Mi'raj.
|
|
87
|
+
self._add_isra_and_miraj_day(tr("ذكرى الإسراء والمعراج"))
|
|
88
|
+
|
|
89
|
+
# Eid al-Fitr.
|
|
90
|
+
name = tr("عيد الفطر السعيد")
|
|
91
|
+
self._add_eid_al_fitr_day(name)
|
|
92
|
+
self._add_eid_al_fitr_day_two(name)
|
|
93
|
+
self._add_eid_al_fitr_day_three(name)
|
|
94
|
+
|
|
95
|
+
# Eid al-Adha.
|
|
96
|
+
name = tr("عيد الأضحى المبارك")
|
|
97
|
+
self._add_eid_al_adha_day(name)
|
|
98
|
+
self._add_eid_al_adha_day_two(name)
|
|
99
|
+
self._add_eid_al_adha_day_three(name)
|
|
100
|
+
self._add_eid_al_adha_day_four(name)
|
|
101
|
+
|
|
102
|
+
def _populate_catholic_holidays(self):
|
|
103
|
+
# New Year's Day.
|
|
104
|
+
self._add_new_years_day(tr("رأس السنة الميلادي"))
|
|
105
|
+
|
|
106
|
+
# Epiphany.
|
|
107
|
+
self._add_epiphany_day(tr("عيد الغطاس"), GREGORIAN_CALENDAR)
|
|
108
|
+
|
|
109
|
+
# Palm Sunday.
|
|
110
|
+
self._add_palm_sunday(tr("أحد الشعانين"), GREGORIAN_CALENDAR)
|
|
111
|
+
|
|
112
|
+
# Holy Thursday.
|
|
113
|
+
self._add_holy_thursday(tr("خميس الغسل"), GREGORIAN_CALENDAR)
|
|
114
|
+
|
|
115
|
+
# Good Friday.
|
|
116
|
+
self._add_good_friday(tr("الجمعة العظيمة"), GREGORIAN_CALENDAR)
|
|
117
|
+
|
|
118
|
+
# Holy Saturday.
|
|
119
|
+
self._add_holy_saturday(tr("سبت النور"), GREGORIAN_CALENDAR)
|
|
120
|
+
|
|
121
|
+
# Easter.
|
|
122
|
+
self._add_easter_monday(tr("عيد الفصح المجيد"), GREGORIAN_CALENDAR)
|
|
123
|
+
|
|
124
|
+
# Ascension Day.
|
|
125
|
+
self._add_ascension_thursday(tr("خميس الصعود"), GREGORIAN_CALENDAR)
|
|
126
|
+
|
|
127
|
+
# Pentecost.
|
|
128
|
+
self._add_whit_sunday(tr("أحد العنصرة"), GREGORIAN_CALENDAR)
|
|
129
|
+
|
|
130
|
+
# Catholic Christmas Day.
|
|
131
|
+
self._add_christmas_day_two(tr("عيد الميلاد المجيد الغربي"), GREGORIAN_CALENDAR)
|
|
132
|
+
|
|
133
|
+
def _populate_orthodox_holidays(self):
|
|
134
|
+
# Orthodox New Year's Day.
|
|
135
|
+
self._add_holiday_jan_14(tr("عيد رأس السنة الشرقي"))
|
|
136
|
+
|
|
137
|
+
# Orthodox Christmas Day.
|
|
138
|
+
self._add_christmas_day_two(tr("عيد الميلاد المجيد الشرقي"))
|
|
139
|
+
|
|
140
|
+
# Epiphany.
|
|
141
|
+
self._add_epiphany_day(tr("عيد الغطاس"))
|
|
142
|
+
|
|
143
|
+
# Palm Sunday.
|
|
144
|
+
self._add_palm_sunday(tr("أحد الشعانين"))
|
|
145
|
+
|
|
146
|
+
# Holy Thursday.
|
|
147
|
+
self._add_holy_thursday(tr("خميس الغسل"))
|
|
148
|
+
|
|
149
|
+
# Good Friday.
|
|
150
|
+
self._add_good_friday(tr("الجمعة العظيمة"))
|
|
151
|
+
|
|
152
|
+
# Holy Saturday.
|
|
153
|
+
self._add_holy_saturday(tr("سبت النور"))
|
|
154
|
+
|
|
155
|
+
# Easter.
|
|
156
|
+
self._add_easter_monday(tr("عيد الفصح المجيد"))
|
|
157
|
+
|
|
158
|
+
# Ascension Day.
|
|
159
|
+
self._add_ascension_thursday(tr("خميس الصعود"))
|
|
160
|
+
|
|
161
|
+
# Pentecost.
|
|
162
|
+
self._add_whit_sunday(tr("أحد العنصرة"))
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class PS(Palestine):
|
|
166
|
+
pass
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
class PSE(Palestine):
|
|
170
|
+
pass
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class PalestineIslamicHolidays(_CustomIslamicHolidays):
|
|
174
|
+
# All other dates follow Umm al-Qura calendar.
|
|
175
|
+
MAWLID_DATES = {
|
|
176
|
+
2023: (SEP, 27),
|
|
177
|
+
}
|
holidays/countries/peru.py
CHANGED
|
@@ -22,6 +22,8 @@ class Peru(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
22
22
|
References:
|
|
23
23
|
* <https://web.archive.org/web/20250414165243/https://www.gob.pe/feriados/>
|
|
24
24
|
* <https://es.wikipedia.org/wiki/Anexo:Días_feriados_en_el_Perú>
|
|
25
|
+
* [Ley N° 31788](https://web.archive.org/web/20250716164223/https://img.lpderecho.pe/wp-content/uploads/2023/06/Ley-31788-LPDerecho.pdf)
|
|
26
|
+
* [Ley N° 31822](https://web.archive.org/web/20250716164455/https://img.lpderecho.pe/wp-content/uploads/2023/07/Ley-31822-LPDerecho.pdf)
|
|
25
27
|
"""
|
|
26
28
|
|
|
27
29
|
country = "PE"
|
|
@@ -49,9 +51,19 @@ class Peru(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
49
51
|
# Labor Day.
|
|
50
52
|
self._add_labor_day(tr("Día del Trabajo"))
|
|
51
53
|
|
|
54
|
+
# Added via Ley N° 31788 on June 15th, 2023.
|
|
55
|
+
if self._year >= 2024:
|
|
56
|
+
# Battle of Arica and Flag Day.
|
|
57
|
+
self._add_holiday_jun_7(tr("Batalla de Arica y Día de la Bandera"))
|
|
58
|
+
|
|
52
59
|
# Saint Peter and Saint Paul's Day.
|
|
53
60
|
self._add_saints_peter_and_paul_day(tr("San Pedro y San Pablo"))
|
|
54
61
|
|
|
62
|
+
# Added via Ley N° 31822 on July 8th, 2023.
|
|
63
|
+
if self._year >= 2023:
|
|
64
|
+
# Peruvian Air Force Day.
|
|
65
|
+
self._add_holiday_jul_23(tr("Día de la Fuerza Aérea del Perú"))
|
|
66
|
+
|
|
55
67
|
# Independence Day.
|
|
56
68
|
self._add_holiday_jul_28(tr("Día de la Independencia"))
|
|
57
69
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from holidays.constants import GOVERNMENT, PUBLIC, WORKDAY
|
|
14
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays
|
|
15
|
+
from holidays.holiday_base import HolidayBase
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class PitcairnIslands(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
19
|
+
"""Pitcairn Islands holidays.
|
|
20
|
+
|
|
21
|
+
References:
|
|
22
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Pitcairn_Islands>
|
|
23
|
+
* [Public Holidays & Commemoration Days (2016)](https://web.archive.org/web/20161112174923/https://www.government.pn/policies/GPI%20-%20Approved%20Public%20Holidays%20&%20Commemoration%20Days.pdf)
|
|
24
|
+
* [Public Holidays & Commemoration Days (2024)](https://web.archive.org/web/20250517050245/https://static1.squarespace.com/static/6526ff6fef608a3828c13d05/t/6673d53b1c0e2f660cc31848/1718867262145/GPI_Policy_Public_Holidays_&_Commemoration_Days_June_2024.pdf)
|
|
25
|
+
* [The Laws of Pitcairn, Henderson, Ducie and Oeno Islands - Volume I](https://web.archive.org/web/20240418043000/https://static1.squarespace.com/static/6526ff6fef608a3828c13d05/t/65585fca2ce3972fb3bc8da3/1700290563094/Revised+Laws+of+Pitcairn,+Henderson,+Ducie+and+Oeno+Islands,+2017+Rev.+Ed.+-+Volume+1.pdf)
|
|
26
|
+
* [CIA The World Factbook](https://web.archive.org/web/20211217233431/https://www.cia.gov/the-world-factbook/countries/pitcairn-islands/)
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
country = "PN"
|
|
30
|
+
supported_categories = (GOVERNMENT, PUBLIC, WORKDAY)
|
|
31
|
+
# First available online source.
|
|
32
|
+
start_year = 2016
|
|
33
|
+
|
|
34
|
+
def __init__(self, *args, **kwargs):
|
|
35
|
+
ChristianHolidays.__init__(self)
|
|
36
|
+
InternationalHolidays.__init__(self)
|
|
37
|
+
super().__init__(*args, **kwargs)
|
|
38
|
+
|
|
39
|
+
def _populate_public_holidays(self):
|
|
40
|
+
# New Year's Day.
|
|
41
|
+
self._add_new_years_day("New Year's Day")
|
|
42
|
+
|
|
43
|
+
# Bounty Day.
|
|
44
|
+
self._add_holiday_jan_23("Bounty Day")
|
|
45
|
+
|
|
46
|
+
# Good Friday.
|
|
47
|
+
self._add_good_friday("Good Friday")
|
|
48
|
+
|
|
49
|
+
# Easter Monday.
|
|
50
|
+
self._add_easter_monday("Easter Monday")
|
|
51
|
+
|
|
52
|
+
if self._year >= 2023:
|
|
53
|
+
# King's Birthday.
|
|
54
|
+
self._add_holiday_1st_mon_of_jun("King's Birthday")
|
|
55
|
+
else:
|
|
56
|
+
# Queen's Birthday.
|
|
57
|
+
self._add_holiday_2nd_sat_of_jun("Queen's Birthday")
|
|
58
|
+
|
|
59
|
+
# Pitcairn Day.
|
|
60
|
+
self._add_holiday_jul_2("Pitcairn Day")
|
|
61
|
+
|
|
62
|
+
# Christmas Day.
|
|
63
|
+
self._add_christmas_day("Christmas Day")
|
|
64
|
+
|
|
65
|
+
# Boxing Day.
|
|
66
|
+
self._add_christmas_day_two("Boxing Day")
|
|
67
|
+
|
|
68
|
+
def _populate_government_holidays(self):
|
|
69
|
+
# New Year's Day.
|
|
70
|
+
self._add_new_years_day_two("New Year's Day")
|
|
71
|
+
|
|
72
|
+
def _populate_workday_holidays(self):
|
|
73
|
+
# ANZAC Day.
|
|
74
|
+
self._add_anzac_day("ANZAC Day")
|
|
75
|
+
|
|
76
|
+
# Remembrance Day.
|
|
77
|
+
self._add_remembrance_day("Remembrance Day")
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class PN(PitcairnIslands):
|
|
81
|
+
pass
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class PCN(PitcairnIslands):
|
|
85
|
+
pass
|
|
@@ -0,0 +1,130 @@
|
|
|
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.gregorian import JAN, JUL, AUG, SEP, _timedelta
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
17
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON, SUN_TO_NEXT_TUE
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SaintVincentAndTheGrenadines(
|
|
21
|
+
ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
22
|
+
):
|
|
23
|
+
"""Saint Vincent and the Grenadines holidays.
|
|
24
|
+
|
|
25
|
+
References:
|
|
26
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Vincent_and_the_Grenadines>
|
|
27
|
+
* [2013](https://web.archive.org/web/20240225145904/https://www.bosvg.com/wp-content/uploads/2021/10/bosvg_calendar2013-9x12_ver2-2.pdf)
|
|
28
|
+
* [2014](https://web.archive.org/web/20250610053913/https://www.bosvg.com/wp-content/uploads/2021/10/BOSVG-Calendar-2014-5th-draft.pdf)
|
|
29
|
+
* [2015](https://web.archive.org/web/20240225145904/https://www.bosvg.com/wp-content/uploads/2021/10/BOSVG-Bklet-Calendar-2015_21_11-3.pdf)
|
|
30
|
+
* [2016](https://web.archive.org/web/20240225145903/https://www.bosvg.com/wp-content/uploads/2021/10/BOSVG-2016_pgs_sm_fin.pdf)
|
|
31
|
+
* [2022](https://web.archive.org/web/20230426000952/https://www.bosvg.com/wp-content/uploads/2022/05/Tent-Calendar.pdf)
|
|
32
|
+
* [2023](https://web.archive.org/web/20240225145904/https://www.bosvg.com/wp-content/uploads/2023/03/BOSVG-CALENDAR-TENT_F_REPRINT_TENT-EXCLUDED-FINAL.pdf)
|
|
33
|
+
* [2019-2025](https://web.archive.org/web/20250214232128/https://pmoffice.gov.vc/pmoffice/index.php/public-holidays)
|
|
34
|
+
* [2020 Carnival Monday](https://web.archive.org/web/20250607111242/https://www.stvincenttimes.com/august-3rd-and-4th-2020-declared-public-holidays-in-svg/)
|
|
35
|
+
* [2025 National Spiritual Baptist Day](https://web.archive.org/web/20250513011200/https://www.gov.vc/images/pdf_documents/VINCENTIANS-PREPARE-FOR-MAY-21--SPIRITUAL-BAPTIST-LIBERATION-DAY-NATIONAL-HOLIDAY.pdf)
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
country = "VC"
|
|
39
|
+
default_language = "en_VC"
|
|
40
|
+
# %s (observed).
|
|
41
|
+
observed_label = tr("%s (observed)")
|
|
42
|
+
supported_languages = ("en_US", "en_VC")
|
|
43
|
+
start_year = 1979
|
|
44
|
+
|
|
45
|
+
def __init__(self, *args, **kwargs):
|
|
46
|
+
ChristianHolidays.__init__(self)
|
|
47
|
+
InternationalHolidays.__init__(self)
|
|
48
|
+
StaticHolidays.__init__(self, cls=SaintVincentAndTheGrenadinesStaticHolidays)
|
|
49
|
+
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
50
|
+
super().__init__(*args, **kwargs)
|
|
51
|
+
|
|
52
|
+
def _populate_public_holidays(self):
|
|
53
|
+
# New Year's Day.
|
|
54
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")))
|
|
55
|
+
|
|
56
|
+
# National Heroes' Day.
|
|
57
|
+
self._add_observed(self._add_holiday_mar_14(tr("National Heroes' Day")))
|
|
58
|
+
|
|
59
|
+
# Good Friday.
|
|
60
|
+
self._add_good_friday(tr("Good Friday"))
|
|
61
|
+
|
|
62
|
+
# Easter Monday.
|
|
63
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
64
|
+
|
|
65
|
+
# National Workers' Day.
|
|
66
|
+
self._add_observed(self._add_labor_day(tr("National Workers' Day")))
|
|
67
|
+
|
|
68
|
+
if self._year >= 2025:
|
|
69
|
+
# National Spiritual Baptist Day.
|
|
70
|
+
self._add_holiday_may_21(tr("National Spiritual Baptist Day"))
|
|
71
|
+
|
|
72
|
+
# Whit Monday.
|
|
73
|
+
self._add_whit_monday(tr("Whit Monday"))
|
|
74
|
+
|
|
75
|
+
# Carnival Monday.
|
|
76
|
+
name = tr("Carnival Monday")
|
|
77
|
+
carnival_monday_dates = {
|
|
78
|
+
2013: (JUL, 8),
|
|
79
|
+
2018: (JUL, 9),
|
|
80
|
+
2019: (JUL, 8),
|
|
81
|
+
2020: (AUG, 3),
|
|
82
|
+
2021: (SEP, 6),
|
|
83
|
+
2023: (JUL, 10),
|
|
84
|
+
2024: (JUL, 8),
|
|
85
|
+
}
|
|
86
|
+
dt = (
|
|
87
|
+
self._add_holiday(name, dt)
|
|
88
|
+
if (dt := carnival_monday_dates.get(self._year))
|
|
89
|
+
else self._add_holiday_1st_mon_of_jul(name)
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
# Carnival Tuesday.
|
|
93
|
+
self._add_holiday(tr("Carnival Tuesday"), _timedelta(dt, +1))
|
|
94
|
+
|
|
95
|
+
# Emancipation Day.
|
|
96
|
+
self._add_observed(self._add_holiday_aug_1(tr("Emancipation Day")))
|
|
97
|
+
|
|
98
|
+
# Independence Day.
|
|
99
|
+
self._add_observed(self._add_holiday_oct_27(tr("Independence Day")))
|
|
100
|
+
|
|
101
|
+
# Christmas Day.
|
|
102
|
+
self._add_observed(self._add_christmas_day(tr("Christmas Day")), rule=SUN_TO_NEXT_TUE)
|
|
103
|
+
|
|
104
|
+
# Boxing Day.
|
|
105
|
+
self._add_observed(self._add_christmas_day_two(tr("Boxing Day")))
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class VC(SaintVincentAndTheGrenadines):
|
|
109
|
+
pass
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class VCT(SaintVincentAndTheGrenadines):
|
|
113
|
+
pass
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class SaintVincentAndTheGrenadinesStaticHolidays:
|
|
117
|
+
"""Saint Vincent and the Grenadines special holidays.
|
|
118
|
+
|
|
119
|
+
References:
|
|
120
|
+
* [Statutory Rules and Orders 2021 No.1](https://web.archive.org/web/20250613051716/https://pmoffice.gov.vc/pmoffice/images/PDF/Gazettes/No_1_Proclamation_Delcaring_Friday_the_22nd_and_Monday_25th_day_of_January_2021_to_be_Public_Holidays_in_Saint_Vincent_and_the_Grenadines_19th_January_2021.pdf)
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
# Public Health Holiday.
|
|
124
|
+
name = tr("Public Health Holiday")
|
|
125
|
+
special_public_holidays = {
|
|
126
|
+
2021: (
|
|
127
|
+
(JAN, 22, name),
|
|
128
|
+
(JAN, 25, name),
|
|
129
|
+
),
|
|
130
|
+
}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
from gettext import gettext as tr
|
|
15
15
|
|
|
16
|
-
from holidays.calendars
|
|
16
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
17
|
+
from holidays.calendars.gregorian import SEP, NOV, THU, FRI, SAT, _timedelta
|
|
17
18
|
from holidays.groups import IslamicHolidays, StaticHolidays
|
|
18
19
|
from holidays.observed_holiday_base import (
|
|
19
20
|
ObservedHolidayBase,
|
|
@@ -30,9 +31,10 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
|
|
|
30
31
|
"""Saudi Arabia holidays.
|
|
31
32
|
|
|
32
33
|
References:
|
|
33
|
-
* <https://
|
|
34
|
+
* <https://ar.wikipedia.org/wiki/قائمة_العطل_الرسمية_في_السعودية>
|
|
34
35
|
* <https://web.archive.org/web/20240610223551/http://laboreducation.hrsd.gov.sa/en/labor-education/322>
|
|
35
36
|
* <https://web.archive.org/web/20250329052253/https://english.alarabiya.net/News/gulf/2022/01/27/Saudi-Arabia-to-commemorate-Founding-Day-on-Feb-22-annually-Royal-order>
|
|
37
|
+
* [2015 (1436 AH) Dhu al-Hijjah begin on September 15](https://web.archive.org/web/20250430191246/https://qna.org.qa/en/news/news-details?id=saudi-arabia-eid-aladha-to-start-on-september-24&date=14/09/2015)
|
|
36
38
|
"""
|
|
37
39
|
|
|
38
40
|
country = "SA"
|
|
@@ -45,26 +47,29 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
|
|
|
45
47
|
observed_estimated_label = tr("%s (المقدرة، ملاحظة)")
|
|
46
48
|
supported_languages = ("ar", "en_US")
|
|
47
49
|
|
|
48
|
-
def __init__(self, *args, islamic_show_estimated: bool =
|
|
49
|
-
"""
|
|
50
|
+
def __init__(self, *args, islamic_show_estimated: bool = False, **kwargs):
|
|
51
|
+
"""Saudi Arabia has traditionally used the Umm al-Qura calendar
|
|
52
|
+
for administrative purposes.
|
|
53
|
+
|
|
50
54
|
Args:
|
|
51
55
|
islamic_show_estimated:
|
|
52
56
|
Whether to add "estimated" label to Islamic holidays name
|
|
53
57
|
if holiday date is estimated.
|
|
54
58
|
"""
|
|
55
|
-
IslamicHolidays.__init__(
|
|
59
|
+
IslamicHolidays.__init__(
|
|
60
|
+
self, cls=SaudiArabiaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
61
|
+
)
|
|
56
62
|
StaticHolidays.__init__(self, SaudiArabiaStaticHolidays)
|
|
57
63
|
kwargs.setdefault("observed_rule", FRI_TO_PREV_THU + SAT_TO_NEXT_SUN)
|
|
58
64
|
super().__init__(*args, **kwargs)
|
|
59
65
|
|
|
60
|
-
def _add_islamic_observed(self,
|
|
66
|
+
def _add_islamic_observed(self, dt: date) -> None:
|
|
61
67
|
# Observed days are added to make up for any days falling on a weekend.
|
|
62
68
|
if not self.observed:
|
|
63
69
|
return None
|
|
64
70
|
observed_rule = THU_FRI_TO_NEXT_WORKDAY if self._year <= 2012 else FRI_SAT_TO_NEXT_WORKDAY
|
|
65
|
-
for
|
|
66
|
-
|
|
67
|
-
self._add_observed(_timedelta(dt, -i), name=self[dt], rule=observed_rule)
|
|
71
|
+
for i in range(4):
|
|
72
|
+
self._add_observed(_timedelta(dt, -i), name=self[dt], rule=observed_rule)
|
|
68
73
|
|
|
69
74
|
def _populate_public_holidays(self):
|
|
70
75
|
# Weekend used to be THU, FRI before June 28th, 2013.
|
|
@@ -77,36 +82,38 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
|
|
|
77
82
|
)
|
|
78
83
|
self.weekend = {THU, FRI} if self._year <= 2012 else {FRI, SAT}
|
|
79
84
|
|
|
80
|
-
# Eid al-Fitr Holiday
|
|
85
|
+
# Eid al-Fitr Holiday.
|
|
81
86
|
eid_al_fitr_name = tr("عطلة عيد الفطر")
|
|
82
|
-
self._add_eid_al_fitr_day(eid_al_fitr_name)
|
|
87
|
+
eid_al_fitr_dates = self._add_eid_al_fitr_day(eid_al_fitr_name)
|
|
83
88
|
self._add_eid_al_fitr_day_two(eid_al_fitr_name)
|
|
84
89
|
self._add_eid_al_fitr_day_three(eid_al_fitr_name)
|
|
85
|
-
self._add_islamic_observed(self._add_eid_al_fitr_day_four(eid_al_fitr_name))
|
|
86
90
|
|
|
87
|
-
|
|
91
|
+
for dt in eid_al_fitr_dates:
|
|
92
|
+
if self._islamic_calendar._is_long_ramadan(dt):
|
|
93
|
+
# Add 30 Ramadan.
|
|
94
|
+
self._add_holiday(eid_al_fitr_name, _timedelta(dt, -1))
|
|
95
|
+
self._add_islamic_observed(_timedelta(dt, +2))
|
|
96
|
+
else:
|
|
97
|
+
# Add 4 Shawwal.
|
|
98
|
+
self._add_islamic_observed(self._add_holiday(eid_al_fitr_name, _timedelta(dt, +3)))
|
|
99
|
+
|
|
100
|
+
# Arafat Day.
|
|
88
101
|
self._add_arafah_day(tr("يوم عرفة"))
|
|
89
|
-
|
|
102
|
+
|
|
103
|
+
# Eid al-Adha Holiday.
|
|
90
104
|
name = tr("عطلة عيد الأضحى")
|
|
91
105
|
self._add_eid_al_adha_day(name)
|
|
92
106
|
self._add_eid_al_adha_day_two(name)
|
|
93
|
-
self.
|
|
94
|
-
|
|
95
|
-
# If National Day happens within the Eid al-Fitr Holiday or
|
|
96
|
-
# Eid al-Adha Holiday, there is no extra holidays given for it.
|
|
97
|
-
if self._year >= 2005:
|
|
98
|
-
dt = date(self._year, SEP, 23)
|
|
99
|
-
if dt not in self:
|
|
100
|
-
# National Day Holiday
|
|
101
|
-
self._add_observed(self._add_holiday(tr("اليوم الوطني"), dt))
|
|
107
|
+
for dt in self._add_eid_al_adha_day_three(name):
|
|
108
|
+
self._add_islamic_observed(dt)
|
|
102
109
|
|
|
103
|
-
# If Founding Day happens within the Eid al-Fitr Holiday or
|
|
104
|
-
# Eid al-Adha Holiday, there is no extra holidays given for it.
|
|
105
110
|
if self._year >= 2022:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
111
|
+
# Founding Day.
|
|
112
|
+
self._add_observed(self._add_holiday_feb_22(tr("يوم التأسيسي")))
|
|
113
|
+
|
|
114
|
+
if self._year >= 2005:
|
|
115
|
+
# National Day.
|
|
116
|
+
self._add_observed(self._add_holiday_sep_23(tr("اليوم الوطني")))
|
|
110
117
|
|
|
111
118
|
|
|
112
119
|
class SA(SaudiArabia):
|
|
@@ -117,13 +124,14 @@ class SAU(SaudiArabia):
|
|
|
117
124
|
pass
|
|
118
125
|
|
|
119
126
|
|
|
127
|
+
class SaudiArabiaIslamicHolidays(_CustomIslamicHolidays):
|
|
128
|
+
EID_AL_ADHA_DATES = {
|
|
129
|
+
2015: (SEP, 24),
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
120
133
|
class SaudiArabiaStaticHolidays:
|
|
121
134
|
special_public_holidays = {
|
|
122
|
-
# Celebrate the country's win against Argentina in the World Cup
|
|
135
|
+
# Celebrate the country's win against Argentina in the World Cup.
|
|
123
136
|
2022: (NOV, 23, tr("يوم وطني")),
|
|
124
137
|
}
|
|
125
|
-
|
|
126
|
-
special_public_holidays_observed = {
|
|
127
|
-
# Eid al-Fitr Holiday
|
|
128
|
-
2001: (JAN, 1, tr("عطلة عيد الفطر")),
|
|
129
|
-
}
|
holidays/countries/seychelles.py
CHANGED
|
@@ -17,7 +17,7 @@ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
17
17
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
class Seychelles(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
20
|
+
class Seychelles(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
21
21
|
"""Seychelles holidays.
|
|
22
22
|
|
|
23
23
|
References:
|
|
@@ -126,8 +126,8 @@ class SolomonIslands(
|
|
|
126
126
|
2022: (JUN, 3),
|
|
127
127
|
2025: (JUN, 13),
|
|
128
128
|
}
|
|
129
|
-
if self._year
|
|
130
|
-
self._add_holiday(name,
|
|
129
|
+
if dt := sovereign_birthday_dates.get(self._year):
|
|
130
|
+
self._add_holiday(name, dt)
|
|
131
131
|
elif self._year == 2024:
|
|
132
132
|
self._add_observed(self._add_holiday_3rd_sat_of_jun(name))
|
|
133
133
|
elif self._year >= 2023:
|
|
@@ -0,0 +1,66 @@
|
|
|
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.gregorian import SUN
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Tokelau(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
21
|
+
"""Tokelau holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Tokelau>
|
|
25
|
+
* <https://web.archive.org/web/20250715060109/https://www.tokelau.org.nz/About+Us/Culture.html>
|
|
26
|
+
* [Interpretation Rules 2003](https://web.archive.org/web/20250715065528/https://paclii.org/tk/legis/consol_act_2016/ir2003240.pdf)
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
country = "TK"
|
|
30
|
+
default_language = "en_TK"
|
|
31
|
+
supported_languages = ("en_TK", "en_US", "tkl")
|
|
32
|
+
# Interpretation Rules 2003.
|
|
33
|
+
start_year = 2003
|
|
34
|
+
weekend = {SUN}
|
|
35
|
+
|
|
36
|
+
def __init__(self, *args, **kwargs):
|
|
37
|
+
ChristianHolidays.__init__(self)
|
|
38
|
+
InternationalHolidays.__init__(self)
|
|
39
|
+
super().__init__(*args, **kwargs)
|
|
40
|
+
|
|
41
|
+
def _populate_public_holidays(self):
|
|
42
|
+
# New Year's Day.
|
|
43
|
+
self._add_new_years_day(tr("New Year's Day"))
|
|
44
|
+
|
|
45
|
+
# Good Friday.
|
|
46
|
+
self._add_good_friday(tr("Good Friday"))
|
|
47
|
+
|
|
48
|
+
# Easter Monday.
|
|
49
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
50
|
+
|
|
51
|
+
# Tokehega Day.
|
|
52
|
+
self._add_holiday_sep_3(tr("Tokehega Day"))
|
|
53
|
+
|
|
54
|
+
# Christmas Day.
|
|
55
|
+
self._add_christmas_day(tr("Christmas Day"))
|
|
56
|
+
|
|
57
|
+
# Boxing Day.
|
|
58
|
+
self._add_christmas_day_two(tr("Boxing Day"))
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class TK(Tokelau):
|
|
62
|
+
pass
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class TKL(Tokelau):
|
|
66
|
+
pass
|
|
@@ -91,8 +91,8 @@ class TurksAndCaicosIslands(ObservedHolidayBase, ChristianHolidays, Internationa
|
|
|
91
91
|
2024: (JUN, 17),
|
|
92
92
|
2025: (JUN, 23),
|
|
93
93
|
}
|
|
94
|
-
if self._year
|
|
95
|
-
self._add_holiday(name,
|
|
94
|
+
if dt := dates_obs.get(self._year):
|
|
95
|
+
self._add_holiday(name, dt)
|
|
96
96
|
else:
|
|
97
97
|
self._add_holiday_2nd_mon_of_jun(name)
|
|
98
98
|
|
|
@@ -88,8 +88,8 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
|
|
|
88
88
|
}
|
|
89
89
|
# Spring Bank Holiday.
|
|
90
90
|
name = tr("Spring Bank Holiday")
|
|
91
|
-
if self._year
|
|
92
|
-
self._add_holiday(name,
|
|
91
|
+
if dt := spring_bank_dates.get(self._year):
|
|
92
|
+
self._add_holiday(name, dt)
|
|
93
93
|
else:
|
|
94
94
|
self._add_holiday_last_mon_of_may(name)
|
|
95
95
|
|