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,192 @@
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 collections.abc import Iterable
14
+ from datetime import date
15
+ from typing import Optional
16
+
17
+ from holidays.calendars import _SinhalaLunar
18
+ from holidays.groups.eastern import EasternCalendarHolidays
19
+
20
+
21
+ class SinhalaCalendarHolidays(EasternCalendarHolidays):
22
+ """
23
+ Sinhala holidays.
24
+
25
+ Sinhala Buddhist Uposatha day calculation method is different from Thai LuniSolar
26
+ and Buddhist (Mahayana) used in East Asia.
27
+
28
+ Due to the fact that Poya (Uposatha) days are calculated astronomically
29
+ based on how close a particular day is closest to full moon at noon, and that
30
+ an extra month is added every 33 months interval, this is hardcoded for now.
31
+
32
+ Adhi month dates are instead hardcoded in Sri Lanka country implementation.
33
+ """
34
+
35
+ def __init__(self, cls=None, show_estimated=False) -> None:
36
+ self._sinhala_calendar = cls() if cls else _SinhalaLunar()
37
+ self._sinhala_calendar_show_estimated = show_estimated
38
+
39
+ def _add_sinhala_calendar_holiday(
40
+ self, name: str, dt_estimated: tuple[Optional[date], bool]
41
+ ) -> Optional[date]:
42
+ """
43
+ Add Sinhala calendar holiday.
44
+
45
+ Adds customizable estimation label to holiday name if holiday date
46
+ is an estimation.
47
+ """
48
+ return self._add_eastern_calendar_holiday(
49
+ name, dt_estimated, self._sinhala_calendar_show_estimated
50
+ )
51
+
52
+ def _add_sinhala_calendar_holiday_set(
53
+ self, name: str, dts_estimated: Iterable[tuple[date, bool]], days_delta: int = 0
54
+ ) -> set[date]:
55
+ """
56
+ Add Sinhala calendar holidays.
57
+
58
+ Adds customizable estimation label to holiday name if holiday date
59
+ is an estimation.
60
+ """
61
+ added_dates = set()
62
+ for dt_estimated in dts_estimated:
63
+ if dt := self._add_eastern_calendar_holiday(
64
+ name, dt_estimated, self._sinhala_calendar_show_estimated, days_delta=days_delta
65
+ ):
66
+ added_dates.add(dt)
67
+
68
+ return added_dates
69
+
70
+ def _add_bak_poya(self, name) -> Optional[date]:
71
+ """
72
+ Add Bak Poya (first full moon day of the 5th lunar month).
73
+
74
+ https://us.lakpura.com/pages/bak-poya
75
+ """
76
+ return self._add_sinhala_calendar_holiday(
77
+ name, self._sinhala_calendar.bak_poya_date(self._year)
78
+ )
79
+
80
+ def _add_binara_poya(self, name) -> Optional[date]:
81
+ """
82
+ Add Binara Poya (first full moon day of the 10th lunar month).
83
+
84
+ https://us.lakpura.com/pages/binara-poya
85
+ """
86
+ return self._add_sinhala_calendar_holiday(
87
+ name, self._sinhala_calendar.binara_poya_date(self._year)
88
+ )
89
+
90
+ def _add_duruthu_poya(self, name) -> set[date]:
91
+ """
92
+ Add Duruthu Poya (first full moon day of the 2nd lunar month).
93
+
94
+ https://us.lakpura.com/pages/duruthu-poya
95
+ """
96
+ return self._add_sinhala_calendar_holiday_set(
97
+ name, self._sinhala_calendar.duruthu_poya_date(self._year)
98
+ )
99
+
100
+ def _add_esala_poya(self, name) -> Optional[date]:
101
+ """
102
+ Add Esala Poya (first full moon day of the 8th lunar month).
103
+
104
+ https://us.lakpura.com/pages/esala-poya
105
+ """
106
+ return self._add_sinhala_calendar_holiday(
107
+ name, self._sinhala_calendar.esala_poya_date(self._year)
108
+ )
109
+
110
+ def _add_il_poya(self, name) -> Optional[date]:
111
+ """
112
+ Add Il Poya (first full moon day of the 12th lunar month).
113
+
114
+ Also known as "Ill Poya"
115
+ https://us.lakpura.com/pages/il-poya
116
+ """
117
+ return self._add_sinhala_calendar_holiday(
118
+ name, self._sinhala_calendar.il_poya_date(self._year)
119
+ )
120
+
121
+ def _add_medin_poya(self, name) -> Optional[date]:
122
+ """
123
+ Add Medin Poya (first full moon day of the 4th lunar month).
124
+
125
+ https://us.lakpura.com/pages/medin-poya
126
+ """
127
+ return self._add_sinhala_calendar_holiday(
128
+ name, self._sinhala_calendar.medin_poya_date(self._year)
129
+ )
130
+
131
+ def _add_nawam_poya(self, name) -> Optional[date]:
132
+ """
133
+ Add Nawam Poya (first full moon day of the 3rd lunar month).
134
+
135
+ Also known as "Navam Poya" and "Magha Puja".
136
+ https://us.lakpura.com/pages/navam-poya
137
+ """
138
+ return self._add_sinhala_calendar_holiday(
139
+ name, self._sinhala_calendar.nawam_poya_date(self._year)
140
+ )
141
+
142
+ def _add_nikini_poya(self, name) -> Optional[date]:
143
+ """
144
+ Add Nikini Poya (first full moon day of the 9th lunar month).
145
+
146
+ https://us.lakpura.com/pages/nikini-poya
147
+ """
148
+ return self._add_sinhala_calendar_holiday(
149
+ name, self._sinhala_calendar.nikini_poya_date(self._year)
150
+ )
151
+
152
+ def _add_poson_poya(self, name) -> Optional[date]:
153
+ """
154
+ Add Poson Poya (first full moon day of the 7th lunar month).
155
+
156
+ https://us.lakpura.com/pages/poson
157
+ """
158
+ return self._add_sinhala_calendar_holiday(
159
+ name, self._sinhala_calendar.poson_poya_date(self._year)
160
+ )
161
+
162
+ def _add_unduvap_poya(self, name) -> Optional[date]:
163
+ """
164
+ Add Unduvap Poya (first full moon day of the 1st lunar month).
165
+
166
+ Also known as "Undawap Poya".
167
+ https://us.lakpura.com/pages/unduvap-poya
168
+ """
169
+ return self._add_sinhala_calendar_holiday(
170
+ name, self._sinhala_calendar.unduvap_poya_date(self._year)
171
+ )
172
+
173
+ def _add_vap_poya(self, name) -> Optional[date]:
174
+ """
175
+ Add Vap Poya (first full moon day of the 11th lunar month).
176
+
177
+ https://us.lakpura.com/pages/vap-poya
178
+ """
179
+ return self._add_sinhala_calendar_holiday(
180
+ name, self._sinhala_calendar.vap_poya_date(self._year)
181
+ )
182
+
183
+ def _add_vesak_poya(self, name) -> Optional[date]:
184
+ """
185
+ Add Vesak Poya (first full moon day of the 6th lunar month).
186
+
187
+ Also known as "Wesak Poya".
188
+ https://us.lakpura.com/pages/vesak
189
+ """
190
+ return self._add_sinhala_calendar_holiday(
191
+ name, self._sinhala_calendar.vesak_poya_date(self._year)
192
+ )
holidays/holiday_base.py CHANGED
@@ -14,13 +14,14 @@ __all__ = ("DateLike", "HolidayBase", "HolidaySum")
14
14
 
