holidays 0.26__py3-none-any.whl → 0.27__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 (256) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/calendars/__init__.py +5 -7
  3. holidays/calendars/buddhist.py +1 -3
  4. holidays/calendars/chinese.py +1 -3
  5. holidays/calendars/custom.py +1 -3
  6. holidays/calendars/hindu.py +1 -3
  7. holidays/calendars/islamic.py +1341 -1345
  8. holidays/calendars/thai.py +217 -26
  9. holidays/countries/__init__.py +4 -0
  10. holidays/countries/albania.py +6 -17
  11. holidays/countries/andorra.py +2 -6
  12. holidays/countries/angola.py +53 -39
  13. holidays/countries/argentina.py +13 -24
  14. holidays/countries/aruba.py +109 -48
  15. holidays/countries/australia.py +31 -69
  16. holidays/countries/azerbaijan.py +30 -38
  17. holidays/countries/bahrain.py +5 -5
  18. holidays/countries/bangladesh.py +1 -3
  19. holidays/countries/belarus.py +1 -3
  20. holidays/countries/belize.py +4 -16
  21. holidays/countries/bolivia.py +2 -6
  22. holidays/countries/bosnia_and_herzegovina.py +5 -17
  23. holidays/countries/botswana.py +9 -18
  24. holidays/countries/brazil.py +2 -5
  25. holidays/countries/brunei.py +427 -0
  26. holidays/countries/bulgaria.py +2 -6
  27. holidays/countries/burkina_faso.py +141 -0
  28. holidays/countries/burundi.py +2 -5
  29. holidays/countries/cambodia.py +323 -0
  30. holidays/countries/cameroon.py +71 -77
  31. holidays/countries/canada.py +19 -28
  32. holidays/countries/chad.py +133 -0
  33. holidays/countries/chile.py +4 -11
  34. holidays/countries/china.py +1 -2
  35. holidays/countries/colombia.py +17 -15
  36. holidays/countries/costa_rica.py +2 -6
  37. holidays/countries/curacao.py +100 -46
  38. holidays/countries/cyprus.py +2 -6
  39. holidays/countries/czechia.py +4 -12
  40. holidays/countries/denmark.py +1 -3
  41. holidays/countries/dominican_republic.py +1 -3
  42. holidays/countries/ecuador.py +54 -54
  43. holidays/countries/egypt.py +2 -5
  44. holidays/countries/eswatini.py +34 -44
  45. holidays/countries/ethiopia.py +5 -14
  46. holidays/countries/finland.py +1 -3
  47. holidays/countries/gabon.py +49 -53
  48. holidays/countries/greece.py +1 -2
  49. holidays/countries/honduras.py +16 -13
  50. holidays/countries/hongkong.py +7 -8
  51. holidays/countries/hungary.py +93 -92
  52. holidays/countries/india.py +4 -11
  53. holidays/countries/indonesia.py +120 -114
  54. holidays/countries/ireland.py +5 -15
  55. holidays/countries/isle_of_man.py +9 -4
  56. holidays/countries/israel.py +6 -18
  57. holidays/countries/italy.py +1 -2
  58. holidays/countries/jamaica.py +10 -18
  59. holidays/countries/japan.py +10 -16
  60. holidays/countries/kazakhstan.py +7 -22
  61. holidays/countries/kenya.py +1 -3
  62. holidays/countries/kyrgyzstan.py +2 -5
  63. holidays/countries/latvia.py +2 -6
  64. holidays/countries/lesotho.py +52 -32
  65. holidays/countries/lithuania.py +4 -12
  66. holidays/countries/madagascar.py +3 -9
  67. holidays/countries/malawi.py +34 -26
  68. holidays/countries/malaysia.py +223 -248
  69. holidays/countries/marshall_islands.py +4 -9
  70. holidays/countries/mexico.py +1 -3
  71. holidays/countries/moldova.py +3 -6
  72. holidays/countries/monaco.py +16 -26
  73. holidays/countries/montenegro.py +23 -19
  74. holidays/countries/morocco.py +2 -5
  75. holidays/countries/mozambique.py +35 -31
  76. holidays/countries/namibia.py +54 -35
  77. holidays/countries/new_zealand.py +11 -21
  78. holidays/countries/nicaragua.py +26 -22
  79. holidays/countries/nigeria.py +6 -17
  80. holidays/countries/north_macedonia.py +3 -8
  81. holidays/countries/norway.py +1 -3
  82. holidays/countries/pakistan.py +71 -72
  83. holidays/countries/panama.py +25 -24
  84. holidays/countries/paraguay.py +54 -47
  85. holidays/countries/philippines.py +6 -2
  86. holidays/countries/poland.py +3 -9
  87. holidays/countries/portugal.py +3 -11
  88. holidays/countries/romania.py +3 -5
  89. holidays/countries/saudi_arabia.py +8 -22
  90. holidays/countries/serbia.py +19 -29
  91. holidays/countries/singapore.py +70 -74
  92. holidays/countries/slovakia.py +1 -4
  93. holidays/countries/south_africa.py +60 -62
  94. holidays/countries/south_korea.py +14 -23
  95. holidays/countries/spain.py +2 -5
  96. holidays/countries/sweden.py +1 -3
  97. holidays/countries/taiwan.py +2 -5
  98. holidays/countries/thailand.py +34 -81
  99. holidays/countries/turkey.py +1 -3
  100. holidays/countries/ukraine.py +6 -18
  101. holidays/countries/united_arab_emirates.py +21 -29
  102. holidays/countries/united_kingdom.py +47 -67
  103. holidays/countries/united_states.py +42 -72
  104. holidays/countries/vatican_city.py +1 -3
  105. holidays/countries/venezuela.py +8 -6
  106. holidays/countries/vietnam.py +6 -18
  107. holidays/countries/zambia.py +63 -33
  108. holidays/countries/zimbabwe.py +56 -37
  109. holidays/financial/european_central_bank.py +1 -3
  110. holidays/financial/ny_stock_exchange.py +31 -48
  111. holidays/groups/__init__.py +18 -0
  112. holidays/groups/buddhist.py +71 -0
  113. holidays/groups/chinese.py +235 -0
  114. holidays/groups/christian.py +483 -0
  115. holidays/groups/hindu.py +71 -0
  116. holidays/groups/international.py +157 -0
  117. holidays/groups/islamic.py +288 -0
  118. holidays/groups/thai.py +157 -0
  119. holidays/helpers.py +20 -0
  120. holidays/holiday_base.py +49 -75
  121. holidays/holiday_groups.py +11 -1190
  122. holidays/locale/am/LC_MESSAGES/ET.po +18 -15
  123. holidays/locale/ar/LC_MESSAGES/CA.po +43 -43
  124. holidays/locale/ar/LC_MESSAGES/ET.po +18 -15
  125. holidays/locale/ar/LC_MESSAGES/UA.po +16 -14
  126. holidays/locale/be/LC_MESSAGES/BY.po +9 -8
  127. holidays/locale/bg/LC_MESSAGES/BG.po +14 -12
  128. holidays/locale/da/LC_MESSAGES/DK.po +7 -6
  129. holidays/locale/el/LC_MESSAGES/CY.po +5 -3
  130. holidays/locale/el/LC_MESSAGES/GR.po +13 -13
  131. holidays/locale/en/LC_MESSAGES/CA.po +43 -43
  132. holidays/locale/en_US/LC_MESSAGES/AR.po +26 -25
  133. holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
  134. holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
  135. holidays/locale/en_US/LC_MESSAGES/BG.po +14 -12
  136. holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
  137. holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
  138. holidays/locale/en_US/LC_MESSAGES/BY.po +9 -8
  139. holidays/locale/en_US/LC_MESSAGES/CA.po +43 -43
  140. holidays/locale/en_US/LC_MESSAGES/CL.po +18 -18
  141. holidays/locale/en_US/LC_MESSAGES/CO.po +19 -19
  142. holidays/locale/en_US/LC_MESSAGES/CR.po +6 -5
  143. holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
  144. holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
  145. holidays/locale/en_US/LC_MESSAGES/CY.po +5 -3
  146. holidays/locale/en_US/LC_MESSAGES/DK.po +7 -6
  147. holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
  148. holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
  149. holidays/locale/en_US/LC_MESSAGES/ET.po +18 -15
  150. holidays/locale/en_US/LC_MESSAGES/FI.po +13 -13
  151. holidays/locale/en_US/LC_MESSAGES/GR.po +13 -13
  152. holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
  153. holidays/locale/en_US/LC_MESSAGES/HN.po +13 -13
  154. holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
  155. holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
  156. holidays/locale/en_US/LC_MESSAGES/JP.po +19 -17
  157. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  158. holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
  159. holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
  160. holidays/locale/en_US/LC_MESSAGES/MC.po +16 -15
  161. holidays/locale/en_US/LC_MESSAGES/MD.po +5 -5
  162. holidays/locale/en_US/LC_MESSAGES/MX.po +3 -2
  163. holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
  164. holidays/locale/en_US/LC_MESSAGES/NI.po +13 -13
  165. holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
  166. holidays/locale/en_US/LC_MESSAGES/PL.po +23 -21
  167. holidays/locale/en_US/LC_MESSAGES/PT.po +31 -31
  168. holidays/locale/en_US/LC_MESSAGES/PY.po +13 -11
  169. holidays/locale/en_US/LC_MESSAGES/RO.po +4 -3
  170. holidays/locale/en_US/LC_MESSAGES/RS.po +10 -10
  171. holidays/locale/en_US/LC_MESSAGES/SE.po +1 -1
  172. holidays/locale/en_US/LC_MESSAGES/SK.po +14 -14
  173. holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
  174. holidays/locale/en_US/LC_MESSAGES/UA.po +16 -14
  175. holidays/locale/en_US/LC_MESSAGES/VE.po +6 -6
  176. holidays/locale/es/LC_MESSAGES/AR.po +26 -25
  177. holidays/locale/es/LC_MESSAGES/CL.po +18 -18
  178. holidays/locale/es/LC_MESSAGES/CO.po +19 -19
  179. holidays/locale/es/LC_MESSAGES/CR.po +6 -5
  180. holidays/locale/es/LC_MESSAGES/DO.po +12 -12
  181. holidays/locale/es/LC_MESSAGES/EC.po +11 -12
  182. holidays/locale/es/LC_MESSAGES/HN.po +12 -12
  183. holidays/locale/es/LC_MESSAGES/MX.po +3 -2
  184. holidays/locale/es/LC_MESSAGES/NI.po +10 -10
  185. holidays/locale/es/LC_MESSAGES/PY.po +13 -11
  186. holidays/locale/es/LC_MESSAGES/VE.po +6 -6
  187. holidays/locale/fi/LC_MESSAGES/FI.po +13 -13
  188. holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
  189. holidays/locale/fr/LC_MESSAGES/MC.po +15 -14
  190. holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
  191. holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
  192. holidays/locale/ja/LC_MESSAGES/JP.po +19 -17
  193. holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
  194. holidays/locale/km/LC_MESSAGES/KH.po +139 -0
  195. holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
  196. holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
  197. holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
  198. holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
  199. holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
  200. holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
  201. holidays/locale/no/LC_MESSAGES/NO.po +1 -1
  202. holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
  203. holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
  204. holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
  205. holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
  206. holidays/locale/pl/LC_MESSAGES/PL.po +23 -21
  207. holidays/locale/pt_PT/LC_MESSAGES/PT.po +31 -31
  208. holidays/locale/ro/LC_MESSAGES/MD.po +5 -5
  209. holidays/locale/ro/LC_MESSAGES/RO.po +4 -3
  210. holidays/locale/sk/LC_MESSAGES/SK.po +14 -14
  211. holidays/locale/sr/LC_MESSAGES/RS.po +10 -10
  212. holidays/locale/sv/LC_MESSAGES/FI.po +13 -13
  213. holidays/locale/sv/LC_MESSAGES/SE.po +1 -1
  214. holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
  215. holidays/locale/th/LC_MESSAGES/BN.po +96 -0
  216. holidays/locale/th/LC_MESSAGES/CA.po +43 -43
  217. holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
  218. holidays/locale/th/LC_MESSAGES/KH.po +145 -0
  219. holidays/locale/th/LC_MESSAGES/TH.po +41 -41
  220. holidays/locale/uk/LC_MESSAGES/AR.po +26 -25
  221. holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
  222. holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
  223. holidays/locale/uk/LC_MESSAGES/CL.po +18 -18
  224. holidays/locale/uk/LC_MESSAGES/CO.po +19 -19
  225. holidays/locale/uk/LC_MESSAGES/CR.po +6 -5
  226. holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
  227. holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
  228. holidays/locale/uk/LC_MESSAGES/DK.po +7 -6
  229. holidays/locale/uk/LC_MESSAGES/DO.po +12 -12
  230. holidays/locale/uk/LC_MESSAGES/EC.po +11 -12
  231. holidays/locale/uk/LC_MESSAGES/FI.po +13 -13
  232. holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
  233. holidays/locale/uk/LC_MESSAGES/HN.po +13 -13
  234. holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
  235. holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
  236. holidays/locale/uk/LC_MESSAGES/MC.po +15 -14
  237. holidays/locale/uk/LC_MESSAGES/MD.po +5 -5
  238. holidays/locale/uk/LC_MESSAGES/MX.po +3 -2
  239. holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
  240. holidays/locale/uk/LC_MESSAGES/NI.po +13 -13
  241. holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
  242. holidays/locale/uk/LC_MESSAGES/PL.po +23 -21
  243. holidays/locale/uk/LC_MESSAGES/PY.po +13 -11
  244. holidays/locale/uk/LC_MESSAGES/RO.po +4 -3
  245. holidays/locale/uk/LC_MESSAGES/SE.po +1 -1
  246. holidays/locale/uk/LC_MESSAGES/SK.po +14 -14
  247. holidays/locale/uk/LC_MESSAGES/UA.po +16 -14
  248. holidays/locale/uk/LC_MESSAGES/VE.po +6 -6
  249. holidays/registry.py +7 -11
  250. holidays/utils.py +5 -15
  251. {holidays-0.26.dist-info → holidays-0.27.dist-info}/METADATA +25 -7
  252. holidays-0.27.dist-info/RECORD +449 -0
  253. holidays-0.26.dist-info/RECORD +0 -402
  254. {holidays-0.26.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
  255. {holidays-0.26.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
  256. {holidays-0.26.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
@@ -13,8 +13,7 @@ from datetime import date
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
16
- from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
17
- from holidays.constants import OCT, NOV, DEC, MON
16
+ from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, MON
18
17
  from holidays.holiday_base import HolidayBase
19
18
  from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
20
19
 
@@ -75,8 +74,7 @@ class Argentina(HolidayBase, ChristianHolidays, InternationalHolidays):
75
74
  )
76
75
  bicentennial_battle_tucuman = tr("Bicentenario de la Batalla de Tucumán")
77
76
  bicentennial_assembly_1813 = tr(
78
- "Bicentenario de la sesión inaugural "
79
- "de la Asamblea Nacional Constituyente del año 1813"
77
+ "Bicentenario de la sesión inaugural de la Asamblea Nacional Constituyente del año 1813"
80
78
  )
81
79
  bicentennial_battle_salta = tr("Bicentenario de la Batalla de Salta")
82
80
  national_census_2022 = tr("Censo nacional 2022")
@@ -209,9 +207,7 @@ class Argentina(HolidayBase, ChristianHolidays, InternationalHolidays):
209
207
  self._add_holiday(
210
208
  tr("Día del Veterano de Guerra")
211
209
  if year <= 2000
212
- else tr(
213
- "Día del Veterano y de los Caidos en la Guerra de Malvinas"
214
- ),
210
+ else tr("Día del Veterano y de los Caidos en la Guerra de Malvinas"),
215
211
  date(year, MAR, 31) if year == 2020 else date(year, APR, 2),
216
212
  )
217
213
 
@@ -261,9 +257,7 @@ class Argentina(HolidayBase, ChristianHolidays, InternationalHolidays):
261
257
  self._add_holiday(tr("Día de la Independencia"), JUL, 9)
262
258
 
263
259
  # Immaculate Conception.
264
- self._add_immaculate_conception_day(
265
- tr("Inmaculada Concepción de María")
266
- )
260
+ self._add_immaculate_conception_day(tr("Inmaculada Concepción de María"))
267
261
 
268
262
  # Christmas.
269
263
  self._add_christmas_day(tr("Navidad"))
@@ -276,10 +270,7 @@ class Argentina(HolidayBase, ChristianHolidays, InternationalHolidays):
276
270
 
277
271
  if year >= 2016:
278
272
  dt = date(year, JUN, 17)
279
- name = tr(
280
- "Paso a la Inmortalidad del General Don Martín Miguel "
281
- "de Güemes"
282
- )
273
+ name = tr("Paso a la Inmortalidad del General Don Martín Miguel de Güemes")
283
274
  # If Jun 17 is Friday, then it should move to Mon, Jun 20
284
275
  # but Jun 20 is Gen. Belgrano holiday
285
276
  if self._is_friday(dt):
@@ -300,24 +291,22 @@ class Argentina(HolidayBase, ChristianHolidays, InternationalHolidays):
300
291
  elif 1938 <= year <= 1994:
301
292
  self._add_holiday(name, AUG, 17)
302
293
  elif 1995 <= year <= 2010:
303
- self._add_holiday(
304
- name, _get_nth_weekday_of_month(3, MON, AUG, year)
305
- )
294
+ self._add_holiday(name, _get_nth_weekday_of_month(3, MON, AUG, year))
306
295
  elif year >= 2012:
307
296
  add_movable_holiday(date(year, AUG, 17), name)
308
297
 
309
298
  # Respect for Cultural Diversity Day or Columbus Day.
310
299
  # Status: In-Use.
311
300
  # First started in 1917 for Argentina.
312
- # Have its name changed from 2010 onwards.
301
+ # In 2010 the holiday became movable and its name was changed.
313
302
 
314
- if year >= 1917:
315
- name = (
316
- tr("Día del Respeto a la Diversidad Cultural")
317
- if year >= 2010
318
- else tr("Día de la Raza")
303
+ if 1917 <= year <= 2009:
304
+ self._add_columbus_day(tr("Día de la Raza"))
305
+ elif year >= 2010:
306
+ add_movable_holiday(
307
+ date(year, OCT, 12),
308
+ tr("Día del Respeto a la Diversidad Cultural"),
319
309
  )
320
- add_movable_holiday(date(year, OCT, 12), name)
321
310
 
322
311
  # National Sovereignty Day.
323
312
  # Status: In-Use.
@@ -11,81 +11,142 @@
11
11
 
12
12
  from datetime import date
13
13
  from datetime import timedelta as td
14
+ from gettext import gettext as tr
14
15
 
15
- from dateutil.easter import easter
16
-
17
- from holidays.constants import JAN, MAR, APR, MAY, AUG, DEC
16
+ from holidays.constants import JAN, MAR, APR, AUG
18
17
  from holidays.holiday_base import HolidayBase
18
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
19
19
 
20
20
 
21
- class Aruba(HolidayBase):
21
+ class Aruba(HolidayBase, ChristianHolidays, InternationalHolidays):
22
22
  """
23
- http://www.gobierno.aw/informacion-tocante-servicio/vakantie-y-dia-di-fiesta_43437/item/dia-di-fiesta_14809.html
23
+ https://www.government.aw/information-public-services/hiring-people_47940/item/holidays_43823.html # noqa: E501
24
+ https://www.overheid.aw/informatie-dienstverlening/ondernemen-en-werken-subthemas_46970/item/feestdagen_37375.html # noqa: E501
25
+ https://www.gobierno.aw/informacion-tocante-servicio/haci-negoshi-y-traha-sub-topics_47789/item/dia-di-fiesta_41242.html # noqa: E501
24
26
  https://www.visitaruba.com/about-aruba/national-holidays-and-celebrations/
27
+ https://www.arubatoday.com/we-celebrate-our-national-hero-betico-croes/
28
+ https://www.caribbeannewsglobal.com/carnival-monday-remains-a-festive-day-in-aruba/ # noqa: E501
29
+ https://www.aruba.com/us/calendar/national-anthem-and-flag-day
25
30
  """
26
31
 
27
32
  country = "AW"
33
+ default_language = "pap"
34
+ supported_languages = ("en_US", "nl", "pap", "uk")
28
35
 
29
- def _populate(self, year):
30
- super()._populate(year)
36
+ def __init__(self, *args, **kwargs):
37
+ ChristianHolidays.__init__(self)
38
+ InternationalHolidays.__init__(self)
39
+ super().__init__(*args, **kwargs)
31
40
 
32
- # New Year's Day
33
- self[date(year, JAN, 1)] = "Aña Nobo [New Year's Day]"
41
+ def _populate(self, year):
42
+ # AUG 1947: Autonomous State status in the Kingdom of the Netherlands.
43
+ if year <= 1946:
44
+ return None
34
45
 
35
- # Dia di Betico
36
- self[date(year, JAN, 25)] = "Dia Di Betico [Betico Day]"
46
+ super()._populate(year)
37
47
 
38
- easter_date = easter(year)
39
- # Carnaval Monday
40
- self[
41
- easter_date + td(days=-48)
42
- ] = "Dialuna di Carnaval [Carnaval Monday]"
48
+ # Aña Nobo.
49
+ # Status: In-Use.
43
50
 
44
- # Dia di Himno y Bandera
45
- self[
46
- date(year, MAR, 18)
47
- ] = "Dia di Himno y Bandera [National Anthem & Flag Day]"
51
+ # New Year's Day
52
+ self._add_new_years_day(tr("Aña Nobo"))
53
+
54
+ # Dia Di Betico.
55
+ # Status: In-Use.
56
+ # Started in 1989.
57
+
58
+ if year >= 1989:
59
+ # Betico Day
60
+ self._add_holiday(tr("Dia di Betico"), JAN, 25)
61
+
62
+ # Dialuna prome cu diaranson di shinish.
63
+ # Status: In-Use.
64
+ # Starts as a public holiday from 1956 onwards.
65
+ # Event cancelled but remain a holiday in 2021.
66
+ # Have its name changed from 2023 onwards.
67
+
68
+ if year >= 1956:
69
+ self._add_ash_monday(
70
+ # Carnival Monday
71
+ tr("Dialuna despues di Carnaval Grandi")
72
+ if year <= 2022
73
+ # Monday before Ash Wednesday
74
+ else tr("Dialuna prome cu diaranson di shinish")
75
+ )
76
+
77
+ # Dia di Himno y Bandera.
78
+ # Status: In-Use.
79
+ # Started in 1976.
80
+
81
+ if year >= 1976:
82
+ # National Anthem and Flag Day
83
+ self._add_holiday(tr("Dia di Himno y Bandera"), MAR, 18)
84
+
85
+ # Bierna Santo.
86
+ # Status: In-Use.
48
87
 
49
88
  # Good Friday
50
- self[easter_date + td(days=-2)] = "Bierna Santo [Good Friday]"
89
+ self._add_good_friday(tr("Bierna Santo"))
51
90
 
52
- # Easter Monday
53
- self[
54
- easter_date + td(days=+1)
55
- ] = "Di Dos Dia di Pasco di Resureccion [Easter Monday]"
91
+ # Di dos dia di Pasco di Resureccion.
92
+ # Status: In-Use.
56
93
 
57
- # King's Day
94
+ # Easter Monday
95
+ self._add_easter_monday(tr("Di dos dia di Pasco di Resureccion"))
96
+
97
+ # Aña di La Reina/Aña di Rey/Dia di Rey.
98
+ # Status: In-Use.
99
+ # Started under Queen Wilhelmina in 1891.
100
+ # Queen Beatrix kept Queen Juliana's Birthday after her coronation.
101
+ # Switched to Aña di Rey in 2014 for King Willem-Alexander.
102
+ # Have its name changed again to Dia di Rey from 2021 onwards.
103
+
104
+ # King's / Queen's Day
105
+ name = (
106
+ # King's Day.
107
+ tr("Dia di Rey")
108
+ if year >= 2021
109
+ else (
110
+ # King's Day.
111
+ tr("Aña di Rey")
112
+ if year >= 2014
113
+ # Queen's Day.
114
+ else tr("Aña di La Reina")
115
+ )
116
+ )
58
117
  if year >= 2014:
59
- kings_day = date(year, APR, 27)
60
- if self._is_sunday(kings_day):
61
- kings_day += td(days=-1)
62
-
63
- self[kings_day] = "Aña di Rey [King's Day]"
118
+ dt = date(year, APR, 27)
119
+ elif year >= 1949:
120
+ dt = date(year, APR, 30)
121
+ else:
122
+ dt = date(year, AUG, 31)
123
+ if self._is_sunday(dt):
124
+ dt += td(days=-1) if year >= 1980 else td(days=+1)
125
+ self._add_holiday(name, dt)
64
126
 
65
- # Queen's Day
66
- if 1891 <= year <= 2013:
67
- queens_day = date(year, APR, 30)
68
- if year <= 1948:
69
- queens_day = date(year, AUG, 31)
127
+ # Dia di Labor/Dia di Obrero.
128
+ # Status: In-Use.
70
129
 
71
- if self._is_sunday(queens_day):
72
- queens_day += td(days=+1) if year < 1980 else td(days=-1)
130
+ # Labor Day
131
+ self._add_labor_day(tr("Dia di Obrero"))
73
132
 
74
- self[queens_day] = "Aña di La Reina [Queen's Day]"
75
-
76
- # Labour Day
77
- self[date(year, MAY, 1)] = "Dia di Obrero [Labour Day]"
133
+ # Dia di Asuncion.
134
+ # Status: In-Use.
78
135
 
79
136
  # Ascension Day
80
- self[easter_date + td(days=+39)] = "Dia di Asuncion [Ascension Day]"
137
+ self._add_ascension_thursday(tr("Dia di Asuncion"))
138
+
139
+ # Pasco di Nacemento.
140
+ # Status: In-Use.
81
141
 
82
142
  # Christmas Day
83
- self[date(year, DEC, 25)] = "Pasco di Nacemento [Christmas]"
143
+ self._add_christmas_day(tr("Pasco di Nacemento"))
144
+
145
+ # Di dos dia di Pasco di Nacemento.
146
+ # Status: In-Use.
84
147
 
85
- # Second Christmas
86
- self[
87
- date(year, DEC, 26)
88
- ] = "Di Dos Dia di Pasco di Nacemento [Second Christmas]"
148
+ # Second Day of Christmas
149
+ self._add_christmas_day_two(tr("Di dos dia di Pasco di Nacemento"))
89
150
 
90
151
 
91
152
  class AW(Aruba):
@@ -13,8 +13,7 @@ from datetime import date
13
13
  from datetime import timedelta as td
14
14
 
15
15
  from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
16
- from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV
17
- from holidays.constants import MON, TUE, FRI
16
+ from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV, MON, TUE, FRI
18
17
  from holidays.holiday_base import HolidayBase
19
18
  from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
20
19
 
@@ -42,14 +41,14 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
42
41
  InternationalHolidays.__init__(self)
43
42
  super().__init__(*args, **kwargs)
44
43
 
45
- def _add_observed(self, dt: date, include_sat: bool = True) -> None:
44
+ def _add_observed(self, dt: date, include_sat: bool = True, days: int = +1) -> None:
46
45
  if not self.observed:
47
46
  return None
48
- if self._is_sunday(dt) or (self._is_saturday(dt) and include_sat):
49
- obs_date = _get_nth_weekday_from(1, MON, dt)
50
- if obs_date in self:
51
- obs_date += td(days=+1)
52
- self._add_holiday("%s (Observed)" % self[dt], obs_date)
47
+ if self._is_sunday(dt) or (include_sat and self._is_saturday(dt)):
48
+ self._add_holiday(
49
+ "%s (Observed)" % self[dt],
50
+ dt + td(days=+2 if self._is_saturday(dt) else days),
51
+ )
53
52
 
54
53
  def _populate(self, year):
55
54
  super()._populate(year)
@@ -83,11 +82,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
83
82
  # Sovereign's Birthday
84
83
  def _add_sovereign_birthday(self, dt: date) -> None:
85
84
  if self._year >= 1936:
86
- name = (
87
- "Queen's Birthday"
88
- if 1952 <= self._year <= 2022
89
- else "King's Birthday"
90
- )
85
+ name = "Queen's Birthday" if 1952 <= self._year <= 2022 else "King's Birthday"
91
86
  self._add_holiday(name, dt)
92
87
 
93
88
  def _add_subdiv_holidays(self):
@@ -109,16 +104,16 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
109
104
  self._add_holiday("Anzac Day", APR, 25)
110
105
 
111
106
  # Christmas Day
112
- dec_25 = self._add_christmas_day("Christmas Day")
107
+ self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
113
108
 
114
109
  # Boxing Day
115
- dec_26 = self._add_christmas_day_two(
116
- "Proclamation Day" if self.subdiv == "SA" else "Boxing Day"
110
+ self._add_observed(
111
+ self._add_christmas_day_two(
112
+ "Proclamation Day" if self.subdiv == "SA" else "Boxing Day"
113
+ ),
114
+ days=+2,
117
115
  )
118
116
 
119
- self._add_observed(dec_25)
120
- self._add_observed(dec_26)
121
-
122
117
  super()._add_subdiv_holidays()
123
118
 
124
119
  def _add_subdiv_act_holidays(self):
@@ -127,14 +122,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
127
122
  self._add_easter_sunday("Easter Sunday")
128
123
 
129
124
  # Labour Day
130
- self._add_holiday(
131
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
132
- )
125
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
133
126
 
134
127
  # Sovereign's Birthday
135
- self._add_sovereign_birthday(
136
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
137
- )
128
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
138
129
 
139
130
  # Anzac Day
140
131
  if self._year >= 1921:
@@ -170,9 +161,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
170
161
  2016: date(2016, SEP, 26),
171
162
  2017: date(2017, SEP, 25),
172
163
  }
173
- dt = fc_dates.get(
174
- self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year)
175
- )
164
+ dt = fc_dates.get(self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year))
176
165
  self._add_holiday("Family & Community Day", dt)
177
166
 
178
167
  # Reconciliation Day
@@ -188,14 +177,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
188
177
  self._add_easter_sunday("Easter Sunday")
189
178
 
190
179
  # Labour Day
191
- self._add_holiday(
192
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
193
- )
180
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
194
181
 
195
182
  # Sovereign's Birthday
196
- self._add_sovereign_birthday(
197
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
198
- )
183
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
199
184
 
200
185
  # Bank Holiday
201
186
  if self._year >= 1912:
@@ -209,23 +194,17 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
209
194
  self._add_holy_saturday("Easter Saturday")
210
195
 
211
196
  # Labour Day
212
- self._add_holiday(
213
- "May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year)
214
- )
197
+ self._add_holiday("May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year))
215
198
 
216
199
  # Sovereign's Birthday
217
- self._add_sovereign_birthday(
218
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
219
- )
200
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
220
201
 
221
202
  # Anzac Day
222
203
  if self._year >= 1921:
223
204
  self._add_observed(date(self._year, APR, 25))
224
205
 
225
206
  # Picnic Day
226
- self._add_holiday(
227
- "Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year)
228
- )
207
+ self._add_holiday("Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year))
229
208
 
230
209
  def _add_subdiv_qld_holidays(self):
231
210
  # Easter
@@ -265,8 +244,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
265
244
  }
266
245
  dt = ekka_dates.get(
267
246
  self._year,
268
- _get_nth_weekday_from(1, FRI, date(self._year, AUG, 5))
269
- + td(days=+5),
247
+ _get_nth_weekday_from(1, FRI, date(self._year, AUG, 5)) + td(days=+5),
270
248
  )
271
249
  self._add_holiday("The Royal Queensland Show", dt)
272
250
 
@@ -275,14 +253,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
275
253
  self._add_holy_saturday("Easter Saturday")
276
254
 
277
255
  # Labour Day
278
- self._add_holiday(
279
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
280
- )
256
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
281
257
 
282
258
  # Sovereign's Birthday
283
- self._add_sovereign_birthday(
284
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
285
- )
259
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
286
260
 
287
261
  # Anzac Day
288
262
  if self._year >= 1921:
@@ -291,9 +265,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
291
265
  # Adelaide Cup
292
266
  self._add_holiday(
293
267
  "Adelaide Cup",
294
- _get_nth_weekday_of_month(
295
- 2 if self._year >= 2006 else 3, MON, MAR, self._year
296
- ),
268
+ _get_nth_weekday_of_month(2 if self._year >= 2006 else 3, MON, MAR, self._year),
297
269
  )
298
270
 
299
271
  def _add_subdiv_tas_holidays(self):
@@ -304,9 +276,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
304
276
  )
305
277
 
306
278
  # Sovereign's Birthday
307
- self._add_sovereign_birthday(
308
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
309
- )
279
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
310
280
 
311
281
  def _add_subdiv_vic_holidays(self):
312
282
  # Easter
@@ -320,9 +290,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
320
290
  )
