holidays 0.55__py3-none-any.whl → 0.56__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.
Files changed (99) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/countries/__init__.py +2 -0
  3. holidays/countries/australia.py +1 -1
  4. holidays/countries/austria.py +10 -10
  5. holidays/countries/bosnia_and_herzegovina.py +8 -12
  6. holidays/countries/brunei.py +6 -0
  7. holidays/countries/cambodia.py +20 -3
  8. holidays/countries/canada.py +6 -6
  9. holidays/countries/croatia.py +1 -1
  10. holidays/countries/cyprus.py +1 -1
  11. holidays/countries/dominica.py +130 -0
  12. holidays/countries/dominican_republic.py +7 -12
  13. holidays/countries/haiti.py +134 -0
  14. holidays/countries/hongkong.py +1 -1
  15. holidays/countries/hungary.py +6 -0
  16. holidays/countries/ireland.py +6 -6
  17. holidays/countries/isle_of_man.py +1 -0
  18. holidays/countries/italy.py +113 -5
  19. holidays/countries/laos.py +24 -62
  20. holidays/countries/liechtenstein.py +1 -1
  21. holidays/countries/luxembourg.py +1 -1
  22. holidays/countries/malaysia.py +16 -38
  23. holidays/countries/malta.py +3 -3
  24. holidays/countries/new_zealand.py +68 -43
  25. holidays/countries/philippines.py +215 -26
  26. holidays/countries/portugal.py +7 -7
  27. holidays/countries/russia.py +382 -3
  28. holidays/countries/slovakia.py +1 -1
  29. holidays/countries/spain.py +8 -8
  30. holidays/countries/switzerland.py +3 -3
  31. holidays/countries/united_kingdom.py +12 -22
  32. holidays/countries/united_states.py +2 -2
  33. holidays/groups/christian.py +19 -0
  34. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  35. holidays/locale/ar/LC_MESSAGES/CA.po +6 -6
  36. holidays/locale/de/LC_MESSAGES/AT.po +6 -6
  37. holidays/locale/de/LC_MESSAGES/CH.po +3 -3
  38. holidays/locale/de/LC_MESSAGES/LI.po +1 -1
  39. holidays/locale/de/LC_MESSAGES/LU.po +1 -1
  40. holidays/locale/en_CA/LC_MESSAGES/CA.po +6 -6
  41. holidays/locale/en_US/LC_MESSAGES/AT.mo +0 -0
  42. holidays/locale/en_US/LC_MESSAGES/AT.po +14 -14
  43. holidays/locale/en_US/LC_MESSAGES/BG.mo +0 -0
  44. holidays/locale/en_US/LC_MESSAGES/BG.po +3 -3
  45. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  46. holidays/locale/en_US/LC_MESSAGES/CA.po +11 -11
  47. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  48. holidays/locale/en_US/LC_MESSAGES/CH.po +9 -8
  49. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  50. holidays/locale/en_US/LC_MESSAGES/ES.po +16 -16
  51. holidays/locale/en_US/LC_MESSAGES/HR.mo +0 -0
  52. holidays/locale/en_US/LC_MESSAGES/HR.po +4 -4
  53. holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
  54. holidays/locale/en_US/LC_MESSAGES/HT.po +127 -0
  55. holidays/locale/en_US/LC_MESSAGES/LI.mo +0 -0
  56. holidays/locale/en_US/LC_MESSAGES/LI.po +4 -4
  57. holidays/locale/en_US/LC_MESSAGES/LU.mo +0 -0
  58. holidays/locale/en_US/LC_MESSAGES/LU.po +4 -4
  59. holidays/locale/en_US/LC_MESSAGES/MT.mo +0 -0
  60. holidays/locale/en_US/LC_MESSAGES/MT.po +8 -8
  61. holidays/locale/en_US/LC_MESSAGES/PT.mo +0 -0
  62. holidays/locale/en_US/LC_MESSAGES/PT.po +16 -16
  63. holidays/locale/en_US/LC_MESSAGES/SK.mo +0 -0
  64. holidays/locale/en_US/LC_MESSAGES/SK.po +4 -4
  65. holidays/locale/es/LC_MESSAGES/ES.po +7 -7
  66. holidays/locale/es/LC_MESSAGES/HT.mo +0 -0
  67. holidays/locale/es/LC_MESSAGES/HT.po +127 -0
  68. holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
  69. holidays/locale/fr/LC_MESSAGES/CA.po +6 -6
  70. holidays/locale/fr/LC_MESSAGES/CH.po +3 -3
  71. holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
  72. holidays/locale/fr/LC_MESSAGES/LU.po +2 -2
  73. holidays/locale/fr_HT/LC_MESSAGES/HT.mo +0 -0
  74. holidays/locale/fr_HT/LC_MESSAGES/HT.po +127 -0
  75. holidays/locale/hr/LC_MESSAGES/HR.po +1 -1
  76. holidays/locale/ht/LC_MESSAGES/HT.mo +0 -0
  77. holidays/locale/ht/LC_MESSAGES/HT.po +127 -0
  78. holidays/locale/it/LC_MESSAGES/CH.po +3 -3
  79. holidays/locale/lb/LC_MESSAGES/LU.po +1 -1
  80. holidays/locale/mt/LC_MESSAGES/MT.po +3 -3
  81. holidays/locale/pt_PT/LC_MESSAGES/PT.po +7 -7
  82. holidays/locale/sk/LC_MESSAGES/SK.po +1 -1
  83. holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
  84. holidays/locale/th/LC_MESSAGES/CA.po +6 -6
  85. holidays/locale/uk/LC_MESSAGES/AT.po +6 -6
  86. holidays/locale/uk/LC_MESSAGES/CH.po +3 -3
  87. holidays/locale/uk/LC_MESSAGES/ES.po +7 -7
  88. holidays/locale/uk/LC_MESSAGES/HR.po +1 -1
  89. holidays/locale/uk/LC_MESSAGES/LI.po +1 -1
  90. holidays/locale/uk/LC_MESSAGES/LU.po +1 -1
  91. holidays/locale/uk/LC_MESSAGES/PT.po +7 -7
  92. holidays/locale/uk/LC_MESSAGES/SK.po +1 -1
  93. holidays/registry.py +2 -0
  94. {holidays-0.55.dist-info → holidays-0.56.dist-info}/METADATA +17 -7
  95. {holidays-0.55.dist-info → holidays-0.56.dist-info}/RECORD +99 -89
  96. {holidays-0.55.dist-info → holidays-0.56.dist-info}/WHEEL +1 -1
  97. {holidays-0.55.dist-info → holidays-0.56.dist-info}/AUTHORS +0 -0
  98. {holidays-0.55.dist-info → holidays-0.56.dist-info}/LICENSE +0 -0
  99. {holidays-0.55.dist-info → holidays-0.56.dist-info}/top_level.txt +0 -0
