holidays 0.25__py3-none-any.whl → 0.27__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/__init__.py +1 -1
- holidays/calendars/__init__.py +9 -7
- holidays/calendars/buddhist.py +445 -0
- holidays/calendars/chinese.py +1238 -431
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hebrew.py +2 -2
- holidays/calendars/hindu.py +445 -0
- holidays/calendars/islamic.py +1347 -1347
- holidays/calendars/thai.py +229 -38
- holidays/countries/__init__.py +8 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +25 -35
- holidays/countries/armenia.py +1 -0
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/austria.py +1 -0
- holidays/countries/azerbaijan.py +44 -71
- holidays/countries/bahrain.py +7 -7
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +2 -3
- holidays/countries/belize.py +128 -0
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +37 -44
- holidays/countries/brazil.py +4 -7
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +3 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +183 -0
- holidays/countries/canada.py +20 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +6 -13
- holidays/countries/china.py +21 -25
- holidays/countries/colombia.py +18 -15
- holidays/countries/costa_rica.py +25 -27
- holidays/countries/cuba.py +28 -15
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +3 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +2 -3
- holidays/countries/dominican_republic.py +2 -3
- holidays/countries/ecuador.py +55 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/el_salvador.py +101 -0
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +7 -14
- holidays/countries/finland.py +2 -3
- holidays/countries/france.py +1 -0
- holidays/countries/gabon.py +139 -0
- holidays/countries/georgia.py +1 -0
- holidays/countries/germany.py +1 -0
- holidays/countries/greece.py +7 -6
- holidays/countries/honduras.py +17 -13
- holidays/countries/hongkong.py +117 -126
- holidays/countries/hungary.py +93 -92
- holidays/countries/iceland.py +1 -0
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +178 -142
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +23 -5
- holidays/countries/israel.py +12 -24
- holidays/countries/italy.py +6 -7
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +11 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +44 -26
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/liechtenstein.py +1 -0
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +335 -343
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +2 -3
- holidays/countries/moldova.py +4 -6
- holidays/countries/monaco.py +17 -26
- holidays/countries/montenegro.py +34 -24
- holidays/countries/morocco.py +8 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/netherlands.py +1 -0
- holidays/countries/new_zealand.py +166 -134
- holidays/countries/nicaragua.py +27 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +2 -3
- holidays/countries/pakistan.py +73 -75
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +55 -47
- holidays/countries/peru.py +1 -0
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +4 -9
- holidays/countries/portugal.py +4 -11
- holidays/countries/romania.py +4 -5
- holidays/countries/russia.py +1 -0
- holidays/countries/san_marino.py +26 -27
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +22 -31
- holidays/countries/singapore.py +181 -189
- holidays/countries/slovakia.py +2 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +59 -26
- holidays/countries/spain.py +7 -10
- holidays/countries/sweden.py +2 -3
- holidays/countries/switzerland.py +1 -0
- holidays/countries/taiwan.py +20 -20
- holidays/countries/thailand.py +36 -82
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +7 -18
- holidays/countries/united_arab_emirates.py +23 -31
- holidays/countries/united_kingdom.py +124 -116
- holidays/countries/united_states.py +42 -72
- holidays/countries/uruguay.py +1 -0
- holidays/countries/vatican_city.py +64 -32
- holidays/countries/venezuela.py +9 -6
- holidays/countries/vietnam.py +6 -20
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +15 -16
- holidays/financial/ny_stock_exchange.py +80 -86
- holidays/groups/__init__.py +18 -0
- holidays/groups/buddhist.py +71 -0
- holidays/groups/chinese.py +235 -0
- holidays/groups/christian.py +483 -0
- holidays/groups/hindu.py +71 -0
- holidays/groups/international.py +157 -0
- holidays/groups/islamic.py +288 -0
- holidays/groups/thai.py +157 -0
- holidays/helpers.py +20 -0
- holidays/holiday_base.py +54 -76
- holidays/holiday_groups.py +11 -1053
- holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/am/LC_MESSAGES/ET.po +20 -15
- holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/CA.po +184 -0
- holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/ET.po +92 -0
- holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/UA.po +97 -0
- holidays/locale/be/LC_MESSAGES/BY.po +11 -13
- holidays/locale/bg/LC_MESSAGES/BG.po +13 -15
- holidays/locale/da/LC_MESSAGES/DK.po +13 -12
- holidays/locale/de/LC_MESSAGES/AT.po +14 -14
- holidays/locale/de/LC_MESSAGES/CH.po +91 -56
- holidays/locale/de/LC_MESSAGES/DE.po +32 -32
- holidays/locale/de/LC_MESSAGES/LI.po +23 -23
- holidays/locale/el/LC_MESSAGES/CY.po +16 -16
- holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/el/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AM.po +20 -20
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.po +34 -33
- holidays/locale/en_US/LC_MESSAGES/AT.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
- holidays/locale/en_US/LC_MESSAGES/BG.po +13 -15
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +11 -13
- holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CA.po +70 -37
- holidays/locale/en_US/LC_MESSAGES/CH.po +91 -56
- holidays/locale/en_US/LC_MESSAGES/CL.po +39 -38
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CR.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CU.po +10 -10
- holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
- holidays/locale/en_US/LC_MESSAGES/CY.po +16 -16
- holidays/locale/en_US/LC_MESSAGES/DE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/DK.po +12 -11
- holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
- holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ET.po +20 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/FR.po +27 -24
- holidays/locale/en_US/LC_MESSAGES/GE.po +23 -27
- holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +17 -12
- holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
- holidays/locale/en_US/LC_MESSAGES/IS.po +17 -17
- holidays/locale/en_US/LC_MESSAGES/JP.po +25 -25
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
- holidays/locale/en_US/LC_MESSAGES/LI.po +22 -22
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/MD.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/MX.po +9 -12
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/NL.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/NO.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/PE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/PL.po +38 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +39 -36
- holidays/locale/en_US/LC_MESSAGES/PY.po +16 -16
- holidays/locale/en_US/LC_MESSAGES/RO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RS.po +17 -19
- holidays/locale/en_US/LC_MESSAGES/RU.po +11 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/SK.po +17 -18
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +18 -19
- holidays/locale/en_US/LC_MESSAGES/UY.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/VE.po +16 -16
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.po +34 -33
- holidays/locale/es/LC_MESSAGES/CL.po +39 -38
- holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CO.po +24 -24
- holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CR.po +19 -19
- holidays/locale/es/LC_MESSAGES/CU.po +10 -10
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/es/LC_MESSAGES/HN.po +17 -12
- holidays/locale/es/LC_MESSAGES/MX.po +9 -12
- holidays/locale/es/LC_MESSAGES/NI.po +12 -12
- holidays/locale/es/LC_MESSAGES/PE.po +30 -30
- holidays/locale/es/LC_MESSAGES/PY.po +16 -16
- holidays/locale/es/LC_MESSAGES/UY.po +15 -15
- holidays/locale/es/LC_MESSAGES/VE.po +16 -16
- holidays/locale/fi/LC_MESSAGES/FI.po +16 -16
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/CH.po +91 -56
- holidays/locale/fr/LC_MESSAGES/FR.po +27 -24
- holidays/locale/fr/LC_MESSAGES/MC.po +23 -23
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/hy/LC_MESSAGES/AM.po +16 -16
- holidays/locale/is/LC_MESSAGES/IS.po +18 -18
- holidays/locale/it/LC_MESSAGES/CH.po +91 -56
- holidays/locale/ja/LC_MESSAGES/JP.po +25 -25
- holidays/locale/ka/LC_MESSAGES/GE.po +23 -27
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +139 -0
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
- holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
- holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
- holidays/locale/nl/LC_MESSAGES/NL.po +13 -13
- holidays/locale/no/LC_MESSAGES/NO.po +14 -14
- holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
- holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +38 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +39 -36
- holidays/locale/ro/LC_MESSAGES/MD.po +14 -15
- holidays/locale/ro/LC_MESSAGES/RO.po +13 -14
- holidays/locale/ru/LC_MESSAGES/RU.po +11 -9
- holidays/locale/sk/LC_MESSAGES/SK.po +17 -18
- holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/RS.po +15 -17
- holidays/locale/sv/LC_MESSAGES/FI.po +16 -16
- holidays/locale/sv/LC_MESSAGES/SE.po +20 -20
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +96 -0
- holidays/locale/th/LC_MESSAGES/CA.po +42 -42
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +145 -0
- holidays/locale/th/LC_MESSAGES/TH.po +41 -41
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.po +35 -35
- holidays/locale/uk/LC_MESSAGES/AT.po +15 -16
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CH.po +92 -58
- holidays/locale/uk/LC_MESSAGES/CL.po +40 -40
- holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CO.po +28 -29
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.po +20 -21
- holidays/locale/uk/LC_MESSAGES/CU.po +11 -12
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DE.po +33 -34
- holidays/locale/uk/LC_MESSAGES/DK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/DO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/EC.po +12 -14
- holidays/locale/uk/LC_MESSAGES/FI.po +17 -18
- holidays/locale/uk/LC_MESSAGES/FR.po +28 -26
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +18 -14
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/IS.po +19 -20
- holidays/locale/uk/LC_MESSAGES/LI.po +24 -25
- holidays/locale/uk/LC_MESSAGES/MC.po +27 -28
- holidays/locale/uk/LC_MESSAGES/MD.po +14 -15
- holidays/locale/uk/LC_MESSAGES/MX.po +10 -14
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +16 -17
- holidays/locale/uk/LC_MESSAGES/NL.po +14 -15
- holidays/locale/uk/LC_MESSAGES/NO.po +15 -16
- holidays/locale/uk/LC_MESSAGES/PE.po +31 -32
- holidays/locale/uk/LC_MESSAGES/PL.po +38 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +17 -18
- holidays/locale/uk/LC_MESSAGES/RO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/SE.po +21 -22
- holidays/locale/uk/LC_MESSAGES/SK.po +18 -20
- holidays/locale/uk/LC_MESSAGES/UA.po +17 -17
- holidays/locale/uk/LC_MESSAGES/UY.po +16 -17
- holidays/locale/uk/LC_MESSAGES/VE.po +17 -18
- holidays/registry.py +21 -12
- holidays/utils.py +87 -17
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/METADATA +282 -265
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.25.dist-info/RECORD +0 -390
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
|
@@ -9,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 APR, MAY, JUN, JUL, AUG, SEP, NOV, DEC, FRI, SAT
|
|
14
14
|
from holidays.holiday_base import HolidayBase
|
|
15
15
|
from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
|
|
@@ -43,9 +43,7 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
43
43
|
|
|
44
44
|
def __init__(self, *args, **kwargs):
|
|
45
45
|
InternationalHolidays.__init__(self)
|
|
46
|
-
IslamicHolidays.__init__(
|
|
47
|
-
self, calendar=UnitedArabEmiratesIslamicCalendar()
|
|
48
|
-
)
|
|
46
|
+
IslamicHolidays.__init__(self, calendar=UnitedArabEmiratesIslamicCalendar())
|
|
49
47
|
super().__init__(*args, **kwargs)
|
|
50
48
|
|
|
51
49
|
def _populate(self, year):
|
|
@@ -56,9 +54,7 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
56
54
|
|
|
57
55
|
# Commemoration Day.
|
|
58
56
|
if year >= 2015:
|
|
59
|
-
self._add_holiday(
|
|
60
|
-
"Commemoration Day", *((DEC, 1) if year >= 2019 else (NOV, 30))
|
|
61
|
-
)
|
|
57
|
+
self._add_holiday("Commemoration Day", *((DEC, 1) if year >= 2019 else (NOV, 30)))
|
|
62
58
|
|
|
63
59
|
# National Day.
|
|
64
60
|
self._add_holiday("National Day", DEC, 2)
|
|
@@ -83,15 +79,11 @@ class UnitedArabEmirates(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
83
79
|
|
|
84
80
|
# Leilat al-Miraj.
|
|
85
81
|
if year <= 2018: # The UAE government removed this starting 2019.
|
|
86
|
-
self._add_isra_and_miraj_day(
|
|
87
|
-
"Leilat al-Miraj - The Prophet's ascension"
|
|
88
|
-
)
|
|
82
|
+
self._add_isra_and_miraj_day("Leilat al-Miraj - The Prophet's ascension")
|
|
89
83
|
|
|
90
84
|
# Prophet Muhammad's Birthday.
|
|
91
85
|
if year <= 2019: # The UAE government removed this starting 2020.
|
|
92
|
-
self._add_mawlid_day(
|
|
93
|
-
"Mawlud al-Nabi - Prophet Mohammad's Birthday"
|
|
94
|
-
)
|
|
86
|
+
self._add_mawlid_day("Mawlud al-Nabi - Prophet Mohammad's Birthday")
|
|
95
87
|
|
|
96
88
|
|
|
97
89
|
class AE(UnitedArabEmirates):
|
|
@@ -102,35 +94,35 @@ class ARE(UnitedArabEmirates):
|
|
|
102
94
|
pass
|
|
103
95
|
|
|
104
96
|
|
|
105
|
-
class UnitedArabEmiratesIslamicCalendar(
|
|
97
|
+
class UnitedArabEmiratesIslamicCalendar(_CustomIslamicCalendar):
|
|
106
98
|
EID_AL_ADHA_DATES = {
|
|
107
|
-
2017: (
|
|
108
|
-
2018: (
|
|
109
|
-
2019: (
|
|
110
|
-
2020: (
|
|
99
|
+
2017: (SEP, 1),
|
|
100
|
+
2018: (AUG, 21),
|
|
101
|
+
2019: (AUG, 11),
|
|
102
|
+
2020: (JUL, 31),
|
|
111
103
|
}
|
|
112
104
|
|
|
113
105
|
EID_AL_FITR_DATES = {
|
|
114
|
-
2017: (
|
|
115
|
-
2018: (
|
|
116
|
-
2019: (
|
|
117
|
-
2020: (
|
|
106
|
+
2017: (JUN, 25),
|
|
107
|
+
2018: (JUN, 14),
|
|
108
|
+
2019: (JUN, 3),
|
|
109
|
+
2020: (MAY, 24),
|
|
118
110
|
}
|
|
119
111
|
|
|
120
112
|
HIJRI_NEW_YEAR_DATES = {
|
|
121
|
-
2017: (
|
|
122
|
-
2018: (
|
|
123
|
-
2019: (
|
|
124
|
-
2020: (
|
|
113
|
+
2017: (SEP, 22),
|
|
114
|
+
2018: (SEP, 11),
|
|
115
|
+
2019: (AUG, 31),
|
|
116
|
+
2020: (AUG, 23),
|
|
125
117
|
}
|
|
126
118
|
|
|
127
119
|
ISRA_AND_MIRAJ_DATES = {
|
|
128
|
-
2017: (
|
|
129
|
-
2018: (
|
|
120
|
+
2017: (APR, 23),
|
|
121
|
+
2018: (APR, 13),
|
|
130
122
|
}
|
|
131
123
|
|
|
132
124
|
MAWLID_DATES = {
|
|
133
|
-
2017: (
|
|
134
|
-
2018: (
|
|
135
|
-
2019: (
|
|
125
|
+
2017: (NOV, 30),
|
|
126
|
+
2018: (NOV, 19),
|
|
127
|
+
2019: (NOV, 9),
|
|
136
128
|
}
|
|
@@ -11,39 +11,40 @@
|
|
|
11
11
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
|
-
from typing import
|
|
14
|
+
from typing import Tuple, Union
|
|
15
15
|
|
|
16
|
-
from
|
|
17
|
-
|
|
18
|
-
from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
|
|
19
|
-
from holidays.constants import JAN, MAR, APR, MAY, JUN, JUL, AUG, SEP, NOV
|
|
20
|
-
from holidays.constants import DEC, MON
|
|
16
|
+
from holidays.calendars import _get_nth_weekday_of_month
|
|
17
|
+
from holidays.constants import MAR, APR, MAY, JUN, JUL, AUG, SEP, NOV, DEC, MON
|
|
21
18
|
from holidays.holiday_base import HolidayBase
|
|
19
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
22
20
|
|
|
23
21
|
|
|
24
|
-
class UnitedKingdom(HolidayBase):
|
|
22
|
+
class UnitedKingdom(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
25
23
|
"""
|
|
26
24
|
https://en.wikipedia.org/wiki/Public_holidays_in_the_United_Kingdom
|
|
27
|
-
This class is extended by other countries (Ireland, Isle of Man, ...)
|
|
28
|
-
It must be taken into account when adding or modifying holidays.
|
|
29
|
-
Look at _country_specific() method for country specific behavior.
|
|
30
25
|
"""
|
|
31
26
|
|
|
32
27
|
country = "GB"
|
|
33
28
|
special_holidays = {
|
|
34
|
-
1977: (
|
|
35
|
-
1981: (
|
|
36
|
-
1999: (
|
|
37
|
-
2002: (
|
|
38
|
-
2011: (
|
|
39
|
-
2012: (
|
|
29
|
+
1977: (JUN, 7, "Silver Jubilee of Elizabeth II"),
|
|
30
|
+
1981: (JUL, 29, "Wedding of Charles and Diana"),
|
|
31
|
+
1999: (DEC, 31, "Millennium Celebrations"),
|
|
32
|
+
2002: (JUN, 3, "Golden Jubilee of Elizabeth II"),
|
|
33
|
+
2011: (APR, 29, "Wedding of William and Catherine"),
|
|
34
|
+
2012: (JUN, 5, "Diamond Jubilee of Elizabeth II"),
|
|
40
35
|
2022: (
|
|
41
36
|
(JUN, 3, "Platinum Jubilee of Elizabeth II"),
|
|
42
37
|
(SEP, 19, "State Funeral of Queen Elizabeth II"),
|
|
43
38
|
),
|
|
44
|
-
2023: (
|
|
39
|
+
2023: (MAY, 8, "Coronation of Charles III"),
|
|
45
40
|
}
|
|
46
41
|
subdivisions: Union[Tuple[()], Tuple[str, ...]] = (
|
|
42
|
+
"ENG", # England
|
|
43
|
+
"NIR", # Northern Ireland
|
|
44
|
+
"SCT", # Scotland
|
|
45
|
+
"WLS", # Wales
|
|
46
|
+
)
|
|
47
|
+
_deprecated_subdivisions: Tuple[str, ...] = (
|
|
47
48
|
"England",
|
|
48
49
|
"Northern Ireland",
|
|
49
50
|
"Scotland",
|
|
@@ -51,124 +52,131 @@ class UnitedKingdom(HolidayBase):
|
|
|
51
52
|
"Wales",
|
|
52
53
|
)
|
|
53
54
|
|
|
54
|
-
def __init__(self, **kwargs
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
def __init__(self, *args, **kwargs):
|
|
56
|
+
ChristianHolidays.__init__(self)
|
|
57
|
+
InternationalHolidays.__init__(self)
|
|
58
|
+
super().__init__(*args, **kwargs)
|
|
59
|
+
|
|
60
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
61
|
+
if self.observed and self._is_weekend(dt):
|
|
62
|
+
self._add_holiday(
|
|
63
|
+
"%s (Observed)" % self[dt],
|
|
64
|
+
dt + td(days=+2 if self._is_saturday(dt) else days),
|
|
65
|
+
)
|
|
59
66
|
|
|
60
67
|
def _populate(self, year: int) -> None:
|
|
61
68
|
super()._populate(year)
|
|
62
69
|
|
|
63
|
-
#
|
|
64
|
-
|
|
65
|
-
name = "New Year's Day"
|
|
66
|
-
dt = date(year, JAN, 1)
|
|
67
|
-
self[dt] = name
|
|
68
|
-
if self.observed and self._is_weekend(dt):
|
|
69
|
-
self[_get_nth_weekday_from(1, MON, dt)] = name + " (Observed)"
|
|
70
|
+
# Good Friday
|
|
71
|
+
self._add_good_friday("Good Friday")
|
|
70
72
|
|
|
71
|
-
#
|
|
72
|
-
if
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
elif self.observed and self._is_monday(dt):
|
|
81
|
-
self[dt + td(days=+1)] = name + " (Observed)"
|
|
73
|
+
# May Day bank holiday (first Monday in May)
|
|
74
|
+
if year >= 1978:
|
|
75
|
+
dt = (
|
|
76
|
+
date(year, MAY, 8)
|
|
77
|
+
# In 2020 moved to Friday to mark 75th anniversary of VE Day.
|
|
78
|
+
if year in {1995, 2020}
|
|
79
|
+
else _get_nth_weekday_of_month(1, MON, MAY, year)
|
|
80
|
+
)
|
|
81
|
+
self._add_holiday("May Day", dt)
|
|
82
82
|
|
|
83
|
-
#
|
|
84
|
-
if
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
# Spring bank holiday (last Monday in May)
|
|
84
|
+
if year >= 1971:
|
|
85
|
+
spring_bank_dates = {
|
|
86
|
+
2002: date(year, JUN, 4),
|
|
87
|
+
2012: date(year, JUN, 4),
|
|
88
|
+
2022: date(year, JUN, 2),
|
|
89
|
+
}
|
|
90
|
+
dt = spring_bank_dates.get(year, _get_nth_weekday_of_month(-1, MON, MAY, year))
|
|
91
|
+
self._add_holiday("Spring Bank Holiday", dt)
|
|
92
92
|
|
|
93
|
-
#
|
|
94
|
-
|
|
95
|
-
name = "Battle of the Boyne"
|
|
96
|
-
if self.subdiv == "UK":
|
|
97
|
-
name += " [Northern Ireland]"
|
|
98
|
-
self[date(year, JUL, 12)] = name
|
|
93
|
+
# Christmas Day
|
|
94
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
99
95
|
|
|
100
|
-
#
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
96
|
+
# Boxing Day
|
|
97
|
+
self._add_observed(self._add_christmas_day_two("Boxing Day"), days=+2)
|
|
98
|
+
|
|
99
|
+
if self.subdiv == "England":
|
|
100
|
+
self._add_subdiv_eng_holidays()
|
|
101
|
+
elif self.subdiv == "Northern Ireland":
|
|
102
|
+
self._add_subdiv_nir_holidays()
|
|
103
|
+
elif self.subdiv == "Scotland":
|
|
104
|
+
self._add_subdiv_sct_holidays()
|
|
105
|
+
elif self.subdiv == "Wales":
|
|
106
|
+
self._add_subdiv_wls_holidays()
|
|
107
|
+
|
|
108
|
+
def _add_subdiv_holidays(self):
|
|
109
|
+
if self.subdiv not in {"SCT", "Scotland"}:
|
|
110
|
+
# New Year's Day
|
|
111
|
+
if self._year >= 1974:
|
|
112
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
113
|
+
|
|
114
|
+
super()._add_subdiv_holidays()
|
|
115
|
+
|
|
116
|
+
def _add_subdiv_eng_holidays(self):
|
|
117
|
+
# Easter Monday
|
|
118
|
+
self._add_easter_monday("Easter Monday")
|
|
106
119
|
|
|
107
|
-
#
|
|
108
|
-
if self.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
# Late Summer bank holiday (last Monday in August)
|
|
121
|
+
if self._year >= 1971:
|
|
122
|
+
self._add_holiday(
|
|
123
|
+
"Late Summer Bank Holiday",
|
|
124
|
+
_get_nth_weekday_of_month(-1, MON, AUG, self._year),
|
|
125
|
+
)
|
|
113
126
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
self[dt] = name
|
|
118
|
-
if self.observed and self._is_weekend(dt):
|
|
119
|
-
self[dt + td(days=+2)] = name + " (Observed)"
|
|
127
|
+
def _add_subdiv_nir_holidays(self):
|
|
128
|
+
# St. Patrick's Day
|
|
129
|
+
self._add_observed(self._add_holiday("St. Patrick's Day", MAR, 17))
|
|
120
130
|
|
|
121
|
-
#
|
|
122
|
-
self.
|
|
131
|
+
# Easter Monday
|
|
132
|
+
self._add_easter_monday("Easter Monday")
|
|
123
133
|
|
|
124
|
-
|
|
125
|
-
|
|
134
|
+
# Battle of the Boyne
|
|
135
|
+
self._add_holiday("Battle of the Boyne", JUL, 12)
|
|
126
136
|
|
|
127
|
-
#
|
|
137
|
+
# Late Summer bank holiday (last Monday in August)
|
|
138
|
+
if self._year >= 1971:
|
|
139
|
+
self._add_holiday(
|
|
140
|
+
"Late Summer Bank Holiday",
|
|
141
|
+
_get_nth_weekday_of_month(-1, MON, AUG, self._year),
|
|
142
|
+
)
|
|
128
143
|
|
|
129
|
-
|
|
130
|
-
#
|
|
131
|
-
|
|
144
|
+
def _add_subdiv_sct_holidays(self):
|
|
145
|
+
# New Year's Day
|
|
146
|
+
name = "New Year's Day"
|
|
147
|
+
jan_1 = self._add_new_years_day(name)
|
|
148
|
+
if self.observed and self._is_weekend(jan_1):
|
|
149
|
+
self._add_holiday(
|
|
150
|
+
"%s (Observed)" % name,
|
|
151
|
+
jan_1 + td(days=+3 if self._is_saturday(jan_1) else +1),
|
|
152
|
+
)
|
|
132
153
|
|
|
133
|
-
#
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
self
|
|
154
|
+
# New Year Holiday
|
|
155
|
+
name = "New Year Holiday"
|
|
156
|
+
jan_2 = self._add_new_years_day_two(name)
|
|
157
|
+
self._add_observed(jan_2)
|
|
158
|
+
if self.observed and self._is_monday(jan_2):
|
|
159
|
+
self._add_new_years_day_three("%s (Observed)" % name)
|
|
139
160
|
|
|
140
|
-
#
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
dt = date(year, MAY, 8)
|
|
146
|
-
else:
|
|
147
|
-
dt = _get_nth_weekday_of_month(1, MON, MAY, year)
|
|
148
|
-
self[dt] = name
|
|
161
|
+
# Summer bank holiday (first Monday in August)
|
|
162
|
+
self._add_holiday(
|
|
163
|
+
"Summer Bank Holiday",
|
|
164
|
+
_get_nth_weekday_of_month(1, MON, AUG, self._year),
|
|
165
|
+
)
|
|
149
166
|
|
|
150
|
-
#
|
|
151
|
-
|
|
152
|
-
if year == 2012:
|
|
153
|
-
self[date(year, JUN, 4)] = name
|
|
154
|
-
elif year == 2022:
|
|
155
|
-
self[date(year, JUN, 2)] = name
|
|
156
|
-
elif year >= 1971:
|
|
157
|
-
self[_get_nth_weekday_of_month(-1, MON, MAY, year)] = name
|
|
167
|
+
# St. Andrew's Day
|
|
168
|
+
self._add_holiday("St. Andrew's Day", NOV, 30)
|
|
158
169
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if self.subdiv == "UK":
|
|
163
|
-
name += " [England/Wales/Northern Ireland]"
|
|
164
|
-
self[_get_nth_weekday_of_month(-1, MON, AUG, year)] = name
|
|
170
|
+
def _add_subdiv_wls_holidays(self):
|
|
171
|
+
# Easter Monday
|
|
172
|
+
self._add_easter_monday("Easter Monday")
|
|
165
173
|
|
|
166
|
-
#
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
174
|
+
# Late Summer bank holiday (last Monday in August)
|
|
175
|
+
if self._year >= 1971:
|
|
176
|
+
self._add_holiday(
|
|
177
|
+
"Late Summer Bank Holiday",
|
|
178
|
+
_get_nth_weekday_of_month(-1, MON, AUG, self._year),
|
|
179
|
+
)
|
|
172
180
|
|
|
173
181
|
|
|
174
182
|
class UK(UnitedKingdom):
|
|
@@ -16,8 +16,24 @@ from typing import Tuple, Union
|
|
|
16
16
|
from dateutil.easter import easter
|
|
17
17
|
|
|
18
18
|
from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
|
|
19
|
-
from holidays.constants import
|
|
20
|
-
|
|
19
|
+
from holidays.constants import (
|
|
20
|
+
JAN,
|
|
21
|
+
FEB,
|
|
22
|
+
MAR,
|
|
23
|
+
APR,
|
|
24
|
+
MAY,
|
|
25
|
+
JUN,
|
|
26
|
+
JUL,
|
|
27
|
+
AUG,
|
|
28
|
+
SEP,
|
|
29
|
+
OCT,
|
|
30
|
+
NOV,
|
|
31
|
+
DEC,
|
|
32
|
+
MON,
|
|
33
|
+
TUE,
|
|
34
|
+
THU,
|
|
35
|
+
FRI,
|
|
36
|
+
)
|
|
21
37
|
from holidays.holiday_base import HolidayBase
|
|
22
38
|
|
|
23
39
|
|
|
@@ -138,11 +154,7 @@ class UnitedStates(HolidayBase):
|
|
|
138
154
|
self[date(year, JAN, 19)] = name
|
|
139
155
|
|
|
140
156
|
# Inauguration Day
|
|
141
|
-
if (
|
|
142
|
-
self.subdiv in {"DC", "LA", "MD", "VA"}
|
|
143
|
-
and year >= 1789
|
|
144
|
-
and (year - 1789) % 4 == 0
|
|
145
|
-
):
|
|
157
|
+
if self.subdiv in {"DC", "LA", "MD", "VA"} and year >= 1789 and (year - 1789) % 4 == 0:
|
|
146
158
|
if year >= 1937:
|
|
147
159
|
dt = date(year, JAN, 20)
|
|
148
160
|
else:
|
|
@@ -154,13 +166,8 @@ class UnitedStates(HolidayBase):
|
|
|
154
166
|
name = "Martin Luther King Jr. Day"
|
|
155
167
|
if self.subdiv == "AL":
|
|
156
168
|
name = "Robert E. Lee/Martin Luther King Birthday"
|
|
157
|
-
elif (self.subdiv == "MS") or (
|
|
158
|
-
|
|
159
|
-
):
|
|
160
|
-
name = (
|
|
161
|
-
"Dr. Martin Luther King Jr. "
|
|
162
|
-
"and Robert E. Lee's Birthdays"
|
|
163
|
-
)
|
|
169
|
+
elif (self.subdiv == "MS") or ((self.subdiv == "AR") and (year <= 2017)):
|
|
170
|
+
name = "Dr. Martin Luther King Jr. and Robert E. Lee's Birthdays"
|
|
164
171
|
elif self.subdiv in {"AZ", "NH"}:
|
|
165
172
|
name = "Dr. Martin Luther King Jr./Civil Rights Day"
|
|
166
173
|
elif self.subdiv == "GA" and year <= 2011:
|
|
@@ -170,9 +177,9 @@ class UnitedStates(HolidayBase):
|
|
|
170
177
|
self[_get_nth_weekday_of_month(3, MON, JAN, year)] = name
|
|
171
178
|
|
|
172
179
|
# Lincoln's Birthday
|
|
173
|
-
if (
|
|
174
|
-
self.subdiv
|
|
175
|
-
)
|
|
180
|
+
if (self.subdiv in {"CT", "IA", "IL", "NJ", "NY"} and year >= 1971) or (
|
|
181
|
+
self.subdiv == "CA" and 1971 <= year <= 2009
|
|
182
|
+
):
|
|
176
183
|
self._add_with_observed(date(year, FEB, 12), "Lincoln's Birthday")
|
|
177
184
|
|
|
178
185
|
# Susan B. Anthony Day
|
|
@@ -212,15 +219,11 @@ class UnitedStates(HolidayBase):
|
|
|
212
219
|
|
|
213
220
|
# Guam Discovery Day
|
|
214
221
|
if self.subdiv == "GU" and year >= 1970:
|
|
215
|
-
self[
|
|
216
|
-
_get_nth_weekday_of_month(1, MON, MAR, year)
|
|
217
|
-
] = "Guam Discovery Day"
|
|
222
|
+
self[_get_nth_weekday_of_month(1, MON, MAR, year)] = "Guam Discovery Day"
|
|
218
223
|
|
|
219
224
|
# Casimir Pulaski Day
|
|
220
225
|
if self.subdiv == "IL" and year >= 1978:
|
|
221
|
-
self[
|
|
222
|
-
_get_nth_weekday_of_month(1, MON, MAR, year)
|
|
223
|
-
] = "Casimir Pulaski Day"
|
|
226
|
+
self[_get_nth_weekday_of_month(1, MON, MAR, year)] = "Casimir Pulaski Day"
|
|
224
227
|
|
|
225
228
|
# Texas Independence Day
|
|
226
229
|
if self.subdiv == "TX" and year >= 1874:
|
|
@@ -228,9 +231,7 @@ class UnitedStates(HolidayBase):
|
|
|
228
231
|
|
|
229
232
|
# Town Meeting Day
|
|
230
233
|
if self.subdiv == "VT" and year >= 1800:
|
|
231
|
-
self[
|
|
232
|
-
_get_nth_weekday_of_month(1, TUE, MAR, year)
|
|
233
|
-
] = "Town Meeting Day"
|
|
234
|
+
self[_get_nth_weekday_of_month(1, TUE, MAR, year)] = "Town Meeting Day"
|
|
234
235
|
|
|
235
236
|
# Evacuation Day
|
|
236
237
|
if self.subdiv == "MA" and year >= 1901:
|
|
@@ -242,21 +243,15 @@ class UnitedStates(HolidayBase):
|
|
|
242
243
|
|
|
243
244
|
# Emancipation Day
|
|
244
245
|
if self.subdiv == "PR":
|
|
245
|
-
self._add_with_observed(
|
|
246
|
-
date(year, MAR, 22), "Emancipation Day", before=False
|
|
247
|
-
)
|
|
246
|
+
self._add_with_observed(date(year, MAR, 22), "Emancipation Day", before=False)
|
|
248
247
|
|
|
249
248
|
# Commonwealth Covenant Day in Northern Mariana Islands
|
|
250
249
|
if self.subdiv == "MP":
|
|
251
|
-
self._add_with_observed(
|
|
252
|
-
date(year, MAR, 24), "Commonwealth Covenant Day"
|
|
253
|
-
)
|
|
250
|
+
self._add_with_observed(date(year, MAR, 24), "Commonwealth Covenant Day")
|
|
254
251
|
|
|
255
252
|
# Prince Jonah Kuhio Kalanianaole Day
|
|
256
253
|
if self.subdiv == "HI" and year >= 1949:
|
|
257
|
-
self._add_with_observed(
|
|
258
|
-
date(year, MAR, 26), "Prince Jonah Kuhio Kalanianaole Day"
|
|
259
|
-
)
|
|
254
|
+
self._add_with_observed(date(year, MAR, 26), "Prince Jonah Kuhio Kalanianaole Day")
|
|
260
255
|
|
|
261
256
|
# Seward's Day
|
|
262
257
|
if self.subdiv == "AK":
|
|
@@ -341,9 +336,7 @@ class UnitedStates(HolidayBase):
|
|
|
341
336
|
self[date(year, APR, 22)] = name
|
|
342
337
|
|
|
343
338
|
# Primary Election Day
|
|
344
|
-
if self.subdiv == "IN" and (
|
|
345
|
-
(year >= 2006 and year % 2 == 0) or year >= 2015
|
|
346
|
-
):
|
|
339
|
+
if self.subdiv == "IN" and ((year >= 2006 and year % 2 == 0) or year >= 2015):
|
|
347
340
|
self[
|
|
348
341
|
_get_nth_weekday_of_month(1, MON, MAY, year) + td(days=+1)
|
|
349
342
|
] = "Primary Election Day"
|
|
@@ -354,17 +347,13 @@ class UnitedStates(HolidayBase):
|
|
|
354
347
|
|
|
355
348
|
# Memorial Day
|
|
356
349
|
if year >= 1971:
|
|
357
|
-
self[
|
|
358
|
-
_get_nth_weekday_of_month(-1, MON, MAY, year)
|
|
359
|
-
] = "Memorial Day"
|
|
350
|
+
self[_get_nth_weekday_of_month(-1, MON, MAY, year)] = "Memorial Day"
|
|
360
351
|
elif year >= 1888:
|
|
361
352
|
self[date(year, MAY, 30)] = "Memorial Day"
|
|
362
353
|
|
|
363
354
|
# Juneteenth Day
|
|
364
355
|
if year >= 2021:
|
|
365
|
-
self._add_with_observed(
|
|
366
|
-
date(year, JUN, 19), "Juneteenth National Independence Day"
|
|
367
|
-
)
|
|
356
|
+
self._add_with_observed(date(year, JUN, 19), "Juneteenth National Independence Day")
|
|
368
357
|
|
|
369
358
|
# Jefferson Davis Birthday
|
|
370
359
|
name = "Jefferson Davis Birthday"
|
|
@@ -406,9 +395,7 @@ class UnitedStates(HolidayBase):
|
|
|
406
395
|
|
|
407
396
|
# Constitution Day
|
|
408
397
|
if self.subdiv == "PR":
|
|
409
|
-
self._add_with_observed(
|
|
410
|
-
date(year, JUL, 25), "Constitution Day", before=False
|
|
411
|
-
)
|
|
398
|
+
self._add_with_observed(date(year, JUL, 25), "Constitution Day", before=False)
|
|
412
399
|
|
|
413
400
|
# Victory Day
|
|
414
401
|
if self.subdiv == "RI" and year >= 1948:
|
|
@@ -416,15 +403,11 @@ class UnitedStates(HolidayBase):
|
|
|
416
403
|
|
|
417
404
|
# Statehood Day (Hawaii)
|
|
418
405
|
if self.subdiv == "HI" and year >= 1959:
|
|
419
|
-
self[
|
|
420
|
-
_get_nth_weekday_of_month(3, FRI, AUG, year)
|
|
421
|
-
] = "Statehood Day"
|
|
406
|
+
self[_get_nth_weekday_of_month(3, FRI, AUG, year)] = "Statehood Day"
|
|
422
407
|
|
|
423
408
|
# Bennington Battle Day
|
|
424
409
|
if self.subdiv == "VT" and year >= 1778:
|
|
425
|
-
self._add_with_observed(
|
|
426
|
-
date(year, AUG, 16), "Bennington Battle Day"
|
|
427
|
-
)
|
|
410
|
+
self._add_with_observed(date(year, AUG, 16), "Bennington Battle Day")
|
|
428
411
|
|
|
429
412
|
# Lyndon Baines Johnson Day
|
|
430
413
|
if self.subdiv == "TX" and year >= 1973:
|
|
@@ -449,9 +432,7 @@ class UnitedStates(HolidayBase):
|
|
|
449
432
|
|
|
450
433
|
# Commonwealth Cultural Day in Northern Mariana Islands
|
|
451
434
|
if self.subdiv == "MP":
|
|
452
|
-
self[
|
|
453
|
-
_get_nth_weekday_of_month(2, MON, OCT, year)
|
|
454
|
-
] = "Commonwealth Cultural Day"
|
|
435
|
+
self[_get_nth_weekday_of_month(2, MON, OCT, year)] = "Commonwealth Cultural Day"
|
|
455
436
|
|
|
456
437
|
# Alaska Day
|
|
457
438
|
if self.subdiv == "AK" and year >= 1867:
|
|
@@ -487,9 +468,7 @@ class UnitedStates(HolidayBase):
|
|
|
487
468
|
and year >= 2008
|
|
488
469
|
and year % 2 == 0
|
|
489
470
|
) or (self.subdiv in {"IN", "NY"} and year >= 2015):
|
|
490
|
-
self[
|
|
491
|
-
_get_nth_weekday_of_month(1, MON, NOV, year) + td(days=+1)
|
|
492
|
-
] = "Election Day"
|
|
471
|
+
self[_get_nth_weekday_of_month(1, MON, NOV, year) + td(days=+1)] = "Election Day"
|
|
493
472
|
|
|
494
473
|
# All Souls' Day
|
|
495
474
|
if self.subdiv == "GU":
|
|
@@ -511,9 +490,7 @@ class UnitedStates(HolidayBase):
|
|
|
511
490
|
|
|
512
491
|
# Discovery Day
|
|
513
492
|
if self.subdiv == "PR":
|
|
514
|
-
self._add_with_observed(
|
|
515
|
-
date(year, NOV, 19), "Discovery Day", before=False
|
|
516
|
-
)
|
|
493
|
+
self._add_with_observed(date(year, NOV, 19), "Discovery Day", before=False)
|
|
517
494
|
|
|
518
495
|
# Thanksgiving
|
|
519
496
|
if year >= 1871:
|
|
@@ -526,10 +503,7 @@ class UnitedStates(HolidayBase):
|
|
|
526
503
|
# Family Day
|
|
527
504
|
# New Mexico Presidents' Day
|
|
528
505
|
if (
|
|
529
|
-
(
|
|
530
|
-
self.subdiv in {"CA", "DE", "FL", "NC", "NH", "OK", "TX", "WV"}
|
|
531
|
-
and year >= 1975
|
|
532
|
-
)
|
|
506
|
+
(self.subdiv in {"CA", "DE", "FL", "NC", "NH", "OK", "TX", "WV"} and year >= 1975)
|
|
533
507
|
or (self.subdiv == "IN" and year >= 2010)
|
|
534
508
|
or (self.subdiv == "MD" and year >= 2008)
|
|
535
509
|
or self.subdiv in {"NM", "NV", "PA"}
|
|
@@ -546,9 +520,7 @@ class UnitedStates(HolidayBase):
|
|
|
546
520
|
name = "Family Day"
|
|
547
521
|
if self.subdiv == "NM":
|
|
548
522
|
name = "Presidents' Day"
|
|
549
|
-
self[
|
|
550
|
-
_get_nth_weekday_of_month(4, THU, NOV, year) + td(days=+1)
|
|
551
|
-
] = name
|
|
523
|
+
self[_get_nth_weekday_of_month(4, THU, NOV, year) + td(days=+1)] = name
|
|
552
524
|
|
|
553
525
|
# Robert E. Lee's Birthday
|
|
554
526
|
if self.subdiv == "GA" and year >= 1986:
|
|
@@ -556,9 +528,7 @@ class UnitedStates(HolidayBase):
|
|
|
556
528
|
name = "State Holiday"
|
|
557
529
|
else:
|
|
558
530
|
name = "Robert E. Lee's Birthday"
|
|
559
|
-
self[
|
|
560
|
-
_get_nth_weekday_of_month(4, THU, NOV, year) + td(days=+1)
|
|
561
|
-
] = name
|
|
531
|
+
self[_get_nth_weekday_of_month(4, THU, NOV, year) + td(days=+1)] = name
|
|
562
532
|
|
|
563
533
|
# Lady of Camarin Day
|
|
564
534
|
if self.subdiv == "GU":
|
holidays/countries/uruguay.py
CHANGED