321
291
 
322
292
  # Sovereign's Birthday
323
- self._add_sovereign_birthday(
324
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
325
- )
293
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
326
294
 
327
295
  # Melbourne Cup
328
296
  self._add_holiday(
@@ -347,14 +315,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
347
315
 
348
316
  def _add_subdiv_wa_holidays(self):
349
317
  # Labour Day
350
- self._add_holiday(
351
- "Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year)
352
- )
318
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year))
353
319
 
354
320
  # Sovereign's Birthday
355
- self._add_sovereign_birthday(
356
- _get_nth_weekday_from(-1, MON, date(self._year, OCT, 1))
357
- )
321
+ self._add_sovereign_birthday(_get_nth_weekday_from(-1, MON, date(self._year, OCT, 1)))
358
322
 
359
323
  # Anzac Day
360
324
  if self._year >= 1921:
@@ -363,9 +327,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
363
327
  # Western Australia Day
364
328
  if self._year >= 1833:
365
329
  self._add_holiday(
366
- "Western Australia Day"
367
- if self._year >= 2015
368
- else "Foundation Day",
330
+ "Western Australia Day" if self._year >= 2015 else "Foundation Day",
369
331
  _get_nth_weekday_of_month(1, MON, JUN, self._year),
370
332
  )
371
333
 
