Skip to content

Commit ad33a65

Browse files
authored
Refactor United Kingdom holidays (vacanza#3262)
1 parent 66cee3c commit ad33a65

10 files changed

Lines changed: 195 additions & 343 deletions

File tree

holidays/countries/isle_of_man.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,20 @@ class IsleOfMan(UnitedKingdom):
2929
subdivisions = () # Override UnitedKingdom subdivisions.
3030
subdivisions_aliases = {} # Override UnitedKingdom subdivisions aliases.
3131

32-
def __init__(self, *args, **kwargs): # Override UnitedKingdom __init__().
32+
def __init__(self, *args, **kwargs):
3333
ChristianHolidays.__init__(self)
3434
InternationalHolidays.__init__(self)
3535
StaticHolidays.__init__(self, UnitedKingdomStaticHolidays)
3636
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
3737
ObservedHolidayBase.__init__(self, *args, **kwargs)
3838

3939
def _populate_public_holidays(self) -> None:
40+
# Common holidays with United Kingdom.
4041
super()._populate_public_holidays()
41-
# Easter Monday.
42-
self._add_easter_monday(tr("Easter Monday"))
4342

44-
if self._year <= 1970:
45-
# Whit Monday.
46-
self._add_whit_monday(tr("Whit Monday"))
43+
self._populate_common()
4744

48-
if self._year >= 1971:
49-
# Late Summer Bank Holiday.
50-
self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
51-
52-
# Isle of Man exclusive holidays
45+
# Isle of Man exclusive holidays.
5346

5447
# TT Bank Holiday.
5548
self._add_holiday_1st_fri_of_jun(tr("TT Bank Holiday"))

holidays/countries/united_kingdom.py

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,16 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
5454
"Wales": "WLS",
5555
}
5656
supported_languages = ("en_GB", "en_US", "th")
57-
_deprecated_subdivisions = ("UK",)
58-
# Bank Holidays Act 1871
57+
# Bank Holidays Act 1871.
5958
start_year = 1872
59+
_deprecated_subdivisions = ("UK",)
6060

6161
def __init__(self, *args, **kwargs):
6262
ChristianHolidays.__init__(self)
6363
InternationalHolidays.__init__(self)
6464
StaticHolidays.__init__(self, UnitedKingdomStaticHolidays)
6565
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
66-
# Bank Holidays Extension Act 1875
66+
# Bank Holidays Extension Act 1875.
6767
kwargs.setdefault("observed_since", 1875)
6868
super().__init__(*args, **kwargs)
6969

@@ -92,6 +92,17 @@ def _populate_public_holidays(self) -> None:
9292
else:
9393
self._add_holiday_last_mon_of_may(name)
9494

95+
def _populate_common(self):
96+
# Easter Monday.
97+
self._add_easter_monday(tr("Easter Monday"))
98+
99+
if self._year >= 1971:
100+
# Late Summer Bank Holiday.
101+
self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
102+
else:
103+
# Whit Monday.
104+
self._add_whit_monday(tr("Whit Monday"))
105+
95106
def _populate_subdiv_holidays(self):
96107
if self.subdiv != "SCT":
97108
if self._year >= 1975:
@@ -113,36 +124,18 @@ def _populate_subdiv_holidays(self):
113124
super()._populate_subdiv_holidays()
114125

115126
def _populate_subdiv_eng_public_holidays(self):
116-
# Easter Monday.
117-
self._add_easter_monday(tr("Easter Monday"))
118-
119-
if self._year <= 1970:
120-
# Whit Monday.
121-
self._add_whit_monday(tr("Whit Monday"))
122-
123-
if self._year >= 1971:
124-
# Late Summer Bank Holiday.
125-
self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
127+
self._populate_common()
126128

127129
def _populate_subdiv_nir_public_holidays(self):
130+
self._populate_common()
131+
128132
if self._year >= 1903:
129133
# Saint Patrick's Day.
130134
self._add_observed(self._add_saint_patricks_day(tr("Saint Patrick's Day")))
131135

132-
# Easter Monday.
133-
self._add_easter_monday(tr("Easter Monday"))
134-
135-
if self._year <= 1970:
136-
# Whit Monday.
137-
self._add_whit_monday(tr("Whit Monday"))
138-
139136
# Battle of the Boyne.
140137
self._add_observed(self._add_holiday_jul_12(tr("Battle of the Boyne")))
141138

