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
@@ -13,8 +13,7 @@ from datetime import date
13
13
  from datetime import timedelta as td
14
14
 
15
15
  from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
16
- from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV
17
- from holidays.constants import MON, TUE, FRI
16
+ from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV, MON, TUE, FRI
18
17
  from holidays.holiday_base import HolidayBase
19
18
  from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
20
19
 
@@ -42,14 +41,14 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
42
41
  InternationalHolidays.__init__(self)
43
42
  super().__init__(*args, **kwargs)
44
43
 
45
- def _add_observed(self, dt: date, include_sat: bool = True) -> None:
44
+ def _add_observed(self, dt: date, include_sat: bool = True, days: int = +1) -> None:
46
45
  if not self.observed:
47
46
  return None
48
- if self._is_sunday(dt) or (self._is_saturday(dt) and include_sat):
49
- obs_date = _get_nth_weekday_from(1, MON, dt)
50
- if obs_date in self:
51
- obs_date += td(days=+1)
52
- self._add_holiday("%s (Observed)" % self[dt], obs_date)
47
+ if self._is_sunday(dt) or (include_sat and self._is_saturday(dt)):
48
+ self._add_holiday(
49
+ "%s (Observed)" % self[dt],
50
+ dt + td(days=+2 if self._is_saturday(dt) else days),
51
+ )
53
52
 
54
53
  def _populate(self, year):
55
54
  super()._populate(year)
@@ -83,11 +82,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
83
82
  # Sovereign's Birthday
84
83
  def _add_sovereign_birthday(self, dt: date) -> None:
85
84
  if self._year >= 1936:
86
- name = (
87
- "Queen's Birthday"
88
- if 1952 <= self._year <= 2022
89
- else "King's Birthday"
90
- )
85
+ name = "Queen's Birthday" if 1952 <= self._year <= 2022 else "King's Birthday"
91
86
  self._add_holiday(name, dt)
92
87
 
93
88
  def _add_subdiv_holidays(self):
@@ -109,16 +104,16 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
109
104
  self._add_holiday("Anzac Day", APR, 25)
110
105
 
111
106
  # Christmas Day
112
- dec_25 = self._add_christmas_day("Christmas Day")
107
+ self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
113
108
 
114
109
  # Boxing Day
115
- dec_26 = self._add_christmas_day_two(
116
- "Proclamation Day" if self.subdiv == "SA" else "Boxing Day"
110
+ self._add_observed(
111
+ self._add_christmas_day_two(
112
+ "Proclamation Day" if self.subdiv == "SA" else "Boxing Day"
113
+ ),
114
+ days=+2,
117
115
  )
118
116
 
119
- self._add_observed(dec_25)
120
- self._add_observed(dec_26)
121
-
122
117
  super()._add_subdiv_holidays()
123
118
 
124
119
  def _add_subdiv_act_holidays(self):
@@ -127,14 +122,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
127
122
  self._add_easter_sunday("Easter Sunday")
128
123
 
129
124
  # Labour Day
130
- self._add_holiday(
131
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
132
- )
125
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
133
126
 
134
127
  # Sovereign's Birthday
135
- self._add_sovereign_birthday(
136
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
137
- )
128
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
138
129
 
139
130
  # Anzac Day
140
131
  if self._year >= 1921:
@@ -170,9 +161,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
170
161
  2016: date(2016, SEP, 26),
171
162
  2017: date(2017, SEP, 25),
172
163
  }
173
- dt = fc_dates.get(
174
- self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year)
175
- )
164
+ dt = fc_dates.get(self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year))
176
165
  self._add_holiday("Family & Community Day", dt)
177
166
 
178
167
  # Reconciliation Day
@@ -188,14 +177,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
188
177
  self._add_easter_sunday("Easter Sunday")
189
178
 
190
179
  # Labour Day
191
- self._add_holiday(
192
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
193
- )
180
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
194
181
 
195
182
  # Sovereign's Birthday
196
- self._add_sovereign_birthday(
197
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
198
- )
183
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
199
184
 
200
185
  # Bank Holiday
201
186
  if self._year >= 1912:
@@ -209,23 +194,17 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
209
194
  self._add_holy_saturday("Easter Saturday")
210
195
 
211
196
  # Labour Day