@@ -13,8 +13,7 @@ from datetime import date
13
13
  from datetime import timedelta as td
14
14
 
15
15
  from holidays.calendars import _CustomIslamicCalendar
16
- from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT
17
- from holidays.constants import NOV, DEC
16
+ from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
18
17
  from holidays.holiday_base import HolidayBase
19
18
  from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
20
19
 
@@ -73,9 +72,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
73
72
  observed_dates.add(self._add_holiday("Novruz", MAR, d))
74
73
 
75
74
  # Victory Day
76
- observed_dates.add(
77
- self._add_world_war_two_victory_day("Victory Day over Fascism")
78
- )
75
+ observed_dates.add(self._add_world_war_two_victory_day("Victory Day over Fascism"))
79
76
 
80
77
  # Republic Day
81
78
  if year >= 1992:
@@ -89,9 +86,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
89
86
 
90
87
  # National Salvation Day
91
88
  if year >= 1997:
92
- observed_dates.add(
93
- self._add_holiday("National Salvation Day", JUN, 15)
94
- )
89
+ observed_dates.add(self._add_holiday("National Salvation Day", JUN, 15))
95
90
 
96
91
  # Memorial Day (without extending)
97
92
  if year >= 2021:
@@ -159,10 +154,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
159
154
  # 6. If the holidays of Qurban and Ramadan coincide with
