holidays 0.78__py3-none-any.whl → 0.79__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/calendars/__init__.py +1 -0
- holidays/calendars/chinese.py +14 -4
- holidays/calendars/ethiopian.py +31 -0
- holidays/calendars/islamic.py +16 -4
- holidays/calendars/julian.py +14 -0
- holidays/calendars/mandaean.py +59 -0
- holidays/calendars/tibetan.py +1466 -0
- holidays/constants.py +2 -0
- holidays/countries/__init__.py +13 -0
- holidays/countries/afghanistan.py +6 -39
- holidays/countries/albania.py +3 -22
- holidays/countries/argentina.py +3 -18
- holidays/countries/azerbaijan.py +6 -39
- holidays/countries/bahrain.py +29 -38
- holidays/countries/bhutan.py +194 -0
- holidays/countries/bosnia_and_herzegovina.py +2 -27
- holidays/countries/brunei.py +7 -117
- holidays/countries/burkina_faso.py +4 -15
- holidays/countries/cameroon.py +3 -34
- holidays/countries/canada.py +2 -1
- holidays/countries/central_african_republic.py +3 -16
- holidays/countries/chad.py +4 -17
- holidays/countries/chile.py +20 -4
- holidays/countries/christmas_island.py +4 -15
- holidays/countries/cocos_islands.py +5 -24
- holidays/countries/egypt.py +5 -37
- holidays/countries/ethiopia.py +18 -47
- holidays/countries/fiji.py +1 -2
- holidays/countries/gabon.py +3 -23
- holidays/countries/gambia.py +168 -0
- holidays/countries/guinea.py +5 -27
- holidays/countries/guinea_bissau.py +100 -0
- holidays/countries/guyana.py +2 -17
- holidays/countries/india.py +12 -25
- holidays/countries/indonesia.py +6 -158
- holidays/countries/iran.py +16 -126
- holidays/countries/iraq.py +276 -0
- holidays/countries/kazakhstan.py +2 -18
- holidays/countries/kenya.py +2 -8
- holidays/countries/kiribati.py +124 -0
- holidays/countries/lebanon.py +5 -87
- holidays/countries/liberia.py +80 -0
- holidays/countries/libya.py +5 -37
- holidays/countries/malaysia.py +9 -130
- holidays/countries/mali.py +4 -9
- holidays/countries/mauritius.py +1 -2
- holidays/countries/montenegro.py +3 -18
- holidays/countries/nepal.py +42 -44
- holidays/countries/niger.py +14 -74
- holidays/countries/north_macedonia.py +3 -39
- holidays/countries/oman.py +6 -28
- holidays/countries/pakistan.py +5 -30
- holidays/countries/palestine.py +2 -5
- holidays/countries/philippines.py +3 -33
- holidays/countries/qatar.py +3 -45
- holidays/countries/saudi_arabia.py +3 -0
- holidays/countries/senegal.py +6 -16
- holidays/countries/sierra_leone.py +4 -20
- holidays/countries/singapore.py +3 -59
- holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
- holidays/countries/spain.py +3 -10
- holidays/countries/sri_lanka.py +3 -14
- holidays/countries/suriname.py +11 -19
- holidays/countries/syrian_arab_republic.py +134 -0
- holidays/countries/tanzania.py +3 -9
- holidays/countries/timor_leste.py +2 -17
- holidays/countries/togo.py +4 -29
- holidays/countries/trinidad_and_tobago.py +2 -9
- holidays/countries/turkey.py +2 -116
- holidays/countries/turkmenistan.py +158 -0
- holidays/countries/united_arab_emirates.py +5 -29
- holidays/countries/uzbekistan.py +3 -31
- holidays/countries/yemen.py +8 -52
- holidays/groups/__init__.py +2 -0
- holidays/groups/christian.py +48 -12
- holidays/groups/international.py +17 -1
- holidays/groups/islamic.py +1 -1
- holidays/groups/mandaean.py +107 -0
- holidays/groups/tibetan.py +153 -0
- holidays/holiday_base.py +14 -0
- holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/registry.py +13 -0
- holidays/version.py +1 -1
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/METADATA +68 -5
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/RECORD +105 -78
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/WHEEL +0 -0
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.78.dist-info → holidays-0.79.dist-info}/top_level.txt +0 -0
holidays/constants.py
CHANGED
holidays/countries/__init__.py
CHANGED
|
@@ -36,6 +36,7 @@ from holidays.countries.belgium import Belgium, BE, BEL
|
|
|
36
36
|
from holidays.countries.belize import Belize, BZ, BLZ
|
|
37
37
|
from holidays.countries.benin import Benin, BJ, BEN
|
|
38
38
|
from holidays.countries.bermuda import Bermuda, BM, BMU
|
|
39
|
+
from holidays.countries.bhutan import Bhutan, BT, BTN
|
|
39
40
|
from holidays.countries.bolivia import Bolivia, BO, BOL
|
|
40
41
|
from holidays.countries.bonaire_sint_eustatius_and_saba import BonaireSintEustatiusAndSaba, BQ, BES
|
|
41
42
|
from holidays.countries.bosnia_and_herzegovina import BosniaAndHerzegovina, BA, BIH
|
|
@@ -92,6 +93,7 @@ from holidays.countries.french_southern_territories import (
|
|
|
92
93
|
HolidaysTF,
|
|
93
94
|
)
|
|
94
95
|
from holidays.countries.gabon import Gabon, GA, GAB
|
|
96
|
+
from holidays.countries.gambia import Gambia, GM, GMB
|
|
95
97
|
from holidays.countries.georgia import Georgia, GE, GEO
|
|
96
98
|
from holidays.countries.germany import Germany, DE, DEU
|
|
97
99
|
from holidays.countries.ghana import Ghana, GH, GHA
|
|
@@ -104,6 +106,7 @@ from holidays.countries.guam import Guam, GU, GUM, HolidaysGU
|
|
|
104
106
|
from holidays.countries.guatemala import Guatemala, GT, GUA
|
|
105
107
|
from holidays.countries.guernsey import Guernsey, GG, GGY
|
|
106
108
|
from holidays.countries.guinea import Guinea, GN, GIN
|
|
109
|
+
from holidays.countries.guinea_bissau import GuineaBissau, GW, GNB
|
|
107
110
|
from holidays.countries.guyana import Guyana, GY, GUY
|
|
108
111
|
from holidays.countries.haiti import Haiti, HT, HTI
|
|
109
112
|
from holidays.countries.honduras import Honduras, HN, HND
|
|
@@ -113,6 +116,7 @@ from holidays.countries.iceland import Iceland, IS, ISL
|
|
|
113
116
|
from holidays.countries.india import India, IN, IND
|
|
114
117
|
from holidays.countries.indonesia import Indonesia, ID, IDN
|
|
115
118
|
from holidays.countries.iran import Iran, IR, IRN
|
|
119
|
+
from holidays.countries.iraq import Iraq, IQ, IRQ
|
|
116
120
|
from holidays.countries.ireland import Ireland, IE, IRL
|
|
117
121
|
from holidays.countries.isle_of_man import IsleOfMan, IM, IMN
|
|
118
122
|
from holidays.countries.israel import Israel, IL, ISR
|
|
@@ -124,12 +128,14 @@ from holidays.countries.jersey import Jersey, JE, JEY
|
|
|
124
128
|
from holidays.countries.jordan import Jordan, JO, JOR
|
|
125
129
|
from holidays.countries.kazakhstan import Kazakhstan, KZ, KAZ
|
|
126
130
|
from holidays.countries.kenya import Kenya, KE, KEN
|
|
131
|
+
from holidays.countries.kiribati import Kiribati, KI, KIR
|
|
127
132
|
from holidays.countries.kuwait import Kuwait, KW, KWT
|
|
128
133
|
from holidays.countries.kyrgyzstan import Kyrgyzstan, KG, KGZ
|
|
129
134
|
from holidays.countries.laos import Laos, LA, LAO
|
|
130
135
|
from holidays.countries.latvia import Latvia, LV, LVA
|
|
131
136
|
from holidays.countries.lebanon import Lebanon, LB, LBN
|
|
132
137
|
from holidays.countries.lesotho import Lesotho, LS, LSO
|
|
138
|
+
from holidays.countries.liberia import Liberia, LR, LBR
|
|
133
139
|
from holidays.countries.libya import Libya, LY, LBY
|
|
134
140
|
from holidays.countries.liechtenstein import Liechtenstein, LI, LIE
|
|
135
141
|
from holidays.countries.lithuania import Lithuania, LT, LTU
|
|
@@ -215,6 +221,11 @@ from holidays.countries.slovakia import Slovakia, SK, SVK
|
|
|
215
221
|
from holidays.countries.slovenia import Slovenia, SI, SVN
|
|
216
222
|
from holidays.countries.solomon_islands import SolomonIslands, SB, SLB
|
|
217
223
|
from holidays.countries.south_africa import SouthAfrica, ZA, ZAF
|
|
224
|
+
from holidays.countries.south_georgia_and_the_south_sandwich_islands import (
|
|
225
|
+
SouthGeorgiaAndTheSouthSandwichIslands,
|
|
226
|
+
GS,
|
|
227
|
+
SGS,
|
|
228
|
+
)
|
|
218
229
|
from holidays.countries.south_korea import SouthKorea, KR, KOR, Korea
|
|
219
230
|
from holidays.countries.spain import Spain, ES, ESP
|
|
220
231
|
from holidays.countries.sri_lanka import SriLanka, LK, LKA
|
|
@@ -222,6 +233,7 @@ from holidays.countries.suriname import Suriname, SR, SUR
|
|
|
222
233
|
from holidays.countries.svalbard_and_jan_mayen import SvalbardAndJanMayen, SJ, SJM, HolidaysSJ
|
|
223
234
|
from holidays.countries.sweden import Sweden, SE, SWE
|
|
224
235
|
from holidays.countries.switzerland import Switzerland, CH, CHE
|
|
236
|
+
from holidays.countries.syrian_arab_republic import SyrianArabRepublic, SY, SYR
|
|
225
237
|
from holidays.countries.taiwan import Taiwan, TW, TWN
|
|
226
238
|
from holidays.countries.tanzania import Tanzania, TZ, TZA
|
|
227
239
|
from holidays.countries.thailand import Thailand, TH, THA
|
|
@@ -232,6 +244,7 @@ from holidays.countries.tonga import Tonga, TO, TON
|
|
|
232
244
|
from holidays.countries.trinidad_and_tobago import TrinidadAndTobago, TT, TTO
|
|
233
245
|
from holidays.countries.tunisia import Tunisia, TN, TUN
|
|
234
246
|
from holidays.countries.turkey import Turkey, TR, TUR
|
|
247
|
+
from holidays.countries.turkmenistan import Turkmenistan, TM, TKM
|
|
235
248
|
from holidays.countries.turks_and_caicos_islands import TurksAndCaicosIslands, TC, TCA
|
|
236
249
|
from holidays.countries.tuvalu import Tuvalu, TV, TUV
|
|
237
250
|
from holidays.countries.ukraine import Ukraine, UA, UKR
|
|
@@ -13,21 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import
|
|
17
|
-
JAN,
|
|
18
|
-
MAR,
|
|
19
|
-
APR,
|
|
20
|
-
MAY,
|
|
21
|
-
JUN,
|
|
22
|
-
JUL,
|
|
23
|
-
AUG,
|
|
24
|
-
SEP,
|
|
25
|
-
OCT,
|
|
26
|
-
NOV,
|
|
27
|
-
DEC,
|
|
28
|
-
FRI,
|
|
29
|
-
SAT,
|
|
30
|
-
)
|
|
16
|
+
from holidays.calendars.gregorian import JAN, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, FRI, SAT
|
|
31
17
|
from holidays.groups import InternationalHolidays, IslamicHolidays, PersianCalendarHolidays
|
|
32
18
|
from holidays.holiday_base import HolidayBase
|
|
33
19
|
|
|
@@ -134,8 +120,8 @@ class AFG(Afghanistan):
|
|
|
134
120
|
|
|
135
121
|
|
|
136
122
|
class AfghanistanIslamicHolidays(_CustomIslamicHolidays):
|
|
123
|
+
ASHURA_DATES_CONFIRMED_YEARS = (2014, 2021)
|
|
137
124
|
ASHURA_DATES = {
|
|
138
|
-
2014: (NOV, 3),
|
|
139
125
|
2015: (OCT, 24),
|
|
140
126
|
2016: (OCT, 12),
|
|
141
127
|
2017: (OCT, 1),
|
|
@@ -145,34 +131,26 @@ class AfghanistanIslamicHolidays(_CustomIslamicHolidays):
|
|
|
145
131
|
2021: (AUG, 19),
|
|
146
132
|
}
|
|
147
133
|
|
|
134
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2024)
|
|
148
135
|
EID_AL_ADHA_DATES = {
|
|
149
136
|
2014: (OCT, 5),
|
|
150
|
-
2015: (SEP, 23),
|
|
151
137
|
2016: (SEP, 13),
|
|
152
138
|
2017: (SEP, 2),
|
|
153
139
|
2018: (AUG, 22),
|
|
154
|
-
2019: (AUG, 11),
|
|
155
|
-
2020: (JUL, 31),
|
|
156
|
-
2021: (JUL, 20),
|
|
157
|
-
2022: (JUL, 9),
|
|
158
|
-
2023: (JUN, 28),
|
|
159
140
|
2024: (JUN, 17),
|
|
160
141
|
}
|
|
161
142
|
|
|
143
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2024)
|
|
162
144
|
EID_AL_FITR_DATES = {
|
|
163
145
|
2014: (JUL, 29),
|
|
164
146
|
2015: (JUL, 18),
|
|
165
147
|
2016: (JUL, 7),
|
|
166
148
|
2017: (JUN, 26),
|
|
167
|
-
2018: (JUN, 15),
|
|
168
|
-
2019: (JUN, 4),
|
|
169
|
-
2020: (MAY, 24),
|
|
170
|
-
2021: (MAY, 13),
|
|
171
149
|
2022: (MAY, 1),
|
|
172
150
|
2023: (APR, 22),
|
|
173
|
-
2024: (APR, 10),
|
|
174
151
|
}
|
|
175
152
|
|
|
153
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2014, 2024)
|
|
176
154
|
MAWLID_DATES = {
|
|
177
155
|
2014: (JAN, 14),
|
|
178
156
|
2015: ((JAN, 3), (DEC, 24)),
|
|
@@ -180,23 +158,12 @@ class AfghanistanIslamicHolidays(_CustomIslamicHolidays):
|
|
|
180
158
|
2017: (DEC, 1),
|
|
181
159
|
2018: (NOV, 21),
|
|
182
160
|
2019: (NOV, 10),
|
|
183
|
-
2020: (OCT, 29),
|
|
184
161
|
2021: (OCT, 19),
|
|
185
|
-
2022: (OCT, 8),
|
|
186
|
-
2023: (SEP, 27),
|
|
187
162
|
2024: (SEP, 16),
|
|
188
163
|
}
|
|
189
164
|
|
|
165
|
+
RAMADAN_BEGINNING_DATES_CONFIRMED_YEARS = (2014, 2024)
|
|
190
166
|
RAMADAN_BEGINNING_DATES = {
|
|
191
167
|
2014: (JUN, 29),
|
|
192
|
-
2015: (JUN, 18),
|
|
193
168
|
2016: (JUN, 7),
|
|
194
|
-
2017: (MAY, 27),
|
|
195
|
-
2018: (MAY, 16),
|
|
196
|
-
2019: (MAY, 6),
|
|
197
|
-
2020: (APR, 24),
|
|
198
|
-
2021: (APR, 13),
|
|
199
|
-
2022: (APR, 2),
|
|
200
|
-
2023: (MAR, 23),
|
|
201
|
-
2024: (MAR, 11),
|
|
202
169
|
}
|
holidays/countries/albania.py
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import JAN, MAR
|
|
16
|
+
from holidays.calendars.gregorian import JAN, MAR
|
|
17
17
|
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
18
18
|
from holidays.groups import (
|
|
19
19
|
ChristianHolidays,
|
|
@@ -133,27 +133,8 @@ class ALB(Albania):
|
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
class AlbaniaIslamicHolidays(_CustomIslamicHolidays):
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
2019: (AUG, 11),
|
|
139
|
-
2020: (JUL, 31),
|
|
140
|
-
2021: (JUL, 20),
|
|
141
|
-
2022: (JUL, 9),
|
|
142
|
-
2023: (JUN, 28),
|
|
143
|
-
2024: (JUN, 16),
|
|
144
|
-
2025: (JUN, 6),
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
EID_AL_FITR_DATES = {
|
|
148
|
-
2018: (JUN, 15),
|
|
149
|
-
2019: (JUN, 4),
|
|
150
|
-
2020: (MAY, 24),
|
|
151
|
-
2021: (MAY, 13),
|
|
152
|
-
2022: (MAY, 2),
|
|
153
|
-
2023: (APR, 21),
|
|
154
|
-
2024: (APR, 10),
|
|
155
|
-
2025: (MAR, 30),
|
|
156
|
-
}
|
|
136
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
137
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
157
138
|
|
|
158
139
|
|
|
159
140
|
class AlbaniaStaticHolidays:
|
holidays/countries/argentina.py
CHANGED
|
@@ -778,34 +778,19 @@ class ARG(Argentina):
|
|
|
778
778
|
|
|
779
779
|
|
|
780
780
|
class ArgentinaIslamicHolidays(_CustomIslamicHolidays):
|
|
781
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
781
782
|
EID_AL_ADHA_DATES = {
|
|
782
|
-
2019: (AUG, 11),
|
|
783
|
-
2020: (JUL, 31),
|
|
784
|
-
2021: (JUL, 20),
|
|
785
|
-
2022: (JUL, 9),
|
|
786
|
-
2023: (JUN, 28),
|
|
787
|
-
2024: (JUN, 16),
|
|
788
783
|
2025: (JUN, 10),
|
|
789
784
|
}
|
|
790
785
|
|
|
786
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
791
787
|
EID_AL_FITR_DATES = {
|
|
792
|
-
2019: (JUN, 4),
|
|
793
|
-
2020: (MAY, 24),
|
|
794
|
-
2021: (MAY, 13),
|
|
795
|
-
2022: (MAY, 2),
|
|
796
|
-
2023: (APR, 21),
|
|
797
|
-
2024: (APR, 10),
|
|
798
788
|
2025: (MAR, 31),
|
|
799
789
|
}
|
|
800
790
|
|
|
791
|
+
HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
801
792
|
HIJRI_NEW_YEAR_DATES = {
|
|
802
|
-
2019: (AUG, 31),
|
|
803
|
-
2020: (AUG, 20),
|
|
804
793
|
2021: (AUG, 8),
|
|
805
|
-
2022: (JUL, 30),
|
|
806
|
-
2023: (JUL, 19),
|
|
807
|
-
2024: (JUL, 7),
|
|
808
|
-
2025: (JUN, 26),
|
|
809
794
|
}
|
|
810
795
|
|
|
811
796
|
|
holidays/countries/azerbaijan.py
CHANGED
|
@@ -164,15 +164,15 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
|
|
|
164
164
|
if self.observed and self._year >= 2006:
|
|
165
165
|
self._populate_observed(dts_observed.union(dts_bairami))
|
|
166
166
|
|
|
167
|
-
bayrami_names =
|
|
167
|
+
bayrami_names = (self.tr("Qurban bayrami"), self.tr("Ramazan bayrami"))
|
|
168
168
|
# 6. If the holidays of Qurban and Ramadan coincide with another holiday
|
|
169
169
|
# that is not considered a working day, the next working day is considered a rest day.
|
|
170
170
|
for dt_observed in sorted(dts_bairami.difference(dts_non_observed)):
|
|
171
171
|
if len(dt_holidays := self.get_list(dt_observed)) == 1:
|
|
172
172
|
continue
|
|
173
|
-
for
|
|
174
|
-
if
|
|
175
|
-
self._add_observed(dt_observed,
|
|
173
|
+
for holiday_name in dt_holidays:
|
|
174
|
+
if any(bayrami_name in holiday_name for bayrami_name in bayrami_names):
|
|
175
|
+
self._add_observed(dt_observed, holiday_name, WORKDAY_TO_NEXT_WORKDAY)
|
|
176
176
|
|
|
177
177
|
def _populate_workday_holidays(self):
|
|
178
178
|
if self._year >= 2021:
|
|
@@ -206,58 +206,25 @@ class AZE(Azerbaijan):
|
|
|
206
206
|
|
|
207
207
|
|
|
208
208
|
class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
|
|
209
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2002, 2025)
|
|
209
210
|
EID_AL_ADHA_DATES = {
|
|
210
211
|
2002: (FEB, 21),
|
|
211
|
-
2003: (FEB, 11),
|
|
212
|
-
2004: (FEB, 1),
|
|
213
212
|
2005: (JAN, 22),
|
|
214
|
-
2006: ((JAN, 10), (DEC, 31)),
|
|
215
|
-
2007: (DEC, 20),
|
|
216
|
-
2008: (DEC, 8),
|
|
217
|
-
2009: (NOV, 27),
|
|
218
|
-
2010: (NOV, 16),
|
|
219
|
-
2011: (NOV, 6),
|
|
220
213
|
2012: (OCT, 25),
|
|
221
|
-
2013: (OCT, 15),
|
|
222
|
-
2014: (OCT, 4),
|
|
223
214
|
2015: (SEP, 24),
|
|
224
215
|
2016: (SEP, 12),
|
|
225
|
-
2017: (SEP, 1),
|
|
226
216
|
2018: (AUG, 22),
|
|
227
217
|
2019: (AUG, 12),
|
|
228
|
-
2020: (JUL, 31),
|
|
229
|
-
2021: (JUL, 20),
|
|
230
|
-
2022: (JUL, 9),
|
|
231
|
-
2023: (JUN, 28),
|
|
232
|
-
2024: (JUN, 16),
|
|
233
|
-
2025: (JUN, 6),
|
|
234
218
|
}
|
|
235
219
|
|
|
220
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2002, 2025)
|
|
236
221
|
EID_AL_FITR_DATES = {
|
|
237
222
|
2002: (DEC, 4),
|
|
238
|
-
2003: (NOV, 25),
|
|
239
|
-
2004: (NOV, 14),
|
|
240
|
-
2005: (NOV, 3),
|
|
241
|
-
2006: (OCT, 23),
|
|
242
223
|
2007: (OCT, 12),
|
|
243
224
|
2008: (SEP, 30),
|
|
244
|
-
2009: (SEP, 20),
|
|
245
225
|
2010: (SEP, 9),
|
|
246
|
-
2011: (AUG, 30),
|
|
247
|
-
2012: (AUG, 19),
|
|
248
|
-
2013: (AUG, 8),
|
|
249
|
-
2014: (JUL, 28),
|
|
250
|
-
2015: (JUL, 17),
|
|
251
|
-
2016: (JUL, 6),
|
|
252
226
|
2017: (JUN, 26),
|
|
253
|
-
2018: (JUN, 15),
|
|
254
227
|
2019: (JUN, 5),
|
|
255
|
-
2020: (MAY, 24),
|
|
256
|
-
2021: (MAY, 13),
|
|
257
|
-
2022: (MAY, 2),
|
|
258
|
-
2023: (APR, 21),
|
|
259
|
-
2024: (APR, 10),
|
|
260
|
-
2025: (MAR, 30),
|
|
261
228
|
}
|
|
262
229
|
|
|
263
230
|
|
holidays/countries/bahrain.py
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import
|
|
16
|
+
from holidays.calendars.gregorian import JUL, SEP, FRI, SAT
|
|
17
17
|
from holidays.groups import InternationalHolidays, IslamicHolidays
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
19
19
|
|
|
@@ -23,13 +23,14 @@ class Bahrain(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
23
23
|
|
|
24
24
|
References:
|
|
25
25
|
* <https://web.archive.org/web/20250415063947/https://www.cbb.gov.bh/official-bank-holidays>
|
|
26
|
-
* <https://web.archive.org/web/20240805170117/https://www.officeholidays.com/countries/bahrain>
|
|
27
26
|
"""
|
|
28
27
|
|
|
29
28
|
country = "BH"
|
|
30
29
|
default_language = "ar"
|
|
31
30
|
# %s (estimated).
|
|
32
31
|
estimated_label = tr("%s (المقدرة)")
|
|
32
|
+
# Independence declared on August 15, 1971.
|
|
33
|
+
start_year = 1972
|
|
33
34
|
supported_languages = ("ar", "en_US")
|
|
34
35
|
weekend = {FRI, SAT}
|
|
35
36
|
|
|
@@ -53,34 +54,33 @@ class Bahrain(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
53
54
|
# Labor Day.
|
|
54
55
|
self._add_labor_day(tr("عيد العمال"))
|
|
55
56
|
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
self.
|
|
59
|
-
self.
|
|
60
|
-
# Eid al-Fitr Holiday.
|
|
61
|
-
self._add_eid_al_fitr_day_three(tr("عطلة عيد الفطر"))
|
|
62
|
-
|
|
63
|
-
# Eid al-Adha.
|
|
64
|
-
self._add_eid_al_adha_day(tr("عيد الأضحى"))
|
|
65
|
-
# Eid al-Adha Holiday.
|
|
66
|
-
self._add_eid_al_adha_day_two(tr("عطلة عيد الأضحى"))
|
|
67
|
-
self._add_eid_al_adha_day_three(tr("عطلة عيد الأضحى"))
|
|
57
|
+
# National Day.
|
|
58
|
+
national_day = tr("العيد الوطني")
|
|
59
|
+
self._add_holiday_dec_16(national_day)
|
|
60
|
+
self._add_holiday_dec_17(national_day)
|
|
68
61
|
|
|
69
62
|
# Islamic New Year.
|
|
70
63
|
self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
|
|
71
64
|
|
|
72
|
-
# Ashura Eve.
|
|
73
|
-
self._add_ashura_eve(tr("ليلة عاشورة"))
|
|
74
65
|
# Ashura.
|
|
75
|
-
|
|
66
|
+
ashura = tr("عاشوراء")
|
|
67
|
+
self._add_ashura_eve(ashura)
|
|
68
|
+
self._add_ashura_day(ashura)
|
|
76
69
|
|
|
77
70
|
# Prophet's Birthday.
|
|
78
|
-
self._add_mawlid_day(tr("
|
|
71
|
+
self._add_mawlid_day(tr("المولد النبوي الشريف"))
|
|
79
72
|
|
|
80
|
-
#
|
|
81
|
-
|
|
82
|
-
self.
|
|
83
|
-
self.
|
|
73
|
+
# Eid al-Fitr.
|
|
74
|
+
eid_al_fitr = tr("عيد الفطر")
|
|
75
|
+
self._add_eid_al_fitr_day(eid_al_fitr)
|
|
76
|
+
self._add_eid_al_fitr_day_two(eid_al_fitr)
|
|
77
|
+
self._add_eid_al_fitr_day_three(eid_al_fitr)
|
|
78
|
+
|
|
79
|
+
# Eid al-Adha.
|
|
80
|
+
eid_al_adha = tr("عيد الأضحى")
|
|
81
|
+
self._add_eid_al_adha_day(eid_al_adha)
|
|
82
|
+
self._add_eid_al_adha_day_two(eid_al_adha)
|
|
83
|
+
self._add_eid_al_adha_day_three(eid_al_adha)
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
class BH(Bahrain):
|
|
@@ -92,22 +92,13 @@ class BAH(Bahrain):
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
class BahrainIslamicHolidays(_CustomIslamicHolidays):
|
|
95
|
+
ASHURA_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
95
96
|
ASHURA_DATES = {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
EID_AL_ADHA = {
|
|
100
|
-
2022: (JUL, 9),
|
|
97
|
+
2019: (SEP, 10),
|
|
98
|
+
2023: (JUL, 29),
|
|
101
99
|
}
|
|
102
100
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
HIJRI_NEW_YEAR_DATES = {
|
|
108
|
-
2022: (JUL, 30),
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
MAWLID_DATES = {
|
|
112
|
-
2022: (OCT, 8),
|
|
113
|
-
}
|
|
101
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
102
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
103
|
+
HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
104
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2019, 2025)
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from holidays.calendars import _CustomHinduHolidays
|
|
14
|
+
from holidays.calendars.gregorian import SEP, OCT
|
|
15
|
+
from holidays.groups import HinduCalendarHolidays, TibetanCalendarHolidays
|
|
16
|
+
from holidays.holiday_base import HolidayBase
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Bhutan(HolidayBase, HinduCalendarHolidays, TibetanCalendarHolidays):
|
|
20
|
+
"""Bhutan holidays.
|
|
21
|
+
|
|
22
|
+
References:
|
|
23
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Bhutan>
|
|
24
|
+
* [The Bhutanese calendar](https://web.archive.org/web/20250707105447/http://www.kalacakra.org/calendar/bhutlist.htm)
|
|
25
|
+
* [2007-2011](https://web.archive.org/web/20070730055559/http://www.rcsc.gov.bt/tmpFolder/CalendarOfEvent/holiday.htm)
|
|
26
|
+
* [2010-2011](https://web.archive.org/web/20100127021618/http://www.mohca.gov.bt/?mode=READMORE&news_id=157)
|
|
27
|
+
* [2014](https://web.archive.org/web/20141222122050/http://www.mohca.gov.bt/Publications/calander_2014-15.pdf)
|
|
28
|
+
* [2015](https://web.archive.org/web/20151004161522/http://www.mohca.gov.bt/Publications/calander_2015-16.pdf)
|
|
29
|
+
* [2016](https://web.archive.org/web/20170606131500/http://www.mohca.gov.bt/download/calander_2016-17.pdf)
|
|
30
|
+
* [2017](https://web.archive.org/web/20180107115733/http://www.mohca.gov.bt/wp-content/uploads/2017/11/calander_2017-18.pdf)
|
|
31
|
+
* [2018](https://web.archive.org/web/20180906031327/http://www.mohca.gov.bt/wp-content/uploads/2017/11/scan0126.pdf)
|
|
32
|
+
* [2019](https://web.archive.org/web/20191221201614/http://www.mohca.gov.bt/downloads/scan0004.pdf)
|
|
33
|
+
* [2020](https://web.archive.org/web/20200720030220/http://www.mohca.gov.bt/wp-content/uploads/2019/12/2020-Holiday-List0001.pdf)
|
|
34
|
+
* [2021](https://web.archive.org/web/20230511011459/http://www.mohca.gov.bt/downloads/Holidays2021.pdf)
|
|
35
|
+
* [2022](https://web.archive.org/web/20220619061040/https://www.mohca.gov.bt/wp-content/uploads/2021/11/HolidayList.pdf)
|
|
36
|
+
* [2023](https://web.archive.org/web/20221210152039/https://www.mohca.gov.bt/wp-content/uploads/2022/11/Holidays-2023.pdf)
|
|
37
|
+
* [2024](https://web.archive.org/web/20250407140158/https://www.moha.gov.bt/wp-content/uploads/2023/11/National-Holiday-List-for-2024-2-.pdf)
|
|
38
|
+
* [2025](https://web.archive.org/web/20250703030226/https://www.moha.gov.bt/wp-content/uploads/2024/11/Calendar_2025.pdf)
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
country = "BT"
|
|
42
|
+
# %s (estimated).
|
|
43
|
+
estimated_label = "%s (estimated)"
|
|
44
|
+
# Jigme Khesar Namgyel Wangchuck ascended to the throne on December 9th, 2006.
|
|
45
|
+
start_year = 2007
|
|
46
|
+
subdivisions = (
|
|
47
|
+
"11", # Paro.
|
|
48
|
+
"12", # Chhukha.
|
|
49
|
+
"13", # Haa.
|
|
50
|
+
"14", # Samtse.
|
|
51
|
+
"15", # Thimphu.
|
|
52
|
+
"21", # Tsirang.
|
|
53
|
+
"22", # Dagana.
|
|
54
|
+
"23", # Punakha.
|
|
55
|
+
"24", # Wangdue Phodrang.
|
|
56
|
+
"31", # Sarpang.
|
|
57
|
+
"32", # Trongsa.
|
|
58
|
+
"33", # Bumthang.
|
|
59
|
+
"34", # Zhemgang.
|
|
60
|
+
"41", # Trashigang.
|
|
61
|
+
"42", # Monggar.
|
|
62
|
+
"43", # Pema Gatshel.
|
|
63
|
+
"44", # Lhuentse.
|
|
64
|
+
"45", # Samdrup Jongkhar.
|
|
65
|
+
"GA", # Gasa.
|
|
66
|
+
"TY", # Trashi Yangtse.
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
subdivisions_aliases = {
|
|
70
|
+
"Paro": "11",
|
|
71
|
+
"Chhukha": "12",
|
|
72
|
+
"Haa": "13",
|
|
73
|
+
"Samtse": "14",
|
|
74
|
+
"Thimphu": "15",
|
|
75
|
+
"Tsirang": "21",
|
|
76
|
+
"Dagana": "22",
|
|
77
|
+
"Punakha": "23",
|
|
78
|
+
"Wangdue Phodrang": "24",
|
|
79
|
+
"Sarpang": "31",
|
|
80
|
+
"Trongsa": "32",
|
|
81
|
+
"Bumthang": "33",
|
|
82
|
+
"Zhemgang": "34",
|
|
83
|
+
"Trashigang": "41",
|
|
84
|
+
"Monggar": "42",
|
|
85
|
+
"Pema Gatshel": "43",
|
|
86
|
+
"Lhuentse": "44",
|
|
87
|
+
"Samdrup Jongkhar": "45",
|
|
88
|
+
"Gasa": "GA",
|
|
89
|
+
"Trashi Yangtse": "TY",
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
def __init__(self, *args, hindu_show_estimated: bool = True, **kwargs):
|
|
93
|
+
"""
|
|
94
|
+
Args:
|
|
95
|
+
hindu_show_estimated:
|
|
96
|
+
Whether to add "estimated" label to Hindu holidays name
|
|
97
|
+
if holiday date is estimated.
|
|
98
|
+
"""
|
|
99
|
+
HinduCalendarHolidays.__init__(
|
|
100
|
+
self, cls=BhutanHinduHolidays, show_estimated=hindu_show_estimated
|
|
101
|
+
)
|
|
102
|
+
TibetanCalendarHolidays.__init__(self)
|
|
103
|
+
super().__init__(*args, **kwargs)
|
|
104
|
+
|
|
105
|
+
def _populate_public_holidays(self):
|
|
106
|
+
name = "Birth Anniversary of His Majesty the King"
|
|
107
|
+
# Birth Anniversary of His Majesty the King.
|
|
108
|
+
self._add_holiday_feb_21(name)
|
|
109
|
+
self._add_holiday_feb_22(name)
|
|
110
|
+
self._add_holiday_feb_23(name)
|
|
111
|
+
|
|
112
|
+
# Birth Anniversary of the 3rd Druk Gyalpo.
|
|
113
|
+
self._add_holiday_may_2("Birth Anniversary of the 3rd Druk Gyalpo")
|
|
114
|
+
|
|
115
|
+
# Coronation of His Majesty the King.
|
|
116
|
+
self._add_holiday_nov_1("Coronation of His Majesty the King")
|
|
117
|
+
|
|
118
|
+
# Birth Anniversary of the 4th Druk Gyalpo - Constitution Day.
|
|
119
|
+
self._add_holiday_nov_11("Birth Anniversary of the 4th Druk Gyalpo - Constitution Day")
|
|
120
|
+
|
|
121
|
+
# National Day.
|
|
122
|
+
self._add_holiday_dec_17("National Day")
|
|
123
|
+
|
|
124
|
+
# Winter Solstice.
|
|
125
|
+
self._add_tibetan_winter_solstice("Winter Solstice")
|
|
126
|
+
|
|
127
|
+
# Traditional Day of Offering.
|
|
128
|
+
self._add_day_of_offering("Traditional Day of Offering")
|
|
129
|
+
|
|
130
|
+
# Losar.
|
|
131
|
+
name = "Losar"
|
|
132
|
+
self._add_losar(name)
|
|
133
|
+
self._add_losar_day_two(name)
|
|
134
|
+
|
|
135
|
+
# Death Anniversary of Zhabdrung.
|
|
136
|
+
self._add_death_of_zhabdrung("Death Anniversary of Zhabdrung")
|
|
137
|
+
|
|
138
|
+
# Lord Buddha's Parinirvana.
|
|
139
|
+
self._add_buddha_parinirvana("Lord Buddha's Parinirvana")
|
|
140
|
+
|
|
141
|
+
# Birth Anniversary of Guru Rinpoche.
|
|
142
|
+
self._add_birth_of_guru_rinpoche("Birth Anniversary of Guru Rinpoche")
|
|
143
|
+
|
|
144
|
+
# First Sermon of Lord Buddha.
|
|
145
|
+
self._add_buddha_first_sermon("First Sermon of Lord Buddha")
|
|
146
|
+
|
|
147
|
+
# Blessed Rainy Day.
|
|
148
|
+
self._add_blessed_rainy_day("Blessed Rainy Day")
|
|
149
|
+
|
|
150
|
+
# Dassain.
|
|
151
|
+
self._add_dussehra("Dassain")
|
|
152
|
+
|
|
153
|
+
# Descending Day of Lord Buddha.
|
|
154
|
+
self._add_descending_day_of_lord_buddha("Descending Day of Lord Buddha")
|
|
155
|
+
|
|
156
|
+
def _populate_subdiv_15_public_holidays(self):
|
|
157
|
+
# Thimphu Drubchoe.
|
|
158
|
+
self._add_thimphu_drubchen_day("Thimphu Drubchoe")
|
|
159
|
+
|
|
160
|
+
# Thimphu Tshechu.
|
|
161
|
+
name = "Thimphu Tshechu"
|
|
162
|
+
self._add_thimphu_tshechu_day(name)
|
|
163
|
+
self._add_thimphu_tshechu_day_two(name)
|
|
164
|
+
self._add_thimphu_tshechu_day_three(name)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class BT(Bhutan):
|
|
168
|
+
pass
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class BTN(Bhutan):
|
|
172
|
+
pass
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class BhutanHinduHolidays(_CustomHinduHolidays):
|
|
176
|
+
DUSSEHRA_DATES = {
|
|
177
|
+
2007: (OCT, 21),
|
|
178
|
+
2008: (OCT, 9),
|
|
179
|
+
2009: (SEP, 28),
|
|
180
|
+
2010: (OCT, 17),
|
|
181
|
+
2011: (OCT, 6),
|
|
182
|
+
2014: (OCT, 3),
|
|
183
|
+
2015: (OCT, 22),
|
|
184
|
+
2016: (OCT, 11),
|
|
185
|
+
2017: (SEP, 30),
|
|
186
|
+
2018: (OCT, 19),
|
|
187
|
+
2019: (OCT, 8),
|
|
188
|
+
2020: (OCT, 26),
|
|
189
|
+
2021: (OCT, 15),
|
|
190
|
+
2022: (OCT, 5),
|
|
191
|
+
2023: (OCT, 24),
|
|
192
|
+
2024: (OCT, 12),
|
|
193
|
+
2025: (OCT, 2),
|
|
194
|
+
}
|