holidays 0.83__py3-none-any.whl → 0.85__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 +0 -2
- holidays/calendars/__init__.py +0 -2
- holidays/calendars/balinese_saka.py +2 -3
- holidays/calendars/buddhist.py +3 -4
- holidays/calendars/burmese.py +9 -10
- holidays/calendars/chinese.py +8 -9
- holidays/calendars/hebrew.py +10 -11
- holidays/calendars/hindu.py +27 -28
- holidays/calendars/mandaean.py +2 -3
- holidays/calendars/mongolian.py +4 -5
- holidays/calendars/persian.py +2 -3
- holidays/calendars/sinhala.py +25 -14
- holidays/calendars/thai.py +13 -14
- holidays/calendars/tibetan.py +12 -13
- holidays/constants.py +0 -2
- holidays/countries/__init__.py +0 -2
- holidays/countries/aland_islands.py +4 -4
- holidays/countries/american_samoa.py +4 -4
- holidays/countries/angola.py +1 -2
- holidays/countries/austria.py +1 -1
- holidays/countries/azerbaijan.py +2 -0
- holidays/countries/china.py +10 -1
- holidays/countries/ecuador.py +12 -4
- holidays/countries/french_guiana.py +4 -4
- holidays/countries/french_polynesia.py +4 -4
- holidays/countries/french_southern_territories.py +4 -4
- holidays/countries/guadeloupe.py +4 -4
- holidays/countries/guam.py +4 -4
- holidays/countries/guernsey.py +1 -2
- holidays/countries/italy.py +2 -2
- holidays/countries/jersey.py +1 -2
- holidays/countries/malta.py +1 -1
- holidays/countries/marshall_islands.py +8 -6
- holidays/countries/martinique.py +4 -4
- holidays/countries/mauritania.py +2 -4
- holidays/countries/mayotte.py +4 -4
- holidays/countries/new_caledonia.py +4 -4
- holidays/countries/northern_mariana_islands.py +4 -4
- holidays/countries/portugal.py +6 -3
- holidays/countries/puerto_rico.py +4 -4
- holidays/countries/reunion.py +4 -4
- holidays/countries/saint_barthelemy.py +4 -4
- holidays/countries/saint_martin.py +4 -4
- holidays/countries/saint_pierre_and_miquelon.py +4 -4
- holidays/countries/samoa.py +1 -3
- holidays/countries/sint_maarten.py +1 -1
- holidays/countries/spain.py +418 -214
- holidays/countries/sri_lanka.py +37 -33
- holidays/countries/svalbard_and_jan_mayen.py +4 -4
- holidays/countries/taiwan.py +2 -2
- holidays/countries/thailand.py +4 -1
- holidays/countries/turkey.py +7 -4
- holidays/countries/united_kingdom.py +1 -2
- holidays/countries/united_states.py +5 -2
- holidays/countries/united_states_minor_outlying_islands.py +4 -4
- holidays/countries/united_states_virgin_islands.py +4 -4
- holidays/countries/wallis_and_futuna.py +4 -4
- holidays/financial/__init__.py +1 -3
- holidays/financial/ice_futures_europe.py +6 -2
- holidays/financial/national_stock_exchange_of_india.py +141 -38
- holidays/groups/__init__.py +0 -2
- holidays/groups/balinese_saka.py +2 -3
- holidays/groups/buddhist.py +4 -5
- holidays/groups/burmese.py +11 -12
- holidays/groups/chinese.py +18 -19
- holidays/groups/christian.py +20 -0
- holidays/groups/eastern.py +2 -3
- holidays/groups/hebrew.py +7 -10
- holidays/groups/hindu.py +36 -37
- holidays/groups/mandaean.py +13 -14
- holidays/groups/mongolian.py +7 -8
- holidays/groups/persian.py +14 -15
- holidays/groups/sinhala.py +13 -14
- holidays/groups/thai.py +12 -13
- holidays/groups/tibetan.py +16 -17
- holidays/holiday_base.py +34 -33
- holidays/ical.py +1 -2
- holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/si_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/ta_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/US.mo +0 -0
- holidays/locale/tr/LC_MESSAGES/TR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/EC.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/TR.mo +0 -0
- holidays/mixins/__init__.py +0 -2
- holidays/mixins/child_entity.py +1 -3
- holidays/observed_holiday_base.py +12 -13
- holidays/registry.py +4 -4
- holidays/utils.py +13 -14
- holidays/version.py +1 -1
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/METADATA +4 -5
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/RECORD +112 -111
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/WHEEL +0 -0
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.83.dist-info → holidays-0.85.dist-info}/top_level.txt +0 -0
holidays/calendars/thai.py
CHANGED
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
from functools import cache
|
|
15
|
-
from typing import Optional
|
|
16
15
|
|
|
17
16
|
from holidays.calendars.gregorian import _timedelta
|
|
18
17
|
|
|
@@ -296,7 +295,7 @@ class _ThaiLunisolar:
|
|
|
296
295
|
)
|
|
297
296
|
|
|
298
297
|
@cache
|
|
299
|
-
def _get_start_date(self, year: int) ->
|
|
298
|
+
def _get_start_date(self, year: int) -> date | None:
|
|
300
299
|
"""Calculate the start date of that particular Thai Lunar Calendar Year.
|
|
301
300
|
|
|
302
301
|
This usually falls in November or December of the previous Gregorian
|
|
@@ -367,7 +366,7 @@ class _ThaiLunisolar:
|
|
|
367
366
|
|
|
368
367
|
return buddhist_sabbaths
|
|
369
368
|
|
|
370
|
-
def makha_bucha_date(self, year: int, calendar=None) ->
|
|
369
|
+
def makha_bucha_date(self, year: int, calendar=None) -> date | None:
|
|
371
370
|
"""Calculate the estimated Gregorian date of Makha Bucha.
|
|
372
371
|
|
|
373
372
|
Also known as "Magha Puja", "Makha Buxha" and "Meak Bochea".
|
|
@@ -415,7 +414,7 @@ class _ThaiLunisolar:
|
|
|
415
414
|
else +73,
|
|
416
415
|
)
|
|
417
416
|
|
|
418
|
-
def visakha_bucha_date(self, year: int, calendar=None) ->
|
|
417
|
+
def visakha_bucha_date(self, year: int, calendar=None) -> date | None:
|
|
419
418
|
"""Calculate the estimated Gregorian date of Visakha Bucha.
|
|
420
419
|
|
|
421
420
|
Also known as "Vesak" and "Buddha Day". This coincides with
|
|
@@ -462,7 +461,7 @@ class _ThaiLunisolar:
|
|
|
462
461
|
else +161,
|
|
463
462
|
)
|
|
464
463
|
|
|
465
|
-
def preah_neangkoal_date(self, year: int) ->
|
|
464
|
+
def preah_neangkoal_date(self, year: int) -> date | None:
|
|
466
465
|
"""Calculate the estimated Gregorian date of Preah Neangkoal.
|
|
467
466
|
|
|
468
467
|
Also known as "Cambodian Royal Ploughing Ceremony". This always
|
|
@@ -494,7 +493,7 @@ class _ThaiLunisolar:
|
|
|
494
493
|
|
|
495
494
|
return _timedelta(start_date, +165)
|
|
496
495
|
|
|
497
|
-
def atthami_bucha_date(self, year: int, calendar=None) ->
|
|
496
|
+
def atthami_bucha_date(self, year: int, calendar=None) -> date | None:
|
|
498
497
|
"""Calculate the estimated Gregorian date of Atthami Bucha.
|
|
499
498
|
|
|
500
499
|
Also known as "Buddha's Cremation Day". This coincides with
|
|
@@ -543,7 +542,7 @@ class _ThaiLunisolar:
|
|
|
543
542
|
else +169,
|
|
544
543
|
)
|
|
545
544
|
|
|
546
|
-
def asarnha_bucha_date(self, year: int) ->
|
|
545
|
+
def asarnha_bucha_date(self, year: int) -> date | None:
|
|
547
546
|
"""Calculate the estimated Gregorian date of Asarnha Bucha.
|
|
548
547
|
|
|
549
548
|
Also known as "Asalha Puja". This coincides with
|
|
@@ -583,7 +582,7 @@ class _ThaiLunisolar:
|
|
|
583
582
|
delta_days = +220
|
|
584
583
|
return _timedelta(start_date, delta_days)
|
|
585
584
|
|
|
586
|
-
def khao_phansa_date(self, year: int) ->
|
|
585
|
+
def khao_phansa_date(self, year: int) -> date | None:
|
|
587
586
|
"""Calculate the estimated Gregorian date of Khao Phansa.
|
|
588
587
|
|
|
589
588
|
Also known as "(Start of) Buddhist Lent" and "Start of Vassa".
|
|
@@ -623,7 +622,7 @@ class _ThaiLunisolar:
|
|
|
623
622
|
delta_days = +221
|
|
624
623
|
return _timedelta(start_date, delta_days)
|
|
625
624
|
|
|
626
|
-
def boun_haw_khao_padapdin_date(self, year: int) ->
|
|
625
|
+
def boun_haw_khao_padapdin_date(self, year: int) -> date | None:
|
|
627
626
|
"""Calculate the estimated Gregorian date of Boun Haw Khao Padapdin.
|
|
628
627
|
|
|
629
628
|
Also known as "Boon Khao Padap Din".
|
|
@@ -660,7 +659,7 @@ class _ThaiLunisolar:
|
|
|
660
659
|
delta_days = +264
|
|
661
660
|
return _timedelta(start_date, delta_days)
|
|
662
661
|
|
|
663
|
-
def boun_haw_khao_salark_date(self, year: int) ->
|
|
662
|
+
def boun_haw_khao_salark_date(self, year: int) -> date | None:
|
|
664
663
|
"""Calculate the estimated Gregorian date of Boun Haw Khao Salark.
|
|
665
664
|
|
|
666
665
|
Also known as "Boon Khao Sak".
|
|
@@ -697,7 +696,7 @@ class _ThaiLunisolar:
|
|
|
697
696
|
delta_days = +279
|
|
698
697
|
return _timedelta(start_date, delta_days)
|
|
699
698
|
|
|
700
|
-
def pchum_ben_date(self, year: int) ->
|
|
699
|
+
def pchum_ben_date(self, year: int) -> date | None:
|
|
701
700
|
"""Calculate the estimated Gregorian date of Pchum Ben.
|
|
702
701
|
|
|
703
702
|
Also known as "Prachum Bandar".
|
|
@@ -734,7 +733,7 @@ class _ThaiLunisolar:
|
|
|
734
733
|
delta_days = +294
|
|
735
734
|
return _timedelta(start_date, delta_days)
|
|
736
735
|
|
|
737
|
-
def ok_phansa_date(self, year: int) ->
|
|
736
|
+
def ok_phansa_date(self, year: int) -> date | None:
|
|
738
737
|
"""Calculate the estimated Gregorian date of Ok Phansa.
|
|
739
738
|
|
|
740
739
|
Also known as "End of Buddhist Lent" and "End of Vassa".
|
|
@@ -771,7 +770,7 @@ class _ThaiLunisolar:
|
|
|
771
770
|
delta_days = +309
|
|
772
771
|
return _timedelta(start_date, delta_days)
|
|
773
772
|
|
|
774
|
-
def boun_suang_heua_date(self, year: int) ->
|
|
773
|
+
def boun_suang_heua_date(self, year: int) -> date | None:
|
|
775
774
|
"""Calculate the estimated Gregorian date of Ok Boun Suang Huea.
|
|
776
775
|
|
|
777
776
|
Boun Suang Huea Nakhone Luang Prabang, also known as "Vientiane Boat Racing Festival".
|
|
@@ -808,7 +807,7 @@ class _ThaiLunisolar:
|
|
|
808
807
|
delta_days = +310
|
|
809
808
|
return _timedelta(start_date, delta_days)
|
|
810
809
|
|
|
811
|
-
def loy_krathong_date(self, year: int) ->
|
|
810
|
+
def loy_krathong_date(self, year: int) -> date | None:
|
|
812
811
|
"""Calculate the estimated Gregorian date of Loy Krathong.
|
|
813
812
|
|
|
814
813
|
Also known as "Boun That Louang" and "Bon Om Touk".
|
holidays/calendars/tibetan.py
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
15
14
|
|
|
16
15
|
from holidays.calendars.custom import _CustomCalendar
|
|
17
16
|
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
@@ -1422,43 +1421,43 @@ class _TibetanLunisolar:
|
|
|
1422
1421
|
2099: (JAN, 2),
|
|
1423
1422
|
}
|
|
1424
1423
|
|
|
1425
|
-
def _get_holiday(self, holiday: str, year: int) -> tuple[
|
|
1424
|
+
def _get_holiday(self, holiday: str, year: int) -> tuple[date | None, bool]:
|
|
1426
1425
|
estimated_dates = getattr(self, f"{holiday}_DATES", {})
|
|
1427
1426
|
exact_dates = getattr(self, f"{holiday}_DATES_{_CustomCalendar.CUSTOM_ATTR_POSTFIX}", {})
|
|
1428
1427
|
dt = exact_dates.get(year, estimated_dates.get(year, ()))
|
|
1429
1428
|
return date(year, *dt) if dt else None, year not in exact_dates
|
|
1430
1429
|
|
|
1431
|
-
def blessed_rainy_day_date(self, year: int) -> tuple[
|
|
1430
|
+
def blessed_rainy_day_date(self, year: int) -> tuple[date | None, bool]:
|
|
1432
1431
|
return self._get_holiday(BLESSED_RAINY_DAY, year)
|
|
1433
1432
|
|
|
1434
|
-
def birth_of_guru_rinpoche_date(self, year: int) -> tuple[
|
|
1433
|
+
def birth_of_guru_rinpoche_date(self, year: int) -> tuple[date | None, bool]:
|
|
1435
1434
|
return self._get_holiday(BIRTH_OF_GURU_RINPOCHE, year)
|
|
1436
1435
|
|
|
1437
|
-
def buddha_first_sermon_date(self, year: int) -> tuple[
|
|
1436
|
+
def buddha_first_sermon_date(self, year: int) -> tuple[date | None, bool]:
|
|
1438
1437
|
return self._get_holiday(BUDDHA_FIRST_SERMON, year)
|
|
1439
1438
|
|
|
1440
|
-
def buddha_parinirvana_date(self, year: int) -> tuple[
|
|
1439
|
+
def buddha_parinirvana_date(self, year: int) -> tuple[date | None, bool]:
|
|
1441
1440
|
return self._get_holiday(BUDDHA_PARINIRVANA, year)
|
|
1442
1441
|
|
|
1443
|
-
def day_of_offering_date(self, year: int) -> tuple[
|
|
1442
|
+
def day_of_offering_date(self, year: int) -> tuple[date | None, bool]:
|
|
1444
1443
|
return self._get_holiday(DAY_OF_OFFERING, year)
|
|
1445
1444
|
|
|
1446
|
-
def death_of_zhabdrung_date(self, year: int) -> tuple[
|
|
1445
|
+
def death_of_zhabdrung_date(self, year: int) -> tuple[date | None, bool]:
|
|
1447
1446
|
return self._get_holiday(DEATH_OF_ZHABDRUNG, year)
|
|
1448
1447
|
|
|
1449
|
-
def descending_day_of_lord_buddha_date(self, year: int) -> tuple[
|
|
1448
|
+
def descending_day_of_lord_buddha_date(self, year: int) -> tuple[date | None, bool]:
|
|
1450
1449
|
return self._get_holiday(DESCENDING_DAY_OF_LORD_BUDDHA, year)
|
|
1451
1450
|
|
|
1452
|
-
def losar_date(self, year: int) -> tuple[
|
|
1451
|
+
def losar_date(self, year: int) -> tuple[date | None, bool]:
|
|
1453
1452
|
return self._get_holiday(LOSAR, year)
|
|
1454
1453
|
|
|
1455
|
-
def thimphu_drubchen_date(self, year: int) -> tuple[
|
|
1454
|
+
def thimphu_drubchen_date(self, year: int) -> tuple[date | None, bool]:
|
|
1456
1455
|
return self._get_holiday(THIMPHU_DRUBCHEN, year)
|
|
1457
1456
|
|
|
1458
|
-
def thimphu_tshechu_date(self, year: int) -> tuple[
|
|
1457
|
+
def thimphu_tshechu_date(self, year: int) -> tuple[date | None, bool]:
|
|
1459
1458
|
return self._get_holiday(THIMPHU_TSHECHU, year)
|
|
1460
1459
|
|
|
1461
|
-
def tibetan_winter_solstice_date(self, year: int) -> tuple[
|
|
1460
|
+
def tibetan_winter_solstice_date(self, year: int) -> tuple[date | None, bool]:
|
|
1462
1461
|
return self._get_holiday(WINTER_SOLSTICE, year)
|
|
1463
1462
|
|
|
1464
1463
|
|
holidays/constants.py
CHANGED
holidays/countries/__init__.py
CHANGED
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
# ruff: noqa: F401
|
|
14
|
-
|
|
15
13
|
from holidays.countries.afghanistan import Afghanistan, AF, AFG
|
|
16
14
|
from holidays.countries.aland_islands import AlandIslands, AX, ALA, HolidaysAX
|
|
17
15
|
from holidays.countries.albania import Albania, AL, ALB
|
|
@@ -14,7 +14,7 @@ from holidays.countries.finland import Finland
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class AlandIslands(ChildEntity, Finland):
|
|
18
18
|
"""Åland Islands holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a Finnish subdivision that is also officially assigned
|
|
@@ -35,13 +35,13 @@ class HolidaysAX(ChildEntity, Finland):
|
|
|
35
35
|
start_year = 1921
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
class AlandIslands
|
|
38
|
+
class HolidaysAX(AlandIslands):
|
|
39
39
|
pass
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
class AX(
|
|
42
|
+
class AX(AlandIslands):
|
|
43
43
|
pass
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
class ALA(
|
|
46
|
+
class ALA(AlandIslands):
|
|
47
47
|
pass
|
|
@@ -14,7 +14,7 @@ from holidays.countries.united_states import UnitedStates
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class AmericanSamoa(ChildEntity, UnitedStates):
|
|
18
18
|
"""American Samoa holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a US subdivision that is also officially assigned its own country code in ISO 3166-1.
|
|
@@ -27,13 +27,13 @@ class HolidaysAS(ChildEntity, UnitedStates):
|
|
|
27
27
|
start_year = 1901
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
class AmericanSamoa
|
|
30
|
+
class HolidaysAS(AmericanSamoa):
|
|
31
31
|
pass
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
class AS(
|
|
34
|
+
class AS(AmericanSamoa):
|
|
35
35
|
pass
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
class ASM(
|
|
38
|
+
class ASM(AmericanSamoa):
|
|
39
39
|
pass
|
holidays/countries/angola.py
CHANGED
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
from gettext import gettext as tr
|
|
15
|
-
from typing import Optional
|
|
16
15
|
|
|
17
16
|
from holidays.calendars.gregorian import AUG, SEP
|
|
18
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
@@ -62,7 +61,7 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
62
61
|
# it rolls over to the following Monday.
|
|
63
62
|
return dt >= date(1996, SEP, 27)
|
|
64
63
|
|
|
65
|
-
def _add_observed(self, dt: date, **kwargs) -> tuple[bool,
|
|
64
|
+
def _add_observed(self, dt: date, **kwargs) -> tuple[bool, date | None]:
|
|
66
65
|
# As per Law # #11/18, from 2018/9/10, when public holiday falls on Tuesday or Thursday,
|
|
67
66
|
# the Monday or Friday is also a holiday.
|
|
68
67
|
kwargs.setdefault(
|
holidays/countries/austria.py
CHANGED
|
@@ -124,7 +124,7 @@ class Austria(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
124
124
|
|
|
125
125
|
def _populate_subdiv_1_bank_holidays(self):
|
|
126
126
|
# Saint Martin's Day.
|
|
127
|
-
self.
|
|
127
|
+
self._add_saint_martins_day(tr("Hl. Martin"))
|
|
128
128
|
|
|
129
129
|
def _populate_subdiv_2_bank_holidays(self):
|
|
130
130
|
# Saint Joseph's Day.
|
holidays/countries/azerbaijan.py
CHANGED
|
@@ -242,6 +242,7 @@ class AzerbaijanStaticHolidays:
|
|
|
242
242
|
* <https://web.archive.org/web/20241015224204/https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8332>
|
|
243
243
|
* <https://web.archive.org/web/20250410132503/https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8449>
|
|
244
244
|
* <https://web.archive.org/web/20250216200846/https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8623>
|
|
245
|
+
* <https://web.archive.org/web/20250711211545/https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8864>
|
|
245
246
|
|
|
246
247
|
Special holidays references:
|
|
247
248
|
* <https://web.archive.org/web/20250421013220/https://www.msk.gov.az/en/elections/pages/municipal-elections/belediyye-29-01-2025>
|
|
@@ -308,6 +309,7 @@ class AzerbaijanStaticHolidays:
|
|
|
308
309
|
2025: (
|
|
309
310
|
(JAN, 3, DEC, 29, 2024),
|
|
310
311
|
(JAN, 29, municipal_elections),
|
|
312
|
+
(JUN, 27, JUN, 21),
|
|
311
313
|
),
|
|
312
314
|
}
|
|
313
315
|
|
holidays/countries/china.py
CHANGED
|
@@ -24,8 +24,9 @@ class China(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays,
|
|
|
24
24
|
References:
|
|
25
25
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_China>
|
|
26
26
|
* [Festivals and Public Holidays](https://zh.wikipedia.org/wiki/中华人民共和国节日与公众假期)
|
|
27
|
-
* [
|
|
27
|
+
* [2026](https://web.archive.org/web/20251111205945/https://www.gov.cn/zhengce/content/202511/content_7047090.htm)
|
|
28
28
|
* [2025](https://web.archive.org/web/20250424041657/https://www.gov.cn/zhengce/content/202411/content_6986382.htm)
|
|
29
|
+
* [2024 changes (Order #795)](https://web.archive.org/web/20250228151847/https://www.gov.cn/zhengce/content/202411/content_6986380.htm)
|
|
29
30
|
* [2024](https://web.archive.org/web/20250227033646/https://www.gov.cn/zhengce/content/202310/content_6911527.htm)
|
|
30
31
|
* [2023](https://web.archive.org/web/20250414125053/https://www.gov.cn/gongbao/content/2023/content_5736714.htm)
|
|
31
32
|
* [2022](https://web.archive.org/web/20250413071341/http://www.gov.cn/gongbao/content/2021/content_5651728.htm)
|
|
@@ -452,6 +453,14 @@ class ChinaStaticHolidays:
|
|
|
452
453
|
(OCT, 7, SEP, 28), # National Day
|
|
453
454
|
(OCT, 8, OCT, 11), # National Day
|
|
454
455
|
),
|
|
456
|
+
2026: (
|
|
457
|
+
(JAN, 2, JAN, 4), # New Year's Day
|
|
458
|
+
(FEB, 20, FEB, 14), # Spring Festival
|
|
459
|
+
(FEB, 23, FEB, 28), # Spring Festival
|
|
460
|
+
(MAY, 5, MAY, 9), # Labor Day
|
|
461
|
+
(OCT, 6, SEP, 20), # National Day
|
|
462
|
+
(OCT, 7, OCT, 10), # National Day
|
|
463
|
+
),
|
|
455
464
|
}
|
|
456
465
|
|
|
457
466
|
special_public_holidays_observed = {
|
holidays/countries/ecuador.py
CHANGED
|
@@ -19,6 +19,7 @@ from holidays.observed_holiday_base import (
|
|
|
19
19
|
WED_TO_NEXT_FRI,
|
|
20
20
|
SAT_TO_PREV_FRI,
|
|
21
21
|
SUN_TO_NEXT_MON,
|
|
22
|
+
SUN_TO_NEXT_TUE,
|
|
22
23
|
WED_THU_TO_NEXT_FRI,
|
|
23
24
|
)
|
|
24
25
|
|
|
@@ -29,6 +30,11 @@ class Ecuador(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
29
30
|
References:
|
|
30
31
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Ecuador>
|
|
31
32
|
* [Código del Trabajo](https://web.archive.org/web/20250428092005/https://biblioteca.defensoria.gob.ec/bitstream/37000/3364/1/Código%20de%20Trabajo%20(04-11-2021).pdf)
|
|
33
|
+
* [2018](https://web.archive.org/web/20181231193947/https://www.turismo.gob.ec/wp-content/uploads/2018/06/CALENDARIO-FERIADOS2018.pdf)
|
|
34
|
+
* [2019](https://web.archive.org/web/20220707173738/https://www.turismo.gob.ec/wp-content/uploads/2019/01/FERIADOS-2019.pdf)
|
|
35
|
+
* [2020-2021](https://web.archive.org/web/20210425014244/https://www.turismo.gob.ec/wp-content/uploads/2020/03/CALENDARIO-DE-FERIADOS.pdf)
|
|
36
|
+
* [2022](https://web.archive.org/web/20220127234055/https://www.turismo.gob.ec/wp-content/uploads/2022/01/FERIADOS-NACIONALES_2022.pdf)
|
|
37
|
+
* [2023-2025](https://web.archive.org/web/20250806025223/https://www.turismo.gob.ec/wp-content/uploads/2023/12/CALENDARIO-FERIADOS-2023-2025-06-12-2022-.pdf)
|
|
32
38
|
"""
|
|
33
39
|
|
|
34
40
|
country = "EC"
|
|
@@ -84,19 +90,21 @@ class Ecuador(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
84
90
|
|
|
85
91
|
self._add_observed(
|
|
86
92
|
# All Souls' Day.
|
|
87
|
-
self._add_all_souls_day(tr("Día de
|
|
88
|
-
|
|
93
|
+
self._add_all_souls_day(tr("Día de Difuntos")),
|
|
94
|
+
# Not observed the next day.
|
|
95
|
+
rule=TUE_TO_PREV_MON + WED_TO_NEXT_FRI + SAT_TO_PREV_FRI + SUN_TO_NEXT_TUE,
|
|
89
96
|
)
|
|
90
97
|
|
|
91
98
|
self._add_observed(
|
|
92
99
|
# Independence of Cuenca.
|
|
93
100
|
self._add_holiday_nov_3(tr("Independencia de Cuenca")),
|
|
94
|
-
|
|
101
|
+
# Not observed the previous day.
|
|
102
|
+
rule=SUN_TO_NEXT_MON,
|
|
95
103
|
)
|
|
96
104
|
|
|
97
105
|
self._add_observed(
|
|
98
106
|
# Christmas Day.
|
|
99
|
-
self._add_christmas_day(tr("
|
|
107
|
+
self._add_christmas_day(tr("Navidad")),
|
|
100
108
|
rule=SAT_TO_PREV_FRI + SUN_TO_NEXT_MON,
|
|
101
109
|
)
|
|
102
110
|
|
|
@@ -14,7 +14,7 @@ from holidays.countries.france import France
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class FrenchGuiana(ChildEntity, France):
|
|
18
18
|
"""French Guiana holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a French subdivision that is also officially assigned
|
|
@@ -32,13 +32,13 @@ class HolidaysGF(ChildEntity, France):
|
|
|
32
32
|
start_year = 1815
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
class FrenchGuiana
|
|
35
|
+
class HolidaysGF(FrenchGuiana):
|
|
36
36
|
pass
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class GF(
|
|
39
|
+
class GF(FrenchGuiana):
|
|
40
40
|
pass
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
class GUF(
|
|
43
|
+
class GUF(FrenchGuiana):
|
|
44
44
|
pass
|
|
@@ -14,7 +14,7 @@ from holidays.countries.france import France
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class FrenchPolynesia(ChildEntity, France):
|
|
18
18
|
"""French Polynesia holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a French subdivision that is also officially assigned
|
|
@@ -31,13 +31,13 @@ class HolidaysPF(ChildEntity, France):
|
|
|
31
31
|
start_year = 1881
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
class FrenchPolynesia
|
|
34
|
+
class HolidaysPF(FrenchPolynesia):
|
|
35
35
|
pass
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
class PF(
|
|
38
|
+
class PF(FrenchPolynesia):
|
|
39
39
|
pass
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
class PYF(
|
|
42
|
+
class PYF(FrenchPolynesia):
|
|
43
43
|
pass
|
|
@@ -14,7 +14,7 @@ from holidays.countries.france import France
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class FrenchSouthernTerritories(ChildEntity, France):
|
|
18
18
|
"""French Southern Territories holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a French subdivision that is also officially assigned
|
|
@@ -36,13 +36,13 @@ class HolidaysTF(ChildEntity, France):
|
|
|
36
36
|
start_year = 1956
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class FrenchSouthernTerritories
|
|
39
|
+
class HolidaysTF(FrenchSouthernTerritories):
|
|
40
40
|
pass
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
class TF(
|
|
43
|
+
class TF(FrenchSouthernTerritories):
|
|
44
44
|
pass
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
class ATF(
|
|
47
|
+
class ATF(FrenchSouthernTerritories):
|
|
48
48
|
pass
|
holidays/countries/guadeloupe.py
CHANGED
|
@@ -14,7 +14,7 @@ from holidays.countries.france import France
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class Guadeloupe(ChildEntity, France):
|
|
18
18
|
"""Guadeloupe holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a French subdivision that is also officially assigned
|
|
@@ -32,13 +32,13 @@ class HolidaysGP(ChildEntity, France):
|
|
|
32
32
|
start_year = 1815
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
class Guadeloupe
|
|
35
|
+
class HolidaysGP(Guadeloupe):
|
|
36
36
|
pass
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class GP(
|
|
39
|
+
class GP(Guadeloupe):
|
|
40
40
|
pass
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
class GLP(
|
|
43
|
+
class GLP(Guadeloupe):
|
|
44
44
|
pass
|
holidays/countries/guam.py
CHANGED
|
@@ -14,7 +14,7 @@ from holidays.countries.united_states import UnitedStates
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class Guam(ChildEntity, UnitedStates):
|
|
18
18
|
"""Guam holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a US subdivision that is also officially assigned its own country code in ISO 3166-1.
|
|
@@ -27,13 +27,13 @@ class HolidaysGU(ChildEntity, UnitedStates):
|
|
|
27
27
|
start_year = 1900
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
class Guam
|
|
30
|
+
class HolidaysGU(Guam):
|
|
31
31
|
pass
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
class GU(
|
|
34
|
+
class GU(Guam):
|
|
35
35
|
pass
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
class GUM(
|
|
38
|
+
class GUM(Guam):
|
|
39
39
|
pass
|
holidays/countries/guernsey.py
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
15
14
|
|
|
16
15
|
from holidays.calendars.gregorian import JAN, APR, MAY, JUN, JUL, SEP, OCT, DEC
|
|
17
16
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
@@ -53,7 +52,7 @@ class Guernsey(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
|
|
|
53
52
|
kwargs.setdefault("observed_since", 1955)
|
|
54
53
|
ObservedHolidayBase.__init__(self, *args, **kwargs)
|
|
55
54
|
|
|
56
|
-
def _add_observed(self, dt: date, **kwargs) -> tuple[bool,
|
|
55
|
+
def _add_observed(self, dt: date, **kwargs) -> tuple[bool, date | None]:
|
|
57
56
|
# Prior to 2009, in-lieu are only given for Sundays.
|
|
58
57
|
# https://web.archive.org/web/20230930101652/https://guernseylegalresources.gg/CHttpHandler.ashx?documentid=55179
|
|
59
58
|
kwargs.setdefault(
|
holidays/countries/italy.py
CHANGED
|
@@ -357,7 +357,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoliday
|
|
|
357
357
|
self._add_christmas_day_two("Santo Stefano")
|
|
358
358
|
|
|
359
359
|
def _populate_subdiv_bl_public_holidays(self):
|
|
360
|
-
self.
|
|
360
|
+
self._add_saint_martins_day("San Martino")
|
|
361
361
|
|
|
362
362
|
def _populate_subdiv_bn_public_holidays(self):
|
|
363
363
|
self._add_holiday_aug_24("San Bartolomeo apostolo")
|
|
@@ -518,7 +518,7 @@ class Italy(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoliday
|
|
|
518
518
|
self._add_holiday_jul_4("Sant'Antonino di Piacenza")
|
|
519
519
|
|
|
520
520
|
def _populate_subdiv_pd_public_holidays(self):
|
|
521
|
-
self.
|
|
521
|
+
self._add_saint_anthonys_day("Sant'Antonio di Padova")
|
|
522
522
|
|
|
523
523
|
def _populate_subdiv_pe_public_holidays(self):
|
|
524
524
|
self._add_holiday_oct_10("San Cetteo")
|
holidays/countries/jersey.py
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
15
14
|
|
|
16
15
|
from holidays.calendars.gregorian import JAN, APR, MAY, JUN, JUL, SEP, OCT, DEC
|
|
17
16
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
@@ -60,7 +59,7 @@ class Jersey(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
60
59
|
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
|
|
61
60
|
ObservedHolidayBase.__init__(self, *args, **kwargs)
|
|
62
61
|
|
|
63
|
-
def _add_observed(self, dt: date, **kwargs) -> tuple[bool,
|
|
62
|
+
def _add_observed(self, dt: date, **kwargs) -> tuple[bool, date | None]:
|
|
64
63
|
# Prior to 2004, in-lieu are only given for Sundays.
|
|
65
64
|
# https://web.archive.org/web/20250414072718/https://www.jerseylaw.je/laws/enacted/Pages/RO-123-2004.aspx
|
|
66
65
|
kwargs.setdefault(
|
holidays/countries/malta.py
CHANGED
|
@@ -112,7 +112,7 @@ class Malta(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
112
112
|
|
|
113
113
|
if self._year >= 1987:
|
|
114
114
|
# Feast of Our Lady of Victories.
|
|
115
|
-
self.
|
|
115
|
+
self._add_nativity_of_mary_day(tr("Jum il-Vitorja"))
|
|
116
116
|
|
|
117
117
|
# Jum l-Indipendenza
|
|
118
118
|
# Status: In-Use.
|
|
@@ -17,7 +17,9 @@ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHoli
|
|
|
17
17
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
class
|
|
20
|
+
class MarshallIslands(
|
|
21
|
+
ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
22
|
+
):
|
|
21
23
|
"""Marshall Islands holidays.
|
|
22
24
|
|
|
23
25
|
References:
|
|
@@ -31,7 +33,7 @@ class HolidaysMH(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
31
33
|
def __init__(self, *args, **kwargs):
|
|
32
34
|
ChristianHolidays.__init__(self)
|
|
33
35
|
InternationalHolidays.__init__(self)
|
|
34
|
-
StaticHolidays.__init__(self,
|
|
36
|
+
StaticHolidays.__init__(self, MarshallIslandsStaticHolidays)
|
|
35
37
|
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
36
38
|
super().__init__(*args, **kwargs)
|
|
37
39
|
|
|
@@ -77,19 +79,19 @@ class HolidaysMH(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
77
79
|
self._add_observed(self._add_christmas_day(name))
|
|
78
80
|
|
|
79
81
|
|
|
80
|
-
class
|
|
82
|
+
class HolidaysMH(MarshallIslands):
|
|
81
83
|
pass
|
|
82
84
|
|
|
83
85
|
|
|
84
|
-
class
|
|
86
|
+
class MH(MarshallIslands):
|
|
85
87
|
pass
|
|
86
88
|
|
|
87
89
|
|
|
88
|
-
class MarshallIslands
|
|
90
|
+
class MHL(MarshallIslands):
|
|
89
91
|
pass
|
|
90
92
|
|
|
91
93
|
|
|
92
|
-
class
|
|
94
|
+
class MarshallIslandsStaticHolidays:
|
|
93
95
|
# General Election Day
|
|
94
96
|
election_day = "General Election Day"
|
|
95
97
|
|
holidays/countries/martinique.py
CHANGED
|
@@ -14,7 +14,7 @@ from holidays.countries.france import France
|
|
|
14
14
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class Martinique(ChildEntity, France):
|
|
18
18
|
"""Martinique holidays.
|
|
19
19
|
|
|
20
20
|
Alias of a French subdivision that is also officially assigned
|
|
@@ -32,13 +32,13 @@ class HolidaysMQ(ChildEntity, France):
|
|
|
32
32
|
start_year = 1815
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
class Martinique
|
|
35
|
+
class HolidaysMQ(Martinique):
|
|
36
36
|
pass
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class MQ(
|
|
39
|
+
class MQ(Martinique):
|
|
40
40
|
pass
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
class MTQ(
|
|
43
|
+
class MTQ(Martinique):
|
|
44
44
|
pass
|