@@ -141,8 +141,119 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoliday
141
141
  "Trani",
142
142
  "Urbino",
143
143
  )
144
-
145
- _deprecated_subdivisions = ("Forlì",)
144
+ subdivisions_aliases = {
145
+ # Provinces.
146
+ "Agrigento": "AG",
147
+ "Alessandria": "AL",
148
+ "Ancona": "AN",
149
+ "Aosta": "AO",
150
+ "Ascoli Piceno": "AP",
151
+ "L'Aquila": "AQ",
152
+ "Arezzo": "AR",
153
+ "Asti": "AT",
154
+ "Avellino": "AV",
155
+ "Bari": "BA",
156
+ "Bergamo": "BG",
157
+ "Biella": "BI",
158
+ "Belluno": "BL",
159
+ "Benevento": "BN",
160
+ "Bologna": "BO",
161
+ "Brindisi": "BR",
162
+ "Brescia": "BS",
163
+ "Barletta-Andria-Trani": "BT",
164
+ "Bolzano": "BZ",
165
+ "Cagliari": "CA",
166
+ "Campobasso": "CB",
167
+ "Caserta": "CE",
168
+ "Chieti": "CH",
169
+ "Caltanissetta": "CL",
170
+ "Cuneo": "CN",
171
+ "Como": "CO",
172
+ "Cremona": "CR",
173
+ "Cosenza": "CS",
174
+ "Catania": "CT",
175
+ "Catanzaro": "CZ",
176
+ "Enna": "EN",
177
+ "Forli-Cesena": "FC",
178
+ "Forlì-Cesena": "FC",
179
+ "Ferrara": "FE",
180
+ "Foggia": "FG",
181
+ "Firenze": "FI",
182
+ "Fermo": "FM",
183
+ "Frosinone": "FR",
184
+ "Genova": "GE",
185
+ "Gorizia": "GO",
186
+ "Grosseto": "GR",
187
+ "Imperia": "IM",
188
+ "Isernia": "IS",
189
+ "Crotone": "KR",
190
+ "Lecco": "LC",
191
+ "Lecce": "LE",
192
+ "Livorno": "LI",
193
+ "Lodi": "LO",
194
+ "Latina": "LT",
195
+ "Lucca": "LU",
196
+ "Monza e Brianza": "MB",
197
+ "Macerata": "MC",
198
+ "Messina": "ME",
199
+ "Milano": "MI",
200
+ "Mantova": "MN",
201
+ "Modena": "MO",
202
+ "Massa-Carrara": "MS",
203
+ "Matera": "MT",
204
+ "Napoli": "NA",
205
+ "Novara": "NO",
206
+ "Nuoro": "NU",
207
+ "Oristano": "OR",
208
+ "Palermo": "PA",
209
+ "Piacenza": "PC",
210
+ "Padova": "PD",
211
+ "Pescara": "PE",
212
+ "Perugia": "PG",
213
+ "Pisa": "PI",
214
+ "Pordenone": "PN",
215
+ "Prato": "PO",
216
+ "Parma": "PR",
217
+ "Pistoia": "PT",
218
+ "Pesaro e Urbino": "PU",
219
+ "Pavia": "PV",
220
+ "Potenza": "PZ",
221
+ "Ravenna": "RA",
222
+ "Reggio Calabria": "RC",
223
+ "Reggio Emilia": "RE",
224
+ "Ragusa": "RG",
225
+ "Rieti": "RI",
226
+ "Roma": "RM",
227
+ "Rimini": "RN",
228
+ "Rovigo": "RO",
229
+ "Salerno": "SA",
230
+ "Siena": "SI",
231
+ "Sondrio": "SO",
232
+ "La Spezia": "SP",
233
+ "Siracusa": "SR",
234
+ "Sassari": "SS",
235
+ "Sud Sardegna": "SU",
236
+ "Savona": "SV",
237
+ "Taranto": "TA",
238
+ "Teramo": "TE",
239
+ "Trento": "TN",
240
+ "Torino": "TO",
241
+ "Trapani": "TP",
242
+ "Terni": "TR",
243
+ "Trieste": "TS",
244
+ "Treviso": "TV",
245
+ "Udine": "UD",
246
+ "Varese": "VA",
247
+ "Verbano-Cusio-Ossola": "VB",
248
+ "Vercelli": "VC",
249
+ "Venezia": "VE",
250
+ "Vicenza": "VI",
251
+ "Verona": "VR",
252
+ "Viterbo": "VT",
253
+ "Vibo Valentia": "VV",
254
+ # Cities.
255
+ "Forlì": "Forli",
256
+ }
146
257
 