160
155
  # another holiday that is not considered a working day,
161
156
  # the next working day is considered a rest day.
162
- elif (
163
- len(self.get_list(hol_date)) > 1
164
- and hol_date not in non_observed_dates
165
- ):
157
+ elif len(self.get_list(hol_date)) > 1 and hol_date not in non_observed_dates:
166
158
  for hol_name in self.get_list(hol_date):
167
159
  if "Bayrami" in hol_name:
168
160
  _add_observed(hol_date, hol_name)
@@ -178,33 +170,33 @@ class AZE(Azerbaijan):
178
170
 
179
171
  class AzerbaijanIslamicCalendar(_CustomIslamicCalendar):
180
172
  EID_AL_ADHA_DATES = {
181
- 2011: ((NOV, 6),),
182
- 2012: ((OCT, 25),),
183
- 2013: ((OCT, 15),),
184
- 2014: ((OCT, 4),),
185
- 2015: ((SEP, 24),),
186
- 2016: ((SEP, 12),),
187
- 2017: ((SEP, 1),),
188
- 2018: ((AUG, 22),),
189
- 2019: ((AUG, 12),),
190
- 2020: ((JUL, 31),),
191
- 2021: ((JUL, 20),),
192
- 2022: ((JUL, 9),),
193
- 2023: ((JUN, 28),),
173
+ 2011: (NOV, 6),
174
+ 2012: (OCT, 25),
175
+ 2013: (OCT, 15),
176
+ 2014: (OCT, 4),
177
+ 2015: (SEP, 24),
178
+ 2016: (SEP, 12),
179
+ 2017: (SEP, 1),
180
+ 2018: (AUG, 22),
181
+ 2019: (AUG, 12),
182
+ 2020: (JUL, 31),
183
+ 2021: (JUL, 20),
184
+ 2022: (JUL, 9),
185
+ 2023: (JUN, 28),
194
186
  }
