holidays 0.71__py3-none-any.whl → 0.73__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 -2
- holidays/calendars/__init__.py +1 -1
- holidays/calendars/balinese_saka.py +1 -1
- holidays/calendars/buddhist.py +5 -3
- holidays/calendars/chinese.py +101 -13
- holidays/calendars/custom.py +1 -1
- holidays/calendars/gregorian.py +1 -1
- holidays/calendars/hebrew.py +1 -1
- holidays/calendars/hindu.py +194 -6
- holidays/calendars/islamic.py +1 -1
- holidays/calendars/julian.py +1 -1
- holidays/calendars/julian_revised.py +1 -1
- holidays/calendars/persian.py +1 -1
- holidays/calendars/sinhala.py +1 -1
- holidays/calendars/thai.py +1 -1
- holidays/constants.py +1 -1
- holidays/countries/__init__.py +7 -1
- holidays/countries/afghanistan.py +1 -1
- holidays/countries/albania.py +2 -2
- holidays/countries/algeria.py +1 -1
- holidays/countries/american_samoa.py +2 -1
- holidays/countries/andorra.py +140 -47
- holidays/countries/angola.py +1 -1
- holidays/countries/antigua_and_barbuda.py +1 -1
- holidays/countries/argentina.py +15 -5
- holidays/countries/armenia.py +1 -1
- holidays/countries/aruba.py +1 -1
- holidays/countries/australia.py +16 -5
- holidays/countries/austria.py +3 -3
- holidays/countries/azerbaijan.py +1 -1
- holidays/countries/bahamas.py +1 -1
- holidays/countries/bahrain.py +1 -1
- holidays/countries/bangladesh.py +1 -1
- holidays/countries/barbados.py +1 -1
- holidays/countries/belarus.py +1 -1
- holidays/countries/belgium.py +1 -1
- holidays/countries/belize.py +1 -1
- holidays/countries/bolivia.py +23 -12
- holidays/countries/bosnia_and_herzegovina.py +5 -5
- holidays/countries/botswana.py +1 -1
- holidays/countries/brazil.py +3 -4
- holidays/countries/brunei.py +1 -1
- holidays/countries/bulgaria.py +1 -1
- holidays/countries/burkina_faso.py +1 -1
- holidays/countries/burundi.py +1 -1
- holidays/countries/cambodia.py +22 -22
- holidays/countries/cameroon.py +1 -1
- holidays/countries/canada.py +91 -57
- holidays/countries/chad.py +1 -1
- holidays/countries/chile.py +36 -18
- holidays/countries/china.py +1 -1
- holidays/countries/cocos_islands.py +259 -0
- holidays/countries/colombia.py +1 -1
- holidays/countries/congo.py +1 -1
- holidays/countries/costa_rica.py +1 -1
- holidays/countries/croatia.py +1 -1
- holidays/countries/cuba.py +1 -1
- holidays/countries/curacao.py +1 -1
- holidays/countries/cyprus.py +1 -1
- holidays/countries/czechia.py +1 -1
- holidays/countries/denmark.py +1 -1
- holidays/countries/djibouti.py +1 -1
- holidays/countries/dominica.py +1 -1
- holidays/countries/dominican_republic.py +1 -1
- holidays/countries/ecuador.py +1 -1
- holidays/countries/egypt.py +1 -1
- holidays/countries/el_salvador.py +18 -18
- holidays/countries/estonia.py +1 -1
- holidays/countries/eswatini.py +1 -1
- holidays/countries/ethiopia.py +43 -24
- holidays/countries/fiji.py +1 -1
- holidays/countries/finland.py +1 -1
- holidays/countries/france.py +3 -4
- holidays/countries/french_southern_territories.py +1 -1
- holidays/countries/gabon.py +1 -1
- holidays/countries/georgia.py +1 -1
- holidays/countries/germany.py +20 -21
- holidays/countries/ghana.py +1 -1
- holidays/countries/greece.py +1 -1
- holidays/countries/greenland.py +1 -1
- holidays/countries/grenada.py +143 -0
- holidays/countries/guam.py +2 -1
- holidays/countries/guatemala.py +1 -1
- holidays/countries/guernsey.py +1 -1
- holidays/countries/guinea.py +1 -1
- holidays/countries/haiti.py +1 -1
- holidays/countries/honduras.py +1 -1
- holidays/countries/hongkong.py +2 -2
- holidays/countries/hungary.py +1 -1
- holidays/countries/iceland.py +1 -1
- holidays/countries/india.py +17 -11
- holidays/countries/indonesia.py +1 -1
- holidays/countries/iran.py +1 -1
- holidays/countries/ireland.py +1 -1
- holidays/countries/isle_of_man.py +1 -1
- holidays/countries/israel.py +1 -1
- holidays/countries/italy.py +1 -1
- holidays/countries/ivory_coast.py +5 -5
- holidays/countries/jamaica.py +1 -1
- holidays/countries/japan.py +1 -1
- holidays/countries/jersey.py +1 -1
- holidays/countries/jordan.py +1 -1
- holidays/countries/kazakhstan.py +1 -1
- holidays/countries/kenya.py +1 -1
- holidays/countries/kuwait.py +1 -1
- holidays/countries/kyrgyzstan.py +1 -1
- holidays/countries/laos.py +1 -1
- holidays/countries/latvia.py +1 -1
- holidays/countries/lesotho.py +1 -1
- holidays/countries/liechtenstein.py +1 -1
- holidays/countries/lithuania.py +1 -1
- holidays/countries/luxembourg.py +1 -1
- holidays/countries/macau.py +5 -5
- holidays/countries/madagascar.py +1 -1
- holidays/countries/malawi.py +1 -1
- holidays/countries/malaysia.py +21 -29
- holidays/countries/maldives.py +1 -1
- holidays/countries/malta.py +1 -1
- holidays/countries/marshall_islands.py +1 -1
- holidays/countries/mauritania.py +1 -1
- holidays/countries/mexico.py +1 -1
- holidays/countries/moldova.py +1 -1
- holidays/countries/monaco.py +1 -1
- holidays/countries/montenegro.py +1 -1
- holidays/countries/morocco.py +1 -1
- holidays/countries/mozambique.py +1 -1
- holidays/countries/namibia.py +1 -1
- holidays/countries/nepal.py +441 -0
- holidays/countries/netherlands.py +1 -1
- holidays/countries/new_zealand.py +19 -19
- holidays/countries/nicaragua.py +19 -19
- holidays/countries/nigeria.py +1 -1
- holidays/countries/north_macedonia.py +1 -1
- holidays/countries/northern_mariana_islands.py +2 -1
- holidays/countries/norway.py +1 -1
- holidays/countries/oman.py +1 -1
- holidays/countries/pakistan.py +1 -1
- holidays/countries/palau.py +1 -1
- holidays/countries/panama.py +1 -1
- holidays/countries/papua_new_guinea.py +1 -1
- holidays/countries/paraguay.py +1 -1
- holidays/countries/peru.py +1 -1
- holidays/countries/philippines.py +3 -1
- holidays/countries/poland.py +1 -1
- holidays/countries/portugal.py +23 -25
- holidays/countries/puerto_rico.py +2 -1
- holidays/countries/qatar.py +1 -1
- holidays/countries/romania.py +1 -1
- holidays/countries/russia.py +1 -1
- holidays/countries/saint_kitts_and_nevis.py +1 -1
- holidays/countries/saint_lucia.py +1 -1
- holidays/countries/samoa.py +1 -1
- holidays/countries/san_marino.py +1 -1
- holidays/countries/sao_tome_and_principe.py +112 -0
- holidays/countries/saudi_arabia.py +1 -1
- holidays/countries/serbia.py +1 -1
- holidays/countries/seychelles.py +1 -1
- holidays/countries/sierra_leone.py +1 -1
- holidays/countries/singapore.py +5 -2
- holidays/countries/slovakia.py +1 -1
- holidays/countries/slovenia.py +1 -1
- holidays/countries/south_africa.py +1 -1
- holidays/countries/south_korea.py +3 -31
- holidays/countries/spain.py +43 -20
- holidays/countries/sri_lanka.py +1 -1
- holidays/countries/suriname.py +1 -1
- holidays/countries/sweden.py +1 -1
- holidays/countries/switzerland.py +61 -28
- holidays/countries/taiwan.py +1 -1
- holidays/countries/tanzania.py +1 -1
- holidays/countries/thailand.py +3 -3
- holidays/countries/timor_leste.py +1 -1
- holidays/countries/togo.py +182 -0
- holidays/countries/tonga.py +1 -1
- holidays/countries/trinidad_and_tobago.py +197 -0
- holidays/countries/tunisia.py +1 -1
- holidays/countries/turkey.py +1 -1
- holidays/countries/tuvalu.py +6 -6
- holidays/countries/ukraine.py +1 -1
- holidays/countries/united_arab_emirates.py +1 -1
- holidays/countries/united_kingdom.py +1 -1
- holidays/countries/united_states.py +62 -4
- holidays/countries/united_states_minor_outlying_islands.py +2 -1
- holidays/countries/united_states_virgin_islands.py +2 -1
- holidays/countries/uruguay.py +1 -1
- holidays/countries/uzbekistan.py +1 -1
- holidays/countries/vanuatu.py +1 -1
- holidays/countries/vatican_city.py +30 -32
- holidays/countries/venezuela.py +1 -1
- holidays/countries/vietnam.py +3 -2
- holidays/countries/zambia.py +1 -1
- holidays/countries/zimbabwe.py +1 -1
- holidays/deprecations/v1_incompatibility.py +1 -1
- holidays/financial/__init__.py +1 -1
- holidays/financial/brasil_bolsa_balcao.py +1 -1
- holidays/financial/european_central_bank.py +1 -1
- holidays/financial/ice_futures_europe.py +1 -1
- holidays/financial/ny_stock_exchange.py +1 -1
- holidays/groups/__init__.py +1 -1
- holidays/groups/balinese_saka.py +1 -1
- holidays/groups/buddhist.py +1 -1
- holidays/groups/chinese.py +6 -4
- holidays/groups/christian.py +4 -4
- holidays/groups/custom.py +1 -1
- holidays/groups/eastern.py +1 -1
- holidays/groups/hebrew.py +1 -1
- holidays/groups/hindu.py +166 -4
- holidays/groups/international.py +1 -1
- holidays/groups/islamic.py +1 -1
- holidays/groups/persian.py +1 -1
- holidays/groups/sinhala.py +1 -1
- holidays/groups/thai.py +6 -6
- holidays/helpers.py +1 -1
- holidays/holiday_base.py +1 -1
- holidays/ical.py +2 -2
- holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ca/LC_MESSAGES/AD.mo +0 -0
- holidays/locale/coa_CC/LC_MESSAGES/CC.mo +0 -0
- holidays/locale/en_CA/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_CC/LC_MESSAGES/CC.mo +0 -0
- holidays/locale/en_CI/LC_MESSAGES/CI.mo +0 -0
- holidays/locale/en_ET/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/en_GD/LC_MESSAGES/GD.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_TT/LC_MESSAGES/TT.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ST.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TT.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/TG.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/pt_ST/LC_MESSAGES/ST.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AD.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/mixins.py +1 -1
- holidays/observed_holiday_base.py +1 -1
- holidays/registry.py +7 -1
- holidays/utils.py +1 -1
- holidays/version.py +2 -2
- {holidays-0.71.dist-info → holidays-0.73.dist-info}/METADATA +66 -18
- {holidays-0.71.dist-info → holidays-0.73.dist-info}/RECORD +260 -239
- {holidays-0.71.dist-info → holidays-0.73.dist-info}/WHEEL +1 -1
- holidays-0.71.dist-info/licenses/AUTHORS.md → holidays-0.73.dist-info/licenses/CONTRIBUTORS +1 -2
- {holidays-0.71.dist-info → holidays-0.73.dist-info}/licenses/LICENSE +1 -1
- {holidays-0.71.dist-info → holidays-0.73.dist-info}/top_level.txt +0 -0
holidays/__init__.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
# ruff: noqa: F403
|
|
14
14
|
|
|
15
15
|
from holidays.constants import *
|
|
16
|
-
from holidays.deprecations.v1_incompatibility import *
|
|
17
16
|
from holidays.holiday_base import *
|
|
18
17
|
from holidays.registry import EntityLoader
|
|
19
18
|
from holidays.utils import *
|
holidays/calendars/__init__.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/buddhist.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -146,7 +146,7 @@ class _BuddhistLunisolar:
|
|
|
146
146
|
2022: (MAY, 15),
|
|
147
147
|
2023: (JUN, 2),
|
|
148
148
|
2024: (MAY, 22),
|
|
149
|
-
2025: (MAY,
|
|
149
|
+
2025: (MAY, 12),
|
|
150
150
|
2026: (MAY, 31),
|
|
151
151
|
2027: (MAY, 20),
|
|
152
152
|
2028: (MAY, 9),
|
|
@@ -221,6 +221,7 @@ class _BuddhistLunisolar:
|
|
|
221
221
|
2097: (MAY, 26),
|
|
222
222
|
2098: (MAY, 15),
|
|
223
223
|
2099: (JUN, 3),
|
|
224
|
+
2100: (MAY, 23),
|
|
224
225
|
}
|
|
225
226
|
|
|
226
227
|
VESAK_MAY_DATES = {
|
|
@@ -348,7 +349,7 @@ class _BuddhistLunisolar:
|
|
|
348
349
|
2022: (MAY, 15),
|
|
349
350
|
2023: (MAY, 4),
|
|
350
351
|
2024: (MAY, 22),
|
|
351
|
-
2025: (MAY,
|
|
352
|
+
2025: (MAY, 12),
|
|
352
353
|
2026: (MAY, 1),
|
|
353
354
|
2027: (MAY, 20),
|
|
354
355
|
2028: (MAY, 9),
|
|
@@ -423,6 +424,7 @@ class _BuddhistLunisolar:
|
|
|
423
424
|
2097: (MAY, 26),
|
|
424
425
|
2098: (MAY, 15),
|
|
425
426
|
2099: (MAY, 4),
|
|
427
|
+
2100: (MAY, 23),
|
|
426
428
|
}
|
|
427
429
|
|
|
428
430
|
def _get_holiday(self, holiday: str, year: int) -> tuple[Optional[date], bool]:
|
holidays/calendars/chinese.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -16,6 +16,10 @@ from typing import Optional
|
|
|
16
16
|
from holidays.calendars.custom import _CustomCalendar
|
|
17
17
|
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, SEP, OCT, NOV
|
|
18
18
|
|
|
19
|
+
CHINESE_CALENDAR = "CHINESE_CALENDAR"
|
|
20
|
+
KOREAN_CALENDAR = "KOREAN_CALENDAR"
|
|
21
|
+
VIETNAMESE_CALENDAR = "VIETNAMESE_CALENDAR"
|
|
22
|
+
|
|
19
23
|
BUDDHA_BIRTHDAY = "BUDDHA_BIRTHDAY"
|
|
20
24
|
DOUBLE_NINTH = "DOUBLE_NINTH"
|
|
21
25
|
DRAGON_BOAT = "DRAGON_BOAT"
|
|
@@ -225,6 +229,7 @@ class _ChineseLunisolar:
|
|
|
225
229
|
2097: (MAY, 19),
|
|
226
230
|
2098: (MAY, 8),
|
|
227
231
|
2099: (MAY, 27),
|
|
232
|
+
2100: (MAY, 16),
|
|
228
233
|
}
|
|
229
234
|
|
|
230
235
|
DOUBLE_NINTH_DATES = {
|
|
@@ -427,6 +432,7 @@ class _ChineseLunisolar:
|
|
|
427
432
|
2097: (OCT, 13),
|
|
428
433
|
2098: (OCT, 3),
|
|
429
434
|
2099: (OCT, 22),
|
|
435
|
+
2100: (OCT, 12),
|
|
430
436
|
}
|
|
431
437
|
|
|
432
438
|
DRAGON_BOAT_DATES = {
|
|
@@ -629,6 +635,7 @@ class _ChineseLunisolar:
|
|
|
629
635
|
2097: (JUN, 14),
|
|
630
636
|
2098: (JUN, 4),
|
|
631
637
|
2099: (JUN, 23),
|
|
638
|
+
2100: (JUN, 12),
|
|
632
639
|
}
|
|
633
640
|
|
|
634
641
|
HUNG_KINGS_DATES = {
|
|
@@ -831,6 +838,7 @@ class _ChineseLunisolar:
|
|
|
831
838
|
2097: (APR, 21),
|
|
832
839
|
2098: (APR, 11),
|
|
833
840
|
2099: (APR, 29),
|
|
841
|
+
2100: (APR, 19),
|
|
834
842
|
}
|
|
835
843
|
|
|
836
844
|
LUNAR_NEW_YEAR_DATES = {
|
|
@@ -849,7 +857,7 @@ class _ChineseLunisolar:
|
|
|
849
857
|
1913: (FEB, 6),
|
|
850
858
|
1914: (JAN, 26),
|
|
851
859
|
1915: (FEB, 14),
|
|
852
|
-
1916: (FEB,
|
|
860
|
+
1916: (FEB, 4),
|
|
853
861
|
1917: (JAN, 23),
|
|
854
862
|
1918: (FEB, 11),
|
|
855
863
|
1919: (FEB, 1),
|
|
@@ -1033,6 +1041,7 @@ class _ChineseLunisolar:
|
|
|
1033
1041
|
2097: (FEB, 12),
|
|
1034
1042
|
2098: (FEB, 1),
|
|
1035
1043
|
2099: (JAN, 21),
|
|
1044
|
+
2100: (FEB, 9),
|
|
1036
1045
|
}
|
|
1037
1046
|
|
|
1038
1047
|
MID_AUTUMN_DATES = {
|
|
@@ -1224,7 +1233,7 @@ class _ChineseLunisolar:
|
|
|
1224
1233
|
2086: (SEP, 22),
|
|
1225
1234
|
2087: (SEP, 11),
|
|
1226
1235
|
2088: (SEP, 29),
|
|
1227
|
-
2089: (SEP,
|
|
1236
|
+
2089: (SEP, 18),
|
|
1228
1237
|
2090: (SEP, 8),
|
|
1229
1238
|
2091: (SEP, 27),
|
|
1230
1239
|
2092: (SEP, 16),
|
|
@@ -1235,16 +1244,95 @@ class _ChineseLunisolar:
|
|
|
1235
1244
|
2097: (SEP, 20),
|
|
1236
1245
|
2098: (SEP, 9),
|
|
1237
1246
|
2099: (SEP, 29),
|
|
1247
|
+
2100: (SEP, 18),
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
KOREAN_CALENDAR_BUDDHA_BIRTHDAY_DATES = {
|
|
1251
|
+
1905: (MAY, 12),
|
|
1252
|
+
1908: (MAY, 8),
|
|
1253
|
+
1931: (MAY, 25),
|
|
1254
|
+
1968: (MAY, 5),
|
|
1255
|
+
2001: (MAY, 1),
|
|
1256
|
+
2012: (MAY, 28),
|
|
1257
|
+
2023: (MAY, 27),
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
KOREAN_CALENDAR_LUNAR_NEW_YEAR_DATES = {
|
|
1261
|
+
1944: (JAN, 26),
|
|
1262
|
+
1954: (FEB, 4),
|
|
1263
|
+
1958: (FEB, 19),
|
|
1264
|
+
1966: (JAN, 22),
|
|
1265
|
+
1988: (FEB, 18),
|
|
1266
|
+
1997: (FEB, 8),
|
|
1267
|
+
2027: (FEB, 7),
|
|
1268
|
+
2028: (JAN, 27),
|
|
1269
|
+
2061: (JAN, 22),
|
|
1270
|
+
2089: (FEB, 11),
|
|
1271
|
+
2092: (FEB, 8),
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
KOREAN_CALENDAR_MID_AUTUMN_DATES = {
|
|
1275
|
+
1909: (SEP, 29),
|
|
1276
|
+
1942: (SEP, 25),
|
|
1277
|
+
2040: (SEP, 21),
|
|
1278
|
+
2089: (SEP, 19),
|
|
1279
|
+
2096: (OCT, 1),
|
|
1280
|
+
2098: (SEP, 10),
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
VIETNAMESE_CALENDAR_HUNG_KINGS_DATES = {
|
|
1284
|
+
1916: (APR, 11),
|
|
1285
|
+
1917: (APR, 1),
|
|
1286
|
+
1939: (APR, 28),
|
|
1287
|
+
1975: (APR, 20),
|
|
1288
|
+
2009: (APR, 4),
|
|
1289
|
+
2037: (APR, 24),
|
|
1290
|
+
2038: (APR, 13),
|
|
1291
|
+
2085: (APR, 3),
|
|
1292
|
+
2086: (APR, 22),
|
|
1293
|
+
2095: (APR, 13),
|
|
1294
|
+
2100: (APR, 18),
|
|
1238
1295
|
}
|
|
1239
1296
|
|
|
1240
|
-
|
|
1297
|
+
VIETNAMESE_CALENDAR_LUNAR_NEW_YEAR_DATES = {
|
|
1298
|
+
1903: (JAN, 28),
|
|
1299
|
+
1916: (FEB, 3),
|
|
1300
|
+
1935: (FEB, 3),
|
|
1301
|
+
1965: (FEB, 1),
|
|
1302
|
+
1968: (JAN, 29),
|
|
1303
|
+
1969: (FEB, 16),
|
|
1304
|
+
1985: (JAN, 21),
|
|
1305
|
+
2007: (FEB, 17),
|
|
1306
|
+
2030: (FEB, 2),
|
|
1307
|
+
2053: (FEB, 18),
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
def __init__(self, calendar: str = CHINESE_CALENDAR) -> None:
|
|
1311
|
+
self.__verify_calendar(calendar)
|
|
1312
|
+
self.__calendar = calendar
|
|
1313
|
+
|
|
1314
|
+
@staticmethod
|
|
1315
|
+
def __verify_calendar(calendar):
|
|
1316
|
+
"""Verify calendar type."""
|
|
1317
|
+
|
|
1318
|
+
supported_calendars = {CHINESE_CALENDAR, KOREAN_CALENDAR, VIETNAMESE_CALENDAR}
|
|
1319
|
+
if calendar not in supported_calendars:
|
|
1320
|
+
raise ValueError(
|
|
1321
|
+
f"Unknown calendar name: {calendar}. "
|
|
1322
|
+
f"Supported calendars: {', '.join(sorted(supported_calendars))}"
|
|
1323
|
+
)
|
|
1324
|
+
|
|
1325
|
+
def _get_holiday(self, holiday: str, year: int, calendar=None) -> tuple[Optional[date], bool]:
|
|
1326
|
+
calendar = calendar or self.__calendar
|
|
1327
|
+
self.__verify_calendar(calendar)
|
|
1328
|
+
custom_calendar_dates = getattr(self, f"{calendar}_{holiday}_DATES", {})
|
|
1241
1329
|
estimated_dates = getattr(self, f"{holiday}_DATES", {})
|
|
1242
1330
|
exact_dates = getattr(self, f"{holiday}_DATES_{_CustomCalendar.CUSTOM_ATTR_POSTFIX}", {})
|
|
1243
|
-
dt = exact_dates.get(year, estimated_dates.get(year, ()))
|
|
1331
|
+
dt = exact_dates.get(year, custom_calendar_dates.get(year, estimated_dates.get(year, ())))
|
|
1244
1332
|
return date(year, *dt) if dt else None, year not in exact_dates
|
|
1245
1333
|
|
|
1246
|
-
def buddha_birthday_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1247
|
-
return self._get_holiday(BUDDHA_BIRTHDAY, year)
|
|
1334
|
+
def buddha_birthday_date(self, year: int, calendar=None) -> tuple[Optional[date], bool]:
|
|
1335
|
+
return self._get_holiday(BUDDHA_BIRTHDAY, year, calendar)
|
|
1248
1336
|
|
|
1249
1337
|
def double_ninth_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1250
1338
|
return self._get_holiday(DOUBLE_NINTH, year)
|
|
@@ -1252,14 +1340,14 @@ class _ChineseLunisolar:
|
|
|
1252
1340
|
def dragon_boat_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1253
1341
|
return self._get_holiday(DRAGON_BOAT, year)
|
|
1254
1342
|
|
|
1255
|
-
def hung_kings_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1256
|
-
return self._get_holiday(HUNG_KINGS, year)
|
|
1343
|
+
def hung_kings_date(self, year: int, calendar=None) -> tuple[Optional[date], bool]:
|
|
1344
|
+
return self._get_holiday(HUNG_KINGS, year, calendar)
|
|
1257
1345
|
|
|
1258
|
-
def lunar_new_year_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1259
|
-
return self._get_holiday(LUNAR_NEW_YEAR, year)
|
|
1346
|
+
def lunar_new_year_date(self, year: int, calendar=None) -> tuple[Optional[date], bool]:
|
|
1347
|
+
return self._get_holiday(LUNAR_NEW_YEAR, year, calendar)
|
|
1260
1348
|
|
|
1261
|
-
def mid_autumn_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1262
|
-
return self._get_holiday(MID_AUTUMN, year)
|
|
1349
|
+
def mid_autumn_date(self, year: int, calendar=None) -> tuple[Optional[date], bool]:
|
|
1350
|
+
return self._get_holiday(MID_AUTUMN, year, calendar)
|
|
1263
1351
|
|
|
1264
1352
|
|
|
1265
1353
|
class _CustomChineseHolidays(_CustomCalendar, _ChineseLunisolar):
|
holidays/calendars/custom.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/gregorian.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/hebrew.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/hindu.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -28,16 +28,21 @@ GOVARDHAN_PUJA = "GOVARDHAN_PUJA"
|
|
|
28
28
|
GUDI_PADWA = "GUDI_PADWA"
|
|
29
29
|
GURU_GOBIND_SINGH_JAYANTI = "GURU_GOBIND_SINGH_JAYANTI"
|
|
30
30
|
GURU_NANAK_JAYANTI = "GURU_NANAK_JAYANTI"
|
|
31
|
+
GYALPO_LOSAR = "GYALPO_LOSAR"
|
|
31
32
|
HOLI = "HOLI"
|
|
32
33
|
JANMASHTAMI = "JANMASHTAMI"
|
|
34
|
+
MAHA_ASHTAMI = "MAHA_ASHTAMI"
|
|
33
35
|
MAHA_NAVAMI = "MAHA_NAVAMI"
|
|
34
36
|
MAHA_SHIVARATRI = "MAHA_SHIVARATRI"
|
|
35
37
|
MAHAVIR_JAYANTI = "MAHAVIR_JAYANTI"
|
|
36
38
|
MAKAR_SANKRANTI = "MAKAR_SANKRANTI"
|
|
37
39
|
ONAM = "ONAM"
|
|
40
|
+
PONGAL = "PONGAL"
|
|
38
41
|
RAKSHA_BANDHAN = "RAKSHA_BANDHAN"
|
|
39
42
|
RAM_NAVAMI = "RAM_NAVAMI"
|
|
40
43
|
SHARAD_NAVRATRI = "SHARAD_NAVRATRI"
|
|
44
|
+
SONAM_LOSAR = "SONAM_LOSAR"
|
|
45
|
+
TAMU_LOSAR = "TAMU_LOSAR"
|
|
41
46
|
THAIPUSAM = "THAIPUSAM"
|
|
42
47
|
VAISAKHI = "VAISAKHI"
|
|
43
48
|
|
|
@@ -135,13 +140,13 @@ class _HinduLunisolar:
|
|
|
135
140
|
1911: (NOV, 19),
|
|
136
141
|
1912: (NOV, 7),
|
|
137
142
|
1913: (OCT, 27),
|
|
138
|
-
1914: (NOV,
|
|
143
|
+
1914: (NOV, 16),
|
|
139
144
|
1915: (NOV, 5),
|
|
140
145
|
1916: (OCT, 25),
|
|
141
146
|
1917: (NOV, 13),
|
|
142
147
|
1918: (NOV, 2),
|
|
143
148
|
1919: (NOV, 20),
|
|
144
|
-
1920: (NOV,
|
|
149
|
+
1920: (NOV, 9),
|
|
145
150
|
1921: (OCT, 29),
|
|
146
151
|
1922: (NOV, 17),
|
|
147
152
|
1923: (NOV, 6),
|
|
@@ -321,6 +326,7 @@ class _HinduLunisolar:
|
|
|
321
326
|
2097: (NOV, 2),
|
|
322
327
|
2098: (OCT, 22),
|
|
323
328
|
2099: (NOV, 10),
|
|
329
|
+
2100: (OCT, 31),
|
|
324
330
|
}
|
|
325
331
|
|
|
326
332
|
# https://www.timeanddate.com/holidays/india/diwali
|
|
@@ -348,7 +354,7 @@ class _HinduLunisolar:
|
|
|
348
354
|
2021: (NOV, 4),
|
|
349
355
|
2022: (OCT, 24),
|
|
350
356
|
2023: (NOV, 12),
|
|
351
|
-
2024: (
|
|
357
|
+
2024: (OCT, 31),
|
|
352
358
|
2025: (OCT, 20),
|
|
353
359
|
2026: (NOV, 8),
|
|
354
360
|
2027: (OCT, 29),
|
|
@@ -591,6 +597,37 @@ class _HinduLunisolar:
|
|
|
591
597
|
2035: (NOV, 15),
|
|
592
598
|
}
|
|
593
599
|
|
|
600
|
+
# https://www.timeanddate.com/holidays/nepal/gyalpo-losar
|
|
601
|
+
# https://www.ashesh.com.np/nepali-calendar/
|
|
602
|
+
GYALPO_LOSAR_DATES = {
|
|
603
|
+
2010: (FEB, 13),
|
|
604
|
+
2011: (MAR, 5),
|
|
605
|
+
2012: (FEB, 22),
|
|
606
|
+
2013: (MAR, 12),
|
|
607
|
+
2014: (MAR, 2),
|
|
608
|
+
2015: (FEB, 19),
|
|
609
|
+
2016: (MAR, 9),
|
|
610
|
+
2017: (FEB, 27),
|
|
611
|
+
2018: (FEB, 16),
|
|
612
|
+
2019: (MAR, 7),
|
|
613
|
+
2020: (FEB, 24),
|
|
614
|
+
2021: (MAR, 14),
|
|
615
|
+
2022: (MAR, 3),
|
|
616
|
+
2023: (FEB, 21),
|
|
617
|
+
2024: (MAR, 11),
|
|
618
|
+
2025: (FEB, 28),
|
|
619
|
+
2026: (FEB, 18),
|
|
620
|
+
2027: (FEB, 7),
|
|
621
|
+
2028: (FEB, 26),
|
|
622
|
+
2029: (FEB, 14),
|
|
623
|
+
2030: (MAR, 5),
|
|
624
|
+
2031: (FEB, 22),
|
|
625
|
+
2032: (FEB, 12),
|
|
626
|
+
2033: (MAR, 2),
|
|
627
|
+
2034: (FEB, 19),
|
|
628
|
+
2035: (FEB, 9),
|
|
629
|
+
}
|
|
630
|
+
|
|
594
631
|
# https://www.timeanddate.com/holidays/india/holi
|
|
595
632
|
HOLI_DATES = {
|
|
596
633
|
2001: (MAR, 10),
|
|
@@ -669,6 +706,45 @@ class _HinduLunisolar:
|
|
|
669
706
|
2035: (AUG, 26),
|
|
670
707
|
}
|
|
671
708
|
|
|
709
|
+
# https://www.timeanddate.com/holidays/india/maha-ashtami
|
|
710
|
+
MAHA_ASHTAMI_DATES = {
|
|
711
|
+
2001: (OCT, 24),
|
|
712
|
+
2002: (OCT, 13),
|
|
713
|
+
2003: (OCT, 3),
|
|
714
|
+
2004: (OCT, 21),
|
|
715
|
+
2005: (OCT, 11),
|
|
716
|
+
2006: (SEP, 30),
|
|
717
|
+
2007: (OCT, 19),
|
|
718
|
+
2008: (OCT, 7),
|
|
719
|
+
2009: (SEP, 26),
|
|
720
|
+
2010: (OCT, 15),
|
|
721
|
+
2011: (OCT, 4),
|
|
722
|
+
2012: (OCT, 22),
|
|
723
|
+
2013: (OCT, 12),
|
|
724
|
+
2014: (OCT, 2),
|
|
725
|
+
2015: (OCT, 21),
|
|
726
|
+
2016: (OCT, 9),
|
|
727
|
+
2017: (SEP, 28),
|
|
728
|
+
2018: (OCT, 17),
|
|
729
|
+
2019: (OCT, 6),
|
|
730
|
+
2020: (OCT, 23),
|
|
731
|
+
2021: (OCT, 13),
|
|
732
|
+
2022: (OCT, 3),
|
|
733
|
+
2023: (OCT, 22),
|
|
734
|
+
2024: (OCT, 11),
|
|
735
|
+
2025: (SEP, 30),
|
|
736
|
+
2026: (OCT, 19),
|
|
737
|
+
2027: (OCT, 7),
|
|
738
|
+
2028: (SEP, 26),
|
|
739
|
+
2029: (OCT, 14),
|
|
740
|
+
2030: (OCT, 4),
|
|
741
|
+
2031: (OCT, 23),
|
|
742
|
+
2032: (OCT, 12),
|
|
743
|
+
2033: (OCT, 2),
|
|
744
|
+
2034: (OCT, 20),
|
|
745
|
+
2035: (OCT, 9),
|
|
746
|
+
}
|
|
747
|
+
|
|
672
748
|
# https://www.timeanddate.com/holidays/india/maha-navami
|
|
673
749
|
MAHA_NAVAMI_DATES = {
|
|
674
750
|
2001: (OCT, 25),
|
|
@@ -688,8 +764,8 @@ class _HinduLunisolar:
|
|
|
688
764
|
2015: (OCT, 21),
|
|
689
765
|
2016: (OCT, 10),
|
|
690
766
|
2017: (SEP, 29),
|
|
691
|
-
2018: (OCT,
|
|
692
|
-
2019: (OCT,
|
|
767
|
+
2018: (OCT, 17),
|
|
768
|
+
2019: (OCT, 6),
|
|
693
769
|
2020: (OCT, 24),
|
|
694
770
|
2021: (OCT, 14),
|
|
695
771
|
2022: (OCT, 4),
|
|
@@ -864,6 +940,44 @@ class _HinduLunisolar:
|
|
|
864
940
|
2035: (SEP, 14),
|
|
865
941
|
}
|
|
866
942
|
|
|
943
|
+
PONGAL_DATES = {
|
|
944
|
+
2001: (JAN, 14),
|
|
945
|
+
2002: (JAN, 14),
|
|
946
|
+
2003: (JAN, 15),
|
|
947
|
+
2004: (JAN, 15),
|
|
948
|
+
2005: (JAN, 14),
|
|
949
|
+
2006: (JAN, 14),
|
|
950
|
+
2007: (JAN, 15),
|
|
951
|
+
2008: (JAN, 15),
|
|
952
|
+
2009: (JAN, 14),
|
|
953
|
+
2010: (JAN, 14),
|
|
954
|
+
2011: (JAN, 15),
|
|
955
|
+
2012: (JAN, 15),
|
|
956
|
+
2013: (JAN, 14),
|
|
957
|
+
2014: (JAN, 14),
|
|
958
|
+
2015: (JAN, 15),
|
|
959
|
+
2016: (JAN, 15),
|
|
960
|
+
2017: (JAN, 14),
|
|
961
|
+
2018: (JAN, 14),
|
|
962
|
+
2019: (JAN, 15),
|
|
963
|
+
2020: (JAN, 15),
|
|
964
|
+
2021: (JAN, 14),
|
|
965
|
+
2022: (JAN, 14),
|
|
966
|
+
2023: (JAN, 15),
|
|
967
|
+
2024: (JAN, 15),
|
|
968
|
+
2025: (JAN, 14),
|
|
969
|
+
2026: (JAN, 14),
|
|
970
|
+
2027: (JAN, 15),
|
|
971
|
+
2028: (JAN, 15),
|
|
972
|
+
2029: (JAN, 14),
|
|
973
|
+
2030: (JAN, 14),
|
|
974
|
+
2031: (JAN, 15),
|
|
975
|
+
2032: (JAN, 15),
|
|
976
|
+
2033: (JAN, 14),
|
|
977
|
+
2034: (JAN, 14),
|
|
978
|
+
2035: (JAN, 15),
|
|
979
|
+
}
|
|
980
|
+
|
|
867
981
|
# https://www.timeanddate.com/holidays/india/raksha-bandhan
|
|
868
982
|
RAKSHA_BANDHAN_DATES = {
|
|
869
983
|
2001: (AUG, 4),
|
|
@@ -981,6 +1095,64 @@ class _HinduLunisolar:
|
|
|
981
1095
|
2035: (OCT, 2),
|
|
982
1096
|
}
|
|
983
1097
|
|
|
1098
|
+
# https://www.timeanddate.com/holidays/nepal/sonam-losar
|
|
1099
|
+
# https://www.ashesh.com.np/nepali-calendar/
|
|
1100
|
+
SONAM_LOSAR_DATES = {
|
|
1101
|
+
2010: (JAN, 16),
|
|
1102
|
+
2011: (FEB, 4),
|
|
1103
|
+
2012: (JAN, 24),
|
|
1104
|
+
2013: (FEB, 11),
|
|
1105
|
+
2014: (JAN, 31),
|
|
1106
|
+
2015: (JAN, 21),
|
|
1107
|
+
2016: (FEB, 9),
|
|
1108
|
+
2017: (JAN, 28),
|
|
1109
|
+
2018: (JAN, 18),
|
|
1110
|
+
2019: (FEB, 5),
|
|
1111
|
+
2020: (JAN, 25),
|
|
1112
|
+
2021: (FEB, 12),
|
|
1113
|
+
2022: (FEB, 2),
|
|
1114
|
+
2023: (JAN, 22),
|
|
1115
|
+
2024: (FEB, 10),
|
|
1116
|
+
2025: (JAN, 30),
|
|
1117
|
+
2026: (JAN, 19),
|
|
1118
|
+
2027: (FEB, 7),
|
|
1119
|
+
2028: (FEB, 26),
|
|
1120
|
+
2029: (JAN, 15),
|
|
1121
|
+
2030: (FEB, 3),
|
|
1122
|
+
2031: (JAN, 24),
|
|
1123
|
+
2032: (FEB, 12),
|
|
1124
|
+
2033: (JAN, 31),
|
|
1125
|
+
2034: (JAN, 21),
|
|
1126
|
+
2035: (FEB, 9),
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
# https://www.hamropatro.com/posts/articles-Bishesh-Dinharu/articles-Bishesh-Dinharu-english-tamu-lhosar
|
|
1130
|
+
TAMU_LOSAR_DATES = {
|
|
1131
|
+
2010: (DEC, 30),
|
|
1132
|
+
2011: (DEC, 30),
|
|
1133
|
+
2012: (DEC, 30),
|
|
1134
|
+
2013: (DEC, 30),
|
|
1135
|
+
2014: (DEC, 30),
|
|
1136
|
+
2015: (DEC, 30),
|
|
1137
|
+
2016: (DEC, 30),
|
|
1138
|
+
2017: (DEC, 30),
|
|
1139
|
+
2018: (DEC, 30),
|
|
1140
|
+
2019: (DEC, 31),
|
|
1141
|
+
2020: (DEC, 30),
|
|
1142
|
+
2021: (DEC, 30),
|
|
1143
|
+
2022: (DEC, 30),
|
|
1144
|
+
2023: (DEC, 31),
|
|
1145
|
+
2024: (DEC, 30),
|
|
1146
|
+
2025: (DEC, 30),
|
|
1147
|
+
2026: (DEC, 30),
|
|
1148
|
+
2027: (DEC, 30),
|
|
1149
|
+
2028: (DEC, 30),
|
|
1150
|
+
2029: (DEC, 30),
|
|
1151
|
+
2030: (DEC, 31),
|
|
1152
|
+
2031: (DEC, 31),
|
|
1153
|
+
2032: (DEC, 30),
|
|
1154
|
+
}
|
|
1155
|
+
|
|
984
1156
|
THAIPUSAM_DATES = {
|
|
985
1157
|
1901: (MAR, 5),
|
|
986
1158
|
1902: (FEB, 23),
|
|
@@ -1181,6 +1353,7 @@ class _HinduLunisolar:
|
|
|
1181
1353
|
2097: (FEB, 27),
|
|
1182
1354
|
2098: (FEB, 16),
|
|
1183
1355
|
2099: (JAN, 6),
|
|
1356
|
+
2100: (FEB, 24),
|
|
1184
1357
|
}
|
|
1185
1358
|
|
|
1186
1359
|
# https://www.timeanddate.com/holidays/india/vaisakhi
|
|
@@ -1265,12 +1438,21 @@ class _HinduLunisolar:
|
|
|
1265
1438
|
def guru_nanak_jayanti_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1266
1439
|
return self._get_holiday(GURU_NANAK_JAYANTI, year)
|
|
1267
1440
|
|
|
1441
|
+
def gyalpo_losar_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1442
|
+
return self._get_holiday(GYALPO_LOSAR, year)
|
|
1443
|
+
|
|
1268
1444
|
def holi_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1269
1445
|
return self._get_holiday(HOLI, year)
|
|
1270
1446
|
|
|
1447
|
+
def pongal_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1448
|
+
return self._get_holiday(PONGAL, year)
|
|
1449
|
+
|
|
1271
1450
|
def janmashtami_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1272
1451
|
return self._get_holiday(JANMASHTAMI, year)
|
|
1273
1452
|
|
|
1453
|
+
def maha_ashtami_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1454
|
+
return self._get_holiday(MAHA_ASHTAMI, year)
|
|
1455
|
+
|
|
1274
1456
|
def maha_navami_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1275
1457
|
return self._get_holiday(MAHA_NAVAMI, year)
|
|
1276
1458
|
|
|
@@ -1295,6 +1477,12 @@ class _HinduLunisolar:
|
|
|
1295
1477
|
def sharad_navratri_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1296
1478
|
return self._get_holiday(SHARAD_NAVRATRI, year)
|
|
1297
1479
|
|
|
1480
|
+
def sonam_losar_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1481
|
+
return self._get_holiday(SONAM_LOSAR, year)
|
|
1482
|
+
|
|
1483
|
+
def tamu_losar_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1484
|
+
return self._get_holiday(TAMU_LOSAR, year)
|
|
1485
|
+
|
|
1298
1486
|
def thaipusam_date(self, year: int) -> tuple[Optional[date], bool]:
|
|
1299
1487
|
return self._get_holiday(THAIPUSAM, year)
|
|
1300
1488
|
|
holidays/calendars/islamic.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/julian.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/persian.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/sinhala.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/calendars/thai.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
holidays/constants.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
5
|
# specific date is a holiday as fast and flexible as possible.
|
|
6
6
|
#
|
|
7
|
-
# Authors: Vacanza Team and individual contributors (see
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
8
|
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
9
|
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|