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
@@ -14,8 +14,7 @@ from gettext import gettext as tr
14
14
  from holidays.calendars import JULIAN_CALENDAR
15
15
  from holidays.constants import MAR, MAY, SEP
16
16
  from holidays.holiday_base import HolidayBase
17
- from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
18
- from holidays.holiday_groups import IslamicHolidays
17
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
19
18
 
20
19
  # Ethiopian holidays are estimated: it is common for the day to be pushed
21
20
  # if falls in a weekend, although not a rule that can be implemented.
@@ -31,11 +30,11 @@ from holidays.holiday_groups import IslamicHolidays
31
30
  # is_weekend function is there, however not activated for accuracy.
32
31
 
33
32
 
34
- class Ethiopia(
35
- HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
36
- ):
33
+ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
37
34
  country = "ET"
38
35
  default_language = "am"
36
+ estimated_label = tr("%s* (*ግምት)")
37
+ supported_languages = ("am", "ar", "en_US")
39
38
 
40
39
  @staticmethod
41
40
  def _is_leap_year(year):
@@ -68,14 +67,10 @@ class Ethiopia(
68
67
  # September 12.
69
68
 
70
69
  # Ethiopian New Year.
71
- self._add_holiday(
72
- tr("አዲስ ዓመት እንቁጣጣሽ"), SEP, 12 if self._is_leap_year(year) else 11
73
- )
70
+ self._add_holiday(tr("አዲስ ዓመት እንቁጣጣሽ"), SEP, 12 if self._is_leap_year(year) else 11)
74
71
 
75
72
  # Finding of True Cross.
76
- self._add_holiday(
77
- tr("መስቀል"), SEP, 28 if self._is_leap_year(year) else 27
78
- )
73
+ self._add_holiday(tr("መስቀል"), SEP, 28 if self._is_leap_year(year) else 27)
79
74
 
80
75
  # Orthodox Christmas.
81
76
  self._add_christmas_day(tr("ገና"))
@@ -106,9 +101,7 @@ class Ethiopia(
106
101
 
107
102
  if year < 1991 and year > 1974:
108
103
  # Downfall of King Haile Selassie.
109
- self._add_holiday(
110
- tr("ደርግ የመጣበት ቀን"), SEP, 13 if self._is_leap_year(year) else 12
111
- )
104
+ self._add_holiday(tr("ደርግ የመጣበት ቀን"), SEP, 13 if self._is_leap_year(year) else 12)
112
105
 
113
106
  # Eid al-Fitr.
114
107
  self._add_eid_al_fitr_day(tr("ኢድ አልፈጥር"))
@@ -26,6 +26,7 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
26
26
 
27
27
  country = "FI"
28
28
  default_language = "fi"
29
+ supported_languages = ("en_US", "fi", "sv", "uk")
29
30
 
30
31
  def __init__(self, *args, **kwargs):
31
32
  ChristianHolidays.__init__(self)
@@ -41,9 +42,7 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
41
42
  # Epiphany.
42
43
  name = tr("Loppiainen")
43
44
  if 1973 <= year <= 1990:
44
- self._add_holiday(
45
- name, _get_nth_weekday_from(1, SAT, date(year, JAN, 6))
46
- )
45
+ self._add_holiday(name, _get_nth_weekday_from(1, SAT, date(year, JAN, 6)))
47
46
  else:
48
47
  self._add_epiphany_day(name)
49
48
 
@@ -34,6 +34,7 @@ class France(HolidayBase, ChristianHolidays, InternationalHolidays):
34
34
 
35
35
  country = "FR"
36
36
  default_language = "fr"
37
+ supported_languages = ("en_US", "fr", "uk")
37
38
  subdivisions = (
38
39
  "BL", # Saint Barthelemy.
39
40
  "GES", # Alsace, Champagne-Ardenne, Lorraine(Moselle).
@@ -0,0 +1,139 @@
1
+ # python-holidays
2
+ # ---------------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
8
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
9
+ # Website: https://github.com/dr-prodigy/python-holidays
10
+ # License: MIT (see LICENSE file)
11
+
12
+ from holidays.calendars import _CustomIslamicCalendar
13
+ from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
14
+ from holidays.holiday_base import HolidayBase
15
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
16
+
17
+
18
+ class Gabon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
19
+ """
20
+ References:
21
+ - https://en.wikipedia.org/wiki/Public_holidays_in_Gabon
22
+ - https://www.timeanddate.com/holidays/gabon
23
+ - https://www.officeholidays.com/countries/gabon
24
+ - http://www.travail.gouv.ga/402-evenements/489-liste-des-jours-feries/
25
+ """
26
+
27
+ country = "GA"
28
+
29
+ def __init__(self, *args, **kwargs) -> None:
30
+ ChristianHolidays.__init__(self)
31
+ InternationalHolidays.__init__(self)
32
+ IslamicHolidays.__init__(self, calendar=GabonIslamicCalendar())
33
+ super().__init__(*args, **kwargs)
34
+
35
+ def _populate(self, year):
36
+ # On 17 August 1960, Gabon gained independence from France.
37
+ if year <= 1960:
38
+ return None
39
+
40
+ super()._populate(year)
41
+
42
+ # New Year's Day.
43
+ self._add_new_years_day("New Year's Day")
44
+
45
+ # Easter Monday.
46
+ self._add_easter_monday("Easter Monday")
47
+
48
+ # Women's Rights Day.
49
+ if year >= 2015:
50
+ self._add_holiday("Women's Rights Day", APR, 17)
51
+
52
+ # Labour Day.
53
+ self._add_labor_day("Labour Day")
54
+
55
+ # Ascension Day.
56
+ self._add_ascension_thursday("Ascension Day")
57
+
58
+ # Whit Monday.
59
+ self._add_whit_monday("Whit Monday")
60
+
61
+ # Assumption Day.
62
+ self._add_assumption_of_mary_day("Assumption Day")
63
+
64
+ # Independence Day.
65
+ self._add_holiday("Independence Day", AUG, 16)
66
+ self._add_holiday("Independence Day Holiday", AUG, 17)
67
+
68
+ # All Saints' Day.
69
+ self._add_all_saints_day("All Saints' Day")
70
+
71
+ # Christmas Day.
72
+ self._add_christmas_day("Christmas Day")
73
+
74
+ # Eid al-Fitr.
75
+ self._add_eid_al_fitr_day("Eid al-Fitr")
76
+
77
+ # Eid al-Adha.
78
+ self._add_eid_al_adha_day("Eid al-Adha")
79
+
80
+
81
+ class GA(Gabon):
82
+ pass
83
+
84
+
85
+ class GAB(Gabon):
86
+ pass
87
+
88
+
89
+ class GabonIslamicCalendar(_CustomIslamicCalendar):
90
+ EID_AL_ADHA_DATES = {
91
+ 2001: (MAR, 6),
92
+ 2002: (FEB, 23),
93
+ 2003: (FEB, 12),
94
+ 2004: (FEB, 2),
95
+ 2005: (JAN, 21),
96
+ 2006: ((JAN, 10), (DEC, 31)),
97
+ 2007: (DEC, 20),
98
+ 2008: (DEC, 9),
99
+ 2009: (NOV, 28),
100
+ 2010: (NOV, 17),
101
+ 2011: (NOV, 7),
102
+ 2012: (OCT, 26),
103
+ 2013: (OCT, 15),
104
+ 2014: (OCT, 5),
105
+ 2015: (SEP, 24),
106
+ 2016: (SEP, 13),
107
+ 2017: (SEP, 2),
108
+ 2018: (AUG, 22),
109
+ 2019: (AUG, 11),
110
+ 2020: (JUL, 31),
111
+ 2021: (JUL, 20),
112
+ 2022: (JUL, 9),
113
+ }
114
+
115
+ EID_AL_FITR_DATES = {
116
+ 2001: (DEC, 17),
117
+ 2002: (DEC, 6),
118
+ 2003: (NOV, 26),
119
+ 2004: (NOV, 14),
120
+ 2005: (NOV, 4),
121
+ 2006: (OCT, 24),
122
+ 2007: (OCT, 13),
123
+ 2008: (OCT, 2),
124
+ 2009: (SEP, 21),
125
+ 2010: (SEP, 10),
126
+ 2011: (AUG, 31),
127
+ 2012: (AUG, 19),
128
+ 2013: (AUG, 8),
129
+ 2014: (JUL, 29),
130
+ 2015: (JUL, 18),
131
+ 2016: (JUL, 7),
132
+ 2017: (JUN, 26),
133
+ 2018: (JUN, 15),
134
+ 2019: (JUN, 4),
135
+ 2020: (MAY, 24),
136
+ 2021: (MAY, 13),
137
+ 2022: (MAY, 2),
138
+ 2023: (APR, 21),
139
+ }
@@ -27,6 +27,7 @@ class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays):
27
27
 
28
28
  country = "GE"
29
29
  default_language = "ka"
30
+ supported_languages = ("en_US", "ka")
30
31
 
31
32
  def __init__(self, *args, **kwargs):
32
33
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
@@ -55,6 +55,7 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays):
55
55
 
56
56
  country = "DE"
57
57
  default_language = "de"
58
+ supported_languages = ("de", "en_US", "uk")
58
59
  subdivisions = (
59
60
  "BB",
60
61
  "BE",
@@ -9,13 +9,11 @@
9
9
  # Website: https://github.com/dr-prodigy/python-holidays
10
10
  # License: MIT (see LICENSE file)
11
11
 
12
- from datetime import date
13
12
  from datetime import timedelta as td
14
13
  from gettext import gettext as tr
15
14
 
16
- from holidays.calendars import _get_nth_weekday_from, JULIAN_CALENDAR
17
- from holidays.calendars import GREGORIAN_CALENDAR
18
- from holidays.constants import MAR, MAY, OCT, MON
15
+ from holidays.calendars import _get_nth_weekday_from, JULIAN_CALENDAR, GREGORIAN_CALENDAR
16
+ from holidays.constants import MAR, OCT, MON
19
17
  from holidays.holiday_base import HolidayBase
20
18
  from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
21
19
 
@@ -30,6 +28,7 @@ class Greece(HolidayBase, ChristianHolidays, InternationalHolidays):
30
28
 
31
29
  country = "GR"
32
30
  default_language = "el"
31
+ supported_languages = ("el", "en_US")
33
32
 
34
33
  def __init__(self, *args, **kwargs):
35
34
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
@@ -51,6 +50,9 @@ class Greece(HolidayBase, ChristianHolidays, InternationalHolidays):
51
50
  # Independence Day.
52
51
  self._add_holiday(tr("Εικοστή Πέμπτη Μαρτίου"), MAR, 25)
53
52
 
53
+ # Good Friday.
54
+ self._add_good_friday(tr("Μεγάλη Παρασκευή"))
55
+
54
56
  # Easter Monday.
55
57
  self._add_easter_monday(tr("Δευτέρα του Πάσχα"))
56
58
 
@@ -61,8 +63,7 @@ class Greece(HolidayBase, ChristianHolidays, InternationalHolidays):
61
63
  name = self.tr("Εργατική Πρωτομαγιά")
62
64
  name_observed = self.tr("%s (παρατηρήθηκε)")
63
65
 
64
- dt = date(year, MAY, 1)
65
- self._add_holiday(name, dt)
66
+ dt = self._add_labor_day(name)
66
67
  if self.observed and self._is_weekend(dt):
67
68
  # https://en.wikipedia.org/wiki/Public_holidays_in_Greece
68
69
  labour_day_observed_date = _get_nth_weekday_from(1, MON, dt)
@@ -12,41 +12,45 @@
12
12
  from datetime import timedelta as td
13
13
  from gettext import gettext as tr
14
14
 
15
- from dateutil.easter import easter
16
-
17
15
  from holidays.calendars import _get_nth_weekday_of_month
18
- from holidays.constants import JAN, APR, MAY, SEP, OCT, DEC, WED
16
+ from holidays.constants import APR, SEP, OCT, WED
19
17
  from holidays.holiday_base import HolidayBase
18
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
20
19
 
21
20
 
22
- class Honduras(HolidayBase):
21
+ class Honduras(HolidayBase, ChristianHolidays, InternationalHolidays):
23
22
  # Artículo 339 del Código del Trabajo:
24
- # https://www.ilo.org/dyn/natlex/docs/WEBTEXT/29076/64849/S59HND01.htm#:~:text=El%20presente%20C%C3%B3digo%20regula%20las,compensaci%C3%B3n%20equitativa%20de%20su%20inversi%C3%B3n.
23
+ # https://www.ilo.org/dyn/natlex/docs/WEBTEXT/29076/64849/S59HND01.htm
25
24
 
26
25
  country = "HN"
27
26
  default_language = "es"
27
+ supported_languages = ("en_US", "es", "uk")
28
+
29
+ def __init__(self, *args, **kwargs):
30
+ ChristianHolidays.__init__(self)
31
+ InternationalHolidays.__init__(self)
32
+ super().__init__(*args, **kwargs)
28
33
 
29
34
  def _populate(self, year):
30
35
  super()._populate(year)
31
36
 
32
37
  # New Year's Day.
33
- self._add_holiday(tr("Año Nuevo"), JAN, 1)
38
+ self._add_new_years_day(tr("Año Nuevo"))
34
39
 
35
- easter_date = easter(year)
36
40
  # Maundy Thursday.
37
- self._add_holiday(tr("Jueves Santo"), easter_date + td(days=-3))
41
+ self._add_holy_thursday(tr("Jueves Santo"))
38
42
 
39
43
  # Good Friday.
40
- self._add_holiday(tr("Viernes Santo"), easter_date + td(days=-2))
44
+ self._add_good_friday(tr("Viernes Santo"))
41
45
 
42
46
  # Holy Saturday.
43
- self._add_holiday(tr("Sábado de Gloria"), easter_date + td(days=-1))
47
+ self._add_holy_saturday(tr("Sábado de Gloria"))
44
48
 
45
49
  # Panamerican Day.
46
50
  self._add_holiday(tr("Día de las Américas"), APR, 14)
47
51
 
48
52
  # Labor Day.
49
- self._add_holiday(tr("Día del Trabajo"), MAY, 1)
53
+ self._add_labor_day(tr("Día del Trabajo"))
50
54
 
51
55
  # Independence Day.
52
56
  self._add_holiday(tr("Día de la Independencia"), SEP, 15)
@@ -57,7 +61,7 @@ class Honduras(HolidayBase):
57
61
  self._add_holiday(tr("Día de Morazán"), OCT, 3)
58
62
 
59
63
  # Columbus Day.
60
- self._add_holiday(tr("Día de la Raza"), OCT, 12)
64
+ self._add_columbus_day(tr("Día de la Raza"))
61
65
 
62
66
  # Army Day.
63
67
  self._add_holiday(tr("Día de las Fuerzas Armadas"), OCT, 21)
@@ -71,7 +75,7 @@ class Honduras(HolidayBase):
71
75
  self._add_holiday(holiday_name, first_wednesday + td(days=+2))
72
76
 
73
77
  # Christmas.
74
- self._add_holiday(tr("Navidad"), DEC, 25)
78
+ self._add_christmas_day(tr("Navidad"))
75
79
 
76
80
 
77
81
  class HN(Honduras):