195
187
 
196
188
  EID_AL_FITR_DATES = {
197
- 2011: ((AUG, 30),),
198
- 2012: ((AUG, 19),),
199
- 2013: ((AUG, 8),),
200
- 2014: ((JUL, 28),),
201
- 2015: ((JUL, 17),),
202
- 2016: ((JUL, 6),),
203
- 2017: ((JUN, 26),),
204
- 2018: ((JUN, 15),),
205
- 2019: ((JUN, 5),),
206
- 2020: ((MAY, 24),),
207
- 2021: ((MAY, 13),),
208
- 2022: ((MAY, 2),),
209
- 2023: ((APR, 21),),
189
+ 2011: (AUG, 30),
190
+ 2012: (AUG, 19),
191
+ 2013: (AUG, 8),
192
+ 2014: (JUL, 28),
193
+ 2015: (JUL, 17),
194
+ 2016: (JUL, 6),
195
+ 2017: (JUN, 26),
196
+ 2018: (JUN, 15),
197
+ 2019: (JUN, 5),
198
+ 2020: (MAY, 24),
199
+ 2021: (MAY, 13),
200
+ 2022: (MAY, 2),
201
+ 2023: (APR, 21),
210
202
  }
@@ -81,21 +81,21 @@ class BAH(Bahrain):
81
81
 
