holidays 0.78__py3-none-any.whl → 0.80__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/hindu.py +1 -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 -1
- holidays/countries/__init__.py +20 -0
- holidays/countries/afghanistan.py +6 -39
- holidays/countries/albania.py +3 -22
- holidays/countries/argentina.py +7 -18
- holidays/countries/australia.py +191 -295
- holidays/countries/azerbaijan.py +6 -39
- holidays/countries/bahrain.py +29 -38
- holidays/countries/bhutan.py +194 -0
- holidays/countries/bosnia_and_herzegovina.py +7 -28
- holidays/countries/brunei.py +7 -117
- holidays/countries/burkina_faso.py +9 -15
- holidays/countries/burundi.py +95 -40
- holidays/countries/cameroon.py +8 -34
- holidays/countries/canada.py +9 -1
- holidays/countries/central_african_republic.py +3 -16
- holidays/countries/chad.py +9 -17
- holidays/countries/chile.py +20 -4
- holidays/countries/christmas_island.py +10 -15
- holidays/countries/cocos_islands.py +5 -24
- holidays/countries/comoros.py +121 -0
- holidays/countries/egypt.py +5 -37
- holidays/countries/eritrea.py +104 -0
- holidays/countries/ethiopia.py +18 -47
- holidays/countries/fiji.py +1 -2
- holidays/countries/gabon.py +5 -23
- holidays/countries/gambia.py +168 -0
- holidays/countries/georgia.py +9 -7
- holidays/countries/guinea.py +5 -27
- holidays/countries/guinea_bissau.py +96 -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/kyrgyzstan.py +2 -0
- holidays/countries/lebanon.py +5 -87
- holidays/countries/liberia.py +80 -0
- holidays/countries/libya.py +5 -37
- holidays/countries/macau.py +65 -63
- holidays/countries/malaysia.py +9 -130
- holidays/countries/maldives.py +2 -0
- holidays/countries/mali.py +4 -9
- holidays/countries/mauritania.py +2 -0
- 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/nigeria.py +198 -27
- 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/rwanda.py +162 -0
- holidays/countries/saudi_arabia.py +3 -0
- holidays/countries/senegal.py +6 -16
- holidays/countries/sierra_leone.py +5 -21
- holidays/countries/singapore.py +7 -59
- holidays/countries/somalia.py +79 -0
- holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
- holidays/countries/south_sudan.py +133 -0
- holidays/countries/spain.py +7 -10
- holidays/countries/sri_lanka.py +3 -14
- holidays/countries/suriname.py +11 -19
- holidays/countries/syrian_arab_republic.py +134 -0
- holidays/countries/tajikistan.py +116 -0
- holidays/countries/tanzania.py +291 -153
- 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 +164 -0
- holidays/countries/uganda.py +101 -0
- holidays/countries/united_arab_emirates.py +5 -29
- holidays/countries/uzbekistan.py +3 -31
- holidays/countries/yemen.py +8 -52
- holidays/financial/__init__.py +5 -0
- holidays/financial/national_stock_exchange_of_india.py +169 -0
- holidays/groups/__init__.py +2 -0
- holidays/groups/christian.py +48 -12
- holidays/groups/eastern.py +1 -1
- 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/bs/LC_MESSAGES/BA.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_IN/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GE.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/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/registry.py +46 -14
- holidays/version.py +1 -1
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/METADATA +127 -9
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/RECORD +161 -113
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/WHEEL +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from holidays.calendars import _CustomIslamicHolidays
|
|
14
|
-
from holidays.calendars.gregorian import JAN,
|
|
14
|
+
from holidays.calendars.gregorian import JAN, JUN, JUL, SEP, OCT, NOV, DEC
|
|
15
15
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
16
16
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
17
17
|
|
|
@@ -24,6 +24,11 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
26
|
country = "BF"
|
|
27
|
+
# %s (estimated).
|
|
28
|
+
estimated_label = "%s (estimated)"
|
|
29
|
+
# %s (observed, estimated).
|
|
30
|
+
observed_estimated_label = "%s (observed, estimated)"
|
|
31
|
+
# %s (observed).
|
|
27
32
|
observed_label = "%s (observed)"
|
|
28
33
|
# On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
|
|
29
34
|
# gained independence from France.
|
|
@@ -104,33 +109,23 @@ class BFA(BurkinaFaso):
|
|
|
104
109
|
|
|
105
110
|
|
|
106
111
|
class BurkinaFasoIslamicHolidays(_CustomIslamicHolidays):
|
|
112
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2023)
|
|
107
113
|
EID_AL_ADHA_DATES = {
|
|
108
114
|
2014: (OCT, 5),
|
|
109
115
|
2015: (SEP, 24),
|
|
110
116
|
2016: (SEP, 13),
|
|
111
117
|
2017: (SEP, 2),
|
|
112
|
-
2018: (AUG, 21),
|
|
113
|
-
2019: (AUG, 11),
|
|
114
|
-
2020: (JUL, 31),
|
|
115
|
-
2021: (JUL, 20),
|
|
116
|
-
2022: (JUL, 9),
|
|
117
|
-
2023: (JUN, 28),
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2024)
|
|
120
121
|
EID_AL_FITR_DATES = {
|
|
121
122
|
2014: (JUL, 29),
|
|
122
123
|
2015: (JUL, 18),
|
|
123
124
|
2016: (JUL, 7),
|
|
124
125
|
2017: (JUN, 26),
|
|
125
|
-
2018: (JUN, 15),
|
|
126
|
-
2019: (JUN, 4),
|
|
127
|
-
2020: (MAY, 24),
|
|
128
|
-
2021: (MAY, 13),
|
|
129
|
-
2022: (MAY, 2),
|
|
130
|
-
2023: (APR, 21),
|
|
131
|
-
2024: (APR, 10),
|
|
132
126
|
}
|
|
133
127
|
|
|
128
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2014, 2022)
|
|
134
129
|
MAWLID_DATES = {
|
|
135
130
|
2014: (JAN, 14),
|
|
136
131
|
2015: ((JAN, 3), (DEC, 24)),
|
|
@@ -138,7 +133,6 @@ class BurkinaFasoIslamicHolidays(_CustomIslamicHolidays):
|
|
|
138
133
|
2017: (DEC, 1),
|
|
139
134
|
2018: (NOV, 21),
|
|
140
135
|
2019: (NOV, 10),
|
|
141
|
-
2020: (OCT, 29),
|
|
142
136
|
2021: (OCT, 19),
|
|
143
137
|
2022: (OCT, 9),
|
|
144
138
|
}
|
holidays/countries/burundi.py
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import JUN, JUL, SEP, OCT
|
|
13
17
|
from holidays.groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
14
18
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
15
19
|
|
|
@@ -18,16 +22,25 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
|
|
|
18
22
|
"""Burundi holidays.
|
|
19
23
|
|
|
20
24
|
References:
|
|
21
|
-
*
|
|
25
|
+
* [Décret n° 100/150 du 7 Juin 2021](https://web.archive.org/web/20240514031141/https://www.presidence.gov.bi/wp-content/uploads/2021/06/Liste-et-regime-des-jours-feries.pdf)
|
|
26
|
+
* [Republic of Burundi's Ministry of Foreign Affairs Public Holidays List](https://web.archive.org/web/20250820080112/https://www.mae.gov.bi/en/official-holidays/)
|
|
27
|
+
* <https://web.archive.org/web/20250820095115/https://www.timeanddate.com/holidays/burundi/2025>
|
|
22
28
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
When it appears inappropriate for a public holiday listed in Article 1 to be observed because
|
|
30
|
+
it coincides with a Sunday, it shall be postponed to the following working day, which shall
|
|
31
|
+
accordingly be considered a public holiday and observed as such.
|
|
26
32
|
"""
|
|
27
33
|
|
|
28
34
|
country = "BI"
|
|
29
|
-
|
|
35
|
+
# %s (estimated).
|
|
36
|
+
estimated_label = tr("%s (estimé)")
|
|
37
|
+
default_language = "fr_BI"
|
|
38
|
+
# %s (observed, estimated).
|
|
39
|
+
observed_estimated_label = tr("%s (observé, estimé)")
|
|
40
|
+
# %s (observed).
|
|
41
|
+
observed_label = tr("%s (observé)")
|
|
30
42
|
start_year = 1962
|
|
43
|
+
supported_languages = ("en_US", "fr_BI")
|
|
31
44
|
|
|
32
45
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
33
46
|
"""
|
|
@@ -38,58 +51,82 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
|
|
|
38
51
|
"""
|
|
39
52
|
ChristianHolidays.__init__(self)
|
|
40
53
|
InternationalHolidays.__init__(self)
|
|
41
|
-
IslamicHolidays.__init__(
|
|
54
|
+
IslamicHolidays.__init__(
|
|
55
|
+
self, cls=BurundiIslamicHolidays, show_estimated=islamic_show_estimated
|
|
56
|
+
)
|
|
42
57
|
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
43
58
|
super().__init__(*args, **kwargs)
|
|
44
59
|
|
|
45
60
|
def _populate_public_holidays(self):
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
dts_observed = set()
|
|
62
|
+
|
|
63
|
+
# New Year's Day.
|
|
64
|
+
dts_observed.add(self._add_new_years_day(tr("Jour de l'an")))
|
|
48
65
|
|
|
49
|
-
# Unity Day
|
|
50
66
|
if self._year >= 1992:
|
|
51
|
-
|
|
67
|
+
# Unity Day.
|
|
68
|
+
dts_observed.add(self._add_holiday_feb_5(tr("Fête de l'Unité")))
|
|
52
69
|
|
|
53
|
-
# President Ntaryamira Day
|
|
54
70
|
if self._year >= 1995:
|
|
55
|
-
|
|
71
|
+
dts_observed.add(
|
|
72
|
+
self._add_holiday_apr_6(
|
|
73
|
+
# Commemoration of the Assassination of President Cyprien Ntaryamira.
|
|
74
|
+
tr("Commémoration de l'Assassinat du Président Cyprien Ntaryamira")
|
|
75
|
+
)
|
|
76
|
+
)
|
|
56
77
|
|
|
57
|
-
#
|
|
58
|
-
|
|
78
|
+
# International Labor Day.
|
|
79
|
+
dts_observed.add(self._add_labor_day(tr("Fête Internationale du Travail")))
|
|
59
80
|
|
|
60
|
-
# Ascension Day
|
|
61
|
-
self._add_ascension_thursday("Ascension
|
|
81
|
+
# Ascension Day.
|
|
82
|
+
self._add_ascension_thursday(tr("Jour de l'Ascension"))
|
|
62
83
|
|
|
63
|
-
# President Nkurunziza Day
|
|
64
84
|
if self._year >= 2022:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
#
|
|
85
|
+
dts_observed.add(
|
|
86
|
+
self._add_holiday_jun_8(
|
|
87
|
+
# National Day of Patriotism and Commemoration of the Death of
|
|
88
|
+
# President Pierre Nkurunziza.
|
|
89
|
+
tr(
|
|
90
|
+
"Journée Nationale du Patriotisme et Commémoration de la Mort "
|
|
91
|
+
"du Président Pierre Nkurunziza"
|
|
92
|
+
)
|
|
93
|
+
)
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Independence Day.
|
|
97
|
+
dts_observed.add(self._add_holiday_jul_1(tr("Anniversaire de l'Indépendance")))
|
|
98
|
+
|
|
99
|
+
# Assumption Day.
|
|
100
|
+
dts_observed.add(self._add_assumption_of_mary_day(tr("Assomption")))
|
|
101
|
+
|
|
102
|
+
dts_observed.add(
|
|
103
|
+
self._add_holiday_oct_13(
|
|
104
|
+
# Commemoration of the Assassination of National Hero, Prince Louis Rwagasore.
|
|
105
|
+
tr("Commémoration de l'Assassinat du Héros National, le Prince Louis Rwagasore")
|
|
106
|
+
)
|
|
107
|
+
)
|
|
77
108
|
if self._year >= 1994:
|
|
78
|
-
|
|
109
|
+
dts_observed.add(
|
|
110
|
+
self._add_holiday_oct_21(
|
|
111
|
+
# Commemoration of the Assassination of President Melchior Ndadaye.
|
|
112
|
+
tr("Commémoration de l'Assassinat du Président Melchior Ndadaye")
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
# All Saints' Day.
|
|
117
|
+
dts_observed.add(self._add_all_saints_day(tr("Toussaint")))
|
|
79
118
|
|
|
80
|
-
#
|
|
81
|
-
|
|
119
|
+
# Christmas Day.
|
|
120
|
+
dts_observed.add(self._add_christmas_day(tr("Noël")))
|
|
82
121
|
|
|
83
|
-
#
|
|
84
|
-
|
|
122
|
+
# Eid al-Fitr.
|
|
123
|
+
dts_observed.update(self._add_eid_al_fitr_day(tr("Aid-El-Fithr")))
|
|
85
124
|
|
|
86
|
-
# Eid
|
|
87
|
-
|
|
88
|
-
self._add_observed(dt)
|
|
125
|
+
# Eid al-Adha.
|
|
126
|
+
dts_observed.update(self._add_eid_al_adha_day(tr("Aid-El-Adha")))
|
|
89
127
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
self._add_observed(dt)
|
|
128
|
+
if self.observed:
|
|
129
|
+
self._populate_observed(dts_observed)
|
|
93
130
|
|
|
94
131
|
|
|
95
132
|
class BI(Burundi):
|
|
@@ -98,3 +135,21 @@ class BI(Burundi):
|
|
|
98
135
|
|
|
99
136
|
class BDI(Burundi):
|
|
100
137
|
pass
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class BurundiIslamicHolidays(_CustomIslamicHolidays):
|
|
141
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2025)
|
|
142
|
+
EID_AL_ADHA_DATES = {
|
|
143
|
+
2014: (OCT, 5),
|
|
144
|
+
2015: (SEP, 24),
|
|
145
|
+
2016: (SEP, 13),
|
|
146
|
+
2017: (SEP, 2),
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2025)
|
|
150
|
+
EID_AL_FITR_DATES = {
|
|
151
|
+
2014: (JUL, 29),
|
|
152
|
+
2015: (JUL, 18),
|
|
153
|
+
2016: (JUL, 7),
|
|
154
|
+
2017: (JUN, 26),
|
|
155
|
+
}
|
holidays/countries/cameroon.py
CHANGED
|
@@ -33,6 +33,11 @@ class Cameroon(
|
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
35
|
country = "CM"
|
|
36
|
+
# %s (estimated).
|
|
37
|
+
estimated_label = "%s (estimated)"
|
|
38
|
+
# %s (observed, estimated).
|
|
39
|
+
observed_estimated_label = "%s (observed, estimated)"
|
|
40
|
+
# %s (observed).
|
|
36
41
|
observed_label = "%s (observed)"
|
|
37
42
|
# On 1 January 1960, French Cameroun gained independence from France.
|
|
38
43
|
start_year = 1960
|
|
@@ -104,82 +109,51 @@ class CMR(Cameroon):
|
|
|
104
109
|
|
|
105
110
|
|
|
106
111
|
class CameroonIslamicHolidays(_CustomIslamicHolidays):
|
|
112
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2001, 2023)
|
|
107
113
|
EID_AL_ADHA_DATES = {
|
|
108
114
|
2001: (MAR, 6),
|
|
109
115
|
2002: (FEB, 23),
|
|
110
116
|
2003: (FEB, 12),
|
|
111
117
|
2004: (FEB, 2),
|
|
112
|
-
2005: (JAN, 21),
|
|
113
|
-
2006: ((JAN, 10), (DEC, 31)),
|
|
114
|
-
2007: (DEC, 20),
|
|
115
118
|
2008: (DEC, 9),
|
|
116
119
|
2009: (NOV, 28),
|
|
117
120
|
2010: (NOV, 17),
|
|
118
121
|
2011: (NOV, 7),
|
|
119
|
-
2012: (OCT, 26),
|
|
120
|
-
2013: (OCT, 15),
|
|
121
122
|
2014: (OCT, 5),
|
|
122
123
|
2015: (SEP, 24),
|
|
123
124
|
2016: (SEP, 13),
|
|
124
125
|
2017: (SEP, 2),
|
|
125
|
-
2018: (AUG, 21),
|
|
126
|
-
2019: (AUG, 11),
|
|
127
|
-
2020: (JUL, 31),
|
|
128
|
-
2021: (JUL, 20),
|
|
129
|
-
2022: (JUL, 9),
|
|
130
|
-
2023: (JUN, 28),
|
|
131
126
|
}
|
|
132
127
|
|
|
128
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2001, 2024)
|
|
133
129
|
EID_AL_FITR_DATES = {
|
|
134
130
|
2001: (DEC, 17),
|
|
135
131
|
2002: (DEC, 6),
|
|
136
132
|
2003: (NOV, 26),
|
|
137
|
-
2004: (NOV, 14),
|
|
138
133
|
2005: (NOV, 4),
|
|
139
134
|
2006: (OCT, 24),
|
|
140
|
-
2007: (OCT, 13),
|
|
141
135
|
2008: (OCT, 2),
|
|
142
136
|
2009: (SEP, 21),
|
|
143
|
-
2010: (SEP, 10),
|
|
144
137
|
2011: (AUG, 31),
|
|
145
|
-
2012: (AUG, 19),
|
|
146
|
-
2013: (AUG, 8),
|
|
147
|
-
2014: (JUL, 28),
|
|
148
138
|
2015: (JUL, 18),
|
|
149
139
|
2016: (JUL, 7),
|
|
150
140
|
2017: (JUN, 26),
|
|
151
|
-
2018: (JUN, 15),
|
|
152
|
-
2019: (JUN, 4),
|
|
153
|
-
2020: (MAY, 24),
|
|
154
|
-
2021: (MAY, 13),
|
|
155
|
-
2022: (MAY, 2),
|
|
156
|
-
2023: (APR, 21),
|
|
157
|
-
2024: (APR, 10),
|
|
158
141
|
}
|
|
159
142
|
|
|
143
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2001, 2022)
|
|
160
144
|
MAWLID_DATES = {
|
|
161
|
-
2001: (JUN, 4),
|
|
162
|
-
2002: (MAY, 24),
|
|
163
145
|
2003: (MAY, 14),
|
|
164
146
|
2004: (MAY, 2),
|
|
165
|
-
2005: (APR, 21),
|
|
166
147
|
2006: (APR, 11),
|
|
167
|
-
2007: (MAR, 31),
|
|
168
|
-
2008: (MAR, 20),
|
|
169
|
-
2009: (MAR, 9),
|
|
170
|
-
2010: (FEB, 26),
|
|
171
148
|
2011: (FEB, 16),
|
|
172
149
|
2012: (FEB, 5),
|
|
173
|
-
2013: (JAN, 24),
|
|
174
150
|
2014: (JAN, 14),
|
|
175
151
|
2015: ((JAN, 3), (DEC, 24)),
|
|
176
152
|
2016: (DEC, 12),
|
|
177
153
|
2017: (DEC, 1),
|
|
178
154
|
2018: (NOV, 21),
|
|
179
155
|
2019: (NOV, 10),
|
|
180
|
-
2020: (OCT, 29),
|
|
181
156
|
2021: (OCT, 19),
|
|
182
|
-
2022: (OCT, 8),
|
|
183
157
|
}
|
|
184
158
|
|
|
185
159
|
|
holidays/countries/canada.py
CHANGED
|
@@ -45,6 +45,8 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
45
45
|
* <https://web.archive.org/web/20250428153936/https://www.thecanadianencyclopedia.ca/en/article/thanksgiving-day>
|
|
46
46
|
* <https://web.archive.org/web/20250428154427/https://recherche-collection-search.bac-lac.gc.ca/eng/home/record?idnumber=9326&app=diawlmking&ecopy=80003QJW>
|
|
47
47
|
* <https://web.archive.org/web/20240915001506/https://www.britannica.com/topic/Victoria-Day>
|
|
48
|
+
* [NT National Aboriginal Day](https://web.archive.org/web/20160623071755/http://www.daair.gov.nt.ca/_live/pages/wpPages/National_Aboriginal_Day.aspx)
|
|
49
|
+
* [MB National Day for Truth and Reconciliation](https://web.archive.org/web/20240714223654/https://web2.gov.mb.ca/bills/43-1/b004e.php)
|
|
48
50
|
"""
|
|
49
51
|
|
|
50
52
|
country = "CA"
|
|
@@ -276,6 +278,12 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
276
278
|
|
|
277
279
|
self._add_victoria_day()
|
|
278
280
|
|
|
281
|
+
if self._year >= 2024:
|
|
282
|
+
self._add_observed(
|
|
283
|
+
# National Day for Truth and Reconciliation.
|
|
284
|
+
self._add_holiday_sep_30(tr("National Day for Truth and Reconciliation"))
|
|
285
|
+
)
|
|
286
|
+
|
|
279
287
|
self._add_thanksgiving_day()
|
|
280
288
|
|
|
281
289
|
def _populate_subdiv_mb_optional_holidays(self):
|
|
@@ -370,7 +378,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
370
378
|
def _populate_subdiv_nt_public_holidays(self):
|
|
371
379
|
self._add_victoria_day()
|
|
372
380
|
|
|
373
|
-
if self._year >=
|
|
381
|
+
if self._year >= 2001:
|
|
374
382
|
# National Aboriginal Day.
|
|
375
383
|
self._add_holiday_jun_21(tr("National Aboriginal Day"))
|
|
376
384
|
|
|
@@ -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 JUN, JUL, SEP
|
|
17
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
19
19
|
|
|
@@ -114,30 +114,17 @@ class CAF(CentralAfricanRepublic):
|
|
|
114
114
|
|
|
115
115
|
|
|
116
116
|
class CentralAfricanRepublicIslamicHolidays(_CustomIslamicHolidays):
|
|
117
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
117
118
|
EID_AL_ADHA_DATES = {
|
|
118
119
|
2015: (SEP, 24),
|
|
119
120
|
2016: (SEP, 13),
|
|
120
121
|
2017: (SEP, 2),
|
|
121
|
-
2018: (AUG, 21),
|
|
122
|
-
2019: (AUG, 11),
|
|
123
|
-
2020: (JUL, 31),
|
|
124
|
-
2021: (JUL, 20),
|
|
125
|
-
2022: (JUL, 9),
|
|
126
|
-
2023: (JUN, 28),
|
|
127
|
-
2024: (JUN, 16),
|
|
128
122
|
2025: (JUN, 7),
|
|
129
123
|
}
|
|
130
124
|
|
|
125
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2015, 2025)
|
|
131
126
|
EID_AL_FITR_DATES = {
|
|
132
127
|
2015: (JUL, 18),
|
|
133
128
|
2016: (JUL, 7),
|
|
134
129
|
2017: (JUN, 26),
|
|
135
|
-
2018: (JUN, 15),
|
|
136
|
-
2019: (JUN, 4),
|
|
137
|
-
2020: (MAY, 24),
|
|
138
|
-
2021: (MAY, 13),
|
|
139
|
-
2022: (MAY, 2),
|
|
140
|
-
2023: (APR, 21),
|
|
141
|
-
2024: (APR, 10),
|
|
142
|
-
2025: (MAR, 30),
|
|
143
130
|
}
|
holidays/countries/chad.py
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from holidays.calendars import _CustomIslamicHolidays
|
|
14
|
-
from holidays.calendars.gregorian import JAN, APR,
|
|
14
|
+
from holidays.calendars.gregorian import JAN, APR, JUN, JUL, AUG, SEP, NOV, DEC
|
|
15
15
|
from holidays.groups import (
|
|
16
16
|
ChristianHolidays,
|
|
17
17
|
InternationalHolidays,
|
|
@@ -32,6 +32,11 @@ class Chad(
|
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
34
|
country = "TD"
|
|
35
|
+
# %s (estimated).
|
|
36
|
+
estimated_label = "%s (estimated)"
|
|
37
|
+
# %s (observed, estimated).
|
|
38
|
+
observed_estimated_label = "%s (observed, estimated)"
|
|
39
|
+
# %s (observed).
|
|
35
40
|
observed_label = "%s (observed)"
|
|
36
41
|
# On 11 August 1960, Chad gained independence from France.
|
|
37
42
|
start_year = 1961
|
|
@@ -100,40 +105,27 @@ class TCD(Chad):
|
|
|
100
105
|
|
|
101
106
|
|
|
102
107
|
class ChadIslamicHolidays(_CustomIslamicHolidays):
|
|
108
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2015, 2023)
|
|
103
109
|
EID_AL_ADHA_DATES = {
|
|
104
110
|
2015: (SEP, 24),
|
|
105
111
|
2016: (SEP, 13),
|
|
106
112
|
2017: (SEP, 2),
|
|
107
113
|
2018: (AUG, 22),
|
|
108
|
-
2019: (AUG, 11),
|
|
109
|
-
2020: (JUL, 31),
|
|
110
|
-
2021: (JUL, 20),
|
|
111
|
-
2022: (JUL, 9),
|
|
112
|
-
2023: (JUN, 28),
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2015, 2024)
|
|
115
117
|
EID_AL_FITR_DATES = {
|
|
116
118
|
2015: (JUL, 18),
|
|
117
119
|
2016: (JUL, 7),
|
|
118
120
|
2017: (JUN, 26),
|
|
119
|
-
2018: (JUN, 15),
|
|
120
|
-
2019: (JUN, 4),
|
|
121
|
-
2020: (MAY, 24),
|
|
122
|
-
2021: (MAY, 13),
|
|
123
|
-
2022: (MAY, 2),
|
|
124
|
-
2023: (APR, 21),
|
|
125
|
-
2024: (APR, 10),
|
|
126
121
|
}
|
|
127
122
|
|
|
123
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2015, 2022)
|
|
128
124
|
MAWLID_DATES = {
|
|
129
125
|
2015: ((JAN, 3), (DEC, 24)),
|
|
130
126
|
2016: (DEC, 12),
|
|
131
127
|
2017: (DEC, 1),
|
|
132
128
|
2018: (NOV, 21),
|
|
133
|
-
2019: (NOV, 9),
|
|
134
|
-
2020: (OCT, 29),
|
|
135
|
-
2021: (OCT, 18),
|
|
136
|
-
2022: (OCT, 8),
|
|
137
129
|
}
|
|
138
130
|
|
|
139
131
|
|
holidays/countries/chile.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.calendars.gregorian import JUN, SEP, DEC
|
|
15
|
+
from holidays.calendars.gregorian import APR, JUN, SEP, DEC
|
|
16
16
|
from holidays.constants import BANK, PUBLIC
|
|
17
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
18
18
|
from holidays.observed_holiday_base import (
|
|
@@ -30,8 +30,8 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
|
|
|
30
30
|
"""Chile holidays.
|
|
31
31
|
|
|
32
32
|
References:
|
|
33
|
-
* <https://web.archive.org/web/
|
|
34
|
-
* [Excellent history of Chile holidays](https://web.archive.org/web/
|
|
33
|
+
* <https://web.archive.org/web/20250718012109/https://www.feriados.cl/>
|
|
34
|
+
* [Excellent history of Chile holidays](https://web.archive.org/web/20250712031422/https://www.feriadoschilenos.cl/)
|
|
35
35
|
* <https://es.wikipedia.org/wiki/Anexo:Días_feriados_en_Chile>
|
|
36
36
|
* Law 2.977 (established official Chile holidays in its current form)
|
|
37
37
|
* Law 20.983 (Day after New Year's Day, if it's a Sunday)
|
|
@@ -51,11 +51,17 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
|
|
|
51
51
|
* Law 20.299 (National Day of the Evangelical and Protestant Churches)
|
|
52
52
|
* Law 20.663 (Región de Arica y Parinacota)
|
|
53
53
|
* Law 20.678 (Región de Ñuble)
|
|
54
|
+
* [Law 17.374 (holiday on census days)](https://web.archive.org/web/20250812022623/https://www.bcn.cl/leychile/navegar?idNorma=28960&idVersion=2002-02-01)
|
|
54
55
|
* [Law 19.656 (Dec 31, 1999 holiday)](https://web.archive.org/web/20241228005823/https://www.bcn.cl/leychile/navegar?idNorma=149328&idVersion=1999-12-15)
|
|
55
56
|
* [Law 12.051 (bank holidays Jun 30 and Dec 31)](https://web.archive.org/web/20241227190026/https://www.bcn.cl/leychile/navegar?idNorma=27013&idVersion=1956-07-12)
|
|
56
57
|
* [Decree-law 1.171 (eliminate Jun 30)](https://web.archive.org/web/20241227191010/https://www.bcn.cl/leychile/navegar?idNorma=6507&idVersion=1975-09-05)
|
|
57
58
|
* [Law 19.528 (eliminate Dec 31)](https://web.archive.org/web/20241227191452/https://www.bcn.cl/leychile/navegar?idNorma=76630&idVersion=1997-11-04)
|
|
58
59
|
* [Law 19.559 (restore Dec 31)](https://web.archive.org/web/20241227195811/https://www.bcn.cl/leychile/navegar?idNorma=97758&idVersion=1998-04-16)
|
|
60
|
+
* [Law 19.973 (Sep 17, 2004 holiday)](https://web.archive.org/web/20250812023003/https://www.bcn.cl/leychile/navegar?idLey=19973)
|
|
61
|
+
* [Law 20.450 (Sep 17, 2010 and Sep 20, 2010 holidays)](https://web.archive.org/web/20250812023308/https://www.bcn.cl/leychile/navegar?idLey=20450)
|
|
62
|
+
* [Law 21.521 (eliminate Dec 31 again, after the CMF publishes a specific regulation)](https://web.archive.org/web/20240214154900/https://www.bcn.cl/leychile/navegar?idNorma=1187323&idVersion=2023-02-03)
|
|
63
|
+
* [Norma de Carácter General N° 543 de la CMF](https://web.archive.org/web/20250811111649/https://www.cmfchile.cl/normativa/ncg_543_2025.pdf)
|
|
64
|
+
* [Resolución Exenta N° 7.671 (CMF, 2025-08-01)](https://web.archive.org/web/20250811123908/https://www.cmfchile.cl/sitio/aplic/serdoc/ver_sgd.php?s567=ba5ad42feea3531a678a9db5253a9477VFdwQmVVNVVRVFJOUkZWNlRucEpORTVCUFQwPQ==&secuencia=-1&t=1754086087)
|
|
59
65
|
"""
|
|
60
66
|
|
|
61
67
|
country = "CL"
|
|
@@ -237,7 +243,7 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
|
|
|
237
243
|
if 1957 <= self._year <= 1975:
|
|
238
244
|
self._add_holiday_jun_30(name)
|
|
239
245
|
|
|
240
|
-
if self._year
|
|
246
|
+
if 1956 <= self._year <= 2024 and self._year != 1997:
|
|
241
247
|
self._add_holiday_dec_31(name)
|
|
242
248
|
|
|
243
249
|
@property
|
|
@@ -262,7 +268,17 @@ class ChileStaticHolidays:
|
|
|
262
268
|
# National Holiday.
|
|
263
269
|
national_holiday = tr("Feriado nacional")
|
|
264
270
|
|
|
271
|
+
# National Population and Housing Census.
|
|
272
|
+
national_census = tr("Censo Nacional de Población y Vivienda")
|
|
273
|
+
|
|
265
274
|
special_public_holidays = {
|
|
266
275
|
1999: (DEC, 31, national_holiday),
|
|
276
|
+
2002: (APR, 24, national_census),
|
|
277
|
+
2004: (SEP, 17, national_holiday),
|
|
278
|
+
2010: (
|
|
279
|
+
(SEP, 17, national_holiday),
|
|
280
|
+
(SEP, 20, national_holiday),
|
|
281
|
+
),
|
|
282
|
+
2017: (APR, 19, national_census),
|
|
267
283
|
2022: (SEP, 16, national_holiday),
|
|
268
284
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomChineseHolidays, _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import JAN, FEB, MAR, APR,
|
|
16
|
+
from holidays.calendars.gregorian import JAN, FEB, MAR, APR, JUN, JUL, AUG, SEP, OCT, NOV
|
|
17
17
|
from holidays.groups import (
|
|
18
18
|
ChineseCalendarHolidays,
|
|
19
19
|
ChristianHolidays,
|
|
@@ -72,6 +72,12 @@ class ChristmasIsland(
|
|
|
72
72
|
start_year = 2007
|
|
73
73
|
|
|
74
74
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
75
|
+
"""
|
|
76
|
+
Args:
|
|
77
|
+
islamic_show_estimated:
|
|
78
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
79
|
+
if holiday date is estimated.
|
|
80
|
+
"""
|
|
75
81
|
ChineseCalendarHolidays.__init__(self, cls=ChristmasIslandChineseHolidays)
|
|
76
82
|
ChristianHolidays.__init__(self)
|
|
77
83
|
InternationalHolidays.__init__(self)
|
|
@@ -133,6 +139,7 @@ class ChristmasIsland(
|
|
|
133
139
|
|
|
134
140
|
|
|
135
141
|
class ChristmasIslandChineseHolidays(_CustomChineseHolidays):
|
|
142
|
+
LUNAR_NEW_YEAR_DATES_CONFIRMED_YEARS = (2007, 2023)
|
|
136
143
|
LUNAR_NEW_YEAR_DATES = {
|
|
137
144
|
2007: (FEB, 19),
|
|
138
145
|
2009: (JAN, 27),
|
|
@@ -142,39 +149,27 @@ class ChristmasIslandChineseHolidays(_CustomChineseHolidays):
|
|
|
142
149
|
|
|
143
150
|
|
|
144
151
|
class ChristmasIslandIslamicHolidays(_CustomIslamicHolidays):
|
|
152
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = ((2007, 2010), (2019, 2025))
|
|
145
153
|
EID_AL_ADHA_DATES = {
|
|
146
|
-
2007: (DEC, 20),
|
|
147
|
-
2008: (DEC, 8),
|
|
148
154
|
2009: (NOV, 30),
|
|
149
|
-
2010: (NOV, 16),
|
|
150
155
|
2013: (OCT, 15),
|
|
151
156
|
2014: (OCT, 5),
|
|
152
157
|
2016: (SEP, 13),
|
|
153
158
|
2017: (SEP, 1),
|
|
154
|
-
2019: (AUG, 11),
|
|
155
|
-
2020: (JUL, 31),
|
|
156
|
-
2021: (JUL, 20),
|
|
157
|
-
2022: (JUL, 9),
|
|
158
|
-
2023: (JUN, 28),
|
|
159
159
|
2024: (JUN, 17),
|
|
160
160
|
2025: (JUN, 7),
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = ((2007, 2010), (2019, 2025))
|
|
163
164
|
EID_AL_FITR_DATES = {
|
|
164
165
|
2007: (OCT, 15),
|
|
165
|
-
2008: (OCT, 1),
|
|
166
166
|
2009: (SEP, 21),
|
|
167
|
-
2010: (SEP, 10),
|
|
168
167
|
2013: (AUG, 8),
|
|
169
168
|
2014: (JUL, 28),
|
|
170
169
|
2016: (JUL, 6),
|
|
171
170
|
2017: (JUN, 24),
|
|
172
171
|
2019: (JUN, 5),
|
|
173
|
-
2020: (MAY, 24),
|
|
174
|
-
2021: (MAY, 13),
|
|
175
|
-
2022: (MAY, 2),
|
|
176
172
|
2023: (APR, 22),
|
|
177
|
-
2024: (APR, 10),
|
|
178
173
|
2025: (MAR, 31),
|
|
179
174
|
}
|
|
180
175
|
|