15
15
  import copy
16
16
  import warnings
17
+ from bisect import bisect_left, bisect_right
17
18
  from calendar import isleap
18
19
  from collections.abc import Iterable
19
20
  from datetime import date, datetime, timedelta, timezone
20
21
  from functools import cached_property
21
22
  from gettext import gettext, translation
22
23
  from pathlib import Path
23
- from typing import Any, Dict, Optional, Union, cast
24
+ from typing import Any, Literal, Optional, Union, cast
24
25
 
25
26
  from dateutil.parser import parse
26
27
 
@@ -249,6 +250,8 @@ class HolidayBase(dict[date, str]):
249
250
  """Start year of holidays presence for this entity."""
250
251
  end_year: int = DEFAULT_END_YEAR
251
252
  """End year of holidays presence for this entity."""
253
+ parent_entity: Optional[type["HolidayBase"]] = None
254
+ """Optional parent entity to reference as a base."""
252
255
 
253
256
  def __init__(
254
257
  self,
@@ -364,16 +367,32 @@ class HolidayBase(dict[date, str]):
364
367
  self.weekend_workdays = getattr(self, "weekend_workdays", set())
365
368
 
366
369
  supported_languages = set(self.supported_languages)
367
- self.tr = (
368
- translation(
370
+ if self._entity_code is not None:
371
+ fallback = language not in supported_languages
372
+ languages = [language] if language in supported_languages else None
373
+ locale_directory = str(Path(__file__).with_name("locale"))
374
+
375
+ # Add entity native content translations.
376
+ entity_translation = translation(
369
377
  self._entity_code,
370
- fallback=language not in supported_languages,
371
- languages=[language] if language in supported_languages else None,
372
- localedir=str(Path(__file__).with_name("locale")),
373
- ).gettext
374
- if self._entity_code is not None
375
- else gettext
376
- )
378
+ fallback=fallback,
379
+ languages=languages,
380
+ localedir=locale_directory,
381
+ )
382
+ # Add a fallback if entity has parent translations.
383
+ if parent_entity := self.parent_entity:
384
+ entity_translation.add_fallback(
385
+ translation(
386
+ parent_entity.country or parent_entity.market,
387
+ fallback=fallback,
388
+ languages=languages,
389
+ localedir=locale_directory,
390
+ )
391
+ )
392
+ self.tr = entity_translation.gettext
393
+ else:
394
+ self.tr = gettext
395
+
377
396
  self.years = _normalize_arguments(int, years)
378
397
 
379
398
  # Populate holidays.
@@ -418,7 +437,7 @@ class HolidayBase(dict[date, str]):
418
437
  if not isinstance(key, (date, datetime, float, int, str)):
419
438
  raise TypeError(f"Cannot convert type '{type(key)}' to date.")
420
439
 
421
- return dict.__contains__(cast("Dict[Any, Any]", self), self.__keytransform__(key))
440
+ return dict.__contains__(cast("dict[Any, Any]", self), self.__keytransform__(key))
422
441
 
423
442
  def __eq__(self, other: object) -> bool:
424
443
  if not isinstance(other, HolidayBase):
@@ -428,7 +447,7 @@ class HolidayBase(dict[date, str]):
428
447
  if getattr(self, attribute_name, None) != getattr(other, attribute_name, None):
429
448
  return False
430
449
 
431
- return dict.__eq__(cast("Dict[Any, Any]", self), other)
450
+ return dict.__eq__(cast("dict[Any, Any]", self), other)
432
451
 
433
452
  def __getattr__(self, name):
434
453
  try:
@@ -967,6 +986,36 @@ class HolidayBase(dict[date, str]):
967
986
 
968
987
  raise AttributeError(f"Unknown lookup type: {lookup}")
969
988
 
989
+ def get_closest_holiday(
990
+ self,
991
+ target_date: DateLike = None,
992
+ direction: Literal["forward", "backward"] = "forward",
993
+ ) -> Optional[tuple[date, str]]:
994
+ """Return the date and name of the next holiday for a target_date
995
+ if direction is "forward" or the previous holiday if direction is "backward".
996
+ If target_date is not provided the current date will be used by default."""
997
+
998
+ if direction not in {"backward", "forward"}:
999
+ raise AttributeError(f"Unknown direction: {direction}")
1000
+
1001
+ dt = self.__keytransform__(target_date or datetime.now().date())
1002
+ if direction == "forward" and (next_year := dt.year + 1) not in self.years:
1003
+ self._populate(next_year)
1004
+ elif direction == "backward" and (previous_year := dt.year - 1) not in self.years:
1005
+ self._populate(previous_year)
1006
+
1007
+ sorted_dates = sorted(self.keys())
1008
+ position = (
1009
+ bisect_right(sorted_dates, dt)
1010
+ if direction == "forward"
1011
+ else bisect_left(sorted_dates, dt) - 1
1012
+ )
1013
+ if 0 <= position < len(sorted_dates):
1014
+ dt = sorted_dates[position]
1015
+ return dt, self[dt]
1016
+
1017
+ return None
1018
+
970
1019
  def get_nth_working_day(self, key: DateLike, n: int) -> date:
971
1020
  """Return n-th working day from provided date (if n is positive)
972
1021
  or n-th working day before provided date (if n is negative).
@@ -1201,4 +1250,4 @@ country_holidays('CA') + country_holidays('MX')
1201
1250
  def _populate(self, year):
1202
1251
  for operand in self.holidays:
1203
1252
  operand._populate(year)
1204
- self.update(cast("Dict[DateLike, str]", operand))
1253
+ self.update(cast("dict[DateLike, str]", operand))
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
holidays/registry.py CHANGED
@@ -142,6 +142,7 @@ COUNTRIES: RegistryDict = {
142
142
  "romania": ("Romania", "RO", "ROU"),
143
143
  "russia": ("Russia", "RU", "RUS"),
144
144
  "saint_kitts_and_nevis": ("SaintKittsAndNevis", "KN", "KNA"),
145
+ "saint_lucia": ("SaintLucia", "LC", "LCA"),
145
146
  "samoa": ("Samoa", "WS", "WSM"),
146
147
  "san_marino": ("SanMarino", "SM", "SMR"),
147
148
  "saudi_arabia": ("SaudiArabia", "SA", "SAU"),
@@ -153,6 +154,7 @@ COUNTRIES: RegistryDict = {
153
154
  "south_africa": ("SouthAfrica", "ZA", "ZAF"),
154
155
  "south_korea": ("SouthKorea", "KR", "KOR", "Korea"),
155
156
  "spain": ("Spain", "ES", "ESP"),
157
+ "sri_lanka": ("SriLanka", "LK", "LKA"),
156
158
  "sweden": ("Sweden", "SE", "SWE"),
157
159
  "switzerland": ("Switzerland", "CH", "CHE"),
158
160
  "taiwan": ("Taiwan", "TW", "TWN"),
@@ -162,6 +164,7 @@ COUNTRIES: RegistryDict = {
162
164
  "tonga": ("Tonga", "TO", "TON"),
163
165
  "tunisia": ("Tunisia", "TN", "TUN"),
164
166
  "turkey": ("Turkey", "TR", "TUR"),
167
+ "tuvalu": ("Tuvalu", "TV", "TUV"),
165
168
  "ukraine": ("Ukraine", "UA", "UKR"),
166
169
  "united_arab_emirates": ("UnitedArabEmirates", "AE", "ARE"),
167
170
  "united_kingdom": ("UnitedKingdom", "GB", "GBR", "UK"),
holidays/version.py CHANGED
@@ -10,4 +10,4 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- __version__ = "0.65"
13
+ __version__ = "0.67"
@@ -29,6 +29,7 @@ Chanran Kim
29
29
  Chris McKeague
30
30
  Chris Turra
31
31
  Christian Alexander
32
+ Colin Watson
32
33
  Dan Gentry
33
34
  Daniel Musketa
34
35
  Daniël Niemeijer