holidays 0.75__py3-none-any.whl → 0.76__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 (526) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/mongolian.py +342 -0
  3. holidays/countries/__init__.py +22 -0
  4. holidays/countries/aland_islands.py +3 -19
  5. holidays/countries/algeria.py +1 -1
  6. holidays/countries/american_samoa.py +8 -20
  7. holidays/countries/aruba.py +42 -36
  8. holidays/countries/bahrain.py +1 -1
  9. holidays/countries/bonaire_sint_eustatius_and_saba.py +134 -0
  10. holidays/countries/cocos_islands.py +3 -2
  11. holidays/countries/curacao.py +64 -38
  12. holidays/countries/egypt.py +1 -1
  13. holidays/countries/falkland_islands.py +141 -0
  14. holidays/countries/france.py +224 -127
  15. holidays/countries/french_guiana.py +44 -0
  16. holidays/countries/french_polynesia.py +43 -0
  17. holidays/countries/french_southern_territories.py +3 -4
  18. holidays/countries/guadeloupe.py +44 -0
  19. holidays/countries/guam.py +8 -20
  20. holidays/countries/hongkong.py +1 -1
  21. holidays/countries/hungary.py +2 -1
  22. holidays/countries/iran.py +1 -1
  23. holidays/countries/isle_of_man.py +4 -0
  24. holidays/countries/israel.py +1 -1
  25. holidays/countries/jordan.py +1 -1
  26. holidays/countries/kuwait.py +1 -1
  27. holidays/countries/libya.py +227 -0
  28. holidays/countries/martinique.py +44 -0
  29. holidays/countries/mauritius.py +197 -0
  30. holidays/countries/mayotte.py +44 -0
  31. holidays/countries/mongolia.py +202 -0
  32. holidays/countries/morocco.py +1 -1
  33. holidays/countries/netherlands.py +7 -11
  34. holidays/countries/new_caledonia.py +43 -0
  35. holidays/countries/northern_mariana_islands.py +8 -20
  36. holidays/countries/oman.py +1 -1
  37. holidays/countries/puerto_rico.py +8 -20
  38. holidays/countries/reunion.py +44 -0
  39. holidays/countries/saint_barthelemy.py +43 -0
  40. holidays/countries/saint_martin.py +43 -0
  41. holidays/countries/saint_pierre_and_miquelon.py +43 -0
  42. holidays/countries/san_marino.py +49 -26
  43. holidays/countries/saudi_arabia.py +3 -3
  44. holidays/countries/sint_maarten.py +118 -0
  45. holidays/countries/svalbard_and_jan_mayen.py +3 -9
  46. holidays/countries/taiwan.py +31 -9
  47. holidays/countries/tunisia.py +1 -1
  48. holidays/countries/turks_and_caicos_islands.py +1 -1
  49. holidays/countries/united_arab_emirates.py +1 -1
  50. holidays/countries/united_states.py +579 -400
  51. holidays/countries/united_states_minor_outlying_islands.py +8 -20
  52. holidays/countries/united_states_virgin_islands.py +8 -20
  53. holidays/countries/uzbekistan.py +19 -2
  54. holidays/countries/wallis_and_futuna.py +43 -0
  55. holidays/countries/yemen.py +2 -2
  56. holidays/groups/__init__.py +1 -0
  57. holidays/groups/chinese.py +11 -0
  58. holidays/groups/eastern.py +1 -1
  59. holidays/groups/mongolian.py +103 -0
  60. holidays/holiday_base.py +10 -5
  61. holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
  62. holidays/locale/ar/LC_MESSAGES/AE.mo +0 -0
  63. holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
  64. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  65. holidays/locale/ar/LC_MESSAGES/DJ.mo +0 -0
  66. holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
  67. holidays/locale/ar/LC_MESSAGES/EG.mo +0 -0
  68. holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
  69. holidays/locale/ar/LC_MESSAGES/JO.mo +0 -0
  70. holidays/locale/ar/LC_MESSAGES/KW.mo +0 -0
  71. holidays/locale/ar/LC_MESSAGES/LY.mo +0 -0
  72. holidays/locale/ar/LC_MESSAGES/MA.mo +0 -0
  73. holidays/locale/ar/LC_MESSAGES/OM.mo +0 -0
  74. holidays/locale/ar/LC_MESSAGES/SA.mo +0 -0
  75. holidays/locale/ar/LC_MESSAGES/TN.mo +0 -0
  76. holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
  77. holidays/locale/ar/LC_MESSAGES/YE.mo +0 -0
  78. holidays/locale/az/LC_MESSAGES/AZ.mo +0 -0
  79. holidays/locale/be/LC_MESSAGES/BY.mo +0 -0
  80. holidays/locale/bg/LC_MESSAGES/BG.mo +0 -0
  81. holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
  82. holidays/locale/cnr/LC_MESSAGES/ME.mo +0 -0
  83. holidays/locale/cs/LC_MESSAGES/CZ.mo +0 -0
  84. holidays/locale/da/LC_MESSAGES/DK.mo +0 -0
  85. holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
  86. holidays/locale/de/LC_MESSAGES/AT.mo +0 -0
  87. holidays/locale/de/LC_MESSAGES/BE.mo +0 -0
  88. holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
  89. holidays/locale/de/LC_MESSAGES/DE.mo +0 -0
  90. holidays/locale/de/LC_MESSAGES/LI.mo +0 -0
  91. holidays/locale/de/LC_MESSAGES/LU.mo +0 -0
  92. holidays/locale/de/LC_MESSAGES/PL.mo +0 -0
  93. holidays/locale/el/LC_MESSAGES/CY.mo +0 -0
  94. holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
  95. holidays/locale/en_AU/LC_MESSAGES/AU.mo +0 -0
  96. holidays/locale/en_BQ/LC_MESSAGES/BQ.mo +0 -0
  97. holidays/locale/en_CA/LC_MESSAGES/CA.mo +0 -0
  98. holidays/locale/en_CY/LC_MESSAGES/CY.mo +0 -0
  99. holidays/locale/en_GB/LC_MESSAGES/FK.mo +0 -0
  100. holidays/locale/en_GB/LC_MESSAGES/GB.mo +0 -0
  101. holidays/locale/en_GB/LC_MESSAGES/IM.mo +0 -0
  102. holidays/locale/en_GB/LC_MESSAGES/TV.mo +0 -0
  103. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  104. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  105. holidays/locale/en_LC/LC_MESSAGES/LC.mo +0 -0
  106. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  107. holidays/locale/en_MU/LC_MESSAGES/MU.mo +0 -0
  108. holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
  109. holidays/locale/en_SC/LC_MESSAGES/SC.mo +0 -0
  110. holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
  111. holidays/locale/en_SL/LC_MESSAGES/SL.mo +0 -0
  112. holidays/locale/en_TL/LC_MESSAGES/TL.mo +0 -0
  113. holidays/locale/en_US/LC_MESSAGES/AE.mo +0 -0
  114. holidays/locale/en_US/LC_MESSAGES/AF.mo +0 -0
  115. holidays/locale/en_US/LC_MESSAGES/AL.mo +0 -0
  116. holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
  117. holidays/locale/en_US/LC_MESSAGES/AO.mo +0 -0
  118. holidays/locale/en_US/LC_MESSAGES/AS.mo +0 -0
  119. holidays/locale/en_US/LC_MESSAGES/AT.mo +0 -0
  120. holidays/locale/en_US/LC_MESSAGES/AU.mo +0 -0
  121. holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
  122. holidays/locale/en_US/LC_MESSAGES/AX.mo +0 -0
  123. holidays/locale/en_US/LC_MESSAGES/AZ.mo +0 -0
  124. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  125. holidays/locale/en_US/LC_MESSAGES/BE.mo +0 -0
  126. holidays/locale/en_US/LC_MESSAGES/BG.mo +0 -0
  127. holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
  128. holidays/locale/en_US/LC_MESSAGES/BL.mo +0 -0
  129. holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
  130. holidays/locale/en_US/LC_MESSAGES/BO.mo +0 -0
  131. holidays/locale/en_US/LC_MESSAGES/BQ.mo +0 -0
  132. holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
  133. holidays/locale/en_US/LC_MESSAGES/BVMF.mo +0 -0
  134. holidays/locale/en_US/LC_MESSAGES/BY.mo +0 -0
  135. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  136. holidays/locale/en_US/LC_MESSAGES/CG.mo +0 -0
  137. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  138. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  139. holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
  140. holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
  141. holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
  142. holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
  143. holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
  144. holidays/locale/en_US/LC_MESSAGES/CY.mo +0 -0
  145. holidays/locale/en_US/LC_MESSAGES/CZ.mo +0 -0
  146. holidays/locale/en_US/LC_MESSAGES/DE.mo +0 -0
  147. holidays/locale/en_US/LC_MESSAGES/DJ.mo +0 -0
  148. holidays/locale/en_US/LC_MESSAGES/DK.mo +0 -0
  149. holidays/locale/en_US/LC_MESSAGES/DO.mo +0 -0
  150. holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
  151. holidays/locale/en_US/LC_MESSAGES/EC.mo +0 -0
  152. holidays/locale/en_US/LC_MESSAGES/EE.mo +0 -0
  153. holidays/locale/en_US/LC_MESSAGES/EG.mo +0 -0
  154. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  155. holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
  156. holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
  157. holidays/locale/en_US/LC_MESSAGES/FK.mo +0 -0
  158. holidays/locale/en_US/LC_MESSAGES/FR.mo +0 -0
  159. holidays/locale/en_US/LC_MESSAGES/GB.mo +0 -0
  160. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  161. holidays/locale/en_US/LC_MESSAGES/GF.mo +0 -0
  162. holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
  163. holidays/locale/en_US/LC_MESSAGES/GP.mo +0 -0
  164. holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
  165. holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
  166. holidays/locale/en_US/LC_MESSAGES/GU.mo +0 -0
  167. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  168. holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
  169. holidays/locale/en_US/LC_MESSAGES/HR.mo +0 -0
  170. holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
  171. holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
  172. holidays/locale/en_US/LC_MESSAGES/ID.mo +0 -0
  173. holidays/locale/en_US/LC_MESSAGES/IL.mo +0 -0
  174. holidays/locale/en_US/LC_MESSAGES/IM.mo +0 -0
  175. holidays/locale/en_US/LC_MESSAGES/IR.mo +0 -0
  176. holidays/locale/en_US/LC_MESSAGES/IS.mo +0 -0
  177. holidays/locale/en_US/LC_MESSAGES/JO.mo +0 -0
  178. holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
  179. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  180. holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
  181. holidays/locale/en_US/LC_MESSAGES/KW.mo +0 -0
  182. holidays/locale/en_US/LC_MESSAGES/KZ.mo +0 -0
  183. holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
  184. holidays/locale/en_US/LC_MESSAGES/LC.mo +0 -0
  185. holidays/locale/en_US/LC_MESSAGES/LI.mo +0 -0
  186. holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
  187. holidays/locale/en_US/LC_MESSAGES/LT.mo +0 -0
  188. holidays/locale/en_US/LC_MESSAGES/LU.mo +0 -0
  189. holidays/locale/en_US/LC_MESSAGES/LV.mo +0 -0
  190. holidays/locale/en_US/LC_MESSAGES/LY.mo +0 -0
  191. holidays/locale/en_US/LC_MESSAGES/MA.mo +0 -0
  192. holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
  193. holidays/locale/en_US/LC_MESSAGES/MD.mo +0 -0
  194. holidays/locale/en_US/LC_MESSAGES/ME.mo +0 -0
  195. holidays/locale/en_US/LC_MESSAGES/MF.mo +0 -0
  196. holidays/locale/en_US/LC_MESSAGES/MG.mo +0 -0
  197. holidays/locale/en_US/LC_MESSAGES/MN.mo +0 -0
  198. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  199. holidays/locale/en_US/LC_MESSAGES/MP.mo +0 -0
  200. holidays/locale/en_US/LC_MESSAGES/MQ.mo +0 -0
  201. holidays/locale/en_US/LC_MESSAGES/MT.mo +0 -0
  202. holidays/locale/en_US/LC_MESSAGES/MU.mo +0 -0
  203. holidays/locale/en_US/LC_MESSAGES/MX.mo +0 -0
  204. holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
  205. holidays/locale/en_US/LC_MESSAGES/MZ.mo +0 -0
  206. holidays/locale/en_US/LC_MESSAGES/NC.mo +0 -0
  207. holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
  208. holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
  209. holidays/locale/en_US/LC_MESSAGES/NO.mo +0 -0
  210. holidays/locale/en_US/LC_MESSAGES/OM.mo +0 -0
  211. holidays/locale/en_US/LC_MESSAGES/PA.mo +0 -0
  212. holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
  213. holidays/locale/en_US/LC_MESSAGES/PF.mo +0 -0
  214. holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
  215. holidays/locale/en_US/LC_MESSAGES/PL.mo +0 -0
  216. holidays/locale/en_US/LC_MESSAGES/PM.mo +0 -0
  217. holidays/locale/en_US/LC_MESSAGES/PR.mo +0 -0
  218. holidays/locale/en_US/LC_MESSAGES/PT.mo +0 -0
  219. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  220. holidays/locale/en_US/LC_MESSAGES/RE.mo +0 -0
  221. holidays/locale/en_US/LC_MESSAGES/RO.mo +0 -0
  222. holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
  223. holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
  224. holidays/locale/en_US/LC_MESSAGES/SA.mo +0 -0
  225. holidays/locale/en_US/LC_MESSAGES/SC.mo +0 -0
  226. holidays/locale/en_US/LC_MESSAGES/SE.mo +0 -0
  227. holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
  228. holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
  229. holidays/locale/en_US/LC_MESSAGES/SK.mo +0 -0
  230. holidays/locale/en_US/LC_MESSAGES/SL.mo +0 -0
  231. holidays/locale/en_US/LC_MESSAGES/SM.mo +0 -0
  232. holidays/locale/en_US/LC_MESSAGES/SV.mo +0 -0
  233. holidays/locale/en_US/LC_MESSAGES/SX.mo +0 -0
  234. holidays/locale/en_US/LC_MESSAGES/TC.mo +0 -0
  235. holidays/locale/en_US/LC_MESSAGES/TF.mo +0 -0
  236. holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
  237. holidays/locale/en_US/LC_MESSAGES/TL.mo +0 -0
  238. holidays/locale/en_US/LC_MESSAGES/TN.mo +0 -0
  239. holidays/locale/en_US/LC_MESSAGES/TO.mo +0 -0
  240. holidays/locale/en_US/LC_MESSAGES/TR.mo +0 -0
  241. holidays/locale/en_US/LC_MESSAGES/TV.mo +0 -0
  242. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  243. holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
  244. holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
  245. holidays/locale/en_US/LC_MESSAGES/UM.mo +0 -0
  246. holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
  247. holidays/locale/en_US/LC_MESSAGES/UY.mo +0 -0
  248. holidays/locale/en_US/LC_MESSAGES/UZ.mo +0 -0
  249. holidays/locale/en_US/LC_MESSAGES/VA.mo +0 -0
  250. holidays/locale/en_US/LC_MESSAGES/VE.mo +0 -0
  251. holidays/locale/en_US/LC_MESSAGES/VI.mo +0 -0
  252. holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
  253. holidays/locale/en_US/LC_MESSAGES/WF.mo +0 -0
  254. holidays/locale/en_US/LC_MESSAGES/YE.mo +0 -0
  255. holidays/locale/en_US/LC_MESSAGES/YT.mo +0 -0
  256. holidays/locale/es/LC_MESSAGES/BO.mo +0 -0
  257. holidays/locale/es/LC_MESSAGES/CL.mo +0 -0
  258. holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
  259. holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
  260. holidays/locale/es/LC_MESSAGES/CU.mo +0 -0
  261. holidays/locale/es/LC_MESSAGES/DO.mo +0 -0
  262. holidays/locale/es/LC_MESSAGES/EC.mo +0 -0
  263. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  264. holidays/locale/es/LC_MESSAGES/GT.mo +0 -0
  265. holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
  266. holidays/locale/es/LC_MESSAGES/HT.mo +0 -0
  267. holidays/locale/es/LC_MESSAGES/MX.mo +0 -0
  268. holidays/locale/es/LC_MESSAGES/NI.mo +0 -0
  269. holidays/locale/es/LC_MESSAGES/PA.mo +0 -0
  270. holidays/locale/es/LC_MESSAGES/PE.mo +0 -0
  271. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  272. holidays/locale/es/LC_MESSAGES/SV.mo +0 -0
  273. holidays/locale/es/LC_MESSAGES/UY.mo +0 -0
  274. holidays/locale/es/LC_MESSAGES/VE.mo +0 -0
  275. holidays/locale/et/LC_MESSAGES/EE.mo +0 -0
  276. holidays/locale/fa_AF/LC_MESSAGES/AF.mo +0 -0
  277. holidays/locale/fa_IR/LC_MESSAGES/IR.mo +0 -0
  278. holidays/locale/fi/LC_MESSAGES/AX.mo +0 -0
  279. holidays/locale/fi/LC_MESSAGES/FI.mo +0 -0
  280. holidays/locale/fi/LC_MESSAGES/GL.mo +0 -0
  281. holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
  282. holidays/locale/fr/LC_MESSAGES/BE.mo +0 -0
  283. holidays/locale/fr/LC_MESSAGES/BL.mo +0 -0
  284. holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
  285. holidays/locale/fr/LC_MESSAGES/CG.mo +0 -0
  286. holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
  287. holidays/locale/fr/LC_MESSAGES/DJ.mo +0 -0
  288. holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
  289. holidays/locale/fr/LC_MESSAGES/FR.mo +0 -0
  290. holidays/locale/fr/LC_MESSAGES/GF.mo +0 -0
  291. holidays/locale/fr/LC_MESSAGES/GP.mo +0 -0
  292. holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
  293. holidays/locale/fr/LC_MESSAGES/MA.mo +0 -0
  294. holidays/locale/fr/LC_MESSAGES/MC.mo +0 -0
  295. holidays/locale/fr/LC_MESSAGES/MF.mo +0 -0
  296. holidays/locale/fr/LC_MESSAGES/MQ.mo +0 -0
  297. holidays/locale/fr/LC_MESSAGES/NC.mo +0 -0
  298. holidays/locale/fr/LC_MESSAGES/PF.mo +0 -0
  299. holidays/locale/fr/LC_MESSAGES/PM.mo +0 -0
  300. holidays/locale/fr/LC_MESSAGES/RE.mo +0 -0
  301. holidays/locale/fr/LC_MESSAGES/TF.mo +0 -0
  302. holidays/locale/fr/LC_MESSAGES/WF.mo +0 -0
  303. holidays/locale/fr/LC_MESSAGES/YT.mo +0 -0
  304. holidays/locale/fr_HT/LC_MESSAGES/HT.mo +0 -0
  305. holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
  306. holidays/locale/he/LC_MESSAGES/IL.mo +0 -0
  307. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  308. holidays/locale/hr/LC_MESSAGES/HR.mo +0 -0
  309. holidays/locale/ht/LC_MESSAGES/HT.mo +0 -0
  310. holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
  311. holidays/locale/hy/LC_MESSAGES/AM.mo +0 -0
  312. holidays/locale/id/LC_MESSAGES/ID.mo +0 -0
  313. holidays/locale/is/LC_MESSAGES/GL.mo +0 -0
  314. holidays/locale/is/LC_MESSAGES/IS.mo +0 -0
  315. holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
  316. holidays/locale/it/LC_MESSAGES/SM.mo +0 -0
  317. holidays/locale/it/LC_MESSAGES/VA.mo +0 -0
  318. holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
  319. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  320. holidays/locale/kk/LC_MESSAGES/KZ.mo +0 -0
  321. holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
  322. holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
  323. holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
  324. holidays/locale/lb/LC_MESSAGES/LU.mo +0 -0
  325. holidays/locale/lo/LC_MESSAGES/LA.mo +0 -0
  326. holidays/locale/lt/LC_MESSAGES/LT.mo +0 -0
  327. holidays/locale/lv/LC_MESSAGES/LV.mo +0 -0
  328. holidays/locale/mg/LC_MESSAGES/MG.mo +0 -0
  329. holidays/locale/mn/LC_MESSAGES/MN.mo +0 -0
  330. holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
  331. holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
  332. holidays/locale/mt/LC_MESSAGES/MT.mo +0 -0
  333. holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
  334. holidays/locale/nl/LC_MESSAGES/BE.mo +0 -0
  335. holidays/locale/nl/LC_MESSAGES/BQ.mo +0 -0
  336. holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
  337. holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
  338. holidays/locale/nl/LC_MESSAGES/SX.mo +0 -0
  339. holidays/locale/no/LC_MESSAGES/GL.mo +0 -0
  340. holidays/locale/no/LC_MESSAGES/NO.mo +0 -0
  341. holidays/locale/pap_AW/LC_MESSAGES/AW.mo +0 -0
  342. holidays/locale/pap_BQ/LC_MESSAGES/BQ.mo +0 -0
  343. holidays/locale/pap_CW/LC_MESSAGES/CW.mo +0 -0
  344. holidays/locale/pl/LC_MESSAGES/PL.mo +0 -0
  345. holidays/locale/ps_AF/LC_MESSAGES/AF.mo +0 -0
  346. holidays/locale/pt_AO/LC_MESSAGES/AO.mo +0 -0
  347. holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
  348. holidays/locale/pt_BR/LC_MESSAGES/BVMF.mo +0 -0
  349. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  350. holidays/locale/pt_MZ/LC_MESSAGES/MZ.mo +0 -0
  351. holidays/locale/pt_PT/LC_MESSAGES/PT.mo +0 -0
  352. holidays/locale/pt_TL/LC_MESSAGES/TL.mo +0 -0
  353. holidays/locale/ro/LC_MESSAGES/MD.mo +0 -0
  354. holidays/locale/ro/LC_MESSAGES/RO.mo +0 -0
  355. holidays/locale/ru/LC_MESSAGES/BY.mo +0 -0
  356. holidays/locale/ru/LC_MESSAGES/RU.mo +0 -0
  357. holidays/locale/si_LK/LC_MESSAGES/LK.mo +0 -0
  358. holidays/locale/sk/LC_MESSAGES/CZ.mo +0 -0
  359. holidays/locale/sk/LC_MESSAGES/SK.mo +0 -0
  360. holidays/locale/sl/LC_MESSAGES/SI.mo +0 -0
  361. holidays/locale/sq/LC_MESSAGES/AL.mo +0 -0
  362. holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
  363. holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
  364. holidays/locale/sv/LC_MESSAGES/GL.mo +0 -0
  365. holidays/locale/sv/LC_MESSAGES/SE.mo +0 -0
  366. holidays/locale/sv_FI/LC_MESSAGES/AX.mo +0 -0
  367. holidays/locale/sv_FI/LC_MESSAGES/FI.mo +0 -0
  368. holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
  369. holidays/locale/ta_LK/LC_MESSAGES/LK.mo +0 -0
  370. holidays/locale/tet/LC_MESSAGES/TL.mo +0 -0
  371. holidays/locale/th/LC_MESSAGES/AE.mo +0 -0
  372. holidays/locale/th/LC_MESSAGES/AS.mo +0 -0
  373. holidays/locale/th/LC_MESSAGES/AU.mo +0 -0
  374. holidays/locale/th/LC_MESSAGES/AX.mo +0 -0
  375. holidays/locale/th/LC_MESSAGES/BL.mo +0 -0
  376. holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
  377. holidays/locale/th/LC_MESSAGES/BY.mo +0 -0
  378. holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
  379. holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
  380. holidays/locale/th/LC_MESSAGES/DE.mo +0 -0
  381. holidays/locale/th/LC_MESSAGES/FI.mo +0 -0
  382. holidays/locale/th/LC_MESSAGES/FR.mo +0 -0
  383. holidays/locale/th/LC_MESSAGES/GB.mo +0 -0
  384. holidays/locale/th/LC_MESSAGES/GF.mo +0 -0
  385. holidays/locale/th/LC_MESSAGES/GP.mo +0 -0
  386. holidays/locale/th/LC_MESSAGES/GU.mo +0 -0
  387. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  388. holidays/locale/th/LC_MESSAGES/ID.mo +0 -0
  389. holidays/locale/th/LC_MESSAGES/IL.mo +0 -0
  390. holidays/locale/th/LC_MESSAGES/IM.mo +0 -0
  391. holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
  392. holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
  393. holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
  394. holidays/locale/th/LC_MESSAGES/LA.mo +0 -0
  395. holidays/locale/th/LC_MESSAGES/MF.mo +0 -0
  396. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  397. holidays/locale/th/LC_MESSAGES/MP.mo +0 -0
  398. holidays/locale/th/LC_MESSAGES/MQ.mo +0 -0
  399. holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
  400. holidays/locale/th/LC_MESSAGES/NC.mo +0 -0
  401. holidays/locale/th/LC_MESSAGES/NO.mo +0 -0
  402. holidays/locale/th/LC_MESSAGES/PF.mo +0 -0
  403. holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
  404. holidays/locale/th/LC_MESSAGES/PM.mo +0 -0
  405. holidays/locale/th/LC_MESSAGES/PR.mo +0 -0
  406. holidays/locale/th/LC_MESSAGES/RE.mo +0 -0
  407. holidays/locale/th/LC_MESSAGES/RU.mo +0 -0
  408. holidays/locale/th/LC_MESSAGES/SE.mo +0 -0
  409. holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
  410. holidays/locale/th/LC_MESSAGES/TF.mo +0 -0
  411. holidays/locale/th/LC_MESSAGES/TH.mo +0 -0
  412. holidays/locale/th/LC_MESSAGES/TL.mo +0 -0
  413. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  414. holidays/locale/th/LC_MESSAGES/UA.mo +0 -0
  415. holidays/locale/th/LC_MESSAGES/UM.mo +0 -0
  416. holidays/locale/th/LC_MESSAGES/US.mo +0 -0
  417. holidays/locale/th/LC_MESSAGES/VA.mo +0 -0
  418. holidays/locale/th/LC_MESSAGES/VI.mo +0 -0
  419. holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
  420. holidays/locale/th/LC_MESSAGES/WF.mo +0 -0
  421. holidays/locale/th/LC_MESSAGES/YT.mo +0 -0
  422. holidays/locale/to/LC_MESSAGES/TO.mo +0 -0
  423. holidays/locale/tr/LC_MESSAGES/TR.mo +0 -0
  424. holidays/locale/tvl/LC_MESSAGES/TV.mo +0 -0
  425. holidays/locale/uk/LC_MESSAGES/AL.mo +0 -0
  426. holidays/locale/uk/LC_MESSAGES/AO.mo +0 -0
  427. holidays/locale/uk/LC_MESSAGES/AT.mo +0 -0
  428. holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
  429. holidays/locale/uk/LC_MESSAGES/AX.mo +0 -0
  430. holidays/locale/uk/LC_MESSAGES/AZ.mo +0 -0
  431. holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
  432. holidays/locale/uk/LC_MESSAGES/BE.mo +0 -0
  433. holidays/locale/uk/LC_MESSAGES/BG.mo +0 -0
  434. holidays/locale/uk/LC_MESSAGES/BL.mo +0 -0
  435. holidays/locale/uk/LC_MESSAGES/BO.mo +0 -0
  436. holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
  437. holidays/locale/uk/LC_MESSAGES/BVMF.mo +0 -0
  438. holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
  439. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  440. holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
  441. holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
  442. holidays/locale/uk/LC_MESSAGES/CU.mo +0 -0
  443. holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
  444. holidays/locale/uk/LC_MESSAGES/CY.mo +0 -0
  445. holidays/locale/uk/LC_MESSAGES/CZ.mo +0 -0
  446. holidays/locale/uk/LC_MESSAGES/DE.mo +0 -0
  447. holidays/locale/uk/LC_MESSAGES/DK.mo +0 -0
  448. holidays/locale/uk/LC_MESSAGES/DO.mo +0 -0
  449. holidays/locale/uk/LC_MESSAGES/EC.mo +0 -0
  450. holidays/locale/uk/LC_MESSAGES/EE.mo +0 -0
  451. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  452. holidays/locale/uk/LC_MESSAGES/FI.mo +0 -0
  453. holidays/locale/uk/LC_MESSAGES/FR.mo +0 -0
  454. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  455. holidays/locale/uk/LC_MESSAGES/GF.mo +0 -0
  456. holidays/locale/uk/LC_MESSAGES/GL.mo +0 -0
  457. holidays/locale/uk/LC_MESSAGES/GP.mo +0 -0
  458. holidays/locale/uk/LC_MESSAGES/GR.mo +0 -0
  459. holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
  460. holidays/locale/uk/LC_MESSAGES/HR.mo +0 -0
  461. holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
  462. holidays/locale/uk/LC_MESSAGES/ID.mo +0 -0
  463. holidays/locale/uk/LC_MESSAGES/IL.mo +0 -0
  464. holidays/locale/uk/LC_MESSAGES/IS.mo +0 -0
  465. holidays/locale/uk/LC_MESSAGES/KZ.mo +0 -0
  466. holidays/locale/uk/LC_MESSAGES/LI.mo +0 -0
  467. holidays/locale/uk/LC_MESSAGES/LT.mo +0 -0
  468. holidays/locale/uk/LC_MESSAGES/LU.mo +0 -0
  469. holidays/locale/uk/LC_MESSAGES/LV.mo +0 -0
  470. holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
  471. holidays/locale/uk/LC_MESSAGES/MD.mo +0 -0
  472. holidays/locale/uk/LC_MESSAGES/ME.mo +0 -0
  473. holidays/locale/uk/LC_MESSAGES/MF.mo +0 -0
  474. holidays/locale/uk/LC_MESSAGES/MG.mo +0 -0
  475. holidays/locale/uk/LC_MESSAGES/MQ.mo +0 -0
  476. holidays/locale/uk/LC_MESSAGES/MX.mo +0 -0
  477. holidays/locale/uk/LC_MESSAGES/MZ.mo +0 -0
  478. holidays/locale/uk/LC_MESSAGES/NC.mo +0 -0
  479. holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
  480. holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
  481. holidays/locale/uk/LC_MESSAGES/NO.mo +0 -0
  482. holidays/locale/uk/LC_MESSAGES/PA.mo +0 -0
  483. holidays/locale/uk/LC_MESSAGES/PE.mo +0 -0
  484. holidays/locale/uk/LC_MESSAGES/PF.mo +0 -0
  485. holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
  486. holidays/locale/uk/LC_MESSAGES/PM.mo +0 -0
  487. holidays/locale/uk/LC_MESSAGES/PT.mo +0 -0
  488. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  489. holidays/locale/uk/LC_MESSAGES/RE.mo +0 -0
  490. holidays/locale/uk/LC_MESSAGES/RO.mo +0 -0
  491. holidays/locale/uk/LC_MESSAGES/SE.mo +0 -0
  492. holidays/locale/uk/LC_MESSAGES/SI.mo +0 -0
  493. holidays/locale/uk/LC_MESSAGES/SK.mo +0 -0
  494. holidays/locale/uk/LC_MESSAGES/SM.mo +0 -0
  495. holidays/locale/uk/LC_MESSAGES/SV.mo +0 -0
  496. holidays/locale/uk/LC_MESSAGES/TF.mo +0 -0
  497. holidays/locale/uk/LC_MESSAGES/TR.mo +0 -0
  498. holidays/locale/uk/LC_MESSAGES/UA.mo +0 -0
  499. holidays/locale/uk/LC_MESSAGES/UY.mo +0 -0
  500. holidays/locale/uk/LC_MESSAGES/UZ.mo +0 -0
  501. holidays/locale/uk/LC_MESSAGES/VE.mo +0 -0
  502. holidays/locale/uk/LC_MESSAGES/WF.mo +0 -0
  503. holidays/locale/uk/LC_MESSAGES/YT.mo +0 -0
  504. holidays/locale/uz/LC_MESSAGES/UZ.mo +0 -0
  505. holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
  506. holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
  507. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  508. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  509. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  510. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  511. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  512. holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
  513. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  514. holidays/mixins/__init__.py +18 -0
  515. holidays/mixins/child_entity.py +43 -0
  516. holidays/observed_holiday_base.py +1 -0
  517. holidays/registry.py +17 -0
  518. holidays/version.py +1 -1
  519. {holidays-0.75.dist-info → holidays-0.76.dist-info}/METADATA +134 -15
  520. holidays-0.76.dist-info/RECORD +785 -0
  521. {holidays-0.75.dist-info → holidays-0.76.dist-info}/licenses/CONTRIBUTORS +1 -0
  522. holidays-0.75.dist-info/RECORD +0 -687
  523. /holidays/{mixins.py → mixins/preferred_discretionary_holidays.py} +0 -0
  524. {holidays-0.75.dist-info → holidays-0.76.dist-info}/WHEEL +0 -0
  525. {holidays-0.75.dist-info → holidays-0.76.dist-info}/licenses/LICENSE +0 -0
  526. {holidays-0.75.dist-info → holidays-0.76.dist-info}/top_level.txt +0 -0
