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
@@ -12,7 +12,22 @@
12
12
 
13
13
  from gettext import gettext as tr
14
14
 
15
- from holidays.calendars.gregorian import FRI
15
+ from holidays.calendars import _CustomIslamicHolidays
16
+ from holidays.calendars.gregorian import (
17
+ JAN,
18
+ FEB,
19
+ MAR,
20
+ APR,
21
+ MAY,
22
+ JUN,
23
+ JUL,
24
+ AUG,
25
+ SEP,
26
+ OCT,
27
+ NOV,
28
+ DEC,
29
+ FRI,
30
+ )
16
31
  from holidays.groups import IslamicHolidays, PersianCalendarHolidays
17
32
  from holidays.holiday_base import HolidayBase
18
33
 
@@ -20,28 +35,43 @@ from holidays.holiday_base import HolidayBase
20
35
  class Iran(HolidayBase, IslamicHolidays, PersianCalendarHolidays):
21
36
  """
22
37
  References:
23
- - https://en.wikipedia.org/wiki/Public_holidays_in_Iran
24
- - https://fa.wikipedia.org/wiki/تعطیلات_عمومی_در_ایران
25
- - https://en.wikipedia.org/wiki/Workweek_and_weekend
38
+ - https://en.wikipedia.org/wiki/Public_holidays_in_Iran
39
+ - https://fa.wikipedia.org/wiki/تعطیلات_عمومی_در_ایران
40
+ - https://www.time.ir
41
+ - https://web.archive.org/web/20170222200759/http://www.hvm.ir/LawDetailNews.aspx?id=9017
42
+ - https://en.wikipedia.org/wiki/Workweek_and_weekend
26
43
  """
27
44
 
28
45
  country = "IR"
29
- default_language = "fa"
46
+ default_language = "fa_IR"
30
47
  # %s (estimated).
31
48
  estimated_label = tr("(تخمین زده) %s")
32
- supported_languages = ("en_US", "fa")
49
+ supported_languages = ("en_US", "fa_IR")
33
50
  start_year = 1980
34
51
  weekend = {FRI}
35
52
 
36
53
  def __init__(self, *args, **kwargs):
37
- IslamicHolidays.__init__(self)
54
+ IslamicHolidays.__init__(self, IranIslamicHolidays)
38
55
  PersianCalendarHolidays.__init__(self)
39
56
  super().__init__(*args, **kwargs)
40
57
 
41
58
  def _populate_public_holidays(self):
42
- # Persian New Year.
43
- name = tr("نوروز")
44
- self._add_nowruz_day(name)
59
+ # Persian calendar holidays.
60
+
61
+ # Islamic Revolution Day.
62
+ self._add_islamic_revolution_day(tr("پیروزی انقلاب اسلامی"))
63
+
64
+ # Iranian Oil Industry Nationalization Day.
65
+ self._add_oil_nationalization_day(tr("روز ملی شدن صنعت نفت ایران"))
66
+
67
+ # Last Day of Year.
68
+ self._add_last_day_of_year(tr("آخرین روز سال"))
69
+
70
+ # Nowruz.
71
+ self._add_nowruz_day(tr("جشن نوروز"))
72
+
73
+ # Nowruz Holiday.
74
+ name = tr("عیدنوروز")
45
75
  self._add_nowruz_day_two(name)
46
76
  self._add_nowruz_day_three(name)
47
77
  self._add_nowruz_day_four(name)
@@ -52,67 +82,66 @@ class Iran(HolidayBase, IslamicHolidays, PersianCalendarHolidays):
52
82
  # Nature's Day.
53
83
  self._add_natures_day(tr("روز طبیعت"))
54
84
 
55
- # Death of Khomeini.
56
- self._add_death_of_khomeini_day(tr("درگذشت سید روح‌الله خمینی"))
85
+ # Death of Imam Khomeini.
86
+ self._add_death_of_khomeini_day(tr("رحلت حضرت امام خمینی"))
57
87
 