142-
if self._year >= 1971:
143-
# Late Summer Bank Holiday.
144-
self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
145-
146139
def _populate_subdiv_sct_public_holidays(self):
147140
# New Year's Day.
148141
jan_1 = self._add_new_years_day(tr("New Year's Day"))
@@ -175,16 +168,7 @@ def _populate_subdiv_sct_public_holidays(self):
175168
)
176169

177170
def _populate_subdiv_wls_public_holidays(self):
178-
# Easter Monday.
179-
self._add_easter_monday(tr("Easter Monday"))
180-
181-
if self._year <= 1970:
182-
# Whit Monday.
183-
self._add_whit_monday(tr("Whit Monday"))
184-
185-
if self._year >= 1971:
186-
# Late Summer Bank Holiday.
187-
self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
171+
self._populate_common()
188172

189173

190174
class UK(UnitedKingdom):

holidays/locale/en_GB/LC_MESSAGES/GB.po

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-29 14:18+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: en_GB\n"
@@ -44,18 +44,6 @@ msgstr ""
4444
msgid "Spring Bank Holiday"
4545
msgstr ""
4646

47-
#. New Year's Day.
48-
msgid "New Year's Day"
49-
msgstr ""
50-
51-
#. Christmas Day.
52-
msgid "Christmas Day"
53-
msgstr ""
54-
55-
#. Boxing Day.
56-
msgid "Boxing Day"
57-
msgstr ""
58-
5947
#. Easter Monday.
6048
msgid "Easter Monday"
6149
msgstr ""
@@ -68,6 +56,18 @@ msgstr ""
6856
msgid "Late Summer Bank Holiday"
6957
msgstr ""
7058

59+
#. New Year's Day.
60+
msgid "New Year's Day"
61+
msgstr ""
62+
63+
#. Christmas Day.
64+
msgid "Christmas Day"
65+
msgstr ""
66+
67+
#. Boxing Day.
68+
msgid "Boxing Day"
69+
msgstr ""
70+
7171
#. Saint Patrick's Day.
7272
msgid "Saint Patrick's Day"
7373
msgstr ""

holidays/locale/en_GB/LC_MESSAGES/IM.po

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-31 13:46+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: en_GB\n"
@@ -27,18 +27,6 @@ msgstr ""
2727
"X-Generator: Poedit 3.5\n"
2828
"X-Source-Language: en_GB\n"
2929

30-
#. Easter Monday.
31-
msgid "Easter Monday"
32-
msgstr ""
33-
34-
#. Whit Monday.
35-
msgid "Whit Monday"
36-
msgstr ""
37-
38-
#. Late Summer Bank Holiday.
39-
msgid "Late Summer Bank Holiday"
40-
msgstr ""
41-
4230
#. TT Bank Holiday.
4331
msgid "TT Bank Holiday"
4432
msgstr ""

holidays/locale/en_US/LC_MESSAGES/GB.po

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-29 14:18+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: en_US\n"
@@ -44,18 +44,6 @@ msgstr "May Day"
4444
msgid "Spring Bank Holiday"
4545
msgstr "Spring Bank Holiday"
4646

47-
#. New Year's Day.
48-
msgid "New Year's Day"
49-
msgstr "New Year's Day"
50-
51-
#. Christmas Day.
52-
msgid "Christmas Day"
53-
msgstr "Christmas Day"
54-
55-
#. Boxing Day.
56-
msgid "Boxing Day"
57-
msgstr "Boxing Day"
58-
5947
#. Easter Monday.
6048
msgid "Easter Monday"
6149
msgstr "Easter Monday"
@@ -68,6 +56,18 @@ msgstr "Whit Monday"
6856
msgid "Late Summer Bank Holiday"
6957
msgstr "Late Summer Bank Holiday"
7058

59+
#. New Year's Day.
60+
msgid "New Year's Day"
61+
msgstr "New Year's Day"
62+
63+
#. Christmas Day.
64+
msgid "Christmas Day"
65+
msgstr "Christmas Day"
66+
67+
#. Boxing Day.
68+
msgid "Boxing Day"
69+
msgstr "Boxing Day"
70+
7171
#. Saint Patrick's Day.
7272
msgid "Saint Patrick's Day"
7373
msgstr "Saint Patrick's Day"