82
82
  class BahrainIslamicCalendar(_CustomIslamicCalendar):
83
83
  ASHURA_DATES = {
84
- 2022: ((AUG, 8),),
84
+ 2022: (AUG, 8),
85
85
  }
86
86
 
87
87
  EID_AL_ADHA = {
88
- 2022: ((JUL, 9),),
88
+ 2022: (JUL, 9),
89
89
  }
90
90
 
91
91
  EID_AL_FITR_DATES = {
92
- 2022: ((MAY, 2),),
92
+ 2022: (MAY, 2),
93
93
  }
94
94
 
95
95
  HIJRI_NEW_YEAR_DATES = {
96
- 2022: ((JUL, 30),),
96
+ 2022: (JUL, 30),
97
97
  }
98
98
 
99
99
  MAWLID_DATES = {
100
- 2022: ((OCT, 8),),
100
+ 2022: (OCT, 8),
101
101
  }
@@ -31,9 +31,7 @@ class Bangladesh(HolidayBase):
31
31
  self[date(year, FEB, 21)] = "International Mother's language Day"
32
32
 
33
33
  # 17th March
34
- self[date(year, MAR, 17)] = (
35
- "Sheikh Mujibur Rahman's Birthday " "and Children's Day"
36
- )
34
+ self[date(year, MAR, 17)] = "Sheikh Mujibur Rahman's Birthday and Children's Day"
37
35
 
38
36
  # 26th March
39
37
  self[date(year, MAR, 26)] = "Independence Day"
@@ -52,9 +52,7 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays):
52
52
  self._add_new_years_day_two(tr("Новы год"))
53
53
 
54
54
  # Orthodox Christmas Day.
55
- self._add_christmas_day(
56
- tr("Нараджэнне Хрыстова (праваслаўнае Раство)")
57
- )
55
+ self._add_christmas_day(tr("Нараджэнне Хрыстова (праваслаўнае Раство)"))
58
56
 
59
57
  # Women's Day.
60
58
  self._add_womens_day(tr("Дзень жанчын"))