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
|
@@ -28,12 +28,10 @@ class HolidaysMH(HolidayBase):
|
|
|
28
28
|
|
|
29
29
|
country = "MH"
|
|
30
30
|
special_holidays = {
|
|
31
|
-
2019: (
|
|
31
|
+
2019: (NOV, 18, "General Election Day"), # Third Monday in November
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
def _add_with_observed(
|
|
35
|
-
self, dt: date, name: str, after_sat: bool = False
|
|
36
|
-
) -> None:
|
|
34
|
+
def _add_with_observed(self, dt: date, name: str, after_sat: bool = False) -> None:
|
|
37
35
|
"""
|
|
38
36
|
Adds observed holiday on Monday when the current date falls on a Sunday
|
|
39
37
|
or, if after_sat is True, on a Saturday.
|
|
@@ -54,8 +52,7 @@ class HolidaysMH(HolidayBase):
|
|
|
54
52
|
|
|
55
53
|
if year < 2023:
|
|
56
54
|
warnings.warn(
|
|
57
|
-
"Years before 2022 are not available for the Marshall Islands "
|
|
58
|
-
"(MH).",
|
|
55
|
+
"Years before 2022 are not available for the Marshall Islands (MH).",
|
|
59
56
|
Warning,
|
|
60
57
|
)
|
|
61
58
|
|
|
@@ -64,9 +61,7 @@ class HolidaysMH(HolidayBase):
|
|
|
64
61
|
self._add_with_observed(date(year, JAN, 1), name, after_sat=True)
|
|
65
62
|
|
|
66
63
|
# Nuclear Victims Remembrance Day
|
|
67
|
-
self._add_with_observed(
|
|
68
|
-
date(year, MAR, 1), "Nuclear Victims Remembrance Day"
|
|
69
|
-
)
|
|
64
|
+
self._add_with_observed(date(year, MAR, 1), "Nuclear Victims Remembrance Day")
|
|
70
65
|
|
|
71
66
|
# Good Friday
|
|
72
67
|
self[easter(year) + td(days=-2)] = "Good Friday"
|
holidays/countries/mexico.py
CHANGED
|
@@ -29,6 +29,7 @@ class Mexico(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
29
29
|
|
|
30
30
|
country = "MX"
|
|
31
31
|
default_language = "es"
|
|
32
|
+
supported_languages = ("en_US", "es", "uk")
|
|
32
33
|
|
|
33
34
|
def __init__(self, *args, **kwargs):
|
|
34
35
|
ChristianHolidays.__init__(self)
|
|
@@ -78,9 +79,7 @@ class Mexico(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
78
79
|
|
|
79
80
|
if year >= 1970 and (year - 1970) % 6 == 0:
|
|
80
81
|
# Change of Federal Government.
|
|
81
|
-
self._add_holiday(
|
|
82
|
-
tr("Transmisión del Poder Ejecutivo Federal"), DEC, 1
|
|
83
|
-
)
|
|
82
|
+
self._add_holiday(tr("Transmisión del Poder Ejecutivo Federal"), DEC, 1)
|
|
84
83
|
|
|
85
84
|
# Christmas Day.
|
|
86
85
|
self._add_christmas_day(tr("Navidad"))
|
holidays/countries/moldova.py
CHANGED
|
@@ -13,7 +13,7 @@ from datetime import timedelta as td
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import GREGORIAN_CALENDAR, JULIAN_CALENDAR
|
|
16
|
-
from holidays.constants import
|
|
16
|
+
from holidays.constants import AUG
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
19
|
|
|
@@ -26,6 +26,7 @@ class Moldova(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
26
26
|
|
|
27
27
|
country = "MD"
|
|
28
28
|
default_language = "ro"
|
|
29
|
+
supported_languages = ("en_US", "ro", "uk")
|
|
29
30
|
|
|
30
31
|
def __init__(self, *args, **kwargs):
|
|
31
32
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
@@ -72,10 +73,7 @@ class Moldova(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
72
73
|
may_9 = self._add_world_war_two_victory_day(
|
|
73
74
|
# Victory Day and Commemoration of the heroes fallen for
|
|
74
75
|
# Independence of Fatherland.
|
|
75
|
-
tr(
|
|
76
|
-
"Ziua Victoriei şi a comemorării eroilor căzuţi pentru "
|
|
77
|
-
"Independenţa Patriei"
|
|
78
|
-
)
|
|
76
|
+
tr("Ziua Victoriei şi a comemorării eroilor căzuţi pentru Independenţa Patriei")
|
|
79
77
|
)
|
|
80
78
|
|
|
81
79
|
if year >= 2017:
|
|
@@ -84,7 +82,7 @@ class Moldova(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
84
82
|
|
|
85
83
|
if year >= 2016:
|
|
86
84
|
# International Children's Day
|
|
87
|
-
self.
|
|
85
|
+
self._add_childrens_day(tr("Ziua Ocrotirii Copilului"))
|
|
88
86
|
|
|
89
87
|
# Republic of Moldova Independence Day
|
|
90
88
|
self._add_holiday(tr("Ziua independenţei Republicii Moldova"), AUG, 27)
|
holidays/countries/monaco.py
CHANGED
|
@@ -26,30 +26,32 @@ class Monaco(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
26
26
|
|
|
27
27
|
country = "MC"
|
|
28
28
|
default_language = "fr"
|
|
29
|
-
special_holidays = {
|
|
30
|
-
|
|
31
|
-
}
|
|
29
|
+
special_holidays = {2015: (JAN, 7, tr("Jour férié"))}
|
|
30
|
+
supported_languages = ("en_US", "fr", "uk")
|
|
32
31
|
|
|
33
32
|
def __init__(self, *args, **kwargs):
|
|
34
33
|
ChristianHolidays.__init__(self)
|
|
35
34
|
InternationalHolidays.__init__(self)
|
|
36
35
|
super().__init__(*args, **kwargs)
|
|
37
36
|
|
|
37
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
38
|
+
if self.observed and self._is_sunday(dt):
|
|
39
|
+
self._add_holiday(self.tr("%s (Observé)") % self[dt], dt + td(days=days))
|
|
40
|
+
|
|
38
41
|
def _populate(self, year):
|
|
39
42
|
super()._populate(year)
|
|
40
|
-
observed_dates = set()
|
|
41
43
|
|
|
42
44
|
# New Year's Day.
|
|
43
|
-
|
|
45
|
+
self._add_observed(self._add_new_years_day(tr("Le jour de l'An")))
|
|
44
46
|
|
|
45
|
-
# Saint
|
|
47
|
+
# Saint Devote's Day.
|
|
46
48
|
self._add_holiday(tr("La Sainte Dévote"), JAN, 27)
|
|
47
49
|
|
|
48
50
|
# Easter Monday.
|
|
49
51
|
self._add_easter_monday(tr("Le lundi de Pâques"))
|
|
50
52
|
|
|
51
53
|
# Labour Day.
|
|
52
|
-
|
|
54
|
+
self._add_observed(self._add_labor_day(tr("Fête de la Travaille")))
|
|
53
55
|
|
|
54
56
|
# Ascension's Day.
|
|
55
57
|
self._add_ascension_thursday(tr("L'Ascension"))
|
|
@@ -61,33 +63,22 @@ class Monaco(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
61
63
|
self._add_corpus_christi_day(tr("La Fête Dieu"))
|
|
62
64
|
|
|
63
65
|
# Assumption's Day.
|
|
64
|
-
|
|
65
|
-
self._add_assumption_of_mary_day(tr("L'Assomption de Marie"))
|
|
66
|
-
)
|
|
66
|
+
self._add_observed(self._add_assumption_of_mary_day(tr("L'Assomption de Marie")))
|
|
67
67
|
|
|
68
68
|
# All Saints' Day.
|
|
69
|
-
|
|
69
|
+
self._add_observed(self._add_all_saints_day(tr("La Toussaint")))
|
|
70
70
|
|
|
71
71
|
# Prince's Day.
|
|
72
|
-
|
|
72
|
+
self._add_observed(self._add_holiday(tr("La Fête du Prince"), NOV, 19))
|
|
73
73
|
|
|
74
|
-
dt =
|
|
75
|
-
if year >= 2019 and self._is_sunday(dt):
|
|
76
|
-
dt
|
|
74
|
+
dt = (DEC, 8)
|
|
75
|
+
if year >= 2019 and self._is_sunday(*dt):
|
|
76
|
+
dt = (DEC, 9)
|
|
77
77
|
# Immaculate Conception's Day.
|
|
78
|
-
self._add_holiday(tr("L'Immaculée Conception"), dt)
|
|
78
|
+
self._add_holiday(tr("L'Immaculée Conception"), *dt)
|
|
79
79
|
|
|
80
80
|
# Christmas Day.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if self.observed:
|
|
84
|
-
for dt in observed_dates:
|
|
85
|
-
if not self._is_sunday(dt):
|
|
86
|
-
continue
|
|
87
|
-
self._add_holiday(
|
|
88
|
-
self.tr("%s (Observé)") % self[dt],
|
|
89
|
-
dt + td(days=+1),
|
|
90
|
-
)
|
|
81
|
+
self._add_observed(self._add_christmas_day(tr("Noël")))
|
|
91
82
|
|
|
92
83
|
|
|
93
84
|
class MC(Monaco):
|
holidays/countries/montenegro.py
CHANGED
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from
|
|
16
|
-
|
|
17
|
-
from holidays.constants import JAN, MAY, JUL
|
|
15
|
+
from holidays.calendars import JULIAN_CALENDAR
|
|
16
|
+
from holidays.constants import MAY, JUL
|
|
18
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
class Montenegro(HolidayBase):
|
|
21
|
+
class Montenegro(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
22
|
"""
|
|
23
23
|
References:
|
|
24
24
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Montenegro
|
|
@@ -29,45 +29,55 @@ class Montenegro(HolidayBase):
|
|
|
29
29
|
|
|
30
30
|
country = "ME"
|
|
31
31
|
|
|
32
|
-
def
|
|
33
|
-
self
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
)
|
|
32
|
+
def __init__(self, *args, **kwargs):
|
|
33
|
+
ChristianHolidays.__init__(self, calendar=JULIAN_CALENDAR)
|
|
34
|
+
InternationalHolidays.__init__(self)
|
|
35
|
+
super().__init__(*args, **kwargs)
|
|
36
|
+
|
|
37
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
38
|
+
if self.observed and self._is_sunday(dt):
|
|
39
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days))
|
|
39
40
|
|
|
40
|
-
def _populate(self, year
|
|
41
|
+
def _populate(self, year):
|
|
41
42
|
super()._populate(year)
|
|
42
43
|
|
|
43
44
|
# New Year's Day.
|
|
44
|
-
|
|
45
|
+
name = "New Year's Day"
|
|
46
|
+
self._add_observed(self._add_new_years_day(name), days=+2)
|
|
47
|
+
self._add_observed(self._add_new_years_day_two(name))
|
|
45
48
|
|
|
46
49
|
# Orthodox Christmas Eve.
|
|
47
|
-
self
|
|
50
|
+
self._add_christmas_eve("Orthodox Christmas Eve")
|
|
48
51
|
|
|
49
52
|
# Orthodox Christmas.
|
|
50
|
-
self
|
|
53
|
+
self._add_christmas_day("Orthodox Christmas")
|
|
51
54
|
|
|
52
|
-
|
|
55
|
+
# Labour Day.
|
|
56
|
+
name = "Labour Day"
|
|
57
|
+
may_1 = self._add_labor_day(name)
|
|
58
|
+
self._add_observed(may_1, days=+2)
|
|
59
|
+
self._add_observed(self._add_holiday(name, may_1 + td(days=+1)))
|
|
53
60
|
|
|
54
61
|
# Good Friday.
|
|
55
|
-
self
|
|
62
|
+
self._add_good_friday("Orthodox Good Friday")
|
|
56
63
|
|
|
57
64
|
# Easter Sunday.
|
|
58
|
-
self
|
|
65
|
+
self._add_easter_sunday("Orthodox Easter Sunday")
|
|
59
66
|
|
|
60
67
|
# Easter Monday.
|
|
61
|
-
self
|
|
62
|
-
|
|
63
|
-
# Labour Day.
|
|
64
|
-
self._add_holiday_observed(date(year, MAY, 1), "Labour Day")
|
|
68
|
+
self._add_easter_monday("Orthodox Easter Monday")
|
|
65
69
|
|
|
66
70
|
# Independence Day.
|
|
67
|
-
|
|
71
|
+
name = "Independence Day"
|
|
72
|
+
may_21 = self._add_holiday(name, MAY, 21)
|
|
73
|
+
self._add_observed(may_21, days=+2)
|
|
74
|
+
self._add_observed(self._add_holiday(name, may_21 + td(days=+1)))
|
|
68
75
|
|
|
69
76
|
# Statehood Day.
|
|
70
|
-
|
|
77
|
+
name = "Statehood Day"
|
|
78
|
+
jul_13 = self._add_holiday(name, JUL, 13)
|
|
79
|
+
self._add_observed(jul_13, days=+2)
|
|
80
|
+
self._add_observed(self._add_holiday(name, jul_13 + td(days=+1)))
|
|
71
81
|
|
|
72
82
|
|
|
73
83
|
class ME(Montenegro):
|
holidays/countries/morocco.py
CHANGED
|
@@ -47,12 +47,17 @@ class Morocco(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
47
47
|
# Independence Manifesto Day post 1944
|
|
48
48
|
if year >= 1945:
|
|
49
49
|
self._add_holiday(
|
|
50
|
-
"Commémoration de la présentation "
|
|
51
|
-
"du manifeste de l'indépendance",
|
|
50
|
+
"Commémoration de la présentation du manifeste de l'indépendance",
|
|
52
51
|
JAN,
|
|
53
52
|
11,
|
|
54
53
|
)
|
|
55
54
|
|
|
55
|
+
# Amazigh New Year
|
|
56
|
+
# In May 2023, Morocco recognised Berber New Year as official holiday
|
|
57
|
+
# http://www.diplomatie.ma/en/statement-royal-office-12
|
|
58
|
+
if year >= 2024:
|
|
59
|
+
self._add_holiday("Nouvel An berbère", JAN, 13)
|
|
60
|
+
|
|
56
61
|
# Labor day
|
|
57
62
|
self._add_labor_day("Fête du Travail")
|
|
58
63
|
|
|
@@ -69,9 +74,7 @@ class Morocco(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
69
74
|
self._add_holiday("Journée de Oued Ed-Dahab", AUG, 14)
|
|
70
75
|
|
|
71
76
|
# Revolution Day
|
|
72
|
-
self._add_holiday(
|
|
73
|
-
"Commémoration de la révolution du Roi et du peuple", AUG, 20
|
|
74
|
-
)
|
|
77
|
+
self._add_holiday("Commémoration de la révolution du Roi et du peuple", AUG, 20)
|
|
75
78
|
|
|
76
79
|
# Youth day
|
|
77
80
|
if year >= 2001:
|
holidays/countries/mozambique.py
CHANGED
|
@@ -12,49 +12,53 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from
|
|
16
|
-
|
|
17
|
-
from holidays.constants import JAN, FEB, APR, MAY, JUN, SEP, OCT, DEC
|
|
15
|
+
from holidays.constants import FEB, APR, MAY, JUN, SEP, OCT
|
|
18
16
|
from holidays.holiday_base import HolidayBase
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class Mozambique(HolidayBase):
|
|
20
|
+
class Mozambique(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
21
|
country = "MZ"
|
|
23
22
|
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
self[hol_date] = hol_name
|
|
29
|
-
if self.observed and self._is_sunday(hol_date):
|
|
30
|
-
self[hol_date + td(days=+1)] = f"{hol_name} (PONTE)"
|
|
23
|
+
def __init__(self, *args, **kwargs):
|
|
24
|
+
ChristianHolidays.__init__(self)
|
|
25
|
+
InternationalHolidays.__init__(self)
|
|
26
|
+
super().__init__(*args, **kwargs)
|
|
31
27
|
|
|
28
|
+
def _add_observed(self, dt: date) -> None:
|
|
29
|
+
# whenever a public holiday falls on a Sunday,
|
|
30
|
+
# it rolls over to the following Monday
|
|
31
|
+
if self.observed and self._is_sunday(dt):
|
|
32
|
+
self._add_holiday("%s (PONTE)" % self[dt], dt + td(days=+1))
|
|
33
|
+
|
|
34
|
+
def _populate(self, year):
|
|
32
35
|
if year <= 1974:
|
|
33
36
|
return None
|
|
34
37
|
|
|
35
38
|
super()._populate(year)
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
self
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
self
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
40
|
+
self._add_observed(self._add_new_years_day("Ano novo"))
|
|
41
|
+
|
|
42
|
+
self._add_good_friday("Sexta-feira Santa")
|
|
43
|
+
|
|
44
|
+
self._add_carnival_tuesday("Carnaval")
|
|
45
|
+
|
|
46
|
+
self._add_observed(self._add_holiday("Dia dos Heróis Moçambicanos", FEB, 3))
|
|
47
|
+
|
|
48
|
+
self._add_observed(self._add_holiday("Dia da Mulher Moçambicana", APR, 7))
|
|
49
|
+
|
|
50
|
+
self._add_observed(self._add_holiday("Dia Mundial do Trabalho", MAY, 1))
|
|
51
|
+
|
|
52
|
+
self._add_observed(self._add_holiday("Dia da Independência Nacional", JUN, 25))
|
|
53
|
+
|
|
54
|
+
self._add_observed(self._add_holiday("Dia da Vitória", SEP, 7))
|
|
55
|
+
|
|
56
|
+
self._add_observed(self._add_holiday("Dia das Forças Armadas", SEP, 25))
|
|
57
|
+
|
|
53
58
|
if year >= 1993:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
_add_with_observed(date(year, DEC, 25), "Dia de Natal e da Família")
|
|
59
|
+
self._add_observed(self._add_holiday("Dia da Paz e Reconciliação", OCT, 4))
|
|
60
|
+
|
|
61
|
+
self._add_observed(self._add_christmas_day("Dia de Natal e da Família"))
|
|
58
62
|
|
|
59
63
|
|
|
60
64
|
class MZ(Mozambique):
|
holidays/countries/namibia.py
CHANGED
|
@@ -12,13 +12,12 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
15
|
from holidays.constants import JAN, FEB, MAR, MAY, AUG, SEP, DEC
|
|
18
16
|
from holidays.holiday_base import HolidayBase
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class Namibia(HolidayBase):
|
|
20
|
+
class Namibia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
21
|
"""
|
|
23
22
|
https://www.officeholidays.com/countries/namibia
|
|
24
23
|
https://www.timeanddate.com/holidays/namibia/
|
|
@@ -28,52 +27,72 @@ class Namibia(HolidayBase):
|
|
|
28
27
|
country = "NA"
|
|
29
28
|
special_holidays = {
|
|
30
29
|
# https://gazettes.africa/archive/na/1999/na-government-gazette-dated-1999-11-22-no-2234.pdf
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
)
|
|
47
|
-
self[hol_date + td(days=+1)] = f"{hol_name} (Observed)"
|
|
34
|
+
def __init__(self, *args, **kwargs):
|
|
35
|
+
ChristianHolidays.__init__(self)
|
|
36
|
+
InternationalHolidays.__init__(self)
|
|
37
|
+
super().__init__(*args, **kwargs)
|
|
38
|
+
|
|
39
|
+
def _add_observed(self, dt: date) -> None:
|
|
40
|
+
# https://tinyurl.com/lacorg5835
|
|
41
|
+
# As of 1991/2/1, whenever a public holiday falls on a Sunday,
|
|
42
|
+
# it rolls over to the monday, unless that monday is already
|
|
43
|
+
# a public holiday.
|
|
44
|
+
if self.observed and self._is_sunday(dt) and dt >= date(1991, FEB, 1):
|
|
45
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=+1))
|
|
48
46
|
|
|
47
|
+
def _populate(self, year):
|
|
49
48
|
if year <= 1989:
|
|
50
49
|
return None
|
|
51
50
|
|
|
52
51
|
super()._populate(year)
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
# New Year's Day.
|
|
54
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
55
|
+
|
|
56
|
+
# Independence Day.
|
|
57
|
+
self._add_observed(self._add_holiday("Independence Day", MAR, 21))
|
|
58
|
+
|
|
59
|
+
# Good Friday.
|
|
60
|
+
self._add_good_friday("Good Friday")
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
self
|
|
59
|
-
self[easter_date + td(days=+1)] = "Easter Monday"
|
|
60
|
-
self[easter_date + td(days=+39)] = "Ascension Day"
|
|
62
|
+
# Easter Monday.
|
|
63
|
+
self._add_easter_monday("Easter Monday")
|
|
61
64
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
# Workers' Day.
|
|
66
|
+
self._add_observed(self._add_labor_day("Workers' Day"))
|
|
67
|
+
|
|
68
|
+
# Cassinga Day.
|
|
69
|
+
self._add_observed(self._add_holiday("Cassinga Day", MAY, 4))
|
|
70
|
+
|
|
71
|
+
# Africa Day.
|
|
72
|
+
self._add_observed(self._add_africa_day("Africa Day"))
|
|
73
|
+
|
|
74
|
+
# Ascension Day.
|
|
75
|
+
self._add_ascension_thursday("Ascension Day")
|
|
76
|
+
|
|
77
|
+
# Heroes' Day.
|
|
78
|
+
self._add_observed(self._add_holiday("Heroes' Day", AUG, 26))
|
|
66
79
|
|
|
67
80
|
# http://www.lac.org.na/laws/2004/3348.pdf
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
81
|
+
self._add_observed(
|
|
82
|
+
self._add_holiday(
|
|
83
|
+
"Day of the Namibian Women and International Human Rights Day"
|
|
84
|
+
if year >= 2005
|
|
85
|
+
else "International Human Rights Day",
|
|
86
|
+
SEP,
|
|
87
|
+
10,
|
|
88
|
+
)
|
|
73
89
|
)
|
|
74
90
|
|
|
75
|
-
|
|
76
|
-
|
|
91
|
+
# Christmas Day.
|
|
92
|
+
self._add_christmas_day("Christmas Day")
|
|
93
|
+
|
|
94
|
+
# Family Day.
|
|
95
|
+
self._add_observed(self._add_christmas_day_two("Family Day"))
|
|
77
96
|
|
|
78
97
|
|
|
79
98
|
class NA(Namibia):
|