holidays 0.65__py3-none-any.whl → 0.67__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 (463) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/persian.py +6 -0
  3. holidays/calendars/sinhala.py +414 -0
  4. holidays/countries/__init__.py +3 -0
  5. holidays/countries/australia.py +6 -6
  6. holidays/countries/cambodia.py +1 -1
  7. holidays/countries/chile.py +1 -1
  8. holidays/countries/cuba.py +1 -1
  9. holidays/countries/czechia.py +39 -30
  10. holidays/countries/denmark.py +1 -1
  11. holidays/countries/finland.py +19 -19
  12. holidays/countries/germany.py +11 -22
  13. holidays/countries/greenland.py +22 -19
  14. holidays/countries/guatemala.py +1 -1
  15. holidays/countries/haiti.py +3 -3
  16. holidays/countries/hongkong.py +124 -174
  17. holidays/countries/iceland.py +16 -8
  18. holidays/countries/iran.py +522 -43
  19. holidays/countries/isle_of_man.py +15 -11
  20. holidays/countries/israel.py +1 -1
  21. holidays/countries/kazakhstan.py +1 -1
  22. holidays/countries/laos.py +2 -2
  23. holidays/countries/netherlands.py +1 -1
  24. holidays/countries/nicaragua.py +1 -1
  25. holidays/countries/panama.py +69 -31
  26. holidays/countries/peru.py +1 -1
  27. holidays/countries/saint_lucia.py +88 -0
  28. holidays/countries/seychelles.py +4 -4
  29. holidays/countries/singapore.py +1 -1
  30. holidays/countries/slovakia.py +14 -7
  31. holidays/countries/slovenia.py +63 -19
  32. holidays/countries/spain.py +9 -9
  33. holidays/countries/sri_lanka.py +515 -0
  34. holidays/countries/sweden.py +6 -9
  35. holidays/countries/switzerland.py +1 -1
  36. holidays/countries/thailand.py +1 -1
  37. holidays/countries/tuvalu.py +174 -0
  38. holidays/countries/ukraine.py +1 -1
  39. holidays/countries/united_arab_emirates.py +95 -11
  40. holidays/countries/united_kingdom.py +72 -56
  41. holidays/countries/united_states.py +141 -10
  42. holidays/countries/uruguay.py +1 -1
  43. holidays/countries/vatican_city.py +134 -53
  44. holidays/financial/brasil_bolsa_balcao.py +1 -1
  45. holidays/groups/__init__.py +1 -0
  46. holidays/groups/christian.py +10 -0
  47. holidays/groups/persian.py +12 -0
  48. holidays/groups/sinhala.py +192 -0
  49. holidays/holiday_base.py +62 -13
  50. holidays/locale/ar/LC_MESSAGES/AE.mo +0 -0
  51. holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
  52. holidays/locale/cs/LC_MESSAGES/CZ.mo +0 -0
  53. holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
  54. holidays/locale/en_GB/LC_MESSAGES/GB.mo +0 -0
  55. holidays/locale/en_GB/LC_MESSAGES/IM.mo +0 -0
  56. holidays/locale/en_GB/LC_MESSAGES/TV.mo +0 -0
  57. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  58. holidays/locale/en_LC/LC_MESSAGES/LC.mo +0 -0
  59. holidays/locale/en_US/LC_MESSAGES/AE.mo +0 -0
  60. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  61. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  62. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  63. holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
  64. holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
  65. holidays/locale/en_US/LC_MESSAGES/CZ.mo +0 -0
  66. holidays/locale/en_US/LC_MESSAGES/DK.mo +0 -0
  67. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  68. holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
  69. holidays/locale/en_US/LC_MESSAGES/GB.mo +0 -0
  70. holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
  71. holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
  72. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  73. holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
  74. holidays/locale/en_US/LC_MESSAGES/IM.mo +0 -0
  75. holidays/locale/en_US/LC_MESSAGES/IR.mo +0 -0
  76. holidays/locale/en_US/LC_MESSAGES/IS.mo +0 -0
  77. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  78. holidays/locale/en_US/LC_MESSAGES/KZ.mo +0 -0
  79. holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
  80. holidays/locale/en_US/LC_MESSAGES/LC.mo +0 -0
  81. holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
  82. holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
  83. holidays/locale/en_US/LC_MESSAGES/PA.mo +0 -0
  84. holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
  85. holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
  86. holidays/locale/en_US/LC_MESSAGES/SC.mo +0 -0
  87. holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
  88. holidays/locale/en_US/LC_MESSAGES/TV.mo +0 -0
  89. holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
  90. holidays/locale/en_US/LC_MESSAGES/UY.mo +0 -0
  91. holidays/locale/en_US/LC_MESSAGES/VA.mo +0 -0
  92. holidays/locale/es/LC_MESSAGES/PA.mo +0 -0
  93. holidays/locale/{fa → fa_IR}/LC_MESSAGES/IR.mo +0 -0
  94. holidays/locale/fi/LC_MESSAGES/GL.mo +0 -0
  95. holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
  96. holidays/locale/is/LC_MESSAGES/GL.mo +0 -0
  97. holidays/locale/is/LC_MESSAGES/IS.mo +0 -0
  98. holidays/locale/it/LC_MESSAGES/VA.mo +0 -0
  99. holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
  100. holidays/locale/no/LC_MESSAGES/GL.mo +0 -0
  101. holidays/locale/si_LK/LC_MESSAGES/LK.mo +0 -0
  102. holidays/locale/sk/LC_MESSAGES/CZ.mo +0 -0
  103. holidays/locale/sl/LC_MESSAGES/SI.mo +0 -0
  104. holidays/locale/sv/LC_MESSAGES/GL.mo +0 -0
  105. holidays/locale/ta_LK/LC_MESSAGES/LK.mo +0 -0
  106. holidays/locale/th/LC_MESSAGES/AE.mo +0 -0
  107. holidays/locale/th/LC_MESSAGES/GB.mo +0 -0
  108. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  109. holidays/locale/th/LC_MESSAGES/IL.mo +0 -0
  110. holidays/locale/th/LC_MESSAGES/IM.mo +0 -0
  111. holidays/locale/th/LC_MESSAGES/UA.mo +0 -0
  112. holidays/locale/th/LC_MESSAGES/VA.mo +0 -0
  113. holidays/locale/tvl/LC_MESSAGES/TV.mo +0 -0
  114. holidays/locale/uk/LC_MESSAGES/AO.mo +0 -0
  115. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  116. holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
  117. holidays/locale/uk/LC_MESSAGES/CU.mo +0 -0
  118. holidays/locale/uk/LC_MESSAGES/CZ.mo +0 -0
  119. holidays/locale/uk/LC_MESSAGES/DK.mo +0 -0
  120. holidays/locale/uk/LC_MESSAGES/EE.mo +0 -0
  121. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  122. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  123. holidays/locale/uk/LC_MESSAGES/GL.mo +0 -0
  124. holidays/locale/uk/LC_MESSAGES/IS.mo +0 -0
  125. holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
  126. holidays/locale/uk/LC_MESSAGES/MG.mo +0 -0
  127. holidays/locale/uk/LC_MESSAGES/MZ.mo +0 -0
  128. holidays/locale/uk/LC_MESSAGES/PA.mo +0 -0
  129. holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
  130. holidays/locale/uk/LC_MESSAGES/RO.mo +0 -0
  131. holidays/locale/uk/LC_MESSAGES/SI.mo +0 -0
  132. holidays/locale/uk/LC_MESSAGES/UA.mo +0 -0
  133. holidays/locale/uk/LC_MESSAGES/UZ.mo +0 -0
  134. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  135. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  136. holidays/registry.py +3 -0
  137. holidays/version.py +1 -1
  138. {holidays-0.65.dist-info → holidays-0.67.dist-info}/AUTHORS +1 -0
  139. {holidays-0.65.dist-info → holidays-0.67.dist-info}/METADATA +46 -25
  140. holidays-0.67.dist-info/RECORD +560 -0
  141. holidays/locale/am/LC_MESSAGES/ET.po +0 -92
  142. holidays/locale/ar/LC_MESSAGES/AE.po +0 -76
  143. holidays/locale/ar/LC_MESSAGES/BH.po +0 -76
  144. holidays/locale/ar/LC_MESSAGES/CA.po +0 -161
  145. holidays/locale/ar/LC_MESSAGES/DJ.po +0 -85
  146. holidays/locale/ar/LC_MESSAGES/DZ.po +0 -80
  147. holidays/locale/ar/LC_MESSAGES/EG.po +0 -104
  148. holidays/locale/ar/LC_MESSAGES/ET.po +0 -93
  149. holidays/locale/ar/LC_MESSAGES/JO.po +0 -79
  150. holidays/locale/ar/LC_MESSAGES/KW.po +0 -75
  151. holidays/locale/ar/LC_MESSAGES/MA.po +0 -88
  152. holidays/locale/ar/LC_MESSAGES/SA.po +0 -67
  153. holidays/locale/ar/LC_MESSAGES/TN.po +0 -92
  154. holidays/locale/ar/LC_MESSAGES/UA.po +0 -113
  155. holidays/locale/az/LC_MESSAGES/AZ.po +0 -136
  156. holidays/locale/be/LC_MESSAGES/BY.po +0 -109
  157. holidays/locale/bg/LC_MESSAGES/BG.po +0 -87
  158. holidays/locale/bs/LC_MESSAGES/BA.po +0 -113
  159. holidays/locale/cnr/LC_MESSAGES/ME.po +0 -102
  160. holidays/locale/cs/LC_MESSAGES/CZ.po +0 -88
  161. holidays/locale/da/LC_MESSAGES/DK.po +0 -87
  162. holidays/locale/da/LC_MESSAGES/GL.po +0 -91
  163. holidays/locale/de/LC_MESSAGES/AT.po +0 -115
  164. holidays/locale/de/LC_MESSAGES/BE.po +0 -88
  165. holidays/locale/de/LC_MESSAGES/CH.po +0 -123
  166. holidays/locale/de/LC_MESSAGES/DE.po +0 -121
  167. holidays/locale/de/LC_MESSAGES/LI.po +0 -115
  168. holidays/locale/de/LC_MESSAGES/LU.po +0 -72
  169. holidays/locale/el/LC_MESSAGES/CY.po +0 -99
  170. holidays/locale/el/LC_MESSAGES/GR.po +0 -89
  171. holidays/locale/en_AU/LC_MESSAGES/AU.po +0 -177
  172. holidays/locale/en_CA/LC_MESSAGES/CA.po +0 -161
  173. holidays/locale/en_CY/LC_MESSAGES/CY.po +0 -100
  174. holidays/locale/en_PH/LC_MESSAGES/PH.po +0 -128
  175. holidays/locale/en_SC/LC_MESSAGES/SC.po +0 -117
  176. holidays/locale/en_SG/LC_MESSAGES/SG.po +0 -98
  177. holidays/locale/en_US/LC_MESSAGES/AE.po +0 -77
  178. holidays/locale/en_US/LC_MESSAGES/AF.po +0 -92
  179. holidays/locale/en_US/LC_MESSAGES/AL.po +0 -106
  180. holidays/locale/en_US/LC_MESSAGES/AM.po +0 -88
  181. holidays/locale/en_US/LC_MESSAGES/AO.po +0 -117
  182. holidays/locale/en_US/LC_MESSAGES/AR.po +0 -139
  183. holidays/locale/en_US/LC_MESSAGES/AT.po +0 -116
  184. holidays/locale/en_US/LC_MESSAGES/AU.po +0 -177
  185. holidays/locale/en_US/LC_MESSAGES/AW.po +0 -84
  186. holidays/locale/en_US/LC_MESSAGES/AZ.po +0 -136
  187. holidays/locale/en_US/LC_MESSAGES/BA.po +0 -113
  188. holidays/locale/en_US/LC_MESSAGES/BE.po +0 -88
  189. holidays/locale/en_US/LC_MESSAGES/BG.po +0 -87
  190. holidays/locale/en_US/LC_MESSAGES/BH.po +0 -77
  191. holidays/locale/en_US/LC_MESSAGES/BN.po +0 -109
  192. holidays/locale/en_US/LC_MESSAGES/BO.po +0 -117
  193. holidays/locale/en_US/LC_MESSAGES/BR.po +0 -263
  194. holidays/locale/en_US/LC_MESSAGES/BVMF.po +0 -79
  195. holidays/locale/en_US/LC_MESSAGES/BY.po +0 -114
  196. holidays/locale/en_US/LC_MESSAGES/CA.po +0 -161
  197. holidays/locale/en_US/LC_MESSAGES/CG.po +0 -67
  198. holidays/locale/en_US/LC_MESSAGES/CH.po +0 -124
  199. holidays/locale/en_US/LC_MESSAGES/CL.po +0 -136
  200. holidays/locale/en_US/LC_MESSAGES/CN.po +0 -102
  201. holidays/locale/en_US/LC_MESSAGES/CO.po +0 -105
  202. holidays/locale/en_US/LC_MESSAGES/CR.po +0 -85
  203. holidays/locale/en_US/LC_MESSAGES/CU.po +0 -69
  204. holidays/locale/en_US/LC_MESSAGES/CW.po +0 -84
  205. holidays/locale/en_US/LC_MESSAGES/CY.po +0 -100
  206. holidays/locale/en_US/LC_MESSAGES/CZ.po +0 -88
  207. holidays/locale/en_US/LC_MESSAGES/DE.po +0 -126
  208. holidays/locale/en_US/LC_MESSAGES/DJ.po +0 -84
  209. holidays/locale/en_US/LC_MESSAGES/DK.po +0 -88
  210. holidays/locale/en_US/LC_MESSAGES/DO.po +0 -76
  211. holidays/locale/en_US/LC_MESSAGES/DZ.po +0 -81
  212. holidays/locale/en_US/LC_MESSAGES/EC.po +0 -73
  213. holidays/locale/en_US/LC_MESSAGES/EE.po +0 -76
  214. holidays/locale/en_US/LC_MESSAGES/EG.po +0 -105
  215. holidays/locale/en_US/LC_MESSAGES/ES.po +0 -225
  216. holidays/locale/en_US/LC_MESSAGES/ET.po +0 -93
  217. holidays/locale/en_US/LC_MESSAGES/FI.po +0 -164
  218. holidays/locale/en_US/LC_MESSAGES/FR.po +0 -116
  219. holidays/locale/en_US/LC_MESSAGES/GE.po +0 -96
  220. holidays/locale/en_US/LC_MESSAGES/GL.po +0 -92
  221. holidays/locale/en_US/LC_MESSAGES/GR.po +0 -89
  222. holidays/locale/en_US/LC_MESSAGES/GT.po +0 -72
  223. holidays/locale/en_US/LC_MESSAGES/HN.po +0 -76
  224. holidays/locale/en_US/LC_MESSAGES/HR.po +0 -94
  225. holidays/locale/en_US/LC_MESSAGES/HT.po +0 -127
  226. holidays/locale/en_US/LC_MESSAGES/HU.po +0 -101
  227. holidays/locale/en_US/LC_MESSAGES/ID.po +0 -195
  228. holidays/locale/en_US/LC_MESSAGES/IL.po +0 -105
  229. holidays/locale/en_US/LC_MESSAGES/IR.po +0 -125
  230. holidays/locale/en_US/LC_MESSAGES/IS.po +0 -92
  231. holidays/locale/en_US/LC_MESSAGES/JO.po +0 -80
  232. holidays/locale/en_US/LC_MESSAGES/JP.po +0 -128
  233. holidays/locale/en_US/LC_MESSAGES/KH.po +0 -132
  234. holidays/locale/en_US/LC_MESSAGES/KR.po +0 -219
  235. holidays/locale/en_US/LC_MESSAGES/KW.po +0 -76
  236. holidays/locale/en_US/LC_MESSAGES/KZ.po +0 -103
  237. holidays/locale/en_US/LC_MESSAGES/LA.po +0 -160
  238. holidays/locale/en_US/LC_MESSAGES/LI.po +0 -116
  239. holidays/locale/en_US/LC_MESSAGES/LT.po +0 -94
  240. holidays/locale/en_US/LC_MESSAGES/LU.po +0 -72
  241. holidays/locale/en_US/LC_MESSAGES/LV.po +0 -106
  242. holidays/locale/en_US/LC_MESSAGES/MA.po +0 -89
  243. holidays/locale/en_US/LC_MESSAGES/MC.po +0 -85
  244. holidays/locale/en_US/LC_MESSAGES/MD.po +0 -84
  245. holidays/locale/en_US/LC_MESSAGES/ME.po +0 -102
  246. holidays/locale/en_US/LC_MESSAGES/MG.po +0 -92
  247. holidays/locale/en_US/LC_MESSAGES/MT.po +0 -83
  248. holidays/locale/en_US/LC_MESSAGES/MX.po +0 -60
  249. holidays/locale/en_US/LC_MESSAGES/MY.po +0 -250
  250. holidays/locale/en_US/LC_MESSAGES/MZ.po +0 -69
  251. holidays/locale/en_US/LC_MESSAGES/NI.po +0 -76
  252. holidays/locale/en_US/LC_MESSAGES/NL.po +0 -76
  253. holidays/locale/en_US/LC_MESSAGES/NO.po +0 -80
  254. holidays/locale/en_US/LC_MESSAGES/PE.po +0 -88
  255. holidays/locale/en_US/LC_MESSAGES/PH.po +0 -128
  256. holidays/locale/en_US/LC_MESSAGES/PL.po +0 -115
  257. holidays/locale/en_US/LC_MESSAGES/PT.po +0 -184
  258. holidays/locale/en_US/LC_MESSAGES/PY.po +0 -88
  259. holidays/locale/en_US/LC_MESSAGES/RO.po +0 -76
  260. holidays/locale/en_US/LC_MESSAGES/RS.po +0 -69
  261. holidays/locale/en_US/LC_MESSAGES/RU.po +0 -93
  262. holidays/locale/en_US/LC_MESSAGES/SA.po +0 -67
  263. holidays/locale/en_US/LC_MESSAGES/SC.po +0 -117
  264. holidays/locale/en_US/LC_MESSAGES/SE.po +0 -104
  265. holidays/locale/en_US/LC_MESSAGES/SG.po +0 -98
  266. holidays/locale/en_US/LC_MESSAGES/SI.po +0 -76
  267. holidays/locale/en_US/LC_MESSAGES/SK.po +0 -97
  268. holidays/locale/en_US/LC_MESSAGES/SV.po +0 -75
  269. holidays/locale/en_US/LC_MESSAGES/TH.po +0 -354
  270. holidays/locale/en_US/LC_MESSAGES/TL.po +0 -169
  271. holidays/locale/en_US/LC_MESSAGES/TN.po +0 -93
  272. holidays/locale/en_US/LC_MESSAGES/TO.po +0 -91
  273. holidays/locale/en_US/LC_MESSAGES/TR.po +0 -89
  274. holidays/locale/en_US/LC_MESSAGES/TW.po +0 -78
  275. holidays/locale/en_US/LC_MESSAGES/TZ.po +0 -119
  276. holidays/locale/en_US/LC_MESSAGES/UA.po +0 -113
  277. holidays/locale/en_US/LC_MESSAGES/UY.po +0 -120
  278. holidays/locale/en_US/LC_MESSAGES/UZ.po +0 -96
  279. holidays/locale/en_US/LC_MESSAGES/VE.po +0 -92
  280. holidays/locale/en_US/LC_MESSAGES/VN.po +0 -93
  281. holidays/locale/es/LC_MESSAGES/AR.po +0 -135
  282. holidays/locale/es/LC_MESSAGES/BO.po +0 -117
  283. holidays/locale/es/LC_MESSAGES/CL.po +0 -136
  284. holidays/locale/es/LC_MESSAGES/CO.po +0 -105
  285. holidays/locale/es/LC_MESSAGES/CR.po +0 -85
  286. holidays/locale/es/LC_MESSAGES/CU.po +0 -69
  287. holidays/locale/es/LC_MESSAGES/DO.po +0 -76
  288. holidays/locale/es/LC_MESSAGES/EC.po +0 -73
  289. holidays/locale/es/LC_MESSAGES/ES.po +0 -225
  290. holidays/locale/es/LC_MESSAGES/GT.po +0 -72
  291. holidays/locale/es/LC_MESSAGES/HN.po +0 -76
  292. holidays/locale/es/LC_MESSAGES/HT.po +0 -127
  293. holidays/locale/es/LC_MESSAGES/MX.po +0 -60
  294. holidays/locale/es/LC_MESSAGES/NI.po +0 -76
  295. holidays/locale/es/LC_MESSAGES/PE.po +0 -88
  296. holidays/locale/es/LC_MESSAGES/PY.po +0 -88
  297. holidays/locale/es/LC_MESSAGES/SV.po +0 -75
  298. holidays/locale/es/LC_MESSAGES/UY.po +0 -120
  299. holidays/locale/es/LC_MESSAGES/VE.po +0 -92
  300. holidays/locale/et/LC_MESSAGES/EE.po +0 -76
  301. holidays/locale/fa/LC_MESSAGES/IR.po +0 -125
  302. holidays/locale/fa_AF/LC_MESSAGES/AF.po +0 -92
  303. holidays/locale/fi/LC_MESSAGES/FI.po +0 -164
  304. holidays/locale/fil/LC_MESSAGES/PH.po +0 -129
  305. holidays/locale/fr/LC_MESSAGES/BE.po +0 -88
  306. holidays/locale/fr/LC_MESSAGES/CA.po +0 -161
  307. holidays/locale/fr/LC_MESSAGES/CG.po +0 -67
  308. holidays/locale/fr/LC_MESSAGES/CH.po +0 -123
  309. holidays/locale/fr/LC_MESSAGES/DJ.po +0 -84
  310. holidays/locale/fr/LC_MESSAGES/DZ.po +0 -81
  311. holidays/locale/fr/LC_MESSAGES/FR.po +0 -116
  312. holidays/locale/fr/LC_MESSAGES/LU.po +0 -72
  313. holidays/locale/fr/LC_MESSAGES/MA.po +0 -89
  314. holidays/locale/fr/LC_MESSAGES/MC.po +0 -85
  315. holidays/locale/fr_HT/LC_MESSAGES/HT.po +0 -127
  316. holidays/locale/he/LC_MESSAGES/IL.po +0 -104
  317. holidays/locale/hr/LC_MESSAGES/HR.po +0 -94
  318. holidays/locale/ht/LC_MESSAGES/HT.po +0 -127
  319. holidays/locale/hu/LC_MESSAGES/HU.po +0 -101
  320. holidays/locale/hy/LC_MESSAGES/AM.po +0 -87
  321. holidays/locale/id/LC_MESSAGES/ID.po +0 -195
  322. holidays/locale/is/LC_MESSAGES/IS.po +0 -92
  323. holidays/locale/it/LC_MESSAGES/CH.po +0 -123
  324. holidays/locale/ja/LC_MESSAGES/JP.po +0 -128
  325. holidays/locale/ka/LC_MESSAGES/GE.po +0 -96
  326. holidays/locale/kk/LC_MESSAGES/KZ.po +0 -103
  327. holidays/locale/kl/LC_MESSAGES/GL.po +0 -91
  328. holidays/locale/km/LC_MESSAGES/KH.po +0 -132
  329. holidays/locale/ko/LC_MESSAGES/KR.po +0 -219
  330. holidays/locale/lb/LC_MESSAGES/LU.po +0 -72
  331. holidays/locale/lo/LC_MESSAGES/LA.po +0 -160
  332. holidays/locale/lt/LC_MESSAGES/LT.po +0 -94
  333. holidays/locale/lv/LC_MESSAGES/LV.po +0 -104
  334. holidays/locale/mg/LC_MESSAGES/MG.po +0 -92
  335. holidays/locale/ms/LC_MESSAGES/BN.po +0 -107
  336. holidays/locale/ms_MY/LC_MESSAGES/MY.po +0 -250
  337. holidays/locale/mt/LC_MESSAGES/MT.po +0 -83
  338. holidays/locale/nl/LC_MESSAGES/AW.po +0 -84
  339. holidays/locale/nl/LC_MESSAGES/BE.po +0 -88
  340. holidays/locale/nl/LC_MESSAGES/CW.po +0 -84
  341. holidays/locale/nl/LC_MESSAGES/NL.po +0 -76
  342. holidays/locale/no/LC_MESSAGES/NO.po +0 -80
  343. holidays/locale/pap_AW/LC_MESSAGES/AW.po +0 -84
  344. holidays/locale/pap_CW/LC_MESSAGES/CW.po +0 -84
  345. holidays/locale/pl/LC_MESSAGES/PL.po +0 -115
  346. holidays/locale/ps_AF/LC_MESSAGES/AF.po +0 -92
  347. holidays/locale/pt_AO/LC_MESSAGES/AO.po +0 -117
  348. holidays/locale/pt_BR/LC_MESSAGES/BR.po +0 -263
  349. holidays/locale/pt_BR/LC_MESSAGES/BVMF.po +0 -79
  350. holidays/locale/pt_MZ/LC_MESSAGES/MZ.po +0 -69
  351. holidays/locale/pt_PT/LC_MESSAGES/PT.po +0 -184
  352. holidays/locale/pt_TL/LC_MESSAGES/TL.po +0 -167
  353. holidays/locale/ro/LC_MESSAGES/MD.po +0 -82
  354. holidays/locale/ro/LC_MESSAGES/RO.po +0 -76
  355. holidays/locale/ru/LC_MESSAGES/BY.po +0 -111
  356. holidays/locale/ru/LC_MESSAGES/RU.po +0 -91
  357. holidays/locale/sk/LC_MESSAGES/CZ.po +0 -88
  358. holidays/locale/sk/LC_MESSAGES/SK.po +0 -96
  359. holidays/locale/sl/LC_MESSAGES/SI.po +0 -76
  360. holidays/locale/sq/LC_MESSAGES/AL.po +0 -106
  361. holidays/locale/sr/LC_MESSAGES/BA.po +0 -113
  362. holidays/locale/sr/LC_MESSAGES/RS.po +0 -68
  363. holidays/locale/sv/LC_MESSAGES/SE.po +0 -104
  364. holidays/locale/sv_FI/LC_MESSAGES/FI.po +0 -164
  365. holidays/locale/sw/LC_MESSAGES/TZ.po +0 -119
  366. holidays/locale/tet/LC_MESSAGES/TL.po +0 -167
  367. holidays/locale/th/LC_MESSAGES/AU.po +0 -177
  368. holidays/locale/th/LC_MESSAGES/BN.po +0 -109
  369. holidays/locale/th/LC_MESSAGES/BY.po +0 -109
  370. holidays/locale/th/LC_MESSAGES/CA.po +0 -161
  371. holidays/locale/th/LC_MESSAGES/CN.po +0 -101
  372. holidays/locale/th/LC_MESSAGES/DE.po +0 -126
  373. holidays/locale/th/LC_MESSAGES/ID.po +0 -195
  374. holidays/locale/th/LC_MESSAGES/JP.po +0 -128
  375. holidays/locale/th/LC_MESSAGES/KH.po +0 -138
  376. holidays/locale/th/LC_MESSAGES/KR.po +0 -219
  377. holidays/locale/th/LC_MESSAGES/LA.po +0 -160
  378. holidays/locale/th/LC_MESSAGES/MY.po +0 -250
  379. holidays/locale/th/LC_MESSAGES/NO.po +0 -80
  380. holidays/locale/th/LC_MESSAGES/PH.po +0 -128
  381. holidays/locale/th/LC_MESSAGES/RU.po +0 -90
  382. holidays/locale/th/LC_MESSAGES/SE.po +0 -104
  383. holidays/locale/th/LC_MESSAGES/SG.po +0 -98
  384. holidays/locale/th/LC_MESSAGES/TH.po +0 -352
  385. holidays/locale/th/LC_MESSAGES/TW.po +0 -78
  386. holidays/locale/th/LC_MESSAGES/UA.po +0 -114
  387. holidays/locale/th/LC_MESSAGES/VN.po +0 -93
  388. holidays/locale/to/LC_MESSAGES/TO.po +0 -91
  389. holidays/locale/tr/LC_MESSAGES/TR.po +0 -90
  390. holidays/locale/uk/LC_MESSAGES/AL.po +0 -106
  391. holidays/locale/uk/LC_MESSAGES/AO.po +0 -117
  392. holidays/locale/uk/LC_MESSAGES/AR.po +0 -138
  393. holidays/locale/uk/LC_MESSAGES/AT.po +0 -116
  394. holidays/locale/uk/LC_MESSAGES/AW.po +0 -84
  395. holidays/locale/uk/LC_MESSAGES/AZ.po +0 -136
  396. holidays/locale/uk/LC_MESSAGES/BA.po +0 -114
  397. holidays/locale/uk/LC_MESSAGES/BE.po +0 -88
  398. holidays/locale/uk/LC_MESSAGES/BG.po +0 -89
  399. holidays/locale/uk/LC_MESSAGES/BO.po +0 -117
  400. holidays/locale/uk/LC_MESSAGES/BR.po +0 -263
  401. holidays/locale/uk/LC_MESSAGES/BVMF.po +0 -79
  402. holidays/locale/uk/LC_MESSAGES/CH.po +0 -123
  403. holidays/locale/uk/LC_MESSAGES/CL.po +0 -136
  404. holidays/locale/uk/LC_MESSAGES/CO.po +0 -105
  405. holidays/locale/uk/LC_MESSAGES/CR.po +0 -85
  406. holidays/locale/uk/LC_MESSAGES/CU.po +0 -69
  407. holidays/locale/uk/LC_MESSAGES/CW.po +0 -84
  408. holidays/locale/uk/LC_MESSAGES/CY.po +0 -100
  409. holidays/locale/uk/LC_MESSAGES/CZ.po +0 -88
  410. holidays/locale/uk/LC_MESSAGES/DE.po +0 -126
  411. holidays/locale/uk/LC_MESSAGES/DK.po +0 -88
  412. holidays/locale/uk/LC_MESSAGES/DO.po +0 -76
  413. holidays/locale/uk/LC_MESSAGES/EC.po +0 -73
  414. holidays/locale/uk/LC_MESSAGES/EE.po +0 -76
  415. holidays/locale/uk/LC_MESSAGES/ES.po +0 -225
  416. holidays/locale/uk/LC_MESSAGES/FI.po +0 -164
  417. holidays/locale/uk/LC_MESSAGES/FR.po +0 -116
  418. holidays/locale/uk/LC_MESSAGES/GE.po +0 -96
  419. holidays/locale/uk/LC_MESSAGES/GR.po +0 -89
  420. holidays/locale/uk/LC_MESSAGES/HN.po +0 -76
  421. holidays/locale/uk/LC_MESSAGES/HR.po +0 -94
  422. holidays/locale/uk/LC_MESSAGES/HU.po +0 -101
  423. holidays/locale/uk/LC_MESSAGES/ID.po +0 -195
  424. holidays/locale/uk/LC_MESSAGES/IL.po +0 -104
  425. holidays/locale/uk/LC_MESSAGES/IS.po +0 -92
  426. holidays/locale/uk/LC_MESSAGES/KZ.po +0 -103
  427. holidays/locale/uk/LC_MESSAGES/LI.po +0 -116
  428. holidays/locale/uk/LC_MESSAGES/LT.po +0 -94
  429. holidays/locale/uk/LC_MESSAGES/LU.po +0 -72
  430. holidays/locale/uk/LC_MESSAGES/LV.po +0 -105
  431. holidays/locale/uk/LC_MESSAGES/MC.po +0 -85
  432. holidays/locale/uk/LC_MESSAGES/MD.po +0 -84
  433. holidays/locale/uk/LC_MESSAGES/ME.po +0 -102
  434. holidays/locale/uk/LC_MESSAGES/MG.po +0 -92
  435. holidays/locale/uk/LC_MESSAGES/MX.po +0 -60
  436. holidays/locale/uk/LC_MESSAGES/MZ.po +0 -69
  437. holidays/locale/uk/LC_MESSAGES/NI.po +0 -76
  438. holidays/locale/uk/LC_MESSAGES/NL.po +0 -76
  439. holidays/locale/uk/LC_MESSAGES/NO.po +0 -80
  440. holidays/locale/uk/LC_MESSAGES/PE.po +0 -88
  441. holidays/locale/uk/LC_MESSAGES/PL.po +0 -115
  442. holidays/locale/uk/LC_MESSAGES/PT.po +0 -184
  443. holidays/locale/uk/LC_MESSAGES/PY.po +0 -88
  444. holidays/locale/uk/LC_MESSAGES/RO.po +0 -76
  445. holidays/locale/uk/LC_MESSAGES/SE.po +0 -104
  446. holidays/locale/uk/LC_MESSAGES/SI.po +0 -76
  447. holidays/locale/uk/LC_MESSAGES/SK.po +0 -96
  448. holidays/locale/uk/LC_MESSAGES/SV.po +0 -75
  449. holidays/locale/uk/LC_MESSAGES/TR.po +0 -89
  450. holidays/locale/uk/LC_MESSAGES/UA.po +0 -112
  451. holidays/locale/uk/LC_MESSAGES/UY.po +0 -120
  452. holidays/locale/uk/LC_MESSAGES/UZ.po +0 -96
  453. holidays/locale/uk/LC_MESSAGES/VE.po +0 -92
  454. holidays/locale/uz/LC_MESSAGES/UZ.po +0 -96
  455. holidays/locale/vi/LC_MESSAGES/VN.po +0 -93
  456. holidays/locale/zh_CN/LC_MESSAGES/CN.po +0 -100
  457. holidays/locale/zh_CN/LC_MESSAGES/TW.po +0 -78
  458. holidays/locale/zh_TW/LC_MESSAGES/CN.po +0 -100
  459. holidays/locale/zh_TW/LC_MESSAGES/TW.po +0 -78
  460. holidays-0.65.dist-info/RECORD +0 -841
  461. {holidays-0.65.dist-info → holidays-0.67.dist-info}/LICENSE +0 -0
  462. {holidays-0.65.dist-info → holidays-0.67.dist-info}/WHEEL +0 -0
  463. {holidays-0.65.dist-info → holidays-0.67.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,174 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from gettext import gettext as tr
14
+
15
+ from holidays.groups import ChristianHolidays, InternationalHolidays
16
+ from holidays.observed_holiday_base import (
17
+ ObservedHolidayBase,
18
+ SAT_SUN_TO_NEXT_MON,
19
+ SAT_SUN_TO_NEXT_MON_TUE,
20
+ )
21
+
22
+
23
+ class Tuvalu(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
24
+ """
25
+ References:
26
+ - `Public holidays in Tuvalu <https://en.wikipedia.org/wiki/Public_holidays_in_Tuvalu>`_
27
+ - `Today's and Upcoming Holidays in Tuvalu <https://www.timeanddate.com/holidays/tuvalu/>`_
28
+ - `Public Holidays (Amendment) Act 1990 <https://www.paclii.org/cgi-bin/sinodisp/tv/legis/num_act/pha1990243/pha1990243.html>`_
29
+ - `Public Holidays Act 1 <https://tuvalu-legislation.tv/cms/images/LEGISLATION/PRINCIPAL/1937/1937-0005/1937-0005_1.pdf>`_
30
+ - `Public Holidays (Amendment) Act 2018 <https://tuvalu-legislation.tv/cms/images/LEGISLATION/AMENDING/Public%20Holidays%20(Amendment)%20Act/Public%20Holidays%20(Amendment)%20Act%202018/Public%20Holidays%20(Amendment)%20Act%202018.pdf>`_
31
+ - `Public Holidays (Amendment) Act 2020 <https://tuvalu-legislation.tv/cms/images/LEGISLATION/AMENDING/2020/2020-0013/2020-0013.pdf>`_
32
+ - `Public Holidays Act 2 <https://tuvalu-legislation.tv/cms/images/LEGISLATION/PRINCIPAL/1937/1937-0005/1937-0005_2.pdf>`_
33
+ - `Codes for the representation of names of countries and their subdivisions <https://www.iso.org/obp/ui/#iso:code:3166:TV>`_
34
+ - `TUVALU-NEWS.TV <https://web.archive.org/web/20140915180104/http://www.tuvalu-news.tv/archives/2007/01/island_special_public_holidays.html>`_
35
+ """
36
+
37
+ country = "TV"
38
+ default_language = "tvl"
39
+ # %s (observed).
40
+ observed_label = tr("%s (fakamatakuga)")
41
+ supported_languages = ("en_GB", "en_US", "tvl")
42
+ subdivisions = (
43
+ "FUN", # Funafuti.
44
+ "NIT", # Niutao.
45
+ "NKF", # Nukufetau.
46
+ "NKL", # Nukulaelae.
47
+ "NMA", # Nanumea.
48
+ "NMG", # Nanumaga.
49
+ "NUI", # Nui.
50
+ "VAI", # Vaitupu.
51
+ )
52
+ subdivisions_aliases = {
53
+ # Town/Island Councils.
54
+ "Funafuti": "FUN",
55
+ "Niutao": "NIT",
56
+ "Nukufetau": "NKF",
57
+ "Nukulaelae": "NKL",
58
+ "Nanumea": "NMA",
59
+ "Nanumaga": "NMG",
60
+ "Nanumanga": "NMG", # Ex-ISO code alias
61
+ "Nui": "NUI",
62
+ "Vaitupu": "VAI",
63
+ }
64
+ # Tuvalu became fully independent of the United Kingdom on October 1, 1978
65
+ # Tuvalu's PUBLIC HOLIDAYS (AMENDMENT) ACT 1990 (Act 2 of 1990)
66
+ # It was first proclaimed on FEB 7th, 1990
67
+ start_year = 1990
68
+
69
+ def __init__(self, *args, **kwargs):
70
+ ChristianHolidays.__init__(self)
71
+ InternationalHolidays.__init__(self)
72
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
73
+ super().__init__(*args, **kwargs)
74
+
75
+ def _populate_public_holidays(self):
76
+ # New Year's Day.
77
+ self._add_observed(self._add_new_years_day(tr("Tausaga Fou")))
78
+
79
+ if self._year <= 2020:
80
+ # Commonwealth Day.
81
+ self._add_holiday_2nd_mon_of_mar(tr("Aso Atefenua"))
82
+
83
+ # Good Friday.
84
+ self._add_good_friday(tr("Aso toe tu"))
85
+
86
+ # Easter Monday.
87
+ self._add_easter_monday(tr("Toe Tu aso gafua"))
88
+
89
+ # Gospel Day.
90
+ self._add_holiday_1_day_past_2nd_sun_of_may(tr("Te Aso o te Tala Lei"))
91
+
92
+ self._add_holiday_2nd_sat_of_jun(
93
+ # King's Birthday.
94
+ tr("Asofanau Tupu")
95
+ if self._year >= 2023
96
+ # Queen's Birthday.
97
+ else tr("Asofanau Fafine")
98
+ )
99
+
100
+ # National Children's Day.
101
+ name = tr("Aso Tamaliki")
102
+ if self._year >= 2019:
103
+ # National Youth Day.
104
+ self._add_holiday_1st_mon_of_aug(tr("Aso tupulaga"))
105
+
106
+ # National Children's Day.
107
+ self._add_holiday_1_day_past_2nd_sun_of_oct(name)
108
+ else:
109
+ # National Children's Day.
110
+ self._add_holiday_1st_mon_of_aug(name)
111
+
112
+ # Tuvalu Day.
113
+ name = tr("Tutokotasi")
114
+ self._add_observed(self._add_holiday_oct_1(name), rule=SAT_SUN_TO_NEXT_MON_TUE)
115
+ self._add_observed(self._add_holiday_oct_2(name), rule=SAT_SUN_TO_NEXT_MON_TUE)
116
+
117
+ # https://en.wikipedia.org/wiki/King%27s_Official_Birthday#Tuvalu
118
+ if self._year <= 2022:
119
+ # Heir to the Throne's Birthday.
120
+ self._add_holiday_2nd_mon_of_nov(tr("Aso fanau o te sui ote Tupu"))
121
+
122
+ # Christmas Day.
123
+ self._add_observed(self._add_christmas_day(tr("Kilisimasi")), rule=SAT_SUN_TO_NEXT_MON_TUE)
124
+ self._add_observed(
125
+ # Boxing Day.
126
+ self._add_christmas_day_two(tr("Aso Faipele")),
127
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
128
+ )
129
+
130
+ def _populate_subdiv_fun_public_holidays(self):
131
+ # The Day of the Bombing.
132
+ self._add_holiday_apr_23(tr("Te Aso o te Paula"))
133
+
134
+ # Cyclone Day.
135
+ self._add_holiday_oct_21(tr("Aso o te matagi"))
136
+
137
+ def _populate_subdiv_nit_public_holidays(self):
138
+ # Niutao Day.
139
+ self._add_holiday_sep_17(tr("Te Aso o te Setema"))
140
+
141
+ def _populate_subdiv_nkf_public_holidays(self):
142
+ # Nukufetau Day.
143
+ self._add_holiday_feb_11(tr("Te Aso O Tutasi"))
144
+
145
+ def _populate_subdiv_nkl_public_holidays(self):
146
+ # Gospel Day.
147
+ self._add_holiday_may_10(tr("Te Aso o te Tala Lei"))
148
+
149
+ def _populate_subdiv_nma_public_holidays(self):
150
+ # Golden Jubilee.
151
+ self._add_holiday_jan_8(tr("Te Po o Tefolaha"))
152
+
153
+ # Big Day.
154
+ self._add_holiday_feb_3(tr("Po Lahi"))
155
+
156
+ def _populate_subdiv_nmg_public_holidays(self):
157
+ # Nanumaga Day.
158
+ self._add_holiday_apr_15(tr("Aho o te Fakavae"))
159
+
160
+ def _populate_subdiv_nui_public_holidays(self):
161
+ # Day of the Flood.
162
+ self._add_holiday_feb_16(tr("Bogin te Ieka"))
163
+
164
+ def _populate_subdiv_vai_public_holidays(self):
165
+ # Happy Day.
166
+ self._add_holiday_nov_25(tr("Te Aso Fiafia"))
167
+
168
+
169
+ class TV(Tuvalu):
170
+ pass
171
+
172
+
173
+ class TUV(Tuvalu):
174
+ pass
@@ -98,7 +98,7 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
98
98
  else tr("День перемоги над нацизмом у Другій світовій війні (День перемоги)")
99
99
  if self._year >= 2016
100
100
  # Victory Day.
101
- else tr("День перемоги")
101
+ else tr("День Перемоги")
102
102
  )
103
103
  dts_observed.add(
104
104
  self._add_world_war_two_victory_day(name, is_western=(self._year >= 2024))
@@ -13,32 +13,59 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars import _CustomIslamicHolidays
16
- from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, FRI, SAT, SUN
17
- from holidays.groups import InternationalHolidays, IslamicHolidays
16
+ from holidays.calendars.gregorian import (
17
+ FEB,
18
+ MAR,
19
+ APR,
20
+ MAY,
21
+ JUN,
22
+ JUL,
23
+ AUG,
24
+ SEP,
25
+ OCT,
26
+ NOV,
27
+ DEC,
28
+ FRI,
29
+ SAT,
30
+ SUN,
31
+ )
32
+ from holidays.constants import GOVERNMENT, OPTIONAL, PUBLIC
33
+ from holidays.groups import InternationalHolidays, IslamicHolidays, StaticHolidays
18
34
  from holidays.holiday_base import HolidayBase
19
35
 
20
36
 
21
- class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
37
+ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays):
22
38
  """
23
39
  Holidays are regulated by the Article 74 of Federal Law No. 08 for the year 1980:
24
40
  https://www.ilo.org/dyn/natlex/docs/ELECTRONIC/11956/69376/F417089305/ARE11956.pdf
25
41
  However the law is not applied literally, and was amended often in the past few years.
26
42
  Sources:
27
43
  2017: https://www.khaleejtimes.com/nation/uae-official-public-holidays-list-2017
28
- 2018: https://www.thenational.ae/uae/government/uae-public-holidays-2018-announced-by-abu-dhabi-government-1.691393
44
+ 2018: https://www.khaleejtimes.com/nation/Here-are-the-holidays-remaining-in-2018-in-UAE
29
45
  2019: https://www.thenational.ae/uae/government/uae-public-holidays-for-2019-and-2020-announced-by-cabinet-1.833425
30
46
  2020: https://u.ae/en/information-and-services/public-holidays-and-religious-affairs/public-holidays
47
+ 2021: https://www.wam.ae/en/details/1395302957696
48
+ 2022: https://www.khaleejtimes.com/ramadan/eid-al-fitr-holiday-announced-in-uae-3
49
+ 2023:
50
+ - https://www.timeoutdubai.com/news/uae-public-holidays-in-2023
51
+ - https://www.khaleejtimes.com/uae/islamic-new-year-2023-uae-announces-official-holiday-for-public-sector
52
+ 2024: https://www.timeoutdubai.com/news/uae-public-holidays-in-2024
53
+ 2025: https://www.timeoutdubai.com/news/uae-public-holidays-2025
31
54
  """
32
55
 
33
56
  country = "AE"
34
57
  default_language = "ar"
35
58
  # %s (estimated).
36
59
  estimated_label = tr("(تقدير) %s")
37
- supported_languages = ("ar", "en_US")
60
+ supported_categories = (GOVERNMENT, OPTIONAL, PUBLIC)
61
+ supported_languages = ("ar", "en_US", "th")
62
+ # Founded on DEC 2, 1971.
63
+ start_year = 1972
38
64
 
39
65
  def __init__(self, *args, **kwargs):
40
66
  InternationalHolidays.__init__(self)
41
67
  IslamicHolidays.__init__(self, cls=UnitedArabEmiratesIslamicHolidays)
68
+ StaticHolidays.__init__(self, UnitedArabEmiratesStaticHolidays)
42
69
  super().__init__(*args, **kwargs)
43
70
 
44
71
  def _populate_public_holidays(self):
@@ -49,7 +76,7 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
49
76
  # New Year's Day.
50
77
  self._add_new_years_day(tr("رأس السنة الميلادية"))
51
78
 
52
- if 2015 <= self._year <= 2022:
79
+ if 2015 <= self._year <= 2023:
53
80
  # Commemoration Day.
54
81
  name = tr("يوم الشهيد")
55
82
  if self._year >= 2019:
@@ -69,7 +96,8 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
69
96
  eid_al_fitr_holiday = tr("عطلة عيد الفطر")
70
97
  self._add_eid_al_fitr_day_two(eid_al_fitr_holiday)
71
98
  self._add_eid_al_fitr_day_three(eid_al_fitr_holiday)
72
- if self._year >= 2019:
99
+ if 2019 <= self._year <= 2024:
100
+ # Ramadan 30 not confirmed yet for 2025 onwards.
73
101
  self._add_eid_al_fitr_eve(eid_al_fitr_holiday)
74
102
 
75
103
  # Arafat Day.
@@ -105,23 +133,26 @@ class ARE(UnitedArabEmirates):
105
133
  class UnitedArabEmiratesIslamicHolidays(_CustomIslamicHolidays):
106
134
  EID_AL_ADHA_DATES = {
107
135
  2017: (SEP, 1),
108
- 2018: (AUG, 21),
136
+ 2018: (AUG, 22),
109
137
  2019: (AUG, 11),
110
138
  2020: (JUL, 31),
111
139
  2021: (JUL, 20),
112
140
  2022: (JUL, 9),
113
141
  2023: (JUN, 28),
142
+ 2024: (JUN, 16),
143
+ 2025: (JUN, 4),
114
144
  }
115
145
 
116
146
  EID_AL_FITR_DATES = {
117
147
  2017: (JUN, 25),
118
- 2018: (JUN, 14),
148
+ 2018: (JUN, 15),
119
149
  2019: (JUN, 4),
120
150
  2020: (MAY, 24),
121
151
  2021: (MAY, 13),
122
152
  2022: (MAY, 2),
123
153
  2023: (APR, 21),
124
154
  2024: (APR, 10),
155
+ 2025: (MAR, 30),
125
156
  }
126
157
 
127
158
  HIJRI_NEW_YEAR_DATES = {
@@ -132,19 +163,72 @@ class UnitedArabEmiratesIslamicHolidays(_CustomIslamicHolidays):
132
163
  2021: (AUG, 12),
133
164
  2022: (JUL, 30),
134
165
  2023: (JUL, 21),
166
+ 2024: (JUL, 7),
167
+ 2025: (JUN, 26),
135
168
  }
136
169
 
137
170
  ISRA_AND_MIRAJ_DATES = {
138
171
  2017: (APR, 23),
139
- 2018: (APR, 13),
172
+ 2018: (APR, 14),
140
173
  }
141
174
 
142
175
  MAWLID_DATES = {
143
176
  2017: (NOV, 30),
144
- 2018: (NOV, 19),
177
+ 2018: (NOV, 18),
145
178
  2019: (NOV, 9),
146
179
  2020: (OCT, 29),
147
180
  2021: (OCT, 21),
148
181
  2022: (OCT, 8),
149
182
  2023: (SEP, 29),
183
+ 2024: (SEP, 15),
184
+ 2025: (SEP, 5),
185
+ }
186
+
187
+
188
+ class UnitedArabEmiratesStaticHolidays:
189
+ """
190
+ Special Eid al-Fitr entries for Ramadan 29 from 2020 onwards.
191
+ 2019: https://www.mohre.gov.ae/en/media-centre/news/30/1/2019/عطلة-رسمية-يوم-زيارة-البابا-للمشاركين-في-فعالياته-من-القطاع-الخاص.aspx?DisableResponsive=1
192
+ 2020: https://gulfbusiness.com/revealed-uae-private-sector-holidays-for-eid-al-fitr-2020/
193
+ 2021: https://www.timeoutdubai.com/news/466278-eid-al-fitr-holiday-2021-dubai
194
+ 2022:
195
+ - https://gulfnews.com/uae/eid-al-fitr-2022-holidays-for-private-and-public-sectors-in-uae-explained-1.1650951429432
196
+ - https://www.arabianbusiness.com/gcc/uae/uae-suspends-work-for-three-days-marks-40-days-of-mourning-over-sheikh-khalifas-death
197
+ 2023: https://hrme.economictimes.indiatimes.com/news/industry/uae-cabinet-announces-national-day-holiday-for-federal-government-from-2-to-4-december/105455071
198
+ 2024: https://www.timeoutdubai.com/news/eid-al-fitr-2024-expected-dates-ramadan
199
+ 2025: https://www.timeoutdubai.com/news/uae-public-holidays-2025
200
+
201
+ Cross-Checked With:
202
+ https://www.timeanddate.com/holidays/united-arab-emirates/2021?hol=134217729
203
+ """
204
+
205
+ # Eid al-Fitr Holiday.
206
+ eid_al_fitr_holiday = tr("عطلة عيد الفطر")
207
+ # Death of Sheikh Khalifa bin Zayed Al Nahyan.
208
+ sheikh_khalifa_bin_zayed_death = tr("وفاة الشيخ خليفة بن زايد آل نهيان")
209
+
210
+ special_government_holidays = {
211
+ 2022: (
212
+ (MAY, 5, eid_al_fitr_holiday),
213
+ (MAY, 6, eid_al_fitr_holiday),
214
+ (MAY, 7, eid_al_fitr_holiday),
215
+ (MAY, 8, eid_al_fitr_holiday),
216
+ ),
217
+ # National Day.
218
+ 2023: (DEC, 4, tr("اليوم الوطني")),
219
+ }
220
+ special_optional_holidays = {
221
+ # Pope Francis' Visit Day.
222
+ 2019: (FEB, 5, tr("يوم زيارة البابا فرنسيس")),
223
+ }
224
+ special_public_holidays = {
225
+ 2020: (MAY, 22, eid_al_fitr_holiday),
226
+ 2021: (MAY, 11, eid_al_fitr_holiday),
227
+ 2022: (
228
+ (APR, 30, eid_al_fitr_holiday),
229
+ (MAY, 14, sheikh_khalifa_bin_zayed_death),
230
+ (MAY, 15, sheikh_khalifa_bin_zayed_death),
231
+ (MAY, 16, sheikh_khalifa_bin_zayed_death),
232
+ ),
233
+ 2024: (APR, 8, eid_al_fitr_holiday),
150
234
  }
@@ -10,6 +10,7 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from gettext import gettext as tr
13
14
  from typing import Union
14
15
 
15
16
  from holidays.calendars.gregorian import APR, MAY, JUN, JUL, SEP, DEC
@@ -37,7 +38,9 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
37
38
  """
38
39
 
39
40
  country = "GB"
40
- observed_label = "%s (observed)"
41
+ default_language = "en_GB"
42
+ # %s (observed).
43
+ observed_label = tr("%s (observed)")
41
44
  subdivisions: Union[tuple[()], tuple[str, ...]] = (
42
45
  "ENG", # England
43
46
  "NIR", # Northern Ireland
@@ -50,6 +53,7 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
50
53
  "Scotland": "SCT",
51
54
  "Wales": "WLS",
52
55
  }
56
+ supported_languages = ("en_GB", "en_US", "th")
53
57
  _deprecated_subdivisions = ("UK",)
54
58
  # Bank Holidays Act 1871
55
59
  start_year = 1872
@@ -64,25 +68,25 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
64
68
  super().__init__(*args, **kwargs)
65
69
 
66
70
  def _populate_public_holidays(self) -> None:
67
- # Good Friday
68
- self._add_good_friday("Good Friday")
71
+ # Good Friday.
72
+ self._add_good_friday(tr("Good Friday"))
69
73
 
70
- # May Day bank holiday (first Monday in May)
71
74
  if self._year >= 1978:
72
- name = "May Day"
75
+ # May Day.
76
+ name = tr("May Day")
73
77
  if self._year in {1995, 2020}:
74
78
  self._add_holiday_may_8(name)
75
79
  else:
76
80
  self._add_holiday_1st_mon_of_may(name)
77
81
 
78
- # Spring bank holiday (last Monday in May)
79
82
  if self._year >= 1971:
80
83
  spring_bank_dates = {
81
84
  2002: (JUN, 4),
82
85
  2012: (JUN, 4),
83
86
  2022: (JUN, 2),
84
87
  }
85
- name = "Spring Bank Holiday"
88
+ # Spring Bank Holiday.
89
+ name = tr("Spring Bank Holiday")
86
90
  if self._year in spring_bank_dates:
87
91
  self._add_holiday(name, spring_bank_dates[self._year])
88
92
  else:
@@ -90,94 +94,97 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
90
94
 
91
95
  def _populate_subdiv_holidays(self):
92
96
  if self.subdiv != "SCT":
93
- # New Year's Day
94
97
  if self._year >= 1975:
95
- self._add_observed(self._add_new_years_day("New Year's Day"))
98
+ # New Year's Day.
99
+ self._add_observed(self._add_new_years_day(tr("New Year's Day")))
96
100
 
97
- # Christmas Day
98
101
  self._add_observed(
99
- self._add_christmas_day("Christmas Day"), rule=SAT_SUN_TO_NEXT_MON_TUE
102
+ # Christmas Day.
103
+ self._add_christmas_day(tr("Christmas Day")),
104
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
100
105
  )
101
106
 
102
- # Boxing Day
103
107
  self._add_observed(
104
- self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE
108
+ # Boxing Day.
109
+ self._add_christmas_day_two(tr("Boxing Day")),
110
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
105
111
  )
106
112
 
107
113
  super()._populate_subdiv_holidays()
108
114
 
109
115
  def _populate_subdiv_eng_public_holidays(self):
110
- # Easter Monday
111
- self._add_easter_monday("Easter Monday")
116
+ # Easter Monday.
117
+ self._add_easter_monday(tr("Easter Monday"))
112
118
 
113
- # Whit Monday.
114
119
  if self._year <= 1970:
115
- self._add_whit_monday("Whit Monday")
120
+ # Whit Monday.
121
+ self._add_whit_monday(tr("Whit Monday"))
116
122
 
117
- # Late Summer bank holiday (last Monday in August)
118
123
  if self._year >= 1971:
119
- self._add_holiday_last_mon_of_aug("Late Summer Bank Holiday")
124
+ # Late Summer Bank Holiday.
125
+ self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
120
126
 
121
127
  def _populate_subdiv_nir_public_holidays(self):
122
128
  if self._year >= 1903:
123
- # Saint Patrick's Day
124
- self._add_observed(self._add_holiday_mar_17("Saint Patrick's Day"))
129
+ # Saint Patrick's Day.
130
+ self._add_observed(self._add_holiday_mar_17(tr("Saint Patrick's Day")))
125
131
 
126
- # Easter Monday
127
- self._add_easter_monday("Easter Monday")
132
+ # Easter Monday.
133
+ self._add_easter_monday(tr("Easter Monday"))
128
134
 
129
- # Whit Monday.
130
135
  if self._year <= 1970:
131
- self._add_whit_monday("Whit Monday")
136
+ # Whit Monday.
137
+ self._add_whit_monday(tr("Whit Monday"))
132
138
 
133
- # Battle of the Boyne
134
- self._add_observed(self._add_holiday_jul_12("Battle of the Boyne"))
139
+ # Battle of the Boyne.
140
+ self._add_observed(self._add_holiday_jul_12(tr("Battle of the Boyne")))
135
141
 
136
- # Late Summer bank holiday (last Monday in August)
137
142
  if self._year >= 1971:
138
- self._add_holiday_last_mon_of_aug("Late Summer Bank Holiday")
143
+ # Late Summer Bank Holiday.
144
+ self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
139
145
 
140
146
  def _populate_subdiv_sct_public_holidays(self):
141
- # New Year's Day
142
- jan_1 = self._add_new_years_day("New Year's Day")
147
+ # New Year's Day.
148
+ jan_1 = self._add_new_years_day(tr("New Year's Day"))
143
149
 
144
- # New Year Holiday
145
150
  self._add_observed(
146
- self._add_new_years_day_two("New Year Holiday"),
151
+ # New Year Holiday.
152
+ self._add_new_years_day_two(tr("New Year Holiday")),
147
153
  rule=SAT_SUN_TO_NEXT_MON_TUE + MON_TO_NEXT_TUE,
148
154
  )
149
155
  self._add_observed(jan_1)
150
156
 
151
- # Summer bank holiday (first Monday in August)
152
- self._add_holiday_1st_mon_of_aug("Summer Bank Holiday")
157
+ # Summer Bank Holiday.
158
+ self._add_holiday_1st_mon_of_aug(tr("Summer Bank Holiday"))
153
159
 
154
160
  if self._year >= 2006:
155
- # Saint Andrew's Day
156
- self._add_observed(self._add_holiday_nov_30("Saint Andrew's Day"))
161
+ # Saint Andrew's Day.
162
+ self._add_observed(self._add_holiday_nov_30(tr("Saint Andrew's Day")))
157
163
 
158
- # Christmas Day
159
164
  self._add_observed(
160
- self._add_christmas_day("Christmas Day"),
165
+ # Christmas Day.
166
+ self._add_christmas_day(tr("Christmas Day")),
161
167
  rule=SAT_SUN_TO_NEXT_MON_TUE if self._year >= 1974 else SAT_SUN_TO_NEXT_MON,
162
168
  )
163
169
 
164
170
  if self._year >= 1974:
165
- # Boxing Day
166
171
  self._add_observed(
167
- self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE
172
+ # Boxing Day.
173
+ self._add_christmas_day_two(tr("Boxing Day")),
174
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
168
175
  )
169
176
 
170
177
  def _populate_subdiv_wls_public_holidays(self):
171
- # Easter Monday
172
- self._add_easter_monday("Easter Monday")
178
+ # Easter Monday.
179
+ self._add_easter_monday(tr("Easter Monday"))
173
180
 
174
- # Whit Monday.
175
181
  if self._year <= 1970:
176
- self._add_whit_monday("Whit Monday")
182
+ # Whit Monday.
183
+ self._add_whit_monday(tr("Whit Monday"))
177
184
 
178
- # Late Summer bank holiday (last Monday in August)
179
185
  if self._year >= 1971:
180
- self._add_holiday_last_mon_of_aug("Late Summer Bank Holiday")
186
+ # Late Summer Bank Holiday.
187
+ self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
181
188
 
182
189
 
183
190
  class UK(UnitedKingdom):
@@ -194,15 +201,24 @@ class GBR(UnitedKingdom):
194
201
 
195
202
  class UnitedKingdomStaticHolidays:
196
203
  special_public_holidays = {
197
- 1977: (JUN, 7, "Silver Jubilee of Elizabeth II"),
198
- 1981: (JUL, 29, "Wedding of Charles and Diana"),
199
- 1999: (DEC, 31, "Millennium Celebrations"),
200
- 2002: (JUN, 3, "Golden Jubilee of Elizabeth II"),
201
- 2011: (APR, 29, "Wedding of William and Catherine"),
202
- 2012: (JUN, 5, "Diamond Jubilee of Elizabeth II"),
204
+ # Silver Jubilee of Elizabeth II.
205
+ 1977: (JUN, 7, tr("Silver Jubilee of Elizabeth II")),
206
+ # Wedding of Charles and Diana.
207
+ 1981: (JUL, 29, tr("Wedding of Charles and Diana")),
208
+ # Millennium Celebrations.
209
+ 1999: (DEC, 31, tr("Millennium Celebrations")),
210
+ # Golden Jubilee of Elizabeth II.
211
+ 2002: (JUN, 3, tr("Golden Jubilee of Elizabeth II")),
212
+ # Wedding of William and Catherine.
213
+ 2011: (APR, 29, tr("Wedding of William and Catherine")),
214
+ # Diamond Jubilee of Elizabeth II.
215
+ 2012: (JUN, 5, tr("Diamond Jubilee of Elizabeth II")),
203
216
  2022: (
204
- (JUN, 3, "Platinum Jubilee of Elizabeth II"),
205
- (SEP, 19, "State Funeral of Queen Elizabeth II"),
217
+ # Platinum Jubilee of Elizabeth II.
218
+ (JUN, 3, tr("Platinum Jubilee of Elizabeth II")),
219
+ # State Funeral of Queen Elizabeth II.
220
+ (SEP, 19, tr("State Funeral of Queen Elizabeth II")),
206
221
  ),
207
- 2023: (MAY, 8, "Coronation of Charles III"),
222
+ # Coronation of Charles III.
223
+ 2023: (MAY, 8, tr("Coronation of Charles III")),
208
224
  }