holidays 0.65__py3-none-any.whl → 0.67__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.
- holidays/calendars/__init__.py +1 -0
- holidays/calendars/persian.py +6 -0
- holidays/calendars/sinhala.py +414 -0
- holidays/countries/__init__.py +3 -0
- holidays/countries/australia.py +6 -6
- holidays/countries/cambodia.py +1 -1
- holidays/countries/chile.py +1 -1
- holidays/countries/cuba.py +1 -1
- holidays/countries/czechia.py +39 -30
- holidays/countries/denmark.py +1 -1
- holidays/countries/finland.py +19 -19
- holidays/countries/germany.py +11 -22
- holidays/countries/greenland.py +22 -19
- holidays/countries/guatemala.py +1 -1
- holidays/countries/haiti.py +3 -3
- holidays/countries/hongkong.py +124 -174
- holidays/countries/iceland.py +16 -8
- holidays/countries/iran.py +522 -43
- holidays/countries/isle_of_man.py +15 -11
- holidays/countries/israel.py +1 -1
- holidays/countries/kazakhstan.py +1 -1
- holidays/countries/laos.py +2 -2
- holidays/countries/netherlands.py +1 -1
- holidays/countries/nicaragua.py +1 -1
- holidays/countries/panama.py +69 -31
- holidays/countries/peru.py +1 -1
- holidays/countries/saint_lucia.py +88 -0
- holidays/countries/seychelles.py +4 -4
- holidays/countries/singapore.py +1 -1
- holidays/countries/slovakia.py +14 -7
- holidays/countries/slovenia.py +63 -19
- holidays/countries/spain.py +9 -9
- holidays/countries/sri_lanka.py +515 -0
- holidays/countries/sweden.py +6 -9
- holidays/countries/switzerland.py +1 -1
- holidays/countries/thailand.py +1 -1
- holidays/countries/tuvalu.py +174 -0
- holidays/countries/ukraine.py +1 -1
- holidays/countries/united_arab_emirates.py +95 -11
- holidays/countries/united_kingdom.py +72 -56
- holidays/countries/united_states.py +141 -10
- holidays/countries/uruguay.py +1 -1
- holidays/countries/vatican_city.py +134 -53
- holidays/financial/brasil_bolsa_balcao.py +1 -1
- holidays/groups/__init__.py +1 -0
- holidays/groups/christian.py +10 -0
- holidays/groups/persian.py +12 -0
- holidays/groups/sinhala.py +192 -0
- holidays/holiday_base.py +62 -13
- holidays/locale/ar/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/cs/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_LC/LC_MESSAGES/LC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VA.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/{fa → fa_IR}/LC_MESSAGES/IR.mo +0 -0
- holidays/locale/fi/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/is/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/is/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/it/LC_MESSAGES/VA.mo +0 -0
- holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/no/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/si_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/sk/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/sl/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/ta_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/GB.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/IL.mo +0 -0
- holidays/locale/th/LC_MESSAGES/IM.mo +0 -0
- holidays/locale/th/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/VA.mo +0 -0
- holidays/locale/tvl/LC_MESSAGES/TV.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/EE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MG.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/RO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/UZ.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/registry.py +3 -0
- holidays/version.py +1 -1
- {holidays-0.65.dist-info → holidays-0.67.dist-info}/AUTHORS +1 -0
- {holidays-0.65.dist-info → holidays-0.67.dist-info}/METADATA +46 -25
- holidays-0.67.dist-info/RECORD +560 -0
- holidays/locale/am/LC_MESSAGES/ET.po +0 -92
- holidays/locale/ar/LC_MESSAGES/AE.po +0 -76
- holidays/locale/ar/LC_MESSAGES/BH.po +0 -76
- holidays/locale/ar/LC_MESSAGES/CA.po +0 -161
- holidays/locale/ar/LC_MESSAGES/DJ.po +0 -85
- holidays/locale/ar/LC_MESSAGES/DZ.po +0 -80
- holidays/locale/ar/LC_MESSAGES/EG.po +0 -104
- holidays/locale/ar/LC_MESSAGES/ET.po +0 -93
- holidays/locale/ar/LC_MESSAGES/JO.po +0 -79
- holidays/locale/ar/LC_MESSAGES/KW.po +0 -75
- holidays/locale/ar/LC_MESSAGES/MA.po +0 -88
- holidays/locale/ar/LC_MESSAGES/SA.po +0 -67
- holidays/locale/ar/LC_MESSAGES/TN.po +0 -92
- holidays/locale/ar/LC_MESSAGES/UA.po +0 -113
- holidays/locale/az/LC_MESSAGES/AZ.po +0 -136
- holidays/locale/be/LC_MESSAGES/BY.po +0 -109
- holidays/locale/bg/LC_MESSAGES/BG.po +0 -87
- holidays/locale/bs/LC_MESSAGES/BA.po +0 -113
- holidays/locale/cnr/LC_MESSAGES/ME.po +0 -102
- holidays/locale/cs/LC_MESSAGES/CZ.po +0 -88
- holidays/locale/da/LC_MESSAGES/DK.po +0 -87
- holidays/locale/da/LC_MESSAGES/GL.po +0 -91
- holidays/locale/de/LC_MESSAGES/AT.po +0 -115
- holidays/locale/de/LC_MESSAGES/BE.po +0 -88
- holidays/locale/de/LC_MESSAGES/CH.po +0 -123
- holidays/locale/de/LC_MESSAGES/DE.po +0 -121
- holidays/locale/de/LC_MESSAGES/LI.po +0 -115
- holidays/locale/de/LC_MESSAGES/LU.po +0 -72
- holidays/locale/el/LC_MESSAGES/CY.po +0 -99
- holidays/locale/el/LC_MESSAGES/GR.po +0 -89
- holidays/locale/en_AU/LC_MESSAGES/AU.po +0 -177
- holidays/locale/en_CA/LC_MESSAGES/CA.po +0 -161
- holidays/locale/en_CY/LC_MESSAGES/CY.po +0 -100
- holidays/locale/en_PH/LC_MESSAGES/PH.po +0 -128
- holidays/locale/en_SC/LC_MESSAGES/SC.po +0 -117
- holidays/locale/en_SG/LC_MESSAGES/SG.po +0 -98
- holidays/locale/en_US/LC_MESSAGES/AE.po +0 -77
- holidays/locale/en_US/LC_MESSAGES/AF.po +0 -92
- holidays/locale/en_US/LC_MESSAGES/AL.po +0 -106
- holidays/locale/en_US/LC_MESSAGES/AM.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/AO.po +0 -117
- holidays/locale/en_US/LC_MESSAGES/AR.po +0 -139
- holidays/locale/en_US/LC_MESSAGES/AT.po +0 -116
- holidays/locale/en_US/LC_MESSAGES/AU.po +0 -177
- holidays/locale/en_US/LC_MESSAGES/AW.po +0 -84
- holidays/locale/en_US/LC_MESSAGES/AZ.po +0 -136
- holidays/locale/en_US/LC_MESSAGES/BA.po +0 -113
- holidays/locale/en_US/LC_MESSAGES/BE.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/BG.po +0 -87
- holidays/locale/en_US/LC_MESSAGES/BH.po +0 -77
- holidays/locale/en_US/LC_MESSAGES/BN.po +0 -109
- holidays/locale/en_US/LC_MESSAGES/BO.po +0 -117
- holidays/locale/en_US/LC_MESSAGES/BR.po +0 -263
- holidays/locale/en_US/LC_MESSAGES/BVMF.po +0 -79
- holidays/locale/en_US/LC_MESSAGES/BY.po +0 -114
- holidays/locale/en_US/LC_MESSAGES/CA.po +0 -161
- holidays/locale/en_US/LC_MESSAGES/CG.po +0 -67
- holidays/locale/en_US/LC_MESSAGES/CH.po +0 -124
- holidays/locale/en_US/LC_MESSAGES/CL.po +0 -136
- holidays/locale/en_US/LC_MESSAGES/CN.po +0 -102
- holidays/locale/en_US/LC_MESSAGES/CO.po +0 -105
- holidays/locale/en_US/LC_MESSAGES/CR.po +0 -85
- holidays/locale/en_US/LC_MESSAGES/CU.po +0 -69
- holidays/locale/en_US/LC_MESSAGES/CW.po +0 -84
- holidays/locale/en_US/LC_MESSAGES/CY.po +0 -100
- holidays/locale/en_US/LC_MESSAGES/CZ.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/DE.po +0 -126
- holidays/locale/en_US/LC_MESSAGES/DJ.po +0 -84
- holidays/locale/en_US/LC_MESSAGES/DK.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/DO.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/DZ.po +0 -81
- holidays/locale/en_US/LC_MESSAGES/EC.po +0 -73
- holidays/locale/en_US/LC_MESSAGES/EE.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/EG.po +0 -105
- holidays/locale/en_US/LC_MESSAGES/ES.po +0 -225
- holidays/locale/en_US/LC_MESSAGES/ET.po +0 -93
- holidays/locale/en_US/LC_MESSAGES/FI.po +0 -164
- holidays/locale/en_US/LC_MESSAGES/FR.po +0 -116
- holidays/locale/en_US/LC_MESSAGES/GE.po +0 -96
- holidays/locale/en_US/LC_MESSAGES/GL.po +0 -92
- holidays/locale/en_US/LC_MESSAGES/GR.po +0 -89
- holidays/locale/en_US/LC_MESSAGES/GT.po +0 -72
- holidays/locale/en_US/LC_MESSAGES/HN.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/HR.po +0 -94
- holidays/locale/en_US/LC_MESSAGES/HT.po +0 -127
- holidays/locale/en_US/LC_MESSAGES/HU.po +0 -101
- holidays/locale/en_US/LC_MESSAGES/ID.po +0 -195
- holidays/locale/en_US/LC_MESSAGES/IL.po +0 -105
- holidays/locale/en_US/LC_MESSAGES/IR.po +0 -125
- holidays/locale/en_US/LC_MESSAGES/IS.po +0 -92
- holidays/locale/en_US/LC_MESSAGES/JO.po +0 -80
- holidays/locale/en_US/LC_MESSAGES/JP.po +0 -128
- holidays/locale/en_US/LC_MESSAGES/KH.po +0 -132
- holidays/locale/en_US/LC_MESSAGES/KR.po +0 -219
- holidays/locale/en_US/LC_MESSAGES/KW.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/KZ.po +0 -103
- holidays/locale/en_US/LC_MESSAGES/LA.po +0 -160
- holidays/locale/en_US/LC_MESSAGES/LI.po +0 -116
- holidays/locale/en_US/LC_MESSAGES/LT.po +0 -94
- holidays/locale/en_US/LC_MESSAGES/LU.po +0 -72
- holidays/locale/en_US/LC_MESSAGES/LV.po +0 -106
- holidays/locale/en_US/LC_MESSAGES/MA.po +0 -89
- holidays/locale/en_US/LC_MESSAGES/MC.po +0 -85
- holidays/locale/en_US/LC_MESSAGES/MD.po +0 -84
- holidays/locale/en_US/LC_MESSAGES/ME.po +0 -102
- holidays/locale/en_US/LC_MESSAGES/MG.po +0 -92
- holidays/locale/en_US/LC_MESSAGES/MT.po +0 -83
- holidays/locale/en_US/LC_MESSAGES/MX.po +0 -60
- holidays/locale/en_US/LC_MESSAGES/MY.po +0 -250
- holidays/locale/en_US/LC_MESSAGES/MZ.po +0 -69
- holidays/locale/en_US/LC_MESSAGES/NI.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/NL.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/NO.po +0 -80
- holidays/locale/en_US/LC_MESSAGES/PE.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/PH.po +0 -128
- holidays/locale/en_US/LC_MESSAGES/PL.po +0 -115
- holidays/locale/en_US/LC_MESSAGES/PT.po +0 -184
- holidays/locale/en_US/LC_MESSAGES/PY.po +0 -88
- holidays/locale/en_US/LC_MESSAGES/RO.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/RS.po +0 -69
- holidays/locale/en_US/LC_MESSAGES/RU.po +0 -93
- holidays/locale/en_US/LC_MESSAGES/SA.po +0 -67
- holidays/locale/en_US/LC_MESSAGES/SC.po +0 -117
- holidays/locale/en_US/LC_MESSAGES/SE.po +0 -104
- holidays/locale/en_US/LC_MESSAGES/SG.po +0 -98
- holidays/locale/en_US/LC_MESSAGES/SI.po +0 -76
- holidays/locale/en_US/LC_MESSAGES/SK.po +0 -97
- holidays/locale/en_US/LC_MESSAGES/SV.po +0 -75
- holidays/locale/en_US/LC_MESSAGES/TH.po +0 -354
- holidays/locale/en_US/LC_MESSAGES/TL.po +0 -169
- holidays/locale/en_US/LC_MESSAGES/TN.po +0 -93
- holidays/locale/en_US/LC_MESSAGES/TO.po +0 -91
- holidays/locale/en_US/LC_MESSAGES/TR.po +0 -89
- holidays/locale/en_US/LC_MESSAGES/TW.po +0 -78
- holidays/locale/en_US/LC_MESSAGES/TZ.po +0 -119
- holidays/locale/en_US/LC_MESSAGES/UA.po +0 -113
- holidays/locale/en_US/LC_MESSAGES/UY.po +0 -120
- holidays/locale/en_US/LC_MESSAGES/UZ.po +0 -96
- holidays/locale/en_US/LC_MESSAGES/VE.po +0 -92
- holidays/locale/en_US/LC_MESSAGES/VN.po +0 -93
- holidays/locale/es/LC_MESSAGES/AR.po +0 -135
- holidays/locale/es/LC_MESSAGES/BO.po +0 -117
- holidays/locale/es/LC_MESSAGES/CL.po +0 -136
- holidays/locale/es/LC_MESSAGES/CO.po +0 -105
- holidays/locale/es/LC_MESSAGES/CR.po +0 -85
- holidays/locale/es/LC_MESSAGES/CU.po +0 -69
- holidays/locale/es/LC_MESSAGES/DO.po +0 -76
- holidays/locale/es/LC_MESSAGES/EC.po +0 -73
- holidays/locale/es/LC_MESSAGES/ES.po +0 -225
- holidays/locale/es/LC_MESSAGES/GT.po +0 -72
- holidays/locale/es/LC_MESSAGES/HN.po +0 -76
- holidays/locale/es/LC_MESSAGES/HT.po +0 -127
- holidays/locale/es/LC_MESSAGES/MX.po +0 -60
- holidays/locale/es/LC_MESSAGES/NI.po +0 -76
- holidays/locale/es/LC_MESSAGES/PE.po +0 -88
- holidays/locale/es/LC_MESSAGES/PY.po +0 -88
- holidays/locale/es/LC_MESSAGES/SV.po +0 -75
- holidays/locale/es/LC_MESSAGES/UY.po +0 -120
- holidays/locale/es/LC_MESSAGES/VE.po +0 -92
- holidays/locale/et/LC_MESSAGES/EE.po +0 -76
- holidays/locale/fa/LC_MESSAGES/IR.po +0 -125
- holidays/locale/fa_AF/LC_MESSAGES/AF.po +0 -92
- holidays/locale/fi/LC_MESSAGES/FI.po +0 -164
- holidays/locale/fil/LC_MESSAGES/PH.po +0 -129
- holidays/locale/fr/LC_MESSAGES/BE.po +0 -88
- holidays/locale/fr/LC_MESSAGES/CA.po +0 -161
- holidays/locale/fr/LC_MESSAGES/CG.po +0 -67
- holidays/locale/fr/LC_MESSAGES/CH.po +0 -123
- holidays/locale/fr/LC_MESSAGES/DJ.po +0 -84
- holidays/locale/fr/LC_MESSAGES/DZ.po +0 -81
- holidays/locale/fr/LC_MESSAGES/FR.po +0 -116
- holidays/locale/fr/LC_MESSAGES/LU.po +0 -72
- holidays/locale/fr/LC_MESSAGES/MA.po +0 -89
- holidays/locale/fr/LC_MESSAGES/MC.po +0 -85
- holidays/locale/fr_HT/LC_MESSAGES/HT.po +0 -127
- holidays/locale/he/LC_MESSAGES/IL.po +0 -104
- holidays/locale/hr/LC_MESSAGES/HR.po +0 -94
- holidays/locale/ht/LC_MESSAGES/HT.po +0 -127
- holidays/locale/hu/LC_MESSAGES/HU.po +0 -101
- holidays/locale/hy/LC_MESSAGES/AM.po +0 -87
- holidays/locale/id/LC_MESSAGES/ID.po +0 -195
- holidays/locale/is/LC_MESSAGES/IS.po +0 -92
- holidays/locale/it/LC_MESSAGES/CH.po +0 -123
- holidays/locale/ja/LC_MESSAGES/JP.po +0 -128
- holidays/locale/ka/LC_MESSAGES/GE.po +0 -96
- holidays/locale/kk/LC_MESSAGES/KZ.po +0 -103
- holidays/locale/kl/LC_MESSAGES/GL.po +0 -91
- holidays/locale/km/LC_MESSAGES/KH.po +0 -132
- holidays/locale/ko/LC_MESSAGES/KR.po +0 -219
- holidays/locale/lb/LC_MESSAGES/LU.po +0 -72
- holidays/locale/lo/LC_MESSAGES/LA.po +0 -160
- holidays/locale/lt/LC_MESSAGES/LT.po +0 -94
- holidays/locale/lv/LC_MESSAGES/LV.po +0 -104
- holidays/locale/mg/LC_MESSAGES/MG.po +0 -92
- holidays/locale/ms/LC_MESSAGES/BN.po +0 -107
- holidays/locale/ms_MY/LC_MESSAGES/MY.po +0 -250
- holidays/locale/mt/LC_MESSAGES/MT.po +0 -83
- holidays/locale/nl/LC_MESSAGES/AW.po +0 -84
- holidays/locale/nl/LC_MESSAGES/BE.po +0 -88
- holidays/locale/nl/LC_MESSAGES/CW.po +0 -84
- holidays/locale/nl/LC_MESSAGES/NL.po +0 -76
- holidays/locale/no/LC_MESSAGES/NO.po +0 -80
- holidays/locale/pap_AW/LC_MESSAGES/AW.po +0 -84
- holidays/locale/pap_CW/LC_MESSAGES/CW.po +0 -84
- holidays/locale/pl/LC_MESSAGES/PL.po +0 -115
- holidays/locale/ps_AF/LC_MESSAGES/AF.po +0 -92
- holidays/locale/pt_AO/LC_MESSAGES/AO.po +0 -117
- holidays/locale/pt_BR/LC_MESSAGES/BR.po +0 -263
- holidays/locale/pt_BR/LC_MESSAGES/BVMF.po +0 -79
- holidays/locale/pt_MZ/LC_MESSAGES/MZ.po +0 -69
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +0 -184
- holidays/locale/pt_TL/LC_MESSAGES/TL.po +0 -167
- holidays/locale/ro/LC_MESSAGES/MD.po +0 -82
- holidays/locale/ro/LC_MESSAGES/RO.po +0 -76
- holidays/locale/ru/LC_MESSAGES/BY.po +0 -111
- holidays/locale/ru/LC_MESSAGES/RU.po +0 -91
- holidays/locale/sk/LC_MESSAGES/CZ.po +0 -88
- holidays/locale/sk/LC_MESSAGES/SK.po +0 -96
- holidays/locale/sl/LC_MESSAGES/SI.po +0 -76
- holidays/locale/sq/LC_MESSAGES/AL.po +0 -106
- holidays/locale/sr/LC_MESSAGES/BA.po +0 -113
- holidays/locale/sr/LC_MESSAGES/RS.po +0 -68
- holidays/locale/sv/LC_MESSAGES/SE.po +0 -104
- holidays/locale/sv_FI/LC_MESSAGES/FI.po +0 -164
- holidays/locale/sw/LC_MESSAGES/TZ.po +0 -119
- holidays/locale/tet/LC_MESSAGES/TL.po +0 -167
- holidays/locale/th/LC_MESSAGES/AU.po +0 -177
- holidays/locale/th/LC_MESSAGES/BN.po +0 -109
- holidays/locale/th/LC_MESSAGES/BY.po +0 -109
- holidays/locale/th/LC_MESSAGES/CA.po +0 -161
- holidays/locale/th/LC_MESSAGES/CN.po +0 -101
- holidays/locale/th/LC_MESSAGES/DE.po +0 -126
- holidays/locale/th/LC_MESSAGES/ID.po +0 -195
- holidays/locale/th/LC_MESSAGES/JP.po +0 -128
- holidays/locale/th/LC_MESSAGES/KH.po +0 -138
- holidays/locale/th/LC_MESSAGES/KR.po +0 -219
- holidays/locale/th/LC_MESSAGES/LA.po +0 -160
- holidays/locale/th/LC_MESSAGES/MY.po +0 -250
- holidays/locale/th/LC_MESSAGES/NO.po +0 -80
- holidays/locale/th/LC_MESSAGES/PH.po +0 -128
- holidays/locale/th/LC_MESSAGES/RU.po +0 -90
- holidays/locale/th/LC_MESSAGES/SE.po +0 -104
- holidays/locale/th/LC_MESSAGES/SG.po +0 -98
- holidays/locale/th/LC_MESSAGES/TH.po +0 -352
- holidays/locale/th/LC_MESSAGES/TW.po +0 -78
- holidays/locale/th/LC_MESSAGES/UA.po +0 -114
- holidays/locale/th/LC_MESSAGES/VN.po +0 -93
- holidays/locale/to/LC_MESSAGES/TO.po +0 -91
- holidays/locale/tr/LC_MESSAGES/TR.po +0 -90
- holidays/locale/uk/LC_MESSAGES/AL.po +0 -106
- holidays/locale/uk/LC_MESSAGES/AO.po +0 -117
- holidays/locale/uk/LC_MESSAGES/AR.po +0 -138
- holidays/locale/uk/LC_MESSAGES/AT.po +0 -116
- holidays/locale/uk/LC_MESSAGES/AW.po +0 -84
- holidays/locale/uk/LC_MESSAGES/AZ.po +0 -136
- holidays/locale/uk/LC_MESSAGES/BA.po +0 -114
- holidays/locale/uk/LC_MESSAGES/BE.po +0 -88
- holidays/locale/uk/LC_MESSAGES/BG.po +0 -89
- holidays/locale/uk/LC_MESSAGES/BO.po +0 -117
- holidays/locale/uk/LC_MESSAGES/BR.po +0 -263
- holidays/locale/uk/LC_MESSAGES/BVMF.po +0 -79
- holidays/locale/uk/LC_MESSAGES/CH.po +0 -123
- holidays/locale/uk/LC_MESSAGES/CL.po +0 -136
- holidays/locale/uk/LC_MESSAGES/CO.po +0 -105
- holidays/locale/uk/LC_MESSAGES/CR.po +0 -85
- holidays/locale/uk/LC_MESSAGES/CU.po +0 -69
- holidays/locale/uk/LC_MESSAGES/CW.po +0 -84
- holidays/locale/uk/LC_MESSAGES/CY.po +0 -100
- holidays/locale/uk/LC_MESSAGES/CZ.po +0 -88
- holidays/locale/uk/LC_MESSAGES/DE.po +0 -126
- holidays/locale/uk/LC_MESSAGES/DK.po +0 -88
- holidays/locale/uk/LC_MESSAGES/DO.po +0 -76
- holidays/locale/uk/LC_MESSAGES/EC.po +0 -73
- holidays/locale/uk/LC_MESSAGES/EE.po +0 -76
- holidays/locale/uk/LC_MESSAGES/ES.po +0 -225
- holidays/locale/uk/LC_MESSAGES/FI.po +0 -164
- holidays/locale/uk/LC_MESSAGES/FR.po +0 -116
- holidays/locale/uk/LC_MESSAGES/GE.po +0 -96
- holidays/locale/uk/LC_MESSAGES/GR.po +0 -89
- holidays/locale/uk/LC_MESSAGES/HN.po +0 -76
- holidays/locale/uk/LC_MESSAGES/HR.po +0 -94
- holidays/locale/uk/LC_MESSAGES/HU.po +0 -101
- holidays/locale/uk/LC_MESSAGES/ID.po +0 -195
- holidays/locale/uk/LC_MESSAGES/IL.po +0 -104
- holidays/locale/uk/LC_MESSAGES/IS.po +0 -92
- holidays/locale/uk/LC_MESSAGES/KZ.po +0 -103
- holidays/locale/uk/LC_MESSAGES/LI.po +0 -116
- holidays/locale/uk/LC_MESSAGES/LT.po +0 -94
- holidays/locale/uk/LC_MESSAGES/LU.po +0 -72
- holidays/locale/uk/LC_MESSAGES/LV.po +0 -105
- holidays/locale/uk/LC_MESSAGES/MC.po +0 -85
- holidays/locale/uk/LC_MESSAGES/MD.po +0 -84
- holidays/locale/uk/LC_MESSAGES/ME.po +0 -102
- holidays/locale/uk/LC_MESSAGES/MG.po +0 -92
- holidays/locale/uk/LC_MESSAGES/MX.po +0 -60
- holidays/locale/uk/LC_MESSAGES/MZ.po +0 -69
- holidays/locale/uk/LC_MESSAGES/NI.po +0 -76
- holidays/locale/uk/LC_MESSAGES/NL.po +0 -76
- holidays/locale/uk/LC_MESSAGES/NO.po +0 -80
- holidays/locale/uk/LC_MESSAGES/PE.po +0 -88
- holidays/locale/uk/LC_MESSAGES/PL.po +0 -115
- holidays/locale/uk/LC_MESSAGES/PT.po +0 -184
- holidays/locale/uk/LC_MESSAGES/PY.po +0 -88
- holidays/locale/uk/LC_MESSAGES/RO.po +0 -76
- holidays/locale/uk/LC_MESSAGES/SE.po +0 -104
- holidays/locale/uk/LC_MESSAGES/SI.po +0 -76
- holidays/locale/uk/LC_MESSAGES/SK.po +0 -96
- holidays/locale/uk/LC_MESSAGES/SV.po +0 -75
- holidays/locale/uk/LC_MESSAGES/TR.po +0 -89
- holidays/locale/uk/LC_MESSAGES/UA.po +0 -112
- holidays/locale/uk/LC_MESSAGES/UY.po +0 -120
- holidays/locale/uk/LC_MESSAGES/UZ.po +0 -96
- holidays/locale/uk/LC_MESSAGES/VE.po +0 -92
- holidays/locale/uz/LC_MESSAGES/UZ.po +0 -96
- holidays/locale/vi/LC_MESSAGES/VN.po +0 -93
- holidays/locale/zh_CN/LC_MESSAGES/CN.po +0 -100
- holidays/locale/zh_CN/LC_MESSAGES/TW.po +0 -78
- holidays/locale/zh_TW/LC_MESSAGES/CN.po +0 -100
- holidays/locale/zh_TW/LC_MESSAGES/TW.po +0 -78
- holidays-0.65.dist-info/RECORD +0 -841
- {holidays-0.65.dist-info → holidays-0.67.dist-info}/LICENSE +0 -0
- {holidays-0.65.dist-info → holidays-0.67.dist-info}/WHEEL +0 -0
- {holidays-0.65.dist-info → holidays-0.67.dist-info}/top_level.txt +0 -0
holidays/calendars/__init__.py
CHANGED
|
@@ -22,4 +22,5 @@ from holidays.calendars.islamic import _CustomIslamicHolidays, _IslamicLunar
|
|
|
22
22
|
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
23
23
|
from holidays.calendars.julian_revised import JULIAN_REVISED_CALENDAR
|
|
24
24
|
from holidays.calendars.persian import _Persian
|
|
25
|
+
from holidays.calendars.sinhala import _SinhalaLunar, _CustomSinhalaHolidays
|
|
25
26
|
from holidays.calendars.thai import _ThaiLunisolar, KHMER_CALENDAR, THAI_CALENDAR
|
holidays/calendars/persian.py
CHANGED
|
@@ -26,6 +26,12 @@ class _Persian:
|
|
|
26
26
|
START_YEAR = 1901
|
|
27
27
|
END_YEAR = 2100
|
|
28
28
|
|
|
29
|
+
def is_leap_year(self, year: int) -> bool:
|
|
30
|
+
"""
|
|
31
|
+
Is Persian year that begins in the specified Gregorian year a leap year.
|
|
32
|
+
"""
|
|
33
|
+
return (year % 33) in {3, 7, 11, 16, 20, 24, 28, 32}
|
|
34
|
+
|
|
29
35
|
def new_year_date(self, year: int) -> Optional[date]:
|
|
30
36
|
"""
|
|
31
37
|
Return Gregorian date of Persian new year (1 Farvardin) in a given Gregorian year.
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see AUTHORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from collections.abc import Iterable
|
|
14
|
+
from datetime import date
|
|
15
|
+
from typing import Optional
|
|
16
|
+
|
|
17
|
+
from holidays.calendars.custom import _CustomCalendar
|
|
18
|
+
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
19
|
+
from holidays.helpers import _normalize_tuple
|
|
20
|
+
|
|
21
|
+
BAK_POYA = "BAK_POYA"
|
|
22
|
+
BINARA_POYA = "BINARA_POYA"
|
|
23
|
+
DURUTHU_POYA = "DURUTHU_POYA"
|
|
24
|
+
ESALA_POYA = "ESALA_POYA"
|
|
25
|
+
IL_POYA = "IL_POYA"
|
|
26
|
+
MEDIN_POYA = "MEDIN_POYA"
|
|
27
|
+
NAWAM_POYA = "NAWAM_POYA"
|
|
28
|
+
NIKINI_POYA = "NIKINI_POYA"
|
|
29
|
+
POSON_POYA = "POSON_POYA"
|
|
30
|
+
UNDUVAP_POYA = "UNDUVAP_POYA"
|
|
31
|
+
VAP_POYA = "VAP_POYA"
|
|
32
|
+
VESAK_POYA = "VESAK_POYA"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class _SinhalaLunar:
|
|
36
|
+
"""
|
|
37
|
+
Sinhala Lunar calendar for 2003-2025 years.
|
|
38
|
+
|
|
39
|
+
Their Buddhist Uposatha day calculation method is different from Thai LuniSolar
|
|
40
|
+
and Buddhist (Mahayana) used in East Asia.
|
|
41
|
+
|
|
42
|
+
Due to the fact that Poya (Uposatha) days are calculated astronomically
|
|
43
|
+
based on how close a particular day is closest to full moon at noon, and that
|
|
44
|
+
an extra month is added every 33 months interval, this is hardcoded for now.
|
|
45
|
+
|
|
46
|
+
Adhi month dates are instead hardcoded in Sri Lanka country implementation.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
START_YEAR = 2003
|
|
50
|
+
END_YEAR = 2025
|
|
51
|
+
|
|
52
|
+
BAK_POYA_DATES = {
|
|
53
|
+
2003: (APR, 16),
|
|
54
|
+
2004: (APR, 5),
|
|
55
|
+
2005: (APR, 23),
|
|
56
|
+
2006: (APR, 13),
|
|
57
|
+
2007: (APR, 2),
|
|
58
|
+
2008: (APR, 19),
|
|
59
|
+
2009: (APR, 9),
|
|
60
|
+
2010: (MAR, 29),
|
|
61
|
+
2011: (APR, 17),
|
|
62
|
+
2012: (APR, 6),
|
|
63
|
+
2013: (APR, 25),
|
|
64
|
+
2014: (APR, 14),
|
|
65
|
+
2015: (APR, 3),
|
|
66
|
+
2016: (APR, 21),
|
|
67
|
+
2017: (APR, 10),
|
|
68
|
+
2018: (MAR, 31),
|
|
69
|
+
2019: (APR, 19),
|
|
70
|
+
2020: (APR, 7),
|
|
71
|
+
2021: (APR, 26),
|
|
72
|
+
2022: (APR, 16),
|
|
73
|
+
2023: (APR, 5),
|
|
74
|
+
2024: (APR, 23),
|
|
75
|
+
2025: (APR, 12),
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
BINARA_POYA_DATES = {
|
|
79
|
+
2003: (SEP, 10),
|
|
80
|
+
2004: (SEP, 28),
|
|
81
|
+
2005: (SEP, 17),
|
|
82
|
+
2006: (SEP, 7),
|
|
83
|
+
2007: (SEP, 26),
|
|
84
|
+
2008: (SEP, 14),
|
|
85
|
+
2009: (SEP, 4),
|
|
86
|
+
2010: (SEP, 22),
|
|
87
|
+
2011: (SEP, 11),
|
|
88
|
+
2012: (SEP, 29),
|
|
89
|
+
2013: (SEP, 19),
|
|
90
|
+
2014: (SEP, 8),
|
|
91
|
+
2015: (SEP, 27),
|
|
92
|
+
2016: (SEP, 16),
|
|
93
|
+
2017: (SEP, 5),
|
|
94
|
+
2018: (SEP, 24),
|
|
95
|
+
2019: (SEP, 13),
|
|
96
|
+
2020: (SEP, 1),
|
|
97
|
+
2021: (SEP, 20),
|
|
98
|
+
2022: (SEP, 10),
|
|
99
|
+
2023: (SEP, 29),
|
|
100
|
+
2024: (SEP, 17),
|
|
101
|
+
2025: (SEP, 7),
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
DURUTHU_POYA_DATES = {
|
|
105
|
+
2003: (JAN, 17),
|
|
106
|
+
2004: (JAN, 7),
|
|
107
|
+
2005: (JAN, 24),
|
|
108
|
+
2006: (JAN, 13),
|
|
109
|
+
2007: (JAN, 3),
|
|
110
|
+
2008: (JAN, 22),
|
|
111
|
+
2009: ((JAN, 10), (DEC, 31)),
|
|
112
|
+
2011: (JAN, 19),
|
|
113
|
+
2012: (JAN, 8),
|
|
114
|
+
2013: (JAN, 26),
|
|
115
|
+
2014: (JAN, 15),
|
|
116
|
+
2015: (JAN, 4),
|
|
117
|
+
2016: (JAN, 23),
|
|
118
|
+
2017: (JAN, 12),
|
|
119
|
+
2018: (JAN, 1),
|
|
120
|
+
2019: (JAN, 20),
|
|
121
|
+
2020: (JAN, 10),
|
|
122
|
+
2021: (JAN, 28),
|
|
123
|
+
2022: (JAN, 17),
|
|
124
|
+
2023: (JAN, 6),
|
|
125
|
+
2024: (JAN, 25),
|
|
126
|
+
2025: (JAN, 13),
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
ESALA_POYA_DATES = {
|
|
130
|
+
2003: (JUL, 13),
|
|
131
|
+
2004: (JUL, 2),
|
|
132
|
+
2005: (JUL, 21),
|
|
133
|
+
2006: (JUL, 10),
|
|
134
|
+
2007: (JUL, 29),
|
|
135
|
+
2008: (JUL, 17),
|
|
136
|
+
2009: (JUL, 6),
|
|
137
|
+
2010: (JUL, 25),
|
|
138
|
+
2011: (JUL, 14),
|
|
139
|
+
2012: (JUL, 3),
|
|
140
|
+
2013: (JUL, 22),
|
|
141
|
+
2014: (JUL, 12),
|
|
142
|
+
2015: (JUL, 31),
|
|
143
|
+
2016: (JUL, 19),
|
|
144
|
+
2017: (JUL, 8),
|
|
145
|
+
2018: (JUL, 27),
|
|
146
|
+
2019: (JUL, 16),
|
|
147
|
+
2020: (JUL, 4),
|
|
148
|
+
2021: (JUL, 23),
|
|
149
|
+
2022: (JUL, 13),
|
|
150
|
+
2023: (AUG, 1),
|
|
151
|
+
2024: (JUL, 20),
|
|
152
|
+
2025: (JUL, 10),
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
IL_POYA_DATES = {
|
|
156
|
+
2003: (NOV, 8),
|
|
157
|
+
2004: (NOV, 26),
|
|
158
|
+
2005: (NOV, 15),
|
|
159
|
+
2006: (NOV, 5),
|
|
160
|
+
2007: (NOV, 24),
|
|
161
|
+
2008: (NOV, 12),
|
|
162
|
+
2009: (NOV, 2),
|
|
163
|
+
2010: (NOV, 21),
|
|
164
|
+
2011: (NOV, 10),
|
|
165
|
+
2012: (NOV, 27),
|
|
166
|
+
2013: (NOV, 17),
|
|
167
|
+
2014: (NOV, 6),
|
|
168
|
+
2015: (NOV, 25),
|
|
169
|
+
2016: (NOV, 14),
|
|
170
|
+
2017: (NOV, 3),
|
|
171
|
+
2018: (NOV, 22),
|
|
172
|
+
2019: (NOV, 12),
|
|
173
|
+
2020: (NOV, 29),
|
|
174
|
+
2021: (NOV, 18),
|
|
175
|
+
2022: (NOV, 7),
|
|
176
|
+
2023: (NOV, 26),
|
|
177
|
+
2024: (NOV, 15),
|
|
178
|
+
2025: (NOV, 5),
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
MEDIN_POYA_DATES = {
|
|
182
|
+
2003: (MAR, 18),
|
|
183
|
+
2004: (MAR, 6),
|
|
184
|
+
2005: (MAR, 25),
|
|
185
|
+
2006: (MAR, 14),
|
|
186
|
+
2007: (MAR, 3),
|
|
187
|
+
2008: (MAR, 21),
|
|
188
|
+
2009: (MAR, 10),
|
|
189
|
+
2010: (FEB, 28),
|
|
190
|
+
2011: (MAR, 19),
|
|
191
|
+
2012: (MAR, 7),
|
|
192
|
+
2013: (MAR, 26),
|
|
193
|
+
2014: (MAR, 16),
|
|
194
|
+
2015: (MAR, 5),
|
|
195
|
+
2016: (MAR, 22),
|
|
196
|
+
2017: (MAR, 12),
|
|
197
|
+
2018: (MAR, 1),
|
|
198
|
+
2019: (MAR, 20),
|
|
199
|
+
2020: (MAR, 9),
|
|
200
|
+
2021: (MAR, 28),
|
|
201
|
+
2022: (MAR, 17),
|
|
202
|
+
2023: (MAR, 6),
|
|
203
|
+
2024: (MAR, 24),
|
|
204
|
+
2025: (MAR, 13),
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
NAWAM_POYA_DATES = {
|
|
208
|
+
2003: (FEB, 16),
|
|
209
|
+
2004: (FEB, 5),
|
|
210
|
+
2005: (FEB, 23),
|
|
211
|
+
2006: (FEB, 12),
|
|
212
|
+
2007: (FEB, 1),
|
|
213
|
+
2008: (FEB, 20),
|
|
214
|
+
2009: (FEB, 9),
|
|
215
|
+
2010: (JAN, 29),
|
|
216
|
+
2011: (FEB, 17),
|
|
217
|
+
2012: (FEB, 7),
|
|
218
|
+
2013: (FEB, 25),
|
|
219
|
+
2014: (FEB, 14),
|
|
220
|
+
2015: (FEB, 3),
|
|
221
|
+
2016: (FEB, 22),
|
|
222
|
+
2017: (FEB, 10),
|
|
223
|
+
2018: (JAN, 31),
|
|
224
|
+
2019: (FEB, 19),
|
|
225
|
+
2020: (FEB, 8),
|
|
226
|
+
2021: (FEB, 26),
|
|
227
|
+
2022: (FEB, 16),
|
|
228
|
+
2023: (FEB, 5),
|
|
229
|
+
2024: (FEB, 23),
|
|
230
|
+
2025: (FEB, 12),
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
NIKINI_POYA_DATES = {
|
|
234
|
+
2003: (AUG, 11),
|
|
235
|
+
2004: (AUG, 29),
|
|
236
|
+
2005: (AUG, 19),
|
|
237
|
+
2006: (AUG, 9),
|
|
238
|
+
2007: (AUG, 28),
|
|
239
|
+
2008: (AUG, 16),
|
|
240
|
+
2009: (AUG, 5),
|
|
241
|
+
2010: (AUG, 24),
|
|
242
|
+
2011: (AUG, 13),
|
|
243
|
+
2012: (AUG, 1),
|
|
244
|
+
2013: (AUG, 20),
|
|
245
|
+
2014: (AUG, 10),
|
|
246
|
+
2015: (AUG, 29),
|
|
247
|
+
2016: (AUG, 17),
|
|
248
|
+
2017: (AUG, 7),
|
|
249
|
+
2018: (AUG, 25),
|
|
250
|
+
2019: (AUG, 14),
|
|
251
|
+
2020: (AUG, 3),
|
|
252
|
+
2021: (AUG, 22),
|
|
253
|
+
2022: (AUG, 11),
|
|
254
|
+
2023: (AUG, 30),
|
|
255
|
+
2024: (AUG, 19),
|
|
256
|
+
2025: (AUG, 8),
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
POSON_POYA_DATES = {
|
|
260
|
+
2003: (JUN, 14),
|
|
261
|
+
2004: (JUN, 2),
|
|
262
|
+
2005: (JUN, 21),
|
|
263
|
+
2006: (JUN, 11),
|
|
264
|
+
2007: (JUN, 30),
|
|
265
|
+
2008: (JUN, 18),
|
|
266
|
+
2009: (JUN, 7),
|
|
267
|
+
2010: (JUN, 25),
|
|
268
|
+
2011: (JUN, 15),
|
|
269
|
+
2012: (JUN, 4),
|
|
270
|
+
2013: (JUN, 23),
|
|
271
|
+
2014: (JUN, 12),
|
|
272
|
+
2015: (JUN, 2),
|
|
273
|
+
2016: (JUN, 19),
|
|
274
|
+
2017: (JUN, 8),
|
|
275
|
+
2018: (JUN, 27),
|
|
276
|
+
2019: (JUN, 16),
|
|
277
|
+
2020: (JUN, 5),
|
|
278
|
+
2021: (JUN, 24),
|
|
279
|
+
2022: (JUN, 14),
|
|
280
|
+
2023: (JUN, 3),
|
|
281
|
+
2024: (JUN, 21),
|
|
282
|
+
2025: (JUN, 10),
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
UNDUVAP_POYA_DATES = {
|
|
286
|
+
2003: (DEC, 8),
|
|
287
|
+
2004: (DEC, 26),
|
|
288
|
+
2005: (DEC, 15),
|
|
289
|
+
2006: (DEC, 4),
|
|
290
|
+
2007: (DEC, 23),
|
|
291
|
+
2008: (DEC, 12),
|
|
292
|
+
2009: (DEC, 1),
|
|
293
|
+
2010: (DEC, 20),
|
|
294
|
+
2011: (DEC, 10),
|
|
295
|
+
2012: (DEC, 27),
|
|
296
|
+
2013: (DEC, 16),
|
|
297
|
+
2014: (DEC, 6),
|
|
298
|
+
2015: (DEC, 24),
|
|
299
|
+
2016: (DEC, 13),
|
|
300
|
+
2017: (DEC, 3),
|
|
301
|
+
2018: (DEC, 22),
|
|
302
|
+
2019: (DEC, 11),
|
|
303
|
+
2020: (DEC, 29),
|
|
304
|
+
2021: (DEC, 18),
|
|
305
|
+
2022: (DEC, 7),
|
|
306
|
+
2023: (DEC, 26),
|
|
307
|
+
2024: (DEC, 14),
|
|
308
|
+
2025: (DEC, 4),
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
VAP_POYA_DATES = {
|
|
312
|
+
2003: (OCT, 9),
|
|
313
|
+
2004: (OCT, 27),
|
|
314
|
+
2005: (OCT, 17),
|
|
315
|
+
2006: (OCT, 6),
|
|
316
|
+
2007: (OCT, 25),
|
|
317
|
+
2008: (OCT, 14),
|
|
318
|
+
2009: (OCT, 3),
|
|
319
|
+
2010: (OCT, 22),
|
|
320
|
+
2011: (OCT, 11),
|
|
321
|
+
2012: (OCT, 29),
|
|
322
|
+
2013: (OCT, 18),
|
|
323
|
+
2014: (OCT, 8),
|
|
324
|
+
2015: (OCT, 27),
|
|
325
|
+
2016: (OCT, 15),
|
|
326
|
+
2017: (OCT, 5),
|
|
327
|
+
2018: (OCT, 24),
|
|
328
|
+
2019: (OCT, 13),
|
|
329
|
+
2020: (OCT, 30),
|
|
330
|
+
2021: (OCT, 20),
|
|
331
|
+
2022: (OCT, 9),
|
|
332
|
+
2023: (OCT, 28),
|
|
333
|
+
2024: (OCT, 17),
|
|
334
|
+
2025: (OCT, 6),
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
VESAK_POYA_DATES = {
|
|
338
|
+
2003: (MAY, 15),
|
|
339
|
+
2004: (MAY, 4),
|
|
340
|
+
2005: (MAY, 23),
|
|
341
|
+
2006: (MAY, 12),
|
|
342
|
+
2007: (MAY, 1),
|
|
343
|
+
2008: (MAY, 19),
|
|
344
|
+
2009: (MAY, 8),
|
|
345
|
+
2010: (MAY, 27),
|
|
346
|
+
2011: (MAY, 17),
|
|
347
|
+
2012: (MAY, 5),
|
|
348
|
+
2013: (MAY, 24),
|
|
349
|
+
2014: (MAY, 14),
|
|
350
|
+
2015: (MAY, 3),
|
|
351
|
+
2016: (MAY, 21),
|
|
352
|
+
2017: (MAY, 10),
|
|
353
|
+
2018: (APR, 29),
|
|
354
|
+
2019: (MAY, 18),
|
|
355
|
+
2020: (MAY, 7),
|
|
356
|
+
2021: (MAY, 26),
|
|
357
|
+
2022: (MAY, 15),
|
|
358
|
+
2023: (MAY, 5),
|
|
359
|
+
2024: (MAY, 23),
|
|
360
|
+
2025: (MAY, 12),
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
def _get_holiday(self, holiday: str, year: int) -> tuple[Optional[date], bool]:
|
|
364
|
+
estimated_dates = getattr(self, f"{holiday}_DATES", {})
|
|
365
|
+
exact_dates = getattr(self, f"{holiday}_DATES_{_CustomCalendar.CUSTOM_ATTR_POSTFIX}", {})
|
|
366
|
+
dt = exact_dates.get(year, estimated_dates.get(year, ()))
|
|
367
|
+
return date(year, *dt) if dt else None, year not in exact_dates
|
|
368
|
+
|
|
369
|
+
def _get_holiday_set(self, holiday: str, year: int) -> Iterable[tuple[date, bool]]:
|
|
370
|
+
estimated_dates = getattr(self, f"{holiday}_DATES", {})
|
|
371
|
+
exact_dates = getattr(self, f"{holiday}_DATES_{_CustomCalendar.CUSTOM_ATTR_POSTFIX}", {})
|
|
372
|
+
for year in (year - 1, year):
|
|
373
|
+
for dt in _normalize_tuple(exact_dates.get(year, estimated_dates.get(year, ()))):
|
|
374
|
+
yield date(year, *dt), year not in exact_dates
|
|
375
|
+
|
|
376
|
+
def bak_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
377
|
+
return self._get_holiday(BAK_POYA, year)
|
|
378
|
+
|
|
379
|
+
def binara_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
380
|
+
return self._get_holiday(BINARA_POYA, year)
|
|
381
|
+
|
|
382
|
+
def duruthu_poya_date(self, year: int) -> Iterable[tuple[date, bool]]:
|
|
383
|
+
return self._get_holiday_set(DURUTHU_POYA, year)
|
|
384
|
+
|
|
385
|
+
def esala_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
386
|
+
return self._get_holiday(ESALA_POYA, year)
|
|
387
|
+
|
|
388
|
+
def il_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
389
|
+
return self._get_holiday(IL_POYA, year)
|
|
390
|
+
|
|
391
|
+
def medin_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
392
|
+
return self._get_holiday(MEDIN_POYA, year)
|
|
393
|
+
|
|
394
|
+
def nawam_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
395
|
+
return self._get_holiday(NAWAM_POYA, year)
|
|
396
|
+
|
|
397
|
+
def nikini_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
398
|
+
return self._get_holiday(NIKINI_POYA, year)
|
|
399
|
+
|
|
400
|
+
def poson_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
401
|
+
return self._get_holiday(POSON_POYA, year)
|
|
402
|
+
|
|
403
|
+
def unduvap_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
404
|
+
return self._get_holiday(UNDUVAP_POYA, year)
|
|
405
|
+
|
|
406
|
+
def vap_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
407
|
+
return self._get_holiday(VAP_POYA, year)
|
|
408
|
+
|
|
409
|
+
def vesak_poya_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
410
|
+
return self._get_holiday(VESAK_POYA, year)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
class _CustomSinhalaHolidays(_CustomCalendar, _SinhalaLunar):
|
|
414
|
+
pass
|
holidays/countries/__init__.py
CHANGED
|
@@ -134,6 +134,7 @@ from .puerto_rico import PuertoRico, PR, PRI, HolidaysPR
|
|
|
134
134
|
from .romania import Romania, RO, ROU
|
|
135
135
|
from .russia import Russia, RU, RUS
|
|
136
136
|
from .saint_kitts_and_nevis import SaintKittsAndNevis, KN, KNA
|
|
137
|
+
from .saint_lucia import SaintLucia, LC, LCA
|
|
137
138
|
from .samoa import Samoa, WS, WSM
|
|
138
139
|
from .san_marino import SanMarino, SM, SMR
|
|
139
140
|
from .saudi_arabia import SaudiArabia, SA, SAU
|
|
@@ -145,6 +146,7 @@ from .slovenia import Slovenia, SI, SVN
|
|
|
145
146
|
from .south_africa import SouthAfrica, ZA, ZAF
|
|
146
147
|
from .south_korea import SouthKorea, KR, KOR, Korea
|
|
147
148
|
from .spain import Spain, ES, ESP
|
|
149
|
+
from .sri_lanka import SriLanka, LK, LKA
|
|
148
150
|
from .sweden import Sweden, SE, SWE
|
|
149
151
|
from .switzerland import Switzerland, CH, CHE
|
|
150
152
|
from .taiwan import Taiwan, TW, TWN
|
|
@@ -154,6 +156,7 @@ from .timor_leste import TimorLeste, TL, TLS
|
|
|
154
156
|
from .tonga import Tonga, TO, TON
|
|
155
157
|
from .tunisia import Tunisia, TN, TUN
|
|
156
158
|
from .turkey import Turkey, TR, TUR
|
|
159
|
+
from .tuvalu import Tuvalu, TV, TUV
|
|
157
160
|
from .ukraine import Ukraine, UA, UKR
|
|
158
161
|
from .united_arab_emirates import UnitedArabEmirates, AE, ARE
|
|
159
162
|
from .united_kingdom import UnitedKingdom, GB, GBR, UK
|
holidays/countries/australia.py
CHANGED
|
@@ -216,7 +216,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
216
216
|
# Family & Community Day.
|
|
217
217
|
self._add_holiday(tr("Family & Community Day"), fc_dates[self._year])
|
|
218
218
|
|
|
219
|
-
#
|
|
219
|
+
# Labor Day.
|
|
220
220
|
self._add_holiday_1st_mon_of_oct(tr("Labour Day"))
|
|
221
221
|
|
|
222
222
|
# Christmas Day.
|
|
@@ -317,7 +317,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
317
317
|
if self._year <= 2010:
|
|
318
318
|
self._add_observed(apr_25)
|
|
319
319
|
|
|
320
|
-
#
|
|
320
|
+
# Labor Day.
|
|
321
321
|
self._add_holiday_1st_mon_of_oct(tr("Labour Day"))
|
|
322
322
|
|
|
323
323
|
# Sovereign's Birthday.
|
|
@@ -493,7 +493,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
493
493
|
else:
|
|
494
494
|
self._add_anzac_day(name)
|
|
495
495
|
|
|
496
|
-
#
|
|
496
|
+
# Labor Day.
|
|
497
497
|
name = tr("Labour Day")
|
|
498
498
|
if 2013 <= self._year <= 2015:
|
|
499
499
|
self._add_holiday_1st_mon_of_oct(name)
|
|
@@ -631,7 +631,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
631
631
|
if self._year >= 1936:
|
|
632
632
|
self._add_holiday_2nd_mon_of_jun(self.sovereign_birthday)
|
|
633
633
|
|
|
634
|
-
#
|
|
634
|
+
# Labor Day.
|
|
635
635
|
self._add_holiday_1st_mon_of_oct(tr("Labour Day"))
|
|
636
636
|
|
|
637
637
|
# Proclamation Day.
|
|
@@ -799,7 +799,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
799
799
|
else:
|
|
800
800
|
self._add_holiday_jan_26(self.australia_day)
|
|
801
801
|
|
|
802
|
-
#
|
|
802
|
+
# Labor Day.
|
|
803
803
|
self._add_holiday_2nd_mon_of_mar(tr("Labour Day"))
|
|
804
804
|
|
|
805
805
|
if self._year >= 2003:
|
|
@@ -893,7 +893,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
893
893
|
else:
|
|
894
894
|
self._add_holiday_jan_26(self.australia_day)
|
|
895
895
|
|
|
896
|
-
#
|
|
896
|
+
# Labor Day.
|
|
897
897
|
self._add_holiday_1st_mon_of_mar(tr("Labour Day"))
|
|
898
898
|
|
|
899
899
|
if self._year >= 2022:
|
holidays/countries/cambodia.py
CHANGED
|
@@ -149,7 +149,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
149
149
|
# Assumed to start in 1993, defunct from 2020 onwards.
|
|
150
150
|
|
|
151
151
|
if self._year <= 2019:
|
|
152
|
-
# International Children Day
|
|
152
|
+
# International Children's Day
|
|
153
153
|
self._add_childrens_day(tr("ទិវាកុមារអន្តរជាតិ"))
|
|
154
154
|
|
|
155
155
|
# ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី ព្រះវររាជមាតា នរោត្តម មុនិនាថ សីហនុ
|
holidays/countries/chile.py
CHANGED
|
@@ -129,7 +129,7 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
|
|
|
129
129
|
self._add_holiday(name, self._summer_solstice_date)
|
|
130
130
|
|
|
131
131
|
if self._year <= 1967 or self._year >= 1986:
|
|
132
|
-
# Saint Peter and Saint Paul.
|
|
132
|
+
# Saint Peter and Saint Paul's Day.
|
|
133
133
|
self._move_holiday(self._add_saints_peter_and_paul_day(tr("San Pedro y San Pablo")))
|
|
134
134
|
|
|
135
135
|
if self._year >= 2007:
|
holidays/countries/cuba.py
CHANGED
|
@@ -64,7 +64,7 @@ class Cuba(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
64
64
|
# Good Friday.
|
|
65
65
|
self._add_good_friday(tr("Viernes Santo"))
|
|
66
66
|
|
|
67
|
-
# International
|
|
67
|
+
# International Workers' Day.
|
|
68
68
|
self._add_observed(self._add_labor_day(tr("Día Internacional de los Trabajadores")))
|
|
69
69
|
|
|
70
70
|
# Commemoration of the Assault of the Moncada garrison.
|
holidays/countries/czechia.py
CHANGED
|
@@ -18,12 +18,18 @@ from holidays.holiday_base import HolidayBase
|
|
|
18
18
|
|
|
19
19
|
class Czechia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
20
20
|
"""
|
|
21
|
-
|
|
21
|
+
References:
|
|
22
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_the_Czech_Republic
|
|
23
|
+
- `Law 93/1951 <https://www.zakonyprolidi.cz/cs/1951-93>`_
|
|
24
|
+
- `Law 204/1990 (Jan Hus Day) <https://www.zakonyprolidi.cz/cs/1990-204>`_
|
|
25
|
+
- `Law 245/2000 <https://www.zakonyprolidi.cz/cs/2000-245>`_
|
|
22
26
|
"""
|
|
23
27
|
|
|
24
28
|
country = "CZ"
|
|
25
29
|
default_language = "cs"
|
|
26
30
|
supported_languages = ("cs", "en_US", "sk", "uk")
|
|
31
|
+
# Law 93/1951.
|
|
32
|
+
start_year = 1952
|
|
27
33
|
|
|
28
34
|
def __init__(self, *args, **kwargs):
|
|
29
35
|
ChristianHolidays.__init__(self)
|
|
@@ -31,36 +37,36 @@ class Czechia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
31
37
|
super().__init__(*args, **kwargs)
|
|
32
38
|
|
|
33
39
|
def _populate_public_holidays(self):
|
|
34
|
-
|
|
40
|
+
# New Year's Day.
|
|
41
|
+
self._add_new_years_day(tr("Nový rok"))
|
|
42
|
+
|
|
43
|
+
if self._year >= 2000:
|
|
35
44
|
# Independent Czech State Restoration Day.
|
|
36
|
-
tr("Den obnovy samostatného českého státu")
|
|
37
|
-
if self._year >= 2000
|
|
38
|
-
# New Year's Day.
|
|
39
|
-
else tr("Nový rok")
|
|
40
|
-
)
|
|
45
|
+
self._add_holiday_jan_1(tr("Den obnovy samostatného českého státu"))
|
|
41
46
|
|
|
42
|
-
if self._year
|
|
47
|
+
if self._year >= 2016:
|
|
43
48
|
# Good Friday.
|
|
44
49
|
self._add_good_friday(tr("Velký pátek"))
|
|
45
50
|
|
|
46
51
|
# Easter Monday.
|
|
47
52
|
self._add_easter_monday(tr("Velikonoční pondělí"))
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
self._add_labor_day(tr("Svátek práce"))
|
|
54
|
+
# Labor Day.
|
|
55
|
+
self._add_labor_day(tr("Svátek práce"))
|
|
52
56
|
|
|
53
|
-
if self._year >=
|
|
57
|
+
if self._year >= 2004:
|
|
54
58
|
# Victory Day.
|
|
55
|
-
|
|
56
|
-
elif self._year >=
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
)
|
|
59
|
+
name = tr("Den vítězství")
|
|
60
|
+
elif self._year >= 2001:
|
|
61
|
+
# Liberation Day.
|
|
62
|
+
name = tr("Den osvobození")
|
|
63
|
+
else:
|
|
64
|
+
# Day of liberation from Fascism.
|
|
65
|
+
name = tr("Den osvobození od fašismu")
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
self._add_world_war_two_victory_day(name, is_western=(self._year >= 1992))
|
|
68
|
+
|
|
69
|
+
if self._year >= 1990:
|
|
64
70
|
# Saints Cyril and Methodius Day.
|
|
65
71
|
self._add_holiday_jul_5(tr("Den slovanských věrozvěstů Cyrila a Metoděje"))
|
|
66
72
|
|
|
@@ -71,23 +77,26 @@ class Czechia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
71
77
|
# Statehood Day.
|
|
72
78
|
self._add_holiday_sep_28(tr("Den české státnosti"))
|
|
73
79
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
self._add_holiday_oct_28(tr("Den vzniku samostatného československého státu"))
|
|
80
|
+
# Independent Czechoslovak State Day.
|
|
81
|
+
self._add_holiday_oct_28(tr("Den vzniku samostatného československého státu"))
|
|
77
82
|
|
|
78
83
|
if self._year >= 1990:
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
self._add_holiday_nov_17(
|
|
85
|
+
# Struggle for Freedom and Democracy Day and International Students' Day.
|
|
86
|
+
tr("Den boje za svobodu a demokracii a Mezinárodní den studentstva")
|
|
87
|
+
if self._year >= 2019
|
|
88
|
+
# Struggle for Freedom and Democracy Day.
|
|
89
|
+
else tr("Den boje za svobodu a demokracii")
|
|
90
|
+
)
|
|
81
91
|
|
|
82
92
|
# Christmas Eve.
|
|
83
93
|
self._add_christmas_eve(tr("Štědrý den"))
|
|
84
94
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
self._add_christmas_day(tr("1. svátek vánoční"))
|
|
95
|
+
# Christmas Day.
|
|
96
|
+
self._add_christmas_day(tr("1. svátek vánoční"))
|
|
88
97
|
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
# Second Day of Christmas.
|
|
99
|
+
self._add_christmas_day_two(tr("2. svátek vánoční"))
|
|
91
100
|
|
|
92
101
|
|
|
93
102
|
class CZ(Czechia):
|
holidays/countries/denmark.py
CHANGED
|
@@ -73,7 +73,7 @@ class Denmark(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
73
73
|
self._add_christmas_day_two(tr("Anden juledag"))
|
|
74
74
|
|
|
75
75
|
def _populate_optional_holidays(self):
|
|
76
|
-
#
|
|
76
|
+
# Workers' Day.
|
|
77
77
|
self._add_labor_day(tr("Arbejdernes kampdag"))
|
|
78
78
|
|
|
79
79
|
# Constitution Day.
|