@@ -10,11 +10,27 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from gettext import gettext as tr
13
14
  from typing import Union
14
15
 
15
- from holidays.calendars.gregorian import MON, TUE, WED, THU, FRI, SAT, SUN
16
+ from holidays.calendars.gregorian import (
17
+ FEB,
18
+ MAR,
19
+ APR,
20
+ MAY,
21
+ SEP,
22
+ NOV,
23
+ DEC,
24
+ MON,
25
+ TUE,
26
+ WED,
27
+ THU,
28
+ FRI,
29
+ SAT,
30
+ SUN,
31
+ )
16
32
  from holidays.constants import GOVERNMENT, PUBLIC, UNOFFICIAL
17
- from holidays.groups import ChristianHolidays, InternationalHolidays
33
+ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
18
34
  from holidays.observed_holiday_base import (
19
35
  ObservedHolidayBase,
20
36
  ObservedRule,
@@ -31,12 +47,21 @@ GA_IN_WASHINGTON_BIRTHDAY = ObservedRule(
31
47
  )
32
48
 
33
49
 
34
- class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
50
+ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
35
51
  """United States of America (the) holidays.
36
52
 
37
53
  References:
38
54
  * <https://en.wikipedia.org/wiki/Public_holidays_in_the_United_States>
55
+ * <https://en.wikipedia.org/wiki/Uniform_Monday_Holiday_Act>
39
56
  * [Federal holidays](https://web.archive.org/web/20250426120914/https://opm.gov/policy-data-oversight/pay-leave/federal-holidays/)
57
+ * [Federal holidays history](https://web.archive.org/web/20250626042129/https://www.congress.gov/crs_external_products/R/PDF/R41990/R41990.11.pdf)
58
+ * [16 Stat. 168](https://web.archive.org/web/20240602080239/https://memory.loc.gov/cgi-bin/ampage?collId=llsl&fileName=016/llsl016.db&recNum=203)
59
+ * [Thanksgiving Day Proclamations 1789-Present](https://web.archive.org/web/20240621142029/https://www.whatsoproudlywehail.org/curriculum/the-american-calendar/thanksgiving-day-proclamations-1789-present/)
60
+ * [H.J. RES. 41](https://web.archive.org/web/20250222190611/https://www.archives.gov/global-pages/larger-image.html?i=/legislative/features/thanksgiving/images/joint-res-l.jpg&c=/legislative/features/thanksgiving/images/joint-res.caption.html)
61
+ * [H.J. RES. 41 December 9th, 1941 Amendment](https://web.archive.org/web/20250523062313/https://www.archives.gov/global-pages/larger-image.html?i=/legislative/features/thanksgiving/images/amendment-l.jpg&c=/legislative/features/thanksgiving/images/amendment.caption.html)
62
+ * [B-112525 February 27th, 1953 32 COMP. GEN. 378](https://web.archive.org/web/20201001081239/https://www.gao.gov/products/b-112525#mt=e-report)
63
+ * [Public Law 89-554](https://web.archive.org/web/20250512204449/https://www.govinfo.gov/content/pkg/STATUTE-80/pdf/STATUTE-80-Pg378.pdf)
64
+ * [E.O. 11582 of February 11th, 1971](https://web.archive.org/web/20250326234305/https://www.archives.gov/federal-register/codification/executive-order/11582.html)
40
65
  * Washington's Birthday:
41
66
  * [AK](https://web.archive.org/web/20250306070343/https://doa.alaska.gov/calendar/)
42
67
  * [AL](https://web.archive.org/web/20250125202410/https://admincode.legislature.state.al.us/administrative-code/670-X-12-.01)
@@ -84,7 +109,11 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
84
109
  """
85
110
 
86
111
  country = "US"
87
- observed_label = "%s (observed)"
112
+ default_language = "en_US"
113
+ # %s (observed).
114
+ observed_label = tr("%s (observed)")
115
+ supported_languages = ("en_US", "th")
116
+ # Independence Declared on July 4th, 1776.
88
117
  start_year = 1777
89
118
  subdivisions: Union[tuple[()], tuple[str, ...]] = (
90
119
  "AK", # Alaska.
@@ -214,84 +243,138 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
214
243
  def __init__(self, *args, **kwargs):
215
244
  ChristianHolidays.__init__(self)
216
245
  InternationalHolidays.__init__(self)
246
+ StaticHolidays.__init__(self, cls=UnitedStatesStaticHolidays)
217
247
  kwargs.setdefault("observed_rule", SAT_TO_PREV_FRI + SUN_TO_NEXT_MON)
248
+ # B-11252 February 27th, 1953 32 COMP. GEN. 378.
249
+ kwargs.setdefault("observed_since", 1953)
218
250
  super().__init__(*args, **kwargs)
219
251
 
220
252
  def _populate_common(self, include_federal: bool = False):
221
253
  """
222
254
  Populates common US holidays.
223
255
 
256
+ Federal Holidays were first codified on June 28th, 1870
257
+ via 16 Stat. 168.
258
+
259
+ First regulation on holidays in-lieu observance is from B-112525
260
+ February 27th, 1953 32 COMP. GEN. 378 document which shifts
261
+ from SUN to next MON only.
262
+
263
+ It wouldn't be until Public Law 89-554 from September 6th, 1966
264
+ that SAT to previous MON is listed as well.
265
+
266
+ This would be finally consolidated as part of E.O. 11582 of
267
+ February 11th, 1971 later.
268
+
224
269
  :param include_federal:
225
270
  Whether to include federal-specific holidays.
226
271
  """
227
- # New Year's Day
272
+ self._observed_rule = (
273
+ SAT_TO_PREV_FRI + SUN_TO_NEXT_MON if self._year >= 1966 else SUN_TO_NEXT_MON
274
+ )
275
+
228
276
  if self._year >= 1871:
229
- name = "New Year's Day"
277
+ # New Year's Day.
278
+ name = tr("New Year's Day")
230
279
  self._add_observed(self._add_new_years_day(name))
231
- self._add_observed(self._next_year_new_years_day, name=name)
280
+ # Public Law 89-554 of September 6th, 1966.
281
+ if self._year >= 1967:
282
+ self._add_observed(self._next_year_new_years_day, name=name)
232
283
 
233
284
  if include_federal:
234
- # Birthday of Martin Luther King, Jr.
235
285
  if self._year >= 1986:
236
- self._add_holiday_3rd_mon_of_jan("Birthday of Martin Luther King, Jr.")
286
+ # Birthday of Martin Luther King, Jr..
287
+ self._add_holiday_3rd_mon_of_jan(tr("Birthday of Martin Luther King, Jr."))
237
288
 
238
- # Washington's Birthday
239
289
  if self._year >= 1879:
240
- name = "Washington's Birthday"
290
+ # Washington's Birthday.
291
+ name = tr("Washington's Birthday")
241
292
  if self._year >= 1971:
242
293
  self._add_holiday_3rd_mon_of_feb(name)
243
294
  else:
244
- self._add_holiday_feb_22(name)
295
+ dt = self._add_holiday_feb_22(name)
296
+ # B-112525 February 27th, 1953 32 COMP. GEN. 378.
297
+ if self._year >= 1954:
298
+ self._add_observed(dt)
245
299
 
246
- # Memorial Day
247
300
  if self._year >= 1971:
248
- self._add_holiday_last_mon_of_may("Memorial Day")
301
+ # Memorial Day.
302
+ self._add_holiday_last_mon_of_may(tr("Memorial Day"))
249
303
 
250
- # Juneteenth Day
251
304
  if self._year >= 2021:
252
- self._add_observed(self._add_holiday_jun_19("Juneteenth National Independence Day"))
305
+ self._add_observed(
306
+ # Juneteenth National Independence Day.
307
+ self._add_holiday_jun_19(tr("Juneteenth National Independence Day"))
308
+ )
253
309
 
254
- # Independence Day
255
- if self._year >= 1871:
256
- self._add_observed(self._add_holiday_jul_4("Independence Day"))
310
+ if self._year >= 1870:
311
+ # Independence Day.
312
+ self._add_observed(self._add_holiday_jul_4(tr("Independence Day")))
257
313
 
258
- # Labor Day
259
314
  if self._year >= 1894:
260
- self._add_holiday_1st_mon_of_sep("Labor Day")
315
+ # Labor Day.
316
+ self._add_holiday_1st_mon_of_sep(tr("Labor Day"))
261
317
 
262
- if include_federal:
263
- # Columbus Day
264
- if self._year >= 1971:
265
- self._add_holiday_2nd_mon_of_oct("Columbus Day")
318
+ if include_federal and self._year >= 1971:
319
+ # Columbus Day.
320
+ self._add_holiday_2nd_mon_of_oct(tr("Columbus Day"))
266
321
 
267
- # Veterans Day
268
322
  if self._year >= 1938:
269
- name = "Veterans Day" if self._year >= 1954 else "Armistice Day"
323
+ name = (
324
+ # Veterans Day.
325
+ tr("Veterans Day")
326
+ if self._year >= 1954
327
+ # Armistice Day.
328
+ else tr("Armistice Day")
329
+ )
270
330
  if 1971 <= self._year <= 1977:
271
331
  self._add_holiday_4th_mon_of_oct(name)
272
332
  else:
273
333
  self._add_observed(self._add_remembrance_day(name))
274
334
 
275
- # Thanksgiving Day
276
- if self._year >= 1871:
277
- self._add_holiday_4th_thu_of_nov("Thanksgiving Day")
335
+ # Thanksgiving Day.
336
+ # Began to be declared annually in 1862 by Abraham Lincoln.
337
+ # First declared as last THU of NOV in 1863.
338
+ # Briefly moved to 3rd THU of NOV by Franklin Delano Roosevelt from 1939 to 1941.
339
+ # First codified as last THU of NOV on October 6th, 1941 via H.J. RES. 41.
340
+ # Become 4th THU of NOV from 1942 onwards via a Senate Amendment on December 9th, 1941.
341
+ # For Pre-1862 observances, see UnitedStatesStaticHolidays.
342
+
343
+ if self._year >= 1862:
344
+ thanksgiving_day_dates = {
345
+ 1862: (APR, 10),
346
+ 1865: (DEC, 7),
347
+ 1869: (NOV, 18),
348
+ 1939: (NOV, 23),
349
+ 1940: (NOV, 21),
350
+ 1941: (NOV, 20),
351
+ }
352
+ # Thanksgiving Day.
353
+ name = tr("Thanksgiving Day")
354
+ if self._year in thanksgiving_day_dates:
355
+ self._add_holiday(name, thanksgiving_day_dates[self._year])
356
+ elif self._year >= 1942:
357
+ self._add_holiday_4th_thu_of_nov(name)
358
+ else:
359
+ self._add_holiday_last_thu_of_nov(name)
278
360
 
279
- # Christmas Day
280
- if self._year >= 1871:
281
- self._add_observed(self._add_christmas_day("Christmas Day"))
361
+ if self._year >= 1870:
362
+ # Christmas Day.
363
+ self._add_observed(self._add_christmas_day(tr("Christmas Day")))
282
364
 
283
365
  def _populate_public_holidays(self):
284
366
  self._populate_common()
285
367
 
286
- # Memorial Day
287
368
  if 1888 <= self._year <= 1970:
288
- self._add_holiday_may_30("Memorial Day")
369
+ # Memorial Day.
370
+ self._add_holiday_may_30(tr("Memorial Day"))
289
371
 
290
372
  def _add_christmas_eve_holiday(self):
291
- # Christmas Eve
292
- # If on Friday, observed on Thursday
293
- # If on Saturday or Sunday, observed on Friday
294
- name = "Christmas Eve"
373
+ # If on Friday, observed on Thursday.
374
+ # If on Saturday or Sunday, observed on Friday.
375
+
376
+ # Christmas Eve.
377
+ name = tr("Christmas Eve")
295
378
  self._add_observed(
296
379
  self._add_christmas_eve(name), name=name, rule=FRI_TO_PREV_THU + SAT_SUN_TO_PREV_FRI
297
380
  )
@@ -300,11 +383,10 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
300
383
  if PUBLIC not in self.categories:
301
384
  return None
302
385
 
303
- # Martin Luther King Jr. Day
304
386
  if self._year >= 1986 and self.subdiv not in {"AL", "AR", "AZ", "GA", "ID", "MS", "NH"}:
305
- self._add_holiday_3rd_mon_of_jan("Martin Luther King Jr. Day")
387
+ # Martin Luther King Jr. Day.
388
+ self._add_holiday_3rd_mon_of_jan(tr("Martin Luther King Jr. Day"))
306
389
 
307
- # Washington's Birthday
308
390
  if self._year >= 1879 and self.subdiv not in {
309
391
  "AK",
310
392
  "AL",
@@ -339,13 +421,13 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
339
421
  "WV",
340
422
  "WY",
341
423
  }:
342
- name = "Washington's Birthday"
424
+ # Washington's Birthday.
425
+ name = tr("Washington's Birthday")
343
426
  if self._year >= 1971:
344
427
  self._add_holiday_3rd_mon_of_feb(name)
345
428
  else:
346
429
  self._add_holiday_feb_22(name)
347
430
 
348
- # Columbus Day
349
431
  if self._year >= 1937 and (
350
432
  self.subdiv is None
351
433
  or self.subdiv
@@ -369,7 +451,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
369
451
  "WV",
370
452
  }
371
453
  ):
372
- name = "Columbus Day"
454
+ # Columbus Day.
455
+ name = tr("Columbus Day")
373
456
  if self._year >= 1971:
374
457
  self._add_holiday_2nd_mon_of_oct(name)
375
458
  else:
@@ -378,147 +461,157 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
378
461
  super()._populate_subdiv_holidays()
379
462
 
380
463
  def _populate_subdiv_ak_public_holidays(self):
381
- # Washington's Birthday
382
464
  if self._year >= 1971:
383
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
465
+ # Presidents' Day.
466
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
384
467
 
385
- # Seward's Day
386
468
  # No observance in 1921: https://web.archive.org/web/20230208015211/https://chroniclingamerica.loc.gov/lccn/sn86072239/1922-03-29/ed-1/seq-8/
387
469
  if self._year >= 1918 and self._year != 1921:
388
- name = "Seward's Day"
470
+ # Seward's Day.
471
+ name = tr("Seward's Day")
389
472
  if self._year >= 1955:
390
473
  self._add_holiday_last_mon_of_mar(name)
391
474
  else:
392
475
  self._add_holiday_mar_30(name)
393
476
 
394
- # Indigenous Peoples' Day
395
477
  if self._year >= 1971:
396
478
  self._add_holiday_2nd_mon_of_oct(
397
- "Indigenous Peoples' Day" if self._year >= 2015 else "Columbus Day"
479
+ # Indigenous Peoples' Day.
480
+ tr("Indigenous Peoples' Day")
481
+ if self._year >= 2015
482
+ # Columbus Day.
483
+ else tr("Columbus Day")
398
484
  )
399
485
 
400
- # Alaska Day
401
486
  # https://web.archive.org/web/20120502232826/http://www.alaskadispatch.com/article/happy-alaska-day-great-land
402
487
  if self._year >= 1917:
403
- self._add_observed(self._add_holiday_oct_18("Alaska Day"))
488
+ # Alaska Day.
489
+ self._add_observed(self._add_holiday_oct_18(tr("Alaska Day")))
404
490
 
405
491
  def _populate_subdiv_al_public_holidays(self):
406
- # Martin Luther King Jr. Day
407
492
  if self._year >= 1986:
408
- self._add_holiday_3rd_mon_of_jan("Martin Luther King, Jr & Robert E. Lee's Birthday")
493
+ self._add_holiday_3rd_mon_of_jan(
494
+ # Martin Luther King, Jr & Robert E. Lee's Birthday.
495
+ tr("Martin Luther King, Jr & Robert E. Lee's Birthday")
496
+ )
409
497
 
410
- # Washington's Birthday
411
498
  if self._year >= 1879:
412
- name = "George Washington & Thomas Jefferson's Birthday"
499
+ # George Washington & Thomas Jefferson's Birthday.
500
+ name = tr("George Washington & Thomas Jefferson's Birthday")
413
501
  if self._year >= 1971:
414
502
  self._add_holiday_3rd_mon_of_feb(name)
415
503
  else:
416
504
  self._add_holiday_feb_22(name)
417
505
 
418
- # Confederate Memorial Day
419
506
  if self._year >= 1866:
420
- self._add_holiday_4th_mon_of_apr("Confederate Memorial Day")
507
+ # Confederate Memorial Day.
508
+ self._add_holiday_4th_mon_of_apr(tr("Confederate Memorial Day"))
421
509
 
422
- # Jefferson Davis Birthday
423
510
  if self._year >= 1890:
424
- self._add_holiday_1st_mon_of_jun("Jefferson Davis Birthday")
511
+ # Jefferson Davis Birthday.
512
+ self._add_holiday_1st_mon_of_jun(tr("Jefferson Davis Birthday"))
425
513
 
426
- # Columbus Day / American Indian Heritage Day / Fraternal Day
427
514
  if self._year >= 1971:
428
515
  self._add_holiday_2nd_mon_of_oct(
429
- "Columbus Day / American Indian Heritage Day / Fraternal Day"
516
+ # Columbus Day / American Indian Heritage Day / Fraternal Day.
517
+ tr("Columbus Day / American Indian Heritage Day / Fraternal Day")
430
518
  if self._year >= 2000
431
- else "Columbus Day / Fraternal Day"
519
+ # Columbus Day / Fraternal Day.
520
+ else tr("Columbus Day / Fraternal Day")
432
521
  )
433
522
 
434
523
  def _populate_subdiv_ar_public_holidays(self):
435
- # Martin Luther King Jr. Day
436
524
  if self._year >= 1986:
437
525
  self._add_holiday_3rd_mon_of_jan(
438
- "Martin Luther King Jr. Day"
526
+ # Martin Luther King Jr. Day.
527
+ tr("Martin Luther King Jr. Day")
439
528
  if self._year >= 2018
440
- else "Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays"
529
+ # Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays.
530
+ else tr("Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays")
441
531
  )
442
532
 
443
- # Washington's Birthday
444
533
  if self._year >= 1879:
445
- name = "George Washington's Birthday and Daisy Gatson Bates Day"
534
+ # George Washington's Birthday and Daisy Gatson Bates Day.
535
+ name = tr("George Washington's Birthday and Daisy Gatson Bates Day")
446
536
  if self._year >= 1971:
447
537
  self._add_holiday_3rd_mon_of_feb(name)
448
538
  else:
449
539
  self._add_holiday_feb_22(name)
450
540
 
451
541
  def _populate_subdiv_as_public_holidays(self):
452
- # American Samoa Flag Day
453
542
  if self._year >= 1901:
454
- self._add_observed(self._add_holiday_apr_17("American Samoa Flag Day"))
543
+ # American Samoa Flag Day.
544
+ self._add_observed(self._add_holiday_apr_17(tr("American Samoa Flag Day")))
455
545
 
456
- # Manu'a Islands Cession Day
457
546
  if self._year >= 1983:
458
- self._add_observed(self._add_holiday_jul_16("Manu'a Islands Cession Day"))
547
+ # Manu'a Islands Cession Day.
548
+ self._add_observed(self._add_holiday_jul_16(tr("Manu'a Islands Cession Day")))
459
549
 
460
- # White Sunday
461
- self._add_holiday_2nd_sun_of_oct("White Sunday")
550
+ # White Sunday.
551
+ self._add_holiday_2nd_sun_of_oct(tr("White Sunday"))
462
552
 
463
553
  def _populate_subdiv_az_public_holidays(self):
464
- # Martin Luther King Jr. Day
465
554
  if self._year >= 1986:
466
- self._add_holiday_3rd_mon_of_jan("Dr. Martin Luther King Jr. / Civil Rights Day")
555
+ # Dr. Martin Luther King Jr. / Civil Rights Day.
556
+ self._add_holiday_3rd_mon_of_jan(tr("Dr. Martin Luther King Jr. / Civil Rights Day"))
467
557
 
468
- # Washington's Birthday
469
558
  if self._year >= 1971:
470
- self._add_holiday_3rd_mon_of_feb("Lincoln/Washington Presidents' Day")
559
+ # Lincoln/Washington Presidents' Day.
560
+ self._add_holiday_3rd_mon_of_feb(tr("Lincoln/Washington Presidents' Day"))
471
561
 
472
562
  def _populate_subdiv_ca_public_holidays(self):
473
- # Lincoln's Birthday
474
563
  if 1971 <= self._year <= 2009:
475
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
564
+ # Lincoln's Birthday.
565
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
476
566
 
477
- # Washington's Birthday
478
567
  if self._year >= 1971:
479
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
568
+ # Presidents' Day.
569
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
480
570
 
481
- # Susan B. Anthony Day
482
571
  if self._year >= 2014:
483
- self._add_holiday_feb_15("Susan B. Anthony Day")
572
+ # Susan B. Anthony Day.
573
+ self._add_holiday_feb_15(tr("Susan B. Anthony Day"))
484
574
 
485
- # Cesar Chavez Day
486
575
  if self._year >= 1995:
487
- self._add_observed(self._add_holiday_mar_31("Cesar Chavez Day"), rule=SUN_TO_NEXT_MON)
576
+ self._add_observed(
577
+ # Cesar Chavez Day.
578
+ self._add_holiday_mar_31(tr("Cesar Chavez Day")),
579
+ rule=SUN_TO_NEXT_MON,
580
+ )
488
581
 
489
- # Columbus Day
490
582
  if 1971 <= self._year <= 2008:
491
- self._add_holiday_2nd_mon_of_oct("Columbus Day")
583
+ # Columbus Day.
584
+ self._add_holiday_2nd_mon_of_oct(tr("Columbus Day"))
492
585
 
493
- # Day After Thanksgiving
494
586
  if self._year >= 1975:
495
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
587
+ # Day After Thanksgiving.
588
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
496
589
 
497
590
  def _populate_subdiv_co_public_holidays(self):
498
- # Washington's Birthday
499
591
  if self._year >= 1971:
500
- self._add_holiday_3rd_mon_of_feb("Washington-Lincoln Day")
592
+ # Washington-Lincoln Day.
593
+ self._add_holiday_3rd_mon_of_feb(tr("Washington-Lincoln Day"))
501
594
 
502
- # Cesar Chavez Day
503
595
  if self._year >= 2001:
504
- self._add_holiday_mar_31("Cesar Chavez Day")
596
+ # Cesar Chavez Day.
597
+ self._add_holiday_mar_31(tr("Cesar Chavez Day"))
505
598
 
506
- # Frances Xavier Cabrini Day
507
599
  if self._year >= 2020:
508
- self._add_holiday_1st_mon_of_oct("Frances Xavier Cabrini Day")
600
+ # Frances Xavier Cabrini Day.
601
+ self._add_holiday_1st_mon_of_oct(tr("Frances Xavier Cabrini Day"))
509
602
 
510
603
  def _populate_subdiv_ct_public_holidays(self):
511
- # Lincoln's Birthday
512
604
  if self._year >= 1971:
513
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
605
+ # Lincoln's Birthday.
606
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
514
607
 
515
- # Good Friday
516
- self._add_good_friday("Good Friday")
608
+ # Good Friday.
609
+ self._add_good_friday(tr("Good Friday"))
517
610
 
518
611
  def _populate_subdiv_dc_public_holidays(self):
519
- # Inauguration Day
520
612
  if self._year >= 1789 and (self._year - 1789) % 4 == 0:
521
- name = "Inauguration Day"
613
+ # Inauguration Day.
614
+ name = tr("Inauguration Day")
522
615
  self._add_observed(
523
616
  self._add_holiday_jan_20(name)
524
617
  if self._year >= 1937
@@ -526,205 +619,211 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
526
619
  rule=SUN_TO_NEXT_MON,
527
620
  )
528
621
 
529
- # Emancipation Day
530
622
  if self._year >= 2005:
531
- self._add_observed(self._add_holiday_apr_16("Emancipation Day"))
623
+ # Emancipation Day.
624
+ self._add_observed(self._add_holiday_apr_16(tr("Emancipation Day")))
532
625
 
533
- # Indigenous Peoples' Day
534
626
  if self._year >= 1971:
535
627
  self._add_holiday_2nd_mon_of_oct(
536
- "Indigenous Peoples' Day" if self._year >= 2019 else "Columbus Day"
628
+ # Indigenous Peoples' Day.
629
+ tr("Indigenous Peoples' Day")
630
+ if self._year >= 2019
631
+ # Columbus Day.
632
+ else tr("Columbus Day")
537
633
  )
538
634
 
539
635
  def _populate_subdiv_de_public_holidays(self):
540
- # Good Friday
541
- self._add_good_friday("Good Friday")
636
+ # Good Friday.
637
+ self._add_good_friday(tr("Good Friday"))
542
638
 
543
- # Election Day
544
639
  if self._year >= 2008 and self._year % 2 == 0:
545
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
640
+ # Election Day.
641
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
546
642
 
547
- # Day After Thanksgiving
548
643
  if self._year >= 1975:
549
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
644
+ # Day After Thanksgiving.
645
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
550
646
 
551
647
  def _populate_subdiv_fl_public_holidays(self):
552
- # Susan B. Anthony Day
553
648
  if self._year >= 2011:
554
- self._add_holiday_feb_15("Susan B. Anthony Day")
649
+ # Susan B. Anthony Day.
650
+ self._add_holiday_feb_15(tr("Susan B. Anthony Day"))
555
651
 
556
- # Friday After Thanksgiving
557
652
  if self._year >= 1975:
558
- self._add_holiday_1_day_past_4th_thu_of_nov("Friday After Thanksgiving")
653
+ # Friday After Thanksgiving.
654
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Friday After Thanksgiving"))
559
655
 
560
656
  def _populate_subdiv_ga_public_holidays(self):
561
- # Martin Luther King Jr. Day
562
657
  if self._year >= 1986:
563
658
  self._add_holiday_3rd_mon_of_jan(
564
- "Martin Luther King Jr. Day" if self._year >= 2012 else "Robert E. Lee's Birthday"
659
+ # Martin Luther King Jr. Day.
660
+ tr("Martin Luther King Jr. Day")
661
+ if self._year >= 2012
662
+ # Robert E. Lee's Birthday.
663
+ else tr("Robert E. Lee's Birthday")
565
664
  )
566
665
 
567
- # Confederate Memorial Day
568
666
  if self._year >= 1866:
569
- name = "State Holiday" if self._year >= 2016 else "Confederate Memorial Day"
667
+ name = (
668
+ # State Holiday.
669
+ tr("State Holiday")
670
+ if self._year >= 2016
671
+ # Confederate Memorial Day.
672
+ else tr("Confederate Memorial Day")
673
+ )
570
674
  if self._year == 2020:
571
675
  self._add_holiday_apr_10(name)
572
676
  else:
573
677
  self._add_holiday_4th_mon_of_apr(name)
574
678
 
575
- # Robert E. Lee's Birthday
576
679
  if self._year >= 1986:
577
680
  self._add_holiday_1_day_past_4th_thu_of_nov(
578
- "State Holiday" if self._year >= 2016 else "Robert E. Lee's Birthday"
681
+ # State Holiday.
682
+ tr("State Holiday")
683
+ if self._year >= 2016
684
+ # Robert E. Lee's Birthday.
685
+ else tr("Robert E. Lee's Birthday")
579
686
  )
580
687
 
581
- # Washington's Birthday
582
688
  if self._year >= 1879:
583
689
  self._add_holiday(
584
- "Washington's Birthday",
690
+ # Washington's Birthday.
691
+ tr("Washington's Birthday"),
585
692
  self._get_observed_date(self._christmas_day, rule=GA_IN_WASHINGTON_BIRTHDAY),
586
693
  )
587
694
 
588
695
  def _populate_subdiv_gu_public_holidays(self):
589
- # Guam Discovery Day
590
696
  if self._year >= 1970:
591
- self._add_holiday_1st_mon_of_mar("Guam Discovery Day")
697
+ # Guam Discovery Day.
698
+ self._add_holiday_1st_mon_of_mar(tr("Guam Discovery Day"))
592
699
 
593
- # Good Friday
594
- self._add_good_friday("Good Friday")
700
+ # Good Friday.
701
+ self._add_good_friday(tr("Good Friday"))
595
702
 
596
- # Liberation Day (Guam)
597
703
  if self._year >= 1945:
598
- self._add_holiday_jul_21("Liberation Day (Guam)")
704
+ # Liberation Day (Guam).
705
+ self._add_holiday_jul_21(tr("Liberation Day (Guam)"))
599
706
 
600
- # All Souls' Day
601
- self._add_all_souls_day("All Souls' Day")
707
+ # All Souls' Day.
708
+ self._add_all_souls_day(tr("All Souls' Day"))
602
709
 
603
- # Lady of Camarin Day
604
- self._add_immaculate_conception_day("Lady of Camarin Day")
710
+ # Lady of Camarin Day.
711
+ self._add_immaculate_conception_day(tr("Lady of Camarin Day"))
605
712
 
606
713
  def _populate_subdiv_hi_public_holidays(self):
607
- # Washington's Birthday
608
714
  if self._year >= 1971:
609
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
715
+ # Presidents' Day.
716
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
610
717
 
611
- # Prince Jonah Kuhio Kalanianaole Day
612
718
  if self._year >= 1949:
613
- self._add_observed(self._add_holiday_mar_26("Prince Jonah Kuhio Kalanianaole Day"))
719
+ # Prince Jonah Kuhio Kalanianaole Day.
720
+ self._add_observed(self._add_holiday_mar_26(tr("Prince Jonah Kuhio Kalanianaole Day")))
614
721
 
615
- # Kamehameha Day
616
722
  if self._year >= 1872:
617
- jun_11 = self._add_holiday_jun_11("Kamehameha Day")
723
+ # Kamehameha Day.
724
+ jun_11 = self._add_holiday_jun_11(tr("Kamehameha Day"))
618
725
  if self._year >= 2011:
619
726
  self._add_observed(jun_11)
620
727
 
621
- # Statehood Day
622
728
  if self._year >= 1959:
623
- self._add_holiday_3rd_fri_of_aug("Statehood Day")
729
+ # Statehood Day.
730
+ self._add_holiday_3rd_fri_of_aug(tr("Statehood Day"))
624
731
 
625
- # Election Day
626
732
  if self._year >= 2008 and self._year % 2 == 0:
627
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
733
+ # Election Day.
734
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
628
735
 
629
736
  def _populate_subdiv_ia_public_holidays(self):
630
- # Lincoln's Birthday
631
737
  if self._year >= 1971:
632
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
738
+ # Lincoln's Birthday.
739
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
633
740
 
634
741
  def _populate_subdiv_id_public_holidays(self):
635
- # Martin Luther King Jr. Day
636
742
  if self._year >= 1986:
637
743
  self._add_holiday_3rd_mon_of_jan(
638
- "Martin Luther King Jr. / Idaho Human Rights Day"
744
+ # Martin Luther King Jr. / Idaho Human Rights Day.
745
+ tr("Martin Luther King Jr. / Idaho Human Rights Day")
639
746
  if self._year >= 2006
640
- else "Martin Luther King Jr. Day"
747
+ # Martin Luther King Jr. Day.
748
+ else tr("Martin Luther King Jr. Day")
641
749
  )
642
750
 
643
- # Washington's Birthday
644
751
  if self._year >= 1971:
645
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
752
+ # Presidents' Day.
753
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
646
754
 
647
755
  def _populate_subdiv_il_public_holidays(self):
648
- # Lincoln's Birthday
649
756
  if self._year >= 1971:
650
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
757
+ # Lincoln's Birthday.
758
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
651
759
 
652
- # Casimir Pulaski Day
653
760
  if self._year >= 1978:
654
- self._add_holiday_1st_mon_of_mar("Casimir Pulaski Day")
761
+ # Casimir Pulaski Day.
762
+ self._add_holiday_1st_mon_of_mar(tr("Casimir Pulaski Day"))
655
763
 
656
- # Election Day
657
764
  if self._year >= 2008 and self._year % 2 == 0:
658
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
765
+ # Election Day.
766
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
659
767
 
660
768
  def _populate_subdiv_in_public_holidays(self):
661
- # Good Friday
662
- self._add_good_friday("Good Friday")
769
+ # Good Friday.
770
+ self._add_good_friday(tr("Good Friday"))
663
771
 
664
- # Primary Election Day
665
772
  if self._year >= 2015 or (self._year >= 2006 and self._year % 2 == 0):
666
- self._add_holiday_1_day_past_1st_mon_of_may("Primary Election Day")
773
+ # Primary Election Day.
774
+ self._add_holiday_1_day_past_1st_mon_of_may(tr("Primary Election Day"))
667
775
 
668
- # Election Day
669
776
  if self._year >= 2015 or (self._year >= 2008 and self._year % 2 == 0):
670
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
777
+ # Election Day.
778
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
671
779
 
672
- # Lincoln's Birthday
673
780
  if self._year >= 2010:
674
- self._add_holiday_1_day_past_4th_thu_of_nov("Lincoln's Birthday")
781
+ # Lincoln's Birthday.
782
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Lincoln's Birthday"))
675
783
 
676
- # Washington's Birthday
677
784
  if self._year >= 1879:
678
785
  self._add_holiday(
679
- "Washington's Birthday",
786
+ # Washington's Birthday.
787
+ tr("Washington's Birthday"),
680
788
  self._get_observed_date(self._christmas_day, rule=GA_IN_WASHINGTON_BIRTHDAY),
681
789
  )
682
790
 
683
791
  def _populate_subdiv_ks_public_holidays(self):
684
- # Christmas Eve
685
792
  if self._year >= 2013:
793
+ # Christmas Eve.
686
794
  self._add_christmas_eve_holiday()
687
795
 
688
796
  def _populate_subdiv_ky_public_holidays(self):
689
- # Good Friday
690
- self._add_good_friday("Good Friday")
797
+ # Good Friday.
798
+ self._add_good_friday(tr("Good Friday"))
691
799
 
692
- # New Year's Eve
693
800
  if self._year >= 2013:
694
- self._add_observed(self._add_new_years_eve("New Year's Eve"))
801
+ # New Year's Eve.
802
+ self._add_observed(self._add_new_years_eve(tr("New Year's Eve")))
695
803
 
696
804
  def _populate_subdiv_la_public_holidays(self):
697
- # Inauguration Day
698
- if self._year >= 1789 and (self._year - 1789) % 4 == 0:
699
- name = "Inauguration Day"
700
- self._add_observed(
701
- self._add_holiday_jan_20(name)
702
- if self._year >= 1937
703
- else self._add_holiday_mar_4(name),
704
- rule=SUN_TO_NEXT_MON,
705
- )
706
-
707
- # Mardi Gras
708
805
  if self._year >= 1857:
709
- self._add_carnival_tuesday("Mardi Gras")
806
+ # Mardi Gras.
807
+ self._add_carnival_tuesday(tr("Mardi Gras"))
710
808
 
711
- # Good Friday
712
- self._add_good_friday("Good Friday")
809
+ # Good Friday.
810
+ self._add_good_friday(tr("Good Friday"))
713
811
 
714
- # Election Day
715
812
  if self._year >= 2008 and self._year % 2 == 0:
716
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
813
+ # Election Day.
814
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
717
815
 
718
816
  def _populate_subdiv_ma_public_holidays(self):
719
- # Evacuation Day
720
817
  if self._year >= 1901:
721
818
  self._add_observed(
722
- self._add_holiday_mar_17("Evacuation Day"), rule=SAT_SUN_TO_NEXT_MON
819
+ # Evacuation Day.
820
+ self._add_holiday_mar_17(tr("Evacuation Day")),
821
+ rule=SAT_SUN_TO_NEXT_MON,
723
822
  )
724
823
 
725
- # Patriots' Day
726
824
  if self._year >= 1894:
727
- name = "Patriots' Day"
825
+ # Patriots' Day.
826
+ name = tr("Patriots' Day")
728
827
  if self._year >= 1969:
729
828
  self._add_holiday_3rd_mon_of_apr(name)
730
829
  else:
@@ -732,8 +831,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
732
831
 
733
832
  def _populate_subdiv_md_public_holidays(self):
734
833
  if self._year >= 1789 and (self._year - 1789) % 4 == 0:
735
- # Inauguration Day
736
- name = "Inauguration Day"
834
+ # Inauguration Day.
835
+ name = tr("Inauguration Day")
737
836
  self._add_observed(
738
837
  self._add_holiday_jan_20(name)
739
838
  if self._year >= 1937
@@ -741,112 +840,115 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
741
840
  rule=SUN_TO_NEXT_MON,
742
841
  )
743
842
 
744
- # Washington's Birthday
745
843
  if self._year >= 1971:
746
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
844
+ # Presidents' Day.
845
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
747
846
 
748
- # American Indian Heritage Day
749
847
  if self._year >= 2008:
750
- self._add_holiday_1_day_past_4th_thu_of_nov("American Indian Heritage Day")
848
+ # American Indian Heritage Day.
849
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("American Indian Heritage Day"))
751
850
 