212
- self._add_holiday(
213
- "May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year)
214
- )
197
+ self._add_holiday("May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year))
215
198
 
216
199
  # Sovereign's Birthday
217
- self._add_sovereign_birthday(
218
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
219
- )
200
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
220
201
 
221
202
  # Anzac Day
222
203
  if self._year >= 1921:
223
204
  self._add_observed(date(self._year, APR, 25))
224
205
 
225
206
  # Picnic Day
226
- self._add_holiday(
227
- "Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year)
228
- )
207
+ self._add_holiday("Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year))
229
208
 
230
209
  def _add_subdiv_qld_holidays(self):
231
210
  # Easter
@@ -265,8 +244,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
265
244
  }
266
245
  dt = ekka_dates.get(
267
246
  self._year,
268
- _get_nth_weekday_from(1, FRI, date(self._year, AUG, 5))
269
- + td(days=+5),
247
+ _get_nth_weekday_from(1, FRI, date(self._year, AUG, 5)) + td(days=+5),
270
248
  )
271
249
  self._add_holiday("The Royal Queensland Show", dt)
272
250
 
@@ -275,14 +253,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
275
253
  self._add_holy_saturday("Easter Saturday")
276
254
 
277
255
  # Labour Day
278
- self._add_holiday(
279
- "Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
280
- )
256
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
281
257
 
282
258
  # Sovereign's Birthday
283
- self._add_sovereign_birthday(
284
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
285
- )
259
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
286
260
 
287
261
  # Anzac Day
288
262
  if self._year >= 1921:
@@ -291,9 +265,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
291
265
  # Adelaide Cup
292
266
  self._add_holiday(
293
267
  "Adelaide Cup",
294
- _get_nth_weekday_of_month(
295
- 2 if self._year >= 2006 else 3, MON, MAR, self._year
296
- ),
268
+ _get_nth_weekday_of_month(2 if self._year >= 2006 else 3, MON, MAR, self._year),
297
269
  )
298
270
 
299
271
  def _add_subdiv_tas_holidays(self):
@@ -304,9 +276,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
304
276
  )
305
277
 
306
278
  # Sovereign's Birthday
307
- self._add_sovereign_birthday(
308
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
309
- )
279
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
310
280
 
311
281
  def _add_subdiv_vic_holidays(self):
312
282
  # Easter
@@ -320,9 +290,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
320
290
  )
321
291
 
322
292
  # Sovereign's Birthday
323
- self._add_sovereign_birthday(
324
- _get_nth_weekday_of_month(2, MON, JUN, self._year)
325
- )
293
+ self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
326
294
 
327
295
  # Melbourne Cup
328
296
  self._add_holiday(
@@ -347,14 +315,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
347
315
 
348
316
  def _add_subdiv_wa_holidays(self):
349
317
  # Labour Day
350
- self._add_holiday(
351
- "Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year)
352
- )
318
+ self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year))
353
319
 
354
320
  # Sovereign's Birthday
355
- self._add_sovereign_birthday(
356
- _get_nth_weekday_from(-1, MON, date(self._year, OCT, 1))
357
- )
321
+ self._add_sovereign_birthday(_get_nth_weekday_from(-1, MON, date(self._year, OCT, 1)))
358
322
 
359
323
  # Anzac Day
360
324
  if self._year >= 1921:
@@ -363,9 +327,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
363
327
  # Western Australia Day
364
328
  if self._year >= 1833:
365
329
  self._add_holiday(
366
- "Western Australia Day"
367
- if self._year >= 2015
368
- else "Foundation Day",
330
+ "Western Australia Day" if self._year >= 2015 else "Foundation Day",
369
331
  _get_nth_weekday_of_month(1, MON, JUN, self._year),
370
332
  )
371
333
 
@@ -19,6 +19,7 @@ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
19
19
  class Austria(HolidayBase, ChristianHolidays, InternationalHolidays):
20
20
  country = "AT"
21
21
  default_language = "de"
22
+ supported_languages = ("de", "en_US", "uk")
22
23
  subdivisions = ("1", "2", "3", "4", "5", "6", "7", "8", "9")
23
24
 
24
25
  def __init__(self, *args, **kwargs) -> None:
@@ -12,8 +12,8 @@
12
12
  from datetime import date
13
13
  from datetime import timedelta as td
14
14
 
15
- from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT
16
- from holidays.constants import NOV, DEC
15
+ from holidays.calendars import _CustomIslamicCalendar
16
+ from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
17
17
  from holidays.holiday_base import HolidayBase
18
18
  from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
19
19
 
@@ -27,7 +27,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
27
27
 
28
28
  def __init__(self, *args, **kwargs):
