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/australia.py
CHANGED
|
@@ -13,8 +13,7 @@ from datetime import date
|
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
|
|
16
|
-
from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV
|
|
17
|
-
from holidays.constants import MON, TUE, FRI
|
|
16
|
+
from holidays.constants import JAN, MAR, APR, MAY, JUN, AUG, SEP, OCT, NOV, MON, TUE, FRI
|
|
18
17
|
from holidays.holiday_base import HolidayBase
|
|
19
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
@@ -42,14 +41,14 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
42
41
|
InternationalHolidays.__init__(self)
|
|
43
42
|
super().__init__(*args, **kwargs)
|
|
44
43
|
|
|
45
|
-
def _add_observed(self, dt: date, include_sat: bool = True) -> None:
|
|
44
|
+
def _add_observed(self, dt: date, include_sat: bool = True, days: int = +1) -> None:
|
|
46
45
|
if not self.observed:
|
|
47
46
|
return None
|
|
48
|
-
if self._is_sunday(dt) or (self._is_saturday(dt)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
if self._is_sunday(dt) or (include_sat and self._is_saturday(dt)):
|
|
48
|
+
self._add_holiday(
|
|
49
|
+
"%s (Observed)" % self[dt],
|
|
50
|
+
dt + td(days=+2 if self._is_saturday(dt) else days),
|
|
51
|
+
)
|
|
53
52
|
|
|
54
53
|
def _populate(self, year):
|
|
55
54
|
super()._populate(year)
|
|
@@ -83,11 +82,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
83
82
|
# Sovereign's Birthday
|
|
84
83
|
def _add_sovereign_birthday(self, dt: date) -> None:
|
|
85
84
|
if self._year >= 1936:
|
|
86
|
-
name =
|
|
87
|
-
"Queen's Birthday"
|
|
88
|
-
if 1952 <= self._year <= 2022
|
|
89
|
-
else "King's Birthday"
|
|
90
|
-
)
|
|
85
|
+
name = "Queen's Birthday" if 1952 <= self._year <= 2022 else "King's Birthday"
|
|
91
86
|
self._add_holiday(name, dt)
|
|
92
87
|
|
|
93
88
|
def _add_subdiv_holidays(self):
|
|
@@ -109,16 +104,16 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
109
104
|
self._add_holiday("Anzac Day", APR, 25)
|
|
110
105
|
|
|
111
106
|
# Christmas Day
|
|
112
|
-
|
|
107
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
113
108
|
|
|
114
109
|
# Boxing Day
|
|
115
|
-
|
|
116
|
-
|
|
110
|
+
self._add_observed(
|
|
111
|
+
self._add_christmas_day_two(
|
|
112
|
+
"Proclamation Day" if self.subdiv == "SA" else "Boxing Day"
|
|
113
|
+
),
|
|
114
|
+
days=+2,
|
|
117
115
|
)
|
|
118
116
|
|
|
119
|
-
self._add_observed(dec_25)
|
|
120
|
-
self._add_observed(dec_26)
|
|
121
|
-
|
|
122
117
|
super()._add_subdiv_holidays()
|
|
123
118
|
|
|
124
119
|
def _add_subdiv_act_holidays(self):
|
|
@@ -127,14 +122,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
127
122
|
self._add_easter_sunday("Easter Sunday")
|
|
128
123
|
|
|
129
124
|
# Labour Day
|
|
130
|
-
self._add_holiday(
|
|
131
|
-
"Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
|
|
132
|
-
)
|
|
125
|
+
self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
|
|
133
126
|
|
|
134
127
|
# Sovereign's Birthday
|
|
135
|
-
self._add_sovereign_birthday(
|
|
136
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
137
|
-
)
|
|
128
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
138
129
|
|
|
139
130
|
# Anzac Day
|
|
140
131
|
if self._year >= 1921:
|
|
@@ -170,9 +161,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
170
161
|
2016: date(2016, SEP, 26),
|
|
171
162
|
2017: date(2017, SEP, 25),
|
|
172
163
|
}
|
|
173
|
-
dt = fc_dates.get(
|
|
174
|
-
self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year)
|
|
175
|
-
)
|
|
164
|
+
dt = fc_dates.get(self._year, _get_nth_weekday_of_month(1, TUE, NOV, self._year))
|
|
176
165
|
self._add_holiday("Family & Community Day", dt)
|
|
177
166
|
|
|
178
167
|
# Reconciliation Day
|
|
@@ -188,14 +177,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
188
177
|
self._add_easter_sunday("Easter Sunday")
|
|
189
178
|
|
|
190
179
|
# Labour Day
|
|
191
|
-
self._add_holiday(
|
|
192
|
-
"Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
|
|
193
|
-
)
|
|
180
|
+
self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
|
|
194
181
|
|
|
195
182
|
# Sovereign's Birthday
|
|
196
|
-
self._add_sovereign_birthday(
|
|
197
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
198
|
-
)
|
|
183
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
199
184
|
|
|
200
185
|
# Bank Holiday
|
|
201
186
|
if self._year >= 1912:
|
|
@@ -209,23 +194,17 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
209
194
|
self._add_holy_saturday("Easter Saturday")
|
|
210
195
|
|
|
211
196
|
# Labour Day
|
|
212
|
-
self._add_holiday(
|
|
213
|
-
"May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year)
|
|
214
|
-
)
|
|
197
|
+
self._add_holiday("May Day", _get_nth_weekday_of_month(1, MON, MAY, self._year))
|
|
215
198
|
|
|
216
199
|
# Sovereign's Birthday
|
|
217
|
-
self._add_sovereign_birthday(
|
|
218
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
219
|
-
)
|
|
200
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
220
201
|
|
|
221
202
|
# Anzac Day
|
|
222
203
|
if self._year >= 1921:
|
|
223
204
|
self._add_observed(date(self._year, APR, 25))
|
|
224
205
|
|
|
225
206
|
# Picnic Day
|
|
226
|
-
self._add_holiday(
|
|
227
|
-
"Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year)
|
|
228
|
-
)
|
|
207
|
+
self._add_holiday("Picnic Day", _get_nth_weekday_of_month(1, MON, AUG, self._year))
|
|
229
208
|
|
|
230
209
|
def _add_subdiv_qld_holidays(self):
|
|
231
210
|
# Easter
|
|
@@ -265,8 +244,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
265
244
|
}
|
|
266
245
|
dt = ekka_dates.get(
|
|
267
246
|
self._year,
|
|
268
|
-
_get_nth_weekday_from(1, FRI, date(self._year, AUG, 5))
|
|
269
|
-
+ td(days=+5),
|
|
247
|
+
_get_nth_weekday_from(1, FRI, date(self._year, AUG, 5)) + td(days=+5),
|
|
270
248
|
)
|
|
271
249
|
self._add_holiday("The Royal Queensland Show", dt)
|
|
272
250
|
|
|
@@ -275,14 +253,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
275
253
|
self._add_holy_saturday("Easter Saturday")
|
|
276
254
|
|
|
277
255
|
# Labour Day
|
|
278
|
-
self._add_holiday(
|
|
279
|
-
"Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year)
|
|
280
|
-
)
|
|
256
|
+
self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, OCT, self._year))
|
|
281
257
|
|
|
282
258
|
# Sovereign's Birthday
|
|
283
|
-
self._add_sovereign_birthday(
|
|
284
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
285
|
-
)
|
|
259
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
286
260
|
|
|
287
261
|
# Anzac Day
|
|
288
262
|
if self._year >= 1921:
|
|
@@ -291,9 +265,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
291
265
|
# Adelaide Cup
|
|
292
266
|
self._add_holiday(
|
|
293
267
|
"Adelaide Cup",
|
|
294
|
-
_get_nth_weekday_of_month(
|
|
295
|
-
2 if self._year >= 2006 else 3, MON, MAR, self._year
|
|
296
|
-
),
|
|
268
|
+
_get_nth_weekday_of_month(2 if self._year >= 2006 else 3, MON, MAR, self._year),
|
|
297
269
|
)
|
|
298
270
|
|
|
299
271
|
def _add_subdiv_tas_holidays(self):
|
|
@@ -304,9 +276,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
304
276
|
)
|
|
305
277
|
|
|
306
278
|
# Sovereign's Birthday
|
|
307
|
-
self._add_sovereign_birthday(
|
|
308
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
309
|
-
)
|
|
279
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
310
280
|
|
|
311
281
|
def _add_subdiv_vic_holidays(self):
|
|
312
282
|
# Easter
|
|
@@ -320,9 +290,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
320
290
|
)
|
|
321
291
|
|
|
322
292
|
# Sovereign's Birthday
|
|
323
|
-
self._add_sovereign_birthday(
|
|
324
|
-
_get_nth_weekday_of_month(2, MON, JUN, self._year)
|
|
325
|
-
)
|
|
293
|
+
self._add_sovereign_birthday(_get_nth_weekday_of_month(2, MON, JUN, self._year))
|
|
326
294
|
|
|
327
295
|
# Melbourne Cup
|
|
328
296
|
self._add_holiday(
|
|
@@ -347,14 +315,10 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
347
315
|
|
|
348
316
|
def _add_subdiv_wa_holidays(self):
|
|
349
317
|
# Labour Day
|
|
350
|
-
self._add_holiday(
|
|
351
|
-
"Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year)
|
|
352
|
-
)
|
|
318
|
+
self._add_holiday("Labour Day", _get_nth_weekday_of_month(1, MON, MAR, self._year))
|
|
353
319
|
|
|
354
320
|
# Sovereign's Birthday
|
|
355
|
-
self._add_sovereign_birthday(
|
|
356
|
-
_get_nth_weekday_from(-1, MON, date(self._year, OCT, 1))
|
|
357
|
-
)
|
|
321
|
+
self._add_sovereign_birthday(_get_nth_weekday_from(-1, MON, date(self._year, OCT, 1)))
|
|
358
322
|
|
|
359
323
|
# Anzac Day
|
|
360
324
|
if self._year >= 1921:
|
|
@@ -363,9 +327,7 @@ class Australia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
363
327
|
# Western Australia Day
|
|
364
328
|
if self._year >= 1833:
|
|
365
329
|
self._add_holiday(
|
|
366
|
-
"Western Australia Day"
|
|
367
|
-
if self._year >= 2015
|
|
368
|
-
else "Foundation Day",
|
|
330
|
+
"Western Australia Day" if self._year >= 2015 else "Foundation Day",
|
|
369
331
|
_get_nth_weekday_of_month(1, MON, JUN, self._year),
|
|
370
332
|
)
|
|
371
333
|
|
holidays/countries/austria.py
CHANGED
|
@@ -19,6 +19,7 @@ from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
|
19
19
|
class Austria(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
20
20
|
country = "AT"
|
|
21
21
|
default_language = "de"
|
|
22
|
+
supported_languages = ("de", "en_US", "uk")
|
|
22
23
|
subdivisions = ("1", "2", "3", "4", "5", "6", "7", "8", "9")
|
|
23
24
|
|
|
24
25
|
def __init__(self, *args, **kwargs) -> None:
|
holidays/countries/azerbaijan.py
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from holidays.
|
|
16
|
-
from holidays.constants import NOV, DEC
|
|
15
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
16
|
+
from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
18
|
from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
|
|
19
19
|
|
|
@@ -27,7 +27,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
27
27
|
|
|
28
28
|
def __init__(self, *args, **kwargs):
|
|
29
29
|
InternationalHolidays.__init__(self)
|
|
30
|
-
IslamicHolidays.__init__(self)
|
|
30
|
+
IslamicHolidays.__init__(self, calendar=AzerbaijanIslamicCalendar())
|
|
31
31
|
super().__init__(*args, **kwargs)
|
|
32
32
|
|
|
33
33
|
def _populate(self, year):
|
|
@@ -72,9 +72,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
72
72
|
observed_dates.add(self._add_holiday("Novruz", MAR, d))
|
|
73
73
|
|
|
74
74
|
# Victory Day
|
|
75
|
-
observed_dates.add(
|
|
76
|
-
self._add_world_war_two_victory_day("Victory Day over Fascism")
|
|
77
|
-
)
|
|
75
|
+
observed_dates.add(self._add_world_war_two_victory_day("Victory Day over Fascism"))
|
|
78
76
|
|
|
79
77
|
# Republic Day
|
|
80
78
|
if year >= 1992:
|
|
@@ -88,9 +86,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
88
86
|
|
|
89
87
|
# National Salvation Day
|
|
90
88
|
if year >= 1997:
|
|
91
|
-
observed_dates.add(
|
|
92
|
-
self._add_holiday("National Salvation Day", JUN, 15)
|
|
93
|
-
)
|
|
89
|
+
observed_dates.add(self._add_holiday("National Salvation Day", JUN, 15))
|
|
94
90
|
|
|
95
91
|
# Memorial Day (without extending)
|
|
96
92
|
if year >= 2021:
|
|
@@ -122,67 +118,13 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
122
118
|
self._add_new_years_eve(solidarity_name)
|
|
123
119
|
|
|
124
120
|
if year >= 1993:
|
|
125
|
-
dates_obs = {
|
|
126
|
-
2011: ((AUG, 30),),
|
|
127
|
-
2012: ((AUG, 19),),
|
|
128
|
-
2013: ((AUG, 8),),
|
|
129
|
-
2014: ((JUL, 28),),
|
|
130
|
-
2015: ((JUL, 17),),
|
|
131
|
-
2016: ((JUL, 6),),
|
|
132
|
-
2017: ((JUN, 26),),
|
|
133
|
-
2018: ((JUN, 15),),
|
|
134
|
-
2019: ((JUN, 5),),
|
|
135
|
-
2020: ((MAY, 24),),
|
|
136
|
-
2021: ((MAY, 13),),
|
|
137
|
-
2022: ((MAY, 2),),
|
|
138
|
-
2023: ((APR, 21),),
|
|
139
|
-
}
|
|
140
121
|
name = "Ramazan Bayrami"
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
dt = self._add_holiday(name, *date_obs)
|
|
144
|
-
observed_dates.add(dt)
|
|
145
|
-
observed_dates.add(
|
|
146
|
-
self._add_holiday(name, dt + td(days=+1))
|
|
147
|
-
)
|
|
148
|
-
else:
|
|
149
|
-
observed_dates.update(
|
|
150
|
-
self._add_eid_al_fitr_day(f"{name}* (*estimated)")
|
|
151
|
-
)
|
|
152
|
-
observed_dates.update(
|
|
153
|
-
self._add_eid_al_fitr_day_two(f"{name}* (*estimated)")
|
|
154
|
-
)
|
|
122
|
+
observed_dates.update(self._add_eid_al_fitr_day(name))
|
|
123
|
+
observed_dates.update(self._add_eid_al_fitr_day_two(name))
|
|
155
124
|
|
|
156
|
-
dates_obs = {
|
|
157
|
-
2011: ((NOV, 6),),
|
|
158
|
-
2012: ((OCT, 25),),
|
|
159
|
-
2013: ((OCT, 15),),
|
|
160
|
-
2014: ((OCT, 4),),
|
|
161
|
-
2015: ((SEP, 24),),
|
|
162
|
-
2016: ((SEP, 12),),
|
|
163
|
-
2017: ((SEP, 1),),
|
|
164
|
-
2018: ((AUG, 22),),
|
|
165
|
-
2019: ((AUG, 12),),
|
|
166
|
-
2020: ((JUL, 31),),
|
|
167
|
-
2021: ((JUL, 20),),
|
|
168
|
-
2022: ((JUL, 9),),
|
|
169
|
-
2023: ((JUN, 28),),
|
|
170
|
-
}
|
|
171
125
|
name = "Gurban Bayrami"
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
dt = self._add_holiday(name, *date_obs)
|
|
175
|
-
observed_dates.add(dt)
|
|
176
|
-
observed_dates.add(
|
|
177
|
-
self._add_holiday(name, dt + td(days=+1))
|
|
178
|
-
)
|
|
179
|
-
else:
|
|
180
|
-
observed_dates.update(
|
|
181
|
-
self._add_eid_al_adha_day(f"{name}* (*estimated)")
|
|
182
|
-
)
|
|
183
|
-
observed_dates.update(
|
|
184
|
-
self._add_eid_al_adha_day_two(f"{name}* (*estimated)")
|
|
185
|
-
)
|
|
126
|
+
observed_dates.update(self._add_eid_al_adha_day(name))
|
|
127
|
+
observed_dates.update(self._add_eid_al_adha_day_two(name))
|
|
186
128
|
|
|
187
129
|
# Article 105 of the Labor Code of the Republic of Azerbaijan states:
|
|
188
130
|
# 5. If interweekly rest days and holidays that are not considered
|
|
@@ -212,10 +154,7 @@ class Azerbaijan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
212
154
|
# 6. If the holidays of Qurban and Ramadan coincide with
|
|
213
155
|
# another holiday that is not considered a working day,
|
|
214
156
|
# the next working day is considered a rest day.
|
|
215
|
-
elif (
|
|
216
|
-
len(self.get_list(hol_date)) > 1
|
|
217
|
-
and hol_date not in non_observed_dates
|
|
218
|
-
):
|
|
157
|
+
elif len(self.get_list(hol_date)) > 1 and hol_date not in non_observed_dates:
|
|
219
158
|
for hol_name in self.get_list(hol_date):
|
|
220
159
|
if "Bayrami" in hol_name:
|
|
221
160
|
_add_observed(hol_date, hol_name)
|
|
@@ -227,3 +166,37 @@ class AZ(Azerbaijan):
|
|
|
227
166
|
|
|
228
167
|
class AZE(Azerbaijan):
|
|
229
168
|
pass
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class AzerbaijanIslamicCalendar(_CustomIslamicCalendar):
|
|
172
|
+
EID_AL_ADHA_DATES = {
|
|
173
|
+
2011: (NOV, 6),
|
|
174
|
+
2012: (OCT, 25),
|
|
175
|
+
2013: (OCT, 15),
|
|
176
|
+
2014: (OCT, 4),
|
|
177
|
+
2015: (SEP, 24),
|
|
178
|
+
2016: (SEP, 12),
|
|
179
|
+
2017: (SEP, 1),
|
|
180
|
+
2018: (AUG, 22),
|
|
181
|
+
2019: (AUG, 12),
|
|
182
|
+
2020: (JUL, 31),
|
|
183
|
+
2021: (JUL, 20),
|
|
184
|
+
2022: (JUL, 9),
|
|
185
|
+
2023: (JUN, 28),
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
EID_AL_FITR_DATES = {
|
|
189
|
+
2011: (AUG, 30),
|
|
190
|
+
2012: (AUG, 19),
|
|
191
|
+
2013: (AUG, 8),
|
|
192
|
+
2014: (JUL, 28),
|
|
193
|
+
2015: (JUL, 17),
|
|
194
|
+
2016: (JUL, 6),
|
|
195
|
+
2017: (JUN, 26),
|
|
196
|
+
2018: (JUN, 15),
|
|
197
|
+
2019: (JUN, 5),
|
|
198
|
+
2020: (MAY, 24),
|
|
199
|
+
2021: (MAY, 13),
|
|
200
|
+
2022: (MAY, 2),
|
|
201
|
+
2023: (APR, 21),
|
|
202
|
+
}
|
holidays/countries/bahrain.py
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
|
-
from holidays.calendars import
|
|
12
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
13
13
|
from holidays.constants import FRI, SAT, MAY, JUL, AUG, OCT, DEC
|
|
14
14
|
from holidays.holiday_base import HolidayBase
|
|
15
15
|
from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
|
|
@@ -79,23 +79,23 @@ class BAH(Bahrain):
|
|
|
79
79
|
pass
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
class BahrainIslamicCalendar(
|
|
82
|
+
class BahrainIslamicCalendar(_CustomIslamicCalendar):
|
|
83
83
|
ASHURA_DATES = {
|
|
84
|
-
2022: (
|
|
84
|
+
2022: (AUG, 8),
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
EID_AL_ADHA = {
|
|
88
|
-
2022: (
|
|
88
|
+
2022: (JUL, 9),
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
EID_AL_FITR_DATES = {
|
|
92
|
-
2022: (
|
|
92
|
+
2022: (MAY, 2),
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
HIJRI_NEW_YEAR_DATES = {
|
|
96
|
-
2022: (
|
|
96
|
+
2022: (JUL, 30),
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
MAWLID_DATES = {
|
|
100
|
-
2022: (
|
|
100
|
+
2022: (OCT, 8),
|
|
101
101
|
}
|
holidays/countries/bangladesh.py
CHANGED
|
@@ -31,9 +31,7 @@ class Bangladesh(HolidayBase):
|
|
|
31
31
|
self[date(year, FEB, 21)] = "International Mother's language Day"
|
|
32
32
|
|
|
33
33
|
# 17th March
|
|
34
|
-
self[date(year, MAR, 17)] =
|
|
35
|
-
"Sheikh Mujibur Rahman's Birthday " "and Children's Day"
|
|
36
|
-
)
|
|
34
|
+
self[date(year, MAR, 17)] = "Sheikh Mujibur Rahman's Birthday and Children's Day"
|
|
37
35
|
|
|
38
36
|
# 26th March
|
|
39
37
|
self[date(year, MAR, 26)] = "Independence Day"
|
holidays/countries/belarus.py
CHANGED
|
@@ -28,6 +28,7 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
28
28
|
|
|
29
29
|
country = "BY"
|
|
30
30
|
default_language = "be"
|
|
31
|
+
supported_languages = ("be", "en_US")
|
|
31
32
|
|
|
32
33
|
def __init__(self, *args, **kwargs):
|
|
33
34
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
@@ -51,9 +52,7 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
51
52
|
self._add_new_years_day_two(tr("Новы год"))
|
|
52
53
|
|
|
53
54
|
# Orthodox Christmas Day.
|
|
54
|
-
self._add_christmas_day(
|
|
55
|
-
tr("Нараджэнне Хрыстова (праваслаўнае Раство)")
|
|
56
|
-
)
|
|
55
|
+
self._add_christmas_day(tr("Нараджэнне Хрыстова (праваслаўнае Раство)"))
|
|
57
56
|
|
|
58
57
|
# Women's Day.
|
|
59
58
|
self._add_womens_day(tr("Дзень жанчын"))
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# python-holidays
|
|
2
|
+
# ---------------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
8
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
9
|
+
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
|
+
# License: MIT (see LICENSE file)
|
|
11
|
+
|
|
12
|
+
from datetime import date
|
|
13
|
+
from datetime import timedelta as td
|
|
14
|
+
from typing import Optional
|
|
15
|
+
|
|
16
|
+
from holidays.calendars import _get_nth_weekday_from
|
|
17
|
+
from holidays.constants import JAN, MAR, MAY, AUG, SEP, OCT, NOV, MON
|
|
18
|
+
from holidays.holiday_base import HolidayBase
|
|
19
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
23
|
+
"""
|
|
24
|
+
References:
|
|
25
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Belize
|
|
26
|
+
- http://www.belizelaw.org/web/lawadmin/PDF%20files/cap289.pdf
|
|
27
|
+
- https://www.pressoffice.gov.bz/public-and-bank-holidays-2022-updated/
|
|
28
|
+
- https://www.pressoffice.gov.bz/government-of-belize-establishes-new-public-and-bank-holidays/ # noqa: E501
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
country = "BZ"
|
|
32
|
+
|
|
33
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
34
|
+
ChristianHolidays.__init__(self)
|
|
35
|
+
InternationalHolidays.__init__(self)
|
|
36
|
+
super().__init__(*args, **kwargs)
|
|
37
|
+
|
|
38
|
+
def _add_movable_holiday(self, *args) -> None:
|
|
39
|
+
# Chapter 289 of the laws of Belize states that if the holiday falls
|
|
40
|
+
# on a Sunday or a Friday, the following Monday is observed as public
|
|
41
|
+
# holiday; further, if the holiday falls on a Tuesday, Wednesday or
|
|
42
|
+
# Thursday, the preceding Monday is observed as public holiday
|
|
43
|
+
name, dt = self._parse_holiday(*args)
|
|
44
|
+
if self.observed:
|
|
45
|
+
if self._is_friday(dt) or self._is_sunday(dt):
|
|
46
|
+
dt = _get_nth_weekday_from(1, MON, dt)
|
|
47
|
+
name = "%s (Observed)" % name
|
|
48
|
+
elif self._is_tuesday(dt) or self._is_wednesday(dt) or self._is_thursday(dt):
|
|
49
|
+
dt = _get_nth_weekday_from(-1, MON, dt)
|
|
50
|
+
name = "%s (Observed)" % name
|
|
51
|
+
self._add_holiday(name, dt)
|
|
52
|
+
|
|
53
|
+
def _add_holiday(self, *args) -> Optional[date]:
|
|
54
|
+
# Chapter 289 of the laws of Belize states that if the holiday falls
|
|
55
|
+
# on a Sunday, the following Monday is observed as public holiday
|
|
56
|
+
name, dt = self._parse_holiday(*args)
|
|
57
|
+
if self.observed and self._is_sunday(dt) and dt + td(days=+1) not in self:
|
|
58
|
+
name = "%s (Observed)" % name
|
|
59
|
+
dt += td(days=+1)
|
|
60
|
+
return super()._add_holiday(name, dt)
|
|
61
|
+
|
|
62
|
+
def _populate(self, year: int) -> None:
|
|
63
|
+
# Belize was granted independence on 21.09.1981.
|
|
64
|
+
if year <= 1981:
|
|
65
|
+
return None
|
|
66
|
+
super()._populate(year)
|
|
67
|
+
|
|
68
|
+
# New Year's Day.
|
|
69
|
+
self._add_new_years_day("New Year's Day")
|
|
70
|
+
|
|
71
|
+
if year >= 2021:
|
|
72
|
+
# George Price Day.
|
|
73
|
+
self._add_holiday("George Price Day", JAN, 15)
|
|
74
|
+
|
|
75
|
+
# National Heroes and Benefactors Day.
|
|
76
|
+
self._add_movable_holiday("National Heroes and Benefactors Day", MAR, 9)
|
|
77
|
+
|
|
78
|
+
# Good Friday.
|
|
79
|
+
self._add_good_friday("Good Friday")
|
|
80
|
+
|
|
81
|
+
# Holy Saturday.
|
|
82
|
+
self._add_holy_saturday("Holy Saturday")
|
|
83
|
+
|
|
84
|
+
# Easter Monday.
|
|
85
|
+
self._add_easter_monday("Easter Monday")
|
|
86
|
+
|
|
87
|
+
# Labour Day.
|
|
88
|
+
self._add_labor_day("Labour Day")
|
|
89
|
+
|
|
90
|
+
if year <= 2021:
|
|
91
|
+
# Commonwealth Day.
|
|
92
|
+
self._add_movable_holiday("Commonwealth Day", MAY, 24)
|
|
93
|
+
|
|
94
|
+
if year >= 2021:
|
|
95
|
+
# Emancipation Day.
|
|
96
|
+
self._add_movable_holiday("Emancipation Day", AUG, 1)
|
|
97
|
+
|
|
98
|
+
# Saint George's Caye Day.
|
|
99
|
+
self._add_holiday("Saint George's Caye Day", SEP, 10)
|
|
100
|
+
|
|
101
|
+
# Independence Day.
|
|
102
|
+
self._add_holiday("Independence Day", SEP, 21)
|
|
103
|
+
|
|
104
|
+
# Indigenous Peoples' Resistance Day / Pan American Day.
|
|
105
|
+
self._add_movable_holiday(
|
|
106
|
+
"Indigenous Peoples' Resistance Day" if year >= 2021 else "Pan American Day",
|
|
107
|
+
date(year, OCT, 12),
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
# Garifuna Settlement Day.
|
|
111
|
+
self._add_holiday("Garifuna Settlement Day", NOV, 19)
|
|
112
|
+
|
|
113
|
+
# Populated before Christmas for right obvserved Christmas calculation
|
|
114
|
+
# (if Christmas falls on Sunday, there should be no observed Christmas
|
|
115
|
+
# on Monday)
|
|
116
|
+
# Boxing Day.
|
|
117
|
+
self._add_christmas_day_two("Boxing Day")
|
|
118
|
+
|
|
119
|
+
# Christmas Day.
|
|
120
|
+
self._add_christmas_day("Christmas Day")
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class BZ(Belize):
|
|
124
|
+
pass
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class BLZ(Belize):
|
|
128
|
+
pass
|
holidays/countries/bolivia.py
CHANGED
|
@@ -51,9 +51,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
51
51
|
|
|
52
52
|
# Plurinational State Foundation Day.
|
|
53
53
|
if year >= 2010:
|
|
54
|
-
self._add_holiday(
|
|
55
|
-
"Nacimiento del Estado Plurinacional de Bolivia", JAN, 22
|
|
56
|
-
)
|
|
54
|
+
self._add_holiday("Nacimiento del Estado Plurinacional de Bolivia", JAN, 22)
|
|
57
55
|
|
|
58
56
|
# Carnival.
|
|
59
57
|
name = "Feriado por Carnaval"
|
|
@@ -115,9 +113,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
115
113
|
|
|
116
114
|
def _add_subdiv_o_holidays(self):
|
|
117
115
|
# Carnival in Oruro.
|
|
118
|
-
self._add_holiday(
|
|
119
|
-
"Carnaval de Oruro", self._easter_sunday + td(days=-51)
|
|
120
|
-
)
|
|
116
|
+
self._add_holiday("Carnaval de Oruro", self._easter_sunday + td(days=-51))
|
|
121
117
|
|
|
122
118
|
def _add_subdiv_s_holidays(self):
|
|
123
119
|
# Santa Cruz Day.
|
|
@@ -15,13 +15,10 @@ from datetime import timedelta as td
|
|
|
15
15
|
from holidays.calendars import GREGORIAN_CALENDAR, JULIAN_CALENDAR
|
|
16
16
|
from holidays.constants import JAN, MAR, NOV
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
-
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
|
|
19
|
-
from holidays.holiday_groups import InternationalHolidays
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class BosniaAndHerzegovina(
|
|
23
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
24
|
-
):
|
|
21
|
+
class BosniaAndHerzegovina(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
25
22
|
"""
|
|
26
23
|
https://en.wikipedia.org/wiki/Public_holidays_in_Bosnia_and_Herzegovina
|
|
27
24
|
https://www.paragraf.ba/neradni-dani-fbih.html
|
|
@@ -59,9 +56,7 @@ class BosniaAndHerzegovina(
|
|
|
59
56
|
self._add_holiday("Treći dan Dana rada", may_1 + td(days=+2))
|
|
60
57
|
|
|
61
58
|
# Catholic Easter Monday
|
|
62
|
-
self._add_easter_monday(
|
|
63
|
-
"Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR
|
|
64
|
-
)
|
|
59
|
+
self._add_easter_monday("Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR)
|
|
65
60
|
|
|
66
61
|
# Catholic Christmas
|
|
67
62
|
self._add_christmas_day("Božić (Katolički)", GREGORIAN_CALENDAR)
|
|
@@ -76,11 +71,7 @@ class BosniaAndHerzegovina(
|
|
|
76
71
|
# New Year's Day
|
|
77
72
|
jan_1 = self._add_new_years_day("Nova Godina")
|
|
78
73
|
self._add_new_years_day_two("Drugi dan Nove Godine")
|
|
79
|
-
if (
|
|
80
|
-
self.subdiv in {"FBiH", "BD"}
|
|
81
|
-
and self.observed
|
|
82
|
-
and self._is_sunday(jan_1)
|
|
83
|
-
):
|
|
74
|
+
if self.subdiv in {"FBiH", "BD"} and self.observed and self._is_sunday(jan_1):
|
|
84
75
|
self._add_new_years_day_three("Treći dan Nove Godine")
|
|
85
76
|
|
|
86
77
|
super()._add_subdiv_holidays()
|
|
@@ -141,10 +132,7 @@ class BosniaAndHerzegovina(
|
|
|
141
132
|
|
|
142
133
|
# Dayton Agreement Day
|
|
143
134
|
self._add_holiday(
|
|
144
|
-
(
|
|
145
|
-
"Dan uspostave Opšteg okvirnog sporazuma za mir u "
|
|
146
|
-
"Bosni i Hercegovini"
|
|
147
|
-
),
|
|
135
|
+
("Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini"),
|
|
148
136
|
NOV,
|
|
149
137
|
21,
|
|
150
138
|
)
|