752
851
  def _populate_subdiv_me_public_holidays(self):
753
- # Patriots' Day
754
852
  if self._year >= 1894:
755
- name = "Patriots' Day"
853
+ # Patriots' Day.
854
+ name = tr("Patriots' Day")
756
855
  if self._year >= 1969:
757
- self._add_holiday_3rd_mon_of_apr("Patriots' Day")
856
+ self._add_holiday_3rd_mon_of_apr(tr("Patriots' Day"))
758
857
  else:
759
858
  self._add_holiday_apr_19(name)
760
859
 
761
- # Indigenous Peoples' Day
762
860
  if self._year >= 1971:
763
861
  self._add_holiday_2nd_mon_of_oct(
764
- "Indigenous Peoples' Day" if self._year >= 2019 else "Columbus Day"
862
+ # Indigenous Peoples' Day.
863
+ tr("Indigenous Peoples' Day")
864
+ if self._year >= 2019
865
+ # Columbus Day.
866
+ else tr("Columbus Day")
765
867
  )
766
868
 
767
869
  def _populate_subdiv_mi_public_holidays(self):
768
870
  if self._year >= 2013:
769
- # Christmas Eve
871
+ # Christmas Eve.
770
872
  self._add_christmas_eve_holiday()
771
873
 
772
- # New Year's Eve
773
- self._add_observed(self._add_new_years_eve("New Year's Eve"))
874
+ # New Year's Eve.
875
+ self._add_observed(self._add_new_years_eve(tr("New Year's Eve")))
774
876
 