58
- # Khordad National Uprising.
59
- self._add_khordad_uprising_day(tr("تظاهرات ۱۵ خرداد"))
88
+ # 15 Khordad Uprising.
89
+ self._add_khordad_uprising_day(tr("قیام 15 خرداد"))
60
90
 
61
- # Islamic Revolution Day.
62
- self._add_islamic_revolution_day(tr("پیروزی انقلاب ۵۷"))
63
-
64
- # Iranian Oil Industry Nationalization Day.
65
- self._add_oil_nationalization_day(tr("ملی‌شدن صنعت نفت"))
91
+ # Islamic holidays.
66
92
 
67
93
  # Tasua.
68
- self._add_tasua_day(tr("تاسوعا"))
94
+ self._add_tasua_day(tr("تاسوعای حسینی"))
69
95
 
70
96
  # Ashura.
71
- self._add_ashura_day(tr("کشته‌شدن حسین بن علی، عاشورا"))
97
+ self._add_ashura_day(tr("عاشورای حسینی"))
72
98
 
73
99
  # Arbaeen.
74
- self._add_arbaeen_day(tr("چهلم حسین بن علی اربعین"))
100
+ self._add_arbaeen_day(tr("اربعین حسینی"))
75
101
 
76
- # Demise of Prophet Muhammad and Hasan ibn Ali.
77
- self._add_prophet_death_day(tr("کشته‌شدن حسن مجتبی و درگذشت محمد"))
102
+ # Death of Prophet Muhammad and Martyrdom of Hasan ibn Ali.
103
+ self._add_prophet_death_day(tr("رحلت رسول اکرم؛شهادت امام حسن مجتبی علیه السلام"))
78
104
 
79
105
  # Martyrdom of Ali al-Rida.
80
- self._add_ali_al_rida_death_day(tr("کشته‌شدن علی بن موسی الرضا"))
106
+ self._add_ali_al_rida_death_day(tr("شهادت امام رضا علیه السلام"))
81
107
 
82
108
  # Martyrdom of Hasan al-Askari.
83
- self._add_hasan_al_askari_death_day(tr("کشته‌شدن حسن عسکری"))
109
+ self._add_hasan_al_askari_death_day(tr("شهادت امام حسن عسکری علیه السلام"))
84
110
 
85
- # Birthday of Muhammad and Ja'far al-Sadiq.
86
- self._add_sadiq_birthday_day(tr("زادروز محمد و جعفر صادق"))
111
+ # Birthday of Muhammad and Imam Ja'far al-Sadiq.
112
+ self._add_sadiq_birthday_day(tr("میلاد رسول اکرم و امام جعفر صادق علیه السلام"))
87
113
 
88
114
  # Martyrdom of Fatima.
89
- self._add_fatima_death_day(tr("کشته‌شدن فاطمه زهرا"))
115
+ self._add_fatima_death_day(tr("شهادت حضرت فاطمه زهرا سلام الله علیها"))
90
116
 
91
- # Birthday of Ali.
92
- self._add_ali_birthday_day(tr("زادروز علی بن ابی‌طالب"))
117
+ # Birthday of Imam Ali.
118
+ self._add_ali_birthday_day(tr("ولادت امام علی علیه السلام و روز پدر"))
93
119
 
94
120
  # Isra' and Mi'raj.
95
- self._add_isra_and_miraj_day(tr("مبعث"))
121
+ self._add_isra_and_miraj_day(tr("مبعث رسول اکرم (ص)"))
96
122
 
97
- # Birthday of Mahdi.
98
- self._add_imam_mahdi_birthday_day(tr("زادروز حجت بن الحسن"))
123
+ self._add_imam_mahdi_birthday_day(
124
+ # Birthday of Mahdi.
125
+ tr("ولادت حضرت قائم عجل الله تعالی فرجه و جشن نیمه شعبان")
126
+ )
99
127
 
