holidays 0.41__py3-none-any.whl → 0.43__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 (306) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/countries/__init__.py +2 -0
  3. holidays/countries/algeria.py +9 -8
  4. holidays/countries/angola.py +2 -4
  5. holidays/countries/argentina.py +2 -2
  6. holidays/countries/armenia.py +1 -1
  7. holidays/countries/aruba.py +2 -4
  8. holidays/countries/austria.py +82 -9
  9. holidays/countries/bahrain.py +8 -11
  10. holidays/countries/belarus.py +1 -1
  11. holidays/countries/belgium.py +2 -2
  12. holidays/countries/bosnia_and_herzegovina.py +16 -16
  13. holidays/countries/cambodia.py +1 -4
  14. holidays/countries/canada.py +1 -1
  15. holidays/countries/chile.py +5 -5
  16. holidays/countries/china.py +15 -2
  17. holidays/countries/colombia.py +3 -3
  18. holidays/countries/costa_rica.py +20 -16
  19. holidays/countries/croatia.py +15 -7
  20. holidays/countries/cuba.py +2 -2
  21. holidays/countries/denmark.py +1 -2
  22. holidays/countries/djibouti.py +2 -2
  23. holidays/countries/dominican_republic.py +1 -1
  24. holidays/countries/ecuador.py +1 -1
  25. holidays/countries/egypt.py +27 -29
  26. holidays/countries/ethiopia.py +4 -3
  27. holidays/countries/georgia.py +1 -1
  28. holidays/countries/germany.py +0 -1
  29. holidays/countries/ghana.py +97 -0
  30. holidays/countries/greece.py +14 -6
  31. holidays/countries/guatemala.py +10 -10
  32. holidays/countries/honduras.py +1 -1
  33. holidays/countries/hungary.py +1 -2
  34. holidays/countries/indonesia.py +4 -3
  35. holidays/countries/iran.py +1 -1
  36. holidays/countries/ireland.py +27 -23
  37. holidays/countries/isle_of_man.py +4 -0
  38. holidays/countries/jersey.py +234 -0
  39. holidays/countries/laos.py +4 -4
  40. holidays/countries/latvia.py +1 -1
  41. holidays/countries/liechtenstein.py +2 -2
  42. holidays/countries/lithuania.py +3 -3
  43. holidays/countries/madagascar.py +1 -1
  44. holidays/countries/moldova.py +5 -5
  45. holidays/countries/monaco.py +4 -4
  46. holidays/countries/morocco.py +1 -1
  47. holidays/countries/nicaragua.py +1 -1
  48. holidays/countries/norway.py +1 -1
  49. holidays/countries/peru.py +4 -4
  50. holidays/countries/poland.py +5 -4
  51. holidays/countries/portugal.py +2 -2
  52. holidays/countries/romania.py +1 -1
  53. holidays/countries/saudi_arabia.py +1 -1
  54. holidays/countries/serbia.py +3 -3
  55. holidays/countries/slovakia.py +1 -2
  56. holidays/countries/spain.py +1 -1
  57. holidays/countries/switzerland.py +289 -43
  58. holidays/countries/taiwan.py +114 -24
  59. holidays/countries/tanzania.py +1 -0
  60. holidays/countries/thailand.py +10 -18
  61. holidays/countries/timor_leste.py +1 -0
  62. holidays/countries/tunisia.py +3 -3
  63. holidays/countries/turkey.py +2 -1
  64. holidays/countries/ukraine.py +3 -3
  65. holidays/countries/united_arab_emirates.py +36 -28
  66. holidays/countries/united_kingdom.py +28 -0
  67. holidays/holiday_base.py +32 -14
  68. holidays/locale/am/LC_MESSAGES/ET.po +4 -3
  69. holidays/locale/ar/LC_MESSAGES/AE.po +3 -3
  70. holidays/locale/ar/LC_MESSAGES/BH.po +4 -4
  71. holidays/locale/ar/LC_MESSAGES/CA.po +1 -1
  72. holidays/locale/ar/LC_MESSAGES/DJ.mo +0 -0
  73. holidays/locale/ar/LC_MESSAGES/DJ.po +8 -8
  74. holidays/locale/ar/LC_MESSAGES/DZ.po +5 -5
  75. holidays/locale/ar/LC_MESSAGES/EG.po +19 -19
  76. holidays/locale/ar/LC_MESSAGES/ET.po +4 -3
  77. holidays/locale/ar/LC_MESSAGES/MA.po +1 -1
  78. holidays/locale/ar/LC_MESSAGES/SA.po +1 -1
  79. holidays/locale/ar/LC_MESSAGES/TN.po +3 -3
  80. holidays/locale/ar/LC_MESSAGES/UA.po +3 -3
  81. holidays/locale/be/LC_MESSAGES/BY.po +1 -1
  82. holidays/locale/bs/LC_MESSAGES/BA.po +5 -5
  83. holidays/locale/da/LC_MESSAGES/DK.po +1 -1
  84. holidays/locale/de/LC_MESSAGES/AT.mo +0 -0
  85. holidays/locale/de/LC_MESSAGES/AT.po +25 -1
  86. holidays/locale/de/LC_MESSAGES/BE.po +2 -2
  87. holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
  88. holidays/locale/de/LC_MESSAGES/CH.po +6 -14
  89. holidays/locale/de/LC_MESSAGES/DE.po +0 -1
  90. holidays/locale/de/LC_MESSAGES/LI.mo +0 -0
  91. holidays/locale/de/LC_MESSAGES/LI.po +5 -5
  92. holidays/locale/de/LC_MESSAGES/LU.mo +0 -0
  93. holidays/locale/de/LC_MESSAGES/LU.po +3 -3
  94. holidays/locale/el/LC_MESSAGES/GR.po +3 -3
  95. holidays/locale/en_CA/LC_MESSAGES/CA.po +1 -1
  96. holidays/locale/en_US/LC_MESSAGES/AE.mo +0 -0
  97. holidays/locale/en_US/LC_MESSAGES/AE.po +8 -8
  98. holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
  99. holidays/locale/en_US/LC_MESSAGES/AM.po +7 -7
  100. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  101. holidays/locale/en_US/LC_MESSAGES/AR.po +7 -7
  102. holidays/locale/en_US/LC_MESSAGES/AT.mo +0 -0
  103. holidays/locale/en_US/LC_MESSAGES/AT.po +25 -1
  104. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  105. holidays/locale/en_US/LC_MESSAGES/BA.po +13 -13
  106. holidays/locale/en_US/LC_MESSAGES/BE.mo +0 -0
  107. holidays/locale/en_US/LC_MESSAGES/BE.po +7 -7
  108. holidays/locale/en_US/LC_MESSAGES/BH.po +4 -4
  109. holidays/locale/en_US/LC_MESSAGES/BY.po +1 -1
  110. holidays/locale/en_US/LC_MESSAGES/CA.po +1 -1
  111. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  112. holidays/locale/en_US/LC_MESSAGES/CH.po +7 -15
  113. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  114. holidays/locale/en_US/LC_MESSAGES/CL.po +12 -12
  115. holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
  116. holidays/locale/en_US/LC_MESSAGES/CN.po +8 -4
  117. holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
  118. holidays/locale/en_US/LC_MESSAGES/CO.po +11 -11
  119. holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
  120. holidays/locale/en_US/LC_MESSAGES/CR.po +5 -5
  121. holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
  122. holidays/locale/en_US/LC_MESSAGES/CU.po +6 -6
  123. holidays/locale/en_US/LC_MESSAGES/CZ.mo +0 -0
  124. holidays/locale/en_US/LC_MESSAGES/CZ.po +1 -1
  125. holidays/locale/en_US/LC_MESSAGES/DE.po +0 -1
  126. holidays/locale/en_US/LC_MESSAGES/DJ.mo +0 -0
  127. holidays/locale/en_US/LC_MESSAGES/DJ.po +5 -5
  128. holidays/locale/en_US/LC_MESSAGES/DK.po +1 -1
  129. holidays/locale/en_US/LC_MESSAGES/DO.mo +0 -0
  130. holidays/locale/en_US/LC_MESSAGES/DO.po +5 -5
  131. holidays/locale/en_US/LC_MESSAGES/DZ.po +5 -5
  132. holidays/locale/en_US/LC_MESSAGES/EC.mo +0 -0
  133. holidays/locale/en_US/LC_MESSAGES/EC.po +5 -5
  134. holidays/locale/en_US/LC_MESSAGES/EG.mo +0 -0
  135. holidays/locale/en_US/LC_MESSAGES/EG.po +25 -25
  136. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  137. holidays/locale/en_US/LC_MESSAGES/ES.po +3 -3
  138. holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
  139. holidays/locale/en_US/LC_MESSAGES/ET.po +10 -9
  140. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  141. holidays/locale/en_US/LC_MESSAGES/GE.po +5 -5
  142. holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
  143. holidays/locale/en_US/LC_MESSAGES/GR.po +5 -5
  144. holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
  145. holidays/locale/en_US/LC_MESSAGES/GT.po +16 -16
  146. holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
  147. holidays/locale/en_US/LC_MESSAGES/HN.po +4 -4
  148. holidays/locale/en_US/LC_MESSAGES/HR.mo +0 -0
  149. holidays/locale/en_US/LC_MESSAGES/HR.po +17 -15
  150. holidays/locale/en_US/LC_MESSAGES/ID.mo +0 -0
  151. holidays/locale/en_US/LC_MESSAGES/ID.po +10 -9
  152. holidays/locale/en_US/LC_MESSAGES/IL.mo +0 -0
  153. holidays/locale/en_US/LC_MESSAGES/IL.po +1 -0
  154. holidays/locale/en_US/LC_MESSAGES/IR.po +1 -1
  155. holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
  156. holidays/locale/en_US/LC_MESSAGES/LA.po +3 -3
  157. holidays/locale/en_US/LC_MESSAGES/LI.mo +0 -0
  158. holidays/locale/en_US/LC_MESSAGES/LI.po +5 -5
  159. holidays/locale/en_US/LC_MESSAGES/LT.mo +0 -0
  160. holidays/locale/en_US/LC_MESSAGES/LT.po +7 -7
  161. holidays/locale/en_US/LC_MESSAGES/LV.mo +0 -0
  162. holidays/locale/en_US/LC_MESSAGES/LV.po +5 -5
  163. holidays/locale/en_US/LC_MESSAGES/MA.po +1 -1
  164. holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
  165. holidays/locale/en_US/LC_MESSAGES/MC.po +10 -10
  166. holidays/locale/en_US/LC_MESSAGES/MD.mo +0 -0
  167. holidays/locale/en_US/LC_MESSAGES/MD.po +10 -10
  168. holidays/locale/en_US/LC_MESSAGES/MG.po +1 -0
  169. holidays/locale/en_US/LC_MESSAGES/MX.mo +0 -0
  170. holidays/locale/en_US/LC_MESSAGES/MX.po +4 -4
  171. holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
  172. holidays/locale/en_US/LC_MESSAGES/NI.po +4 -4
  173. holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
  174. holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
  175. holidays/locale/en_US/LC_MESSAGES/PE.po +8 -8
  176. holidays/locale/en_US/LC_MESSAGES/PL.mo +0 -0
  177. holidays/locale/en_US/LC_MESSAGES/PL.po +13 -12
  178. holidays/locale/en_US/LC_MESSAGES/PT.mo +0 -0
  179. holidays/locale/en_US/LC_MESSAGES/PT.po +2 -2
  180. holidays/locale/en_US/LC_MESSAGES/RO.mo +0 -0
  181. holidays/locale/en_US/LC_MESSAGES/RO.po +5 -5
  182. holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
  183. holidays/locale/en_US/LC_MESSAGES/RS.po +10 -9
  184. holidays/locale/en_US/LC_MESSAGES/SA.po +1 -1
  185. holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
  186. holidays/locale/en_US/LC_MESSAGES/SI.po +1 -1
  187. holidays/locale/en_US/LC_MESSAGES/SK.po +1 -0
  188. holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
  189. holidays/locale/en_US/LC_MESSAGES/TH.po +4 -4
  190. holidays/locale/en_US/LC_MESSAGES/TL.po +1 -0
  191. holidays/locale/en_US/LC_MESSAGES/TN.po +3 -3
  192. holidays/locale/en_US/LC_MESSAGES/TR.po +2 -1
  193. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  194. holidays/locale/en_US/LC_MESSAGES/TW.po +14 -5
  195. holidays/locale/en_US/LC_MESSAGES/TZ.po +1 -0
  196. holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
  197. holidays/locale/en_US/LC_MESSAGES/UA.po +7 -7
  198. holidays/locale/es/LC_MESSAGES/AR.po +2 -2
  199. holidays/locale/es/LC_MESSAGES/CL.po +5 -5
  200. holidays/locale/es/LC_MESSAGES/CO.po +3 -3
  201. holidays/locale/es/LC_MESSAGES/CU.po +2 -2
  202. holidays/locale/es/LC_MESSAGES/DO.po +1 -1
  203. holidays/locale/es/LC_MESSAGES/EC.po +1 -1
  204. holidays/locale/es/LC_MESSAGES/ES.po +1 -1
  205. holidays/locale/es/LC_MESSAGES/GT.po +10 -10
  206. holidays/locale/es/LC_MESSAGES/HN.po +1 -1
  207. holidays/locale/es/LC_MESSAGES/NI.po +1 -1
  208. holidays/locale/es/LC_MESSAGES/PE.po +4 -4
  209. holidays/locale/fa/LC_MESSAGES/IR.po +1 -1
  210. holidays/locale/fr/LC_MESSAGES/BE.po +2 -2
  211. holidays/locale/fr/LC_MESSAGES/CA.po +1 -1
  212. holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
  213. holidays/locale/fr/LC_MESSAGES/CH.po +6 -14
  214. holidays/locale/fr/LC_MESSAGES/DJ.po +2 -2
  215. holidays/locale/fr/LC_MESSAGES/DZ.po +5 -5
  216. holidays/locale/fr/LC_MESSAGES/MA.po +1 -1
  217. holidays/locale/fr/LC_MESSAGES/MC.po +4 -4
  218. holidays/locale/hr/LC_MESSAGES/HR.mo +0 -0
  219. holidays/locale/hr/LC_MESSAGES/HR.po +12 -10
  220. holidays/locale/hy/LC_MESSAGES/AM.po +1 -1
  221. holidays/locale/id/LC_MESSAGES/ID.po +4 -3
  222. holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
  223. holidays/locale/it/LC_MESSAGES/CH.po +6 -14
  224. holidays/locale/ka/LC_MESSAGES/GE.po +1 -1
  225. holidays/locale/lo/LC_MESSAGES/LA.po +1 -1
  226. holidays/locale/lt/LC_MESSAGES/LT.po +3 -3
  227. holidays/locale/lv/LC_MESSAGES/LV.po +1 -1
  228. holidays/locale/mg/LC_MESSAGES/MG.po +1 -0
  229. holidays/locale/nl/LC_MESSAGES/BE.po +2 -2
  230. holidays/locale/no/LC_MESSAGES/NO.po +1 -1
  231. holidays/locale/pl/LC_MESSAGES/PL.po +5 -4
  232. holidays/locale/pt_PT/LC_MESSAGES/PT.po +1 -1
  233. holidays/locale/pt_TL/LC_MESSAGES/TL.po +1 -0
  234. holidays/locale/ro/LC_MESSAGES/MD.po +5 -5
  235. holidays/locale/ro/LC_MESSAGES/RO.po +1 -1
  236. holidays/locale/sk/LC_MESSAGES/SK.po +1 -0
  237. holidays/locale/sr/LC_MESSAGES/BA.po +5 -5
  238. holidays/locale/sr/LC_MESSAGES/RS.po +3 -3
  239. holidays/locale/sw/LC_MESSAGES/TZ.po +1 -0
  240. holidays/locale/tet/LC_MESSAGES/TL.po +1 -0
  241. holidays/locale/th/LC_MESSAGES/CA.po +1 -1
  242. holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
  243. holidays/locale/th/LC_MESSAGES/CN.po +8 -4
  244. holidays/locale/th/LC_MESSAGES/LA.po +1 -1
  245. holidays/locale/th/LC_MESSAGES/TH.po +1 -1
  246. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  247. holidays/locale/th/LC_MESSAGES/TW.po +14 -5
  248. holidays/locale/tr/LC_MESSAGES/TR.po +2 -1
  249. holidays/locale/uk/LC_MESSAGES/AR.po +2 -2
  250. holidays/locale/uk/LC_MESSAGES/AT.mo +0 -0
  251. holidays/locale/uk/LC_MESSAGES/AT.po +25 -1
  252. holidays/locale/uk/LC_MESSAGES/BA.po +5 -5
  253. holidays/locale/uk/LC_MESSAGES/BE.po +2 -2
  254. holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
  255. holidays/locale/uk/LC_MESSAGES/CH.po +6 -14
  256. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  257. holidays/locale/uk/LC_MESSAGES/CL.po +6 -6
  258. holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
  259. holidays/locale/uk/LC_MESSAGES/CO.po +4 -4
  260. holidays/locale/uk/LC_MESSAGES/CU.po +2 -2
  261. holidays/locale/uk/LC_MESSAGES/DE.po +0 -1
  262. holidays/locale/uk/LC_MESSAGES/DK.po +1 -1
  263. holidays/locale/uk/LC_MESSAGES/DO.po +1 -1
  264. holidays/locale/uk/LC_MESSAGES/EC.po +1 -1
  265. holidays/locale/uk/LC_MESSAGES/ES.po +1 -1
  266. holidays/locale/uk/LC_MESSAGES/FR.mo +0 -0
  267. holidays/locale/uk/LC_MESSAGES/FR.po +6 -6
  268. holidays/locale/uk/LC_MESSAGES/GE.po +1 -1
  269. holidays/locale/uk/LC_MESSAGES/GR.po +3 -3
  270. holidays/locale/uk/LC_MESSAGES/HN.po +1 -1
  271. holidays/locale/uk/LC_MESSAGES/HR.mo +0 -0
  272. holidays/locale/uk/LC_MESSAGES/HR.po +14 -12
  273. holidays/locale/uk/LC_MESSAGES/ID.po +4 -3
  274. holidays/locale/uk/LC_MESSAGES/LI.mo +0 -0
  275. holidays/locale/uk/LC_MESSAGES/LI.po +5 -5
  276. holidays/locale/uk/LC_MESSAGES/LT.po +3 -3
  277. holidays/locale/uk/LC_MESSAGES/LV.po +1 -1
  278. holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
  279. holidays/locale/uk/LC_MESSAGES/MC.po +7 -7
  280. holidays/locale/uk/LC_MESSAGES/MD.po +5 -5
  281. holidays/locale/uk/LC_MESSAGES/MG.po +1 -0
  282. holidays/locale/uk/LC_MESSAGES/NI.po +1 -1
  283. holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
  284. holidays/locale/uk/LC_MESSAGES/PE.po +4 -4
  285. holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
  286. holidays/locale/uk/LC_MESSAGES/PL.po +11 -10
  287. holidays/locale/uk/LC_MESSAGES/PT.po +1 -1
  288. holidays/locale/uk/LC_MESSAGES/RO.po +1 -1
  289. holidays/locale/uk/LC_MESSAGES/SK.po +1 -0
  290. holidays/locale/uk/LC_MESSAGES/TR.po +2 -1
  291. holidays/locale/uk/LC_MESSAGES/UA.po +3 -3
  292. holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
  293. holidays/locale/zh_CN/LC_MESSAGES/CN.po +8 -4
  294. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  295. holidays/locale/zh_CN/LC_MESSAGES/TW.po +15 -6
  296. holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
  297. holidays/locale/zh_TW/LC_MESSAGES/CN.po +8 -4
  298. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  299. holidays/locale/zh_TW/LC_MESSAGES/TW.po +14 -5
  300. holidays/registry.py +2 -0
  301. holidays/utils.py +2 -2
  302. {holidays-0.41.dist-info → holidays-0.43.dist-info}/METADATA +23 -10
  303. {holidays-0.41.dist-info → holidays-0.43.dist-info}/RECORD +306 -304
  304. {holidays-0.41.dist-info → holidays-0.43.dist-info}/LICENSE +0 -0
  305. {holidays-0.41.dist-info → holidays-0.43.dist-info}/WHEEL +0 -0
  306. {holidays-0.41.dist-info → holidays-0.43.dist-info}/top_level.txt +0 -0
