holidays 0.25__py3-none-any.whl → 0.27__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 +1 -1
- holidays/calendars/__init__.py +9 -7
- holidays/calendars/buddhist.py +445 -0
- holidays/calendars/chinese.py +1238 -431
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hebrew.py +2 -2
- holidays/calendars/hindu.py +445 -0
- holidays/calendars/islamic.py +1347 -1347
- holidays/calendars/thai.py +229 -38
- holidays/countries/__init__.py +8 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +25 -35
- holidays/countries/armenia.py +1 -0
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/austria.py +1 -0
- holidays/countries/azerbaijan.py +44 -71
- holidays/countries/bahrain.py +7 -7
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +2 -3
- holidays/countries/belize.py +128 -0
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +37 -44
- holidays/countries/brazil.py +4 -7
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +3 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +183 -0
- holidays/countries/canada.py +20 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +6 -13
- holidays/countries/china.py +21 -25
- holidays/countries/colombia.py +18 -15
- holidays/countries/costa_rica.py +25 -27
- holidays/countries/cuba.py +28 -15
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +3 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +2 -3
- holidays/countries/dominican_republic.py +2 -3
- holidays/countries/ecuador.py +55 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/el_salvador.py +101 -0
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +7 -14
- holidays/countries/finland.py +2 -3
- holidays/countries/france.py +1 -0
- holidays/countries/gabon.py +139 -0
- holidays/countries/georgia.py +1 -0
- holidays/countries/germany.py +1 -0
- holidays/countries/greece.py +7 -6
- holidays/countries/honduras.py +17 -13
- holidays/countries/hongkong.py +117 -126
- holidays/countries/hungary.py +93 -92
- holidays/countries/iceland.py +1 -0
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +178 -142
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +23 -5
- holidays/countries/israel.py +12 -24
- holidays/countries/italy.py +6 -7
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +11 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +44 -26
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/liechtenstein.py +1 -0
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +335 -343
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +2 -3
- holidays/countries/moldova.py +4 -6
- holidays/countries/monaco.py +17 -26
- holidays/countries/montenegro.py +34 -24
- holidays/countries/morocco.py +8 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/netherlands.py +1 -0
- holidays/countries/new_zealand.py +166 -134
- holidays/countries/nicaragua.py +27 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +2 -3
- holidays/countries/pakistan.py +73 -75
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +55 -47
- holidays/countries/peru.py +1 -0
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +4 -9
- holidays/countries/portugal.py +4 -11
- holidays/countries/romania.py +4 -5
- holidays/countries/russia.py +1 -0
- holidays/countries/san_marino.py +26 -27
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +22 -31
- holidays/countries/singapore.py +181 -189
- holidays/countries/slovakia.py +2 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +59 -26
- holidays/countries/spain.py +7 -10
- holidays/countries/sweden.py +2 -3
- holidays/countries/switzerland.py +1 -0
- holidays/countries/taiwan.py +20 -20
- holidays/countries/thailand.py +36 -82
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +7 -18
- holidays/countries/united_arab_emirates.py +23 -31
- holidays/countries/united_kingdom.py +124 -116
- holidays/countries/united_states.py +42 -72
- holidays/countries/uruguay.py +1 -0
- holidays/countries/vatican_city.py +64 -32
- holidays/countries/venezuela.py +9 -6
- holidays/countries/vietnam.py +6 -20
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +15 -16
- holidays/financial/ny_stock_exchange.py +80 -86
- holidays/groups/__init__.py +18 -0
- holidays/groups/buddhist.py +71 -0
- holidays/groups/chinese.py +235 -0
- holidays/groups/christian.py +483 -0
- holidays/groups/hindu.py +71 -0
- holidays/groups/international.py +157 -0
- holidays/groups/islamic.py +288 -0
- holidays/groups/thai.py +157 -0
- holidays/helpers.py +20 -0
- holidays/holiday_base.py +54 -76
- holidays/holiday_groups.py +11 -1053
- holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/am/LC_MESSAGES/ET.po +20 -15
- holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/CA.po +184 -0
- holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/ET.po +92 -0
- holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/UA.po +97 -0
- holidays/locale/be/LC_MESSAGES/BY.po +11 -13
- holidays/locale/bg/LC_MESSAGES/BG.po +13 -15
- holidays/locale/da/LC_MESSAGES/DK.po +13 -12
- holidays/locale/de/LC_MESSAGES/AT.po +14 -14
- holidays/locale/de/LC_MESSAGES/CH.po +91 -56
- holidays/locale/de/LC_MESSAGES/DE.po +32 -32
- holidays/locale/de/LC_MESSAGES/LI.po +23 -23
- holidays/locale/el/LC_MESSAGES/CY.po +16 -16
- holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/el/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AM.po +20 -20
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.po +34 -33
- holidays/locale/en_US/LC_MESSAGES/AT.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
- holidays/locale/en_US/LC_MESSAGES/BG.po +13 -15
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +11 -13
- holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CA.po +70 -37
- holidays/locale/en_US/LC_MESSAGES/CH.po +91 -56
- holidays/locale/en_US/LC_MESSAGES/CL.po +39 -38
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CR.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CU.po +10 -10
- holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
- holidays/locale/en_US/LC_MESSAGES/CY.po +16 -16
- holidays/locale/en_US/LC_MESSAGES/DE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/DK.po +12 -11
- holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
- holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ET.po +20 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/FR.po +27 -24
- holidays/locale/en_US/LC_MESSAGES/GE.po +23 -27
- holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +17 -12
- holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
- holidays/locale/en_US/LC_MESSAGES/IS.po +17 -17
- holidays/locale/en_US/LC_MESSAGES/JP.po +25 -25
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
- holidays/locale/en_US/LC_MESSAGES/LI.po +22 -22
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/MD.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/MX.po +9 -12
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/NL.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/NO.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/PE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/PL.po +38 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +39 -36
- holidays/locale/en_US/LC_MESSAGES/PY.po +16 -16
- holidays/locale/en_US/LC_MESSAGES/RO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RS.po +17 -19
- holidays/locale/en_US/LC_MESSAGES/RU.po +11 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/SK.po +17 -18
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +18 -19
- holidays/locale/en_US/LC_MESSAGES/UY.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/VE.po +16 -16
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.po +34 -33
- holidays/locale/es/LC_MESSAGES/CL.po +39 -38
- holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CO.po +24 -24
- holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CR.po +19 -19
- holidays/locale/es/LC_MESSAGES/CU.po +10 -10
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/es/LC_MESSAGES/HN.po +17 -12
- holidays/locale/es/LC_MESSAGES/MX.po +9 -12
- holidays/locale/es/LC_MESSAGES/NI.po +12 -12
- holidays/locale/es/LC_MESSAGES/PE.po +30 -30
- holidays/locale/es/LC_MESSAGES/PY.po +16 -16
- holidays/locale/es/LC_MESSAGES/UY.po +15 -15
- holidays/locale/es/LC_MESSAGES/VE.po +16 -16
- holidays/locale/fi/LC_MESSAGES/FI.po +16 -16
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/CH.po +91 -56
- holidays/locale/fr/LC_MESSAGES/FR.po +27 -24
- holidays/locale/fr/LC_MESSAGES/MC.po +23 -23
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/hy/LC_MESSAGES/AM.po +16 -16
- holidays/locale/is/LC_MESSAGES/IS.po +18 -18
- holidays/locale/it/LC_MESSAGES/CH.po +91 -56
- holidays/locale/ja/LC_MESSAGES/JP.po +25 -25
- holidays/locale/ka/LC_MESSAGES/GE.po +23 -27
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +139 -0
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
- holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
- holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
- holidays/locale/nl/LC_MESSAGES/NL.po +13 -13
- holidays/locale/no/LC_MESSAGES/NO.po +14 -14
- holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
- holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +38 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +39 -36
- holidays/locale/ro/LC_MESSAGES/MD.po +14 -15
- holidays/locale/ro/LC_MESSAGES/RO.po +13 -14
- holidays/locale/ru/LC_MESSAGES/RU.po +11 -9
- holidays/locale/sk/LC_MESSAGES/SK.po +17 -18
- holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/RS.po +15 -17
- holidays/locale/sv/LC_MESSAGES/FI.po +16 -16
- holidays/locale/sv/LC_MESSAGES/SE.po +20 -20
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +96 -0
- holidays/locale/th/LC_MESSAGES/CA.po +42 -42
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +145 -0
- holidays/locale/th/LC_MESSAGES/TH.po +41 -41
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.po +35 -35
- holidays/locale/uk/LC_MESSAGES/AT.po +15 -16
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CH.po +92 -58
- holidays/locale/uk/LC_MESSAGES/CL.po +40 -40
- holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CO.po +28 -29
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.po +20 -21
- holidays/locale/uk/LC_MESSAGES/CU.po +11 -12
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DE.po +33 -34
- holidays/locale/uk/LC_MESSAGES/DK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/DO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/EC.po +12 -14
- holidays/locale/uk/LC_MESSAGES/FI.po +17 -18
- holidays/locale/uk/LC_MESSAGES/FR.po +28 -26
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +18 -14
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/IS.po +19 -20
- holidays/locale/uk/LC_MESSAGES/LI.po +24 -25
- holidays/locale/uk/LC_MESSAGES/MC.po +27 -28
- holidays/locale/uk/LC_MESSAGES/MD.po +14 -15
- holidays/locale/uk/LC_MESSAGES/MX.po +10 -14
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +16 -17
- holidays/locale/uk/LC_MESSAGES/NL.po +14 -15
- holidays/locale/uk/LC_MESSAGES/NO.po +15 -16
- holidays/locale/uk/LC_MESSAGES/PE.po +31 -32
- holidays/locale/uk/LC_MESSAGES/PL.po +38 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +17 -18
- holidays/locale/uk/LC_MESSAGES/RO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/SE.po +21 -22
- holidays/locale/uk/LC_MESSAGES/SK.po +18 -20
- holidays/locale/uk/LC_MESSAGES/UA.po +17 -17
- holidays/locale/uk/LC_MESSAGES/UY.po +16 -17
- holidays/locale/uk/LC_MESSAGES/VE.po +17 -18
- holidays/registry.py +21 -12
- holidays/utils.py +87 -17
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/METADATA +282 -265
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.25.dist-info/RECORD +0 -390
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
|
@@ -9,77 +9,109 @@
|
|
|
9
9
|
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from datetime import timedelta as td
|
|
14
|
-
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, AUG, SEP, NOV, DEC
|
|
12
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, OCT, NOV
|
|
18
13
|
from holidays.holiday_base import HolidayBase
|
|
14
|
+
from holidays.holiday_groups import ChristianHolidays
|
|
19
15
|
|
|
20
16
|
|
|
21
|
-
class VaticanCity(HolidayBase):
|
|
17
|
+
class VaticanCity(HolidayBase, ChristianHolidays):
|
|
22
18
|
"""
|
|
23
19
|
References:
|
|
24
20
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Vatican_City
|
|
21
|
+
- https://www.ewtn.com/catholicism/library/solemnity-of-mary-mother-of-god-5826 # noqa: E501
|
|
22
|
+
- https://www.franciscanmedia.org/saint-of-the-day/saint-joseph-the-worker/ # noqa: E501
|
|
25
23
|
"""
|
|
26
24
|
|
|
27
25
|
country = "VA"
|
|
28
26
|
|
|
27
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
28
|
+
ChristianHolidays.__init__(self)
|
|
29
|
+
super().__init__(*args, **kwargs)
|
|
30
|
+
|
|
29
31
|
def _populate(self, year: int) -> None:
|
|
32
|
+
if year <= 1928:
|
|
33
|
+
return None
|
|
30
34
|
super()._populate(year)
|
|
31
35
|
|
|
32
36
|
# Solemnity of Mary Day.
|
|
33
|
-
|
|
37
|
+
# This is supposedly the same as International New Year.
|
|
38
|
+
# Modern adoption across the entire Latin Church in 1931 though this
|
|
39
|
+
# was already celebrated in Rome as the Octave day of Christmas.
|
|
40
|
+
self._add_holiday("Solemnity of Mary Day", JAN, 1)
|
|
34
41
|
|
|
35
42
|
# Epiphany.
|
|
36
|
-
self
|
|
43
|
+
self._add_epiphany_day("Epiphany")
|
|
37
44
|
|
|
38
45
|
# Lateran Treaty Day.
|
|
39
|
-
self
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
self._add_holiday("Lateran Treaty Day", FEB, 11)
|
|
47
|
+
|
|
48
|
+
if year >= 1978:
|
|
49
|
+
if year >= 2013:
|
|
50
|
+
# Anniversary of the election of Pope Francis.
|
|
51
|
+
dt = (MAR, 13)
|
|
52
|
+
elif year >= 2005:
|
|
53
|
+
# Anniversary of the election of Pope Benedict XVI.
|
|
54
|
+
dt = (APR, 19)
|
|
55
|
+
else:
|
|
56
|
+
# Anniversary of the election of Pope John Paul II.
|
|
57
|
+
dt = (OCT, 16)
|
|
58
|
+
self._add_holiday("Anniversary of the Election of the Holy Father", *dt)
|
|
59
|
+
|
|
60
|
+
# In 2005-2013 - also name day for the civilian name of
|
|
61
|
+
# Pope Benedict XVI (Josef Ratzinger)
|
|
46
62
|
# Saint Joseph's Day.
|
|
47
|
-
self
|
|
48
|
-
|
|
49
|
-
easter_sunday = easter(year)
|
|
63
|
+
self._add_saint_josephs_day("Saint Joseph's Day")
|
|
50
64
|
|
|
51
65
|
# Easter Sunday.
|
|
52
|
-
self
|
|
66
|
+
self._add_easter_sunday("Easter Sunday")
|
|
53
67
|
|
|
54
68
|
# Easter Monday.
|
|
55
|
-
self
|
|
69
|
+
self._add_easter_monday("Easter Monday")
|
|
70
|
+
|
|
71
|
+
if year >= 2013:
|
|
72
|
+
# Name day for the civilian name of Pope Francis
|
|
73
|
+
# (Jorge Mario Bergoglio)
|
|
74
|
+
# Saint George's Day.
|
|
75
|
+
self._add_saint_georges_day("Saint George's Day")
|
|
56
76
|
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
if year >= 1955:
|
|
78
|
+
# Saint Joseph the Worker's Day.
|
|
79
|
+
# Created in response to May Day holidays by Pope Pius XII in 1955.
|
|
80
|
+
self._add_holiday("Saint Joseph the Worker's Day", MAY, 1)
|
|
59
81
|
|
|
60
|
-
|
|
61
|
-
|
|
82
|
+
if year <= 2009:
|
|
83
|
+
# Ascension of Christ.
|
|
84
|
+
self._add_ascension_thursday("Ascension of Christ")
|
|
85
|
+
|
|
86
|
+
# Corpus Christi.
|
|
87
|
+
self._add_corpus_christi_day("Corpus Christi")
|
|
62
88
|
|
|
63
89
|
# Saints Peter and Paul.
|
|
64
|
-
self
|
|
90
|
+
self._add_saints_peter_and_paul_day("Saint Peter and Saint Paul's Day")
|
|
65
91
|
|
|
66
92
|
# Assumption of Mary Day.
|
|
67
|
-
self
|
|
93
|
+
self._add_assumption_of_mary_day("Assumption Day")
|
|
68
94
|
|
|
69
95
|
# Nativity Of Mary Day.
|
|
70
|
-
self
|
|
96
|
+
self._add_nativity_of_mary_day("Nativity of Mary Day")
|
|
71
97
|
|
|
72
98
|
# All Saints' Day.
|
|
73
|
-
self
|
|
99
|
+
self._add_all_saints_day("All Saints' Day")
|
|
100
|
+
|
|
101
|
+
if 1978 <= year <= 2004:
|
|
102
|
+
# Name day for the civilian name of Pope John Paul II
|
|
103
|
+
# (Karol Józef Wojtyła)
|
|
104
|
+
# Saint Charles Borromeo Day.
|
|
105
|
+
self._add_holiday("Saint Charles Borromeo Day", NOV, 4)
|
|
74
106
|
|
|
75
107
|
# Immaculate Conception.
|
|
76
|
-
self
|
|
108
|
+
self._add_immaculate_conception_day("Immaculate Conception Day")
|
|
77
109
|
|
|
78
110
|
# Christmas Day.
|
|
79
|
-
self
|
|
111
|
+
self._add_christmas_day("Christmas Day")
|
|
80
112
|
|
|
81
113
|
# Saint Stephen's Day.
|
|
82
|
-
self
|
|
114
|
+
self._add_christmas_day_two("Saint Stephen's Day")
|
|
83
115
|
|
|
84
116
|
|
|
85
117
|
class VA(VaticanCity):
|
holidays/countries/venezuela.py
CHANGED
|
@@ -23,6 +23,7 @@ class Venezuela(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
23
23
|
|
|
24
24
|
country = "VE"
|
|
25
25
|
default_language = "es"
|
|
26
|
+
supported_languages = ("en_US", "es", "uk")
|
|
26
27
|
|
|
27
28
|
def __init__(self, *args, **kwargs) -> None:
|
|
28
29
|
ChristianHolidays.__init__(self)
|
|
@@ -82,12 +83,14 @@ class Venezuela(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
82
83
|
# Birthday of Simon Bolivar.
|
|
83
84
|
self._add_holiday(tr("Natalicio de Simón Bolívar"), JUL, 24)
|
|
84
85
|
|
|
85
|
-
if year >=
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
if year >= 1921:
|
|
87
|
+
self._add_columbus_day(
|
|
88
|
+
# Day of Indigenous Resistance.
|
|
89
|
+
tr("Día de la Resistencia Indígena")
|
|
90
|
+
if year >= 2002
|
|
91
|
+
# Columbus Day.
|
|
92
|
+
else tr("Día de la Raza")
|
|
93
|
+
)
|
|
91
94
|
|
|
92
95
|
# Note: not sure about the start year nor the reason this was
|
|
93
96
|
# Note: celebrated; the historical records are unclear
|
holidays/countries/vietnam.py
CHANGED
|
@@ -13,8 +13,7 @@ from datetime import timedelta as td
|
|
|
13
13
|
|
|
14
14
|
from holidays.constants import APR, SEP
|
|
15
15
|
from holidays.holiday_base import HolidayBase
|
|
16
|
-
from holidays.holiday_groups import ChineseCalendarHolidays
|
|
17
|
-
from holidays.holiday_groups import InternationalHolidays
|
|
16
|
+
from holidays.holiday_groups import ChineseCalendarHolidays, InternationalHolidays
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
class Vietnam(HolidayBase, ChineseCalendarHolidays, InternationalHolidays):
|
|
@@ -36,9 +35,7 @@ class Vietnam(HolidayBase, ChineseCalendarHolidays, InternationalHolidays):
|
|
|
36
35
|
observed_dates = set()
|
|
37
36
|
|
|
38
37
|
# New Year's Day
|
|
39
|
-
observed_dates.add(
|
|
40
|
-
self._add_new_years_day("International New Year's Day")
|
|
41
|
-
)
|
|
38
|
+
observed_dates.add(self._add_new_years_day("International New Year's Day"))
|
|
42
39
|
|
|
43
40
|
# Lunar New Year
|
|
44
41
|
self._add_chinese_new_years_eve("Vietnamese New Year's Eve")
|
|
@@ -51,16 +48,10 @@ class Vietnam(HolidayBase, ChineseCalendarHolidays, InternationalHolidays):
|
|
|
51
48
|
# Vietnamese Kings' Commemoration Day
|
|
52
49
|
# https://en.wikipedia.org/wiki/H%C3%B9ng_Kings%27_Festival
|
|
53
50
|
if year >= 2007:
|
|
54
|
-
observed_dates.add(
|
|
55
|
-
self._add_chinese_calendar_holiday(
|
|
56
|
-
"Hung Kings Commemoration Day", 3, 10
|
|
57
|
-
)
|
|
58
|
-
)
|
|
51
|
+
observed_dates.add(self._add_hung_kings_day("Hung Kings Commemoration Day"))
|
|
59
52
|
|
|
60
53
|
# Liberation Day/Reunification Day
|
|
61
|
-
observed_dates.add(
|
|
62
|
-
self._add_holiday("Liberation Day/Reunification Day", APR, 30)
|
|
63
|
-
)
|
|
54
|
+
observed_dates.add(self._add_holiday("Liberation Day/Reunification Day", APR, 30))
|
|
64
55
|
|
|
65
56
|
# International Labor Day
|
|
66
57
|
observed_dates.add(self._add_labor_day("International Labor Day"))
|
|
@@ -73,14 +64,9 @@ class Vietnam(HolidayBase, ChineseCalendarHolidays, InternationalHolidays):
|
|
|
73
64
|
if not self._is_weekend(dt):
|
|
74
65
|
continue
|
|
75
66
|
next_workday = dt + td(days=+1)
|
|
76
|
-
while (
|
|
77
|
-
self._is_weekend(next_workday)
|
|
78
|
-
or next_workday in observed_dates
|
|
79
|
-
):
|
|
67
|
+
while self._is_weekend(next_workday) or next_workday in observed_dates:
|
|
80
68
|
next_workday += td(days=+1)
|
|
81
|
-
observed_dates.add(
|
|
82
|
-
self._add_holiday(f"{self[dt]} (Observed)", next_workday)
|
|
83
|
-
)
|
|
69
|
+
observed_dates.add(self._add_holiday(f"{self[dt]} (Observed)", next_workday))
|
|
84
70
|
|
|
85
71
|
|
|
86
72
|
class VN(Vietnam):
|
holidays/countries/zambia.py
CHANGED
|
@@ -12,14 +12,13 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
15
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
18
|
-
from holidays.constants import
|
|
16
|
+
from holidays.constants import MAR, APR, JUL, AUG, SEP, OCT, MON
|
|
19
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class Zambia(HolidayBase):
|
|
21
|
+
class Zambia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
23
22
|
"""
|
|
24
23
|
https://www.officeholidays.com/countries/zambia/
|
|
25
24
|
https://www.timeanddate.com/holidays/zambia/
|
|
@@ -34,8 +33,7 @@ class Zambia(HolidayBase):
|
|
|
34
33
|
(
|
|
35
34
|
SEP,
|
|
36
35
|
13,
|
|
37
|
-
"Inauguration ceremony of President-elect "
|
|
38
|
-
"and Vice President-elect",
|
|
36
|
+
"Inauguration ceremony of President-elect and Vice President-elect",
|
|
39
37
|
),
|
|
40
38
|
),
|
|
41
39
|
2018: (
|
|
@@ -49,54 +47,86 @@ class Zambia(HolidayBase):
|
|
|
49
47
|
(AUG, 13, "Counting in general elections"),
|
|
50
48
|
(AUG, 24, "Presidential inauguration"),
|
|
51
49
|
),
|
|
52
|
-
2022: (
|
|
50
|
+
2022: (MAR, 18, "Funeral of Rupiah Banda"),
|
|
53
51
|
}
|
|
54
52
|
|
|
55
|
-
def
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
def __init__(self, *args, **kwargs):
|
|
54
|
+
ChristianHolidays.__init__(self)
|
|
55
|
+
InternationalHolidays.__init__(self)
|
|
56
|
+
super().__init__(*args, **kwargs)
|
|
57
|
+
|
|
58
|
+
def _add_observed(self, dt: date) -> None:
|
|
59
|
+
# whenever a public holiday falls on a Sunday,
|
|
60
|
+
# it rolls over to the following Monday
|
|
61
|
+
if self.observed and self._is_sunday(dt):
|
|
62
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=+1))
|
|
62
63
|
|
|
64
|
+
def _populate(self, year):
|
|
63
65
|
# Observed since 1965
|
|
64
66
|
if year <= 1964:
|
|
65
67
|
return None
|
|
66
68
|
|
|
67
69
|
super()._populate(year)
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
# New Year's Day.
|
|
72
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
70
73
|
|
|
71
74
|
if year >= 1991:
|
|
72
|
-
|
|
75
|
+
self._add_observed(
|
|
76
|
+
# International Women's Day.
|
|
77
|
+
self._add_womens_day("International Women's Day")
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
# Youth Day.
|
|
81
|
+
self._add_observed(self._add_holiday("Youth Day", MAR, 12))
|
|
73
82
|
|
|
74
|
-
|
|
83
|
+
# Good Friday.
|
|
84
|
+
self._add_good_friday("Good Friday")
|
|
75
85
|
|
|
76
|
-
|
|
77
|
-
self
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
# Holy Saturday.
|
|
87
|
+
self._add_holy_saturday("Holy Saturday")
|
|
88
|
+
|
|
89
|
+
# Easter Monday.
|
|
90
|
+
self._add_easter_monday("Easter Monday")
|
|
80
91
|
|
|
81
92
|
if year >= 2022:
|
|
82
|
-
|
|
93
|
+
self._add_observed(
|
|
94
|
+
# Kenneth Kaunda Day.
|
|
95
|
+
self._add_holiday("Kenneth Kaunda Day", APR, 28)
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Labour Day.
|
|
99
|
+
self._add_observed(self._add_labor_day("Labour Day"))
|
|
83
100
|
|
|
84
|
-
|
|
85
|
-
|
|
101
|
+
# Africa Freedom Day.
|
|
102
|
+
self._add_observed(self._add_africa_day("Africa Freedom Day"))
|
|
86
103
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
104
|
+
first_mon_of_july = self._add_holiday(
|
|
105
|
+
# Heroes' Day.
|
|
106
|
+
"Heroes' Day",
|
|
107
|
+
_get_nth_weekday_of_month(1, MON, JUL, year),
|
|
108
|
+
)
|
|
91
109
|
|
|
92
|
-
#
|
|
93
|
-
self
|
|
110
|
+
# Unity Day.
|
|
111
|
+
self._add_holiday("Unity Day", first_mon_of_july + td(days=+1))
|
|
112
|
+
|
|
113
|
+
self._add_holiday(
|
|
114
|
+
# Farmers' Day.
|
|
115
|
+
"Farmers' Day",
|
|
116
|
+
_get_nth_weekday_of_month(1, MON, AUG, year),
|
|
117
|
+
)
|
|
94
118
|
|
|
95
119
|
if year >= 2015:
|
|
96
|
-
|
|
120
|
+
self._add_observed(
|
|
121
|
+
# National Prayer Day.
|
|
122
|
+
self._add_holiday("National Prayer Day", OCT, 18)
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
# Independence Day.
|
|
126
|
+
self._add_observed(self._add_holiday("Independence Day", OCT, 24))
|
|
97
127
|
|
|
98
|
-
|
|
99
|
-
|
|
128
|
+
# Christmas Day.
|
|
129
|
+
self._add_observed(self._add_christmas_day("Christmas Day"))
|
|
100
130
|
|
|
101
131
|
|
|
102
132
|
class ZM(Zambia):
|
holidays/countries/zimbabwe.py
CHANGED
|
@@ -12,68 +12,87 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
15
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
18
|
-
from holidays.constants import
|
|
16
|
+
from holidays.constants import FEB, APR, AUG, DEC, MON
|
|
19
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class Zimbabwe(HolidayBase):
|
|
21
|
+
class Zimbabwe(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
23
22
|
"""
|
|
24
|
-
https://en.wikipedia.org/wiki/Robert_Mugabe
|
|
25
23
|
https://en.wikipedia.org/wiki/Public_holidays_in_Zimbabwe
|
|
24
|
+
https://en.wikipedia.org/wiki/Robert_Gabriel_Mugabe_National_Youth_Day
|
|
26
25
|
"""
|
|
27
26
|
|
|
28
27
|
country = "ZW"
|
|
29
28
|
|
|
30
|
-
def
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
def __init__(self, *args, **kwargs):
|
|
30
|
+
ChristianHolidays.__init__(self)
|
|
31
|
+
InternationalHolidays.__init__(self)
|
|
32
|
+
super().__init__(*args, **kwargs)
|
|
33
|
+
|
|
34
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
35
|
+
if self.observed and self._is_sunday(dt):
|
|
36
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=days))
|
|
37
37
|
|
|
38
|
+
def _populate(self, year):
|
|
38
39
|
if year <= 1987:
|
|
39
40
|
return None
|
|
40
41
|
|
|
41
42
|
super()._populate(year)
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
# New Year's Day.
|
|
45
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
44
46
|
|
|
45
|
-
# https://en.wikipedia.org/wiki/Robert_Gabriel_Mugabe_National_Youth_Day
|
|
46
47
|
if year >= 2018:
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
self._add_observed(
|
|
49
|
+
self._add_holiday(
|
|
50
|
+
# Robert Gabriel Mugabe National Youth Day.
|
|
51
|
+
"Robert Gabriel Mugabe National Youth Day",
|
|
52
|
+
FEB,
|
|
53
|
+
21,
|
|
54
|
+
)
|
|
49
55
|
)
|
|
50
56
|
|
|
51
|
-
|
|
52
|
-
self
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
#
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
# Good Friday.
|
|
58
|
+
self._add_good_friday("Good Friday")
|
|
59
|
+
|
|
60
|
+
# Easter Saturday.
|
|
61
|
+
self._add_holy_saturday("Easter Saturday")
|
|
62
|
+
|
|
63
|
+
# Easter Monday.
|
|
64
|
+
self._add_easter_monday("Easter Monday")
|
|
65
|
+
|
|
66
|
+
# Independence Day.
|
|
67
|
+
apr_18 = self._add_holiday("Independence Day", APR, 18)
|
|
68
|
+
self._add_observed(apr_18, days=+2 if apr_18 == self._easter_sunday else +1)
|
|
69
|
+
|
|
70
|
+
# Workers' Day.
|
|
71
|
+
self._add_observed(self._add_labor_day("Workers' Day"))
|
|
72
|
+
|
|
73
|
+
# Africa Day.
|
|
74
|
+
self._add_observed(self._add_africa_day("Africa Day"))
|
|
75
|
+
|
|
76
|
+
second_mon_of_august = self._add_holiday(
|
|
77
|
+
# Zimbabwe Heroes' Day.
|
|
78
|
+
"Zimbabwe Heroes' Day",
|
|
79
|
+
_get_nth_weekday_of_month(2, MON, AUG, year),
|
|
62
80
|
)
|
|
63
81
|
|
|
64
|
-
|
|
65
|
-
|
|
82
|
+
self._add_holiday(
|
|
83
|
+
# Defense Forces Day.
|
|
84
|
+
"Defense Forces Day",
|
|
85
|
+
second_mon_of_august + td(days=+1),
|
|
86
|
+
)
|
|
66
87
|
|
|
67
|
-
#
|
|
68
|
-
|
|
69
|
-
self[zimbabwe_heroes_day] = "Zimbabwe Heroes' Day"
|
|
88
|
+
# Unity Day.
|
|
89
|
+
self._add_observed(self._add_holiday("Unity Day", DEC, 22))
|
|
70
90
|
|
|
71
|
-
#
|
|
72
|
-
self
|
|
91
|
+
# Christmas Day.
|
|
92
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
73
93
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
_add_with_observed(date(year, DEC, 26), "Boxing Day")
|
|
94
|
+
# Boxing Day.
|
|
95
|
+
self._add_observed(self._add_christmas_day_two("Boxing Day"))
|
|
77
96
|
|
|
78
97
|
|
|
79
98
|
class ZW(Zimbabwe):
|
|
@@ -9,34 +9,33 @@
|
|
|
9
9
|
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
|
-
from datetime import date
|
|
13
|
-
from datetime import timedelta as td
|
|
14
|
-
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
|
-
from holidays.constants import JAN, MAY, DEC
|
|
18
12
|
from holidays.holiday_base import HolidayBase
|
|
13
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
14
|
|
|
20
15
|
|
|
21
|
-
class EuropeanCentralBank(HolidayBase):
|
|
16
|
+
class EuropeanCentralBank(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
17
|
# https://en.wikipedia.org/wiki/TARGET2
|
|
23
18
|
# http://www.ecb.europa.eu/press/pr/date/2000/html/pr001214_4.en.html
|
|
24
19
|
|
|
25
20
|
market = "ECB"
|
|
26
21
|
|
|
27
|
-
def __init__(self, **kwargs):
|
|
28
|
-
|
|
22
|
+
def __init__(self, *args, **kwargs):
|
|
23
|
+
ChristianHolidays.__init__(self)
|
|
24
|
+
InternationalHolidays.__init__(self)
|
|
25
|
+
super().__init__(*args, **kwargs)
|
|
29
26
|
|
|
30
27
|
def _populate(self, year):
|
|
31
28
|
super()._populate(year)
|
|
32
29
|
|
|
33
|
-
self
|
|
34
|
-
|
|
35
|
-
self
|
|
36
|
-
self
|
|
37
|
-
|
|
38
|
-
self
|
|
39
|
-
|
|
30
|
+
self._add_new_years_day("New Year's Day")
|
|
31
|
+
|
|
32
|
+
self._add_good_friday("Good Friday")
|
|
33
|
+
self._add_easter_monday("Easter Monday")
|
|
34
|
+
|
|
35
|
+
self._add_labor_day("1 May (Labour Day)")
|
|
36
|
+
|
|
37
|
+
self._add_christmas_day("Christmas Day")
|
|
38
|
+
self._add_christmas_day_two("26 December")
|
|
40
39
|
|
|
41
40
|
|
|
42
41
|
class ECB(EuropeanCentralBank):
|