100
- # Martyrdom of Ali.
101
- self._add_ali_death_day(tr("کشته‌شدن علی بن ابی‌طالب"))
128
+ # Martyrdom of Imam Ali.
129
+ self._add_ali_death_day(tr("شهادت حضرت علی علیه السلام"))
102
130
 
103
131
  # Eid al-Fitr.
104
- name = tr("عید فطر")
105
- self._add_eid_al_fitr_day(name)
106
- self._add_eid_al_fitr_day_two(name)
132
+ self._add_eid_al_fitr_day(tr("عید سعید فطر"))
107
133
 
108
- # Martyrdom of Ja'far al-Sadiq.
109
- self._add_sadiq_death_day(tr("کشته‌شدن جعفر صادق"))
134
+ # Eid al-Fitr Holiday.
135
+ self._add_eid_al_fitr_day_two(tr("تعطیل به مناسبت عید سعید فطر"))
136
+
137
+ # Martyrdom of Imam Ja'far al-Sadiq.
138
+ self._add_sadiq_death_day(tr("شهادت امام جعفر صادق علیه السلام"))
110
139
 
111
140
  # Eid al-Adha.
112
- self._add_eid_al_adha_day(tr("عید قربان"))
141
+ self._add_eid_al_adha_day(tr("عید سعید قربان"))
113
142
 
114
143
  # Eid al-Ghadeer.
115
- self._add_eid_al_ghadir_day(tr("عید غدیر"))
144
+ self._add_eid_al_ghadir_day(tr("عید سعید غدیر خم"))
116
145
 
117
146
 
118
147
  class IR(Iran):
@@ -121,3 +150,453 @@ class IR(Iran):
121
150
 
122
151
  class IRN(Iran):
123
152
  pass