775
- # Election Day
776
877
  if self._year >= 2008 and self._year % 2 == 0:
777
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
878
+ # Election Day.
879
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
778
880
 
779
- # Day after Thanksgiving
780
881
  if self._year >= 2017:
781
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
882
+ # Day After Thanksgiving.
883
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
782
884
 
783
885
  def _populate_subdiv_mn_public_holidays(self):
784
- # Washington's Birthday
785
886
  if self._year >= 1971:
786
- self._add_holiday_3rd_mon_of_feb("Washington's and Lincoln's Birthday")
887
+ # Washington's and Lincoln's Birthday.
888
+ self._add_holiday_3rd_mon_of_feb(tr("Washington's and Lincoln's Birthday"))
787
889
 
788
890
  def _populate_subdiv_mo_public_holidays(self):
789
- # Truman Day
790
891
  if self._year >= 1949:
791
- self._add_observed(self._add_holiday_may_8("Truman Day"))
892
+ # Truman Day.
893
+ self._add_observed(self._add_holiday_may_8(tr("Truman Day")))
792
894
 
793
895
  def _populate_subdiv_mp_public_holidays(self):
794
- # Commonwealth Covenant Day in Northern Mariana Islands
795
- self._add_observed(self._add_holiday_mar_24("Commonwealth Covenant Day"))
896
+ # Commonwealth Covenant Day.
897
+ self._add_observed(self._add_holiday_mar_24(tr("Commonwealth Covenant Day")))
796
898
 