147
258
  def __init__(self, *args, **kwargs):
148
259
  ChristianHolidays.__init__(self)
@@ -208,9 +319,6 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoliday
208
319
  # Saint Stephen's Day.
209
320
  self._add_christmas_day_two("Santo Stefano")
210
321
 
211
- if self.subdiv == "Forlì":
212
- self._populate_subdiv_forli_public_holidays()
213
-
214
322
  def _populate_subdiv_ag_public_holidays(self):
215
323
  self._add_holiday_feb_25("San Gerlando")
216
324
 
@@ -12,18 +12,11 @@
12
12
 
13
13
  from gettext import gettext as tr
14
14
 
15
- from holidays.calendars.gregorian import JAN, MAR, APR, MAY, JUL, OCT, DEC
15
+ from holidays.calendars.gregorian import JAN, APR, JUL
16
16
  from holidays.calendars.thai import KHMER_CALENDAR
17
17
  from holidays.constants import BANK, PUBLIC, SCHOOL, WORKDAY
18
18
  from holidays.groups import InternationalHolidays, ThaiCalendarHolidays, StaticHolidays
19
- from holidays.observed_holiday_base import (
20
- ObservedHolidayBase,
21
- THU_FRI_TO_NEXT_MON,
22
- FRI_TO_NEXT_TUE,
23
- SAT_TO_NEXT_TUE,
24
- SAT_SUN_TO_NEXT_MON,
25
- SAT_SUN_TO_NEXT_WED,
26
- )
19
+ from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_WORKDAY
27
20
 