153
+
154
+
155
+ class IranIslamicHolidays(_CustomIslamicHolidays):
156
+ ALI_AL_RIDA_DEATH_DATES = {
157
+ 2001: (MAY, 24),
158
+ 2002: (MAY, 13),
159
+ 2003: (MAY, 2),
160
+ 2004: (APR, 20),
161
+ 2005: (APR, 9),
162
+ 2006: (MAR, 30),
163
+ 2007: (MAR, 20),
164
+ 2008: (MAR, 8),
165
+ 2009: (FEB, 26),
166
+ 2010: (FEB, 15),
167
+ 2011: (FEB, 4),
168
+ 2012: (JAN, 24),
169
+ 2013: (JAN, 12),
170
+ 2014: ((JAN, 2), (DEC, 23)),
171
+ 2015: (DEC, 12),
172
+ 2016: (NOV, 30),
173
+ 2017: (NOV, 19),
174
+ 2018: (NOV, 8),
175
+ 2019: (OCT, 29),
176
+ 2020: (OCT, 17),
177
+ 2021: (OCT, 7),
178
+ 2022: (SEP, 27),
179
+ 2023: (SEP, 16),
180
+ 2024: (SEP, 4),
181
+ 2025: (AUG, 24),
182
+ }
183
+
184
+ ALI_BIRTHDAY_DATES = {
185
+ 2001: (OCT, 1),
186
+ 2002: (SEP, 21),
187
+ 2003: (SEP, 10),
188
+ 2004: (AUG, 30),
189
+ 2005: (AUG, 19),
190
+ 2006: (AUG, 8),
191
+ 2007: (JUL, 28),
192
+ 2008: (JUL, 16),
193
+ 2009: (JUL, 6),
194
+ 2010: (JUN, 26),
195
+ 2011: (JUN, 16),
196
+ 2012: (JUN, 4),
197
+ 2013: (MAY, 24),
198
+ 2014: (MAY, 13),
199
+ 2015: (MAY, 2),
200
+ 2016: (APR, 21),
201
+ 2017: (APR, 11),
202
+ 2018: (MAR, 31),
203
+ 2019: (MAR, 20),
204
+ 2020: (MAR, 8),
205
+ 2021: (FEB, 25),
206
+ 2022: (FEB, 15),
207
+ 2023: (FEB, 4),
208
+ 2024: (JAN, 25),
209
+ 2025: (JAN, 14),
210
+ }
211
+
212
+ ALI_DEATH_DATES = {
213
+ 2001: (DEC, 7),
214
+ 2002: (NOV, 27),
215
+ 2003: (NOV, 16),
216
+ 2004: (NOV, 5),
217
+ 2005: (OCT, 25),
218
+ 2006: (OCT, 15),
219
+ 2007: (OCT, 3),
220
+ 2008: (SEP, 22),
221
+ 2009: (SEP, 11),
222
+ 2010: (SEP, 1),
223
+ 2011: (AUG, 21),
224
+ 2012: (AUG, 10),
225
+ 2013: (JUL, 30),
226
+ 2014: (JUL, 19),
227
+ 2015: (JUL, 8),
228
+ 2016: (JUN, 27),
229
+ 2017: (JUN, 16),
230
+ 2018: (JUN, 6),
231
+ 2019: (MAY, 27),
232
+ 2020: (MAY, 15),
233
+ 2021: (MAY, 4),
234
+ 2022: (APR, 23),
235
+ 2023: (APR, 12),
236
+ 2024: (APR, 1),
237
+ 2025: (MAR, 22),
238
+ }
239
+
240
+ ARBAEEN_DATES = {
241
+ 2001: (MAY, 14),
242
+ 2002: (MAY, 3),
243
+ 2003: (APR, 23),
244
+ 2004: (APR, 11),
245
+ 2005: (MAR, 31),
246
+ 2006: (MAR, 21),
247
+ 2007: (MAR, 10),
248
+ 2008: (FEB, 28),
249
+ 2009: (FEB, 16),
250
+ 2010: (FEB, 5),
251
+ 2011: (JAN, 25),
252
+ 2012: (JAN, 14),
253
+ 2013: ((JAN, 3), (DEC, 23)),
254
+ 2014: (DEC, 13),
255
+ 2015: (DEC, 2),
256
+ 2016: (NOV, 20),
257
+ 2017: (NOV, 9),
258
+ 2018: (OCT, 30),
259
+ 2019: (OCT, 19),
260
+ 2020: (OCT, 8),
261
+ 2021: (SEP, 27),
262
+ 2022: (SEP, 17),
263
+ 2023: (SEP, 6),
264
+ 2024: (AUG, 25),
265
+ 2025: (AUG, 14),
266
+ }
267
+
268
+ ASHURA_DATES = {
269
+ 2001: (APR, 5),
270
+ 2002: (MAR, 25),
271
+ 2003: (MAR, 14),
272
+ 2004: (MAR, 2),
273
+ 2005: (FEB, 20),
274
+ 2006: (FEB, 9),
275
+ 2007: (JAN, 30),
276
+ 2008: (JAN, 19),
277
+ 2009: ((JAN, 7), (DEC, 27)),
278
+ 2010: (DEC, 16),
279
+ 2011: (DEC, 6),
280
+ 2012: (NOV, 25),
281
+ 2013: (NOV, 14),
282
+ 2014: (NOV, 4),
283
+ 2015: (OCT, 24),
284
+ 2016: (OCT, 12),
285
+ 2017: (OCT, 1),
286
+ 2018: (SEP, 20),
287
+ 2019: (SEP, 10),
288
+ 2020: (AUG, 30),
289
+ 2021: (AUG, 19),
290
+ 2022: (AUG, 8),
291
+ 2023: (JUL, 28),
292
+ 2024: (JUL, 16),
293
+ 2025: (JUL, 6),
294
+ }
295
+
296
+ EID_AL_ADHA_DATES = {
297
+ 2001: (MAR, 6),
298
+ 2002: (FEB, 23),
299
+ 2003: (FEB, 12),
300
+ 2004: (FEB, 2),
301
+ 2005: (JAN, 21),
302
+ 2006: ((JAN, 11), (DEC, 31)),
303
+ 2007: (DEC, 21),
304
+ 2008: (DEC, 9),
305
+ 2009: (NOV, 28),
306
+ 2010: (NOV, 17),
307
+ 2011: (NOV, 7),
308
+ 2012: (OCT, 26),
309
+ 2013: (OCT, 16),
310
+ 2014: (OCT, 5),
311
+ 2015: (SEP, 24),
312
+ 2016: (SEP, 12),
313
+ 2017: (SEP, 1),
314
+ 2018: (AUG, 22),
315
+ 2019: (AUG, 12),
316
+ 2020: (JUL, 31),
317
+ 2021: (JUL, 21),
318
+ 2022: (JUL, 10),
319
+ 2023: (JUN, 29),
320
+ 2024: (JUN, 17),
321
+ 2025: (JUN, 6),
322
+ }
323
+
324
+ EID_AL_FITR_DATES = {
325
+ 2001: (DEC, 16),
326
+ 2002: (DEC, 6),
327
+ 2003: (NOV, 26),
328
+ 2004: (NOV, 14),
329
+ 2005: (NOV, 4),
330
+ 2006: (OCT, 24),
331
+ 2007: (OCT, 13),
332
+ 2008: (OCT, 1),
333
+ 2009: (SEP, 20),
334
+ 2010: (SEP, 10),
335
+ 2011: (AUG, 31),
336
+ 2012: (AUG, 19),
337
+ 2013: (AUG, 9),
338
+ 2014: (JUL, 29),
339
+ 2015: (JUL, 18),
340
+ 2016: (JUL, 6),
341
+ 2017: (JUN, 26),
342
+ 2018: (JUN, 15),
343
+ 2019: (JUN, 5),
344
+ 2020: (MAY, 24),
345
+ 2021: (MAY, 13),
346
+ 2022: (MAY, 3),
347
+ 2023: (APR, 22),
348
+ 2024: (APR, 10),
349
+ 2025: (MAR, 31),
350
+ }
351
+
352
+ EID_AL_GHADIR_DATES = {
353
+ 2001: (MAR, 14),
354
+ 2002: (MAR, 3),
355
+ 2003: (FEB, 20),
356
+ 2004: (FEB, 10),
357
+ 2005: (JAN, 29),
358
+ 2006: (JAN, 19),
359
+ 2007: ((JAN, 8), (DEC, 29)),
360
+ 2008: (DEC, 17),
361
+ 2009: (DEC, 6),
362
+ 2010: (NOV, 25),
363
+ 2011: (NOV, 15),
364
+ 2012: (NOV, 3),
365
+ 2013: (OCT, 24),
366
+ 2014: (OCT, 13),
367
+ 2015: (OCT, 2),
368
+ 2016: (SEP, 20),
369
+ 2017: (SEP, 9),
370
+ 2018: (AUG, 30),
371
+ 2019: (AUG, 20),
372
+ 2020: (AUG, 8),
373
+ 2021: (JUL, 29),
374
+ 2022: (JUL, 18),
375
+ 2023: (JUL, 7),
376
+ 2024: (JUN, 25),
377
+ 2025: (JUN, 14),
378
+ }
379
+
380
+ FATIMA_DEATH_DATES = {
381
+ 2001: (AUG, 23),
382
+ 2002: (AUG, 12),
383
+ 2003: (AUG, 2),
384
+ 2004: (JUL, 21),
385
+ 2005: (JUL, 10),
386
+ 2006: (JUN, 29),
387
+ 2007: (JUN, 18),
388
+ 2008: (JUN, 7),
389
+ 2009: (MAY, 28),
390
+ 2010: (MAY, 17),
391
+ 2011: (MAY, 7),
392
+ 2012: (APR, 25),
393
+ 2013: (APR, 14),
394
+ 2014: (APR, 3),
395
+ 2015: (MAR, 24),
396
+ 2016: (MAR, 13),
397
+ 2017: (MAR, 2),
398
+ 2018: (FEB, 20),
399
+ 2019: (FEB, 9),
400
+ 2020: (JAN, 29),
401
+ 2021: (JAN, 17),
402
+ 2022: ((JAN, 6), (DEC, 27)),
403
+ 2023: (DEC, 17),
404
+ 2024: (DEC, 5),
405
+ 2025: (NOV, 24),
406
+ }
407
+
408
+ HASAN_AL_ASKARI_DEATH_DATES = {
409
+ 2001: (JUN, 1),
410
+ 2002: (MAY, 21),
411
+ 2003: (MAY, 10),
412
+ 2004: (APR, 28),
413
+ 2005: (APR, 17),
414
+ 2006: (APR, 7),
415
+ 2007: (MAR, 28),
416
+ 2008: (MAR, 16),
417
+ 2009: (MAR, 6),
418
+ 2010: (FEB, 23),
419
+ 2011: (FEB, 12),
420
+ 2012: (FEB, 1),
421
+ 2013: (JAN, 20),
422
+ 2014: ((JAN, 10), (DEC, 31)),
423
+ 2015: (DEC, 20),
424
+ 2016: (DEC, 8),
425
+ 2017: (NOV, 27),
426
+ 2018: (NOV, 16),
427
+ 2019: (NOV, 6),
428
+ 2020: (OCT, 25),
429
+ 2021: (OCT, 15),
430
+ 2022: (OCT, 5),
431
+ 2023: (SEP, 24),
432
+ 2024: (SEP, 12),
433
+ 2025: (SEP, 1),
434
+ }
435
+
436
+ IMAM_MAHDI_BIRTHDAY_DATES = {
437
+ 2001: (NOV, 1),
438
+ 2002: (OCT, 22),
439
+ 2003: (OCT, 12),
440
+ 2004: (OCT, 1),
441
+ 2005: (SEP, 20),
442
+ 2006: (SEP, 9),
443
+ 2007: (AUG, 29),
444
+ 2008: (AUG, 17),
445
+ 2009: (AUG, 7),
446
+ 2010: (JUL, 27),
447
+ 2011: (JUL, 17),
448
+ 2012: (JUL, 5),
449
+ 2013: (JUN, 24),
450
+ 2014: (JUN, 13),
451
+ 2015: (JUN, 3),
452
+ 2016: (MAY, 22),
453
+ 2017: (MAY, 12),
454
+ 2018: (MAY, 2),
455
+ 2019: (APR, 21),
456
+ 2020: (APR, 9),
457
+ 2021: (MAR, 29),
458
+ 2022: (MAR, 18),
459
+ 2023: (MAR, 8),
460
+ 2024: (FEB, 25),
461
+ 2025: (FEB, 14),
462
+ }
463
+
464
+ ISRA_AND_MIRAJ_DATES = {
465
+ 2001: (OCT, 15),
466
+ 2002: (OCT, 5),
467
+ 2003: (SEP, 24),
468
+ 2004: (SEP, 13),
469
+ 2005: (SEP, 2),
470
+ 2006: (AUG, 22),
471
+ 2007: (AUG, 11),
472
+ 2008: (JUL, 30),
473
+ 2009: (JUL, 20),
474
+ 2010: (JUL, 10),
475
+ 2011: (JUN, 30),
476
+ 2012: (JUN, 18),
477
+ 2013: (JUN, 7),
478
+ 2014: (MAY, 27),
479
+ 2015: (MAY, 16),
480
+ 2016: (MAY, 5),
481
+ 2017: (APR, 25),
482
+ 2018: (APR, 14),
483
+ 2019: (APR, 3),
484
+ 2020: (MAR, 22),
485
+ 2021: (MAR, 11),
486
+ 2022: (MAR, 1),
487
+ 2023: (FEB, 18),
488
+ 2024: (FEB, 8),
489
+ 2025: (JAN, 28),
490
+ }
491
+
492
+ PROPHET_DEATH_DATES = {
493
+ 2001: (MAY, 22),
494
+ 2002: (MAY, 11),
495
+ 2003: (MAY, 1),
496
+ 2004: (APR, 19),
497
+ 2005: (APR, 8),
498
+ 2006: (MAR, 29),
499
+ 2007: (MAR, 18),
500
+ 2008: (MAR, 7),
501
+ 2009: (FEB, 24),
502
+ 2010: (FEB, 13),
503
+ 2011: (FEB, 2),
504
+ 2012: (JAN, 22),
505
+ 2013: ((JAN, 11), (DEC, 31)),
506
+ 2014: (DEC, 21),
507
+ 2015: (DEC, 10),
508
+ 2016: (NOV, 28),
509
+ 2017: (NOV, 17),
510
+ 2018: (NOV, 7),
511
+ 2019: (OCT, 27),
512
+ 2020: (OCT, 16),
513
+ 2021: (OCT, 5),
514
+ 2022: (SEP, 25),
515
+ 2023: (SEP, 14),
516
+ 2024: (SEP, 2),
517
+ 2025: (AUG, 22),
518
+ }
519
+
520
+ SADIQ_BIRTHDAY_DATES = {
521
+ 2001: (JUN, 10),
522
+ 2002: (MAY, 30),
523
+ 2003: (MAY, 19),
524
+ 2004: (MAY, 7),
525
+ 2005: (APR, 26),
526
+ 2006: (APR, 16),
527
+ 2007: (APR, 6),
528
+ 2008: (MAR, 25),
529
+ 2009: (MAR, 15),
530
+ 2010: (MAR, 4),
531
+ 2011: (FEB, 21),
532
+ 2012: (FEB, 10),
533
+ 2013: (JAN, 29),
534
+ 2014: (JAN, 19),
535
+ 2015: ((JAN, 9), (DEC, 29)),
536
+ 2016: (DEC, 17),
537
+ 2017: (DEC, 6),
538
+ 2018: (NOV, 25),
539
+ 2019: (NOV, 15),
540
+ 2020: (NOV, 3),
541
+ 2021: (OCT, 24),
542
+ 2022: (OCT, 14),
543
+ 2023: (OCT, 3),
544
+ 2024: (SEP, 21),
545
+ 2025: (SEP, 10),
546
+ }
547
+
548
+ SADIQ_DEATH_DATES = {
549
+ 2001: (JAN, 20),
550
+ 2002: ((JAN, 9), (DEC, 30)),
551
+ 2003: (DEC, 20),
552
+ 2004: (DEC, 8),
553
+ 2005: (NOV, 28),
554
+ 2006: (NOV, 17),
555
+ 2007: (NOV, 6),
556
+ 2008: (OCT, 25),
557
+ 2009: (OCT, 14),
558
+ 2010: (OCT, 4),
559
+ 2011: (SEP, 24),
560
+ 2012: (SEP, 12),
561
+ 2013: (SEP, 2),
562
+ 2014: (AUG, 22),
563
+ 2015: (AUG, 11),
564
+ 2016: (JUL, 30),
565
+ 2017: (JUL, 20),
566
+ 2018: (JUL, 9),
567
+ 2019: (JUN, 29),
568
+ 2020: (JUN, 17),
569
+ 2021: (JUN, 6),
570
+ 2022: (MAY, 27),
571
+ 2023: (MAY, 16),
572
+ 2024: (MAY, 4),
573
+ 2025: (APR, 24),
574
+ }
575
+
576
+ TASUA_DATES = {
577
+ 2001: (APR, 4),
578
+ 2002: (MAR, 24),
579
+ 2003: (MAR, 13),
580
+ 2004: (MAR, 1),
581
+ 2005: (FEB, 19),
582
+ 2006: (FEB, 8),
583
+ 2007: (JAN, 29),
584
+ 2008: (JAN, 18),
585
+ 2009: ((JAN, 6), (DEC, 26)),
586
+ 2010: (DEC, 15),
587
+ 2011: (DEC, 5),
588
+ 2012: (NOV, 24),
589
+ 2013: (NOV, 13),
590
+ 2014: (NOV, 3),
591
+ 2015: (OCT, 23),
592
+ 2016: (OCT, 11),
593
+ 2017: (SEP, 30),
594
+ 2018: (SEP, 19),
595
+ 2019: (SEP, 9),
596
+ 2020: (AUG, 29),
597
+ 2021: (AUG, 18),
598
+ 2022: (AUG, 7),
599
+ 2023: (JUL, 27),
600
+ 2024: (JUL, 15),
601
+ 2025: (JUL, 5),
602
+ }
@@ -10,6 +10,8 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from gettext import gettext as tr
14
+
13
15
  from holidays.countries.united_kingdom import UnitedKingdom, UnitedKingdomStaticHolidays