797
- # Good Friday
798
- self._add_good_friday("Good Friday")
899
+ # Good Friday.
900
+ self._add_good_friday(tr("Good Friday"))
799
901
 
800
- # Commonwealth Cultural Day in Northern Mariana Islands
801
- self._add_holiday_2nd_mon_of_oct("Commonwealth Cultural Day")
902
+ # Commonwealth Cultural Day.
903
+ self._add_holiday_2nd_mon_of_oct(tr("Commonwealth Cultural Day"))
802
904
 
803
- # Election Day
804
905
  if self._year >= 2008 and self._year % 2 == 0:
805
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
906
+ # Election Day.
907
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
806
908
 
807
- # Citizenship Day in Northern Mariana Islands
808
- self._add_observed(self._add_holiday_nov_4("Citizenship Day"))
909
+ # Citizenship Day.
910
+ self._add_observed(self._add_holiday_nov_4(tr("Citizenship Day")))
809
911
 
810
- # Constitution Day in Northern Mariana Islands
811
- self._add_observed(self._add_holiday_dec_8("Constitution Day"))
912
+ # Constitution Day.
913
+ self._add_observed(self._add_holiday_dec_8(tr("Constitution Day")))
812
914
 
813
915
  def _populate_subdiv_ms_public_holidays(self):
