holidays 0.25__py3-none-any.whl → 0.27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/calendars/__init__.py +9 -7
  3. holidays/calendars/buddhist.py +445 -0
  4. holidays/calendars/chinese.py +1238 -431
  5. holidays/calendars/custom.py +1 -3
  6. holidays/calendars/hebrew.py +2 -2
  7. holidays/calendars/hindu.py +445 -0
  8. holidays/calendars/islamic.py +1347 -1347
  9. holidays/calendars/thai.py +229 -38
  10. holidays/countries/__init__.py +8 -0
  11. holidays/countries/albania.py +6 -17
  12. holidays/countries/andorra.py +2 -6
  13. holidays/countries/angola.py +53 -39
  14. holidays/countries/argentina.py +25 -35
  15. holidays/countries/armenia.py +1 -0
  16. holidays/countries/aruba.py +109 -48
  17. holidays/countries/australia.py +31 -69
  18. holidays/countries/austria.py +1 -0
  19. holidays/countries/azerbaijan.py +44 -71
  20. holidays/countries/bahrain.py +7 -7
  21. holidays/countries/bangladesh.py +1 -3
  22. holidays/countries/belarus.py +2 -3
  23. holidays/countries/belize.py +128 -0
  24. holidays/countries/bolivia.py +2 -6
  25. holidays/countries/bosnia_and_herzegovina.py +5 -17
  26. holidays/countries/botswana.py +37 -44
  27. holidays/countries/brazil.py +4 -7
  28. holidays/countries/brunei.py +427 -0
  29. holidays/countries/bulgaria.py +3 -6
  30. holidays/countries/burkina_faso.py +141 -0
  31. holidays/countries/burundi.py +2 -5
  32. holidays/countries/cambodia.py +323 -0
  33. holidays/countries/cameroon.py +183 -0
  34. holidays/countries/canada.py +20 -28
  35. holidays/countries/chad.py +133 -0
  36. holidays/countries/chile.py +6 -13
  37. holidays/countries/china.py +21 -25
  38. holidays/countries/colombia.py +18 -15
  39. holidays/countries/costa_rica.py +25 -27
  40. holidays/countries/cuba.py +28 -15
  41. holidays/countries/curacao.py +100 -46
  42. holidays/countries/cyprus.py +3 -6
  43. holidays/countries/czechia.py +4 -12
  44. holidays/countries/denmark.py +2 -3
  45. holidays/countries/dominican_republic.py +2 -3
  46. holidays/countries/ecuador.py +55 -54
  47. holidays/countries/egypt.py +2 -5
  48. holidays/countries/el_salvador.py +101 -0
  49. holidays/countries/eswatini.py +34 -44
  50. holidays/countries/ethiopia.py +7 -14
  51. holidays/countries/finland.py +2 -3
  52. holidays/countries/france.py +1 -0
  53. holidays/countries/gabon.py +139 -0
  54. holidays/countries/georgia.py +1 -0
  55. holidays/countries/germany.py +1 -0
  56. holidays/countries/greece.py +7 -6
  57. holidays/countries/honduras.py +17 -13
  58. holidays/countries/hongkong.py +117 -126
  59. holidays/countries/hungary.py +93 -92
  60. holidays/countries/iceland.py +1 -0
  61. holidays/countries/india.py +4 -11
  62. holidays/countries/indonesia.py +178 -142
  63. holidays/countries/ireland.py +5 -15
  64. holidays/countries/isle_of_man.py +23 -5
  65. holidays/countries/israel.py +12 -24
  66. holidays/countries/italy.py +6 -7
  67. holidays/countries/jamaica.py +10 -18
  68. holidays/countries/japan.py +11 -16
  69. holidays/countries/kazakhstan.py +7 -22
  70. holidays/countries/kenya.py +44 -26
  71. holidays/countries/kyrgyzstan.py +2 -5
  72. holidays/countries/latvia.py +2 -6
  73. holidays/countries/lesotho.py +52 -32
  74. holidays/countries/liechtenstein.py +1 -0
  75. holidays/countries/lithuania.py +4 -12
  76. holidays/countries/madagascar.py +3 -9
  77. holidays/countries/malawi.py +34 -26
  78. holidays/countries/malaysia.py +335 -343
  79. holidays/countries/marshall_islands.py +4 -9
  80. holidays/countries/mexico.py +2 -3
  81. holidays/countries/moldova.py +4 -6
  82. holidays/countries/monaco.py +17 -26
  83. holidays/countries/montenegro.py +34 -24
  84. holidays/countries/morocco.py +8 -5
  85. holidays/countries/mozambique.py +35 -31
  86. holidays/countries/namibia.py +54 -35
  87. holidays/countries/netherlands.py +1 -0
  88. holidays/countries/new_zealand.py +166 -134
  89. holidays/countries/nicaragua.py +27 -22
  90. holidays/countries/nigeria.py +6 -17
  91. holidays/countries/north_macedonia.py +3 -8
  92. holidays/countries/norway.py +2 -3
  93. holidays/countries/pakistan.py +73 -75
  94. holidays/countries/panama.py +25 -24
  95. holidays/countries/paraguay.py +55 -47
  96. holidays/countries/peru.py +1 -0
  97. holidays/countries/philippines.py +6 -2
  98. holidays/countries/poland.py +4 -9
  99. holidays/countries/portugal.py +4 -11
  100. holidays/countries/romania.py +4 -5
  101. holidays/countries/russia.py +1 -0
  102. holidays/countries/san_marino.py +26 -27
  103. holidays/countries/saudi_arabia.py +8 -22
  104. holidays/countries/serbia.py +22 -31
  105. holidays/countries/singapore.py +181 -189
  106. holidays/countries/slovakia.py +2 -4
  107. holidays/countries/south_africa.py +60 -62
  108. holidays/countries/south_korea.py +59 -26
  109. holidays/countries/spain.py +7 -10
  110. holidays/countries/sweden.py +2 -3
  111. holidays/countries/switzerland.py +1 -0
  112. holidays/countries/taiwan.py +20 -20
  113. holidays/countries/thailand.py +36 -82
  114. holidays/countries/turkey.py +1 -3
  115. holidays/countries/ukraine.py +7 -18
  116. holidays/countries/united_arab_emirates.py +23 -31
  117. holidays/countries/united_kingdom.py +124 -116
  118. holidays/countries/united_states.py +42 -72
  119. holidays/countries/uruguay.py +1 -0
  120. holidays/countries/vatican_city.py +64 -32
  121. holidays/countries/venezuela.py +9 -6
  122. holidays/countries/vietnam.py +6 -20
  123. holidays/countries/zambia.py +63 -33
  124. holidays/countries/zimbabwe.py +56 -37
  125. holidays/financial/european_central_bank.py +15 -16
  126. holidays/financial/ny_stock_exchange.py +80 -86
  127. holidays/groups/__init__.py +18 -0
  128. holidays/groups/buddhist.py +71 -0
  129. holidays/groups/chinese.py +235 -0
  130. holidays/groups/christian.py +483 -0
  131. holidays/groups/hindu.py +71 -0
  132. holidays/groups/international.py +157 -0
  133. holidays/groups/islamic.py +288 -0
  134. holidays/groups/thai.py +157 -0
  135. holidays/helpers.py +20 -0
  136. holidays/holiday_base.py +54 -76
  137. holidays/holiday_groups.py +11 -1053
  138. holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
  139. holidays/locale/am/LC_MESSAGES/ET.po +20 -15
  140. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  141. holidays/locale/ar/LC_MESSAGES/CA.po +184 -0
  142. holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
  143. holidays/locale/ar/LC_MESSAGES/ET.po +92 -0
  144. holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
  145. holidays/locale/ar/LC_MESSAGES/UA.po +97 -0
  146. holidays/locale/be/LC_MESSAGES/BY.po +11 -13
  147. holidays/locale/bg/LC_MESSAGES/BG.po +13 -15
  148. holidays/locale/da/LC_MESSAGES/DK.po +13 -12
  149. holidays/locale/de/LC_MESSAGES/AT.po +14 -14
  150. holidays/locale/de/LC_MESSAGES/CH.po +91 -56
  151. holidays/locale/de/LC_MESSAGES/DE.po +32 -32
  152. holidays/locale/de/LC_MESSAGES/LI.po +23 -23
  153. holidays/locale/el/LC_MESSAGES/CY.po +16 -16
  154. holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
  155. holidays/locale/el/LC_MESSAGES/GR.po +21 -17
  156. holidays/locale/en/LC_MESSAGES/CA.po +43 -43
  157. holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
  158. holidays/locale/en_US/LC_MESSAGES/AM.po +20 -20
  159. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  160. holidays/locale/en_US/LC_MESSAGES/AR.po +34 -33
  161. holidays/locale/en_US/LC_MESSAGES/AT.po +13 -13
  162. holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
  163. holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
  164. holidays/locale/en_US/LC_MESSAGES/BG.po +13 -15
  165. holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
  166. holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
  167. holidays/locale/en_US/LC_MESSAGES/BY.po +11 -13
  168. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  169. holidays/locale/en_US/LC_MESSAGES/CA.po +70 -37
  170. holidays/locale/en_US/LC_MESSAGES/CH.po +91 -56
  171. holidays/locale/en_US/LC_MESSAGES/CL.po +39 -38
  172. holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
  173. holidays/locale/en_US/LC_MESSAGES/CO.po +27 -27
  174. holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
  175. holidays/locale/en_US/LC_MESSAGES/CR.po +19 -19
  176. holidays/locale/en_US/LC_MESSAGES/CU.po +10 -10
  177. holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
  178. holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
  179. holidays/locale/en_US/LC_MESSAGES/CY.po +16 -16
  180. holidays/locale/en_US/LC_MESSAGES/DE.po +30 -30
  181. holidays/locale/en_US/LC_MESSAGES/DK.po +12 -11
  182. holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
  183. holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
  184. holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
  185. holidays/locale/en_US/LC_MESSAGES/ET.po +20 -15
  186. holidays/locale/en_US/LC_MESSAGES/FI.po +15 -15
  187. holidays/locale/en_US/LC_MESSAGES/FR.po +27 -24
  188. holidays/locale/en_US/LC_MESSAGES/GE.po +23 -27
  189. holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
  190. holidays/locale/en_US/LC_MESSAGES/GR.po +21 -17
  191. holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
  192. holidays/locale/en_US/LC_MESSAGES/HN.po +17 -12
  193. holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
  194. holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
  195. holidays/locale/en_US/LC_MESSAGES/IS.po +17 -17
  196. holidays/locale/en_US/LC_MESSAGES/JP.po +25 -25
  197. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  198. holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
  199. holidays/locale/en_US/LC_MESSAGES/LI.po +22 -22
  200. holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
  201. holidays/locale/en_US/LC_MESSAGES/MC.po +27 -27
  202. holidays/locale/en_US/LC_MESSAGES/MD.po +13 -13
  203. holidays/locale/en_US/LC_MESSAGES/MX.po +9 -12
  204. holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
  205. holidays/locale/en_US/LC_MESSAGES/NI.po +15 -15
  206. holidays/locale/en_US/LC_MESSAGES/NL.po +12 -12
  207. holidays/locale/en_US/LC_MESSAGES/NO.po +13 -13
  208. holidays/locale/en_US/LC_MESSAGES/PE.po +30 -30
  209. holidays/locale/en_US/LC_MESSAGES/PL.po +38 -21
  210. holidays/locale/en_US/LC_MESSAGES/PT.po +39 -36
  211. holidays/locale/en_US/LC_MESSAGES/PY.po +16 -16
  212. holidays/locale/en_US/LC_MESSAGES/RO.po +12 -12
  213. holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
  214. holidays/locale/en_US/LC_MESSAGES/RS.po +17 -19
  215. holidays/locale/en_US/LC_MESSAGES/RU.po +11 -10
  216. holidays/locale/en_US/LC_MESSAGES/SE.po +19 -19
  217. holidays/locale/en_US/LC_MESSAGES/SK.po +17 -18
  218. holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
  219. holidays/locale/en_US/LC_MESSAGES/UA.po +18 -19
  220. holidays/locale/en_US/LC_MESSAGES/UY.po +15 -15
  221. holidays/locale/en_US/LC_MESSAGES/VE.po +16 -16
  222. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  223. holidays/locale/es/LC_MESSAGES/AR.po +34 -33
  224. holidays/locale/es/LC_MESSAGES/CL.po +39 -38
  225. holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
  226. holidays/locale/es/LC_MESSAGES/CO.po +24 -24
  227. holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
  228. holidays/locale/es/LC_MESSAGES/CR.po +19 -19
  229. holidays/locale/es/LC_MESSAGES/CU.po +10 -10
  230. holidays/locale/es/LC_MESSAGES/DO.po +12 -12
  231. holidays/locale/es/LC_MESSAGES/EC.po +11 -12
  232. holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
  233. holidays/locale/es/LC_MESSAGES/HN.po +17 -12
  234. holidays/locale/es/LC_MESSAGES/MX.po +9 -12
  235. holidays/locale/es/LC_MESSAGES/NI.po +12 -12
  236. holidays/locale/es/LC_MESSAGES/PE.po +30 -30
  237. holidays/locale/es/LC_MESSAGES/PY.po +16 -16
  238. holidays/locale/es/LC_MESSAGES/UY.po +15 -15
  239. holidays/locale/es/LC_MESSAGES/VE.po +16 -16
  240. holidays/locale/fi/LC_MESSAGES/FI.po +16 -16
  241. holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
  242. holidays/locale/fr/LC_MESSAGES/CH.po +91 -56
  243. holidays/locale/fr/LC_MESSAGES/FR.po +27 -24
  244. holidays/locale/fr/LC_MESSAGES/MC.po +23 -23
  245. holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
  246. holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
  247. holidays/locale/hy/LC_MESSAGES/AM.po +16 -16
  248. holidays/locale/is/LC_MESSAGES/IS.po +18 -18
  249. holidays/locale/it/LC_MESSAGES/CH.po +91 -56
  250. holidays/locale/ja/LC_MESSAGES/JP.po +25 -25
  251. holidays/locale/ka/LC_MESSAGES/GE.po +23 -27
  252. holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
  253. holidays/locale/km/LC_MESSAGES/KH.po +139 -0
  254. holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
  255. holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
  256. holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
  257. holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
  258. holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
  259. holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
  260. holidays/locale/nl/LC_MESSAGES/NL.po +13 -13
  261. holidays/locale/no/LC_MESSAGES/NO.po +14 -14
  262. holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
  263. holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
  264. holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
  265. holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
  266. holidays/locale/pl/LC_MESSAGES/PL.po +38 -21
  267. holidays/locale/pt_PT/LC_MESSAGES/PT.po +39 -36
  268. holidays/locale/ro/LC_MESSAGES/MD.po +14 -15
  269. holidays/locale/ro/LC_MESSAGES/RO.po +13 -14
  270. holidays/locale/ru/LC_MESSAGES/RU.po +11 -9
  271. holidays/locale/sk/LC_MESSAGES/SK.po +17 -18
  272. holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
  273. holidays/locale/sr/LC_MESSAGES/RS.po +15 -17
  274. holidays/locale/sv/LC_MESSAGES/FI.po +16 -16
  275. holidays/locale/sv/LC_MESSAGES/SE.po +20 -20
  276. holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
  277. holidays/locale/th/LC_MESSAGES/BN.po +96 -0
  278. holidays/locale/th/LC_MESSAGES/CA.po +42 -42
  279. holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
  280. holidays/locale/th/LC_MESSAGES/KH.po +145 -0
  281. holidays/locale/th/LC_MESSAGES/TH.po +41 -41
  282. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  283. holidays/locale/uk/LC_MESSAGES/AR.po +35 -35
  284. holidays/locale/uk/LC_MESSAGES/AT.po +15 -16
  285. holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
  286. holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
  287. holidays/locale/uk/LC_MESSAGES/CH.po +92 -58
  288. holidays/locale/uk/LC_MESSAGES/CL.po +40 -40
  289. holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
  290. holidays/locale/uk/LC_MESSAGES/CO.po +28 -29
  291. holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
  292. holidays/locale/uk/LC_MESSAGES/CR.po +20 -21
  293. holidays/locale/uk/LC_MESSAGES/CU.po +11 -12
  294. holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
  295. holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
  296. holidays/locale/uk/LC_MESSAGES/DE.po +33 -34
  297. holidays/locale/uk/LC_MESSAGES/DK.po +14 -14
  298. holidays/locale/uk/LC_MESSAGES/DO.po +13 -14
  299. holidays/locale/uk/LC_MESSAGES/EC.po +12 -14
  300. holidays/locale/uk/LC_MESSAGES/FI.po +17 -18
  301. holidays/locale/uk/LC_MESSAGES/FR.po +28 -26
  302. holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
  303. holidays/locale/uk/LC_MESSAGES/HN.po +18 -14
  304. holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
  305. holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
  306. holidays/locale/uk/LC_MESSAGES/IS.po +19 -20
  307. holidays/locale/uk/LC_MESSAGES/LI.po +24 -25
  308. holidays/locale/uk/LC_MESSAGES/MC.po +27 -28
  309. holidays/locale/uk/LC_MESSAGES/MD.po +14 -15
  310. holidays/locale/uk/LC_MESSAGES/MX.po +10 -14
  311. holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
  312. holidays/locale/uk/LC_MESSAGES/NI.po +16 -17
  313. holidays/locale/uk/LC_MESSAGES/NL.po +14 -15
  314. holidays/locale/uk/LC_MESSAGES/NO.po +15 -16
  315. holidays/locale/uk/LC_MESSAGES/PE.po +31 -32
  316. holidays/locale/uk/LC_MESSAGES/PL.po +38 -21
  317. holidays/locale/uk/LC_MESSAGES/PY.po +17 -18
  318. holidays/locale/uk/LC_MESSAGES/RO.po +13 -14
  319. holidays/locale/uk/LC_MESSAGES/SE.po +21 -22
  320. holidays/locale/uk/LC_MESSAGES/SK.po +18 -20
  321. holidays/locale/uk/LC_MESSAGES/UA.po +17 -17
  322. holidays/locale/uk/LC_MESSAGES/UY.po +16 -17
  323. holidays/locale/uk/LC_MESSAGES/VE.po +17 -18
  324. holidays/registry.py +21 -12
  325. holidays/utils.py +87 -17
  326. {holidays-0.25.dist-info → holidays-0.27.dist-info}/METADATA +282 -265
  327. holidays-0.27.dist-info/RECORD +449 -0
  328. holidays-0.25.dist-info/RECORD +0 -390
  329. {holidays-0.25.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
  330. {holidays-0.25.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
  331. {holidays-0.25.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
@@ -15,82 +15,82 @@ msgstr ""
15
15
  "Generated-By: Lingua 4.15.0\n"
16
16
  "X-Generator: Poedit 3.2.2\n"
17
17
 
18
- #: holidays/countries/ukraine.py:53
18
+ #: ./holidays/countries/ukraine.py:146
19
19
  #, c-format
20
20
  msgid "%s (вихідний)"
21
21
  msgstr ""
22
22
 
23
23
  #. New Year's Day.
24
- #: holidays/countries/ukraine.py:68
24
+ #: ./holidays/countries/ukraine.py:52
25
25
  msgid "Новий рік"
26
26
  msgstr ""
27
27
 
28
28
  #. Christmas (Julian calendar).
29
- #: holidays/countries/ukraine.py:73
29
+ #: ./holidays/countries/ukraine.py:57
30
30
  msgid "Різдво Христове (за юліанським календарем)"
31
31
  msgstr ""
32
32
 
33
33
  #. International Women's Day.
34
- #: holidays/countries/ukraine.py:79
34
+ #: ./holidays/countries/ukraine.py:62
35
35
  msgid "Міжнародний жіночий день"
36
36
  msgstr ""
37
37
 
38
38
  #. Easter Sunday (Pascha).
39
- #: holidays/countries/ukraine.py:87
39
+ #: ./holidays/countries/ukraine.py:68
40
40
  msgid "Великдень (Пасха)"
41
41
  msgstr ""
42
42
 
43
43
  #. Holy Trinity Day.
44
- #: holidays/countries/ukraine.py:100
44
+ #: ./holidays/countries/ukraine.py:71
45
45
  msgid "Трійця"
46
46
  msgstr ""
47
47
 
48
48
  #. Labour Day.
49
- #: holidays/countries/ukraine.py:105
49
+ #: ./holidays/countries/ukraine.py:75
50
50
  msgid "День праці"
51
51
  msgstr ""
52
52
 
53
53
  #. International Workers' Solidarity Day.
54
- #: holidays/countries/ukraine.py:109
54
+ #: ./holidays/countries/ukraine.py:78
55
55
  msgid "День міжнародної солідарності трудящих"
56
56
  msgstr ""
57
57
 
58
58
  #. Day of Victory over Nazism in World War II (Victory Day).
59
- #: holidays/countries/ukraine.py:116
59
+ #: ./holidays/countries/ukraine.py:87
60
60
  msgid "День перемоги над нацизмом у Другій світовій війні (День перемоги)"
61
61
  msgstr ""
62
62
 
63
63
  #. Victory Day.
64
- #: holidays/countries/ukraine.py:122
64
+ #: ./holidays/countries/ukraine.py:90
65
65
  msgid "День перемоги"
66
66
  msgstr ""
67
67
 
68
68
  #. Day of the Constitution of Ukraine.
69
- #: holidays/countries/ukraine.py:130
69
+ #: ./holidays/countries/ukraine.py:97
70
70
  msgid "День Конституції України"
71
71
  msgstr ""
72
72
 
73
73
  #. Independence Day.
74
- #: holidays/countries/ukraine.py:134
74
+ #: ./holidays/countries/ukraine.py:101
75
75
  msgid "День незалежності України"
76
76
  msgstr ""
77
77
 
78
- #. Day of the defender of Ukraine.
79
- #: holidays/countries/ukraine.py:143
78
+ #. Day of defenders of Ukraine.
79
+ #: ./holidays/countries/ukraine.py:110
80
80
  msgid "День захисників і захисниць України"
81
81
  msgstr ""
82
82
 
83
83
  #. Defender of Ukraine Day.
84
- #: holidays/countries/ukraine.py:146
84
+ #: ./holidays/countries/ukraine.py:113
85
85
  msgid "День захисника України"
86
86
  msgstr ""
87
87
 
88
88
  #. Anniversary of the Great October Socialist Revolution.
89
- #: holidays/countries/ukraine.py:152
89
+ #: ./holidays/countries/ukraine.py:119
90
90
  msgid "Річниця Великої Жовтневої соціалістичної революції"
91
91
  msgstr ""
92
92
 
93
93
  #. Christmas (Gregorian calendar).
94
- #: holidays/countries/ukraine.py:162
94
+ #: ./holidays/countries/ukraine.py:127
95
95
  msgid "Різдво Христове (за григоріанським календарем)"
96
96
  msgstr ""
@@ -12,82 +12,81 @@ msgstr ""
12
12
  "MIME-Version: 1.0\n"
13
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
16
- "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
15
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
17
16
  "Generated-By: pygettext.py 1.5\n"
18
17
  "X-Generator: Poedit 3.2.2\n"
19
18
 
20
19
  #. New Year's Day.
21
- #: ./holidays/countries/uruguay.py:40
20
+ #: ./holidays/countries/uruguay.py:41
22
21
  msgid "Año Nuevo"
23
22
  msgstr "Новий рік"
24
23
 
25
24
  #. International Workers' Day.
26
- #: ./holidays/countries/uruguay.py:43
25
+ #: ./holidays/countries/uruguay.py:44
27
26
  msgid "Día de los Trabajadores"
28
27
  msgstr "День трудящих"
29
28
 
30
29
  #. Constitution Day.
31
- #: ./holidays/countries/uruguay.py:46
30
+ #: ./holidays/countries/uruguay.py:47
32
31
  msgid "Jura de la Constitución"
33
32
  msgstr "День присяги Конституції"
34
33
 
35
34
  #. Independence Day.
36
- #: ./holidays/countries/uruguay.py:49
35
+ #: ./holidays/countries/uruguay.py:50
37
36
  msgid "Día de la Independencia"
38
37
  msgstr "День незалежності"
39
38
 
40
39
  #. Day of the Family.
41
- #: ./holidays/countries/uruguay.py:52
40
+ #: ./holidays/countries/uruguay.py:53
42
41
  msgid "Día de la Familia"
43
42
  msgstr "День родини"
44
43
 
45
44
  #. Children's Day.
46
- #: ./holidays/countries/uruguay.py:57
45
+ #: ./holidays/countries/uruguay.py:58
47
46
  msgid "Día de los Niños"
48
47
  msgstr "День захисту дітей"
49
48
 
50
49
  #. Birthday of José Gervasio Artigas.
51
- #: ./holidays/countries/uruguay.py:60
50
+ #: ./holidays/countries/uruguay.py:61
52
51
  msgid "Natalicio de José Gervasio Artigas"
53
52
  msgstr "Річниця Хосе Гервасіо Артіґаса"
54
53
 
55
54
  #. All Souls' Day.
56
- #: ./holidays/countries/uruguay.py:63
55
+ #: ./holidays/countries/uruguay.py:64
57
56
  msgid "Día de los Difuntos"
58
57
  msgstr "День усіх померлих"
59
58
 
60
59
  #. Carnival Day.
61
- #: ./holidays/countries/uruguay.py:68
60
+ #: ./holidays/countries/uruguay.py:69
62
61
  msgid "Día de Carnaval"
63
62
  msgstr "Карнавал"
64
63
 
65
64
  #. Maundy Thursday.
66
- #: ./holidays/countries/uruguay.py:73
65
+ #: ./holidays/countries/uruguay.py:74
67
66
  msgid "Jueves Santo"
68
67
  msgstr "Великий четвер"
69
68
 
70
69
  #. Good Friday.
71
- #: ./holidays/countries/uruguay.py:75
70
+ #: ./holidays/countries/uruguay.py:76
72
71
  msgid "Viernes Santo"
73
72
  msgstr "Страсна пʼятниця"
74
73
 
75
74
  #. Easter Day.
76
- #: ./holidays/countries/uruguay.py:77
75
+ #: ./holidays/countries/uruguay.py:78
77
76
  msgid "Día de Pascuas"
78
77
  msgstr "Великдень"
79
78
 
80
79
  #. Landing of the 33 Patriots.
81
- #: ./holidays/countries/uruguay.py:83
80
+ #: ./holidays/countries/uruguay.py:84
82
81
  msgid "Desembarco de los 33 Orientales"
83
82
  msgstr "День висадки 33 патріотів"
84
83
 
85
84
  #. Battle of Las Piedras.
86
- #: ./holidays/countries/uruguay.py:88
85
+ #: ./holidays/countries/uruguay.py:89
87
86
  msgid "Batalla de Las Piedras"
88
87
  msgstr "День битви при Лас-Пʼєдрас"
89
88
 
90
89
  #. Respect for Cultural Diversity Day.
91
- #: ./holidays/countries/uruguay.py:93
90
+ #: ./holidays/countries/uruguay.py:94
92
91
  msgid "Día del Respeto a la Diversidad Cultural"
93
92
  msgstr "День поваги до культурного різноманіття"
@@ -12,87 +12,86 @@ msgstr ""
12
12
  "MIME-Version: 1.0\n"
13
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
16
- "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
15
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
17
16
  "Generated-By: pygettext.py 1.5\n"
18
17
  "X-Generator: Poedit 3.2.2\n"
19
18
 
20
19
  #. New Year's Day.
21
- #: ./holidays/countries/venezuela.py:47
20
+ #: ./holidays/countries/venezuela.py:48
22
21
  msgid "Año Nuevo"
23
22
  msgstr "Новий рік"
24
23
 
25
24
  #. Monday of Carnival.
26
- #: ./holidays/countries/venezuela.py:50
25
+ #: ./holidays/countries/venezuela.py:51
27
26
  msgid "Lunes de Carnaval"
28
27
  msgstr "Карнавальний понеділок"
29
28
 
30
29
  #. Tuesday of Carnival.
31
- #: ./holidays/countries/venezuela.py:53
30
+ #: ./holidays/countries/venezuela.py:54
32
31
  msgid "Martes de Carnaval"
33
32
  msgstr "Карнавальний вівторок"
34
33
 
35
34
  #. Maundy Thursday.
36
- #: ./holidays/countries/venezuela.py:56
35
+ #: ./holidays/countries/venezuela.py:57
37
36
  msgid "Jueves Santo"
38
37
  msgstr "Великий четвер"
39
38
 
40
39
  #. Good Friday.
41
- #: ./holidays/countries/venezuela.py:59
40
+ #: ./holidays/countries/venezuela.py:60
42
41
  msgid "Viernes Santo"
43
42
  msgstr "Страсна пʼятниця"
44
43
 
45
44
  #. Declaration of Independence.
46
- #: ./holidays/countries/venezuela.py:64
45
+ #: ./holidays/countries/venezuela.py:65
47
46
  msgid "Declaración de la Independencia"
48
47
  msgstr "День проголошення незалежності"
49
48
 
50
49
  #. International Worker's Day.
51
- #: ./holidays/countries/venezuela.py:69
50
+ #: ./holidays/countries/venezuela.py:70
52
51
  msgid "Dia Mundial del Trabajador"
53
52
  msgstr "Міжнародний день трудящих"
54
53
 
55
54
  #. Battle of Carabobo.
56
- #: ./holidays/countries/venezuela.py:74
55
+ #: ./holidays/countries/venezuela.py:75
57
56
  msgid "Batalla de Carabobo"
58
57
  msgstr "День битви при Карабобо"
59
58
 
60
59
  #. Independence Day.
61
- #: ./holidays/countries/venezuela.py:79
60
+ #: ./holidays/countries/venezuela.py:80
62
61
  msgid "Día de la Independencia"
63
62
  msgstr "День незалежності"
64
63
 
65
64
  #. Birthday of Simon Bolivar.
66
- #: ./holidays/countries/venezuela.py:83
65
+ #: ./holidays/countries/venezuela.py:84
67
66
  msgid "Natalicio de Simón Bolívar"
68
67
  msgstr "Річниця Сімона Болівара"
69
68
 
70
69
  #. Day of Indigenous Resistance.
71
- #: ./holidays/countries/venezuela.py:87
70
+ #: ./holidays/countries/venezuela.py:89
72
71
  msgid "Día de la Resistencia Indígena"
73
72
  msgstr "День спротиву корінних народів"
74
73
 
75
74
  #. Columbus Day.
76
- #: ./holidays/countries/venezuela.py:90
75
+ #: ./holidays/countries/venezuela.py:92
77
76
  msgid "Día de la Raza"
78
77
  msgstr "День Колумба"
79
78
 
80
79
  #. Unknown Holiday.
81
- #: ./holidays/countries/venezuela.py:96
80
+ #: ./holidays/countries/venezuela.py:99
82
81
  msgid "Día Festivo Desconocido"
83
82
  msgstr "Невідоме свято"
84
83
 
85
84
  #. Christmas Eve.
86
- #: ./holidays/countries/venezuela.py:99
85
+ #: ./holidays/countries/venezuela.py:102
87
86
  msgid "Nochebuena"
88
87
  msgstr "Святий вечір"
89
88
 
90
89
  #. Christmas Day.
91
- #: ./holidays/countries/venezuela.py:102
90
+ #: ./holidays/countries/venezuela.py:105
92
91
  msgid "Día de Navidad"
93
92
  msgstr "Різдво Христове"
94
93
 
95
94
  #. New Year's Eve.
96
- #: ./holidays/countries/venezuela.py:105
95
+ #: ./holidays/countries/venezuela.py:108
97
96
  msgid "Fiesta de Fin de Año"
98
97
  msgstr "Переддень Нового року"
holidays/registry.py CHANGED
@@ -32,13 +32,19 @@ COUNTRIES: RegistryDict = {
32
32
  "bangladesh": ("Bangladesh", "BD", "BGD"),
33
33
  "belarus": ("Belarus", "BY", "BLR"),
34
34
  "belgium": ("Belgium", "BE", "BEL"),
35
+ "belize": ("Belize", "BZ", "BLZ"),
35
36
  "bolivia": ("Bolivia", "BO", "BOL"),
36
37
  "bosnia_and_herzegovina": ("BosniaAndHerzegovina", "BA", "BIH"),
37
38
  "botswana": ("Botswana", "BW", "BWA"),
38
39
  "brazil": ("Brazil", "BR", "BRA"),
40
+ "brunei": ("Brunei", "BN", "BRN"),
39
41
  "bulgaria": ("Bulgaria", "BG", "BLG"),
42
+ "burkina_faso": ("BurkinaFaso", "BF", "BFA"),
40
43
  "burundi": ("Burundi", "BI", "BDI"),
44
+ "cambodia": ("Cambodia", "KH", "KHM"),
45
+ "cameroon": ("Cameroon", "CM", "CMR"),
41
46
  "canada": ("Canada", "CA", "CAN"),
47
+ "chad": ("Chad", "TD", "TCD"),
42
48
  "chile": ("Chile", "CL", "CHL"),
43
49
  "china": ("China", "CN", "CHN"),
44
50
  "colombia": ("Colombia", "CO", "COL"),
@@ -53,11 +59,13 @@ COUNTRIES: RegistryDict = {
53
59
  "dominican_republic": ("DominicanRepublic", "DO", "DOM"),
54
60
  "ecuador": ("Ecuador", "EC", "ECU"),
55
61
  "egypt": ("Egypt", "EG", "EGY"),
62
+ "el_salvador": ("ElSalvador", "SV", "SLV"),
56
63
  "estonia": ("Estonia", "EE", "EST"),
57
64
  "eswatini": ("Eswatini", "SZ", "SZW", "Swaziland"),
58
65
  "ethiopia": ("Ethiopia", "ET", "ETH"),
59
66
  "finland": ("Finland", "FI", "FIN"),
60
67
  "france": ("France", "FR", "FRA"),
68
+ "gabon": ("Gabon", "GA", "GAB"),
61
69
  "georgia": ("Georgia", "GE", "GEO"),
62
70
  "germany": ("Germany", "DE", "DEU"),
63
71
  "greece": ("Greece", "GR", "GRC"),
@@ -169,9 +177,18 @@ class EntityLoader:
169
177
 
170
178
  def __init__(self, path: str, *args, **kwargs) -> None:
171
179
  """Set up a lazy loader."""
172
- self.entity = None
180
+ if args:
181
+ raise TypeError(
182
+ "This is a python-holidays entity loader class. "
183
+ "For entity inheritance purposes please import a class you "
184
+ "want to derive from directly: e.g., "
185
+ "`from holidays.countries import Entity` or "
186
+ "`from holidays.financial import Entity`."
187
+ )
173
188
 
174
189
  entity_path = path.split(".")
190
+
191
+ self.entity = None
175
192
  self.entity_name = entity_path[-1]
176
193
  self.module_name = ".".join(entity_path[0:-1])
177
194
 
@@ -210,11 +227,7 @@ class EntityLoader:
210
227
  entity_length: Union[int, Iterable[int]],
211
228
  include_aliases: bool = True,
212
229
  ) -> Iterable[str]:
213
- entity_length = (
214
- {entity_length}
215
- if isinstance(entity_length, int)
216
- else set(entity_length)
217
- )
230
+ entity_length = {entity_length} if isinstance(entity_length, int) else set(entity_length)
218
231
  for entities in container.values():
219
232
  for entity in entities:
220
233
  if len(entity) in entity_length:
@@ -239,9 +252,7 @@ class EntityLoader:
239
252
  :param include_aliases:
240
253
  Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
241
254
  """
242
- return EntityLoader._get_entity_codes(
243
- FINANCIAL, (3, 4), include_aliases
244
- )
255
+ return EntityLoader._get_entity_codes(FINANCIAL, (3, 4), include_aliases)
245
256
 
246
257
  @staticmethod
247
258
  def load(prefix: str, scope: Dict) -> None:
@@ -250,9 +261,7 @@ class EntityLoader:
250
261
  for module, entities in entity_mapping.items():
251
262
  scope.update(
252
263
  {
253
- entity: EntityLoader(
254
- f"holidays.{prefix}.{module}.{entity}"
255
- )
264
+ entity: EntityLoader(f"holidays.{prefix}.{module}.{entity}")
256
265
  for entity in entities
257
266
  }
258
267
  )
holidays/utils.py CHANGED
@@ -10,9 +10,11 @@
10
10
  # License: MIT (see LICENSE file)
11
11
 
12
12
  __all__ = (
13
- "CountryHoliday",
14
13
  "country_holidays",
14
+ "CountryHoliday",
15
15
  "financial_holidays",
16
+ "list_localized_countries",
17
+ "list_localized_financial",
16
18
  "list_supported_countries",
17
19
  "list_supported_financial",
18
20
  )
@@ -272,31 +274,104 @@ def CountryHoliday(
272
274
  "CountryHoliday is deprecated, use country_holidays instead.",
273
275
  DeprecationWarning,
274
276
  )
275
- return country_holidays(
276
- country, subdiv, years, expand, observed, prov, state
277
- )
277
+ return country_holidays(country, subdiv, years, expand, observed, prov, state)
278
+
279
+
280
+ def _list_localized_entities(
281
+ entity_codes: Iterable[str],
282
+ ) -> Dict[str, List[str]]:
283
+ """
284
+ Get all localized entities and languages they support.
285
+
286
+ :param entity_codes:
287
+ A list of entity codes.
288
+
289
+ :return:
290
+ A dictionary where key is an entity code and
291
+ value is a list of supported languages (either ISO 639-1 or a
292
+ combination of ISO 639-1 and ISO 3166-1 codes joined with "_").
293
+ """
294
+ import holidays
295
+
296
+ localized_countries = {}
297
+ for entity_code in entity_codes:
298
+ languages = getattr(holidays, entity_code).supported_languages
299
+ if len(languages) == 0:
300
+ continue
301
+ localized_countries[entity_code] = sorted(languages)
302
+
303
+ return localized_countries
278
304
 
279
305
 
280
306
  @lru_cache()
281
- def list_supported_countries(include_aliases=True) -> Dict[str, List[str]]:
307
+ def list_localized_countries(include_aliases=True) -> Dict[str, List[str]]:
282
308
  """
283
- Get all supported countries and their subdivisions.
309
+ Get all localized countries and languages they support.
284
310
 
285
311
  :param include_aliases:
286
312
  Whether to include entity aliases (e.g. UK for GB).
287
313
 
288
314
  :return:
289
- A dictionary where the key is the ISO 3166-1 Alpha-2 country codes and
290
- the value is a list of supported subdivision codes.
315
+ A dictionary where key is an ISO 3166-1 alpha-2 country code and
316
+ value is a list of supported languages (either ISO 639-1 or a
317
+ combination of ISO 639-1 and ISO 3166-1 codes joined with "_").
318
+ """
319
+
320
+ return _list_localized_entities(EntityLoader.get_country_codes(include_aliases))
321
+
322
+
323
+ @lru_cache()
324
+ def list_localized_financial(include_aliases=True) -> Dict[str, List[str]]:
325
+ """
326
+ Get all localized financial markets and languages they support.
327
+
328
+ :param include_aliases:
329
+ Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
330
+
331
+ :return:
332
+ A dictionary where key is a market code and value is a list of
333
+ supported subdivision codes.
334
+ """
335
+
336
+ return _list_localized_entities(EntityLoader.get_financial_codes(include_aliases))
337
+
338
+
339
+ def _list_supported_entities(
340
+ entity_codes: Iterable[str],
341
+ ) -> Dict[str, List[str]]:
342
+ """
343
+ Get all supported entities and their subdivisions.
344
+
345
+ :param entity_codes:
346
+ A list of entity codes.
347
+
348
+ :return:
349
+ A dictionary where key is an entity code and value is a list
350
+ of supported subdivision codes.
291
351
  """
292
352
  import holidays
293
353
 
294
354
  return {
295
355
  country_code: list(getattr(holidays, country_code).subdivisions)
296
- for country_code in EntityLoader.get_country_codes(include_aliases)
356
+ for country_code in entity_codes
297
357
  }
298
358
 
299
359
 
360
+ @lru_cache()
361
+ def list_supported_countries(include_aliases=True) -> Dict[str, List[str]]:
362
+ """
363
+ Get all supported countries and their subdivisions.
364
+
365
+ :param include_aliases:
366
+ Whether to include entity aliases (e.g. UK for GB).
367
+
368
+ :return:
369
+ A dictionary where key is an ISO 3166-1 alpha-2 country code and
370
+ value is a list of supported subdivision codes.
371
+ """
372
+ return _list_supported_entities(EntityLoader.get_country_codes(include_aliases))
373
+
374
+
300
375
  @lru_cache()
301
376
  def list_supported_financial(include_aliases=True) -> Dict[str, List[str]]:
302
377
  """
@@ -306,12 +381,7 @@ def list_supported_financial(include_aliases=True) -> Dict[str, List[str]]:
306
381
  Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
307
382
 
308
383
  :return:
309
- A dictionary where the key is the market codes and
310
- the value is a list of supported subdivision codes.
384
+ A dictionary where key is a market code and value is a list of
385
+ supported subdivision codes.
311
386
  """
312
- import holidays
313
-
314
- return {
315
- financial_code: list(getattr(holidays, financial_code).subdivisions)
316
- for financial_code in EntityLoader.get_financial_codes(include_aliases)
317
- }
387
+ return _list_supported_entities(EntityLoader.get_financial_codes(include_aliases))