holidays 0.26__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 +5 -7
- holidays/calendars/buddhist.py +1 -3
- holidays/calendars/chinese.py +1 -3
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hindu.py +1 -3
- holidays/calendars/islamic.py +1341 -1345
- holidays/calendars/thai.py +217 -26
- holidays/countries/__init__.py +4 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +13 -24
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/azerbaijan.py +30 -38
- holidays/countries/bahrain.py +5 -5
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +1 -3
- holidays/countries/belize.py +4 -16
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +9 -18
- holidays/countries/brazil.py +2 -5
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +2 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +71 -77
- holidays/countries/canada.py +19 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +4 -11
- holidays/countries/china.py +1 -2
- holidays/countries/colombia.py +17 -15
- holidays/countries/costa_rica.py +2 -6
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +2 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +1 -3
- holidays/countries/dominican_republic.py +1 -3
- holidays/countries/ecuador.py +54 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +5 -14
- holidays/countries/finland.py +1 -3
- holidays/countries/gabon.py +49 -53
- holidays/countries/greece.py +1 -2
- holidays/countries/honduras.py +16 -13
- holidays/countries/hongkong.py +7 -8
- holidays/countries/hungary.py +93 -92
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +120 -114
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +9 -4
- holidays/countries/israel.py +6 -18
- holidays/countries/italy.py +1 -2
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +10 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +1 -3
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +223 -248
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +1 -3
- holidays/countries/moldova.py +3 -6
- holidays/countries/monaco.py +16 -26
- holidays/countries/montenegro.py +23 -19
- holidays/countries/morocco.py +2 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/new_zealand.py +11 -21
- holidays/countries/nicaragua.py +26 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +1 -3
- holidays/countries/pakistan.py +71 -72
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +54 -47
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +3 -9
- holidays/countries/portugal.py +3 -11
- holidays/countries/romania.py +3 -5
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +19 -29
- holidays/countries/singapore.py +70 -74
- holidays/countries/slovakia.py +1 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +14 -23
- holidays/countries/spain.py +2 -5
- holidays/countries/sweden.py +1 -3
- holidays/countries/taiwan.py +2 -5
- holidays/countries/thailand.py +34 -81
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +6 -18
- holidays/countries/united_arab_emirates.py +21 -29
- holidays/countries/united_kingdom.py +47 -67
- holidays/countries/united_states.py +42 -72
- holidays/countries/vatican_city.py +1 -3
- holidays/countries/venezuela.py +8 -6
- holidays/countries/vietnam.py +6 -18
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +1 -3
- holidays/financial/ny_stock_exchange.py +31 -48
- 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 +49 -75
- holidays/holiday_groups.py +11 -1190
- holidays/locale/am/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/CA.po +43 -43
- holidays/locale/ar/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/UA.po +16 -14
- holidays/locale/be/LC_MESSAGES/BY.po +9 -8
- holidays/locale/bg/LC_MESSAGES/BG.po +14 -12
- holidays/locale/da/LC_MESSAGES/DK.po +7 -6
- holidays/locale/el/LC_MESSAGES/CY.po +5 -3
- holidays/locale/el/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AR.po +26 -25
- 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 +14 -12
- 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 +9 -8
- holidays/locale/en_US/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/CL.po +18 -18
- holidays/locale/en_US/LC_MESSAGES/CO.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CR.po +6 -5
- 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 +5 -3
- holidays/locale/en_US/LC_MESSAGES/DK.po +7 -6
- 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.po +18 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +13 -13
- 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/JP.po +19 -17
- 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/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +16 -15
- holidays/locale/en_US/LC_MESSAGES/MD.po +5 -5
- holidays/locale/en_US/LC_MESSAGES/MX.po +3 -2
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PL.po +23 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +31 -31
- holidays/locale/en_US/LC_MESSAGES/PY.po +13 -11
- holidays/locale/en_US/LC_MESSAGES/RO.po +4 -3
- holidays/locale/en_US/LC_MESSAGES/RS.po +10 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SK.po +14 -14
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +16 -14
- holidays/locale/en_US/LC_MESSAGES/VE.po +6 -6
- holidays/locale/es/LC_MESSAGES/AR.po +26 -25
- holidays/locale/es/LC_MESSAGES/CL.po +18 -18
- holidays/locale/es/LC_MESSAGES/CO.po +19 -19
- holidays/locale/es/LC_MESSAGES/CR.po +6 -5
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.po +12 -12
- holidays/locale/es/LC_MESSAGES/MX.po +3 -2
- holidays/locale/es/LC_MESSAGES/NI.po +10 -10
- holidays/locale/es/LC_MESSAGES/PY.po +13 -11
- holidays/locale/es/LC_MESSAGES/VE.po +6 -6
- holidays/locale/fi/LC_MESSAGES/FI.po +13 -13
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/MC.po +15 -14
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/ja/LC_MESSAGES/JP.po +19 -17
- 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/no/LC_MESSAGES/NO.po +1 -1
- 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 +23 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +31 -31
- holidays/locale/ro/LC_MESSAGES/MD.po +5 -5
- holidays/locale/ro/LC_MESSAGES/RO.po +4 -3
- holidays/locale/sk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/sr/LC_MESSAGES/RS.po +10 -10
- holidays/locale/sv/LC_MESSAGES/FI.po +13 -13
- holidays/locale/sv/LC_MESSAGES/SE.po +1 -1
- 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 +43 -43
- 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.po +26 -25
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CL.po +18 -18
- holidays/locale/uk/LC_MESSAGES/CO.po +19 -19
- holidays/locale/uk/LC_MESSAGES/CR.po +6 -5
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DK.po +7 -6
- holidays/locale/uk/LC_MESSAGES/DO.po +12 -12
- holidays/locale/uk/LC_MESSAGES/EC.po +11 -12
- holidays/locale/uk/LC_MESSAGES/FI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/MC.po +15 -14
- holidays/locale/uk/LC_MESSAGES/MD.po +5 -5
- holidays/locale/uk/LC_MESSAGES/MX.po +3 -2
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PL.po +23 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +13 -11
- holidays/locale/uk/LC_MESSAGES/RO.po +4 -3
- holidays/locale/uk/LC_MESSAGES/SE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/UA.po +16 -14
- holidays/locale/uk/LC_MESSAGES/VE.po +6 -6
- holidays/registry.py +7 -11
- holidays/utils.py +5 -15
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/METADATA +25 -7
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.26.dist-info/RECORD +0 -402
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
holidays/countries/ecuador.py
CHANGED
|
@@ -34,13 +34,49 @@ class Ecuador(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
34
34
|
InternationalHolidays.__init__(self)
|
|
35
35
|
super().__init__(*args, **kwargs)
|
|
36
36
|
|
|
37
|
+
def _add_observed(
|
|
38
|
+
self,
|
|
39
|
+
dt: date,
|
|
40
|
+
weekend_only: bool = False,
|
|
41
|
+
before: bool = True,
|
|
42
|
+
after: bool = True,
|
|
43
|
+
) -> None:
|
|
44
|
+
if self.observed and self._year >= 2017:
|
|
45
|
+
obs_date = None
|
|
46
|
+
# Art. 1 of Law #0 from 20.12.2016
|
|
47
|
+
# When holidays falls on Tuesday, the rest shall be transferred to
|
|
48
|
+
# preceding Monday, and if they falls on Wednesday or Thursday,
|
|
49
|
+
# the rest shall be transferred to Friday of the same week.
|
|
50
|
+
# Exceptions to this provision are January 1, December 25 and
|
|
51
|
+
# Shrove Tuesday.
|
|
52
|
+
if not weekend_only:
|
|
53
|
+
if self._is_tuesday(dt) and before:
|
|
54
|
+
obs_date = dt + td(days=-1)
|
|
55
|
+
elif self._is_wednesday(dt):
|
|
56
|
+
obs_date = dt + td(days=+2)
|
|
57
|
+
elif self._is_thursday(dt) and after:
|
|
58
|
+
obs_date = dt + td(days=+1)
|
|
59
|
+
# When holidays falls on Saturday or Sunday, the rest shall be
|
|
60
|
+
# transferred, respectively, to the preceding Friday or the
|
|
61
|
+
# following Monday.
|
|
62
|
+
if self._is_saturday(dt) and before:
|
|
63
|
+
obs_date = dt + td(days=-1)
|
|
64
|
+
elif self._is_sunday(dt) and after:
|
|
65
|
+
obs_date = dt + td(days=+1)
|
|
66
|
+
if obs_date:
|
|
67
|
+
self._add_holiday(self.tr("%s (Observado)") % self[dt], obs_date)
|
|
68
|
+
|
|
37
69
|
def _populate(self, year):
|
|
38
70
|
super()._populate(year)
|
|
39
|
-
observed_dates = set()
|
|
40
|
-
observed_weekend_dates = set()
|
|
41
71
|
|
|
42
72
|
# New Year's Day.
|
|
43
|
-
|
|
73
|
+
name = tr("Año Nuevo")
|
|
74
|
+
self._add_observed(self._add_new_years_day(name), weekend_only=True)
|
|
75
|
+
|
|
76
|
+
if self.observed and year >= 2017:
|
|
77
|
+
dec_31 = (DEC, 31)
|
|
78
|
+
if self._is_friday(*dec_31):
|
|
79
|
+
self._add_holiday(self.tr("%s (Observado)") % self.tr(name), *dec_31)
|
|
44
80
|
|
|
45
81
|
# Carnival.
|
|
46
82
|
name = tr("Carnaval")
|
|
@@ -51,77 +87,41 @@ class Ecuador(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
51
87
|
self._add_good_friday(tr("Viernes Santo"))
|
|
52
88
|
|
|
53
89
|
# Labour Day.
|
|
54
|
-
|
|
90
|
+
self._add_observed(self._add_labor_day(tr("Día del Trabajo")))
|
|
55
91
|
|
|
56
|
-
|
|
92
|
+
self._add_observed(
|
|
57
93
|
# The Battle of Pichincha.
|
|
58
94
|
self._add_holiday(tr("Batalla de Pichincha"), MAY, 24)
|
|
59
95
|
)
|
|
60
96
|
|
|
61
|
-
|
|
97
|
+
self._add_observed(
|
|
62
98
|
# Declaration of Independence of Quito.
|
|
63
99
|
self._add_holiday(tr("Primer Grito de Independencia"), AUG, 10)
|
|
64
100
|
)
|
|
65
101
|
|
|
66
|
-
|
|
102
|
+
self._add_observed(
|
|
67
103
|
# Independence of Guayaquil.
|
|
68
104
|
self._add_holiday(tr("Independencia de Guayaquil"), OCT, 9)
|
|
69
105
|
)
|
|
70
106
|
|
|
71
|
-
|
|
72
|
-
|
|
107
|
+
self._add_observed(
|
|
108
|
+
# All Souls' Day.
|
|
109
|
+
self._add_all_souls_day(tr("Día de los Difuntos")),
|
|
110
|
+
after=False,
|
|
111
|
+
)
|
|
73
112
|
|
|
74
|
-
|
|
113
|
+
self._add_observed(
|
|
75
114
|
# Independence of Cuenca.
|
|
76
|
-
self._add_holiday(tr("Independencia de Cuenca"), NOV, 3)
|
|
115
|
+
self._add_holiday(tr("Independencia de Cuenca"), NOV, 3),
|
|
116
|
+
before=False,
|
|
77
117
|
)
|
|
78
118
|
|
|
79
|
-
|
|
119
|
+
self._add_observed(
|
|
80
120
|
# Christmas Day.
|
|
81
|
-
self._add_christmas_day(tr("Día de Navidad"))
|
|
121
|
+
self._add_christmas_day(tr("Día de Navidad")),
|
|
122
|
+
weekend_only=True,
|
|
82
123
|
)
|
|
83
124
|
|
|
84
|
-
if self.observed and year >= 2017:
|
|
85
|
-
# Art. 1 of Law #0 from 20.12.2016
|
|
86
|
-
# When holidays falls on Tuesday, the rest shall be transferred to
|
|
87
|
-
# preceding Monday, and if they falls on Wednesday or Thursday,
|
|
88
|
-
# the rest shall be transferred to Friday of the same week.
|
|
89
|
-
# Exceptions to this provision are January 1, December 25 and
|
|
90
|
-
# Shrove Tuesday.
|
|
91
|
-
for dt in observed_dates:
|
|
92
|
-
obs_date = None
|
|
93
|
-
if self._is_tuesday(dt):
|
|
94
|
-
obs_date = dt + td(days=-1)
|
|
95
|
-
elif self._is_wednesday(dt):
|
|
96
|
-
obs_date = dt + td(days=+2)
|
|
97
|
-
elif self._is_thursday(dt):
|
|
98
|
-
obs_date = dt + td(days=+1)
|
|
99
|
-
if obs_date and obs_date not in observed_dates:
|
|
100
|
-
self._add_holiday(
|
|
101
|
-
self.tr("%s (Observado)") % self[dt], obs_date
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
# When holidays falls on Saturday or Sunday, the rest shall be
|
|
105
|
-
# transferred, respectively, to the preceding Friday or the
|
|
106
|
-
# following Monday.
|
|
107
|
-
observed_dates = observed_dates.union(observed_weekend_dates)
|
|
108
|
-
for dt in observed_dates:
|
|
109
|
-
obs_date = None
|
|
110
|
-
if self._is_saturday(dt):
|
|
111
|
-
obs_date = dt + td(days=-1)
|
|
112
|
-
elif self._is_sunday(dt):
|
|
113
|
-
obs_date = dt + td(days=+1)
|
|
114
|
-
if obs_date and obs_date not in observed_dates:
|
|
115
|
-
self._add_holiday(
|
|
116
|
-
self.tr("%s (Observado)") % self[dt], obs_date
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
dec_31 = date(year, DEC, 31)
|
|
120
|
-
if self._is_friday(dec_31):
|
|
121
|
-
self._add_holiday(
|
|
122
|
-
self.tr("%s (Observado)") % self.tr("Año Nuevo"), dec_31
|
|
123
|
-
)
|
|
124
|
-
|
|
125
125
|
|
|
126
126
|
class EC(Ecuador):
|
|
127
127
|
pass
|
holidays/countries/egypt.py
CHANGED
|
@@ -12,13 +12,10 @@
|
|
|
12
12
|
from holidays.calendars import JULIAN_CALENDAR
|
|
13
13
|
from holidays.constants import JAN, APR, JUN, JUL, OCT
|
|
14
14
|
from holidays.holiday_base import HolidayBase
|
|
15
|
-
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
|
|
16
|
-
from holidays.holiday_groups import InternationalHolidays
|
|
15
|
+
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
17
16
|
|
|
18
17
|
|
|
19
|
-
class Egypt(
|
|
20
|
-
HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
21
|
-
):
|
|
18
|
+
class Egypt(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolidays):
|
|
22
19
|
# Holidays here are estimates, it is common for the day to be pushed
|
|
23
20
|
# if falls in a weekend, although not a rule that can be implemented.
|
|
24
21
|
# Holidays after 2020: the following four moving date holidays whose exact
|
holidays/countries/eswatini.py
CHANGED
|
@@ -13,13 +13,12 @@ import warnings
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
from datetime import timedelta as td
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
|
|
18
|
-
from holidays.constants import JAN, APR, MAY, JUL, SEP, DEC
|
|
16
|
+
from holidays.constants import JAN, APR, JUL, SEP, DEC
|
|
19
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class Eswatini(HolidayBase):
|
|
21
|
+
class Eswatini(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
23
22
|
"""
|
|
24
23
|
https://swazilii.org/sz/legislation/act/1938/71
|
|
25
24
|
https://www.officeholidays.com/countries/swaziland
|
|
@@ -28,63 +27,54 @@ class Eswatini(HolidayBase):
|
|
|
28
27
|
country = "SZ"
|
|
29
28
|
special_holidays = {
|
|
30
29
|
# https://mg.co.za/article/1999-12-09-swaziland-declares-bank-holidays/
|
|
31
|
-
1999: (
|
|
32
|
-
2000: (
|
|
30
|
+
1999: (DEC, 31, "Y2K changeover"),
|
|
31
|
+
2000: (JAN, 3, "Y2K changeover"),
|
|
33
32
|
}
|
|
34
33
|
|
|
35
|
-
def
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
)
|
|
39
|
-
# As of 2021/1/1, whenever a public holiday falls on a Sunday
|
|
40
|
-
# it rolls over to the following Monday
|
|
41
|
-
self[hol_date] = hol_name
|
|
42
|
-
if self.observed and self._is_sunday(hol_date) and year >= 2021:
|
|
43
|
-
self[hol_date + td(days=days)] = f"{hol_name} (Observed)"
|
|
34
|
+
def __init__(self, *args, **kwargs):
|
|
35
|
+
ChristianHolidays.__init__(self)
|
|
36
|
+
InternationalHolidays.__init__(self)
|
|
37
|
+
super().__init__(*args, **kwargs)
|
|
44
38
|
|
|
39
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
40
|
+
# As of 2021/1/1, whenever a public holiday falls on a Sunday
|
|
41
|
+
# it rolls over to the following Monday
|
|
42
|
+
if self.observed and self._is_sunday(dt) and self._year >= 2021:
|
|
43
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=days))
|
|
44
|
+
|
|
45
|
+
def _populate(self, year):
|
|
45
46
|
# Observed since 1939
|
|
46
47
|
if year <= 1938:
|
|
47
48
|
return None
|
|
48
49
|
|
|
49
50
|
super()._populate(year)
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
self
|
|
56
|
-
|
|
54
|
+
self._add_good_friday("Good Friday")
|
|
55
|
+
|
|
56
|
+
self._add_easter_monday("Easter Monday")
|
|
57
|
+
|
|
58
|
+
self._add_ascension_thursday("Ascension Day")
|
|
57
59
|
|
|
58
60
|
if year >= 1987:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
# so observed on Apr 21 (Tue)
|
|
62
|
-
_add_with_observed(
|
|
63
|
-
date(year, APR, 19),
|
|
64
|
-
"King's Birthday",
|
|
65
|
-
+2 if year in {2071, 2076, 2082} else +1,
|
|
66
|
-
)
|
|
61
|
+
apr_19 = self._add_holiday("King's Birthday", APR, 19)
|
|
62
|
+
self._add_observed(apr_19, days=+2 if apr_19 == self._easter_sunday else +1)
|
|
67
63
|
|
|
68
64
|
if year >= 1969:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
_add_with_observed(
|
|
72
|
-
date(year, APR, 25),
|
|
73
|
-
"National Flag Day",
|
|
74
|
-
+2 if year == 2038 else +1,
|
|
75
|
-
)
|
|
65
|
+
apr_25 = self._add_holiday("National Flag Day", APR, 25)
|
|
66
|
+
self._add_observed(apr_25, days=+2 if apr_25 == self._easter_sunday else +1)
|
|
76
67
|
|
|
77
|
-
|
|
68
|
+
self._add_observed(self._add_labor_day("Worker's Day"))
|
|
78
69
|
|
|
79
70
|
if year >= 1983:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
_add_with_observed(date(year, DEC, 26), "Boxing Day")
|
|
71
|
+
self._add_observed(self._add_holiday("Birthday of Late King Sobhuza", JUL, 22))
|
|
72
|
+
|
|
73
|
+
self._add_observed(self._add_holiday("Independence Day", SEP, 6))
|
|
74
|
+
|
|
75
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
76
|
+
|
|
77
|
+
self._add_observed(self._add_christmas_day_two("Boxing Day"))
|
|
88
78
|
|
|
89
79
|
|
|
90
80
|
class Swaziland(Eswatini):
|
holidays/countries/ethiopia.py
CHANGED
|
@@ -14,8 +14,7 @@ from gettext import gettext as tr
|
|
|
14
14
|
from holidays.calendars import JULIAN_CALENDAR
|
|
15
15
|
from holidays.constants import MAR, MAY, SEP
|
|
16
16
|
from holidays.holiday_base import HolidayBase
|
|
17
|
-
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
18
|
-
from holidays.holiday_groups import IslamicHolidays
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
19
18
|
|
|
20
19
|
# Ethiopian holidays are estimated: it is common for the day to be pushed
|
|
21
20
|
# if falls in a weekend, although not a rule that can be implemented.
|
|
@@ -31,9 +30,7 @@ from holidays.holiday_groups import IslamicHolidays
|
|
|
31
30
|
# is_weekend function is there, however not activated for accuracy.
|
|
32
31
|
|
|
33
32
|
|
|
34
|
-
class Ethiopia(
|
|
35
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
36
|
-
):
|
|
33
|
+
class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
37
34
|
country = "ET"
|
|
38
35
|
default_language = "am"
|
|
39
36
|
estimated_label = tr("%s* (*ግምት)")
|
|
@@ -70,14 +67,10 @@ class Ethiopia(
|
|
|
70
67
|
# September 12.
|
|
71
68
|
|
|
72
69
|
# Ethiopian New Year.
|
|
73
|
-
self._add_holiday(
|
|
74
|
-
tr("አዲስ ዓመት እንቁጣጣሽ"), SEP, 12 if self._is_leap_year(year) else 11
|
|
75
|
-
)
|
|
70
|
+
self._add_holiday(tr("አዲስ ዓመት እንቁጣጣሽ"), SEP, 12 if self._is_leap_year(year) else 11)
|
|
76
71
|
|
|
77
72
|
# Finding of True Cross.
|
|
78
|
-
self._add_holiday(
|
|
79
|
-
tr("መስቀል"), SEP, 28 if self._is_leap_year(year) else 27
|
|
80
|
-
)
|
|
73
|
+
self._add_holiday(tr("መስቀል"), SEP, 28 if self._is_leap_year(year) else 27)
|
|
81
74
|
|
|
82
75
|
# Orthodox Christmas.
|
|
83
76
|
self._add_christmas_day(tr("ገና"))
|
|
@@ -108,9 +101,7 @@ class Ethiopia(
|
|
|
108
101
|
|
|
109
102
|
if year < 1991 and year > 1974:
|
|
110
103
|
# Downfall of King Haile Selassie.
|
|
111
|
-
self._add_holiday(
|
|
112
|
-
tr("ደርግ የመጣበት ቀን"), SEP, 13 if self._is_leap_year(year) else 12
|
|
113
|
-
)
|
|
104
|
+
self._add_holiday(tr("ደርግ የመጣበት ቀን"), SEP, 13 if self._is_leap_year(year) else 12)
|
|
114
105
|
|
|
115
106
|
# Eid al-Fitr.
|
|
116
107
|
self._add_eid_al_fitr_day(tr("ኢድ አልፈጥር"))
|
holidays/countries/finland.py
CHANGED
|
@@ -42,9 +42,7 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
42
42
|
# Epiphany.
|
|
43
43
|
name = tr("Loppiainen")
|
|
44
44
|
if 1973 <= year <= 1990:
|
|
45
|
-
self._add_holiday(
|
|
46
|
-
name, _get_nth_weekday_from(1, SAT, date(year, JAN, 6))
|
|
47
|
-
)
|
|
45
|
+
self._add_holiday(name, _get_nth_weekday_from(1, SAT, date(year, JAN, 6)))
|
|
48
46
|
else:
|
|
49
47
|
self._add_epiphany_day(name)
|
|
50
48
|
|
holidays/countries/gabon.py
CHANGED
|
@@ -9,17 +9,13 @@
|
|
|
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
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
14
|
-
from holidays.constants import OCT, NOV, DEC
|
|
12
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
13
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
15
14
|
from holidays.holiday_base import HolidayBase
|
|
16
|
-
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
17
|
-
from holidays.holiday_groups import IslamicHolidays
|
|
15
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
16
|
|
|
19
17
|
|
|
20
|
-
class Gabon(
|
|
21
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
22
|
-
):
|
|
18
|
+
class Gabon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
23
19
|
"""
|
|
24
20
|
References:
|
|
25
21
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Gabon
|
|
@@ -90,54 +86,54 @@ class GAB(Gabon):
|
|
|
90
86
|
pass
|
|
91
87
|
|
|
92
88
|
|
|
93
|
-
class GabonIslamicCalendar(
|
|
89
|
+
class GabonIslamicCalendar(_CustomIslamicCalendar):
|
|
94
90
|
EID_AL_ADHA_DATES = {
|
|
95
|
-
2001: (
|
|
96
|
-
2002: (
|
|
97
|
-
2003: (
|
|
98
|
-
2004: (
|
|
99
|
-
2005: (
|
|
91
|
+
2001: (MAR, 6),
|
|
92
|
+
2002: (FEB, 23),
|
|
93
|
+
2003: (FEB, 12),
|
|
94
|
+
2004: (FEB, 2),
|
|
95
|
+
2005: (JAN, 21),
|
|
100
96
|
2006: ((JAN, 10), (DEC, 31)),
|
|
101
|
-
2007: (
|
|
102
|
-
2008: (
|
|
103
|
-
2009: (
|
|
104
|
-
2010: (
|
|
105
|
-
2011: (
|
|
106
|
-
2012: (
|
|
107
|
-
2013: (
|
|
108
|
-
2014: (
|
|
109
|
-
2015: (
|
|
110
|
-
2016: (
|
|
111
|
-
2017: (
|
|
112
|
-
2018: (
|
|
113
|
-
2019: (
|
|
114
|
-
2020: (
|
|
115
|
-
2021: (
|
|
116
|
-
2022: (
|
|
97
|
+
2007: (DEC, 20),
|
|
98
|
+
2008: (DEC, 9),
|
|
99
|
+
2009: (NOV, 28),
|
|
100
|
+
2010: (NOV, 17),
|
|
101
|
+
2011: (NOV, 7),
|
|
102
|
+
2012: (OCT, 26),
|
|
103
|
+
2013: (OCT, 15),
|
|
104
|
+
2014: (OCT, 5),
|
|
105
|
+
2015: (SEP, 24),
|
|
106
|
+
2016: (SEP, 13),
|
|
107
|
+
2017: (SEP, 2),
|
|
108
|
+
2018: (AUG, 22),
|
|
109
|
+
2019: (AUG, 11),
|
|
110
|
+
2020: (JUL, 31),
|
|
111
|
+
2021: (JUL, 20),
|
|
112
|
+
2022: (JUL, 9),
|
|
117
113
|
}
|
|
118
114
|
|
|
119
115
|
EID_AL_FITR_DATES = {
|
|
120
|
-
2001: (
|
|
121
|
-
2002: (
|
|
122
|
-
2003: (
|
|
123
|
-
2004: (
|
|
124
|
-
2005: (
|
|
125
|
-
2006: (
|
|
126
|
-
2007: (
|
|
127
|
-
2008: (
|
|
128
|
-
2009: (
|
|
129
|
-
2010: (
|
|
130
|
-
2011: (
|
|
131
|
-
2012: (
|
|
132
|
-
2013: (
|
|
133
|
-
2014: (
|
|
134
|
-
2015: (
|
|
135
|
-
2016: (
|
|
136
|
-
2017: (
|
|
137
|
-
2018: (
|
|
138
|
-
2019: (
|
|
139
|
-
2020: (
|
|
140
|
-
2021: (
|
|
141
|
-
2022: (
|
|
142
|
-
2023: (
|
|
116
|
+
2001: (DEC, 17),
|
|
117
|
+
2002: (DEC, 6),
|
|
118
|
+
2003: (NOV, 26),
|
|
119
|
+
2004: (NOV, 14),
|
|
120
|
+
2005: (NOV, 4),
|
|
121
|
+
2006: (OCT, 24),
|
|
122
|
+
2007: (OCT, 13),
|
|
123
|
+
2008: (OCT, 2),
|
|
124
|
+
2009: (SEP, 21),
|
|
125
|
+
2010: (SEP, 10),
|
|
126
|
+
2011: (AUG, 31),
|
|
127
|
+
2012: (AUG, 19),
|
|
128
|
+
2013: (AUG, 8),
|
|
129
|
+
2014: (JUL, 29),
|
|
130
|
+
2015: (JUL, 18),
|
|
131
|
+
2016: (JUL, 7),
|
|
132
|
+
2017: (JUN, 26),
|
|
133
|
+
2018: (JUN, 15),
|
|
134
|
+
2019: (JUN, 4),
|
|
135
|
+
2020: (MAY, 24),
|
|
136
|
+
2021: (MAY, 13),
|
|
137
|
+
2022: (MAY, 2),
|
|
138
|
+
2023: (APR, 21),
|
|
143
139
|
}
|
holidays/countries/greece.py
CHANGED
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
from datetime import timedelta as td
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.calendars import _get_nth_weekday_from, JULIAN_CALENDAR
|
|
16
|
-
from holidays.calendars import GREGORIAN_CALENDAR
|
|
15
|
+
from holidays.calendars import _get_nth_weekday_from, JULIAN_CALENDAR, GREGORIAN_CALENDAR
|
|
17
16
|
from holidays.constants import MAR, OCT, MON
|
|
18
17
|
from holidays.holiday_base import HolidayBase
|
|
19
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
holidays/countries/honduras.py
CHANGED
|
@@ -12,42 +12,45 @@
|
|
|
12
12
|
from datetime import timedelta as td
|
|
13
13
|
from gettext import gettext as tr
|
|
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 APR, SEP, OCT, WED
|
|
19
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class Honduras(HolidayBase):
|
|
21
|
+
class Honduras(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
23
22
|
# Artículo 339 del Código del Trabajo:
|
|
24
|
-
# https://www.ilo.org/dyn/natlex/docs/WEBTEXT/29076/64849/S59HND01.htm
|
|
23
|
+
# https://www.ilo.org/dyn/natlex/docs/WEBTEXT/29076/64849/S59HND01.htm
|
|
25
24
|
|
|
26
25
|
country = "HN"
|
|
27
26
|
default_language = "es"
|
|
28
27
|
supported_languages = ("en_US", "es", "uk")
|
|
29
28
|
|
|
29
|
+
def __init__(self, *args, **kwargs):
|
|
30
|
+
ChristianHolidays.__init__(self)
|
|
31
|
+
InternationalHolidays.__init__(self)
|
|
32
|
+
super().__init__(*args, **kwargs)
|
|
33
|
+
|
|
30
34
|
def _populate(self, year):
|
|
31
35
|
super()._populate(year)
|
|
32
36
|
|
|
33
37
|
# New Year's Day.
|
|
34
|
-
self.
|
|
38
|
+
self._add_new_years_day(tr("Año Nuevo"))
|
|
35
39
|
|
|
36
|
-
easter_date = easter(year)
|
|
37
40
|
# Maundy Thursday.
|
|
38
|
-
self.
|
|
41
|
+
self._add_holy_thursday(tr("Jueves Santo"))
|
|
39
42
|
|
|
40
43
|
# Good Friday.
|
|
41
|
-
self.
|
|
44
|
+
self._add_good_friday(tr("Viernes Santo"))
|
|
42
45
|
|
|
43
46
|
# Holy Saturday.
|
|
44
|
-
self.
|
|
47
|
+
self._add_holy_saturday(tr("Sábado de Gloria"))
|
|
45
48
|
|
|
46
49
|
# Panamerican Day.
|
|
47
50
|
self._add_holiday(tr("Día de las Américas"), APR, 14)
|
|
48
51
|
|
|
49
52
|
# Labor Day.
|
|
50
|
-
self.
|
|
53
|
+
self._add_labor_day(tr("Día del Trabajo"))
|
|
51
54
|
|
|
52
55
|
# Independence Day.
|
|
53
56
|
self._add_holiday(tr("Día de la Independencia"), SEP, 15)
|
|
@@ -58,7 +61,7 @@ class Honduras(HolidayBase):
|
|
|
58
61
|
self._add_holiday(tr("Día de Morazán"), OCT, 3)
|
|
59
62
|
|
|
60
63
|
# Columbus Day.
|
|
61
|
-
self.
|
|
64
|
+
self._add_columbus_day(tr("Día de la Raza"))
|
|
62
65
|
|
|
63
66
|
# Army Day.
|
|
64
67
|
self._add_holiday(tr("Día de las Fuerzas Armadas"), OCT, 21)
|
|
@@ -72,7 +75,7 @@ class Honduras(HolidayBase):
|
|
|
72
75
|
self._add_holiday(holiday_name, first_wednesday + td(days=+2))
|
|
73
76
|
|
|
74
77
|
# Christmas.
|
|
75
|
-
self.
|
|
78
|
+
self._add_christmas_day(tr("Navidad"))
|
|
76
79
|
|
|
77
80
|
|
|
78
81
|
class HN(Honduras):
|
holidays/countries/hongkong.py
CHANGED
|
@@ -16,8 +16,11 @@ from typing import Optional
|
|
|
16
16
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
17
17
|
from holidays.constants import JUN, JUL, AUG, SEP, OCT, MON
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
19
|
-
from holidays.holiday_groups import
|
|
20
|
-
|
|
19
|
+
from holidays.holiday_groups import (
|
|
20
|
+
ChineseCalendarHolidays,
|
|
21
|
+
ChristianHolidays,
|
|
22
|
+
InternationalHolidays,
|
|
23
|
+
)
|
|
21
24
|
|
|
22
25
|
|
|
23
26
|
class HongKong(
|
|
@@ -112,9 +115,7 @@ class HongKong(
|
|
|
112
115
|
name = "Ching Ming Festival"
|
|
113
116
|
ching_ming_date = self._qingming_date
|
|
114
117
|
if self.observed and ching_ming_date == easter_monday_date:
|
|
115
|
-
self._add_holiday(
|
|
116
|
-
f"{day_following}{name}", ching_ming_date + td(days=+1)
|
|
117
|
-
)
|
|
118
|
+
self._add_holiday(f"{day_following}{name}", ching_ming_date + td(days=+1))
|
|
118
119
|
elif ching_ming_date not in {
|
|
119
120
|
self._easter_sunday + td(days=-2),
|
|
120
121
|
self._easter_sunday + td(days=-1),
|
|
@@ -169,9 +170,7 @@ class HongKong(
|
|
|
169
170
|
mid_autumn_date + td(days=+2),
|
|
170
171
|
)
|
|
171
172
|
else:
|
|
172
|
-
self._add_mid_autumn_festival_day_two(
|
|
173
|
-
f"The day following the {name}"
|
|
174
|
-
)
|
|
173
|
+
self._add_mid_autumn_festival_day_two(f"The day following the {name}")
|
|
175
174
|
else:
|
|
176
175
|
self._add_mid_autumn_festival_day_two(name)
|
|
177
176
|
|