@@ -33,15 +33,18 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
33
33
  super().__init__(*args, **kwargs)
34
34
 
35
35
  def _populate_public_holidays(self):
36
+ if self._year <= 1991:
37
+ return None
38
+
36
39
  # New Year's Day.
37
- self._add_new_years_day(tr("Nova Godina"))
40
+ self._add_new_years_day(tr("Nova godina"))
38
41
 
39
42
  if self._year != 2002:
40
43
  # Epiphany.
41
44
  self._add_epiphany_day(tr("Bogojavljenje ili Sveta tri kralja"))
42
45
 
43
46
  if self._year >= 2009:
44
- # Easter.
47
+ # Easter Sunday.
45
48
  self._add_easter_sunday(tr("Uskrs"))
46
49
 
47
50
  # Easter Monday.
@@ -51,8 +54,8 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
51
54
  # Corpus Christi.
52
55
  self._add_corpus_christi_day(tr("Tijelovo"))
53
56
 
54
- # International Workers' Day.
55
- self._add_labor_day(tr("Međunarodni praznik rada"))
57
+ # Labor Day.
58
+ self._add_labor_day(tr("Praznik rada"))
56
59
 
57
60
  if self._year >= 1996:
58
61
  # Statehood Day.
@@ -74,7 +77,7 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
74
77
  )