814
- # Martin Luther King Jr. Day
815
916
  if self._year >= 1986:
816
917
  self._add_holiday_3rd_mon_of_jan(
817
- "Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays"
918
+ # Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays.
919
+ tr("Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays")
818
920
  )
819
921
 
820
- # Confederate Memorial Day
821
922
  if self._year >= 1866:
822
- self._add_holiday_last_mon_of_apr("Confederate Memorial Day")
923
+ # Confederate Memorial Day.
924
+ self._add_holiday_last_mon_of_apr(tr("Confederate Memorial Day"))
823
925
 
824
926
  def _populate_subdiv_mt_public_holidays(self):
825
- # Washington's Birthday
826
927
  if self._year >= 1971:
827
- self._add_holiday_3rd_mon_of_feb("Lincoln's and Washington's Birthdays")
928
+ # Lincoln's and Washington's Birthdays.
929
+ self._add_holiday_3rd_mon_of_feb(tr("Lincoln's and Washington's Birthdays"))
828
930
 
829
- # Election Day
830
931
  if self._year >= 2008 and self._year % 2 == 0:
831
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
932
+ # Election Day.
933
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
832
934
 
833
935
  def _populate_subdiv_nc_public_holidays(self):
834
- # Good Friday
835
- self._add_good_friday("Good Friday")
936
+ # Good Friday.
937
+ self._add_good_friday(tr("Good Friday"))
836
938
 
837
- # Day After Thanksgiving
838
939
  if self._year >= 1975:
839
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
940
+ # Day After Thanksgiving.
941
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
840
942
 
841
- # Christmas Eve
842
943
  if self._year >= 2013:
944
+ # Christmas Eve.
843
945
  self._add_christmas_eve_holiday()
844
946
 
845
- # Day After Christmas
947
+ # If on Saturday or Sunday, observed on Monday
948
+ # If on Monday, observed on Tuesday
846
949
  if self._year >= 2013:
