holidays 0.65__py3-none-any.whl → 0.66__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 +1 -0
- holidays/countries/czechia.py +39 -30
- holidays/countries/germany.py +11 -22
- holidays/countries/iceland.py +16 -8
- holidays/countries/iran.py +522 -43
- holidays/countries/israel.py +1 -1
- holidays/countries/netherlands.py +1 -1
- holidays/countries/slovakia.py +14 -7
- holidays/countries/slovenia.py +63 -19
- holidays/countries/sri_lanka.py +515 -0
- holidays/countries/sweden.py +6 -9
- holidays/countries/thailand.py +1 -1
- holidays/countries/ukraine.py +1 -1
- holidays/countries/united_arab_emirates.py +95 -11
- holidays/countries/vatican_city.py +134 -53
- 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/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/en_US/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CZ.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/LK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VA.mo +0 -0
- holidays/locale/{fa → fa_IR}/LC_MESSAGES/IR.mo +0 -0
- holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/is/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/it/LC_MESSAGES/VA.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/ta_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/IL.mo +0 -0
- holidays/locale/th/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/VA.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/CU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/EE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PL.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/registry.py +1 -0
- holidays/version.py +1 -1
- {holidays-0.65.dist-info → holidays-0.66.dist-info}/METADATA +15 -10
- {holidays-0.65.dist-info → holidays-0.66.dist-info}/RECORD +64 -371
- 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 → holidays-0.66.dist-info}/AUTHORS +0 -0
- {holidays-0.65.dist-info → holidays-0.66.dist-info}/LICENSE +0 -0
- {holidays-0.65.dist-info → holidays-0.66.dist-info}/WHEEL +0 -0
- {holidays-0.65.dist-info → holidays-0.66.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
|
@@ -145,6 +145,7 @@ from .slovenia import Slovenia, SI, SVN
|
|
|
145
145
|
from .south_africa import SouthAfrica, ZA, ZAF
|
|
146
146
|
from .south_korea import SouthKorea, KR, KOR, Korea
|
|
147
147
|
from .spain import Spain, ES, ESP
|
|
148
|
+
from .sri_lanka import SriLanka, LK, LKA
|
|
148
149
|
from .sweden import Sweden, SE, SWE
|
|
149
150
|
from .switzerland import Switzerland, CH, CHE
|
|
150
151
|
from .taiwan import Taiwan, TW, TWN
|
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/germany.py
CHANGED
|
@@ -29,28 +29,9 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
29
29
|
doesn't really make sense to include the days from the two former
|
|
30
30
|
countries.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Also note that German holidays are partly declared by each province there
|
|
37
|
-
are some weired edge cases:
|
|
38
|
-
|
|
39
|
-
- "Mariä Himmelfahrt" is only a holiday in Bavaria (BY) if your
|
|
40
|
-
municipality is mostly catholic which in term depends on census data.
|
|
41
|
-
Since we don't have this data but most municipalities in Bavaria
|
|
42
|
-
*are* mostly catholic, we count that as holiday for whole Bavaria.
|
|
43
|
-
We added BYP for the municipality in Bavaria with more protestants.
|
|
44
|
-
Here this is excluded.
|
|
45
|
-
- There is an "Augsburger Friedensfest" which only exists in the town
|
|
46
|
-
Augsburg. This is excluded for Bavaria.
|
|
47
|
-
- "Gründonnerstag" (Thursday before easter) is not a holiday but pupils
|
|
48
|
-
don't have to go to school (but only in Baden Württemberg) which is
|
|
49
|
-
solved by adjusting school holidays to include this day. It is
|
|
50
|
-
excluded from our list.
|
|
51
|
-
- "Fronleichnam" is a holiday in certain, explicitly defined
|
|
52
|
-
municipalities in Saxony (SN) and Thuringia (TH). We exclude it from
|
|
53
|
-
both provinces.
|
|
32
|
+
"Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
|
|
33
|
+
in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
|
|
34
|
+
in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
|
|
54
35
|
"""
|
|
55
36
|
|
|
56
37
|
country = "DE"
|
|
@@ -229,6 +210,10 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
229
210
|
if self._year >= 1995:
|
|
230
211
|
self._add_holiday_1st_wed_before_nov_22(tr("Buß- und Bettag"))
|
|
231
212
|
|
|
213
|
+
def _populate_subdiv_sn_catholic_holidays(self):
|
|
214
|
+
if self._year >= 1991:
|
|
215
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
216
|
+
|
|
232
217
|
def _populate_subdiv_st_public_holidays(self):
|
|
233
218
|
if self._year >= 1991:
|
|
234
219
|
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
@@ -242,6 +227,10 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
242
227
|
|
|
243
228
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
244
229
|
|
|
230
|
+
def _populate_subdiv_th_catholic_holidays(self):
|
|
231
|
+
if self._year >= 1991:
|
|
232
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
233
|
+
|
|
245
234
|
|
|
246
235
|
class DE(Germany):
|
|
247
236
|
pass
|
holidays/countries/iceland.py
CHANGED
|
@@ -12,18 +12,21 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
+
from holidays.constants import HALF_DAY, PUBLIC
|
|
15
16
|
from holidays.groups import ChristianHolidays, InternationalHolidays
|
|
16
17
|
from holidays.holiday_base import HolidayBase
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
class Iceland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
20
21
|
"""
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
References:
|
|
23
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Iceland
|
|
24
|
+
- https://www.althingi.is/lagas/nuna/1971088.html
|
|
23
25
|
"""
|
|
24
26
|
|
|
25
27
|
country = "IS"
|
|
26
28
|
default_language = "is"
|
|
29
|
+
supported_categories = (HALF_DAY, PUBLIC)
|
|
27
30
|
supported_languages = ("en_US", "is", "uk")
|
|
28
31
|
|
|
29
32
|
def __init__(self, *args, **kwargs):
|
|
@@ -65,11 +68,9 @@ class Iceland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
65
68
|
# National Day.
|
|
66
69
|
self._add_holiday_jun_17(tr("Þjóðhátíðardagurinn"))
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# Christmas Eve.
|
|
72
|
-
self._add_christmas_eve(tr("Aðfangadagur"))
|
|
71
|
+
if self._year >= 1983:
|
|
72
|
+
# Commerce Day.
|
|
73
|
+
self._add_holiday_1st_mon_of_aug(tr("Frídagur verslunarmanna"))
|
|
73
74
|
|
|
74
75
|
# Christmas Day.
|
|
75
76
|
self._add_christmas_day(tr("Jóladagur"))
|
|
@@ -77,8 +78,15 @@ class Iceland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
77
78
|
# Second Day of Christmas.
|
|
78
79
|
self._add_christmas_day_two(tr("Annar í jólum"))
|
|
79
80
|
|
|
81
|
+
def _populate_half_day_holidays(self):
|
|
82
|
+
# %s (from 1pm).
|
|
83
|
+
begin_time_label = self.tr("%s (frá kl. 13.00)")
|
|
84
|
+
|
|
85
|
+
# Christmas Eve.
|
|
86
|
+
self._add_christmas_eve(begin_time_label % self.tr("Aðfangadagur"))
|
|
87
|
+
|
|
80
88
|
# New Year's Eve.
|
|
81
|
-
self._add_new_years_eve(tr("Gamlársdagur"))
|
|
89
|
+
self._add_new_years_eve(begin_time_label % self.tr("Gamlársdagur"))
|
|
82
90
|
|
|
83
91
|
|
|
84
92
|
class IS(Iceland):
|