75
78
  self._add_holiday_aug_5(name)
76
79
 
77
- # Assumption of Mary.
80
+ # Assumption Day.
78
81
  self._add_assumption_of_mary_day(tr("Velika Gospa"))
79
82
 
80
83
  if 2002 <= self._year <= 2019:
@@ -85,8 +88,13 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
85
88
  self._add_all_saints_day(tr("Svi sveti"))
86
89
 
87
90
  if self._year >= 2020:
88
- # Memorial Day.
89
- self._add_holiday_nov_18(tr("Dan sjećanja"))
91
+ self._add_holiday_nov_18(
92
+ # Remembrance Day.
93
+ tr(
94
+ "Dan sjećanja na žrtve Domovinskog rata i "
95
+ "Dan sjećanja na žrtvu Vukovara i Škabrnje"
96
+ )
97
+ )
90
98
 
91
99
  # Christmas Day.
92
100
  self._add_christmas_day(tr("Božić"))
@@ -32,7 +32,7 @@ class Cuba(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
32
32
 
33
33
  country = "CU"
34
34
  default_language = "es"
35
- # %s observed.
35
+ # %s (observed).
36
36
  observed_label = tr("%s (observado)")
37
37
  supported_languages = ("en_US", "es", "uk")
38
38
 
@@ -65,7 +65,7 @@ class Cuba(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
65
65
  # Good Friday.
66
66
  self._add_good_friday(tr("Viernes Santo"))
67
67
 
68
- # Labour Day.
68
+ # International Worker's Day.
69
69
  self._add_observed(self._add_labor_day(tr("Día Internacional de los Trabajadores")))
70
70
 
71
71
  # Commemoration of the Assault of the Moncada garrison.
@@ -41,7 +41,7 @@ class Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):
41
41
  # New Year's Day.
42
42
  self._add_new_years_day(tr("Nytårsdag"))
43
43
 
44
- # Holy Thursday.
44
+ # Maundy Thursday.
45
45
  self._add_holy_thursday(tr("Skærtorsdag"))
46
46
 
47
47
  # Good Friday.
@@ -53,7 +53,6 @@ class Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):
53
53
  # Easter Monday.