29
29
  InternationalHolidays.__init__(self)
30
- IslamicHolidays.__init__(self)
30
+ IslamicHolidays.__init__(self, calendar=AzerbaijanIslamicCalendar())
31
31
  super().__init__(*args, **kwargs)
32
32
 
33
33
  def _populate(self, year):
@@ -72,9 +72,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
72
72
  observed_dates.add(self._add_holiday("Novruz", MAR, d))
73
73
 
74
74
  # Victory Day
75
- observed_dates.add(
76
- self._add_world_war_two_victory_day("Victory Day over Fascism")
77
- )
75
+ observed_dates.add(self._add_world_war_two_victory_day("Victory Day over Fascism"))
78
76
 
79
77
  # Republic Day
80
78
  if year >= 1992:
@@ -88,9 +86,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
88
86
 
89
87
  # National Salvation Day
90
88
  if year >= 1997:
91
- observed_dates.add(
92
- self._add_holiday("National Salvation Day", JUN, 15)
93
- )
89
+ observed_dates.add(self._add_holiday("National Salvation Day", JUN, 15))
94
90
 
95
91
  # Memorial Day (without extending)
96
92
  if year >= 2021:
@@ -122,67 +118,13 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
122
118
  self._add_new_years_eve(solidarity_name)
123
119
 
124
120
  if year >= 1993:
125
- dates_obs = {
126
- 2011: ((AUG, 30),),
127
- 2012: ((AUG, 19),),
128
- 2013: ((AUG, 8),),
129
- 2014: ((JUL, 28),),
130
- 2015: ((JUL, 17),),
131
- 2016: ((JUL, 6),),
132
- 2017: ((JUN, 26),),
133
- 2018: ((JUN, 15),),
134
- 2019: ((JUN, 5),),
135
- 2020: ((MAY, 24),),
136
- 2021: ((MAY, 13),),
137
- 2022: ((MAY, 2),),
138
- 2023: ((APR, 21),),
139
- }
140
121
  name = "Ramazan Bayrami"
141
- if year in dates_obs:
142
- for date_obs in dates_obs[year]:
143
- dt = self._add_holiday(name, *date_obs)
144
- observed_dates.add(dt)
145
- observed_dates.add(
146
- self._add_holiday(name, dt + td(days=+1))
147
- )
148
- else:
149
- observed_dates.update(
150
- self._add_eid_al_fitr_day(f"{name}* (*estimated)")
151
- )
152
- observed_dates.update(
153
- self._add_eid_al_fitr_day_two(f"{name}* (*estimated)")
154
- )
122
+ observed_dates.update(self._add_eid_al_fitr_day(name))
123
+ observed_dates.update(self._add_eid_al_fitr_day_two(name))
155
124
 
156
- dates_obs = {
157
- 2011: ((NOV, 6),),
158
- 2012: ((OCT, 25),),
159
- 2013: ((OCT, 15),),
160
- 2014: ((OCT, 4),),
161
- 2015: ((SEP, 24),),
162
- 2016: ((SEP, 12),),
163
- 2017: ((SEP, 1),),
164
- 2018: ((AUG, 22),),
165
- 2019: ((AUG, 12),),
166
- 2020: ((JUL, 31),),
167
- 2021: ((JUL, 20),),
168
- 2022: ((JUL, 9),),
169
- 2023: ((JUN, 28),),
170
- }
171
125
  name = "Gurban Bayrami"
172
- if year in dates_obs:
173
- for date_obs in dates_obs[year]:
174
- dt = self._add_holiday(name, *date_obs)
175
- observed_dates.add(dt)
176
- observed_dates.add(
177
- self._add_holiday(name, dt + td(days=+1))
178
- )
179
- else:
180
- observed_dates.update(
181
- self._add_eid_al_adha_day(f"{name}* (*estimated)")
182
- )
183
- observed_dates.update(
184
- self._add_eid_al_adha_day_two(f"{name}* (*estimated)")
185
- )
126
+ observed_dates.update(self._add_eid_al_adha_day(name))
127
+ observed_dates.update(self._add_eid_al_adha_day_two(name))
186
128
 
187
129
  # Article 105 of the Labor Code of the Republic of Azerbaijan states:
188
130
  # 5. If interweekly rest days and holidays that are not considered
@@ -212,10 +154,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
212
154
  # 6. If the holidays of Qurban and Ramadan coincide with
213
155
  # another holiday that is not considered a working day,
