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/norway.py
CHANGED
|
@@ -99,9 +99,7 @@ class Norway(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
99
99
|
# Optionally add all Sundays of the year.
|
|
100
100
|
begin = _get_nth_weekday_of_month(1, SUN, JAN, year)
|
|
101
101
|
end = date(year, DEC, 31)
|
|
102
|
-
for dt in (
|
|
103
|
-
begin + td(days=n) for n in range(0, (end - begin).days + 1, 7)
|
|
104
|
-
):
|
|
102
|
+
for dt in (begin + td(days=n) for n in range(0, (end - begin).days + 1, 7)):
|
|
105
103
|
# Sunday.
|
|
106
104
|
self._add_holiday(tr("Søndag"), dt)
|
|
107
105
|
|
holidays/countries/pakistan.py
CHANGED
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
12
|
from holidays.calendars import _CustomIslamicCalendar
|
|
13
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
14
|
-
from holidays.constants import OCT, NOV, DEC
|
|
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
15
|
from holidays.holiday_groups import InternationalHolidays, IslamicHolidays
|
|
17
16
|
|
|
@@ -81,88 +80,88 @@ class PakistanIslamicCalendar(_CustomIslamicCalendar):
|
|
|
81
80
|
# https://www.timeanddate.com/holidays/pakistan/first-day-ashura
|
|
82
81
|
|
|
83
82
|
ASHURA_DATES = {
|
|
84
|
-
2005: (
|
|
85
|
-
2006: (
|
|
86
|
-
2007: (
|
|
87
|
-
2008: (
|
|
83
|
+
2005: (FEB, 18),
|
|
84
|
+
2006: (FEB, 8),
|
|
85
|
+
2007: (JAN, 28),
|
|
86
|
+
2008: (JAN, 18),
|
|
88
87
|
2009: ((JAN, 6), (DEC, 26)),
|
|
89
|
-
2010: (
|
|
90
|
-
2011: (
|
|
91
|
-
2012: (
|
|
92
|
-
2013: (
|
|
93
|
-
2014: (
|
|
94
|
-
2015: (
|
|
95
|
-
2016: (
|
|
96
|
-
2017: (
|
|
97
|
-
2018: (
|
|
98
|
-
2019: (
|
|
99
|
-
2020: (
|
|
100
|
-
2021: (
|
|
101
|
-
2022: (
|
|
88
|
+
2010: (DEC, 16),
|
|
89
|
+
2011: (DEC, 5),
|
|
90
|
+
2012: (NOV, 23),
|
|
91
|
+
2013: (NOV, 13),
|
|
92
|
+
2014: (NOV, 3),
|
|
93
|
+
2015: (OCT, 23),
|
|
94
|
+
2016: (OCT, 11),
|
|
95
|
+
2017: (SEP, 30),
|
|
96
|
+
2018: (SEP, 21),
|
|
97
|
+
2019: (SEP, 9),
|
|
98
|
+
2020: (AUG, 29),
|
|
99
|
+
2021: (AUG, 18),
|
|
100
|
+
2022: (AUG, 9),
|
|
102
101
|
}
|
|
103
102
|
|
|
104
103
|
# https://www.timeanddate.com/holidays/pakistan/eid-ul-azha
|
|
105
104
|
EID_AL_ADHA_DATES = {
|
|
106
|
-
2005: (
|
|
105
|
+
2005: (JAN, 21),
|
|
107
106
|
2006: ((JAN, 10), (DEC, 31)),
|
|
108
|
-
2007: (
|
|
109
|
-
2008: (
|
|
110
|
-
2009: (
|
|
111
|
-
2010: (
|
|
112
|
-
2011: (
|
|
113
|
-
2012: (
|
|
114
|
-
2013: (
|
|
115
|
-
2014: (
|
|
116
|
-
2015: (
|
|
117
|
-
2016: (
|
|
118
|
-
2017: (
|
|
119
|
-
2018: (
|
|
120
|
-
2019: (
|
|
121
|
-
2020: (
|
|
122
|
-
2021: (
|
|
123
|
-
2022: (
|
|
107
|
+
2007: (DEC, 20),
|
|
108
|
+
2008: (DEC, 9),
|
|
109
|
+
2009: (NOV, 28),
|
|
110
|
+
2010: (NOV, 17),
|
|
111
|
+
2011: (NOV, 7),
|
|
112
|
+
2012: (OCT, 26),
|
|
113
|
+
2013: (OCT, 15),
|
|
114
|
+
2014: (OCT, 6),
|
|
115
|
+
2015: (SEP, 24),
|
|
116
|
+
2016: (SEP, 12),
|
|
117
|
+
2017: (SEP, 2),
|
|
118
|
+
2018: (AUG, 22),
|
|
119
|
+
2019: (AUG, 12),
|
|
120
|
+
2020: (JUL, 31),
|
|
121
|
+
2021: (JUL, 21),
|
|
122
|
+
2022: (JUL, 10),
|
|
124
123
|
}
|
|
125
124
|
|
|
126
125
|
# https://www.timeanddate.com/holidays/pakistan/eid-ul-fitr-1
|
|
127
126
|
EID_AL_FITR_DATES = {
|
|
128
|
-
2005: (
|
|
129
|
-
2006: (
|
|
130
|
-
2007: (
|
|
131
|
-
2008: (
|
|
132
|
-
2009: (
|
|
133
|
-
2010: (
|
|
134
|
-
2011: (
|
|
135
|
-
2012: (
|
|
136
|
-
2013: (
|
|
137
|
-
2014: (
|
|
138
|
-
2015: (
|
|
139
|
-
2016: (
|
|
140
|
-
2017: (
|
|
141
|
-
2018: (
|
|
142
|
-
2019: (
|
|
143
|
-
2020: (
|
|
144
|
-
2021: (
|
|
145
|
-
2022: (
|
|
127
|
+
2005: (NOV, 4),
|
|
128
|
+
2006: (OCT, 24),
|
|
129
|
+
2007: (OCT, 13),
|
|
130
|
+
2008: (OCT, 2),
|
|
131
|
+
2009: (SEP, 21),
|
|
132
|
+
2010: (SEP, 10),
|
|
133
|
+
2011: (AUG, 31),
|
|
134
|
+
2012: (AUG, 19),
|
|
135
|
+
2013: (AUG, 8),
|
|
136
|
+
2014: (JUL, 29),
|
|
137
|
+
2015: (JUL, 17),
|
|
138
|
+
2016: (JUL, 6),
|
|
139
|
+
2017: (JUN, 26),
|
|
140
|
+
2018: (JUN, 16),
|
|
141
|
+
2019: (JUN, 5),
|
|
142
|
+
2020: (MAY, 24),
|
|
143
|
+
2021: (MAY, 13),
|
|
144
|
+
2022: (MAY, 3),
|
|
146
145
|
}
|
|
147
146
|
|
|
148
147
|
# https://www.timeanddate.com/holidays/pakistan/eid-milad-un-nabi
|
|
149
148
|
MAWLID_DATES = {
|
|
150
|
-
2005: (
|
|
151
|
-
2006: (
|
|
152
|
-
2007: (
|
|
153
|
-
2008: (
|
|
154
|
-
2009: (
|
|
155
|
-
2010: (
|
|
156
|
-
2011: (
|
|
157
|
-
2012: (
|
|
158
|
-
2013: (
|
|
159
|
-
2014: (
|
|
160
|
-
2015: (
|
|
161
|
-
2016: (
|
|
162
|
-
2017: (
|
|
163
|
-
2018: (
|
|
164
|
-
2019: (
|
|
165
|
-
2020: (
|
|
166
|
-
2021: (
|
|
167
|
-
2022: (
|
|
149
|
+
2005: (APR, 22),
|
|
150
|
+
2006: (APR, 11),
|
|
151
|
+
2007: (MAR, 31),
|
|
152
|
+
2008: (MAR, 21),
|
|
153
|
+
2009: (MAR, 9),
|
|
154
|
+
2010: (MAR, 1),
|
|
155
|
+
2011: (FEB, 17),
|
|
156
|
+
2012: (FEB, 5),
|
|
157
|
+
2013: (JAN, 24),
|
|
158
|
+
2014: (JAN, 14),
|
|
159
|
+
2015: (JAN, 4),
|
|
160
|
+
2016: (DEC, 12),
|
|
161
|
+
2017: (DEC, 1),
|
|
162
|
+
2018: (NOV, 21),
|
|
163
|
+
2019: (NOV, 10),
|
|
164
|
+
2020: (OCT, 30),
|
|
165
|
+
2021: (OCT, 19),
|
|
166
|
+
2022: (OCT, 9),
|
|
168
167
|
}
|
holidays/countries/panama.py
CHANGED
|
@@ -12,13 +12,12 @@
|
|
|
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, NOV, DEC
|
|
15
|
+
from holidays.constants import JAN, NOV, DEC
|
|
18
16
|
from holidays.holiday_base import HolidayBase
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class Panama(HolidayBase):
|
|
20
|
+
class Panama(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
21
|
"""
|
|
23
22
|
References:
|
|
24
23
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Panama
|
|
@@ -27,55 +26,57 @@ class Panama(HolidayBase):
|
|
|
27
26
|
|
|
28
27
|
country = "PA"
|
|
29
28
|
|
|
30
|
-
def
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
def __init__(self, *args, **kwargs):
|
|
30
|
+
ChristianHolidays.__init__(self)
|
|
31
|
+
InternationalHolidays.__init__(self)
|
|
32
|
+
super().__init__(*args, **kwargs)
|
|
33
|
+
|
|
34
|
+
def _add_observed(self, dt: date) -> None:
|
|
35
|
+
if self.observed and self._is_sunday(dt):
|
|
36
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=+1))
|
|
35
37
|
|
|
38
|
+
def _populate(self, year):
|
|
36
39
|
super()._populate(year)
|
|
37
40
|
|
|
38
41
|
# New Year's Day
|
|
39
|
-
|
|
42
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
40
43
|
|
|
41
44
|
# Martyrs' Day
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
easter_date = easter(year)
|
|
45
|
+
self._add_observed(self._add_holiday("Martyrs' Day", JAN, 9))
|
|
45
46
|
|
|
46
47
|
# Carnival
|
|
47
|
-
self
|
|
48
|
+
self._add_carnival_tuesday("Carnival")
|
|
48
49
|
|
|
49
50
|
# Good Friday
|
|
50
|
-
self
|
|
51
|
+
self._add_good_friday("Good Friday")
|
|
51
52
|
|
|
52
53
|
# Labour Day
|
|
53
|
-
|
|
54
|
+
self._add_observed(self._add_labor_day("Labour Day"))
|
|
54
55
|
|
|
55
56
|
# Separation Day
|
|
56
|
-
self
|
|
57
|
+
self._add_holiday("Separation Day", NOV, 3)
|
|
57
58
|
|
|
58
59
|
# National Symbols Day
|
|
59
|
-
self
|
|
60
|
+
self._add_holiday("National Symbols Day", NOV, 4)
|
|
60
61
|
|
|
61
62
|
# Colon Day
|
|
62
|
-
self
|
|
63
|
+
self._add_holiday("Colon Day", NOV, 5)
|
|
63
64
|
|
|
64
65
|
# Los Santos Uprising Day
|
|
65
|
-
self
|
|
66
|
+
self._add_holiday("Los Santos Uprising Day", NOV, 10)
|
|
66
67
|
|
|
67
68
|
# Independence Day
|
|
68
|
-
|
|
69
|
+
self._add_observed(self._add_holiday("Independence Day", NOV, 28))
|
|
69
70
|
|
|
70
71
|
# Mother's Day
|
|
71
|
-
|
|
72
|
+
self._add_observed(self._add_holiday("Mother's Day", DEC, 8))
|
|
72
73
|
|
|
73
74
|
# National Mourning Day
|
|
74
75
|
if year >= 2022:
|
|
75
|
-
|
|
76
|
+
self._add_observed(self._add_holiday("National Mourning Day", DEC, 20))
|
|
76
77
|
|
|
77
78
|
# Christmas Day
|
|
78
|
-
|
|
79
|
+
self._add_observed(self._add_christmas_day("Christmas Day"))
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
class PA(Panama):
|
holidays/countries/paraguay.py
CHANGED
|
@@ -10,17 +10,14 @@
|
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
12
|
from datetime import date
|
|
13
|
-
from datetime import timedelta as td
|
|
14
13
|
from gettext import gettext as tr
|
|
15
14
|
|
|
16
|
-
from
|
|
17
|
-
|
|
18
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
19
|
-
from holidays.constants import OCT, DEC
|
|
15
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC
|
|
20
16
|
from holidays.holiday_base import HolidayBase
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
21
18
|
|
|
22
19
|
|
|
23
|
-
class Paraguay(HolidayBase):
|
|
20
|
+
class Paraguay(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
24
21
|
"""
|
|
25
22
|
https://www.ghp.com.py/news/feriados-nacionales-del-ano-2019-en-paraguay
|
|
26
23
|
https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_feriados_en_Paraguay
|
|
@@ -37,10 +34,10 @@ class Paraguay(HolidayBase):
|
|
|
37
34
|
special_holidays = {
|
|
38
35
|
# public holiday for business purposes, in view of
|
|
39
36
|
# the recently increased risk of Dengue fever
|
|
40
|
-
2007: (
|
|
37
|
+
2007: (JAN, 29, public_holiday),
|
|
41
38
|
# public sector holiday to celebrate Paraguay's
|
|
42
39
|
# football team's qualification for the 2010 World Cup
|
|
43
|
-
2009: (
|
|
40
|
+
2009: (SEP, 10, public_holiday),
|
|
44
41
|
2010: (
|
|
45
42
|
# public holiday to coincide with the Paraguay-Italy
|
|
46
43
|
# game of the current World Cup
|
|
@@ -143,15 +140,20 @@ class Paraguay(HolidayBase):
|
|
|
143
140
|
}
|
|
144
141
|
supported_languages = ("en_US", "es", "uk")
|
|
145
142
|
|
|
146
|
-
def
|
|
147
|
-
|
|
148
|
-
|
|
143
|
+
def __init__(self, *args, **kwargs):
|
|
144
|
+
ChristianHolidays.__init__(self)
|
|
145
|
+
InternationalHolidays.__init__(self)
|
|
146
|
+
super().__init__(*args, **kwargs)
|
|
147
|
+
|
|
148
|
+
def _move_holiday(self, dt: date) -> None:
|
|
149
|
+
if not self.observed and self._is_weekend(dt):
|
|
150
|
+
self.pop(dt)
|
|
149
151
|
|
|
150
152
|
def _populate(self, year):
|
|
151
153
|
super()._populate(year)
|
|
152
154
|
|
|
153
155
|
# New Year's Day.
|
|
154
|
-
self.
|
|
156
|
+
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
155
157
|
|
|
156
158
|
dates_obs = {
|
|
157
159
|
2013: (MAR, 4),
|
|
@@ -159,51 +161,51 @@ class Paraguay(HolidayBase):
|
|
|
159
161
|
2018: (FEB, 26),
|
|
160
162
|
2022: (FEB, 28),
|
|
161
163
|
}
|
|
162
|
-
# Patriots Day.
|
|
163
164
|
self._add_holiday(
|
|
165
|
+
# Patriots Day.
|
|
164
166
|
tr("Día de los Héroes de la Patria"),
|
|
165
|
-
|
|
167
|
+
*dates_obs.get(year, (MAR, 1)),
|
|
166
168
|
)
|
|
167
169
|
|
|
168
|
-
# Holy Week
|
|
169
|
-
easter_date = easter(year)
|
|
170
170
|
# Maundy Thursday.
|
|
171
|
-
self.
|
|
171
|
+
self._add_holy_thursday(tr("Jueves Santo"))
|
|
172
|
+
|
|
172
173
|
# Good Friday.
|
|
173
|
-
self.
|
|
174
|
+
self._add_good_friday(tr("Viernes Santo"))
|
|
175
|
+
|
|
174
176
|
# Easter Day.
|
|
175
|
-
self.
|
|
177
|
+
self._move_holiday(self._add_easter_sunday(tr("Día de Pascuas")))
|
|
176
178
|
|
|
177
179
|
# Labour Day.
|
|
178
|
-
self.
|
|
179
|
-
tr("Día del Trabajador"), date(year, MAY, 1)
|
|
180
|
-
)
|
|
180
|
+
self._move_holiday(self._add_labor_day(tr("Día del Trabajador")))
|
|
181
181
|
|
|
182
182
|
# Independence Day.
|
|
183
183
|
name = tr("Día de la Independencia Nacional")
|
|
184
|
-
if year
|
|
185
|
-
self._add_holiday(name,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
self.
|
|
189
|
-
self._add_observed_holiday(name, date(year, MAY, 15))
|
|
190
|
-
else:
|
|
191
|
-
self._add_observed_holiday(name, date(year, MAY, 15))
|
|
184
|
+
if year >= 2012:
|
|
185
|
+
self._move_holiday(self._add_holiday(name, MAY, 14))
|
|
186
|
+
may_15 = self._add_holiday(name, MAY, 15)
|
|
187
|
+
if year != 2021:
|
|
188
|
+
self._move_holiday(may_15)
|
|
192
189
|
|
|
193
190
|
dates_obs = {
|
|
194
191
|
2014: (JUN, 16),
|
|
195
192
|
2018: (JUN, 11),
|
|
196
193
|
}
|
|
197
|
-
self.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
self._move_holiday(
|
|
195
|
+
self._add_holiday(
|
|
196
|
+
# Chaco Armistice Day.
|
|
197
|
+
tr("Día de la Paz del Chaco"),
|
|
198
|
+
*dates_obs.get(year, (JUN, 12)),
|
|
199
|
+
),
|
|
201
200
|
)
|
|
202
201
|
|
|
203
|
-
self.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
202
|
+
self._move_holiday(
|
|
203
|
+
self._add_holiday(
|
|
204
|
+
# Asuncion Foundation's Day.
|
|
205
|
+
tr("Día de la Fundación de Asunción"),
|
|
206
|
+
AUG,
|
|
207
|
+
15,
|
|
208
|
+
),
|
|
207
209
|
)
|
|
208
210
|
|
|
209
211
|
if year >= 2000:
|
|
@@ -214,20 +216,25 @@ class Paraguay(HolidayBase):
|
|
|
214
216
|
2021: (SEP, 27),
|
|
215
217
|
2022: (OCT, 3),
|
|
216
218
|
}
|
|
217
|
-
self.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
self._move_holiday(
|
|
220
|
+
self._add_holiday(
|
|
221
|
+
# Boqueron Battle Day.
|
|
222
|
+
tr("Día de la Batalla de Boquerón"),
|
|
223
|
+
*dates_obs.get(year, (SEP, 29)),
|
|
224
|
+
),
|
|
221
225
|
)
|
|
222
226
|
|
|
223
|
-
self.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
+
self._move_holiday(
|
|
228
|
+
self._add_holiday(
|
|
229
|
+
# Caacupe Virgin Day.
|
|
230
|
+
tr("Día de la Virgen de Caacupé"),
|
|
231
|
+
DEC,
|
|
232
|
+
8,
|
|
233
|
+
)
|
|
227
234
|
)
|
|
228
235
|
|
|
229
236
|
# Christmas.
|
|
230
|
-
self.
|
|
237
|
+
self._add_christmas_day(tr("Navidad"))
|
|
231
238
|
|
|
232
239
|
|
|
233
240
|
class PY(Paraguay):
|
|
@@ -12,8 +12,12 @@
|
|
|
12
12
|
from holidays.calendars import _get_nth_weekday_of_month
|
|
13
13
|
from holidays.constants import FEB, APR, JUN, AUG, NOV, DEC, MON
|
|
14
14
|
from holidays.holiday_base import HolidayBase
|
|
15
|
-
from holidays.holiday_groups import
|
|
16
|
-
|
|
15
|
+
from holidays.holiday_groups import (
|
|
16
|
+
ChineseCalendarHolidays,
|
|
17
|
+
ChristianHolidays,
|
|
18
|
+
InternationalHolidays,
|
|
19
|
+
IslamicHolidays,
|
|
20
|
+
)
|
|
17
21
|
|
|
18
22
|
|
|
19
23
|
class Philippines(
|
holidays/countries/poland.py
CHANGED
|
@@ -24,9 +24,7 @@ class Poland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
24
24
|
|
|
25
25
|
country = "PL"
|
|
26
26
|
default_language = "pl"
|
|
27
|
-
special_holidays = {
|
|
28
|
-
2018: ((NOV, 12, tr("Narodowe Święto Niepodległości - 100-lecie")),)
|
|
29
|
-
}
|
|
27
|
+
special_holidays = {2018: (NOV, 12, tr("Narodowe Święto Niepodległości - 100-lecie"))}
|
|
30
28
|
supported_languages = ("en_US", "pl", "uk")
|
|
31
29
|
|
|
32
30
|
def __init__(self, *args, **kwargs):
|
|
@@ -67,9 +65,7 @@ class Poland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
67
65
|
|
|
68
66
|
if 1946 <= year <= 1950:
|
|
69
67
|
# National Victory and Freedom Day.
|
|
70
|
-
self._add_holiday(
|
|
71
|
-
tr("Narodowe Święto Zwycięstwa i Wolności"), MAY, 9
|
|
72
|
-
)
|
|
68
|
+
self._add_holiday(tr("Narodowe Święto Zwycięstwa i Wolności"), MAY, 9)
|
|
73
69
|
|
|
74
70
|
if year <= 1950:
|
|
75
71
|
# Ascension Day.
|
|
@@ -100,9 +96,7 @@ class Poland(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
100
96
|
|
|
101
97
|
if year <= 1960 or year >= 1989:
|
|
102
98
|
# Assumption of the Virgin Mary.
|
|
103
|
-
self._add_assumption_of_mary_day(
|
|
104
|
-
tr("Wniebowzięcie Najświętszej Marii Panny")
|
|
105
|
-
)
|
|
99
|
+
self._add_assumption_of_mary_day(tr("Wniebowzięcie Najświętszej Marii Panny"))
|
|
106
100
|
|
|
107
101
|
# All Saints' Day.
|
|
108
102
|
self._add_all_saints_day(tr("Uroczystość Wszystkich Świętych"))
|
holidays/countries/portugal.py
CHANGED
|
@@ -109,15 +109,10 @@ class Portugal(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
109
109
|
self._add_labor_day(tr("Dia do Trabalhador"))
|
|
110
110
|
if year >= 1911:
|
|
111
111
|
if 1933 <= year <= 1973:
|
|
112
|
-
self._add_holiday(
|
|
113
|
-
tr("Dia de Camões, de Portugal e da Raça"), JUN, 10
|
|
114
|
-
)
|
|
112
|
+
self._add_holiday(tr("Dia de Camões, de Portugal e da Raça"), JUN, 10)
|
|
115
113
|
elif year >= 1978:
|
|
116
114
|
self._add_holiday(
|
|
117
|
-
tr(
|
|
118
|
-
"Dia de Portugal, de Camões e das Comunidades "
|
|
119
|
-
"Portuguesas"
|
|
120
|
-
),
|
|
115
|
+
tr("Dia de Portugal, de Camões e das Comunidades Portuguesas"),
|
|
121
116
|
JUN,
|
|
122
117
|
10,
|
|
123
118
|
)
|
|
@@ -222,10 +217,7 @@ class Portugal(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
222
217
|
self._add_holiday(tr("Dia da Região Autónoma da Madeira"), JUL, 1)
|
|
223
218
|
elif self._year >= 1989:
|
|
224
219
|
self._add_holiday(
|
|
225
|
-
tr(
|
|
226
|
-
"Dia da Região Autónoma da Madeira e "
|
|
227
|
-
"das Comunidades Madeirenses"
|
|
228
|
-
),
|
|
220
|
+
tr("Dia da Região Autónoma da Madeira e das Comunidades Madeirenses"),
|
|
229
221
|
JUL,
|
|
230
222
|
1,
|
|
231
223
|
)
|
holidays/countries/romania.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
from gettext import gettext as tr
|
|
13
13
|
|
|
14
14
|
from holidays.calendars import GREGORIAN_CALENDAR, JULIAN_CALENDAR
|
|
15
|
-
from holidays.constants import JAN,
|
|
15
|
+
from holidays.constants import JAN, NOV, DEC
|
|
16
16
|
from holidays.holiday_base import HolidayBase
|
|
17
17
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
18
18
|
|
|
@@ -64,7 +64,7 @@ class Romania(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
64
64
|
|
|
65
65
|
if year >= 2017:
|
|
66
66
|
# Children's Day.
|
|
67
|
-
self.
|
|
67
|
+
self._add_childrens_day(tr("Ziua Copilului"))
|
|
68
68
|
|
|
69
69
|
# Pentecost.
|
|
70
70
|
name = tr("Rusaliile")
|
|
@@ -79,9 +79,7 @@ class Romania(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
79
79
|
# Law #147/2012
|
|
80
80
|
if year >= 2012:
|
|
81
81
|
# Saint Andrew's Day.
|
|
82
|
-
self._add_holiday(
|
|
83
|
-
tr("Sfantul Apostol Andrei cel Intai chemat"), NOV, 30
|
|
84
|
-
)
|
|
82
|
+
self._add_holiday(tr("Sfantul Apostol Andrei cel Intai chemat"), NOV, 30)
|
|
85
83
|
|
|
86
84
|
# National Day.
|
|
87
85
|
self._add_holiday(tr("Ziua Națională a României"), DEC, 1)
|
|
@@ -36,40 +36,30 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
36
36
|
country = "SA"
|
|
37
37
|
special_holidays = {
|
|
38
38
|
# celebrate the country's win against Argentina in the World Cup
|
|
39
|
-
2022: (
|
|
39
|
+
2022: (NOV, 23, "National Holiday"),
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
def __init__(self, *args, **kwargs):
|
|
43
43
|
IslamicHolidays.__init__(self)
|
|
44
44
|
super().__init__(*args, **kwargs)
|
|
45
45
|
|
|
46
|
-
def _add_islamic_observed(
|
|
47
|
-
self, hol_name: str, hol_dates: Set[date]
|
|
48
|
-
) -> None:
|
|
46
|
+
def _add_islamic_observed(self, hol_name: str, hol_dates: Set[date]) -> None:
|
|
49
47
|
if not self.observed:
|
|
50
48
|
return None
|
|
51
49
|
for dt in hol_dates:
|
|
52
|
-
weekend_days = sum(
|
|
53
|
-
self._is_weekend(dt + td(days=i)) for i in range(4)
|
|
54
|
-
)
|
|
50
|
+
weekend_days = sum(self._is_weekend(dt + td(days=i)) for i in range(4))
|
|
55
51
|
for i in range(weekend_days):
|
|
56
|
-
self._add_holiday(
|
|
57
|
-
f"{hol_name} (Observed)", dt + td(days=+4 + i)
|
|
58
|
-
)
|
|
52
|
+
self._add_holiday(f"{hol_name} (Observed)", dt + td(days=+4 + i))
|
|
59
53
|
|
|
60
54
|
def _add_observed(self, hol_date: date) -> None:
|
|
61
55
|
if self.observed:
|
|
62
56
|
weekend = sorted(self.weekend)
|
|
63
57
|
# 1st weekend day (Thursday before 2013 and Friday otherwise)
|
|
64
58
|
if hol_date.weekday() == weekend[0]:
|
|
65
|
-
self._add_holiday(
|
|
66
|
-
f"{self[hol_date]} (Observed)", hol_date + td(days=-1)
|
|
67
|
-
)
|
|
59
|
+
self._add_holiday(f"{self[hol_date]} (Observed)", hol_date + td(days=-1))
|
|
68
60
|
# 2nd weekend day (Friday before 2013 and Saturday otherwise)
|
|
69
61
|
elif hol_date.weekday() == weekend[1]:
|
|
70
|
-
self._add_holiday(
|
|
71
|
-
f"{self[hol_date]} (Observed)", hol_date + td(days=+1)
|
|
72
|
-
)
|
|
62
|
+
self._add_holiday(f"{self[hol_date]} (Observed)", hol_date + td(days=+1))
|
|
73
63
|
|
|
74
64
|
def _populate(self, year):
|
|
75
65
|
super()._populate(year)
|
|
@@ -113,9 +103,7 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
113
103
|
if year >= 2005:
|
|
114
104
|
dt = date(year, SEP, 23)
|
|
115
105
|
if dt not in self:
|
|
116
|
-
self._add_observed(
|
|
117
|
-
self._add_holiday("National Day Holiday", dt)
|
|
118
|
-
)
|
|
106
|
+
self._add_observed(self._add_holiday("National Day Holiday", dt))
|
|
119
107
|
|
|
120
108
|
# Founding Day holiday (started 2022).
|
|
121
109
|
# Note: if founding day happens within the Eid al-Fitr Holiday or
|
|
@@ -123,9 +111,7 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
123
111
|
if year >= 2022:
|
|
124
112
|
dt = date(year, FEB, 22)
|
|
125
113
|
if dt not in self:
|
|
126
|
-
self._add_observed(
|
|
127
|
-
self._add_holiday("Founding Day Holiday", dt)
|
|
128
|
-
)
|
|
114
|
+
self._add_observed(self._add_holiday("Founding Day Holiday", dt))
|
|
129
115
|
|
|
130
116
|
# observed holidays special cases
|
|
131
117
|
if self.observed and year == 2001:
|