28
21
 
29
22
  class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarHolidays):
@@ -40,7 +33,8 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
40
33
  https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf
41
34
  https://www.timeanddate.com/holidays/laos/
42
35
  https://www.bcel.com.la/bcel/bcel-calendar.html?y=2022
43
- https://www.bcel.com.la/bcel/bcel-calendar.html?year=2023
36
+ https://www.bcel.com.la/bcel/bcel-calendar.html?y=2023
37
+ https://www.bcel.com.la/bcel/bcel-calendar.html?y=2024
44
38
  http://www.lsx.com.la/cal/getStockCalendar.do?lang=lo (from 2011 onwards)
45
39
 
46
40
  !!! If Public Holiday falls on weekends, (in lieu) on workday !!!
@@ -51,6 +45,8 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
51
45
  - Saturdays and Sundays shall be restdays each week.
52
46
  - In-Lieu holidays shall be given if it fall on the weekends.
53
47
 
48
+ Although in-lieus has been de facto observed since at least 2012.
49
+
54
50
  Limitations:
55
51
 
56
52
  - Laotian holidays only works from 1976 onwards, and are only 100% accurate from 2018 onwards.
@@ -75,8 +71,8 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
75
71
  InternationalHolidays.__init__(self)
76
72
  ThaiCalendarHolidays.__init__(self, KHMER_CALENDAR)
77
73
  StaticHolidays.__init__(self, cls=LaosStaticHolidays)
78
- kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
79
- kwargs.setdefault("observed_since", 2018)
74
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
75
+ kwargs.setdefault("observed_since", 2012)
80
76
  super().__init__(*args, **kwargs)
81
77
 
82
78
  def _populate_bank_holidays(self):