847
- # If on Saturday or Sunday, observed on Monday
848
- # If on Monday, observed on Tuesday
849
- name = "Day After Christmas"
950
+ # Day After Christmas.
951
+ name = tr("Day After Christmas")
850
952
  self._add_observed(
851
953
  self._add_christmas_day_two(name),
852
954
  name=name,
@@ -857,229 +959,243 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
857
959
  pass
858
960
 
859
961
  def _populate_subdiv_ne_public_holidays(self):
860
- # Arbor Day
861
962
  if self._year >= 1875:
862
- name = "Arbor Day"
963
+ # Arbor Day.
964
+ name = tr("Arbor Day")
863
965
  if self._year >= 1989:
864
966
  self._add_holiday_last_fri_of_apr(name)
865
967
  else:
866
968
  self._add_holiday_apr_22(name)
867
969
 
868
- # Indigenous Peoples' Day
869
970
  if self._year >= 1971:
870
971
  self._add_holiday_2nd_mon_of_oct(
871
- "Indigenous Peoples' Day" if self._year >= 2020 else "Columbus Day"
972
+ # Indigenous Peoples' Day.
973
+ tr("Indigenous Peoples' Day")
974
+ if self._year >= 2020
975
+ # Columbus Day.
976
+ else tr("Columbus Day")
872
977
  )
873
978
 
874
979
  def _populate_subdiv_nh_public_holidays(self):
875
- # Martin Luther King Jr. Day
876
980
  if self._year >= 1986:
877
- self._add_holiday_3rd_mon_of_jan("Dr. Martin Luther King Jr. / Civil Rights Day")
981
+ # Dr. Martin Luther King Jr. / Civil Rights Day.
982
+ self._add_holiday_3rd_mon_of_jan(tr("Dr. Martin Luther King Jr. / Civil Rights Day"))
878
983
 
879
- # Election Day
880
984
  if self._year >= 2008 and self._year % 2 == 0:
881
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
985
+ # Election Day.
986
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
882
987
 
883
- # Day After Thanksgiving
884
988
  if self._year >= 1975:
885
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
989
+ # Day After Thanksgiving.
990
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
886
991
 
887
992
  def _populate_subdiv_nj_public_holidays(self):
888
- # Lincoln's Birthday
889
993
  if self._year >= 1971:
890
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
994
+ # Lincoln's Birthday.
995
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
891
996
 
892
- # Washington's Birthday
893
997
  if self._year >= 1971:
894
- self._add_holiday_3rd_mon_of_feb("Presidents Day")
998
+ # Presidents Day.
999
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents Day"))
895
1000
 
896
- # Good Friday
897
- self._add_good_friday("Good Friday")
1001
+ # Good Friday.
1002
+ self._add_good_friday(tr("Good Friday"))
898
1003
 
899
- # Election Day
900
1004
  if self._year >= 2008 and self._year % 2 == 0:
901
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
1005
+ # Election Day.
1006
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
902
1007
 
903
1008
  def _populate_subdiv_nm_public_holidays(self):
904
- # Indigenous Peoples' Day
905
1009
  if self._year >= 1971:
906
1010
  self._add_holiday_2nd_mon_of_oct(
907
- "Indigenous Peoples' Day" if self._year >= 2019 else "Columbus Day"
1011
+ # Indigenous Peoples' Day.
1012
+ tr("Indigenous Peoples' Day")
1013
+ if self._year >= 2019
1014
+ # Columbus Day.
1015
+ else tr("Columbus Day")
908
1016
  )
909
1017
 
910
- # Presidents' Day
911
- self._add_holiday_1_day_past_4th_thu_of_nov("Presidents' Day")
1018
+ # Presidents' Day.
1019
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Presidents' Day"))
912
1020
 
913
1021
  def _populate_subdiv_nv_public_holidays(self):
914
- # Nevada Day
915
1022
  if self._year >= 1933:
916
- name = "Nevada Day"
1023
+ # Nevada Day.
1024
+ name = tr("Nevada Day")
917
1025
  self._add_observed(
918
1026
  self._add_holiday_last_fri_of_oct(name)
919
1027
  if self._year >= 2000
920
1028
  else self._add_holiday_oct_31(name)
921
1029
  )
922
1030
 
923
- # Family Day
924
- self._add_holiday_1_day_past_4th_thu_of_nov("Family Day")
1031
+ # Family Day.
1032
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Family Day"))
925
1033
 
926
1034
  def _populate_subdiv_ny_public_holidays(self):
927
- # Lincoln's Birthday
928
1035
  if self._year >= 1971:
929
- self._add_observed(self._add_holiday_feb_12("Lincoln's Birthday"))
1036
+ # Lincoln's Birthday.
1037
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
930
1038
 
931
- # Susan B. Anthony Day
932
1039
  if self._year >= 2004:
933
- self._add_holiday_feb_15("Susan B. Anthony Day")
1040
+ # Susan B. Anthony Day.
1041
+ self._add_holiday_feb_15(tr("Susan B. Anthony Day"))
934
1042
 
935
- # Election Day
936
1043
  if self._year >= 2015 or (self._year >= 2008 and self._year % 2 == 0):
937
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
1044
+ # Election Day.
1045
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
938
1046
 
939
1047
  def _populate_subdiv_oh_public_holidays(self):
940
- # Washington's Birthday
941
1048
  if self._year >= 1971:
942
- self._add_holiday_3rd_mon_of_feb("Washington-Lincoln Day")
1049
+ # Washington-Lincoln Day.
1050
+ self._add_holiday_3rd_mon_of_feb(tr("Washington-Lincoln Day"))
943
1051
 
944
1052
  def _populate_subdiv_ok_public_holidays(self):
945
- # Washington's Birthday
946
1053
  if self._year >= 1971:
947
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1054
+ # Presidents' Day.
1055
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
948
1056
 
949
- # Day After Thanksgiving
950
1057
  if self._year >= 1975:
951
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
1058
+ # Day After Thanksgiving.
1059
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
952
1060
 
953
1061
  def _populate_subdiv_or_public_holidays(self):
954
- # Washington's Birthday
955
1062
  if self._year >= 1971:
956
- self._add_holiday_3rd_mon_of_feb("Presidents Day")
1063
+ # Presidents Day.
1064
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents Day"))
957
1065
 
958
1066
  def _populate_subdiv_pa_public_holidays(self):
959
- # Washington's Birthday
960
1067
  if self._year >= 1971:
961
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1068
+ # Presidents' Day.
1069
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
962
1070
 
963
- # Day After Thanksgiving
964
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
1071
+ # Day After Thanksgiving.
1072
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
965
1073
 
966
1074
  def _populate_subdiv_pr_public_holidays(self):
967
- # Epiphany
968
- self._add_epiphany_day("Epiphany")
1075
+ # Epiphany.
1076
+ self._add_epiphany_day(tr("Epiphany"))
969
1077
 
970
- # Washington's Birthday
971
1078
  if self._year >= 1971:
972
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1079
+ # Presidents' Day.
1080
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
973
1081
 
974
- # Emancipation Day
975
- self._add_observed(self._add_holiday_mar_22("Emancipation Day"), rule=SUN_TO_NEXT_MON)
1082
+ # Emancipation Day.
1083
+ self._add_observed(self._add_holiday_mar_22(tr("Emancipation Day")), rule=SUN_TO_NEXT_MON)
976
1084
 
977
- # Good Friday
978
- self._add_good_friday("Good Friday")
1085
+ # Good Friday.
1086
+ self._add_good_friday(tr("Good Friday"))
979
1087
 
980
- # Constitution Day
981
- self._add_observed(self._add_holiday_jul_25("Constitution Day"), rule=SUN_TO_NEXT_MON)
1088
+ # Constitution Day.
1089
+ self._add_observed(self._add_holiday_jul_25(tr("Constitution Day")), rule=SUN_TO_NEXT_MON)
982
1090
 
983
- # Discovery Day
984
- self._add_observed(self._add_holiday_nov_19("Discovery Day"), rule=SUN_TO_NEXT_MON)
1091
+ # Discovery Day.
1092
+ self._add_observed(self._add_holiday_nov_19(tr("Discovery Day")), rule=SUN_TO_NEXT_MON)
985
1093
 
986
1094
  def _populate_subdiv_ri_public_holidays(self):
987
- # Victory Day
988
1095
  if self._year >= 1948:
989
- self._add_holiday_2nd_mon_of_aug("Victory Day")
1096
+ # Victory Day.
1097
+ self._add_holiday_2nd_mon_of_aug(tr("Victory Day"))
990
1098
 
991
- # Indigenous Peoples' Day
992
1099
  if self._year >= 1971:
993
1100
  self._add_holiday_2nd_mon_of_oct(
994
- "Indigenous Peoples' Day / Columbus Day" if self._year >= 2022 else "Columbus Day"
1101
+ # Indigenous Peoples' Day / Columbus Day.
1102
+ tr("Indigenous Peoples' Day / Columbus Day")
1103
+ if self._year >= 2022
1104
+ # Columbus Day.
1105
+ else tr("Columbus Day")
995
1106
  )
996
1107
 
997
1108
  def _populate_subdiv_sc_public_holidays(self):
998
- # Washington's Birthday
999
1109
  if self._year >= 1971:
1000
- self._add_holiday_3rd_mon_of_feb("President's Day")
1110
+ # President's Day.
1111
+ self._add_holiday_3rd_mon_of_feb(tr("President's Day"))
1001
1112
 
1002
- # Confederate Memorial Day
1003
1113
  if self._year >= 1866:
1004
- self._add_holiday_4th_mon_of_apr("Confederate Memorial Day")
1114
+ # Confederate Memorial Day.
1115
+ self._add_holiday_4th_mon_of_apr(tr("Confederate Memorial Day"))
1005
1116
 
1006
1117
  def _populate_subdiv_sd_public_holidays(self):
1007
- # Native Americans' Day / Columbus Day
1008
1118
  if self._year >= 1937:
1009
- name = "Native Americans' Day" if self._year >= 1990 else "Columbus Day"
1119
+ name = (
1120
+ # Native Americans' Day.
1121
+ tr("Native Americans' Day")
1122
+ if self._year >= 1990
1123
+ # Columbus Day.
1124
+ else tr("Columbus Day")
1125
+ )
1010
1126
  if self._year >= 1970:
1011
1127
  self._add_holiday_2nd_mon_of_oct(name)
1012
1128
  else:
1013
1129
  self._add_columbus_day(name)
1014
1130
 
1015
1131
  def _populate_subdiv_tn_public_holidays(self):
1016
- # Washington's Birthday
1017
1132
  if self._year >= 1971:
1018
- self._add_holiday_3rd_mon_of_feb("President's Day")
1133
+ # President's Day.
1134
+ self._add_holiday_3rd_mon_of_feb(tr("President's Day"))
1019
1135
 
1020
- # Good Friday
1021
- self._add_good_friday("Good Friday")
1136
+ # Good Friday.
1137
+ self._add_good_friday(tr("Good Friday"))
1022
1138
 
1023
1139
  def _populate_subdiv_tx_public_holidays(self):
1024
- # Confederate Memorial Day
1025
1140
  if self._year >= 1931:
1026
- self._add_holiday_jan_19("Confederate Memorial Day")
1141
+ # Confederate Memorial Day.
1142
+ self._add_holiday_jan_19(tr("Confederate Memorial Day"))
1027
1143
 
1028
- # Washington's Birthday
1029
1144
  if self._year >= 1971:
1030
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1145
+ # Presidents' Day.
1146
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
1031
1147
 
1032
- # Texas Independence Day
1033
1148
  if self._year >= 1874:
1034
- self._add_holiday_mar_2("Texas Independence Day")
1149
+ # Texas Independence Day.
1150
+ self._add_holiday_mar_2(tr("Texas Independence Day"))
1035
1151
 
1036
- # Cesar Chavez Day
1037
1152
  if self._year >= 2000:
1038
- self._add_holiday_mar_31("Cesar Chavez Day")
1153
+ # Cesar Chavez Day.
1154
+ self._add_holiday_mar_31(tr("Cesar Chavez Day"))
1039
1155
 
1040
- # Good Friday
1041
- self._add_good_friday("Good Friday")
1156
+ # Good Friday.
1157
+ self._add_good_friday(tr("Good Friday"))
1042
1158
 
1043
- # San Jacinto Day
1044
1159
  if self._year >= 1875:
1045
- self._add_holiday_apr_21("San Jacinto Day")
1160
+ # San Jacinto Day.
1161
+ self._add_holiday_apr_21(tr("San Jacinto Day"))
1046
1162
 
1047
- # Emancipation Day In Texas
1048
1163
  if self._year >= 1980:
1049
- self._add_holiday_jun_19("Emancipation Day In Texas")
1164
+ # Emancipation Day In Texas.
1165
+ self._add_holiday_jun_19(tr("Emancipation Day In Texas"))
1050
1166
 
1051
- # Lyndon Baines Johnson Day
1052
1167
  if self._year >= 1973:
1053
- self._add_holiday_aug_27("Lyndon Baines Johnson Day")
1168
+ # Lyndon Baines Johnson Day.
1169
+ self._add_holiday_aug_27(tr("Lyndon Baines Johnson Day"))
1054
1170
 
1055
- # Friday After Thanksgiving
1056
1171
  if self._year >= 1975:
1057
- self._add_holiday_1_day_past_4th_thu_of_nov("Friday After Thanksgiving")
1172
+ # Friday After Thanksgiving.
1173
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Friday After Thanksgiving"))
1058
1174
 
1059
- # Christmas Eve
1060
1175
  if self._year >= 1981:
1176
+ # Christmas Eve.
1061
1177
  self._add_christmas_eve_holiday()
1062
1178
 
1063
- # Day After Christmas
1064
1179
  if self._year >= 1981:
1065
- self._add_christmas_day_two("Day After Christmas")
1180
+ # Day After Christmas.
1181
+ self._add_christmas_day_two(tr("Day After Christmas"))
1066
1182
 
1067
1183
  def _populate_subdiv_um_public_holidays(self):
1068
1184
  pass
1069
1185
 
1070
1186
  def _populate_subdiv_ut_public_holidays(self):
1071
- # Washington's Birthday
1072
1187
  if self._year >= 1971:
1073
- self._add_holiday_3rd_mon_of_feb("Washington and Lincoln Day")
1188
+ # Washington and Lincoln Day.
1189
+ self._add_holiday_3rd_mon_of_feb(tr("Washington and Lincoln Day"))
1074
1190
 
1075
- # Pioneer Day
1076
1191
  if self._year >= 1849:
1077
- self._add_observed(self._add_holiday_jul_24("Pioneer Day"))
1192
+ # Pioneer Day.
1193
+ self._add_observed(self._add_holiday_jul_24(tr("Pioneer Day")))
1078
1194
 
1079
1195
  def _populate_subdiv_va_public_holidays(self):
1080
- # Lee Jackson Day
1081
1196
  if 1889 <= self._year <= 2020:
1082
- name = "Lee Jackson Day"
1197
+ # Lee Jackson Day.
1198
+ name = tr("Lee Jackson Day")
1083
1199
  if self._year >= 2000:
1084
1200
  self._add_holiday_3_days_prior_3rd_mon_of_jan(name)
1085
1201
  elif self._year >= 1983:
@@ -1087,9 +1203,9 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
1087
1203
  else:
1088
1204
  self._add_holiday_jan_19(name)
1089
1205
 
1090
- # Inauguration Day
1091
1206
  if self._year >= 1789 and (self._year - 1789) % 4 == 0:
1092
- name = "Inauguration Day"
1207
+ # Inauguration Day.
1208
+ name = tr("Inauguration Day")
1093
1209
  self._add_observed(
1094
1210
  self._add_holiday_jan_20(name)
1095
1211
  if self._year >= 1937
@@ -1097,133 +1213,142 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
1097
1213
  rule=SUN_TO_NEXT_MON,
1098
1214
  )
1099
1215
 
1100
- # Washington's Birthday
1101
1216
  if self._year >= 1971:
1102
- self._add_holiday_3rd_mon_of_feb("George Washington Day")
1217
+ # George Washington Day.
1218
+ self._add_holiday_3rd_mon_of_feb(tr("George Washington Day"))
1103
1219
 
1104
- # Indigenous Peoples' Day
1105
1220
  if self._year >= 1971:
1106
1221
  self._add_holiday_2nd_mon_of_oct(
1107
- "Indigenous Peoples' Day" if self._year >= 2020 else "Columbus Day"
1222
+ # Indigenous Peoples' Day.
1223
+ tr("Indigenous Peoples' Day")
1224
+ if self._year >= 2020
1225
+ # Columbus Day.
1226
+ else tr("Columbus Day")
1108
1227
  )
1109
1228
 
1110
1229
  def _populate_subdiv_vi_public_holidays(self):
1111
- # Three Kings Day
1112
- self._add_epiphany_day("Three Kings Day")
1230
+ # Three Kings Day.
1231
+ self._add_epiphany_day(tr("Three Kings Day"))
1113
1232
 
1114
- # Washington's Birthday
1115
1233
  if self._year >= 1879:
1116
- name = "Presidents' Day"
1234
+ # Presidents' Day.
1235
+ name = tr("Presidents' Day")
1117
1236
  if self._year >= 1971:
1118
1237
  self._add_holiday_3rd_mon_of_feb(name)
1119
1238
  else:
1120
1239
  self._add_holiday_feb_22(name)
1121
1240
 
1122
- # Transfer Day
1123
- self._add_holiday_mar_31("Transfer Day")
1241
+ # Transfer Day.
1242
+ self._add_holiday_mar_31(tr("Transfer Day"))
1124
1243
 
1125
- # Holy Thursday
1126
- self._add_holy_thursday("Holy Thursday")
1244
+ # Holy Thursday.
1245
+ self._add_holy_thursday(tr("Holy Thursday"))
1127
1246
 
1128
- # Good Friday
1129
- self._add_good_friday("Good Friday")
1247
+ # Good Friday.
1248
+ self._add_good_friday(tr("Good Friday"))
1130
1249
 
1131
- # Easter Monday
1132
- self._add_easter_monday("Easter Monday")
1250
+ # Easter Monday.
1251
+ self._add_easter_monday(tr("Easter Monday"))
1133
1252
 
1134
- # Emancipation Day in US Virgin Islands
1135
- self._add_holiday_jul_3("Emancipation Day")
1253
+ # Emancipation Day.
1254
+ self._add_holiday_jul_3(tr("Emancipation Day"))
1136
1255
 
1137
- # Columbus Day
1138
1256
  if self._year >= 1937:
1139
- name = "Columbus Day and Puerto Rico Friendship Day"
1257
+ # Columbus Day and Puerto Rico Friendship Day.
1258
+ name = tr("Columbus Day and Puerto Rico Friendship Day")
1140
1259
  if self._year >= 1970:
1141
1260
  self._add_holiday_2nd_mon_of_oct(name)
1142
1261
  else:
1143
1262
  self._add_columbus_day(name)
1144
1263
 
1145
- # Liberty Day
1146
- self._add_holiday_nov_1("Liberty Day")
1264
+ # Liberty Day.
1265
+ self._add_holiday_nov_1(tr("Liberty Day"))
1147
1266
 
1148
- # Christmas Second Day
1149
- self._add_christmas_day_two("Christmas Second Day")
1267
+ # Christmas Second Day.
1268
+ self._add_christmas_day_two(tr("Christmas Second Day"))
1150
1269
 
1151
1270
  def _populate_subdiv_vt_public_holidays(self):
1152
- # Washington's Birthday
1153
1271
  if self._year >= 1971:
1154
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1272
+ # Presidents' Day.
1273
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
1155
1274
 
1156
- # Town Meeting Day
1157
1275
  if self._year >= 1800:
1158
- self._add_holiday_1st_tue_of_mar("Town Meeting Day")
1276
+ # Town Meeting Day.
1277
+ self._add_holiday_1st_tue_of_mar(tr("Town Meeting Day"))
1159
1278
 
1160
- # Bennington Battle Day
1161
1279
  if self._year >= 1778:
1162
- self._add_observed(self._add_holiday_aug_16("Bennington Battle Day"))
1280
+ # Bennington Battle Day.
1281
+ self._add_observed(self._add_holiday_aug_16(tr("Bennington Battle Day")))
1163
1282
 
1164
1283
  def _populate_subdiv_wa_public_holidays(self):
1165
- # Washington's Birthday
1166
1284
  if self._year >= 1971:
1167
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1285
+ # Presidents' Day.
1286
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
1168
1287
 
1169
1288
  def _populate_subdiv_wi_public_holidays(self):
1170
- # Susan B. Anthony Day
1171
1289
  if self._year >= 1976:
1172
- self._add_holiday_feb_15("Susan B. Anthony Day")
1290
+ # Susan B. Anthony Day.
1291
+ self._add_holiday_feb_15(tr("Susan B. Anthony Day"))
1173
1292
 
1174
1293
  if self._year >= 2012:
1175
- # Christmas Eve
1294
+ # Christmas Eve.
1176
1295
  self._add_christmas_eve_holiday()
1177
1296
 
1178
- # New Year's Eve
1179
- self._add_observed(self._add_new_years_eve("New Year's Eve"))
1297
+ # New Year's Eve.
1298
+ self._add_observed(self._add_new_years_eve(tr("New Year's Eve")))
1180
1299
 
1181
1300
  def _populate_subdiv_wv_public_holidays(self):
1182
- # Washington's Birthday
1183
1301
  if self._year >= 1971:
1184
- self._add_holiday_3rd_mon_of_feb("Presidents' Day")
1302
+ # Presidents' Day.
1303
+ self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
1185
1304
 
1186
- # West Virginia Day
1187
1305
  if self._year >= 1927:
1188
- self._add_observed(self._add_holiday_jun_20("West Virginia Day"))
1306
+ # West Virginia Day.
1307
+ self._add_observed(self._add_holiday_jun_20(tr("West Virginia Day")))
1189
1308
 
1190
- # Election Day
1191
1309
  if self._year >= 2008 and self._year % 2 == 0:
1192
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
1310
+ # Election Day.
1311
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
1193
1312
 
1194
- # Day After Thanksgiving
1195
1313
  if self._year >= 1975:
1196
- self._add_holiday_1_day_past_4th_thu_of_nov("Day After Thanksgiving")
1314
+ # Day After Thanksgiving.
1315
+ self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
1197
1316
 
1198
1317
  def _populate_subdiv_wy_public_holidays(self):
1199
- # Washington's Birthday
1200
1318
  if self._year >= 1971:
1201
- self._add_holiday_3rd_mon_of_feb("President's Day")
1319
+ # President's Day.
1320
+ self._add_holiday_3rd_mon_of_feb(tr("President's Day"))
1202
1321
 
1203
1322
  def _populate_government_holidays(self):
1204
- # Federal holidays in the United States.
1205
- self._populate_common(include_federal=True)
1323
+ # Added by 16 Stat. 168, effectdive date June 28th, 1870.
1324
+ # New Year's Day check for 1871 is included.
1325
+ if self._year >= 1870:
1326
+ # Federal holidays in the United States.
1327
+ self._populate_common(include_federal=True)
1206
1328
 
1207
1329
  def _populate_unofficial_holidays(self):
1208
1330
  # Very common celebrated cultural days, but no official observance.
1209
1331
  # Due to its nature, no in-lieus are observed.
1210
1332
 
1211
- # Valentine's Day
1333
+ # Valentine's Day.
1212
1334
  # While the modern iteration of Valentine's Day has started in the UK in 1797,
1213
1335
  # it wasn't until 1847 in the US that this started to be observed here.
1214
1336
 
1215
1337
  if self._year >= 1847:
1216
- self._add_holiday_feb_14("Valentine's Day")
1338
+ # Valentine's Day.
1339
+ self._add_holiday_feb_14(tr("Valentine's Day"))
1217
1340
 
1218
- # Saint Patrick's Day
1341
+ # Saint Patrick's Day.
1219
1342
  # Started in Boston in 1737 for the US.
1220
1343
 
1221
- self._add_holiday_mar_17("Saint Patrick's Day")
1344
+ # Saint Patrick's Day.
1345
+ self._add_holiday_mar_17(tr("Saint Patrick's Day"))
1222
1346
 
1223
- # Halloween
1347
+ # Halloween.
1224
1348
  # Halloween began in the US sometime around the 19th century.
1225
1349
 
1226
- self._add_holiday_oct_31("Halloween")
1350
+ # Halloween.
1351
+ self._add_holiday_oct_31(tr("Halloween"))
1227
1352
 
1228
1353
  # Continental US non-Public dates
1229
1354
 
@@ -1232,14 +1357,16 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
1232
1357
  # First observed on Feb 2 in 1886 in Continental US + Hawaii.
1233
1358
 
1234
1359
  if self._year >= 1886:
1235
- self._add_holiday_feb_2("Groundhog Day")
1360
+ # Groundhog Day.
1361
+ self._add_holiday_feb_2(tr("Groundhog Day"))
1236
1362
 
1237
1363
  # Election Day
1238
1364
  # May be duplicates for certain states which has this as their actual public holiday.
1239
1365
  # The current US Presidential Election date pattern was codified in 1848 nationwide.
1240
1366
 
1241
1367
  if self._year >= 1848 and self._year % 4 == 0:
1242
- self._add_holiday_1_day_past_1st_mon_of_nov("Election Day")
1368
+ # Election Day.
1369
+ self._add_holiday_1_day_past_1st_mon_of_nov(tr("Election Day"))
1243
1370
 
1244
1371
 
1245
1372
  class US(UnitedStates):
@@ -1248,3 +1375,55 @@ class US(UnitedStates):
1248
1375
 
1249
1376
  class USA(UnitedStates):
1250
1377
  pass
1378
+
1379
+
1380
+ class UnitedStatesStaticHolidays(StaticHolidays):
1381
+ """United States special holidays.
1382
+
1383
+ Thanksgiving Proclamation References:
1384
+ * [1777](https://web.archive.org/web/20240621142028/https://pilgrimhall.org/pdf/TG_First_National_Thanksgiving_Proclamation_1777.pdf)
1385
+ * [1782](https://web.archive.org/web/20240621142030/https://www.loc.gov/exhibits/religion/vc006491.jpg)
1386
+ * [1789](https://web.archive.org/web/20240621142029/https://www.whatsoproudlywehail.org/curriculum/the-american-calendar/thanksgiving-proclamation-1789-2)
1387
+ * [1795](https://web.archive.org/web/20240621142029/https://founders.archives.gov/documents/Washington/05-17-02-0239)
1388
+ * [1798](https://web.archive.org/web/20240621142029/https://founders.archives.gov/documents/Adams/99-02-02-2386)
1389
+ * [1799](https://web.archive.org/web/20240621142029/https://founders.archives.gov/documents/Adams/99-02-02-3372)
1390
+ * [1813](https://web.archive.org/web/20240621142030/https://founders.archives.gov/documents/Madison/03-06-02-0434)
1391
+ * [1815](https://web.archive.org/web/20240621142030/https://founders.archives.gov/documents/Madison/03-09-02-0066)
1392
+
1393
+ Pre-1971 Inauguration Day observances has been moved here.
1394
+ """
1395
+
1396
+ # Fasting and Humiliation Day.
1397
+ fasting_and_humiliation_day_name = tr("Fasting and Humiliation Day")
1398
+ # Public Humiliation and Prayer Day.
1399
+ public_humiliation_and_prayer_day_name = tr("Public Humiliation and Prayer Day")
1400
+ # Public Thanksgiving and Prayer Day.
1401
+ public_thanksgiving_and_prayer_day_name = tr("Public Thanksgiving and Prayer Day")
1402
+
1403
+ # Inauguration Day.
1404
+ inauguration_day_name = tr("Inauguration Day")
1405
+
1406
+ special_public_holidays = {
1407
+ 1777: (DEC, 18, public_thanksgiving_and_prayer_day_name),
1408
+ 1782: (NOV, 28, public_thanksgiving_and_prayer_day_name),
1409
+ 1789: (NOV, 26, public_thanksgiving_and_prayer_day_name),
1410
+ 1795: (FEB, 19, public_thanksgiving_and_prayer_day_name),
1411
+ 1798: (MAY, 9, fasting_and_humiliation_day_name),
1412
+ 1799: (APR, 25, fasting_and_humiliation_day_name),
1413
+ 1813: (SEP, 9, public_humiliation_and_prayer_day_name),
1414
+ 1815: (APR, 13, public_humiliation_and_prayer_day_name),
1415
+ }
1416
+
1417
+ # Pre-1953 Inauguration Day observances.
1418
+ special_dc_public_holidays_observed = {
1419
+ 1877: (MAR, 5, inauguration_day_name),
1420
+ 1917: (MAR, 5, inauguration_day_name),
1421
+ }
1422
+ special_md_public_holidays_observed = {
1423
+ 1877: (MAR, 5, inauguration_day_name),
1424
+ 1917: (MAR, 5, inauguration_day_name),
1425
+ }
1426
+ special_va_public_holidays_observed = {
1427
+ 1877: (MAR, 5, inauguration_day_name),
1428
+ 1917: (MAR, 5, inauguration_day_name),
1429
+ }