54
54
  self._add_easter_monday(tr("Anden påskedag"))
55
55
 
56
- # See https://www.ft.dk/samling/20222/lovforslag/l13/index.htm
57
56
  if self._year <= 2023:
58
57
  # Great Day of Prayers.
59
58
  self._add_holiday(tr("Store bededag"), self._easter_sunday + td(days=+26))
@@ -19,7 +19,7 @@ from holidays.holiday_base import HolidayBase
19
19
  class Djibouti(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolidays):
20
20
  country = "DJ"
21
21
  default_language = "fr"
22
- # Estimated label.
22
+ # %s (estimated).
23
23
  estimated_label = tr("%s (estimé)")
24
24
  supported_languages = ("ar", "en_US", "fr")
25
25
  weekend = {FRI, SAT}
@@ -59,7 +59,7 @@ class Djibouti(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHol
59
59
  # Eid al-Fitr Holiday.
60
60
  self._add_eid_al_fitr_day_two(tr("Eid al-Fitr deuxième jour"))
61
61
 
62
- # Arafat.
62
+ # Arafat Day.
63
63
  self._add_arafah_day(tr("Arafat"))
64
64
 
65
65
  # Eid al-Adha.
@@ -67,7 +67,7 @@ class DominicanRepublic(ObservedHolidayBase, ChristianHolidays, InternationalHol
67
67
  rule=TUE_WED_TO_PREV_MON + THU_FRI_SUN_TO_NEXT_MON,
68
68
  )
69
69
 
70
- # Feast of Corpus Christi.
70
+ # Corpus Christi.
71
71
  self._add_corpus_christi_day(tr("Corpus Christi"))
72
72
 
73
73
  # Restoration Day.
@@ -68,7 +68,7 @@ class Ecuador(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
68
68
  # Good Friday.
69
69
  self._add_good_friday(tr("Viernes Santo"))
70
70
 
71
- # Labour Day.
71
+ # Labor Day.
72
72
  self._add_observed(self._add_labor_day(tr("Día del Trabajo")))
73
73
 
74
74
  # The Battle of Pichincha.
@@ -20,20 +20,16 @@ from holidays.holiday_base import HolidayBase
20
20
  class Egypt(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolidays):
21
21
  # Holidays here are estimates, it is common for the day to be pushed
22
22
  # if falls in a weekend, although not a rule that can be implemented.
23
- # Holidays after 2020: the following four moving date holidays whose exact
24
- # date is announced yearly are estimated (and so denoted):
25
- # - Eid El Fetr*
26
- # - Eid El Adha*
27
- # - Arafat Day*
28
- # - Moulad El Naby*
29
- # *only if hijri-converter library is installed, otherwise a warning is
30
- # raised that this holiday is missing. hijri-converter requires
31
- # Python >= 3.6
32
- # is_weekend function is there, however not activated for accuracy.
23
+ # The following four moving date holidays whose exact date is announced yearly
24
+ # are estimated (and so denoted):
25
+ # - Eid al-Fitr
26
+ # - Eid al-Adha
27
+ # - Arafat Day
28
+ # - Prophet's Birthday
33
29
 
34
30
  country = "EG"
35
31
  default_language = "ar"
36
- # Estimated label.
32
+ # %s (estimated).
37
33
  estimated_label = tr("(تقدير) %s")
38
34
  supported_languages = ("ar", "en_US")
39
35
 
@@ -45,60 +41,62 @@ class Egypt(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolida
45
41
  super().__init__(*args, **kwargs)
46
42
 
47
43
  def _populate_public_holidays(self):
48
- # New Year's Day
44
+ # New Year's Day.
49
45
  self._add_new_years_day(tr("رأس السنة الميلادية"))
50
46
 
51
- # Coptic Christmas
47
+ # Coptic Christmas Day.
52
48
  self._add_christmas_day(tr("عيد الميلاد المجيد (تقويم قبطي)"))
53
49
 
54
50
  if self._year >= 2012:
55
- # January 25th Revolution
51
+ # January 25th Revolution.
56
52
  self._add_holiday_jan_25(tr("عيد ثورة 25 يناير"))
57
53
  elif self._year >= 2009:
58
- # National Police Day
54
+ # National Police Day.
59
55
  self._add_holiday_jan_25(tr("عيد الشرطة"))
60
56
 
61
- # Coptic Easter - Orthodox Easter
57
+ # Coptic Easter.
62
58
  self._add_easter_sunday(tr("عيد الفصح القبطي"))
63
- self._add_easter_monday(tr("شم النسيم")) # Spring Festival
59
+
60
+ # Spring Festival.
61
+ self._add_easter_monday(tr("شم النسيم"))
64
62
 
65
63
  if self._year > 1982:
66
- # Sinai Libration Day
64
+ # Sinai Liberation Day.
67
65
  self._add_holiday_apr_25(tr("عيد تحرير سيناء"))
68
66
 
69
- # Labour Day
67
+ # Labor Day.
70
68
  self._add_labor_day(tr("عيد العمال"))
71
69
 
72
- # Armed Forces Day
70
+ # Armed Forces Day.
73
71
  self._add_holiday_oct_6(tr("عيد القوات المسلحة"))
74
72
 
75
73
  if self._year >= 2014:
76
- # June 30 Revolution Day
74
+ # June 30 Revolution Day.
77
75
  self._add_holiday_jun_30(tr("عيد ثورة 30 يونيو"))
78
76
 
79
77
  if self._year > 1952:
80
- # July 23 Revolution Day
78
+ # July 23 Revolution Day.
81
79
  self._add_holiday_jul_23(tr("عيد ثورة 23 يوليو"))
82
80
 
83
- # Eid al-Fitr - Feast Festive
81
+ # Eid al-Fitr.
84
82
  self._add_eid_al_fitr_day(tr("عيد الفطر"))
85
- # Eid al-Fitr Holiday
83
+ # Eid al-Fitr Holiday.
86
84
  self._add_eid_al_fitr_day_two(tr("عطلة عيد الفطر"))
87
85
  self._add_eid_al_fitr_day_three(tr("عطلة عيد الفطر"))
88
86
 
89
- # Arafat Day
87
+ # Arafat Day.
90
88
  self._add_arafah_day(tr("يوم عرفة"))
91
89
 
92
- # Eid al-Adha - Scarfice Festive
90
+ # Eid al-Adha.
93
91
  self._add_eid_al_adha_day(tr("عيد الأضحى"))
94
- # Eid al-Adha Holiday
92
+ # Eid al-Adha Holiday.
95
93
  self._add_eid_al_adha_day_two(tr("عطلة عيد الأضحى"))
96
94
  self._add_eid_al_adha_day_three(tr("عطلة عيد الأضحى"))
97
95
 
98
- # Islamic New Year
96
+ # Islamic New Year.
99
97
  self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
100
98
 
101
- # Prophet Muhammad's Birthday
99
+ # Prophet's Birthday.
102
100
  self._add_mawlid_day(tr("عيد المولد النبوي"))
103
101
 
104
102
 
@@ -21,6 +21,7 @@ from holidays.holiday_base import HolidayBase
21
21
  class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
22
22
  country = "ET"
23
23
  default_language = "am"
24
+ # %s (estimated).
24
25
  estimated_label = tr("%s (ግምት)")
25
26
  supported_languages = ("am", "ar", "en_US")
26
27
 
@@ -57,7 +58,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
57
58
  # Finding of True Cross.
58
59
  self._add_holiday(tr("መስቀል"), SEP, 28 if self._is_leap_year() else 27)
59
60
 
60
- # Orthodox Christmas.
61
+ # Orthodox Christmas Day.
61
62
  self._add_christmas_day(tr("ገና"))
62
63
 
63
64
  # Orthodox Epiphany.
@@ -73,7 +74,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
73
74
  # Adwa Victory Day.
74
75
  self._add_holiday_mar_2(tr("አድዋ"))
75
76
 
76
- # Labour Day.
77
+ # Labor Day.
77
78
  self._add_labor_day(tr("የሰራተኞች ቀን"))
78
79
 
79
80
  if self._year > 1941:
@@ -96,7 +97,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
96
97
  self._add_eid_al_adha_day(name)
97
98
  self._add_eid_al_adha_day_two(name)
98
99
 
99
- # Prophet Muhammad's Birthday.
100
+ # Prophet's Birthday.
100
101
  name = tr("መውሊድ")
101
102
  self._add_mawlid_day(name)
102
103
  self._add_mawlid_day_two(name)
@@ -79,7 +79,7 @@ class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays):
79
79
  # Independence Day.
80
80
  self._add_holiday_may_26(tr("დამოუკიდებლობის დღე"))
81
81
 
82
- # Assumption of the Virgin Mary.
82
+ # Dormition of the Mother of God.
83
83
  self._add_assumption_of_mary_day(tr("მარიამობა"))
84
84
 
85
85
  # Holiday of Svetitskhovloba, Robe of Jesus.
@@ -254,7 +254,6 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
254
254
  self._add_holiday_oct_31(tr("Reformationstag"))
255
255
 
256
256
  if self._year >= 1995:
257
- # last wednesday before year-11-23
258
257
  self._add_holiday_1st_wed_before_nov_22(tr("Buß- und Bettag"))
259
258
 
260
259
  def _populate_subdiv_st_public_holidays(self):
@@ -0,0 +1,97 @@
1
+ # python-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: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
8
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
9
+ # Website: https://github.com/dr-prodigy/python-holidays
10
+ # License: MIT (see LICENSE file)
11
+
12
+ from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
13
+ from holidays.observed_holiday_base import (
14
+ ObservedHolidayBase,
15
+ SAT_SUN_TO_NEXT_MON,
16
+ SAT_SUN_TO_NEXT_MON_TUE,
17
+ )
18
+
19
+
20
+ class Ghana(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
21
+ """
22
+ https://www.mint.gov.gh/statutory-public-holidays/
23
+ https://en.wikipedia.org/wiki/Public_holidays_in_Ghana
24
+ """
25
+
26
+ country = "GH"
27
+ estimated_label = "%s (estimated)"
28
+ observed_label = "%s (observed)"
29
+ observed_estimated_label = "%s (observed, estimated)"
30
+
31
+ def __init__(self, *args, **kwargs):
32
+ ChristianHolidays.__init__(self)
33
+ InternationalHolidays.__init__(self)
34
+ IslamicHolidays.__init__(self)
35
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
36
+ super().__init__(*args, **kwargs)
37
+
38
+ def _populate_public_holidays(self):
39
+ # Holidays observed since 1957
40
+ if self._year <= 1956:
41
+ return None
42
+
43
+ # New Year's Day
44
+ self._add_observed(self._add_new_years_day("New Year's Day"))
45
+
46
+ # Constitution Day
47
+ if self._year >= 2019:
48
+ self._add_observed(self._add_holiday_jan_7("Constitution Day"))
49
+
50
+ # Independence Day
51
+ self._add_observed(self._add_holiday_mar_6("Independence Day"))
52
+
53
+ # Good Friday
54
+ self._add_good_friday("Good Friday")
55
+
56
+ # Easter Monday
57
+ self._add_easter_monday("Easter Monday")
58
+
59
+ # May Day(Workers' Day)
60
+ self._add_observed(self._add_labor_day("May Day"))
61
+
62
+ # Eid al-Fitr
63
+ for dt in self._add_eid_al_fitr_day("Eid ul-Fitr"):
64
+ self._add_observed(dt)
65
+
66
+ # Eid al-Adha
67
+ for dt in self._add_eid_al_adha_day("Eid ul-Adha"):
68
+ self._add_observed(dt)
69
+
70
+ # Founders' Day
71
+ if self._year >= 2019:
72
+ self._add_observed(self._add_holiday_aug_4("Founders' Day"))
73
+
74
+ # Kwame Nkrumah Memorial Day / Founder's Day
75
+ if self._year >= 2009:
76
+ self._add_observed(
77
+ self._add_holiday_sep_21(
78
+ "Kwame Nkrumah Memorial Day" if self._year >= 2019 else "Founder's Day"
79
+ )
80
+ )
81
+
82
+ # Farmer's Day
83
+ self._add_holiday_1st_fri_of_dec("Farmer's Day")
84
+
85
+ # Christmas Day
86
+ self._add_observed(self._add_christmas_day("Christmas Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
87
+
88
+ # Boxing Day
89
+ self._add_observed(self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
90
+
91
+
92
+ class GH(Ghana):
93
+ pass
94
+
95
+
96
+ class GHA(Ghana):
97
+ pass
@@ -14,7 +14,11 @@ from gettext import gettext as tr
14
14
  from holidays.calendars.julian_revised import JULIAN_REVISED_CALENDAR
15
15
  from holidays.constants import HALF_DAY, PUBLIC
16
16
  from holidays.groups import ChristianHolidays, InternationalHolidays
17
- from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_WORKDAY
17
+ from holidays.observed_holiday_base import (
18
+ ObservedHolidayBase,
19
+ MON_TO_NEXT_TUE,
20
+ SAT_SUN_TO_NEXT_WORKDAY,
21
+ )
18
22
 
19
23
 
20
24
  class Greece(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
@@ -36,6 +40,7 @@ class Greece(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
36
40
  ChristianHolidays.__init__(self, JULIAN_REVISED_CALENDAR)
37
41
  InternationalHolidays.__init__(self)
38
42
  kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
43
+ kwargs.setdefault("observed_since", 2017)
39
44
  super().__init__(*args, **kwargs)
40
45
 
41
46
  def _populate_public_holidays(self):
@@ -45,7 +50,7 @@ class Greece(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
45
50
  # Epiphany.
46
51
  self._add_epiphany_day(tr("Θεοφάνεια"))
47
52
 
48
- # Clean Monday.
53
+ # Green Monday.
49
54
  self._add_ash_monday(tr("Καθαρά Δευτέρα"))
50
55
 
51
56
  # Independence Day.
@@ -55,13 +60,16 @@ class Greece(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
55
60
  self._add_good_friday(tr("Μεγάλη Παρασκευή"))
56
61
 
57
62
  # Easter Monday.
58
- self._add_easter_monday(tr("Δευτέρα του Πάσχα"))
63
+ easter_monday = self._add_easter_monday(tr("Δευτέρα του Πάσχα"))
59
64
 
60
- # Monday of the Holy Spirit.
65
+ # Whit Monday.
61
66
  self._add_whit_monday(tr("Δευτέρα του Αγίου Πνεύματος"))
62
67
 
63
- # Labour Day.
64
- self._add_observed(self._add_labor_day(self.tr("Εργατική Πρωτομαγιά")))
68
+ self._add_observed(
69
+ # Labor Day.
70
+ may_1 := self._add_labor_day(self.tr("Εργατική Πρωτομαγιά")),
71
+ rule=MON_TO_NEXT_TUE if may_1 == easter_monday else SAT_SUN_TO_NEXT_WORKDAY,
72
+ )
65
73
 
66
74
  # Dormition of the Mother of God.
67
75
  self._add_assumption_of_mary_day(tr("Κοίμηση της Θεοτόκου"))
@@ -48,39 +48,39 @@ class Guatemala(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
48
48
  # New Year's Day.
49
49
  self._add_new_years_day(tr("Año Nuevo"))
50
50
 
51
- # Good Thursday.
51
+ # Maundy Thursday.
52
52
  self._add_holy_thursday(tr("Jueves Santo"))
53
53
 
54
54
  # Good Friday.
55
55
  self._add_good_friday(tr("Viernes Santo"))
56
56
 
57
- # Good Saturday.
57
+ # Holy Saturday.
58
58
  self._add_holy_saturday(tr("Sabado Santo"))
59
59
 
60
60
  # Labor Day.
61
- dt = self._add_labor_day(tr("Dia del Trabajo"))
61
+ dt = self._add_labor_day(tr("Día del Trabajo"))
62
62
  if self._year == 2019:
63
63
  self._move_holiday(dt)
64
64
 
65
65
  # Army Day.
66
- self._move_holiday(self._add_holiday_jun_30(tr("Dia del Ejército")))
66
+ self._move_holiday(self._add_holiday_jun_30(tr("Día del Ejército")))
67
67
 
68
68
  # Assumption Day.
69
- self._add_assumption_of_mary_day(tr("Dia de la Asunción"))
69
+ self._add_assumption_of_mary_day(tr("Día de la Asunción"))
70
70
 
71
- # Independence Day
71
+ # Independence Day.
72
72
  self._add_holiday_sep_15(tr("Día de la Independencia"))
73
73
 
74
- # Revolution Day
75
- dt = self._add_holiday_oct_20(tr("Dia de la Revolución"))
74
+ # Revolution Day.
75
+ dt = self._add_holiday_oct_20(tr("Día de la Revolución"))
76
76
  if self._year in {2018, 2019}:
77
77
  self._move_holiday(dt)
78
78
 
79
79
  # All Saints' Day.
80
- self._add_all_saints_day(tr("Dia de Todos los Santos"))
80
+ self._add_all_saints_day(tr("Día de Todos los Santos"))
81
81
 
82
82
  # Christmas Day.
83
- self._add_christmas_day(tr("Dia de Navidad"))
83
+ self._add_christmas_day(tr("Día de Navidad"))
84
84
 
85
85
 
86
86
  class GT(Guatemala):
@@ -69,7 +69,7 @@ class Honduras(HolidayBase, ChristianHolidays, InternationalHolidays):
69
69
  self._add_holiday(name, first_wed_of_oct + td(days=+1))
70
70
  self._add_holiday(name, first_wed_of_oct + td(days=+2))
71
71
 
72
- # Christmas.
72
+ # Christmas Day.
73
73
  self._add_christmas_day(tr("Navidad"))
74
74
 
75
75
 
@@ -87,9 +87,8 @@ class Hungary(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
87
87
  # Bread Day.
88
88
  tr("A kenyér ünnepe")
89
89
  if 1950 <= self._year <= 1989
90
- else
91
90
  # State Foundation Day.
92
- tr("Az államalapítás ünnepe"),
91
+ else tr("Az államalapítás ünnepe"),
93
92
  )
94
93
 
95
94
  if self._year >= 1991:
@@ -48,6 +48,7 @@ class Indonesia(
48
48
 
49
49
  country = "ID"
50
50
  default_language = "id"
51
+ # %s (estimated).
51
52
  estimated_label = tr("%s (perkiraan)")
52
53
  supported_languages = ("en_US", "id", "uk")
53
54
  supported_categories = (GOVERNMENT, PUBLIC)
@@ -126,7 +127,7 @@ class Indonesia(
126
127
  self._add_holiday_jun_1(tr("Hari Lahir Pancasila"))
127
128
 
128
129
  if 1968 <= self._year <= 1970:
129
- # Assumption Of Mary.
130
+ # Assumption Day.
130
131
  self._add_assumption_of_mary_day(tr("Mikraj Santa Maria"))
131
132
 
132
133
  # Independence Day.
@@ -156,10 +157,10 @@ class Indonesia(
156
157
  # Islamic New Year.
157
158
  self._add_islamic_new_year_day(tr("Tahun Baru Islam"))
158
159
 
159
- # The Prophet's Birthday.
160
+ # Prophet's Birthday.
160
161
  self._add_mawlid_day(tr("Maulid Nabi Muhammad"))
161
162
 
162
- # The Prophet's Ascension.
163
+ # Isra and Miraj.
163
164
  self._add_isra_and_miraj_day(tr("Isra Mikraj Nabi Muhammad"))
164
165
 
165
166
  if 1953 <= self._year <= 1962:
@@ -24,7 +24,7 @@ class Iran(HolidayBase, IslamicHolidays, PersianCalendarHolidays):
24
24
 
25
25
  country = "IR"
26
26
  default_language = "fa"
27
- # Estimated label.
27
+ # %s (estimated).
28
28
  estimated_label = tr("(تخمین زده) %s")
29
29
  supported_languages = ("en_US", "fa")
30
30
 
@@ -9,35 +9,33 @@
9
9
  # Website: https://github.com/dr-prodigy/python-holidays
10
10
  # License: MIT (see LICENSE file)
11
11
 
12
- from holidays.calendars.gregorian import FEB, MAR
12
+ from holidays.calendars.gregorian import FEB, MAR, SEP, DEC
13
13
  from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
14
- from holidays.observed_holiday_base import (
15
- ObservedHolidayBase,
16
- SAT_SUN_TO_NEXT_MON,
17
- SAT_SUN_TO_NEXT_MON_TUE,
18
- )
14
+ from holidays.holiday_base import HolidayBase
19
15
 
20
16
 
21
- class Ireland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
17
+ class Ireland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
22
18
  """
23
- Official holidays in Ireland, as declared in the Citizen's Information
24
- bulletin:
25
- https://www.citizensinformation.ie/en/employment/employment_rights_and_conditions/leave_and_holidays/public_holidays_in_ireland.html
19
+ References:
20
+ - https://en.wikipedia.org/wiki/Public_holidays_in_the_Republic_of_Ireland
21
+ - https://www.citizensinformation.ie/en/employment/employment_rights_and_conditions/leave_and_holidays/public_holidays_in_ireland.html # noqa: E501
26
22
  """
27
23
 
28
24
  country = "IE"
29
- observed_label = "%s (observed)"
30
25
 
31
26
  def __init__(self, *args, **kwargs):
32
27
  ChristianHolidays.__init__(self)
33
28
  InternationalHolidays.__init__(self)
34
29
  StaticHolidays.__init__(self, IrelandStaticHolidays)
35
- kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
36
30
  super().__init__(*args, **kwargs)
37
31
 
38
32
  def _populate_public_holidays(self):
33
+ if self._year <= 1871:
34
+ return None
35
+
39
36
  # New Year's Day.
40
- self._add_new_years_day("New Year's Day")
37
+ if self._year >= 1975:
38
+ self._add_new_years_day("New Year's Day")
41
39
 
42
40
  # St. Brigid's Day.
43
41
  if self._year >= 2023:
@@ -48,35 +46,39 @@ class Ireland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
48
46
  self._add_holiday_1st_mon_from_feb_1(name)
49
47
 
50
48
  # St. Patrick's Day.
51
- self._add_observed(self._add_holiday_mar_17("St. Patrick's Day"))
49
+ if self._year >= 1903:
50
+ self._add_holiday_mar_17("St. Patrick's Day")
52
51
 
53
52
  # Easter Monday.
54
53
  self._add_easter_monday("Easter Monday")
55
54
 
56
55
  # May Day.
57
- if self._year >= 1978:
56
+ if self._year >= 1994:
58
57
  name = "May Day"
59
58
  if self._year == 1995:
60
59
  self._add_holiday_may_8(name)
61
60
  else:
62
61
  self._add_holiday_1st_mon_of_may(name)
63
62
 
64
- # June Bank holiday.
65
- self._add_holiday_1st_mon_of_jun("June Bank Holiday")
63
+ if self._year >= 1973:
64
+ # June Bank Holiday.
65
+ self._add_holiday_1st_mon_of_jun("June Bank Holiday")
66
+ else:
67
+ # Whit Monday.
68
+ self._add_whit_monday("Whit Monday")
66
69
 
67
- # Summer Bank holiday.
70
+ # August Bank Holiday.
68
71
  self._add_holiday_1st_mon_of_aug("August Bank Holiday")
69
72
 
70
73
  # October Bank Holiday.
71
- self._add_holiday_last_mon_of_oct("October Bank Holiday")
74
+ if self._year >= 1977:
75
+ self._add_holiday_last_mon_of_oct("October Bank Holiday")
72
76
 
73
77
  # Christmas Day.
74
- self._add_observed(self._add_christmas_day("Christmas Day"))
78
+ self._add_christmas_day("Christmas Day")
75
79
 
76
80
  # St. Stephen's Day.
77
- self._add_observed(
78
- self._add_christmas_day_two("St. Stephen's Day"), rule=SAT_SUN_TO_NEXT_MON_TUE
79
- )
81
+ self._add_christmas_day_two("St. Stephen's Day")
80
82
 
81
83
 
82
84
  class IE(Ireland):
@@ -89,5 +91,7 @@ class IRL(Ireland):
89
91
 
90
92
  class IrelandStaticHolidays:
91
93
  special_public_holidays = {
94
+ 1999: (DEC, 31, "Millennium Celebrations"),
95
+ 2011: (SEP, 14, "National Day of Mourning"),
92
96
  2022: (MAR, 18, "Day of Remembrance and Recognition"),
93
97
  }