holidays/locale/en_US/LC_MESSAGES/IM.po

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-31 13:46+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: en_US\n"
@@ -27,18 +27,6 @@ msgstr ""
2727
"X-Generator: Poedit 3.5\n"
2828
"X-Source-Language: en_GB\n"
2929

30-
#. Easter Monday.
31-
msgid "Easter Monday"
32-
msgstr "Easter Monday"
33-
34-
#. Whit Monday.
35-
msgid "Whit Monday"
36-
msgstr "Whit Monday"
37-
38-
#. Late Summer Bank Holiday.
39-
msgid "Late Summer Bank Holiday"
40-
msgstr "Late Summer Bank Holiday"
41-
4230
#. TT Bank Holiday.
4331
msgid "TT Bank Holiday"
4432
msgstr "TT Bank Holiday"

holidays/locale/th/LC_MESSAGES/GB.po

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-29 14:18+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: th\n"
@@ -44,18 +44,6 @@ msgstr "วันเมย์เดย์"
4444
msgid "Spring Bank Holiday"
4545
msgstr "วันหยุดฤดูใบไม้ผลิของธนาคาร"
4646

47-
#. New Year's Day.
48-
msgid "New Year's Day"
49-
msgstr "วันขึ้นปีใหม่"
50-
51-
#. Christmas Day.
52-
msgid "Christmas Day"
53-
msgstr "วันคริสต์มาส"
54-
55-
#. Boxing Day.
56-
msgid "Boxing Day"
57-
msgstr "วันเปิดกล่องของขวัญ"
58-
5947
#. Easter Monday.
6048
msgid "Easter Monday"
6149
msgstr "วันจันทร์อีสเตอร์"
@@ -68,6 +56,18 @@ msgstr "วันจันทร์หลังวันสมโภชพระ
6856
msgid "Late Summer Bank Holiday"
6957
msgstr "วันหยุดช่วงปลายฤดูร้อนของธนาคาร"
7058

59+
#. New Year's Day.
60+
msgid "New Year's Day"
61+
msgstr "วันขึ้นปีใหม่"
62+
63+
#. Christmas Day.
64+
msgid "Christmas Day"
65+
msgstr "วันคริสต์มาส"
66+
67+
#. Boxing Day.
68+
msgid "Boxing Day"
69+
msgstr "วันเปิดกล่องของขวัญ"
70+
7171
#. Saint Patrick's Day.
7272
msgid "Saint Patrick's Day"
7373
msgstr "วันนักบุญแพทริก"

holidays/locale/th/LC_MESSAGES/IM.po

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#
1515
msgid ""
1616
msgstr ""
17-
"Project-Id-Version: Holidays 0.66\n"
17+
"Project-Id-Version: Holidays 0.91\n"
1818
"POT-Creation-Date: 2025-01-31 13:46+0700\n"
19-
"PO-Revision-Date: 2025-01-31 13:54+0700\n"
19+
"PO-Revision-Date: 2026-02-11 18:35+0200\n"
2020
"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
2121
"Language-Team: Holidays Localization Team\n"
2222
"Language: th\n"
@@ -27,18 +27,6 @@ msgstr ""
2727
"X-Generator: Poedit 3.5\n"
2828
"X-Source-Language: en_GB\n"
2929

30-
#. Easter Monday.
31-
msgid "Easter Monday"
32-
msgstr "วันจันทร์อีสเตอร์"
33-
34-
#. Whit Monday.
35-
msgid "Whit Monday"
36-
msgstr "วันจันทร์หลังวันสมโภชพระจิตเจ้า"
37-
38-
#. Late Summer Bank Holiday.
39-
msgid "Late Summer Bank Holiday"
40-
msgstr "วันหยุดช่วงปลายฤดูร้อนของธนาคาร"
41-
4230
#. TT Bank Holiday.
4331
msgid "TT Bank Holiday"
4432
msgstr "วันแข่งไอร์ออฟแมน ทีที"

0 commit comments

Comments
 (0)