@@ -126,27 +122,31 @@ class Laos(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiCalen
126
122
  # ວັນແມ່ຍິງສາກົນ
127
123
  # Status: In-Use.
128
124
  # Only acts as day off for Women.
125
+ # No in-lieus are observed in 2014.
129
126
 
130
127
  # International Women's Rights Day.
131
- self._add_observed(self._add_womens_day(tr("ວັນແມ່ຍິງສາກົນ")))
128
+ womens_day = self._add_womens_day(tr("ວັນແມ່ຍິງສາກົນ"))
129
+ if self._year != 2014:
130
+ self._add_observed(womens_day)
132
131
 
133
132
  # ບຸນປີໃໝ່ລາວ
134
133
  # Status: In-Use.
135
134
  # Celebrated for 3 days from 14-16 April annualy.
136
135
  # Observed dates prior to 2018 are assigned manually.
137
- # - CASE 1: THU-FRI-SAT -> in lieu on MON.
138
- # - CASE 2: FRI-SAT-SUN -> in lieu on MON-TUE.
139
- # - CASE 3: SAT-SUN-MON -> in lieu on TUE-WED.
140
- # - CASE 4: SUN-MON-TUE -> in lieu on WED.
141
136
 
142
137
  # Lao New Year's Day.
143
138
  name = tr("ບຸນປີໃໝ່ລາວ")
144
- dt = self._add_holiday_apr_14(name)
145
- self._add_holiday_apr_15(name)
146
- self._add_holiday_apr_16(name)
147
-
148
- self._add_observed(dt, rule=THU_FRI_TO_NEXT_MON + SAT_TO_NEXT_TUE)
149
- self._add_observed(dt, rule=FRI_TO_NEXT_TUE + SAT_SUN_TO_NEXT_WED)
139
+ songkran_years_apr_13_15 = {2012, 2017}
140
+ songkran_years_apr_13_16 = {2016, 2020, 2024}
141
+ dts_observed = set()
142
+ if self._year in songkran_years_apr_13_15.union(songkran_years_apr_13_16):
143
+ dts_observed.add(self._add_holiday_apr_13(name))
144
+ dts_observed.add(self._add_holiday_apr_14(name))
145
+ dts_observed.add(self._add_holiday_apr_15(name))
146
+ if self._year not in songkran_years_apr_13_15:
147
+ dts_observed.add(self._add_holiday_apr_16(name))
148
+ for dt in dts_observed:
149
+ self._add_observed(dt)
150
150
 
151
151
  # ວັນກຳມະກອນສາກົນ
152
152
  # Status: In-Use.
@@ -377,9 +377,6 @@ class LaosStaticHolidays:
377
377
  # Special Bank Holiday.
378
378
  special_bank_day_off = tr("ມື້ປິດການໃຫ້ບໍລິການຂອງທະນາຄານຕົວແທນ")
379
379
 
380
- # New Year's Day.
381
- new_year_day = tr("ວັນປີໃໝ່ສາກົນ")
382
-
383
380
  # International Women's Rights Day.
384
381
  international_womens_rights_day = tr("ວັນແມ່ຍິງສາກົນ")
385
382
 
@@ -389,55 +386,20 @@ class LaosStaticHolidays:
389
386
  # Lao New Year's Day (Special).
390
387
  lao_new_year_special = tr("ພັກບຸນປີໃໝ່ລາວ")
391
388
 
392
- # International Labor Day.
393
- international_labor_day = tr("ວັນກຳມະກອນສາກົນ")
394
-
395
389
  # Establishment Day of the Lao Women's Union.
396
390
  lao_womens_union = tr("ວັນສ້າງຕັ້ງສະຫະພັນແມ່ຍິງລາວ")
397
391
 
398
- # Establishment Day of the BOL.
399
- establishment_day_of_bol = tr("ວັນສ້າງຕັ້ງທະນາຄານແຫ່ງ ສປປ ລາວ")
400
-
401
- # Lao National Day.
402
- lao_national_day = tr("ວັນຊາດ")
403
-
404
392
  special_bank_holidays = {
405
393
  2015: (JAN, 2, special_bank_day_off),
406
394
  }
407
395
 
408
- special_bank_holidays_observed = {
409
- 2017: (OCT, 9, establishment_day_of_bol),
410
- }
411
-
412
396
  special_public_holidays = {
413
397
  2015: (APR, 17, lao_new_year_special),
414
- 2016: (
415
- (APR, 13, lao_new_year_special),
416
- (APR, 18, lao_new_year_special),
417
- ),
418
- 2020: (
419
- (APR, 13, lao_new_year_special),
420
- (APR, 17, lao_new_year_special),
421
- ),
422
398
  }
423
399
 
424
400
  special_public_holidays_observed = {
425
401
  2011: (APR, 13, lao_new_year),
426
- 2012: (
427
- (JAN, 2, new_year_day),
428
- (APR, 13, lao_new_year),
429
- (APR, 17, lao_new_year),
430
- (DEC, 3, lao_national_day),
431
- ),
432
- 2013: (APR, 17, lao_new_year),
433
- 2015: (MAR, 9, international_womens_rights_day),
434
- 2016: (MAY, 2, international_labor_day),
435
- 2017: (
436
- (JAN, 2, new_year_day),
437
- (APR, 13, lao_new_year),
438
- (APR, 17, lao_new_year),
439
- (DEC, 4, lao_national_day),
440
- ),
402
+ 2020: (APR, 17, lao_new_year),
441
403
  }
442
404
 
443
405
  special_workday_holidays_observed = {
@@ -84,7 +84,7 @@ class Liechtenstein(HolidayBase, ChristianHolidays, InternationalHolidays):
84
84
  # Christmas Day.
85
85
  self._add_christmas_day(tr("Weihnachten"))
86
86
 
87
- # St. Stephen's Day.
87
+ # Saint Stephen's Day.
88
88
  self._add_christmas_day_two(tr("Stephanstag"))
89
89
 
90
90
  def _populate_bank_holidays(self):
@@ -62,7 +62,7 @@ class Luxembourg(HolidayBase, ChristianHolidays, InternationalHolidays):
62
62
  # Christmas Day.
63
63
  self._add_christmas_day(tr("Chrëschtdag"))
64
64
 
65
- # St. Stephen's Day.
65
+ # Saint Stephen's Day.
66
66
  self._add_christmas_day_two(tr("Stiefesdag"))
67
67
 
68
68
 
@@ -87,41 +87,39 @@ class Malaysia(
87
87
  "15",
88
88
  "16",
89
89
  )
90
- _deprecated_subdivisions = (
91
- "JHR",
92
- "KDH",
93
- "KTN",
94
- "KUL",
95
- "LBN",
96
- "MLK",
97
- "NSN",
98
- "PHG",
99
- "PJY",
100
- "PLS",
101
- "PNG",
102
- "PRK",
103
- "SBH",
104
- "SGR",
105
- "SWK",
106
- "TRG",
107
- )
108
90
  subdivisions_aliases = {
109
91
  "Johor": "01",
92
+ "JHR": "01",
110
93
  "Kedah": "02",
94
+ "KDH": "02",
111
95
  "Kelantan": "03",
96
+ "KTN": "03",
112
97
  "Melaka": "04",
98
+ "MLK": "04",
113
99
  "Negeri Sembilan": "05",
100
+ "NSN": "05",
114
101
  "Pahang": "06",
102
+ "PHG": "06",
115
103
  "Pulau Pinang": "07",
104
+ "PNG": "07",
116
105
  "Perak": "08",
106
+ "PRK": "08",
117
107
  "Perlis": "09",
108
+ "PLS": "09",
118
109
  "Selangor": "10",
110
+ "SGR": "10",
119
111
  "Terengganu": "11",
112
+ "TRG": "11",
120
113
  "Sabah": "12",
114
+ "SBH": "12",
121
115
  "Sarawak": "13",
116
+ "SWK": "13",
122
117
  "WP Kuala Lumpur": "14",
118
+ "KUL": "14",
123
119
  "WP Labuan": "15",
120
+ "LBN": "15",
124
121
  "WP Putrajaya": "16",
122
+ "PJY": "16",
125
123
  }
126
124
  supported_languages = ("en_US", "ms_MY")
127
125
 
@@ -216,26 +214,6 @@ class Malaysia(
216
214
  if self._year <= 1951:
217
215
  return None
218
216
 
219
- deprecated_mapping = {
220
- "JHR": "01",
221
- "KDH": "02",
222
- "KTN": "03",
223
- "KUL": "14",
224
- "LBN": "15",
225
- "MLK": "04",
226
- "NSN": "05",
227
- "PHG": "06",
228
- "PJY": "16",
229
- "PLS": "09",
230
- "PNG": "07",
231
- "PRK": "08",
232
- "SBH": "12",
233
- "SGR": "10",
234
- "SWK": "13",
235
- "TRG": "11",
236
- }
237
- self.subdiv = deprecated_mapping.get(self.subdiv, self.subdiv)
238
-
239
217
  if self.subdiv and self.subdiv not in {"13", "15"}:
240
218
  # Deepavali.
241
219
  self.dts_observed.add(self._add_diwali(tr("Hari Deepavali")))
@@ -62,7 +62,7 @@ class Malta(HolidayBase, ChristianHolidays, InternationalHolidays):
62
62
  # Started in 1987 via Act LX of 1987.
63
63
 
64
64
  if self._year >= 1987:
65
- # Feast of St. Paul's Shipwreck.
65
+ # Feast of Saint Paul's Shipwreck.
66
66
  self._add_holiday_feb_10(tr("Il-Festa tan-Nawfraġju ta' San Pawl"))
67
67
 
68
68
  # Il-Festa ta' San Ġużepp
@@ -70,7 +70,7 @@ class Malta(HolidayBase, ChristianHolidays, InternationalHolidays):
70
70
  # Started in 1987 via Act LX of 1987.
71
71
 
72
72
  if self._year >= 1987:
73
- # Feast of St. Joseph.
73
+ # Feast of Saint Joseph.
74
74
  self._add_saint_josephs_day(tr("Il-Festa ta' San Ġużepp"))
75
75
 
76
76
  # Jum il-Ħelsien
@@ -107,7 +107,7 @@ class Malta(HolidayBase, ChristianHolidays, InternationalHolidays):
107
107
  # Started in 1987 via Act LX of 1987.
108
108
 
109
109
  if self._year >= 1987:
110
- # Feast of St. Peter and St. Paul.
110
+ # Feast of Saint Peter and Saint Paul.
111
111
  self._add_saints_peter_and_paul_day(tr("Il-Festa ta' San Pietru u San Pawl"))
112
112
 
113
113
  # Il-Festa ta' Santa Marija
@@ -27,6 +27,7 @@ class NewZealand(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
27
27
  country = "NZ"
28
28
  observed_label = "%s (observed)"
29
29
  subdivisions = (
30
+ # ISO 3166-2: Regions and Special Island Authorities.
30
31
  # https://en.wikipedia.org/wiki/ISO_3166-2:NZ
31
32
  "AUK", # Auckland / Tāmaki-makaurau
32
33
  "BOP", # Bay of Plenty / Toi Moana
@@ -35,7 +36,7 @@ class NewZealand(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
35
36
  "GIS", # Gisborne / Te Tairāwhiti
36
37
  "HKB", # Hawke's Bay / Te Matau a Māui
37
38
  "MBH", # Marlborough
38
- "MWT", # Manawatū Whanganui
39
+ "MWT", # Manawatū-Whanganui / Manawatū Whanganui
39
40
  "NSN", # Nelson / Whakatū
40
41
  "NTL", # Northland / Te Tai tokerau
41
42
  "OTA", # Otago / Ō Tākou
@@ -45,27 +46,71 @@ class NewZealand(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
45
46
  "WGN", # Greater Wellington / Te Pane Matua Taiao
46
47
  "WKO", # Waikato
47
48
  "WTC", # West Coast / Te Tai o Poutini
49
+ # Subregions:
50
+ # https://www.govt.nz/browse/work/public-holidays-and-work/public-holidays-and-anniversary-dates/
51
+ "South Canterbury",
48
52
  )
49
-
53
+ subdivisions_aliases = {
54
+ # Fullnames in English and Maori, as well as HASC.
55
+ "Auckland": "AUK",
56
+ "Tāmaki-Makaurau": "AUK",
57
+ "AU": "AUK",
58
+ "Bay of Plenty": "BOP",
59
+ "Toi Moana": "BOP",
60
+ "BP": "BOP",
61
+ "Canterbury": "CAN",
62
+ "Waitaha": "CAN",
63
+ "CA": "CAN",
64
+ "Chatham Islands Territory": "CIT",
65
+ "Chatham Islands": "CIT", # 1901-1994, as County
66
+ "Wharekauri": "CIT",
67
+ "CI": "CIT",
68
+ "Gisborne": "GIS",
69
+ "Te Tairāwhiti": "GIS",
70
+ "GI": "GIS",
71
+ "Hawke's Bay": "HKB",
72
+ "Te Matau-a-Māui": "HKB",
73
+ "HB": "HKB",
74
+ "Marlborough": "MBH",
75
+ "MA": "MBH",
76
+ "Manawatū Whanganui": "MWT",
77
+ "Manawatū-Whanganui": "MWT",
78
+ "MW": "MWT",
79
+ "Nelson": "NSN",
80
+ "Whakatū": "NSN",
81
+ "NE": "NSN",
82
+ "Northland": "NTL",
83
+ "Te Taitokerau": "NTL",
84
+ "NO": "NTL",
85
+ "Otago": "OTA",
86
+ "Ō Tākou": "OTA",
87
+ "OT": "OTA",
88
+ "Southland": "STL",
89
+ "Te Taiao Tonga": "STL",
90
+ "SO": "STL",
91
+ "Tasman": "TAS",
92
+ "Te tai o Aorere": "TAS",
93
+ "TS": "TAS",
94
+ "Taranaki": "TKI",
95
+ "TK": "TKI",
96
+ "Greater Wellington": "WGN",
97
+ "Te Pane Matua Taiao": "WGN",
98
+ "Wellington": "WGN", # Prev. ISO code from 2010-2015.
99
+ "Te Whanganui-a-Tara": "WGN", # Prev. ISO code from 2010-2015.
100
+ "WG": "WGN",
101
+ "Waikato": "WKO",
102
+ "WK": "WKO",
103
+ "West Coast": "WTC",
104
+ "Te Tai o Poutini": "WTC",
105
+ "WC": "WTC",
106
+ }
50
107
  _deprecated_subdivisions = (
51
- "Auckland",
52
- "Canterbury",
53
- "Chatham Islands",
54
- "Hawke's Bay",
55
- "Marlborough",
56
- "Nelson",
57
- "New Plymouth",
58
- "Northland",
59
- "Otago",
60
- "South Canterbury",
61
- "STC",
62
- "Southland",
63
- "Taranaki",
64
- "Waitangi",
65
- "Wellington",
66
- "West Coast",
67
- "Westland", # Correct name is West Coast
68
- "WTL", # Correct code is WTC
108
+ # Pre-1893 Naming in Previous Implementations.
109
+ "New Plymouth", # 1853-1859, Now Taranaki.
110
+ "Westland", # 1873-1876, Now West Coast.
111
+ # Unofficial Code.
112
+ "STC", # For 'South Canterbury' Subregional Holidays.
113
+ "WTL", # Westland, Correct code is WTC (for West Coast).
69
114
  )
70
115
 
71
116
  def __init__(self, *args, **kwargs):
@@ -186,31 +231,11 @@ class NewZealand(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
186
231
  # Boxing Day
187
232
  self._add_observed(self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
188
233
 
189
- if self.subdiv == "Auckland":
190
- self._populate_subdiv_auk_public_holidays()
191
- elif self.subdiv == "Canterbury":
192
- self._populate_subdiv_can_public_holidays()
193
- elif self.subdiv == "Chatham Islands":
194
- self._populate_subdiv_cit_public_holidays()
195
- elif self.subdiv == "Hawke's Bay":
196
- self._populate_subdiv_hkb_public_holidays()
197
- elif self.subdiv == "Marlborough":
198
- self._populate_subdiv_mbh_public_holidays()
199
- elif self.subdiv == "Nelson":
200
- self._populate_subdiv_nsn_public_holidays()
201
- elif self.subdiv == "Northland":
202
- self._populate_subdiv_ntl_public_holidays()
203
- elif self.subdiv == "Otago":
204
- self._populate_subdiv_ota_public_holidays()
205
- elif self.subdiv in {"New Plymouth", "Taranaki"}:
234
+ if self.subdiv == "New Plymouth":
206
235
  self._populate_subdiv_tki_public_holidays()
207
236
  elif self.subdiv == "South Canterbury":
208
237
  self._populate_subdiv_stc_public_holidays()
209
- elif self.subdiv == "Southland":
210
- self._populate_subdiv_stl_public_holidays()
211
- elif self.subdiv == "Wellington":
212
- self._populate_subdiv_wgn_public_holidays()
213
- elif self.subdiv in {"West Coast", "WTL", "Westland"}:
238
+ elif self.subdiv in {"WTL", "Westland"}:
214
239
  self._populate_subdiv_wtc_public_holidays()
215
240
 
216
241
  def _populate_subdiv_auk_public_holidays(self):
@@ -253,7 +278,7 @@ class NewZealand(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
253
278
  def _populate_subdiv_stl_public_holidays(self):
254
279
  name = "Southland Anniversary Day"
255
280
  if self._year >= 2012:
256
- self._add_holiday_2_days_past_easter(name)
281
+ self._add_easter_tuesday(name)
257
282
  else:
258
283
  self._add_holiday(name, self._get_nearest_monday(JAN, 17))
259
284