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
holidays/countries/indonesia.py
CHANGED
|
@@ -9,16 +9,25 @@
|
|
|
9
9
|
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
|
-
from holidays.calendars import
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
from holidays.calendars import (
|
|
13
|
+
_CustomBuddhistCalendar,
|
|
14
|
+
_CustomChineseCalendar,
|
|
15
|
+
_CustomIslamicCalendar,
|
|
16
|
+
)
|
|
17
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
15
18
|
from holidays.holiday_base import HolidayBase
|
|
16
|
-
from holidays.holiday_groups import
|
|
17
|
-
|
|
19
|
+
from holidays.holiday_groups import (
|
|
20
|
+
BuddhistCalendarHolidays,
|
|
21
|
+
ChineseCalendarHolidays,
|
|
22
|
+
ChristianHolidays,
|
|
23
|
+
InternationalHolidays,
|
|
24
|
+
IslamicHolidays,
|
|
25
|
+
)
|
|
18
26
|
|
|
19
27
|
|
|
20
28
|
class Indonesia(
|
|
21
29
|
HolidayBase,
|
|
30
|
+
BuddhistCalendarHolidays,
|
|
22
31
|
ChineseCalendarHolidays,
|
|
23
32
|
ChristianHolidays,
|
|
24
33
|
InternationalHolidays,
|
|
@@ -34,13 +43,18 @@ class Indonesia(
|
|
|
34
43
|
country = "ID"
|
|
35
44
|
special_holidays = {
|
|
36
45
|
# Election Day.
|
|
37
|
-
2018: (
|
|
38
|
-
2019: (
|
|
39
|
-
2020: (
|
|
46
|
+
2018: (JUN, 27, "Hari Pemilihan"),
|
|
47
|
+
2019: (APR, 17, "Hari Pemilihan"),
|
|
48
|
+
2020: (DEC, 9, "Hari Pemilihan"),
|
|
40
49
|
}
|
|
41
50
|
|
|
42
51
|
def __init__(self, *args, **kwargs):
|
|
43
|
-
|
|
52
|
+
BuddhistCalendarHolidays.__init__(
|
|
53
|
+
self, calendar=IndonesiaBuddhistCalendar(), show_estimated=True
|
|
54
|
+
)
|
|
55
|
+
ChineseCalendarHolidays.__init__(
|
|
56
|
+
self, calendar=IndonesiaChineseCalendar(), show_estimated=True
|
|
57
|
+
)
|
|
44
58
|
ChristianHolidays.__init__(self)
|
|
45
59
|
InternationalHolidays.__init__(self)
|
|
46
60
|
IslamicHolidays.__init__(self, calendar=IndonesiaIslamicCalendar())
|
|
@@ -101,35 +115,9 @@ class Indonesia(
|
|
|
101
115
|
# Good Friday.
|
|
102
116
|
self._add_good_friday("Wafat Yesus Kristus")
|
|
103
117
|
|
|
104
|
-
# Buddha's Birthday.
|
|
105
118
|
if year >= 1983:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
2008: (MAY, 20),
|
|
109
|
-
2009: (MAY, 9),
|
|
110
|
-
2010: (MAY, 28),
|
|
111
|
-
2011: (MAY, 17),
|
|
112
|
-
2012: (MAY, 6),
|
|
113
|
-
2013: (MAY, 25),
|
|
114
|
-
2014: (MAY, 15),
|
|
115
|
-
2015: (JUN, 2),
|
|
116
|
-
2016: (MAY, 22),
|
|
117
|
-
2017: (MAY, 11),
|
|
118
|
-
2018: (MAY, 29),
|
|
119
|
-
2019: (MAY, 19),
|
|
120
|
-
2020: (MAY, 7),
|
|
121
|
-
2021: (MAY, 26),
|
|
122
|
-
2022: (MAY, 16),
|
|
123
|
-
2023: (JUN, 4),
|
|
124
|
-
}
|
|
125
|
-
if year in date_obs:
|
|
126
|
-
# Buddha's Birthday.
|
|
127
|
-
self._add_holiday("Hari Raya Waisak", *date_obs[year])
|
|
128
|
-
else:
|
|
129
|
-
# Buddha's Birthday.
|
|
130
|
-
self._add_chinese_calendar_holiday(
|
|
131
|
-
"Hari Raya Waisak* (*estimated)", 4, 15
|
|
132
|
-
)
|
|
119
|
+
# Buddha's Birthday.
|
|
120
|
+
self._add_vesak("Hari Raya Waisak")
|
|
133
121
|
|
|
134
122
|
if 1953 <= year <= 1968 or year >= 2014:
|
|
135
123
|
# Labor Day.
|
|
@@ -157,125 +145,173 @@ class IDN(Indonesia):
|
|
|
157
145
|
pass
|
|
158
146
|
|
|
159
147
|
|
|
160
|
-
class
|
|
148
|
+
class IndonesiaBuddhistCalendar(_CustomBuddhistCalendar):
|
|
149
|
+
VESAK_DATES = {
|
|
150
|
+
2007: (JUN, 1),
|
|
151
|
+
2008: (MAY, 20),
|
|
152
|
+
2009: (MAY, 9),
|
|
153
|
+
2010: (MAY, 28),
|
|
154
|
+
2011: (MAY, 17),
|
|
155
|
+
2012: (MAY, 6),
|
|
156
|
+
2013: (MAY, 25),
|
|
157
|
+
2014: (MAY, 15),
|
|
158
|
+
2015: (JUN, 2),
|
|
159
|
+
2016: (MAY, 22),
|
|
160
|
+
2017: (MAY, 11),
|
|
161
|
+
2018: (MAY, 29),
|
|
162
|
+
2019: (MAY, 19),
|
|
163
|
+
2020: (MAY, 7),
|
|
164
|
+
2021: (MAY, 26),
|
|
165
|
+
2022: (MAY, 16),
|
|
166
|
+
2023: (JUN, 4),
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
class IndonesiaChineseCalendar(_CustomChineseCalendar):
|
|
171
|
+
LUNAR_NEW_YEAR_DATES = {
|
|
172
|
+
2003: (FEB, 1),
|
|
173
|
+
2004: (JAN, 22),
|
|
174
|
+
2005: (FEB, 9),
|
|
175
|
+
2006: (JAN, 30),
|
|
176
|
+
2007: (FEB, 19),
|
|
177
|
+
2008: (FEB, 7),
|
|
178
|
+
2009: (JAN, 26),
|
|
179
|
+
2010: (FEB, 15),
|
|
180
|
+
2011: (FEB, 3),
|
|
181
|
+
2012: (JAN, 23),
|
|
182
|
+
2013: (FEB, 11),
|
|
183
|
+
2014: (JAN, 31),
|
|
184
|
+
2015: (FEB, 19),
|
|
185
|
+
2016: (FEB, 8),
|
|
186
|
+
2017: (JAN, 28),
|
|
187
|
+
2018: (FEB, 16),
|
|
188
|
+
2019: (FEB, 5),
|
|
189
|
+
2020: (JAN, 25),
|
|
190
|
+
2021: (FEB, 12),
|
|
191
|
+
2022: (FEB, 1),
|
|
192
|
+
2023: (JAN, 22),
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class IndonesiaIslamicCalendar(_CustomIslamicCalendar):
|
|
161
197
|
EID_AL_ADHA_DATES = {
|
|
162
|
-
2001: (
|
|
163
|
-
2002: (
|
|
164
|
-
2003: (
|
|
165
|
-
2004: (
|
|
166
|
-
2005: (
|
|
198
|
+
2001: (MAR, 6),
|
|
199
|
+
2002: (FEB, 23),
|
|
200
|
+
2003: (FEB, 12),
|
|
201
|
+
2004: (FEB, 2),
|
|
202
|
+
2005: (JAN, 21),
|
|
167
203
|
2006: ((JAN, 10), (DEC, 31)),
|
|
168
|
-
2007: (
|
|
169
|
-
2008: (
|
|
170
|
-
2009: (
|
|
171
|
-
2010: (
|
|
172
|
-
2011: (
|
|
173
|
-
2012: (
|
|
174
|
-
2013: (
|
|
175
|
-
2014: (
|
|
176
|
-
2015: (
|
|
177
|
-
2016: (
|
|
178
|
-
2017: (
|
|
179
|
-
2018: (
|
|
180
|
-
2019: (
|
|
181
|
-
2020: (
|
|
182
|
-
2021: (
|
|
183
|
-
2022: (
|
|
184
|
-
2023: (
|
|
204
|
+
2007: (DEC, 20),
|
|
205
|
+
2008: (DEC, 8),
|
|
206
|
+
2009: (NOV, 27),
|
|
207
|
+
2010: (NOV, 17),
|
|
208
|
+
2011: (NOV, 6),
|
|
209
|
+
2012: (OCT, 26),
|
|
210
|
+
2013: (OCT, 15),
|
|
211
|
+
2014: (OCT, 5),
|
|
212
|
+
2015: (SEP, 24),
|
|
213
|
+
2016: (SEP, 12),
|
|
214
|
+
2017: (SEP, 1),
|
|
215
|
+
2018: (AUG, 22),
|
|
216
|
+
2019: (AUG, 11),
|
|
217
|
+
2020: (JUL, 31),
|
|
218
|
+
2021: (JUL, 20),
|
|
219
|
+
2022: (JUL, 10),
|
|
220
|
+
2023: (JUN, 29),
|
|
185
221
|
}
|
|
186
222
|
|
|
187
223
|
EID_AL_FITR_DATES = {
|
|
188
|
-
2001: (
|
|
189
|
-
2002: (
|
|
190
|
-
2003: (
|
|
191
|
-
2004: (
|
|
192
|
-
2005: (
|
|
193
|
-
2006: (
|
|
194
|
-
2007: (
|
|
195
|
-
2008: (
|
|
196
|
-
2009: (
|
|
197
|
-
2010: (
|
|
198
|
-
2011: (
|
|
199
|
-
2012: (
|
|
200
|
-
2013: (
|
|
201
|
-
2014: (
|
|
202
|
-
2015: (
|
|
203
|
-
2016: (
|
|
204
|
-
2017: (
|
|
205
|
-
2018: (
|
|
206
|
-
2019: (
|
|
207
|
-
2020: (
|
|
208
|
-
2021: (
|
|
209
|
-
2022: (
|
|
210
|
-
2023: (
|
|
224
|
+
2001: (DEC, 16),
|
|
225
|
+
2002: (DEC, 6),
|
|
226
|
+
2003: (NOV, 25),
|
|
227
|
+
2004: (NOV, 14),
|
|
228
|
+
2005: (NOV, 3),
|
|
229
|
+
2006: (OCT, 24),
|
|
230
|
+
2007: (OCT, 13),
|
|
231
|
+
2008: (OCT, 1),
|
|
232
|
+
2009: (SEP, 20),
|
|
233
|
+
2010: (SEP, 10),
|
|
234
|
+
2011: (AUG, 30),
|
|
235
|
+
2012: (AUG, 19),
|
|
236
|
+
2013: (AUG, 8),
|
|
237
|
+
2014: (JUL, 28),
|
|
238
|
+
2015: (JUL, 17),
|
|
239
|
+
2016: (JUL, 6),
|
|
240
|
+
2017: (JUN, 25),
|
|
241
|
+
2018: (JUN, 15),
|
|
242
|
+
2019: (JUN, 5),
|
|
243
|
+
2020: (MAY, 24),
|
|
244
|
+
2021: (MAY, 13),
|
|
245
|
+
2022: (MAY, 2),
|
|
246
|
+
2023: (APR, 22),
|
|
211
247
|
}
|
|
212
248
|
|
|
213
249
|
HIJRI_NEW_YEAR_DATES = {
|
|
214
|
-
2001: (
|
|
215
|
-
2002: (
|
|
216
|
-
2003: (
|
|
217
|
-
2004: (
|
|
218
|
-
2005: (
|
|
219
|
-
2006: (
|
|
220
|
-
2007: (
|
|
250
|
+
2001: (MAR, 26),
|
|
251
|
+
2002: (MAR, 15),
|
|
252
|
+
2003: (MAR, 5),
|
|
253
|
+
2004: (FEB, 22),
|
|
254
|
+
2005: (FEB, 10),
|
|
255
|
+
2006: (JAN, 31),
|
|
256
|
+
2007: (JAN, 20),
|
|
221
257
|
2008: ((JAN, 10), (DEC, 29)),
|
|
222
|
-
2009: (
|
|
223
|
-
2010: (
|
|
224
|
-
2011: (
|
|
225
|
-
2012: (
|
|
226
|
-
2013: (
|
|
227
|
-
2014: (
|
|
228
|
-
2015: (
|
|
229
|
-
2016: (
|
|
230
|
-
2017: (
|
|
231
|
-
2018: (
|
|
232
|
-
2019: (
|
|
233
|
-
2020: (
|
|
234
|
-
2021: (
|
|
235
|
-
2022: (
|
|
258
|
+
2009: (DEC, 18),
|
|
259
|
+
2010: (DEC, 7),
|
|
260
|
+
2011: (NOV, 27),
|
|
261
|
+
2012: (NOV, 15),
|
|
262
|
+
2013: (NOV, 5),
|
|
263
|
+
2014: (OCT, 25),
|
|
264
|
+
2015: (OCT, 14),
|
|
265
|
+
2016: (OCT, 2),
|
|
266
|
+
2017: (SEP, 21),
|
|
267
|
+
2018: (SEP, 11),
|
|
268
|
+
2019: (SEP, 1),
|
|
269
|
+
2020: (AUG, 20),
|
|
270
|
+
2021: (AUG, 11),
|
|
271
|
+
2022: (JUL, 30),
|
|
236
272
|
}
|
|
237
273
|
|
|
238
274
|
ISRA_AND_MIRAJ_DATES = {
|
|
239
|
-
2001: (
|
|
240
|
-
2002: (
|
|
241
|
-
2003: (
|
|
242
|
-
2004: (
|
|
243
|
-
2005: (
|
|
244
|
-
2006: (
|
|
245
|
-
2007: (
|
|
246
|
-
2008: (
|
|
247
|
-
2009: (
|
|
248
|
-
2010: (
|
|
249
|
-
2011: (
|
|
250
|
-
2012: (
|
|
251
|
-
2013: (
|
|
252
|
-
2014: (
|
|
253
|
-
2015: (
|
|
254
|
-
2016: (
|
|
255
|
-
2017: (
|
|
256
|
-
2018: (
|
|
257
|
-
2019: (
|
|
258
|
-
2020: (
|
|
259
|
-
2021: (
|
|
260
|
-
2022: (
|
|
275
|
+
2001: (OCT, 15),
|
|
276
|
+
2002: (OCT, 4),
|
|
277
|
+
2003: (SEP, 24),
|
|
278
|
+
2004: (SEP, 12),
|
|
279
|
+
2005: (SEP, 1),
|
|
280
|
+
2006: (AUG, 22),
|
|
281
|
+
2007: (AUG, 11),
|
|
282
|
+
2008: (JUL, 31),
|
|
283
|
+
2009: (JUL, 20),
|
|
284
|
+
2010: (JUL, 9),
|
|
285
|
+
2011: (JUN, 29),
|
|
286
|
+
2012: (JUN, 17),
|
|
287
|
+
2013: (JUN, 6),
|
|
288
|
+
2014: (MAY, 27),
|
|
289
|
+
2015: (MAY, 16),
|
|
290
|
+
2016: (MAY, 6),
|
|
291
|
+
2017: (APR, 24),
|
|
292
|
+
2018: (APR, 14),
|
|
293
|
+
2019: (APR, 3),
|
|
294
|
+
2020: (MAR, 22),
|
|
295
|
+
2021: (MAR, 11),
|
|
296
|
+
2022: (FEB, 28),
|
|
261
297
|
}
|
|
262
298
|
|
|
263
299
|
MAWLID_DATES = {
|
|
264
|
-
2006: (
|
|
265
|
-
2007: (
|
|
266
|
-
2008: (
|
|
267
|
-
2009: (
|
|
268
|
-
2010: (
|
|
269
|
-
2011: (
|
|
270
|
-
2012: (
|
|
271
|
-
2013: (
|
|
272
|
-
2014: (
|
|
300
|
+
2006: (APR, 10),
|
|
301
|
+
2007: (MAR, 31),
|
|
302
|
+
2008: (MAR, 20),
|
|
303
|
+
2009: (MAR, 9),
|
|
304
|
+
2010: (FEB, 26),
|
|
305
|
+
2011: (FEB, 15),
|
|
306
|
+
2012: (FEB, 5),
|
|
307
|
+
2013: (JAN, 24),
|
|
308
|
+
2014: (JAN, 14),
|
|
273
309
|
2015: ((JAN, 3), (DEC, 24)),
|
|
274
|
-
2016: (
|
|
275
|
-
2017: (
|
|
276
|
-
2018: (
|
|
277
|
-
2019: (
|
|
278
|
-
2020: (
|
|
279
|
-
2021: (
|
|
280
|
-
2022: (
|
|
310
|
+
2016: (DEC, 12),
|
|
311
|
+
2017: (DEC, 1),
|
|
312
|
+
2018: (NOV, 20),
|
|
313
|
+
2019: (NOV, 9),
|
|
314
|
+
2020: (OCT, 29),
|
|
315
|
+
2021: (OCT, 19),
|
|
316
|
+
2022: (OCT, 8),
|
|
281
317
|
}
|
holidays/countries/ireland.py
CHANGED
|
@@ -27,9 +27,7 @@ class Ireland(HolidayBase):
|
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
country = "IE"
|
|
30
|
-
special_holidays = {
|
|
31
|
-
2022: ((MAR, 18, "Day of Remembrance and Recognition"),)
|
|
32
|
-
}
|
|
30
|
+
special_holidays = {2022: (MAR, 18, "Day of Remembrance and Recognition")}
|
|
33
31
|
|
|
34
32
|
def _populate(self, year):
|
|
35
33
|
super()._populate(year)
|
|
@@ -40,9 +38,7 @@ class Ireland(HolidayBase):
|
|
|
40
38
|
if year >= 2023:
|
|
41
39
|
dt = date(year, FEB, 1)
|
|
42
40
|
self[
|
|
43
|
-
dt
|
|
44
|
-
if self._is_friday(dt)
|
|
45
|
-
else _get_nth_weekday_from(1, MON, dt)
|
|
41
|
+
dt if self._is_friday(dt) else _get_nth_weekday_from(1, MON, dt)
|
|
46
42
|
] = "St. Brigid's Day"
|
|
47
43
|
|
|
48
44
|
# St. Patrick's Day
|
|
@@ -65,19 +61,13 @@ class Ireland(HolidayBase):
|
|
|
65
61
|
self[dt] = name
|
|
66
62
|
|
|
67
63
|
# June bank holiday (first Monday in June)
|
|
68
|
-
self[
|
|
69
|
-
_get_nth_weekday_of_month(1, MON, JUN, year)
|
|
70
|
-
] = "June Bank Holiday"
|
|
64
|
+
self[_get_nth_weekday_of_month(1, MON, JUN, year)] = "June Bank Holiday"
|
|
71
65
|
|
|
72
66
|
# Summer bank holiday (first Monday in August)
|
|
73
|
-
self[
|
|
74
|
-
_get_nth_weekday_of_month(1, MON, AUG, year)
|
|
75
|
-
] = "August Bank Holiday"
|
|
67
|
+
self[_get_nth_weekday_of_month(1, MON, AUG, year)] = "August Bank Holiday"
|
|
76
68
|
|
|
77
69
|
# October Bank Holiday (last Monday in October)
|
|
78
|
-
self[
|
|
79
|
-
_get_nth_weekday_of_month(-1, MON, OCT, year)
|
|
80
|
-
] = "October Bank Holiday"
|
|
70
|
+
self[_get_nth_weekday_of_month(-1, MON, OCT, year)] = "October Bank Holiday"
|
|
81
71
|
|
|
82
72
|
# Christmas Day
|
|
83
73
|
name = "Christmas Day"
|
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
12
|
from datetime import date
|
|
13
|
+
from datetime import timedelta as td
|
|
13
14
|
|
|
14
15
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
15
|
-
from holidays.constants import JUN, JUL, FRI
|
|
16
|
+
from holidays.constants import JUN, JUL, AUG, MON, FRI
|
|
16
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
17
19
|
|
|
18
20
|
from .united_kingdom import UnitedKingdom
|
|
19
21
|
|
|
@@ -24,18 +26,34 @@ class IsleOfMan(UnitedKingdom):
|
|
|
24
26
|
country = "IM"
|
|
25
27
|
subdivisions = () # Override UnitedKingdom subdivisions.
|
|
26
28
|
|
|
27
|
-
def __init__(self, **kwargs): # Override UnitedKingdom __init__().
|
|
28
|
-
|
|
29
|
+
def __init__(self, *args, **kwargs): # Override UnitedKingdom __init__().
|
|
30
|
+
ChristianHolidays.__init__(self)
|
|
31
|
+
InternationalHolidays.__init__(self)
|
|
32
|
+
HolidayBase.__init__(self, *args, **kwargs)
|
|
29
33
|
|
|
30
34
|
def _populate(self, year: int) -> None:
|
|
31
35
|
super()._populate(year)
|
|
32
36
|
|
|
37
|
+
# Easter Monday
|
|
38
|
+
self._add_easter_monday("Easter Monday")
|
|
39
|
+
|
|
40
|
+
# Late Summer bank holiday (last Monday in August)
|
|
41
|
+
if year >= 1971:
|
|
42
|
+
self._add_holiday(
|
|
43
|
+
"Late Summer Bank Holiday",
|
|
44
|
+
_get_nth_weekday_of_month(-1, MON, AUG, year),
|
|
45
|
+
)
|
|
46
|
+
|
|
33
47
|
# Isle of Man exclusive holidays
|
|
34
48
|
# TT bank holiday (first Friday in June)
|
|
35
|
-
self
|
|
49
|
+
self._add_holiday("TT Bank Holiday", _get_nth_weekday_of_month(1, FRI, JUN, year))
|
|
36
50
|
|
|
37
51
|
# Tynwald Day
|
|
38
|
-
|
|
52
|
+
# Move to the next Monday if falls on a weekend.
|
|
53
|
+
dt = date(year, JUL, 5)
|
|
54
|
+
if self._is_weekend(dt) and year >= 1992:
|
|
55
|
+
dt += td(days=+2 if self._is_saturday(dt) else +1)
|
|
56
|
+
self._add_holiday("Tynwald Day", dt)
|
|
39
57
|
|
|
40
58
|
|
|
41
59
|
class IM(IsleOfMan):
|
holidays/countries/israel.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from holidays.calendars import
|
|
15
|
+
from holidays.calendars import _HebrewLunisolar
|
|
16
16
|
from holidays.holiday_base import HolidayBase
|
|
17
17
|
|
|
18
18
|
|
|
@@ -33,18 +33,14 @@ class Israel(HolidayBase):
|
|
|
33
33
|
super()._populate(year)
|
|
34
34
|
|
|
35
35
|
# Passover
|
|
36
|
-
passover_dt =
|
|
36
|
+
passover_dt = _HebrewLunisolar.hebrew_holiday_date(year, "PASSOVER")
|
|
37
37
|
self._add_with_eve("Passover I", passover_dt)
|
|
38
38
|
for offset in range(1, 5):
|
|
39
|
-
self._add_holiday(
|
|
40
|
-
"Passover - Chol HaMoed", passover_dt + td(days=offset)
|
|
41
|
-
)
|
|
39
|
+
self._add_holiday("Passover - Chol HaMoed", passover_dt + td(days=offset))
|
|
42
40
|
self._add_with_eve("Passover VII", passover_dt + td(days=+6))
|
|
43
41
|
|
|
44
42
|
# Memorial Day
|
|
45
|
-
memorial_day_dt =
|
|
46
|
-
year, "MEMORIAL_DAY"
|
|
47
|
-
)
|
|
43
|
+
memorial_day_dt = _HebrewLunisolar.hebrew_holiday_date(year, "MEMORIAL_DAY")
|
|
48
44
|
observed_delta = 0
|
|
49
45
|
if self.observed:
|
|
50
46
|
if self._is_thursday(memorial_day_dt):
|
|
@@ -74,47 +70,39 @@ class Israel(HolidayBase):
|
|
|
74
70
|
self._add_holiday(name, memorial_day_dt + td(days=+1))
|
|
75
71
|
|
|
76
72
|
# Lag Baomer
|
|
77
|
-
lag_baomer_dt =
|
|
78
|
-
year, "LAG_BAOMER"
|
|
79
|
-
)
|
|
73
|
+
lag_baomer_dt = _HebrewLunisolar.hebrew_holiday_date(year, "LAG_BAOMER")
|
|
80
74
|
self._add_holiday("Lag B'Omer", lag_baomer_dt)
|
|
81
75
|
|
|
82
76
|
# Shavuot
|
|
83
|
-
shavuot_dt =
|
|
77
|
+
shavuot_dt = _HebrewLunisolar.hebrew_holiday_date(year, "SHAVUOT")
|
|
84
78
|
self._add_with_eve("Shavuot", shavuot_dt)
|
|
85
79
|
|
|
86
80
|
# Rosh Hashana
|
|
87
|
-
rosh_hashanah_dt =
|
|
88
|
-
year, "ROSH_HASHANAH"
|
|
89
|
-
)
|
|
81
|
+
rosh_hashanah_dt = _HebrewLunisolar.hebrew_holiday_date(year, "ROSH_HASHANAH")
|
|
90
82
|
name = "Rosh Hashanah"
|
|
91
83
|
self._add_with_eve(name, rosh_hashanah_dt)
|
|
92
84
|
self._add_holiday(name, rosh_hashanah_dt + td(days=+1))
|
|
93
85
|
|
|
94
86
|
# Yom Kippur
|
|
95
|
-
yom_kippur_dt =
|
|
96
|
-
year, "YOM_KIPPUR"
|
|
97
|
-
)
|
|
87
|
+
yom_kippur_dt = _HebrewLunisolar.hebrew_holiday_date(year, "YOM_KIPPUR")
|
|
98
88
|
self._add_with_eve("Yom Kippur", yom_kippur_dt)
|
|
99
89
|
|
|
100
90
|
# Sukkot
|
|
101
|
-
sukkot_dt =
|
|
91
|
+
sukkot_dt = _HebrewLunisolar.hebrew_holiday_date(year, "SUKKOT")
|
|
102
92
|
self._add_with_eve("Sukkot I", sukkot_dt)
|
|
103
93
|
for offset in range(1, 6):
|
|
104
|
-
self._add_holiday(
|
|
105
|
-
"Sukkot - Chol HaMoed", sukkot_dt + td(days=offset)
|
|
106
|
-
)
|
|
94
|
+
self._add_holiday("Sukkot - Chol HaMoed", sukkot_dt + td(days=offset))
|
|
107
95
|
self._add_with_eve("Sukkot VII", sukkot_dt + td(days=+7))
|
|
108
96
|
|
|
109
97
|
# Hanukkah
|
|
110
98
|
# Some o prior's year Hannukah may fall in current year.
|
|
111
99
|
for yr in (year - 1, year):
|
|
112
|
-
hanukkah_dt =
|
|
100
|
+
hanukkah_dt = _HebrewLunisolar.hebrew_holiday_date(yr, "HANUKKAH")
|
|
113
101
|
for offset in range(8):
|
|
114
102
|
self._add_holiday("Hanukkah", hanukkah_dt + td(days=offset))
|
|
115
103
|
|
|
116
104
|
# Purim
|
|
117
|
-
purim_dt =
|
|
105
|
+
purim_dt = _HebrewLunisolar.hebrew_holiday_date(year, "PURIM")
|
|
118
106
|
self._add_with_eve("Purim", purim_dt)
|
|
119
107
|
self._add_holiday("Shushan Purim", purim_dt + td(days=+1))
|
|
120
108
|
|
holidays/countries/italy.py
CHANGED
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
16
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
17
|
-
from holidays.constants import OCT, NOV, DEC, TUE, SUN
|
|
16
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TUE, SUN
|
|
18
17
|
from holidays.holiday_base import HolidayBase
|
|
19
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
@@ -275,7 +274,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
275
274
|
self._add_holiday("San Saturnino di Cagliari", OCT, 30)
|
|
276
275
|
|
|
277
276
|
def _add_subdiv_cb_holidays(self):
|
|
278
|
-
self.
|
|
277
|
+
self._add_saint_georges_day("San Giorgio")
|
|
279
278
|
|
|
280
279
|
def _add_subdiv_ce_holidays(self):
|
|
281
280
|
self._add_holiday("San Sebastiano", JAN, 20)
|
|
@@ -312,7 +311,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
312
311
|
self._add_saint_johns_day("San Giovanni Battista")
|
|
313
312
|
|
|
314
313
|
def _add_subdiv_fe_holidays(self):
|
|
315
|
-
self.
|
|
314
|
+
self._add_saint_georges_day("San Giorgio")
|
|
316
315
|
|
|
317
316
|
def _add_subdiv_fg_holidays(self):
|
|
318
317
|
self._add_holiday("Madonna dei Sette Veli", MAR, 22)
|
|
@@ -428,7 +427,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
428
427
|
self._add_holiday("Sant'Ilario di Poitiers", JAN, 13)
|
|
429
428
|
|
|
430
429
|
def _add_subdiv_pt_holidays(self):
|
|
431
|
-
self.
|
|
430
|
+
self._add_saint_james_day("San Jacopo")
|
|
432
431
|
|
|
433
432
|
def _add_subdiv_pu_holidays(self):
|
|
434
433
|
self._add_holiday("San Crescentino", JUN, 1)
|
|
@@ -444,13 +443,13 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
444
443
|
self._add_holiday("Sant'Apollinare", JUL, 23)
|
|
445
444
|
|
|
446
445
|
def _add_subdiv_rc_holidays(self):
|
|
447
|
-
self.
|
|
446
|
+
self._add_saint_georges_day("San Giorgio")
|
|
448
447
|
|
|
449
448
|
def _add_subdiv_re_holidays(self):
|
|
450
449
|
self._add_holiday("San Prospero Vescovo", NOV, 24)
|
|
451
450
|
|
|
452
451
|
def _add_subdiv_rg_holidays(self):
|
|
453
|
-
self.
|
|
452
|
+
self._add_saint_georges_day("San Giorgio")
|
|
454
453
|
|
|
455
454
|
def _add_subdiv_ri_holidays(self):
|
|
456
455
|
self._add_holiday("Santa Barbara", DEC, 4)
|
holidays/countries/jamaica.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from holidays.calendars import
|
|
15
|
+
from holidays.calendars import _get_nth_weekday_of_month
|
|
16
16
|
from holidays.constants import MAY, AUG, OCT, MON
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
@@ -31,16 +31,14 @@ class Jamaica(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
31
31
|
InternationalHolidays.__init__(self)
|
|
32
32
|
super().__init__(*args, **kwargs)
|
|
33
33
|
|
|
34
|
-
def _add_observed(self,
|
|
34
|
+
def _add_observed(self, dt: date, include_sat: bool = False, days: int = +1) -> None:
|
|
35
35
|
if not self.observed:
|
|
36
36
|
return None
|
|
37
|
-
if self._is_sunday(
|
|
38
|
-
self.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
obs_date += td(days=+1)
|
|
43
|
-
self._add_holiday("%s (Observed)" % self[hol_date], obs_date)
|
|
37
|
+
if self._is_sunday(dt) or (include_sat and self._is_saturday(dt)):
|
|
38
|
+
self._add_holiday(
|
|
39
|
+
"%s (Observed)" % self[dt],
|
|
40
|
+
dt + td(days=+2 if self._is_saturday(dt) else days),
|
|
41
|
+
)
|
|
44
42
|
|
|
45
43
|
def _populate(self, year):
|
|
46
44
|
super()._populate(year)
|
|
@@ -58,9 +56,7 @@ class Jamaica(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
58
56
|
self._add_easter_monday("Easter Monday")
|
|
59
57
|
|
|
60
58
|
# National Labour Day
|
|
61
|
-
self._add_observed(
|
|
62
|
-
self._add_holiday("National Labour Day", MAY, 23), include_sat=True
|
|
63
|
-
)
|
|
59
|
+
self._add_observed(self._add_holiday("National Labour Day", MAY, 23), include_sat=True)
|
|
64
60
|
|
|
65
61
|
# Emancipation Day
|
|
66
62
|
if year >= 1998:
|
|
@@ -70,18 +66,14 @@ class Jamaica(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
70
66
|
self._add_observed(self._add_holiday("Independence Day", AUG, 6))
|
|
71
67
|
|
|
72
68
|
# National Heroes Day
|
|
73
|
-
self._add_holiday(
|
|
74
|
-
"National Heroes Day", _get_nth_weekday_of_month(3, MON, OCT, year)
|
|
75
|
-
)
|
|
69
|
+
self._add_holiday("National Heroes Day", _get_nth_weekday_of_month(3, MON, OCT, year))
|
|
76
70
|
|
|
77
71
|
# Christmas Day
|
|
78
|
-
|
|
72
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
79
73
|
|
|
80
74
|
# Boxing Day
|
|
81
75
|
self._add_observed(self._add_christmas_day_two("Boxing Day"))
|
|
82
76
|
|
|
83
|
-
self._add_observed(dt)
|
|
84
|
-
|
|
85
77
|
|
|
86
78
|
class JM(Jamaica):
|
|
87
79
|
pass
|