14
16
  from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
15
17
  from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_MON
@@ -19,6 +21,7 @@ class IsleOfMan(UnitedKingdom):
19
21
  """Using existing code in UnitedKingdom for now."""
20
22
 
21
23
  country = "IM"
24
+ parent_entity = UnitedKingdom
22
25
  subdivisions = () # Override UnitedKingdom subdivisions.
23
26
  subdivisions_aliases = {} # Override UnitedKingdom subdivisions aliases.
24
27
 
@@ -31,25 +34,26 @@ class IsleOfMan(UnitedKingdom):
31
34
 
32
35
  def _populate_public_holidays(self) -> None:
33
36
  super()._populate_public_holidays()
34
- # Easter Monday
35
- self._add_easter_monday("Easter Monday")
37
+ # Easter Monday.
38
+ self._add_easter_monday(tr("Easter Monday"))
36
39
 
37
- # Whit Monday.
38
40
  if self._year <= 1970:
39
- self._add_whit_monday("Whit Monday")
41
+ # Whit Monday.
42
+ self._add_whit_monday(tr("Whit Monday"))
40
43
 
41
- # Late Summer bank holiday (last Monday in August)
42
44
  if self._year >= 1971:
43
- self._add_holiday_last_mon_of_aug("Late Summer Bank Holiday")
45
+ # Late Summer Bank Holiday.
46
+ self._add_holiday_last_mon_of_aug(tr("Late Summer Bank Holiday"))
44
47
 
