holidays 0.64__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/afghanistan.py +106 -18
- holidays/countries/czechia.py +39 -30
- holidays/countries/germany.py +11 -22
- holidays/countries/iceland.py +16 -8
- holidays/countries/iran.py +523 -41
- holidays/countries/israel.py +1 -1
- holidays/countries/lithuania.py +1 -4
- holidays/countries/netherlands.py +1 -1
- holidays/countries/slovakia.py +14 -7
- holidays/countries/slovenia.py +63 -19
- holidays/countries/south_korea.py +2 -0
- holidays/countries/sri_lanka.py +515 -0
- holidays/countries/sweden.py +6 -9
- holidays/countries/thailand.py +2 -3
- 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 +23 -0
- holidays/groups/sinhala.py +192 -0
- holidays/holiday_base.py +13 -6
- 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/AF.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_AF/LC_MESSAGES/AF.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/ps_AF/LC_MESSAGES/AF.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.64.dist-info → holidays-0.66.dist-info}/METADATA +16 -11
- {holidays-0.64.dist-info → holidays-0.66.dist-info}/RECORD +71 -378
- {holidays-0.64.dist-info → holidays-0.66.dist-info}/WHEEL +1 -1
- 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 -98
- 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 -98
- 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 -98
- 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.64.dist-info → holidays-0.66.dist-info}/AUTHORS +0 -0
- {holidays-0.64.dist-info → holidays-0.66.dist-info}/LICENSE +0 -0
- {holidays-0.64.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
|
|
@@ -12,31 +12,46 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import (
|
|
17
|
+
JAN,
|
|
18
|
+
MAR,
|
|
19
|
+
APR,
|
|
20
|
+
MAY,
|
|
21
|
+
JUN,
|
|
22
|
+
JUL,
|
|
23
|
+
AUG,
|
|
24
|
+
SEP,
|
|
25
|
+
OCT,
|
|
26
|
+
NOV,
|
|
27
|
+
DEC,
|
|
28
|
+
FRI,
|
|
29
|
+
SAT,
|
|
30
|
+
)
|
|
31
|
+
from holidays.groups import InternationalHolidays, IslamicHolidays, PersianCalendarHolidays
|
|
16
32
|
from holidays.holiday_base import HolidayBase
|
|
17
33
|
|
|
18
34
|
|
|
19
|
-
class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
35
|
+
class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays, PersianCalendarHolidays):
|
|
20
36
|
"""
|
|
21
37
|
https://en.wikipedia.org/wiki/Public_holidays_in_Afghanistan
|
|
22
38
|
https://www.timeanddate.com/holidays/afghanistan/
|
|
39
|
+
https://en.wikipedia.org/wiki/Workweek_and_weekend
|
|
23
40
|
"""
|
|
24
41
|
|
|
25
42
|
country = "AF"
|
|
26
43
|
default_language = "fa_AF"
|
|
27
44
|
# %s (estimated).
|
|
28
45
|
estimated_label = tr("%s (برآورد شده)")
|
|
29
|
-
# %s (observed).
|
|
30
|
-
observed_label = tr("%s (مشاهده شده)")
|
|
31
|
-
# %s (observed, estimated).
|
|
32
|
-
observed_estimated_label = tr("%s (مشاهده شده، برآورد شده)")
|
|
33
46
|
supported_languages = ("en_US", "fa_AF", "ps_AF")
|
|
34
47
|
# Afghanistan's regaining of full independence from British influence.
|
|
35
48
|
start_year = 1919
|
|
49
|
+
weekend = {FRI, SAT}
|
|
36
50
|
|
|
37
51
|
def __init__(self, *args, **kwargs):
|
|
38
52
|
InternationalHolidays.__init__(self)
|
|
39
|
-
IslamicHolidays.__init__(self)
|
|
53
|
+
IslamicHolidays.__init__(self, AfghanistanIslamicHolidays)
|
|
54
|
+
PersianCalendarHolidays.__init__(self)
|
|
40
55
|
super().__init__(*args, **kwargs)
|
|
41
56
|
|
|
42
57
|
def _populate_public_holidays(self):
|
|
@@ -49,7 +64,7 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
49
64
|
|
|
50
65
|
if self._year <= 1996 or 2001 <= self._year <= 2020:
|
|
51
66
|
# Nowruz.
|
|
52
|
-
self.
|
|
67
|
+
self._add_nowruz_day(tr("نوروز"))
|
|
53
68
|
|
|
54
69
|
if self._year >= 1992:
|
|
55
70
|
# Mojahedin's Victory Day.
|
|
@@ -64,13 +79,26 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
64
79
|
self._add_holiday_may_9(tr("روز پیروزی شوروی"))
|
|
65
80
|
|
|
66
81
|
if self._year >= 2022:
|
|
82
|
+
# Islamic Emirate Victory Day.
|
|
83
|
+
self._add_islamic_emirat_victory_day(tr("روز پیروزی امارت اسلامی"))
|
|
84
|
+
|
|
67
85
|
# American Withdrawal Day.
|
|
68
86
|
self._add_holiday_aug_31(tr("روز خروج آمریکایی ها"))
|
|
69
87
|
|
|
70
|
-
if self._year
|
|
88
|
+
if 2012 <= self._year <= 2020:
|
|
71
89
|
# Martyrs' Day.
|
|
72
90
|
self._add_holiday_sep_9(tr("روز شهیدان"))
|
|
73
91
|
|
|
92
|
+
if self._year <= 2021:
|
|
93
|
+
# Ashura.
|
|
94
|
+
self._add_ashura_day(tr("عاشورا"))
|
|
95
|
+
|
|
96
|
+
# Prophet's Birthday.
|
|
97
|
+
self._add_mawlid_day(tr("میلاد پیامبر"))
|
|
98
|
+
|
|
99
|
+
# First Day of Ramadan.
|
|
100
|
+
self._add_ramadan_beginning_day(tr("اول رمضان"))
|
|
101
|
+
|
|
74
102
|
# Eid al-Fitr.
|
|
75
103
|
name = tr("عید فطر")
|
|
76
104
|
self._add_eid_al_fitr_day(name)
|
|
@@ -86,15 +114,6 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
86
114
|
self._add_eid_al_adha_day_two(name)
|
|
87
115
|
self._add_eid_al_adha_day_three(name)
|
|
88
116
|
|
|
89
|
-
# Ashura.
|
|
90
|
-
self._add_ashura_day(tr("عاشورا"))
|
|
91
|
-
|
|
92
|
-
# First Day of Ramadan.
|
|
93
|
-
self._add_ramadan_beginning_day(tr("اول رمضان"))
|
|
94
|
-
|
|
95
|
-
# Prophet's Birthday.
|
|
96
|
-
self._add_mawlid_day(tr("میلاد پیامبر"))
|
|
97
|
-
|
|
98
117
|
|
|
99
118
|
class AF(Afghanistan):
|
|
100
119
|
pass
|
|
@@ -102,3 +121,72 @@ class AF(Afghanistan):
|
|
|
102
121
|
|
|
103
122
|
class AFG(Afghanistan):
|
|
104
123
|
pass
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class AfghanistanIslamicHolidays(_CustomIslamicHolidays):
|
|
127
|
+
ASHURA_DATES = {
|
|
128
|
+
2014: (NOV, 3),
|
|
129
|
+
2015: (OCT, 24),
|
|
130
|
+
2016: (OCT, 12),
|
|
131
|
+
2017: (OCT, 1),
|
|
132
|
+
2018: (SEP, 21),
|
|
133
|
+
2019: (SEP, 10),
|
|
134
|
+
2020: (AUG, 30),
|
|
135
|
+
2021: (AUG, 19),
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
EID_AL_ADHA_DATES = {
|
|
139
|
+
2014: (OCT, 5),
|
|
140
|
+
2015: (SEP, 23),
|
|
141
|
+
2016: (SEP, 13),
|
|
142
|
+
2017: (SEP, 2),
|
|
143
|
+
2018: (AUG, 22),
|
|
144
|
+
2019: (AUG, 11),
|
|
145
|
+
2020: (JUL, 31),
|
|
146
|
+
2021: (JUL, 20),
|
|
147
|
+
2022: (JUL, 9),
|
|
148
|
+
2023: (JUN, 28),
|
|
149
|
+
2024: (JUN, 17),
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
EID_AL_FITR_DATES = {
|
|
153
|
+
2014: (JUL, 29),
|
|
154
|
+
2015: (JUL, 18),
|
|
155
|
+
2016: (JUL, 7),
|
|
156
|
+
2017: (JUN, 26),
|
|
157
|
+
2018: (JUN, 15),
|
|
158
|
+
2019: (JUN, 4),
|
|
159
|
+
2020: (MAY, 24),
|
|
160
|
+
2021: (MAY, 13),
|
|
161
|
+
2022: (MAY, 1),
|
|
162
|
+
2023: (APR, 22),
|
|
163
|
+
2024: (APR, 10),
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
MAWLID_DATES = {
|
|
167
|
+
2014: (JAN, 14),
|
|
168
|
+
2015: ((JAN, 3), (DEC, 24)),
|
|
169
|
+
2016: (DEC, 12),
|
|
170
|
+
2017: (DEC, 1),
|
|
171
|
+
2018: (NOV, 21),
|
|
172
|
+
2019: (NOV, 10),
|
|
173
|
+
2020: (OCT, 29),
|
|
174
|
+
2021: (OCT, 19),
|
|
175
|
+
2022: (OCT, 8),
|
|
176
|
+
2023: (SEP, 27),
|
|
177
|
+
2024: (SEP, 16),
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
RAMADAN_BEGINNING_DATES = {
|
|
181
|
+
2014: (JUN, 29),
|
|
182
|
+
2015: (JUN, 18),
|
|
183
|
+
2016: (JUN, 7),
|
|
184
|
+
2017: (MAY, 27),
|
|
185
|
+
2018: (MAY, 16),
|
|
186
|
+
2019: (MAY, 6),
|
|
187
|
+
2020: (APR, 24),
|
|
188
|
+
2021: (APR, 13),
|
|
189
|
+
2022: (APR, 2),
|
|
190
|
+
2023: (MAR, 23),
|
|
191
|
+
2024: (MAR, 11),
|
|
192
|
+
}
|