214
156
  # the next working day is considered a rest day.
215
- elif (
216
- len(self.get_list(hol_date)) > 1
217
- and hol_date not in non_observed_dates
218
- ):
157
+ elif len(self.get_list(hol_date)) > 1 and hol_date not in non_observed_dates:
219
158
  for hol_name in self.get_list(hol_date):
220
159
  if "Bayrami" in hol_name:
221
160
  _add_observed(hol_date, hol_name)
@@ -227,3 +166,37 @@ class AZ(Azerbaijan):
227
166
 
228
167
  class AZE(Azerbaijan):
229
168
  pass
169
+
170
+
171
+ class AzerbaijanIslamicCalendar(_CustomIslamicCalendar):
172
+ EID_AL_ADHA_DATES = {
173
+ 2011: (NOV, 6),
174
+ 2012: (OCT, 25),
175
+ 2013: (OCT, 15),
176
+ 2014: (OCT, 4),
177
+ 2015: (SEP, 24),
178
+ 2016: (SEP, 12),
179
+ 2017: (SEP, 1),
180
+ 2018: (AUG, 22),
181
+ 2019: (AUG, 12),
182
+ 2020: (JUL, 31),
183
+ 2021: (JUL, 20),
184
+ 2022: (JUL, 9),
185
+ 2023: (JUN, 28),
186
+ }
187
+
188
+ EID_AL_FITR_DATES = {
189
+ 2011: (AUG, 30),
190
+ 2012: (AUG, 19),
191
+ 2013: (AUG, 8),
192
+ 2014: (JUL, 28),
193
+ 2015: (JUL, 17),
194
+ 2016: (JUL, 6),
195
+ 2017: (JUN, 26),
196
+ 2018: (JUN, 15),
197
+ 2019: (JUN, 5),
198
+ 2020: (MAY, 24),
199
+ 2021: (MAY, 13),
200
+ 2022: (MAY, 2),
201
+ 2023: (APR, 21),
202
+ }
@@ -9,7 +9,7 @@
9
9
  # Website: https://github.com/dr-prodigy/python-holidays
10
10
  # License: MIT (see LICENSE file)
11
11
 
12
- from holidays.calendars import _CustomCalendar, _IslamicLunar
12
+ from holidays.calendars import _CustomIslamicCalendar
13
13
  from holidays.constants import FRI, SAT, MAY, JUL, AUG, OCT, DEC
14
14
  from holidays.holiday_base import HolidayBase
15
15
  from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
@@ -79,23 +79,23 @@ class BAH(Bahrain):
79
79
  pass
80
80
 
81
81
 
82
- class BahrainIslamicCalendar(_CustomCalendar, _IslamicLunar):
82
+ class BahrainIslamicCalendar(_CustomIslamicCalendar):
83
83
  ASHURA_DATES = {
84
- 2022: ((AUG, 8),),
84
+ 2022: (AUG, 8),
85
85
  }
86
86
 
87
87
  EID_AL_ADHA = {
88
- 2022: ((JUL, 9),),
88
+ 2022: (JUL, 9),
89
89
  }
90
90
 
91
91
  EID_AL_FITR_DATES = {
92
- 2022: ((MAY, 2),),
92
+ 2022: (MAY, 2),
93
93
  }
94
94
 
95
95
  HIJRI_NEW_YEAR_DATES = {
96
- 2022: ((JUL, 30),),
96
+ 2022: (JUL, 30),
97
97
  }
98
98
 
99
99
  MAWLID_DATES = {
100
- 2022: ((OCT, 8),),
100
+ 2022: (OCT, 8),
101
101
  }
@@ -31,9 +31,7 @@ class Bangladesh(HolidayBase):
31
31
  self[date(year, FEB, 21)] = "International Mother's language Day"
32
32
 
33
33
  # 17th March
34
- self[date(year, MAR, 17)] = (
35
- "Sheikh Mujibur Rahman's Birthday " "and Children's Day"
36
- )
34
+ self[date(year, MAR, 17)] = "Sheikh Mujibur Rahman's Birthday and Children's Day"
37
35
 
38
36
  # 26th March
39
37
  self[date(year, MAR, 26)] = "Independence Day"
@@ -28,6 +28,7 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays):
28
28
 
29
29
  country = "BY"
30
30
  default_language = "be"
31
+ supported_languages = ("be", "en_US")
31
32
 
32
33
  def __init__(self, *args, **kwargs):
33
34
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
@@ -51,9 +52,7 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays):
51
52
  self._add_new_years_day_two(tr("Новы год"))
52
53
 
53
54
  # Orthodox Christmas Day.
54
- self._add_christmas_day(
55
- tr("Нараджэнне Хрыстова (праваслаўнае Раство)")
56
- )
55
+ self._add_christmas_day(tr("Нараджэнне Хрыстова (праваслаўнае Раство)"))
57
56
 
58
57
  # Women's Day.
59
58
  self._add_womens_day(tr("Дзень жанчын"))
@@ -0,0 +1,128 @@
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 datetime import date
13
+ from datetime import timedelta as td
14
+ from typing import Optional
15
+
16
+ from holidays.calendars import _get_nth_weekday_from
17
+ from holidays.constants import JAN, MAR, MAY, AUG, SEP, OCT, NOV, MON
18
+ from holidays.holiday_base import HolidayBase
19
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
20
+
21
+
22
+ class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
23
+ """
24
+ References:
25
+ - https://en.wikipedia.org/wiki/Public_holidays_in_Belize
26
+ - http://www.belizelaw.org/web/lawadmin/PDF%20files/cap289.pdf
27
+ - https://www.pressoffice.gov.bz/public-and-bank-holidays-2022-updated/
28
+ - https://www.pressoffice.gov.bz/government-of-belize-establishes-new-public-and-bank-holidays/ # noqa: E501
29
+ """
30
+
31
+ country = "BZ"
32
+
33
+ def __init__(self, *args, **kwargs) -> None:
34
+ ChristianHolidays.__init__(self)
35
+ InternationalHolidays.__init__(self)
36
+ super().__init__(*args, **kwargs)
37
+
38
+ def _add_movable_holiday(self, *args) -> None:
39
+ # Chapter 289 of the laws of Belize states that if the holiday falls
40
+ # on a Sunday or a Friday, the following Monday is observed as public
41
+ # holiday; further, if the holiday falls on a Tuesday, Wednesday or
42
+ # Thursday, the preceding Monday is observed as public holiday
43
+ name, dt = self._parse_holiday(*args)
44
+ if self.observed:
45
+ if self._is_friday(dt) or self._is_sunday(dt):
46
+ dt = _get_nth_weekday_from(1, MON, dt)
47
+ name = "%s (Observed)" % name
48
+ elif self._is_tuesday(dt) or self._is_wednesday(dt) or self._is_thursday(dt):
49
+ dt = _get_nth_weekday_from(-1, MON, dt)
50
+ name = "%s (Observed)" % name
51
+ self._add_holiday(name, dt)
52
+
53
+ def _add_holiday(self, *args) -> Optional[date]:
54
+ # Chapter 289 of the laws of Belize states that if the holiday falls
55
+ # on a Sunday, the following Monday is observed as public holiday
56
+ name, dt = self._parse_holiday(*args)
57
+ if self.observed and self._is_sunday(dt) and dt + td(days=+1) not in self:
58
+ name = "%s (Observed)" % name
59
+ dt += td(days=+1)
60
+ return super()._add_holiday(name, dt)
61
+
62
+ def _populate(self, year: int) -> None:
63
+ # Belize was granted independence on 21.09.1981.
64
+ if year <= 1981:
65
+ return None
66
+ super()._populate(year)
67
+
68
+ # New Year's Day.
69
+ self._add_new_years_day("New Year's Day")
70
+
71
+ if year >= 2021:
72
+ # George Price Day.
73
+ self._add_holiday("George Price Day", JAN, 15)
74
+
75
+ # National Heroes and Benefactors Day.
76
+ self._add_movable_holiday("National Heroes and Benefactors Day", MAR, 9)
77
+
78
+ # Good Friday.
79
+ self._add_good_friday("Good Friday")
80
+
81
+ # Holy Saturday.
82
+ self._add_holy_saturday("Holy Saturday")
83
+
84
+ # Easter Monday.
85
+ self._add_easter_monday("Easter Monday")
86
+
87
+ # Labour Day.
88
+ self._add_labor_day("Labour Day")
89
+
90
+ if year <= 2021:
91
+ # Commonwealth Day.
92
+ self._add_movable_holiday("Commonwealth Day", MAY, 24)
93
+
94
+ if year >= 2021:
95
+ # Emancipation Day.
96
+ self._add_movable_holiday("Emancipation Day", AUG, 1)
97
+
98
+ # Saint George's Caye Day.
99
+ self._add_holiday("Saint George's Caye Day", SEP, 10)
100
+
101
+ # Independence Day.
102
+ self._add_holiday("Independence Day", SEP, 21)
103
+
104
+ # Indigenous Peoples' Resistance Day / Pan American Day.
105
+ self._add_movable_holiday(
106
+ "Indigenous Peoples' Resistance Day" if year >= 2021 else "Pan American Day",
107
+ date(year, OCT, 12),
108
+ )
109
+
110
+ # Garifuna Settlement Day.
111
+ self._add_holiday("Garifuna Settlement Day", NOV, 19)
112
+
113
+ # Populated before Christmas for right obvserved Christmas calculation
114
+ # (if Christmas falls on Sunday, there should be no observed Christmas
115
+ # on Monday)
116
+ # Boxing Day.
117
+ self._add_christmas_day_two("Boxing Day")
118
+
119
+ # Christmas Day.
120
+ self._add_christmas_day("Christmas Day")
121
+
122
+
123
+ class BZ(Belize):
124
+ pass
125
+
126
+
127
+ class BLZ(Belize):
128
+ pass
@@ -51,9 +51,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
51
51
 
52
52
  # Plurinational State Foundation Day.
53
53
  if year >= 2010:
54
- self._add_holiday(
55
- "Nacimiento del Estado Plurinacional de Bolivia", JAN, 22
56
- )
54
+ self._add_holiday("Nacimiento del Estado Plurinacional de Bolivia", JAN, 22)
57
55
 
58
56
  # Carnival.
59
57
  name = "Feriado por Carnaval"
@@ -115,9 +113,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
115
113
 
116
114
  def _add_subdiv_o_holidays(self):
117
115
  # Carnival in Oruro.
118
- self._add_holiday(
119
- "Carnaval de Oruro", self._easter_sunday + td(days=-51)
120
- )
116
+ self._add_holiday("Carnaval de Oruro", self._easter_sunday + td(days=-51))
121
117
 
122
118
  def _add_subdiv_s_holidays(self):
123
119
  # Santa Cruz Day.
@@ -15,13 +15,10 @@ from datetime import timedelta as td
15
15
  from holidays.calendars import GREGORIAN_CALENDAR, JULIAN_CALENDAR
16
16
  from holidays.constants import JAN, MAR, NOV
17
17
  from holidays.holiday_base import HolidayBase
18
- from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
19
- from holidays.holiday_groups import InternationalHolidays
18
+ from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
20
19
 
21
20
 
22
- class BosniaAndHerzegovina(
23
- HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
24
- ):
21
+ class BosniaAndHerzegovina(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
25
22
  """
26
23
  https://en.wikipedia.org/wiki/Public_holidays_in_Bosnia_and_Herzegovina
27
24
  https://www.paragraf.ba/neradni-dani-fbih.html
@@ -59,9 +56,7 @@ class BosniaAndHerzegovina(
59
56
  self._add_holiday("Treći dan Dana rada", may_1 + td(days=+2))
60
57
 
61
58
  # Catholic Easter Monday
62
- self._add_easter_monday(
63
- "Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR
64
- )
59
+ self._add_easter_monday("Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR)
65
60
 
66
61
  # Catholic Christmas
67
62
  self._add_christmas_day("Božić (Katolički)", GREGORIAN_CALENDAR)
@@ -76,11 +71,7 @@ class BosniaAndHerzegovina(
76
71
  # New Year's Day
77
72
  jan_1 = self._add_new_years_day("Nova Godina")
78
73
  self._add_new_years_day_two("Drugi dan Nove Godine")
79
- if (
80
- self.subdiv in {"FBiH", "BD"}
81
- and self.observed
82
- and self._is_sunday(jan_1)
83
- ):
74
+ if self.subdiv in {"FBiH", "BD"} and self.observed and self._is_sunday(jan_1):
84
75
  self._add_new_years_day_three("Treći dan Nove Godine")
85
76
 
86
77
  super()._add_subdiv_holidays()
@@ -141,10 +132,7 @@ class BosniaAndHerzegovina(
141
132
 
142
133
  # Dayton Agreement Day
143
134
  self._add_holiday(
144
- (
145
- "Dan uspostave Opšteg okvirnog sporazuma za mir u "
146
- "Bosni i Hercegovini"
147
- ),
135
+ ("Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini"),
148
136
  NOV,
149
137
  21,
150
138
  )