45
48
  # Isle of Man exclusive holidays
46
- # TT bank holiday (first Friday in June)
47
- self._add_holiday_1st_fri_of_jun("TT Bank Holiday")
48
49
 
49
- # Tynwald Day
50
- # Move to the next Monday if falls on a weekend.
51
- jul_5 = self._add_holiday_jul_5("Tynwald Day")
50
+ # TT Bank Holiday.
51
+ self._add_holiday_1st_fri_of_jun(tr("TT Bank Holiday"))
52
+
53
+ # Tynwald Day.
54
+ jul_5 = self._add_holiday_jul_5(tr("Tynwald Day"))
52
55
  if self._year >= 1992:
56
+ # Move to the next Monday if falls on a weekend.
53
57
  self._move_holiday(jul_5, show_observed_label=False)
54
58
 
55
59
 
@@ -41,7 +41,7 @@ class Israel(ObservedHolidayBase, HebrewCalendarHolidays):
41
41
  # %s (observed).
42
42
  observed_label = tr("(נצפה) %s")
43
43
  supported_categories = (OPTIONAL, PUBLIC, SCHOOL)
44
- supported_languages = ("en_US", "he", "uk")
44
+ supported_languages = ("en_US", "he", "th", "uk")
45
45
  weekend = {FRI, SAT}
46
46
  start_year = 1948
47
47
 
@@ -117,7 +117,7 @@ class Kazakhstan(
117
117
  dts_observed.add(self._add_womens_day(tr("Халықаралық әйелдер күні")))
118
118
 
119
119
  if self._year >= 2002:
120
- # Nowruz holiday.
120
+ # Nowruz Holiday.
121
121
  name = tr("Наурыз мейрамы")
122
122
  dts_observed.add(self._add_holiday_mar_22(name))
123
123
  if self._year >= 2010: