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
@@ -12,38 +12,36 @@
12
12
  from datetime import date
13
13
  from datetime import timedelta as td
14
14
 
15
- from dateutil.easter import easter
16
-
17
15
  from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
18
- from holidays.constants import JAN, FEB, MAR, APR, JUN, JUL, SEP, OCT, NOV
19
- from holidays.constants import DEC, MON, TUE, WED
16
+ from holidays.constants import JAN, FEB, MAR, APR, JUN, JUL, SEP, OCT, NOV, DEC, MON, TUE, WED
20
17
  from holidays.holiday_base import HolidayBase
18
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
21
19
 
22
20
 
23
- class NewZealand(HolidayBase):
21
+ class NewZealand(HolidayBase, ChristianHolidays, InternationalHolidays):
24
22
  country = "NZ"
25
23
  special_holidays = {2022: ((SEP, 26, "Queen Elizabeth II Memorial Day"),)}
26
24
  subdivisions = (
27
25
  # https://en.wikipedia.org/wiki/ISO_3166-2:NZ
28
- "AUK", # Auckland / Tāmaki-makau-rau
26
+ "AUK", # Auckland / Tāmaki-makaurau
27
+ "BOP", # Bay of Plenty / Toi Moana
29
28
  "CAN", # Canterbury / Waitaha
30
29
  "CIT", # Chatham Islands Territory / Wharekauri
30
+ "GIS", # Gisborne / Te Tairāwhiti
31
31
  "HKB", # Hawke's Bay / Te Matau a Māui
32
32
  "MBH", # Marlborough
33
+ "MWT", # Manawatū Whanganui
33
34
  "NSN", # Nelson / Whakatū
34
35
  "NTL", # Northland / Te Tai tokerau
35
36
  "OTA", # Otago / Ō Tākou
36
- "STL", # Southland / Murihiku
37
+ "STL", # Southland / Te Taiao Tonga
38
+ "TAS", # Tasman / Te tai o Aorere
37
39
  "TKI", # Taranaki
38
- "WGN", # Wellington / Te Whanga-nui-a-Tara
39
- "WTC", # West Coast / Te Taihau ā uru
40
- "South Canterbury",
41
- # "BOP", # Bay of Plenty / Te Moana a Toi Te Huatahi
42
- # "GIS", # Gisborne / Tūranga nui a Kiwa
43
- # "MWT", # Manawatu-Wanganui
44
- # "TAS", # Tasman
45
- # "WKO", # Waikato
40
+ "WGN", # Greater Wellington / Te Pane Matua Taiao
41
+ "WKO", # Waikato
42
+ "WTC", # West Coast / Te Tai o Poutini
46
43
  )
44
+
47
45
  _deprecated_subdivisions = (
48
46
  "Auckland",
49
47
  "Canterbury",
@@ -51,9 +49,11 @@ class NewZealand(HolidayBase):
51
49
  "Hawke's Bay",
52
50
  "Marlborough",
53
51
  "Nelson",
52
+ "New Plymouth",
54
53
  "Northland",
55
54
  "Otago",
56
55
  "South Canterbury",
56
+ "STC",
57
57
  "Southland",
58
58
  "Taranaki",
59
59
  "Waitangi",
@@ -63,17 +63,23 @@ class NewZealand(HolidayBase):
63
63
  "WTL", # Correct code is WTC
64
64
  )
65
65
 
66
- def _get_nearest_monday(self, dt: date) -> date:
66
+ def _get_nearest_monday(self, *args) -> date:
67
+ dt = date(self._year, *args)
67
68
  return _get_nth_weekday_from(
68
69
  1 if self._is_friday(dt) or self._is_weekend(dt) else -1, MON, dt
69
70
  )
70
71
 
71
- def _add_observed(self, dt: date) -> None:
72
+ def _add_observed(self, dt: date, days: int = +1) -> None:
72
73
  if self.observed and self._is_weekend(dt):
73
- obs_date = _get_nth_weekday_from(1, MON, dt)
74
- if self.get(obs_date):
75
- obs_date += td(days=+1)
76
- self[obs_date] = f"{self[dt]} (Observed)"
74
+ self._add_holiday(
75
+ "%s (Observed)" % self[dt],
76
+ dt + td(days=+2 if self._is_saturday(dt) else days),
77
+ )
78
+
79
+ def __init__(self, *args, **kwargs):
80
+ ChristianHolidays.__init__(self)
81
+ InternationalHolidays.__init__(self)
82
+ super().__init__(*args, **kwargs)
77
83
 
78
84
  def _populate(self, year):
79
85
  # Bank Holidays Act 1873
@@ -93,56 +99,43 @@ class NewZealand(HolidayBase):
93
99
  super()._populate(year)
94
100
 
95
101
  # New Year's Day
96
- jan1 = date(year, JAN, 1)
97
- self[jan1] = "New Year's Day"
98
-
99
- jan2 = date(year, JAN, 2)
100
- self[jan2] = "Day after New Year's Day"
101
- self._add_observed(jan1)
102
- self._add_observed(jan2)
102
+ self._add_observed(self._add_new_years_day("New Year's Day"), days=+2)
103
+ self._add_observed(self._add_new_years_day_two("Day after New Year's Day"), days=+2)
103
104
 
104
105
  # Waitangi Day
105
106
  if year >= 1974:
106
- name = "New Zealand Day"
107
- if year >= 1977:
108
- name = "Waitangi Day"
109
- feb6 = date(year, FEB, 6)
110
- self[feb6] = name
107
+ name = "Waitangi Day" if year >= 1977 else "New Zealand Day"
108
+ feb_6 = self._add_holiday(name, FEB, 6)
111
109
  if year >= 2014:
112
- self._add_observed(feb6)
110
+ self._add_observed(feb_6)
113
111
 
114
112
  # Anzac Day
115
113
  if year >= 1921:
116
- apr25 = date(year, APR, 25)
117
- self[apr25] = "Anzac Day"
114
+ apr_25 = self._add_holiday("Anzac Day", APR, 25)
118
115
  if year >= 2014:
119
- self._add_observed(apr25)
116
+ self._add_observed(apr_25)
120
117
 
121
118
  # Easter
122
- easter_date = easter(year)
123
- self[easter_date + td(days=-2)] = "Good Friday"
124
- self[easter_date + td(days=+1)] = "Easter Monday"
119
+ self._add_good_friday("Good Friday")
120
+ self._add_easter_monday("Easter Monday")
125
121
 
126
122
  # Sovereign's Birthday
127
123
  if year >= 1902:
128
- name = "King's Birthday"
129
- if 1952 <= year <= 2022:
130
- name = "Queen's Birthday"
124
+ name = "Queen's Birthday" if 1952 <= year <= 2022 else "King's Birthday"
131
125
  if year == 1952:
132
- self[date(year, JUN, 2)] = name # Elizabeth II
126
+ dt = date(year, JUN, 2) # Elizabeth II
133
127
  elif year >= 1938:
134
- self[
135
- _get_nth_weekday_of_month(1, MON, JUN, year)
136
- ] = name # EII & GVI
128
+ dt = _get_nth_weekday_of_month(1, MON, JUN, year) # EII & GVI
137
129
  elif year == 1937:
138
- self[date(year, JUN, 9)] = name # George VI
130
+ dt = date(year, JUN, 9) # George VI
139
131
  elif year == 1936:
140
- self[date(year, JUN, 23)] = name # Edward VIII
132
+ dt = date(year, JUN, 23) # Edward VIII
141
133
  elif year >= 1912:
142
- self[date(year, JUN, 3)] = name # George V
134
+ dt = date(year, JUN, 3) # George V
143
135
  else:
144
136
  # http://paperspast.natlib.govt.nz/cgi-bin/paperspast?a=d&d=NZH19091110.2.67
145
- self[date(year, NOV, 9)] = name # Edward VII
137
+ dt = date(year, NOV, 9) # Edward VII
138
+ self._add_holiday(name, dt)
146
139
 
147
140
  # Matariki
148
141
  dates_obs = {
@@ -179,96 +172,135 @@ class NewZealand(HolidayBase):
179
172
  2052: (JUN, 21),
180
173
  }
181
174
  if year in dates_obs:
182
- self[date(year, *dates_obs[year])] = "Matariki"
175
+ self._add_holiday("Matariki", *dates_obs[year])
183
176
 
184
177
  # Labour Day
185
- name = "Labour Day"
186
- if year >= 1910:
187
- self[_get_nth_weekday_of_month(4, MON, OCT, year)] = name
188
- elif year >= 1900:
189
- self[_get_nth_weekday_of_month(2, WED, OCT, year)] = name
178
+ if year >= 1900:
179
+ dt = (
180
+ _get_nth_weekday_of_month(4, MON, OCT, year)
181
+ if year >= 1910
182
+ else _get_nth_weekday_of_month(2, WED, OCT, year)
183
+ )
184
+ self._add_holiday("Labour Day", dt)
190
185
 
191
186
  # Christmas Day
192
- dec25 = date(year, DEC, 25)
193
- self[dec25] = "Christmas Day"
187
+ self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
194
188
 
195
189
  # Boxing Day
196
- dec26 = date(year, DEC, 26)
197
- self[dec26] = "Boxing Day"
198
- self._add_observed(dec25)
199
- self._add_observed(dec26)
200
-
201
- # Province Anniversary Day
202
- if self.subdiv in {"Auckland", "AUK", "Northland", "NTL"}:
203
- if 1964 <= year <= 1973 and self.subdiv in {"Northland", "NTL"}:
204
- name = "Waitangi Day"
205
- dt = date(year, FEB, 6)
206
- else:
207
- name = "Auckland Anniversary Day"
208
- dt = date(year, JAN, 29)
209
- self[self._get_nearest_monday(dt)] = name
210
-
211
- elif self.subdiv in {"New Plymouth", "Taranaki", "TKI"}:
212
- self[
213
- _get_nth_weekday_of_month(2, MON, MAR, year)
214
- ] = "Taranaki Anniversary Day"
215
-
216
- elif self.subdiv in {"Hawke's Bay", "HKB"}:
217
- self[
218
- _get_nth_weekday_of_month(4, MON, OCT, year) + td(days=-3)
219
- ] = "Hawke's Bay Anniversary Day"
220
-
221
- elif self.subdiv in {"WGN", "Wellington"}:
222
- self[
223
- self._get_nearest_monday(date(year, JAN, 22))
224
- ] = "Wellington Anniversary Day"
225
-
226
- elif self.subdiv in {"Marlborough", "MBH"}:
227
- self[
228
- _get_nth_weekday_of_month(4, MON, OCT, year) + td(days=+7)
229
- ] = "Marlborough Anniversary Day"
230
-
231
- elif self.subdiv in {"Nelson", "NSN"}:
232
- self[
233
- self._get_nearest_monday(date(year, FEB, 1))
234
- ] = "Nelson Anniversary Day"
235
-
236
- elif self.subdiv in {"CAN", "Canterbury"}:
237
- self[
238
- _get_nth_weekday_of_month(1, TUE, NOV, year) + td(days=+10)
239
- ] = "Canterbury Anniversary Day"
240
-
241
- elif self.subdiv in {"South Canterbury", "STC"}:
242
- self[
243
- _get_nth_weekday_of_month(4, MON, SEP, year)
244
- ] = "South Canterbury Anniversary Day"
245
-
246
- elif self.subdiv in {"WTC", "West Coast", "WTL", "Westland"}:
247
- name = "West Coast Anniversary Day"
248
- # Observance varies?!?!
249
- if year == 2005: # special case?!?!
250
- self[date(year, DEC, 5)] = name
251
- else:
252
- self[self._get_nearest_monday(date(year, DEC, 1))] = name
253
-
254
- elif self.subdiv in {"OTA", "Otago"}:
255
- # there is no easily determined single day of local observance?!?!
256
- dt = self._get_nearest_monday(date(year, MAR, 23))
257
- if dt == easter_date + td(days=+1): # Avoid Easter Monday
258
- dt += td(days=+1)
259
- self[dt] = "Otago Anniversary Day"
260
-
261
- elif self.subdiv in {"STL", "Southland"}:
262
- name = "Southland Anniversary Day"
263
- if year >= 2012:
264
- self[easter_date + td(days=+2)] = name
265
- else:
266
- self[self._get_nearest_monday(date(year, JAN, 17))] = name
190
+ self._add_observed(self._add_christmas_day_two("Boxing Day"), days=+2)
191
+
192
+ if self.subdiv == "Auckland":
193
+ self._add_subdiv_auk_holidays()
194
+ elif self.subdiv == "Canterbury":
195
+ self._add_subdiv_can_holidays()
196
+ elif self.subdiv == "Chatham Islands":
197
+ self._add_subdiv_cit_holidays()
198
+ elif self.subdiv == "Hawke's Bay":
199
+ self._add_subdiv_hkb_holidays()
200
+ elif self.subdiv == "Marlborough":
201
+ self._add_subdiv_mbh_holidays()
202
+ elif self.subdiv == "Nelson":
203
+ self._add_subdiv_nsn_holidays()
204
+ elif self.subdiv == "Northland":
205
+ self._add_subdiv_ntl_holidays()
206
+ elif self.subdiv == "Otago":
207
+ self._add_subdiv_ota_holidays()
208
+ elif self.subdiv in {"New Plymouth", "Taranaki"}:
209
+ self._add_subdiv_tki_holidays()
210
+ elif self.subdiv == "South Canterbury":
211
+ self._add_subdiv_stc_holidays()
212
+ elif self.subdiv == "Southland":
213
+ self._add_subdiv_stl_holidays()
214
+ elif self.subdiv == "Wellington":
215
+ self._add_subdiv_wgn_holidays()
216
+ elif self.subdiv in {"West Coast", "WTL", "Westland"}:
217
+ self._add_subdiv_wtc_holidays()
218
+
219
+ def _add_subdiv_auk_holidays(self):
220
+ self._add_holiday(
221
+ "Auckland Anniversary Day",
222
+ self._get_nearest_monday(JAN, 29),
223
+ )
224
+
225
+ def _add_subdiv_can_holidays(self):
226
+ self._add_holiday(
227
+ "Canterbury Anniversary Day",
228
+ _get_nth_weekday_of_month(1, TUE, NOV, self._year) + td(days=+10),
229
+ )
230
+
231
+ def _add_subdiv_cit_holidays(self):
232
+ self._add_holiday(
233
+ "Chatham Islands Anniversary Day",
234
+ self._get_nearest_monday(NOV, 30),
235
+ )
236
+
237
+ def _add_subdiv_hkb_holidays(self):
238
+ self._add_holiday(
239
+ "Hawke's Bay Anniversary Day",
240
+ _get_nth_weekday_of_month(4, MON, OCT, self._year) + td(days=-3),
241
+ )
242
+
243
+ def _add_subdiv_mbh_holidays(self):
244
+ self._add_holiday(
245
+ "Marlborough Anniversary Day",
246
+ _get_nth_weekday_of_month(4, MON, OCT, self._year) + td(days=+7),
247
+ )
248
+
249
+ def _add_subdiv_nsn_holidays(self):
250
+ self._add_holiday(
251
+ "Nelson Anniversary Day",
252
+ self._get_nearest_monday(FEB, 1),
253
+ )
254
+
255
+ def _add_subdiv_ntl_holidays(self):
256
+ if 1964 <= self._year <= 1973:
257
+ name = "Waitangi Day"
258
+ dt = (FEB, 6)
259
+ else:
260
+ name = "Auckland Anniversary Day"
261
+ dt = (JAN, 29)
262
+ self._add_holiday(name, self._get_nearest_monday(*dt))
263
+
264
+ def _add_subdiv_ota_holidays(self):
265
+ # there is no easily determined single day of local observance?!?!
266
+ dt = self._get_nearest_monday(MAR, 23)
267
+ if dt == self._easter_sunday + td(days=+1): # Avoid Easter Monday
268
+ dt += td(days=+1)
269
+ self._add_holiday("Otago Anniversary Day", dt)
270
+
271
+ def _add_subdiv_stc_holidays(self):
272
+ self._add_holiday(
273
+ "South Canterbury Anniversary Day",
274
+ _get_nth_weekday_of_month(4, MON, SEP, self._year),
275
+ )
267
276
 
268
- elif self.subdiv in {"CIT", "Chatham Islands"}:
269
- self[
270
- self._get_nearest_monday(date(year, NOV, 30))
271
- ] = "Chatham Islands Anniversary Day"
277
+ def _add_subdiv_stl_holidays(self):
278
+ dt = (
279
+ self._easter_sunday + td(days=+2)
280
+ if self._year >= 2012
281
+ else self._get_nearest_monday(JAN, 17)
282
+ )
283
+ self._add_holiday("Southland Anniversary Day", dt)
284
+
285
+ def _add_subdiv_tki_holidays(self):
286
+ self._add_holiday(
287
+ "Taranaki Anniversary Day",
288
+ _get_nth_weekday_of_month(2, MON, MAR, self._year),
289
+ )
290
+
291
+ def _add_subdiv_wgn_holidays(self):
292
+ self._add_holiday(
293
+ "Wellington Anniversary Day",
294
+ self._get_nearest_monday(JAN, 22),
295
+ )
296
+
297
+ def _add_subdiv_wtc_holidays(self):
298
+ dt = (
299
+ date(self._year, DEC, 5)
300
+ if self._year == 2005 # special case?!?!
301
+ else self._get_nearest_monday(DEC, 1)
302
+ )
303
+ self._add_holiday("West Coast Anniversary Day", dt)
272
304
 
273
305
 
274
306
  class NZ(NewZealand):
@@ -9,16 +9,14 @@
9
9
  # Website: https://github.com/dr-prodigy/python-holidays
10
10
  # License: MIT (see LICENSE file)
11
11
 
12
- from datetime import timedelta as td
13
12
  from gettext import gettext as tr
14
13
 
15
- from dateutil.easter import easter
16
-
17
- from holidays.constants import JAN, MAY, JUL, AUG, SEP, DEC
14
+ from holidays.constants import JUL, AUG, SEP
18
15
  from holidays.holiday_base import HolidayBase
16
+ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
19
17
 
20
18
 
21
- class Nicaragua(HolidayBase):
19
+ class Nicaragua(HolidayBase, ChristianHolidays, InternationalHolidays):
22
20
  country = "NI"
23
21
  default_language = "es"
24
22
  subdivisions = (
@@ -40,26 +38,30 @@ class Nicaragua(HolidayBase):
40
38
  "RI",
41
39
  "SJ",
42
40
  )
41
+ supported_languages = ("en_US", "es", "uk")
43
42
 
44
- def __init__(self, **kwargs):
43
+ def __init__(self, *args, **kwargs):
44
+ ChristianHolidays.__init__(self)
45
+ InternationalHolidays.__init__(self)
45
46
  # Default subdivision to MN; prov for backwards compatibility
46
47
  if not kwargs.get("subdiv", kwargs.get("prov")):
47
48
  kwargs["subdiv"] = "MN"
48
- HolidayBase.__init__(self, **kwargs)
49
+ super().__init__(*args, **kwargs)
49
50
 
50
51
  def _populate(self, year):
51
52
  super()._populate(year)
52
53
 
53
54
  # New Year's Day.
54
- self._add_holiday(tr("Año Nuevo"), JAN, 1)
55
+ self._add_new_years_day(tr("Año Nuevo"))
55
56
 
56
- easter_date = easter(year)
57
57
  # Maundy Thursday.
58
- self._add_holiday(tr("Jueves Santo"), easter_date + td(days=-3))
58
+ self._add_holy_thursday(tr("Jueves Santo"))
59
+
59
60
  # Good Friday.
60
- self._add_holiday(tr("Viernes Santo"), easter_date + td(days=-2))
61
- # Labour Day.
62
- self._add_holiday(tr("Día del Trabajo"), MAY, 1)
61
+ self._add_good_friday(tr("Viernes Santo"))
62
+
63
+ # Labor Day.
64
+ self._add_labor_day(tr("Día del Trabajo"))
63
65
 
64
66
  if year >= 1979:
65
67
  # Revolution Day.
@@ -67,19 +69,22 @@ class Nicaragua(HolidayBase):
67
69
 
68
70
  # Battle of San Jacinto Day.
69
71
  self._add_holiday(tr("Batalla de San Jacinto"), SEP, 14)
72
+
70
73
  # Independence Day.
71
74
  self._add_holiday(tr("Día de la Independencia"), SEP, 15)
75
+
72
76
  # Virgin's Day.
73
- self._add_holiday(tr("Concepción de María"), DEC, 8)
77
+ self._add_immaculate_conception_day(tr("Concepción de María"))
78
+
74
79
  # Christmas.
75
- self._add_holiday(tr("Navidad"), DEC, 25)
76
-
77
- # Provinces festive day
78
- if self.subdiv == "MN":
79
- # Descent of Saint Dominic.
80
- self._add_holiday(tr("Bajada de Santo Domingo"), AUG, 1)
81
- # Ascent of Saint Dominic.
82
- self._add_holiday(tr("Subida de Santo Domingo"), AUG, 10)
80
+ self._add_christmas_day(tr("Navidad"))
81
+
82
+ def _add_subdiv_mn_holidays(self):
83
+ # Descent of Saint Dominic.
84
+ self._add_holiday(tr("Bajada de Santo Domingo"), AUG, 1)
85
+
86
+ # Ascent of Saint Dominic.
87
+ self._add_holiday(tr("Subida de Santo Domingo"), AUG, 10)
83
88
 
84
89
 
85
90
  class NI(Nicaragua):
@@ -14,13 +14,10 @@ from datetime import timedelta as td
14
14
 
15
15
  from holidays.constants import FEB, MAY, JUN, OCT
16
16
  from holidays.holiday_base import HolidayBase
17
- from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
18
- from holidays.holiday_groups import InternationalHolidays
17
+ from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
19
18
 
20
19
 
21
- class Nigeria(
22
- HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
23
- ):
20
+ class Nigeria(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
24
21
  """
25
22
  https://en.wikipedia.org/wiki/Public_holidays_in_Nigeria
26
23
  """
@@ -64,9 +61,7 @@ class Nigeria(
64
61
  observed_dates.add(
65
62
  self._add_holiday(
66
63
  "Democracy Day",
67
- date(year, JUN, 12)
68
- if year >= 2019
69
- else date(year, MAY, 29),
64
+ date(year, JUN, 12) if year >= 2019 else date(year, MAY, 29),
70
65
  )
71
66
  )
72
67
 
@@ -83,17 +78,13 @@ class Nigeria(
83
78
  # This is an estimate
84
79
  # date of observance is announced yearly
85
80
  observed_dates.update(self._add_eid_al_fitr_day("Eid-el-Fitr"))
86
- observed_dates.update(
87
- self._add_eid_al_fitr_day_two("Eid-el-Fitr Holiday")
88
- )
81
+ observed_dates.update(self._add_eid_al_fitr_day_two("Eid-el-Fitr Holiday"))
89
82
 
90
83
  # Eid al-Adha - Scarfice Festive
91
84
  # This is an estimate
92
85
  # date of observance is announced yearly
93
86
  observed_dates.update(self._add_eid_al_adha_day("Eid-el-Kabir"))
94
- observed_dates.update(
95
- self._add_eid_al_adha_day_two("Eid-el-Kabir Holiday")
96
- )
87
+ observed_dates.update(self._add_eid_al_adha_day_two("Eid-el-Kabir Holiday"))
97
88
 
98
89
  # Birthday of Prophet Muhammad
99
90
  observed_dates.update(self._add_mawlid_day("Eid-el-Mawlid"))
@@ -107,9 +98,7 @@ class Nigeria(
107
98
  while self._is_weekend(obs_date) or obs_date in observed_dates:
108
99
  obs_date += td(days=+1)
109
100
  for hol_name in self.get_list(hol_date):
110
- observed_dates.add(
111
- self._add_holiday("%s (Observed)" % hol_name, obs_date)
112
- )
101
+ observed_dates.add(self._add_holiday("%s (Observed)" % hol_name, obs_date))
113
102
 
114
103
 
115
104
  class NG(Nigeria):
@@ -12,13 +12,10 @@
12
12
  from holidays.calendars import JULIAN_CALENDAR
13
13
  from holidays.constants import MAY, SEP, AUG, OCT, DEC
14
14
  from holidays.holiday_base import HolidayBase
15
- from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
16
- from holidays.holiday_groups import InternationalHolidays
15
+ from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
17
16
 
18
17
 
19
- class NorthMacedonia(
20
- HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
21
- ):
18
+ class NorthMacedonia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
22
19
  """
23
20
  https://en.wikipedia.org/wiki/Public_holidays_in_North_Macedonia
24
21
  """
@@ -50,9 +47,7 @@ class NorthMacedonia(
50
47
 
51
48
  self._add_holiday("Day of Macedonian Uprising in 1941", OCT, 11)
52
49
 
53
- self._add_holiday(
54
- "Day of the Macedonian Revolutionary Struggle", OCT, 23
55
- )
50
+ self._add_holiday("Day of the Macedonian Revolutionary Struggle", OCT, 23)
56
51
 
57
52
  self._add_holiday("Saint Clement of Ohrid Day", DEC, 8)
58
53
 
@@ -37,6 +37,7 @@ class Norway(HolidayBase, ChristianHolidays, InternationalHolidays):
37
37
 
38
38
  country = "NO"
39
39
  default_language = "no"
40
+ supported_languages = ("en_US", "no", "uk")
40
41
 
41
42
  def __init__(self, include_sundays=False, **kwargs):
42
43
  """
@@ -98,9 +99,7 @@ class Norway(HolidayBase, ChristianHolidays, InternationalHolidays):
98
99
  # Optionally add all Sundays of the year.
99
100
  begin = _get_nth_weekday_of_month(1, SUN, JAN, year)
100
101
  end = date(year, DEC, 31)
101
- for dt in (
102
- begin + td(days=n) for n in range(0, (end - begin).days + 1, 7)
103
- ):
102
+ for dt in (begin + td(days=n) for n in range(0, (end - begin).days + 1, 7)):
104
103
  # Sunday.
105
104
  self._add_holiday(tr("Søndag"), dt)
106
105