holidays 0.58__py3-none-any.whl → 0.60__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/__init__.py +3 -15
- holidays/calendars/buddhist.py +4 -4
- holidays/calendars/chinese.py +8 -8
- holidays/calendars/hindu.py +4 -4
- holidays/calendars/islamic.py +25 -25
- holidays/countries/albania.py +81 -27
- holidays/countries/angola.py +2 -2
- holidays/countries/armenia.py +5 -2
- holidays/countries/australia.py +2 -1
- holidays/countries/azerbaijan.py +7 -2
- holidays/countries/belarus.py +1 -1
- holidays/countries/bosnia_and_herzegovina.py +2 -2
- holidays/countries/bulgaria.py +1 -2
- holidays/countries/cambodia.py +5 -7
- holidays/countries/chile.py +1 -2
- holidays/countries/czechia.py +6 -3
- holidays/countries/egypt.py +0 -1
- holidays/countries/france.py +1 -1
- holidays/countries/georgia.py +1 -1
- holidays/countries/germany.py +20 -1
- holidays/countries/hongkong.py +1 -2
- holidays/countries/indonesia.py +620 -83
- holidays/countries/japan.py +3 -4
- holidays/countries/jersey.py +2 -2
- holidays/countries/jordan.py +1 -1
- holidays/countries/kazakhstan.py +1 -1
- holidays/countries/kuwait.py +1 -1
- holidays/countries/kyrgyzstan.py +1 -1
- holidays/countries/malaysia.py +7 -1
- holidays/countries/mauritania.py +0 -1
- holidays/countries/moldova.py +4 -3
- holidays/countries/philippines.py +79 -40
- holidays/countries/russia.py +1 -1
- holidays/countries/saudi_arabia.py +1 -2
- holidays/countries/slovakia.py +1 -1
- holidays/countries/south_korea.py +1 -2
- holidays/countries/spain.py +17 -14
- holidays/countries/taiwan.py +1 -2
- holidays/countries/thailand.py +21 -23
- holidays/countries/timor_leste.py +41 -0
- holidays/countries/ukraine.py +1 -3
- holidays/countries/united_arab_emirates.py +5 -2
- holidays/countries/united_kingdom.py +2 -2
- holidays/countries/united_states.py +6 -4
- holidays/countries/uzbekistan.py +2 -1
- holidays/countries/vietnam.py +116 -25
- holidays/{deprecation.py → deprecations/v1_incompatibility.py} +12 -2
- holidays/groups/__init__.py +1 -0
- holidays/groups/buddhist.py +6 -11
- holidays/groups/chinese.py +7 -25
- holidays/groups/eastern.py +51 -0
- holidays/groups/hindu.py +6 -11
- holidays/groups/international.py +8 -5
- holidays/groups/islamic.py +39 -46
- holidays/holiday_base.py +31 -30
- holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/am/LC_MESSAGES/ET.po +1 -1
- holidays/locale/ar/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/AE.po +1 -1
- holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/BH.po +1 -1
- holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/CA.po +1 -1
- holidays/locale/ar/LC_MESSAGES/DJ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/DJ.po +1 -1
- holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/DZ.po +1 -1
- holidays/locale/ar/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/EG.po +1 -1
- holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/ET.po +1 -1
- holidays/locale/ar/LC_MESSAGES/MA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/MA.po +1 -1
- holidays/locale/ar/LC_MESSAGES/SA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/SA.po +1 -1
- holidays/locale/ar/LC_MESSAGES/TN.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/TN.po +1 -1
- holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/UA.po +1 -1
- holidays/locale/az/LC_MESSAGES/AZ.mo +0 -0
- holidays/locale/az/LC_MESSAGES/AZ.po +1 -1
- holidays/locale/be/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/be/LC_MESSAGES/BY.po +1 -1
- holidays/locale/bg/LC_MESSAGES/BG.mo +0 -0
- holidays/locale/bg/LC_MESSAGES/BG.po +1 -1
- holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/bs/LC_MESSAGES/BA.po +1 -1
- holidays/locale/cs/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/cs/LC_MESSAGES/CZ.po +1 -1
- holidays/locale/da/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/da/LC_MESSAGES/DK.po +1 -1
- holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/da/LC_MESSAGES/GL.po +1 -1
- holidays/locale/de/LC_MESSAGES/AT.mo +0 -0
- holidays/locale/de/LC_MESSAGES/AT.po +1 -1
- holidays/locale/de/LC_MESSAGES/BE.mo +0 -0
- holidays/locale/de/LC_MESSAGES/BE.po +1 -1
- holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/de/LC_MESSAGES/CH.po +1 -1
- holidays/locale/de/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/de/LC_MESSAGES/DE.po +16 -5
- holidays/locale/de/LC_MESSAGES/LI.mo +0 -0
- holidays/locale/de/LC_MESSAGES/LI.po +1 -1
- holidays/locale/de/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/de/LC_MESSAGES/LU.po +1 -1
- holidays/locale/el/LC_MESSAGES/CY.mo +0 -0
- holidays/locale/el/LC_MESSAGES/CY.po +1 -1
- holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/el/LC_MESSAGES/GR.po +1 -1
- holidays/locale/en_CA/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_CA/LC_MESSAGES/CA.po +1 -1
- holidays/locale/en_CY/LC_MESSAGES/CY.mo +0 -0
- holidays/locale/en_CY/LC_MESSAGES/CY.po +1 -1
- holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/en_PH/LC_MESSAGES/PH.po +128 -0
- holidays/locale/en_SC/LC_MESSAGES/SC.mo +0 -0
- holidays/locale/en_SC/LC_MESSAGES/SC.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AL.po +106 -0
- holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AM.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AT.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AW.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/AZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AZ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BG.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CN.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CU.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CW.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CY.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CZ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DE.po +17 -4
- holidays/locale/en_US/LC_MESSAGES/DJ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DJ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DK.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/DO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DZ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EC.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/EE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/EG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EG.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ET.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FI.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/FR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GL.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/GT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GT.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/HR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HU.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/ID.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ID.po +68 -14
- holidays/locale/en_US/LC_MESSAGES/IL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IL.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/IR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IS.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/JP.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/LA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/LI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LI.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/LT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LT.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LU.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/LV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LV.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MD.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MG.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MT.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MX.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MX.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/MZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MZ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NL.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/NO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PH.po +128 -0
- holidays/locale/en_US/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PL.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PT.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PY.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/RO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RS.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RU.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SC.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SI.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SK.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TL.po +16 -4
- holidays/locale/en_US/LC_MESSAGES/TN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TN.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TR.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TW.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TZ.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UA.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/UY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/UY.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/VE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VN.po +37 -19
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.po +1 -1
- holidays/locale/es/LC_MESSAGES/BO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/BO.po +1 -1
- holidays/locale/es/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CL.po +1 -1
- holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CO.po +1 -1
- holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CR.po +1 -1
- holidays/locale/es/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CU.po +1 -1
- holidays/locale/es/LC_MESSAGES/DO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/DO.po +1 -1
- holidays/locale/es/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/es/LC_MESSAGES/EC.po +1 -1
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.po +1 -1
- holidays/locale/es/LC_MESSAGES/GT.mo +0 -0
- holidays/locale/es/LC_MESSAGES/GT.po +1 -1
- holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/es/LC_MESSAGES/HN.po +1 -1
- holidays/locale/es/LC_MESSAGES/MX.mo +0 -0
- holidays/locale/es/LC_MESSAGES/MX.po +1 -1
- holidays/locale/es/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/es/LC_MESSAGES/NI.po +1 -1
- holidays/locale/es/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PE.po +1 -1
- holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PY.po +1 -1
- holidays/locale/es/LC_MESSAGES/UY.mo +0 -0
- holidays/locale/es/LC_MESSAGES/UY.po +1 -1
- holidays/locale/es/LC_MESSAGES/VE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/VE.po +1 -1
- holidays/locale/et/LC_MESSAGES/EE.mo +0 -0
- holidays/locale/et/LC_MESSAGES/EE.po +1 -1
- holidays/locale/fa/LC_MESSAGES/IR.mo +0 -0
- holidays/locale/fa/LC_MESSAGES/IR.po +1 -1
- holidays/locale/fi/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/fi/LC_MESSAGES/FI.po +1 -1
- holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/fil/LC_MESSAGES/PH.po +129 -0
- holidays/locale/fr/LC_MESSAGES/BE.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/BE.po +1 -1
- holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CA.po +1 -1
- holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CH.po +1 -1
- holidays/locale/fr/LC_MESSAGES/DJ.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/DJ.po +1 -1
- holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/DZ.po +1 -1
- holidays/locale/fr/LC_MESSAGES/FR.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/FR.po +1 -1
- holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/LU.po +1 -1
- holidays/locale/fr/LC_MESSAGES/MA.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/MA.po +1 -1
- holidays/locale/fr/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/MC.po +1 -1
- holidays/locale/he/LC_MESSAGES/IL.mo +0 -0
- holidays/locale/he/LC_MESSAGES/IL.po +1 -1
- holidays/locale/hr/LC_MESSAGES/HR.mo +0 -0
- holidays/locale/hr/LC_MESSAGES/HR.po +1 -1
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +1 -1
- holidays/locale/hy/LC_MESSAGES/AM.mo +0 -0
- holidays/locale/hy/LC_MESSAGES/AM.po +1 -1
- holidays/locale/id/LC_MESSAGES/ID.mo +0 -0
- holidays/locale/id/LC_MESSAGES/ID.po +66 -12
- holidays/locale/is/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/is/LC_MESSAGES/IS.po +1 -1
- holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/it/LC_MESSAGES/CH.po +1 -1
- holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/ja/LC_MESSAGES/JP.po +1 -1
- holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/ka/LC_MESSAGES/GE.po +1 -1
- holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
- holidays/locale/kl/LC_MESSAGES/GL.po +1 -1
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +1 -1
- holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/ko/LC_MESSAGES/KR.po +1 -1
- holidays/locale/lb/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/lb/LC_MESSAGES/LU.po +1 -1
- holidays/locale/lo/LC_MESSAGES/LA.mo +0 -0
- holidays/locale/lo/LC_MESSAGES/LA.po +1 -1
- holidays/locale/lt/LC_MESSAGES/LT.mo +0 -0
- holidays/locale/lt/LC_MESSAGES/LT.po +1 -1
- holidays/locale/lv/LC_MESSAGES/LV.mo +0 -0
- holidays/locale/lv/LC_MESSAGES/LV.po +1 -1
- holidays/locale/mg/LC_MESSAGES/MG.mo +0 -0
- holidays/locale/mg/LC_MESSAGES/MG.po +1 -1
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +1 -1
- holidays/locale/mt/LC_MESSAGES/MT.mo +0 -0
- holidays/locale/mt/LC_MESSAGES/MT.po +1 -1
- holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/AW.po +1 -1
- holidays/locale/nl/LC_MESSAGES/BE.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/BE.po +1 -1
- holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/CW.po +1 -1
- holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/NL.po +1 -1
- holidays/locale/no/LC_MESSAGES/NO.mo +0 -0
- holidays/locale/no/LC_MESSAGES/NO.po +1 -1
- holidays/locale/pap_AW/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/pap_AW/LC_MESSAGES/AW.po +1 -1
- holidays/locale/pap_CW/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/pap_CW/LC_MESSAGES/CW.po +1 -1
- holidays/locale/pl/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +1 -1
- holidays/locale/pt_AO/LC_MESSAGES/AO.mo +0 -0
- holidays/locale/pt_AO/LC_MESSAGES/AO.po +1 -1
- holidays/locale/pt_MZ/LC_MESSAGES/MZ.mo +0 -0
- holidays/locale/pt_MZ/LC_MESSAGES/MZ.po +1 -1
- holidays/locale/pt_PT/LC_MESSAGES/PT.mo +0 -0
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +1 -1
- holidays/locale/pt_TL/LC_MESSAGES/TL.mo +0 -0
- holidays/locale/pt_TL/LC_MESSAGES/TL.po +17 -5
- holidays/locale/ro/LC_MESSAGES/MD.mo +0 -0
- holidays/locale/ro/LC_MESSAGES/MD.po +1 -1
- holidays/locale/ro/LC_MESSAGES/RO.mo +0 -0
- holidays/locale/ro/LC_MESSAGES/RO.po +1 -1
- holidays/locale/ru/LC_MESSAGES/RU.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/RU.po +1 -1
- holidays/locale/sk/LC_MESSAGES/SK.mo +0 -0
- holidays/locale/sk/LC_MESSAGES/SK.po +1 -1
- holidays/locale/sl/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/sl/LC_MESSAGES/SI.po +1 -1
- holidays/locale/sq/LC_MESSAGES/AL.mo +0 -0
- holidays/locale/sq/LC_MESSAGES/AL.po +106 -0
- holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/BA.po +1 -1
- holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/RS.po +1 -1
- holidays/locale/sv/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/SE.po +1 -1
- holidays/locale/sv_FI/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/sv_FI/LC_MESSAGES/FI.po +1 -1
- holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/TZ.po +1 -1
- holidays/locale/tet/LC_MESSAGES/TL.mo +0 -0
- holidays/locale/tet/LC_MESSAGES/TL.po +19 -7
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +1 -1
- holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CA.po +1 -1
- holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CN.po +1 -1
- holidays/locale/th/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DE.po +15 -2
- holidays/locale/th/LC_MESSAGES/ID.mo +0 -0
- holidays/locale/th/LC_MESSAGES/ID.po +195 -0
- holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
- holidays/locale/th/LC_MESSAGES/JP.po +1 -1
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +1 -1
- holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KR.po +1 -1
- holidays/locale/th/LC_MESSAGES/LA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/LA.po +1 -1
- holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/PH.po +128 -0
- holidays/locale/th/LC_MESSAGES/TH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/TH.po +1 -1
- holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/th/LC_MESSAGES/TW.po +1 -1
- holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/VN.po +93 -0
- holidays/locale/to/LC_MESSAGES/TO.mo +0 -0
- holidays/locale/to/LC_MESSAGES/TO.po +1 -1
- holidays/locale/tr/LC_MESSAGES/TR.mo +0 -0
- holidays/locale/tr/LC_MESSAGES/TR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/AL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AL.po +106 -0
- holidays/locale/uk/LC_MESSAGES/AO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/AT.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AT.po +1 -1
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +1 -1
- holidays/locale/uk/LC_MESSAGES/AZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AZ.po +1 -1
- holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BA.po +1 -1
- holidays/locale/uk/LC_MESSAGES/BE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/BG.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BG.po +1 -1
- holidays/locale/uk/LC_MESSAGES/BO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CH.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CU.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CY.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CY.po +1 -1
- holidays/locale/uk/LC_MESSAGES/CZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CZ.po +1 -1
- holidays/locale/uk/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DE.po +17 -4
- holidays/locale/uk/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DK.po +1 -1
- holidays/locale/uk/LC_MESSAGES/DO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/EC.po +1 -1
- holidays/locale/uk/LC_MESSAGES/EE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/EE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.po +1 -1
- holidays/locale/uk/LC_MESSAGES/FI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/FI.po +1 -1
- holidays/locale/uk/LC_MESSAGES/FR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/FR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +1 -1
- holidays/locale/uk/LC_MESSAGES/HR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +1 -1
- holidays/locale/uk/LC_MESSAGES/ID.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ID.po +67 -13
- holidays/locale/uk/LC_MESSAGES/IL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/IL.po +1 -1
- holidays/locale/uk/LC_MESSAGES/IS.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/IS.po +1 -1
- holidays/locale/uk/LC_MESSAGES/LI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LI.po +1 -1
- holidays/locale/uk/LC_MESSAGES/LT.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LT.po +1 -1
- holidays/locale/uk/LC_MESSAGES/LU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LU.po +1 -1
- holidays/locale/uk/LC_MESSAGES/LV.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/LV.po +1 -1
- holidays/locale/uk/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MC.po +1 -1
- holidays/locale/uk/LC_MESSAGES/MD.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MD.po +1 -1
- holidays/locale/uk/LC_MESSAGES/MG.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MG.po +1 -1
- holidays/locale/uk/LC_MESSAGES/MX.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MX.po +1 -1
- holidays/locale/uk/LC_MESSAGES/MZ.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/MZ.po +1 -1
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +1 -1
- holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NL.po +1 -1
- holidays/locale/uk/LC_MESSAGES/NO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PL.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PT.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PT.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PY.po +1 -1
- holidays/locale/uk/LC_MESSAGES/RO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/RO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SI.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SK.po +1 -1
- holidays/locale/uk/LC_MESSAGES/TR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/TR.po +1 -1
- holidays/locale/uk/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/UA.po +1 -1
- holidays/locale/uk/LC_MESSAGES/UY.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/UY.po +1 -1
- holidays/locale/uk/LC_MESSAGES/VE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/VE.po +1 -1
- holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/vi/LC_MESSAGES/VN.po +32 -14
- holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/CN.po +1 -1
- holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/TW.po +1 -1
- holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/zh_TW/LC_MESSAGES/CN.po +1 -1
- holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/zh_TW/LC_MESSAGES/TW.po +1 -1
- holidays/mixins.py +1 -4
- holidays/observed_holiday_base.py +5 -5
- holidays/registry.py +4 -3
- holidays/utils.py +8 -7
- holidays/version.py +13 -0
- {holidays-0.58.dist-info → holidays-0.60.dist-info}/METADATA +26 -42
- holidays-0.60.dist-info/RECORD +797 -0
- {holidays-0.58.dist-info → holidays-0.60.dist-info}/WHEEL +1 -1
- holidays-0.58.dist-info/RECORD +0 -777
- {holidays-0.58.dist-info → holidays-0.60.dist-info}/AUTHORS +0 -0
- {holidays-0.58.dist-info → holidays-0.60.dist-info}/LICENSE +0 -0
- {holidays-0.58.dist-info → holidays-0.60.dist-info}/top_level.txt +0 -0
holidays/countries/thailand.py
CHANGED
|
@@ -19,11 +19,11 @@ from holidays.groups import InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
19
19
|
from holidays.observed_holiday_base import (
|
|
20
20
|
ObservedHolidayBase,
|
|
21
21
|
SAT_TO_NEXT_MON,
|
|
22
|
-
|
|
23
|
-
THU_FRI_TO_NEXT_MON,
|
|
22
|
+
THU_FRI_TO_NEXT_WORKDAY,
|
|
24
23
|
SAT_SUN_TO_NEXT_MON,
|
|
25
24
|
SAT_SUN_TO_NEXT_TUE,
|
|
26
25
|
SAT_SUN_TO_NEXT_MON_TUE,
|
|
26
|
+
SAT_SUN_TO_NEXT_WORKDAY,
|
|
27
27
|
)
|
|
28
28
|
|
|
29
29
|
|
|
@@ -39,6 +39,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
39
39
|
- https://resolution.soc.go.th/?prep_id=99159317
|
|
40
40
|
- https://resolution.soc.go.th/?prep_id=196007
|
|
41
41
|
- https://github.com/vacanza/holidays/pull/929
|
|
42
|
+
- https://www.thairath.co.th/lifestyle/life/2812118
|
|
42
43
|
- [New Year's Day]
|
|
43
44
|
`wikisource.org <http://tiny.cc/wa_wiki_thai_newyear_2483>`_
|
|
44
45
|
- [National Children's Day]
|
|
@@ -95,6 +96,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
95
96
|
https://dl.parliament.go.th/handle/20.500.13072/92816
|
|
96
97
|
https://e-manage.mju.ac.th/timeline_detail.aspx?key=MTk4
|
|
97
98
|
https://resolution.soc.go.th/PDF_UPLOAD/2510/932141.pdf
|
|
99
|
+
https://www.myhora.com/ปฏิทิน/วันพืชมงคล.aspx
|
|
98
100
|
- [Royal Thai Armed Forces Day]
|
|
99
101
|
`<https://th.wikipedia.org/wiki/วันกองทัพไทย>`_
|
|
100
102
|
- [Teacher's Day]
|
|
@@ -115,7 +117,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
115
117
|
Applied Automatically for Workday if on Weekends: 2001-Present
|
|
116
118
|
|
|
117
119
|
Limitations:
|
|
118
|
-
- This is only 100% accurate for 1997-
|
|
120
|
+
- This is only 100% accurate for 1997-2025; any future dates are up to the
|
|
119
121
|
Royal Thai Government Gazette which updates on a year-by-year basis.
|
|
120
122
|
|
|
121
123
|
- Approx. date only goes as far back as 1941 (B.E. 2484) as the Thai
|
|
@@ -129,8 +131,6 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
129
131
|
- Royal Ploughing Ceremony Day is date is announced on an annual basis
|
|
130
132
|
by the Court Astrologers, thus need an annual update to the library here
|
|
131
133
|
|
|
132
|
-
- This doesn't cover Thai regional public holidays yet, only stubs added
|
|
133
|
-
|
|
134
134
|
Country created by: `arkid15r <https://github.com/arkid15r>`__
|
|
135
135
|
|
|
136
136
|
Country maintained by: `PPsyrius <https://github.com/PPsyrius>`__
|
|
@@ -221,15 +221,16 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
221
221
|
|
|
222
222
|
# วันหยุดชดเชยวันสงกรานต์
|
|
223
223
|
# If Songkran happened to be held on the weekends, only one in-lieu
|
|
224
|
-
# public holiday is added
|
|
224
|
+
# public holiday is added.
|
|
225
225
|
# - CASE 1: THU-FRI-SAT -> 1 in-lieu on MON
|
|
226
226
|
# - CASE 2: FRI-SAT-SUN -> 1 in-lieu on MON
|
|
227
227
|
# - CASE 3: SAT-SUN-MON -> 1 in-lieu on TUE
|
|
228
|
+
# - CASE 4: SUN-MON-TUE -> 1 in-lieu on WED
|
|
228
229
|
# See in lieu logic in `_add_observed(dt: date)`.
|
|
229
230
|
# Status: In Use.
|
|
230
231
|
|
|
231
232
|
if self._year >= 1995:
|
|
232
|
-
self._add_observed(dt, rule=
|
|
233
|
+
self._add_observed(dt, rule=THU_FRI_TO_NEXT_WORKDAY + SAT_SUN_TO_NEXT_WORKDAY)
|
|
233
234
|
|
|
234
235
|
# วันแรงงานแห่งชาติ
|
|
235
236
|
# Status: In-Use.
|
|
@@ -433,17 +434,13 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
433
434
|
# Status: In-Use.
|
|
434
435
|
|
|
435
436
|
# Makha Bucha.
|
|
436
|
-
|
|
437
|
-
if makha_bucha_date:
|
|
438
|
-
self._add_observed(makha_bucha_date)
|
|
437
|
+
self._add_observed(self._add_makha_bucha(tr("วันมาฆบูชา")))
|
|
439
438
|
|
|
440
439
|
# วันวิสาขบูชา
|
|
441
440
|
# Status: In-Use.
|
|
442
441
|
|
|
443
442
|
# Visakha Bucha.
|
|
444
|
-
|
|
445
|
-
if visakha_bucha_date:
|
|
446
|
-
self._add_observed(visakha_bucha_date)
|
|
443
|
+
self._add_observed(self._add_visakha_bucha(tr("วันวิสาขบูชา")))
|
|
447
444
|
|
|
448
445
|
# วันอาสาฬหบูชา
|
|
449
446
|
# Status: In-Use.
|
|
@@ -451,10 +448,11 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
451
448
|
# - CASE 2: SAT-SUN -> 1 in-lieu on MON
|
|
452
449
|
# - CASE 3: SUN-MON -> 1 in-lieu on TUE
|
|
453
450
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
451
|
+
self._add_observed(
|
|
452
|
+
# Asarnha Bucha.
|
|
453
|
+
self._add_asarnha_bucha(tr("วันอาสาฬหบูชา")),
|
|
454
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE,
|
|
455
|
+
)
|
|
458
456
|
|
|
459
457
|
# วันเข้าพรรษา
|
|
460
458
|
# Status: In-Use.
|
|
@@ -463,9 +461,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
463
461
|
# - CASE 3: SUN-MON -> 1 in-lieu on TUE
|
|
464
462
|
|
|
465
463
|
# Buddhist Lent Day.
|
|
466
|
-
|
|
467
|
-
if khao_phansa_date:
|
|
468
|
-
self._add_observed(khao_phansa_date, rule=SAT_TO_NEXT_MON)
|
|
464
|
+
self._add_observed(self._add_khao_phansa(tr("วันเข้าพรรษา")), rule=SAT_TO_NEXT_MON)
|
|
469
465
|
|
|
470
466
|
def _populate_armed_forces_holidays(self):
|
|
471
467
|
# วันกองทัพไทย
|
|
@@ -525,8 +521,9 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
525
521
|
# Is dated on an annual basis by the Royal Palace, always on weekdays.
|
|
526
522
|
# For historic research, วันเกษตรแห่งชาติ (National Agricultural Day) also concides with
|
|
527
523
|
# this from 1966 onwards. For earlier records the date was refered as วันแรกนาขวัญ.
|
|
528
|
-
# This isn't even fixed even by the Thai Lunar Calendar
|
|
529
|
-
#
|
|
524
|
+
# This isn't even fixed even by the Thai Lunar Calendar besides being in Month 6
|
|
525
|
+
# to concides with the rainy season, but instead by Court Astrologers; All chosen dates
|
|
526
|
+
# so far are all in the first three weeks of May.
|
|
530
527
|
# *** NOTE: only observed by government sectors.
|
|
531
528
|
# TODO: Update this annually around Dec of each year.
|
|
532
529
|
|
|
@@ -597,8 +594,9 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
597
594
|
2022: (MAY, 13),
|
|
598
595
|
2023: (MAY, 17),
|
|
599
596
|
2024: (MAY, 10),
|
|
597
|
+
2025: (MAY, 9),
|
|
600
598
|
}
|
|
601
|
-
if 1960 <= self._year <=
|
|
599
|
+
if 1960 <= self._year <= 2025 and self._year != 1999:
|
|
602
600
|
self._add_observed(
|
|
603
601
|
# Royal Ploughing Ceremony.
|
|
604
602
|
self._add_holiday(tr("วันพืชมงคล"), raeknakhwan_dates.get(self._year, (MAY, 13)))
|
|
@@ -235,6 +235,9 @@ class TimorLesteStaticHolidays:
|
|
|
235
235
|
# Parliamentary Election Day.
|
|
236
236
|
parliamentary_election = tr("Dia de Eleições Parlamentares")
|
|
237
237
|
|
|
238
|
+
# Local Election Day.
|
|
239
|
+
local_election = tr("Dia de eleições locais")
|
|
240
|
+
|
|
238
241
|
# Centenary of the Revolt of Dom Boaventura.
|
|
239
242
|
dom_boaventura_centenary = tr("Centenário da Revolta de Dom Boaventura")
|
|
240
243
|
|
|
@@ -244,6 +247,12 @@ class TimorLesteStaticHolidays:
|
|
|
244
247
|
# 20th Anniversary Celebrations of the Popular Consultation.
|
|
245
248
|
popular_consultation_20th = tr("Celebrações do 20.º Aniversário da Consulta Popular")
|
|
246
249
|
|
|
250
|
+
# 25th Anniversary Celebrations of the Popular Consultation.
|
|
251
|
+
popular_consultation_25th = tr("Celebrações do 25.º Aniversário da Consulta Popular")
|
|
252
|
+
|
|
253
|
+
# Visit of His Holiness Pope Francis to Timor-Leste.
|
|
254
|
+
pope_francis_visit = tr("Visita de Sua Santidade o Papa Francisco a Timor-Leste")
|
|
255
|
+
|
|
247
256
|
special_government_holidays = {
|
|
248
257
|
2010: (
|
|
249
258
|
# http://timor-leste.gov.tl/?p=4183&lang=en
|
|
@@ -427,6 +436,10 @@ class TimorLesteStaticHolidays:
|
|
|
427
436
|
(APR, 18, presidential_election),
|
|
428
437
|
(APR, 19, presidential_election),
|
|
429
438
|
(APR, 20, presidential_election),
|
|
439
|
+
# https://timor-leste.gov.tl/?p=31107&lang=en
|
|
440
|
+
(AUG, 29, special_national_holidays),
|
|
441
|
+
# https://timor-leste.gov.tl/?p=31152&lang=en
|
|
442
|
+
(SEP, 6, special_national_holidays),
|
|
430
443
|
# http://timor-leste.gov.tl/?p=31404&lang=en
|
|
431
444
|
(OCT, 31, special_national_holidays),
|
|
432
445
|
# http://timor-leste.gov.tl/?p=31574&lang=en
|
|
@@ -441,9 +454,37 @@ class TimorLesteStaticHolidays:
|
|
|
441
454
|
(JAN, 23, special_national_holidays),
|
|
442
455
|
# http://timor-leste.gov.tl/?p=32191&lang=en
|
|
443
456
|
(FEB, 22, special_national_holidays),
|
|
457
|
+
# https://timor-leste.gov.tl/?p=32561&lang=en
|
|
458
|
+
(APR, 6, special_national_holidays),
|
|
459
|
+
(APR, 10, special_national_holidays),
|
|
460
|
+
# https://timor-leste.gov.tl/?p=32590&lang=en
|
|
461
|
+
(APR, 20, special_national_holidays),
|
|
462
|
+
(APR, 21, special_national_holidays),
|
|
463
|
+
# https://timor-leste.gov.tl/?p=32617&lang=en
|
|
464
|
+
(MAY, 19, parliamentary_election),
|
|
465
|
+
(MAY, 22, parliamentary_election),
|
|
466
|
+
# https://timor-leste.gov.tl/?p=34792&lang=en
|
|
467
|
+
(OCT, 27, local_election),
|
|
468
|
+
# https://timor-leste.gov.tl/?p=35060&lang=en
|
|
469
|
+
(NOV, 13, local_election),
|
|
470
|
+
# https://timor-leste.gov.tl/?p=35627&lang=en&
|
|
471
|
+
(DEC, 26, special_national_holidays),
|
|
444
472
|
),
|
|
445
473
|
2024: (
|
|
474
|
+
# https://timor-leste.gov.tl/?p=35627&lang=en
|
|
475
|
+
(JAN, 2, special_national_holidays),
|
|
446
476
|
# http://timor-leste.gov.tl/?p=36002&lang=en
|
|
447
477
|
(FEB, 14, special_national_holidays),
|
|
478
|
+
# https://timor-leste.gov.tl/?p=36859&lang=en
|
|
479
|
+
(MAR, 28, special_national_holidays),
|
|
480
|
+
# https://timor-leste.gov.tl/?p=39062&lang=en
|
|
481
|
+
(AUG, 28, popular_consultation_25th),
|
|
482
|
+
(AUG, 29, popular_consultation_25th),
|
|
483
|
+
# https://timor-leste.gov.tl/?p=39068&lang=en
|
|
484
|
+
(SEP, 9, pope_francis_visit),
|
|
485
|
+
(SEP, 10, pope_francis_visit),
|
|
486
|
+
(SEP, 11, pope_francis_visit),
|
|
487
|
+
# https://timor-leste.gov.tl/?p=40592&lang=en
|
|
488
|
+
(OCT, 31, special_national_holidays),
|
|
448
489
|
),
|
|
449
490
|
}
|
holidays/countries/ukraine.py
CHANGED
|
@@ -103,9 +103,7 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
|
|
|
103
103
|
else tr("День перемоги")
|
|
104
104
|
)
|
|
105
105
|
dts_observed.add(
|
|
106
|
-
self.
|
|
107
|
-
if self._year >= 2024
|
|
108
|
-
else self._add_world_war_two_victory_day(name)
|
|
106
|
+
self._add_world_war_two_victory_day(name, is_western=(self._year >= 2024))
|
|
109
107
|
)
|
|
110
108
|
|
|
111
109
|
if self._year >= 1997:
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, FRI, SAT
|
|
16
|
+
from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, FRI, SAT, SUN
|
|
17
17
|
from holidays.groups import InternationalHolidays, IslamicHolidays
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
19
19
|
|
|
@@ -35,7 +35,6 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
35
35
|
# %s (estimated).
|
|
36
36
|
estimated_label = tr("(تقدير) %s")
|
|
37
37
|
supported_languages = ("ar", "en_US")
|
|
38
|
-
weekend = {FRI, SAT}
|
|
39
38
|
|
|
40
39
|
def __init__(self, *args, **kwargs):
|
|
41
40
|
InternationalHolidays.__init__(self)
|
|
@@ -43,6 +42,10 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
43
42
|
super().__init__(*args, **kwargs)
|
|
44
43
|
|
|
45
44
|
def _populate_public_holidays(self):
|
|
45
|
+
# The resting days are Saturday and Sunday since Jan 1, 2022.
|
|
46
|
+
# https://time.com/6126260/uae-working-days-weekend/
|
|
47
|
+
self.weekend = {FRI, SAT} if self._year <= 2021 else {SAT, SUN}
|
|
48
|
+
|
|
46
49
|
# New Year's Day.
|
|
47
50
|
self._add_new_years_day(tr("رأس السنة الميلادية"))
|
|
48
51
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from typing import
|
|
13
|
+
from typing import Union
|
|
14
14
|
|
|
15
15
|
from holidays.calendars.gregorian import APR, MAY, JUN, JUL, SEP, DEC
|
|
16
16
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
@@ -38,7 +38,7 @@ class UnitedKingdom(ObservedHolidayBase, ChristianHolidays, InternationalHoliday
|
|
|
38
38
|
|
|
39
39
|
country = "GB"
|
|
40
40
|
observed_label = "%s (observed)"
|
|
41
|
-
subdivisions: Union[
|
|
41
|
+
subdivisions: Union[tuple[()], tuple[str, ...]] = (
|
|
42
42
|
"ENG", # England
|
|
43
43
|
"NIR", # Northern Ireland
|
|
44
44
|
"SCT", # Scotland
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from typing import
|
|
13
|
+
from typing import Union
|
|
14
14
|
|
|
15
15
|
from holidays.calendars.gregorian import MON, TUE, WED, THU, FRI, SAT, SUN
|
|
16
16
|
from holidays.constants import PUBLIC, UNOFFICIAL
|
|
@@ -62,7 +62,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
|
|
|
62
62
|
country = "US"
|
|
63
63
|
supported_categories = (PUBLIC, UNOFFICIAL)
|
|
64
64
|
observed_label = "%s (observed)"
|
|
65
|
-
subdivisions: Union[
|
|
65
|
+
subdivisions: Union[tuple[()], tuple[str, ...]] = (
|
|
66
66
|
"AK", # Alaska.
|
|
67
67
|
"AL", # Alabama.
|
|
68
68
|
"AR", # Arkansas.
|
|
@@ -246,7 +246,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
|
|
|
246
246
|
|
|
247
247
|
def _populate_subdiv_ak_public_holidays(self):
|
|
248
248
|
# Seward's Day
|
|
249
|
-
|
|
249
|
+
# No observance in 1921: https://chroniclingamerica.loc.gov/lccn/sn86072239/1922-03-29/ed-1/seq-8/
|
|
250
|
+
if self._year >= 1918 and self._year != 1921:
|
|
250
251
|
name = "Seward's Day"
|
|
251
252
|
if self._year >= 1955:
|
|
252
253
|
self._add_holiday_last_mon_of_mar(name)
|
|
@@ -260,7 +261,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
|
|
|
260
261
|
)
|
|
261
262
|
|
|
262
263
|
# Alaska Day
|
|
263
|
-
|
|
264
|
+
# https://web.archive.org/web/20120502232826/http://www.alaskadispatch.com/article/happy-alaska-day-great-land
|
|
265
|
+
if self._year >= 1917:
|
|
264
266
|
self._add_observed(self._add_holiday_oct_18("Alaska Day"))
|
|
265
267
|
|
|
266
268
|
def _populate_subdiv_al_public_holidays(self):
|
holidays/countries/uzbekistan.py
CHANGED
holidays/countries/vietnam.py
CHANGED
|
@@ -10,69 +10,135 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
from datetime import date
|
|
13
14
|
from gettext import gettext as tr
|
|
14
15
|
|
|
15
|
-
from holidays.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
from holidays.calendars.gregorian import (
|
|
17
|
+
JAN,
|
|
18
|
+
FEB,
|
|
19
|
+
APR,
|
|
20
|
+
MAY,
|
|
21
|
+
SEP,
|
|
22
|
+
DEC,
|
|
23
|
+
MON,
|
|
24
|
+
TUE,
|
|
25
|
+
WED,
|
|
26
|
+
THU,
|
|
27
|
+
FRI,
|
|
28
|
+
SAT,
|
|
29
|
+
SUN,
|
|
30
|
+
_timedelta,
|
|
31
|
+
)
|
|
32
|
+
from holidays.groups import ChineseCalendarHolidays, InternationalHolidays, StaticHolidays
|
|
33
|
+
from holidays.observed_holiday_base import (
|
|
34
|
+
ObservedHolidayBase,
|
|
35
|
+
ObservedRule,
|
|
36
|
+
SAT_TO_PREV_WORKDAY,
|
|
37
|
+
SUN_TO_NEXT_WORKDAY,
|
|
38
|
+
SAT_SUN_TO_NEXT_WORKDAY,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
NATIONAL_DAY_RULE = ObservedRule({MON: +1, TUE: -1, WED: -1, THU: +1, FRI: -1, SAT: -1, SUN: +1})
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class Vietnam(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays, StaticHolidays):
|
|
20
45
|
"""
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
46
|
+
References:
|
|
47
|
+
- `Labor Code 1994 (Art. 73) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=2835>`_
|
|
48
|
+
- `Labor Code 2012 (Art. 115) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=11013>`_
|
|
49
|
+
- `Labor Code 2012 (Art. 115) (vi) <https://vbpl.vn/TW/Pages/vbpq-toanvan.aspx?ItemID=27615>`_
|
|
50
|
+
- `Labor Code 2019 (Art. 112) (en) <https://vbpl.vn/TW/Pages/vbpqen-toanvan.aspx?ItemID=11135>`_
|
|
51
|
+
- `Labor Code 2019 (Art. 112) (vi) <https://vbpl.vn/TW/Pages/vbpq-van-ban-goc.aspx?ItemID=139264>`_
|
|
52
|
+
|
|
53
|
+
Substituted holidays:
|
|
54
|
+
- `2018-2019 <https://thuvienphapluat.vn/cong-van/EN/Lao-dong-Tien-luong/Official-Dispatch-6519-VPCP-KGVX-2018-national-holidays-for-public-sector-employees/387625/tieng-anh.aspx>`_
|
|
55
|
+
- `2024 <https://thuvienphapluat.vn/cong-van/EN/Lao-dong-Tien-luong/Official-Dispatch-2450-VPCP-KGVX-2024-swap-of-working-days-during-the-Reunification-Day/606458/tieng-anh.aspx>`_
|
|
24
56
|
"""
|
|
25
57
|
|
|
26
58
|
country = "VN"
|
|
27
59
|
# %s (observed).
|
|
28
60
|
observed_label = tr("%s (nghỉ bù)")
|
|
29
61
|
default_language = "vi"
|
|
30
|
-
supported_languages = ("en_US", "vi")
|
|
62
|
+
supported_languages = ("en_US", "th", "vi")
|
|
31
63
|
|
|
32
64
|
def __init__(self, *args, **kwargs):
|
|
33
65
|
ChineseCalendarHolidays.__init__(self)
|
|
34
66
|
InternationalHolidays.__init__(self)
|
|
67
|
+
StaticHolidays.__init__(self, VietnamStaticHolidays)
|
|
35
68
|
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
|
|
69
|
+
kwargs.setdefault("observed_since", 1995)
|
|
36
70
|
super().__init__(*args, **kwargs)
|
|
37
71
|
|
|
72
|
+
def _add_lunar_new_year_observed(self, dt_lny: date) -> None:
|
|
73
|
+
if self._year <= 1994:
|
|
74
|
+
return None
|
|
75
|
+
|
|
76
|
+
day_names = {
|
|
77
|
+
# 29 of Lunar New Year.
|
|
78
|
+
-2: tr("29 Tết"),
|
|
79
|
+
# Fourth Day of Lunar New Year.
|
|
80
|
+
3: tr("Mùng bốn Tết Nguyên Đán"),
|
|
81
|
+
# Fifth Day of Lunar New Year.
|
|
82
|
+
4: tr("Mùng năm Tết Nguyên Đán"),
|
|
83
|
+
# Sixth Day of Lunar New Year.
|
|
84
|
+
5: tr("Mùng sáu Tết Nguyên Đán"),
|
|
85
|
+
}
|
|
86
|
+
for delta in range(-1, 4 if self._year >= 2013 else 3):
|
|
87
|
+
dt = _timedelta(dt_lny, delta)
|
|
88
|
+
dt_observed = self._get_observed_date(
|
|
89
|
+
dt,
|
|
90
|
+
rule=(
|
|
91
|
+
SAT_TO_PREV_WORKDAY + SUN_TO_NEXT_WORKDAY
|
|
92
|
+
if self._year >= 2014
|
|
93
|
+
else SAT_SUN_TO_NEXT_WORKDAY
|
|
94
|
+
),
|
|
95
|
+
)
|
|
96
|
+
if dt_observed != dt:
|
|
97
|
+
self._add_holiday(
|
|
98
|
+
day_names[(dt_observed - dt_lny).days], # type: ignore[operator]
|
|
99
|
+
dt_observed,
|
|
100
|
+
)
|
|
101
|
+
|
|
38
102
|
def _populate_public_holidays(self):
|
|
39
103
|
dts_observed = set()
|
|
40
104
|
|
|
41
|
-
# New Year's Day
|
|
105
|
+
# New Year's Day.
|
|
42
106
|
dts_observed.add(self._add_new_years_day(tr("Tết Dương lịch")))
|
|
43
107
|
|
|
44
|
-
# Lunar New Year's Eve
|
|
108
|
+
# Lunar New Year's Eve.
|
|
45
109
|
self._add_chinese_new_years_eve(tr("Giao thừa Tết Nguyên Đán"))
|
|
46
110
|
|
|
47
|
-
# Lunar New Year
|
|
48
|
-
self._add_chinese_new_years_day(tr("Tết Nguyên Đán"))
|
|
111
|
+
# Lunar New Year.
|
|
112
|
+
lny = self._add_chinese_new_years_day(tr("Tết Nguyên Đán"))
|
|
49
113
|
|
|
50
|
-
# Second Day of Lunar New Year
|
|
114
|
+
# Second Day of Lunar New Year.
|
|
51
115
|
self._add_chinese_new_years_day_two(tr("Mùng hai Tết Nguyên Đán"))
|
|
52
116
|
|
|
53
|
-
# Third Day of Lunar New Year
|
|
117
|
+
# Third Day of Lunar New Year.
|
|
54
118
|
self._add_chinese_new_years_day_three(tr("Mùng ba Tết Nguyên Đán"))
|
|
55
119
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
# Fifth Day of Lunar New Year
|
|
60
|
-
self._add_chinese_new_years_day_five(tr("Mùng năm Tết Nguyên Đán"))
|
|
120
|
+
if self._year >= 2013:
|
|
121
|
+
# Fourth Day of Lunar New Year.
|
|
122
|
+
self._add_chinese_new_years_day_four(tr("Mùng bốn Tết Nguyên Đán"))
|
|
61
123
|
|
|
62
124
|
if self._year >= 2007:
|
|
63
|
-
# Hung Kings' Commemoration Day
|
|
125
|
+
# Hung Kings' Commemoration Day.
|
|
64
126
|
dts_observed.add(self._add_hung_kings_day(tr("Ngày Giỗ Tổ Hùng Vương")))
|
|
65
127
|
|
|
66
|
-
# Liberation Day/Reunification Day
|
|
128
|
+
# Liberation Day/Reunification Day.
|
|
67
129
|
dts_observed.add(self._add_holiday_apr_30(tr("Ngày Chiến thắng")))
|
|
68
130
|
|
|
69
|
-
# International Labor Day
|
|
131
|
+
# International Labor Day.
|
|
70
132
|
dts_observed.add(self._add_labor_day(tr("Ngày Quốc tế Lao động")))
|
|
71
133
|
|
|
72
|
-
# National Day
|
|
73
|
-
|
|
134
|
+
# National Day.
|
|
135
|
+
name = tr("Quốc khánh")
|
|
136
|
+
dts_observed.add(sep_2 := self._add_holiday_sep_2(name))
|
|
137
|
+
if self._year >= 2021:
|
|
138
|
+
self._add_holiday(name, self._get_observed_date(sep_2, NATIONAL_DAY_RULE))
|
|
74
139
|
|
|
75
140
|
if self.observed:
|
|
141
|
+
self._add_lunar_new_year_observed(lny)
|
|
76
142
|
self._populate_observed(dts_observed)
|
|
77
143
|
|
|
78
144
|
|
|
@@ -82,3 +148,28 @@ class VN(Vietnam):
|
|
|
82
148
|
|
|
83
149
|
class VNM(Vietnam):
|
|
84
150
|
pass
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
class VietnamStaticHolidays:
|
|
154
|
+
# Date format (see strftime() Format Codes).
|
|
155
|
+
substituted_date_format = tr("%d/%m/%Y")
|
|
156
|
+
# Day off (substituted from %s).
|
|
157
|
+
substituted_label = tr("Ngày nghỉ (thay cho ngày %s)")
|
|
158
|
+
|
|
159
|
+
special_public_holidays = {
|
|
160
|
+
2010: (FEB, 19, FEB, 27),
|
|
161
|
+
2012: (JAN, 27, FEB, 4),
|
|
162
|
+
2013: (APR, 29, MAY, 4),
|
|
163
|
+
2014: (
|
|
164
|
+
(MAY, 2, APR, 26),
|
|
165
|
+
(SEP, 1, SEP, 6),
|
|
166
|
+
),
|
|
167
|
+
2015: (
|
|
168
|
+
(JAN, 2, DEC, 27, 2014),
|
|
169
|
+
(FEB, 16, FEB, 14),
|
|
170
|
+
(APR, 29, APR, 25),
|
|
171
|
+
),
|
|
172
|
+
2018: (DEC, 31, JAN, 5, 2019),
|
|
173
|
+
2019: (APR, 29, MAY, 4),
|
|
174
|
+
2024: (APR, 29, MAY, 4),
|
|
175
|
+
}
|
|
@@ -10,9 +10,13 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
import warnings
|
|
14
|
+
|
|
15
|
+
from holidays.version import __version__
|
|
16
|
+
|
|
13
17
|
FUTURE_INCOMPATIBILITY_WARNING_TEMPLATE = """
|
|
14
18
|
|
|
15
|
-
This is a future version incompatibility warning from Holidays
|
|
19
|
+
This is a future version incompatibility warning from Holidays v{version}
|
|
16
20
|
to inform you about an upcoming change in our API versioning strategy that may affect your
|
|
17
21
|
project's dependencies. Starting from version 1.0 onwards, we will be following a loose form of
|
|
18
22
|
Semantic Versioning (SemVer, https://semver.org) to provide clearer communication regarding any
|
|
@@ -22,7 +26,7 @@ This means that while we strive to maintain backward compatibility, there might
|
|
|
22
26
|
updates that introduce breaking changes to our API. To ensure the stability of your projects,
|
|
23
27
|
we highly recommend pinning the version of our API that you rely on. You can pin your current
|
|
24
28
|
holidays v0.x dependency (e.g., holidays=={version}) or limit it (e.g., holidays<1.0) in order to
|
|
25
|
-
avoid potentially unwanted upgrade to the version 1.0 when it's released (ETA
|
|
29
|
+
avoid potentially unwanted upgrade to the version 1.0 when it's released (ETA 2025Q1-Q2).
|
|
26
30
|
|
|
27
31
|
If you have any questions or concerns regarding this change, please don't hesitate to reach out
|
|
28
32
|
to us via https://github.com/vacanza/holidays/discussions/1800.
|
|
@@ -31,3 +35,9 @@ to us via https://github.com/vacanza/holidays/discussions/1800.
|
|
|
31
35
|
|
|
32
36
|
class FutureIncompatibilityWarning(DeprecationWarning):
|
|
33
37
|
pass
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
warnings.warn(
|
|
41
|
+
FUTURE_INCOMPATIBILITY_WARNING_TEMPLATE.format(version=__version__),
|
|
42
|
+
FutureIncompatibilityWarning,
|
|
43
|
+
)
|
holidays/groups/__init__.py
CHANGED
|
@@ -16,6 +16,7 @@ from holidays.groups.buddhist import BuddhistCalendarHolidays
|
|
|
16
16
|
from holidays.groups.chinese import ChineseCalendarHolidays
|
|
17
17
|
from holidays.groups.christian import ChristianHolidays
|
|
18
18
|
from holidays.groups.custom import StaticHolidays
|
|
19
|
+
from holidays.groups.eastern import EasternCalendarHolidays
|
|
19
20
|
from holidays.groups.hindu import HinduCalendarHolidays
|
|
20
21
|
from holidays.groups.international import InternationalHolidays
|
|
21
22
|
from holidays.groups.islamic import IslamicHolidays
|
holidays/groups/buddhist.py
CHANGED
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
14
|
+
from typing import Optional
|
|
15
15
|
|
|
16
16
|
from holidays.calendars import _BuddhistLunisolar
|
|
17
|
+
from holidays.groups.eastern import EasternCalendarHolidays
|
|
17
18
|
|
|
18
19
|
|
|
19
|
-
class BuddhistCalendarHolidays:
|
|
20
|
+
class BuddhistCalendarHolidays(EasternCalendarHolidays):
|
|
20
21
|
"""
|
|
21
22
|
Buddhist lunisolar calendar holidays.
|
|
22
23
|
"""
|
|
@@ -26,7 +27,7 @@ class BuddhistCalendarHolidays:
|
|
|
26
27
|
self._buddhist_calendar_show_estimated = show_estimated
|
|
27
28
|
|
|
28
29
|
def _add_buddhist_calendar_holiday(
|
|
29
|
-
self, name: str, dt_estimated:
|
|
30
|
+
self, name: str, dt_estimated: tuple[Optional[date], bool]
|
|
30
31
|
) -> Optional[date]:
|
|
31
32
|
"""
|
|
32
33
|
Add Buddhist calendar holiday.
|
|
@@ -34,14 +35,8 @@ class BuddhistCalendarHolidays:
|
|
|
34
35
|
Adds customizable estimation label to holiday name if holiday date
|
|
35
36
|
is an estimation.
|
|
36
37
|
"""
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return self._add_holiday(
|
|
41
|
-
self.tr(estimated_label) % self.tr(name)
|
|
42
|
-
if is_estimated and self._buddhist_calendar_show_estimated
|
|
43
|
-
else name,
|
|
44
|
-
dt,
|
|
38
|
+
return self._add_eastern_calendar_holiday(
|
|
39
|
+
name, dt_estimated, self._buddhist_calendar_show_estimated
|
|
45
40
|
)
|
|
46
41
|
|
|
47
42
|
def _add_vesak(self, name) -> Optional[date]:
|
holidays/groups/chinese.py
CHANGED
|
@@ -11,13 +11,14 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
14
|
+
from typing import Optional
|
|
15
15
|
|
|
16
16
|
from holidays.calendars import _ChineseLunisolar
|
|
17
|
-
from holidays.calendars.gregorian import APR
|
|
17
|
+
from holidays.calendars.gregorian import APR
|
|
18
|
+
from holidays.groups.eastern import EasternCalendarHolidays
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
class ChineseCalendarHolidays:
|
|
21
|
+
class ChineseCalendarHolidays(EasternCalendarHolidays):
|
|
21
22
|
"""
|
|
22
23
|
Chinese lunisolar calendar holidays.
|
|
23
24
|
"""
|
|
@@ -48,7 +49,7 @@ class ChineseCalendarHolidays:
|
|
|
48
49
|
return self._chinese_calendar.mid_autumn_date(self._year)[0]
|
|
49
50
|
|
|
50
51
|
def _add_chinese_calendar_holiday(
|
|
51
|
-
self, name: str, dt_estimated:
|
|
52
|
+
self, name: str, dt_estimated: tuple[Optional[date], bool], days_delta: int = 0
|
|
52
53
|
) -> Optional[date]:
|
|
53
54
|
"""
|
|
54
55
|
Add Chinese calendar holiday.
|
|
@@ -56,17 +57,8 @@ class ChineseCalendarHolidays:
|
|
|
56
57
|
Adds customizable estimation label to holiday name if holiday date
|
|
57
58
|
is an estimation.
|
|
58
59
|
"""
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if days_delta != 0:
|
|
63
|
-
dt = _timedelta(dt, days_delta)
|
|
64
|
-
|
|
65
|
-
return self._add_holiday(
|
|
66
|
-
self.tr(estimated_label) % self.tr(name)
|
|
67
|
-
if is_estimated and self._chinese_calendar_show_estimated
|
|
68
|
-
else name,
|
|
69
|
-
dt,
|
|
60
|
+
return self._add_eastern_calendar_holiday(
|
|
61
|
+
name, dt_estimated, self._chinese_calendar_show_estimated, days_delta
|
|
70
62
|
)
|
|
71
63
|
|
|
72
64
|
def _add_chinese_birthday_of_buddha(self, name) -> Optional[date]:
|
|
@@ -136,16 +128,6 @@ class ChineseCalendarHolidays:
|
|
|
136
128
|
name, self._chinese_calendar.lunar_new_year_date(self._year), days_delta=+3
|
|
137
129
|
)
|
|
138
130
|
|
|
139
|
-
def _add_chinese_new_years_day_five(self, name) -> Optional[date]:
|
|
140
|
-
"""
|
|
141
|
-
Add Chinese New Year's Day Five.
|
|
142
|
-
|
|
143
|
-
https://en.wikipedia.org/wiki/Chinese_New_Year
|
|
144
|
-
"""
|
|
145
|
-
return self._add_chinese_calendar_holiday(
|
|
146
|
-
name, self._chinese_calendar.lunar_new_year_date(self._year), days_delta=+4
|
|
147
|
-
)
|
|
148
|
-
|
|
149
131
|
def _add_qingming_festival(self, name) -> date:
|
|
150
132
|
"""
|
|
151
133
|
Add Qingming Festival (15th day after the Spring Equinox).
|