holidays 0.70__py3-none-any.whl → 0.71__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/countries/__init__.py +4 -0
- holidays/countries/france.py +1 -1
- holidays/countries/french_southern_territories.py +53 -0
- holidays/countries/malaysia.py +5 -1
- holidays/countries/oman.py +185 -0
- holidays/countries/pakistan.py +7 -0
- holidays/countries/sierra_leone.py +149 -0
- holidays/countries/south_korea.py +14 -15
- holidays/countries/suriname.py +227 -0
- holidays/countries/taiwan.py +2 -1
- holidays/groups/islamic.py +10 -0
- holidays/holiday_base.py +31 -5
- holidays/locale/ar/LC_MESSAGES/OM.mo +0 -0
- holidays/locale/en_SL/LC_MESSAGES/SL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/OM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TF.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/TF.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/SR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/TF.mo +0 -0
- holidays/locale/ur_PK/LC_MESSAGES/PK.mo +0 -0
- holidays/observed_holiday_base.py +5 -1
- holidays/registry.py +4 -0
- holidays/utils.py +60 -8
- holidays/version.py +1 -1
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/METADATA +30 -2
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/RECORD +33 -20
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/WHEEL +1 -1
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/licenses/AUTHORS.md +3 -0
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.70.dist-info → holidays-0.71.dist-info}/top_level.txt +0 -0
holidays/countries/__init__.py
CHANGED
|
@@ -67,6 +67,7 @@ from .ethiopia import Ethiopia, ET, ETH
|
|
|
67
67
|
from .fiji import Fiji, FJ, FJI
|
|
68
68
|
from .finland import Finland, FI, FIN
|
|
69
69
|
from .france import France, FR, FRA
|
|
70
|
+
from .french_southern_territories import FrenchSouthernTerritories, TF, ATF, HolidaysTF
|
|
70
71
|
from .gabon import Gabon, GA, GAB
|
|
71
72
|
from .georgia import Georgia, GE, GEO
|
|
72
73
|
from .germany import Germany, DE, DEU
|
|
@@ -126,6 +127,7 @@ from .nigeria import Nigeria, NG, NGA
|
|
|
126
127
|
from .north_macedonia import NorthMacedonia, MK, MKD
|
|
127
128
|
from .northern_mariana_islands import NorthernMarianaIslands, MP, MNP, HolidaysMP
|
|
128
129
|
from .norway import Norway, NO, NOR
|
|
130
|
+
from .oman import Oman, OM, OMN
|
|
129
131
|
from .pakistan import Pakistan, PK, PAK
|
|
130
132
|
from .palau import Palau, PW, PLW
|
|
131
133
|
from .panama import Panama, PA, PAN
|
|
@@ -146,6 +148,7 @@ from .san_marino import SanMarino, SM, SMR
|
|
|
146
148
|
from .saudi_arabia import SaudiArabia, SA, SAU
|
|
147
149
|
from .serbia import Serbia, RS, SRB
|
|
148
150
|
from .seychelles import Seychelles, SC, SYC
|
|
151
|
+
from .sierra_leone import SierraLeone, SL, SLE
|
|
149
152
|
from .singapore import Singapore, SG, SGP
|
|
150
153
|
from .slovakia import Slovakia, SK, SVK
|
|
151
154
|
from .slovenia import Slovenia, SI, SVN
|
|
@@ -153,6 +156,7 @@ from .south_africa import SouthAfrica, ZA, ZAF
|
|
|
153
156
|
from .south_korea import SouthKorea, KR, KOR, Korea
|
|
154
157
|
from .spain import Spain, ES, ESP
|
|
155
158
|
from .sri_lanka import SriLanka, LK, LKA
|
|
159
|
+
from .suriname import Suriname, SR, SUR
|
|
156
160
|
from .sweden import Sweden, SE, SWE
|
|
157
161
|
from .switzerland import Switzerland, CH, CHE
|
|
158
162
|
from .taiwan import Taiwan, TW, TWN
|
holidays/countries/france.py
CHANGED
|
@@ -31,7 +31,7 @@ class France(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
31
31
|
country = "FR"
|
|
32
32
|
default_language = "fr"
|
|
33
33
|
supported_languages = ("en_US", "fr", "uk")
|
|
34
|
-
subdivisions = (
|
|
34
|
+
subdivisions: tuple[str, ...] = (
|
|
35
35
|
"BL", # Saint-Barthélemy.
|
|
36
36
|
"GES", # Alsace, Champagne-Ardenne, Lorraine(Moselle).
|
|
37
37
|
"GP", # Guadeloupe.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from holidays.countries.france import France
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class HolidaysTF(France):
|
|
17
|
+
"""French Southern Territories holidays.
|
|
18
|
+
|
|
19
|
+
Alias of a French subdivision that is also officially assigned
|
|
20
|
+
its own country code in ISO 31661.
|
|
21
|
+
|
|
22
|
+
!!! note "Note"
|
|
23
|
+
Since most islands doesn't have a permanent population,
|
|
24
|
+
the holidays are just the public ones from France.
|
|
25
|
+
|
|
26
|
+
References:
|
|
27
|
+
* <https://www.iso.org/obp/ui#iso:code:3166:TF>
|
|
28
|
+
* <https://en.wikipedia.org/wiki/French_Southern_and_Antarctic_Lands>
|
|
29
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_France>
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
country = "TF"
|
|
33
|
+
parent_entity = France
|
|
34
|
+
subdivisions = () # Override France subdivisions.
|
|
35
|
+
subdivisions_aliases = {} # Override France subdivisions aliases.
|
|
36
|
+
# This overseas territory was separated in 1955.
|
|
37
|
+
start_year = 1956
|
|
38
|
+
|
|
39
|
+
def _populate_public_holidays(self) -> None:
|
|
40
|
+
self.subdiv = "TF"
|
|
41
|
+
super()._populate_public_holidays()
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class FrenchSouthernTerritories(HolidaysTF):
|
|
45
|
+
pass
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class TF(HolidaysTF):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ATF(HolidaysTF):
|
|
53
|
+
pass
|
holidays/countries/malaysia.py
CHANGED
|
@@ -10,7 +10,11 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from typing import TYPE_CHECKING
|
|
14
|
+
|
|
15
|
+
if TYPE_CHECKING: # pragma: no cover
|
|
16
|
+
from datetime import date
|
|
17
|
+
|
|
14
18
|
from gettext import gettext as tr
|
|
15
19
|
|
|
16
20
|
from holidays.calendars import (
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import (
|
|
17
|
+
JAN,
|
|
18
|
+
FEB,
|
|
19
|
+
MAR,
|
|
20
|
+
APR,
|
|
21
|
+
MAY,
|
|
22
|
+
JUN,
|
|
23
|
+
JUL,
|
|
24
|
+
AUG,
|
|
25
|
+
SEP,
|
|
26
|
+
OCT,
|
|
27
|
+
NOV,
|
|
28
|
+
THU,
|
|
29
|
+
FRI,
|
|
30
|
+
SAT,
|
|
31
|
+
_timedelta,
|
|
32
|
+
)
|
|
33
|
+
from holidays.groups import IslamicHolidays
|
|
34
|
+
from holidays.holiday_base import HolidayBase
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class Oman(HolidayBase, IslamicHolidays):
|
|
38
|
+
"""Oman holidays.
|
|
39
|
+
|
|
40
|
+
References:
|
|
41
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Oman>
|
|
42
|
+
* [Independence](https://www.omaninfo.om/pages/175/show/572)
|
|
43
|
+
* [Weekend](https://abnnews.com/the-sultanate-of-oman-changes-weekend-days-from-01-may-2013/)
|
|
44
|
+
* [Decree 56/2020](https://decree.om/2020/rd20200056/)
|
|
45
|
+
* [Decree 88/2022](https://decree.om/2022/rd20220088/)
|
|
46
|
+
* [Decree 15/2025 (National day is moved)](https://decree.om/2025/rd20250015/)
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
country = "OM"
|
|
50
|
+
default_language = "ar"
|
|
51
|
+
# %s (estimated).
|
|
52
|
+
estimated_label = tr("%s (مُقدَّر)")
|
|
53
|
+
start_year = 1970
|
|
54
|
+
supported_languages = ("ar", "en_US")
|
|
55
|
+
|
|
56
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
57
|
+
"""
|
|
58
|
+
Args:
|
|
59
|
+
islamic_show_estimated:
|
|
60
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
61
|
+
if holiday date is estimated.
|
|
62
|
+
"""
|
|
63
|
+
IslamicHolidays.__init__(
|
|
64
|
+
self, cls=OmanIslamicHolidays, show_estimated=islamic_show_estimated
|
|
65
|
+
)
|
|
66
|
+
super().__init__(*args, **kwargs)
|
|
67
|
+
|
|
68
|
+
def _populate_public_holidays(self):
|
|
69
|
+
# Oman switches from THU-FRI to FRI-SAT on May 1, 2013.
|
|
70
|
+
self.weekend = {THU, FRI} if self._year <= 2013 else {FRI, SAT}
|
|
71
|
+
|
|
72
|
+
if self._year >= 2020:
|
|
73
|
+
# Sultan's Accession Day.
|
|
74
|
+
self._add_holiday_jan_11(tr("اليوم الوطني لتولي السلطان"))
|
|
75
|
+
|
|
76
|
+
if self._year <= 2019:
|
|
77
|
+
# Renaissance Day.
|
|
78
|
+
self._add_holiday_jul_23(tr("يوم النهضة"))
|
|
79
|
+
|
|
80
|
+
if self._year >= 2020:
|
|
81
|
+
# National Day.
|
|
82
|
+
name = tr("يوم وطني")
|
|
83
|
+
if self._year <= 2024:
|
|
84
|
+
self._add_holiday_nov_18(name)
|
|
85
|
+
self._add_holiday_nov_19(name)
|
|
86
|
+
else:
|
|
87
|
+
self._add_holiday_nov_20(name)
|
|
88
|
+
self._add_holiday_nov_21(name)
|
|
89
|
+
|
|
90
|
+
# Islamic New Year.
|
|
91
|
+
self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
|
|
92
|
+
|
|
93
|
+
# Prophet's Birthday.
|
|
94
|
+
self._add_mawlid_day(tr("مولد النبي"))
|
|
95
|
+
|
|
96
|
+
# Isra' and Mi'raj.
|
|
97
|
+
self._add_isra_and_miraj_day(tr("الإسراء والمعراج"))
|
|
98
|
+
|
|
99
|
+
# Eid al-Fitr.
|
|
100
|
+
name = tr("عيد الفطر")
|
|
101
|
+
self._add_eid_al_fitr_day(name)
|
|
102
|
+
self._add_eid_al_fitr_day_two(name)
|
|
103
|
+
self._add_eid_al_fitr_day_three(name)
|
|
104
|
+
for dt in self._add_holiday_29_ramadan(name):
|
|
105
|
+
if _timedelta(dt, +1) not in self:
|
|
106
|
+
self._add_eid_al_fitr_eve(name)
|
|
107
|
+
|
|
108
|
+
# Eid al-Adha.
|
|
109
|
+
name = tr("عيد الأضحى")
|
|
110
|
+
self._add_arafah_day(name)
|
|
111
|
+
self._add_eid_al_adha_day(name)
|
|
112
|
+
self._add_eid_al_adha_day_two(name)
|
|
113
|
+
self._add_eid_al_adha_day_three(name)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class OM(Oman):
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class OMN(Oman):
|
|
121
|
+
pass
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class OmanIslamicHolidays(_CustomIslamicHolidays):
|
|
125
|
+
# https://www.timeanddate.com/holidays/oman/muharram-new-year
|
|
126
|
+
HIJRI_NEW_YEAR_DATES = {
|
|
127
|
+
2018: (SEP, 11),
|
|
128
|
+
2019: (SEP, 1),
|
|
129
|
+
2020: (AUG, 21),
|
|
130
|
+
2021: (AUG, 10),
|
|
131
|
+
2022: (JUL, 30),
|
|
132
|
+
2023: (JUL, 20),
|
|
133
|
+
2024: (JUL, 7),
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
# https://www.timeanddate.com/holidays/oman/prophet-birthday
|
|
137
|
+
MAWLID_DATES = {
|
|
138
|
+
2018: (NOV, 20),
|
|
139
|
+
2019: (NOV, 9),
|
|
140
|
+
2020: (OCT, 29),
|
|
141
|
+
2021: (OCT, 19),
|
|
142
|
+
2022: (OCT, 9),
|
|
143
|
+
2023: (SEP, 28),
|
|
144
|
+
2024: (SEP, 15),
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
# https://www.timeanddate.com/holidays/oman/isra-miraj
|
|
148
|
+
ISRA_AND_MIRAJ_DATES = {
|
|
149
|
+
2018: (APR, 13),
|
|
150
|
+
2019: (APR, 3),
|
|
151
|
+
2020: (MAR, 22),
|
|
152
|
+
2021: (MAR, 11),
|
|
153
|
+
2022: (MAR, 1),
|
|
154
|
+
2023: (FEB, 19),
|
|
155
|
+
2024: (FEB, 8),
|
|
156
|
+
2025: (JAN, 27),
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
# https://www.timeanddate.com/holidays/oman/eid-al-adha
|
|
160
|
+
EID_AL_ADHA_DATES = {
|
|
161
|
+
2019: (AUG, 11),
|
|
162
|
+
2020: (JUL, 31),
|
|
163
|
+
2021: (JUL, 20),
|
|
164
|
+
2022: (JUL, 9),
|
|
165
|
+
2023: (JUN, 28),
|
|
166
|
+
2024: (JUN, 17),
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
# https://www.timeanddate.com/holidays/oman/eid-al-fitr
|
|
170
|
+
EID_AL_FITR_DATES = {
|
|
171
|
+
2019: (JUN, 4),
|
|
172
|
+
2020: (MAY, 24),
|
|
173
|
+
2021: (MAY, 13),
|
|
174
|
+
2022: (MAY, 2),
|
|
175
|
+
2023: (APR, 22),
|
|
176
|
+
2024: (APR, 10),
|
|
177
|
+
2025: (MAR, 31),
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
# https://www.timeanddate.com/holidays/oman/ramadan-begins
|
|
181
|
+
RAMADAN_BEGINNING_DATES = {
|
|
182
|
+
2023: (MAR, 23),
|
|
183
|
+
2024: (MAR, 12),
|
|
184
|
+
2025: (MAR, 1),
|
|
185
|
+
}
|
holidays/countries/pakistan.py
CHANGED
|
@@ -24,6 +24,8 @@ class Pakistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
24
24
|
References:
|
|
25
25
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Pakistan>
|
|
26
26
|
* <https://ur.wikipedia.org/wiki/تعطیلات_پاکستان>
|
|
27
|
+
* [Public and optional holidays](https://cabinet.gov.pk/Detail/OTE2ODBiYmItZmI0MS00NDAwLWE5NGUtYmE1MGVjYzllMzAz)
|
|
28
|
+
* [No.10-01/2024-Min-II](https://cabinet.gov.pk/SiteImage/Misc/files/Holidays/28-5-24.pdf)
|
|
27
29
|
"""
|
|
28
30
|
|
|
29
31
|
country = "PK"
|
|
@@ -59,6 +61,10 @@ class Pakistan(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
|
59
61
|
# Labor Day.
|
|
60
62
|
self._add_labor_day(tr("Labour Day"))
|
|
61
63
|
|
|
64
|
+
if self._year >= 2024:
|
|
65
|
+
# Youm-e-Takbeer.
|
|
66
|
+
self._add_holiday_may_28(tr("Youm-e-Takbeer"))
|
|
67
|
+
|
|
62
68
|
# Independence Day.
|
|
63
69
|
self._add_holiday_aug_14(tr("Independence Day"))
|
|
64
70
|
|
|
@@ -170,6 +176,7 @@ class PakistanIslamicHolidays(_CustomIslamicHolidays):
|
|
|
170
176
|
2022: (MAY, 3),
|
|
171
177
|
2023: (APR, 22),
|
|
172
178
|
2024: (APR, 10),
|
|
179
|
+
2025: (MAR, 31),
|
|
173
180
|
}
|
|
174
181
|
|
|
175
182
|
# https://www.timeanddate.com/holidays/pakistan/eid-milad-un-nabi
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars.gregorian import APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
16
|
+
from holidays.calendars.islamic import _CustomIslamicHolidays
|
|
17
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
|
+
from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_WORKDAY
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SierraLeone(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
22
|
+
"""Sierra Leone holidays.
|
|
23
|
+
|
|
24
|
+
References:
|
|
25
|
+
* <https://www.officeholidays.com/countries/sierra-leone>
|
|
26
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Sierra_Leone>
|
|
27
|
+
* <https://www.timeanddate.com/holidays/sierra-leone/>
|
|
28
|
+
* <https://salpost.gov.sl/opening-time-national-holidays>
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
country = "SL"
|
|
32
|
+
default_language = "en_SL"
|
|
33
|
+
# %s (estimated).
|
|
34
|
+
estimated_label = tr("%s (estimated)")
|
|
35
|
+
# %s (observed).
|
|
36
|
+
observed_label = tr("%s (observed)")
|
|
37
|
+
# %s (observed, estimated).
|
|
38
|
+
observed_estimated_label = tr("%s (observed, estimated)")
|
|
39
|
+
supported_languages = ("en_SL", "en_US")
|
|
40
|
+
# Sierra Leone gained independence on April 27, 1961.
|
|
41
|
+
start_year = 1962
|
|
42
|
+
|
|
43
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
44
|
+
"""
|
|
45
|
+
Args:
|
|
46
|
+
islamic_show_estimated:
|
|
47
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
48
|
+
if holiday date is estimated.
|
|
49
|
+
"""
|
|
50
|
+
ChristianHolidays.__init__(self)
|
|
51
|
+
InternationalHolidays.__init__(self)
|
|
52
|
+
IslamicHolidays.__init__(
|
|
53
|
+
self, cls=SierraLeoneIslamicHolidays, show_estimated=islamic_show_estimated
|
|
54
|
+
)
|
|
55
|
+
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
|
|
56
|
+
super().__init__(*args, **kwargs)
|
|
57
|
+
|
|
58
|
+
def _populate_public_holidays(self):
|
|
59
|
+
dts_observed = set()
|
|
60
|
+
|
|
61
|
+
# New Year's Day.
|
|
62
|
+
dts_observed.add(self._add_new_years_day(tr("New Year's Day")))
|
|
63
|
+
|
|
64
|
+
if self._year >= 2002:
|
|
65
|
+
# Armed Forces Day.
|
|
66
|
+
dts_observed.add(self._add_holiday_feb_18(tr("Armed Forces Day")))
|
|
67
|
+
|
|
68
|
+
if self._year >= 2018:
|
|
69
|
+
# International Women's Day.
|
|
70
|
+
dts_observed.add(self._add_womens_day(tr("International Women's Day")))
|
|
71
|
+
|
|
72
|
+
# Good Friday.
|
|
73
|
+
self._add_good_friday(tr("Good Friday"))
|
|
74
|
+
|
|
75
|
+
# Easter Monday.
|
|
76
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
77
|
+
|
|
78
|
+
# Independence Day.
|
|
79
|
+
dts_observed.add(self._add_holiday_apr_27(tr("Independence Day")))
|
|
80
|
+
|
|
81
|
+
# International Worker's Day.
|
|
82
|
+
dts_observed.add(self._add_labor_day(tr("International Worker's Day")))
|
|
83
|
+
|
|
84
|
+
# Christmas Day.
|
|
85
|
+
dts_observed.add(self._add_christmas_day(tr("Christmas Day")))
|
|
86
|
+
|
|
87
|
+
# Boxing Day.
|
|
88
|
+
dts_observed.add(self._add_christmas_day_two(tr("Boxing Day")))
|
|
89
|
+
|
|
90
|
+
# Prophet's Birthday.
|
|
91
|
+
dts_observed.update(self._add_mawlid_day(tr("Prophet's Birthday")))
|
|
92
|
+
|
|
93
|
+
# Eid al-Fitr.
|
|
94
|
+
dts_observed.update(self._add_eid_al_fitr_day(tr("Eid al-Fitr")))
|
|
95
|
+
|
|
96
|
+
# Eid al-Adha.
|
|
97
|
+
dts_observed.update(self._add_eid_al_adha_day(tr("Eid al-Adha")))
|
|
98
|
+
|
|
99
|
+
if self.observed:
|
|
100
|
+
self._populate_observed(dts_observed)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class SL(SierraLeone):
|
|
104
|
+
pass
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class SLE(SierraLeone):
|
|
108
|
+
pass
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class SierraLeoneIslamicHolidays(_CustomIslamicHolidays):
|
|
112
|
+
"""Sierra Leone Islamic holidays exact dates.
|
|
113
|
+
|
|
114
|
+
References:
|
|
115
|
+
* <https://www.timeanddate.com/holidays/sierra-leone/>
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
# Prophet's Birthday
|
|
119
|
+
MAWLID_DATES = {
|
|
120
|
+
2018: (NOV, 21),
|
|
121
|
+
2019: (NOV, 10),
|
|
122
|
+
2020: (OCT, 29),
|
|
123
|
+
2021: (OCT, 18),
|
|
124
|
+
2022: (OCT, 8),
|
|
125
|
+
2023: (SEP, 27),
|
|
126
|
+
2024: (SEP, 15),
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
# Eid al-Fitr
|
|
130
|
+
EID_AL_FITR_DATES = {
|
|
131
|
+
2018: (JUN, 15),
|
|
132
|
+
2019: (JUN, 5),
|
|
133
|
+
2020: (MAY, 24),
|
|
134
|
+
2021: (MAY, 13),
|
|
135
|
+
2022: (MAY, 2),
|
|
136
|
+
2023: (APR, 21),
|
|
137
|
+
2024: (APR, 10),
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
# Eid al-Adha
|
|
141
|
+
EID_AL_ADHA_DATES = {
|
|
142
|
+
2018: (AUG, 22),
|
|
143
|
+
2019: (AUG, 12),
|
|
144
|
+
2020: (JUL, 31),
|
|
145
|
+
2021: (JUL, 20),
|
|
146
|
+
2022: (JUL, 9),
|
|
147
|
+
2023: (JUN, 28),
|
|
148
|
+
2024: (JUN, 16),
|
|
149
|
+
}
|
|
@@ -213,7 +213,7 @@ class SouthKorea(
|
|
|
213
213
|
# Christmas Day.
|
|
214
214
|
append_observed(self._add_christmas_day(tr("기독탄신일")), 2023)
|
|
215
215
|
|
|
216
|
-
# Election Days since Sep 2006; excluding the 2017 Special Presidential Election Day.
|
|
216
|
+
# Election Days since Sep 2006; excluding the 2017, 2025 Special Presidential Election Day.
|
|
217
217
|
|
|
218
218
|
# Based on Article 34 of the Public Official Election Act.
|
|
219
219
|
# (1) The election day for each election to be held at the expiration of the term shall
|
|
@@ -238,23 +238,18 @@ class SouthKorea(
|
|
|
238
238
|
elif self._year >= 2007 and (self._year - 2008) % 4 == 0:
|
|
239
239
|
self._add_holiday_2nd_wed_of_apr(name)
|
|
240
240
|
|
|
241
|
-
if self._year >= 2007
|
|
241
|
+
if self._year >= 2007:
|
|
242
242
|
# Presidential Election Day.
|
|
243
243
|
name = tr("대통령 선거일")
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
if (
|
|
249
|
-
self._is_tuesday(mar_1)
|
|
250
|
-
or self._is_wednesday(mar_1)
|
|
251
|
-
or self._is_thursday(mar_1)
|
|
252
|
-
):
|
|
244
|
+
if self._year <= 2024 and (self._year - 2007) % 5 == 0:
|
|
245
|
+
if self._year <= 2012:
|
|
246
|
+
self._add_holiday_3rd_wed_of_dec(name)
|
|
247
|
+
elif self._year >= 2022:
|
|
253
248
|
# Moved as per Paragraph 2 of Article 34 due to conflict with
|
|
254
249
|
# Independence Movement Day (MAR, 1).
|
|
255
250
|
self._add_holiday_2nd_wed_of_mar(name)
|
|
256
|
-
|
|
257
|
-
|
|
251
|
+
elif self._year >= 2030 and (self._year - 2030) % 5 == 0:
|
|
252
|
+
self._add_holiday_1st_wed_of_apr(name)
|
|
258
253
|
|
|
259
254
|
if self._year >= 2007 and (self._year - 2010) % 4 == 0:
|
|
260
255
|
# Local Election Day.
|
|
@@ -610,8 +605,12 @@ class SouthKoreaStaticHolidays:
|
|
|
610
605
|
2023: (OCT, 2, temporary_public_holiday),
|
|
611
606
|
# 76th Anniversary of the Armed Forces of Korea.
|
|
612
607
|
2024: (OCT, 1, armed_forces_day),
|
|
613
|
-
|
|
614
|
-
|
|
608
|
+
2025: (
|
|
609
|
+
# Added to create a 6-day long holiday period.
|
|
610
|
+
(JAN, 27, temporary_public_holiday),
|
|
611
|
+
# Special Presidential Election (21st) due to Yoon Seok-yeol's impeachment.
|
|
612
|
+
(JUN, 3, presidential_election_day),
|
|
613
|
+
),
|
|
615
614
|
}
|
|
616
615
|
# Pre-2014 Alternate Holidays
|
|
617
616
|
# https://namu.wiki/w/대체%20휴일%20제도#s-4.2.1
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays import HolidayBase
|
|
16
|
+
from holidays.calendars import _CustomHinduHolidays, _CustomIslamicHolidays
|
|
17
|
+
from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
18
|
+
from holidays.groups import (
|
|
19
|
+
ChineseCalendarHolidays,
|
|
20
|
+
ChristianHolidays,
|
|
21
|
+
HinduCalendarHolidays,
|
|
22
|
+
InternationalHolidays,
|
|
23
|
+
IslamicHolidays,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Suriname(
|
|
28
|
+
HolidayBase,
|
|
29
|
+
ChineseCalendarHolidays,
|
|
30
|
+
ChristianHolidays,
|
|
31
|
+
HinduCalendarHolidays,
|
|
32
|
+
InternationalHolidays,
|
|
33
|
+
IslamicHolidays,
|
|
34
|
+
):
|
|
35
|
+
"""Suriname holidays.
|
|
36
|
+
|
|
37
|
+
References:
|
|
38
|
+
* [Besluit Vrije Dagen 1971](https://web.archive.org/web/20250411201210/https://www.sris.sr/wp-content/uploads/2022/10/Besluit-Vrije-dagen-GB-1971-no-78.pdf)
|
|
39
|
+
* https://web.archive.org/web/20240416223555/https://gov.sr/wp-content/uploads/2022/09/arbeidswet.pdf
|
|
40
|
+
* [S.B. 2007 no. 98](https://web.archive.org/web/20250411204836/https://www.sris.sr/wp-content/uploads/2021/10/SB-2007-no-98-besluit-vrije-dagen.pdf)
|
|
41
|
+
* [S.B. 2012 no. 21](https://web.archive.org/web/20250411204754/https://www.sris.sr/wp-content/uploads/2021/10/SB-2012-no-21-besluit-vrije-dagen.pdf)
|
|
42
|
+
* [S.B. 2021 no. 27](https://web.archive.org/web/20250411210516/https://www.sris.sr/wp-content/uploads/2021/03/S.B.-2021-no.-27-houdende-nadere-wijziging-van-het-Besluit-Vrije-Dagen-1971.pdf)
|
|
43
|
+
* [S.B. 2024 no. 167](https://web.archive.org/web/20250411211129/https://www.sris.sr/wp-content/uploads/2025/01/S.B.-2024-no.-167-Algemene-termijnenwet.pdf)
|
|
44
|
+
|
|
45
|
+
Note:
|
|
46
|
+
The oldest decree available online that underpins the public holidays defined here
|
|
47
|
+
for Suriname is Besluit Vrije Dagen 1971 of April 22, 1971.
|
|
48
|
+
|
|
49
|
+
The S.B. 2024 no. 167 law only applies to prolongations of terms specified in contracts
|
|
50
|
+
and other similar legal documents, and does not apply to labor agreements (and days off).
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
country = "SR"
|
|
54
|
+
default_language = "nl"
|
|
55
|
+
# %s (estimated).
|
|
56
|
+
estimated_label = tr("%s (geschat)")
|
|
57
|
+
start_year = 1972
|
|
58
|
+
supported_languages = ("en_US", "nl")
|
|
59
|
+
|
|
60
|
+
def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
|
|
61
|
+
"""
|
|
62
|
+
Args:
|
|
63
|
+
islamic_show_estimated:
|
|
64
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
65
|
+
if holiday date is estimated.
|
|
66
|
+
"""
|
|
67
|
+
ChineseCalendarHolidays.__init__(self)
|
|
68
|
+
ChristianHolidays.__init__(self)
|
|
69
|
+
HinduCalendarHolidays.__init__(self, cls=SurinameHinduHolidays)
|
|
70
|
+
InternationalHolidays.__init__(self)
|
|
71
|
+
IslamicHolidays.__init__(
|
|
72
|
+
self, cls=SurinameIslamicHolidays, show_estimated=islamic_show_estimated
|
|
73
|
+
)
|
|
74
|
+
super().__init__(*args, **kwargs)
|
|
75
|
+
|
|
76
|
+
def _populate_public_holidays(self):
|
|
77
|
+
# New Year's Day.
|
|
78
|
+
self._add_new_years_day(tr("Nieuwjaarsdag"))
|
|
79
|
+
|
|
80
|
+
if 1981 <= self._year <= 1992 or 2012 <= self._year <= 2020:
|
|
81
|
+
# Day of Liberation and Renewal.
|
|
82
|
+
self._add_holiday_feb_25(tr("Dag van Bevrijding en Vernieuwing"))
|
|
83
|
+
|
|
84
|
+
# Good Friday.
|
|
85
|
+
self._add_good_friday(tr("Goede Vrijdag"))
|
|
86
|
+
|
|
87
|
+
# Easter Monday.
|
|
88
|
+
self._add_easter_monday(tr("Tweede Paasdag"))
|
|
89
|
+
|
|
90
|
+
if self._year <= 1975:
|
|
91
|
+
# Birthday of H.M. the Queen.
|
|
92
|
+
self._add_holiday_apr_30(tr("Verjaardag van H.M. de Koningin"))
|
|
93
|
+
|
|
94
|
+
# Labor Day.
|
|
95
|
+
self._add_labor_day(tr("Dag van de Arbeid"))
|
|
96
|
+
|
|
97
|
+
self._add_holiday_jul_1(
|
|
98
|
+
# Day of Freedoms.
|
|
99
|
+
tr("Keti Koti Dey") if 2008 <= self._year <= 2024 else tr("Dag der Vrijheden")
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
if self._year >= 2007:
|
|
103
|
+
# Indigenous People Day.
|
|
104
|
+
self._add_holiday_aug_9(tr("Dag der Inheemsen"))
|
|
105
|
+
|
|
106
|
+
if self._year >= 2012:
|
|
107
|
+
# Day of the Maroons.
|
|
108
|
+
self._add_holiday_oct_10(tr("Dag der Marrons"))
|
|
109
|
+
|
|
110
|
+
if self._year >= 1976:
|
|
111
|
+
name = (
|
|
112
|
+
# Independence Day.
|
|
113
|
+
tr("Onafhankelijkheidsdag")
|
|
114
|
+
if self._year >= 2008
|
|
115
|
+
# Republic Day.
|
|
116
|
+
else tr("Dag van de Republiek")
|
|
117
|
+
)
|
|
118
|
+
self._add_holiday_nov_25(name)
|
|
119
|
+
|
|
120
|
+
# Christmas Day.
|
|
121
|
+
self._add_christmas_day(tr("Eerste Kerstdag"))
|
|
122
|
+
|
|
123
|
+
# Second Day of Christmas.
|
|
124
|
+
self._add_christmas_day_two(tr("Tweede Kerstdag"))
|
|
125
|
+
|
|
126
|
+
# Holi.
|
|
127
|
+
self._add_holi(tr("Holi-Phagwa"))
|
|
128
|
+
|
|
129
|
+
if self._year >= 2012:
|
|
130
|
+
# Diwali.
|
|
131
|
+
self._add_diwali(tr("Divali"))
|
|
132
|
+
|
|
133
|
+
# Eid al-Fitr.
|
|
134
|
+
self._add_eid_al_fitr_day(tr("Ied-Ul-Fitre"))
|
|
135
|
+
|
|
136
|
+
if self._year >= 2012:
|
|
137
|
+
# Eid al-Adha.
|
|
138
|
+
self._add_eid_al_adha_day(tr("Ied-Ul-Adha"))
|
|
139
|
+
|
|
140
|
+
if self._year >= 2022:
|
|
141
|
+
# Chinese New Year.
|
|
142
|
+
self._add_chinese_new_years_day(tr("Chinees Nieuwjaar"))
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
class SurinameHinduHolidays(_CustomHinduHolidays):
|
|
146
|
+
# https://www.timeanddate.com/holidays/suriname/holi-phagwa
|
|
147
|
+
HOLI_DATES = {
|
|
148
|
+
2015: (MAR, 6),
|
|
149
|
+
2016: (MAR, 23),
|
|
150
|
+
2017: (MAR, 12),
|
|
151
|
+
2018: (MAR, 2),
|
|
152
|
+
2019: (MAR, 21),
|
|
153
|
+
2020: (MAR, 9),
|
|
154
|
+
2021: (MAR, 28),
|
|
155
|
+
2022: (MAR, 18),
|
|
156
|
+
2023: (MAR, 7),
|
|
157
|
+
2024: (MAR, 25),
|
|
158
|
+
2025: (MAR, 14),
|
|
159
|
+
2026: (MAR, 3),
|
|
160
|
+
2027: (MAR, 22),
|
|
161
|
+
2028: (MAR, 11),
|
|
162
|
+
2029: (MAR, 28),
|
|
163
|
+
2030: (MAR, 19),
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
# https://www.timeanddate.com/holidays/suriname/diwali
|
|
167
|
+
DIWALI_DATES = {
|
|
168
|
+
2014: (OCT, 23),
|
|
169
|
+
2015: (NOV, 11),
|
|
170
|
+
2016: (OCT, 30),
|
|
171
|
+
2017: (OCT, 19),
|
|
172
|
+
2018: (NOV, 7),
|
|
173
|
+
2019: (OCT, 27),
|
|
174
|
+
2020: (NOV, 14),
|
|
175
|
+
2021: (NOV, 4),
|
|
176
|
+
2022: (OCT, 24),
|
|
177
|
+
2023: (NOV, 12),
|
|
178
|
+
2024: (OCT, 31),
|
|
179
|
+
2025: (OCT, 20),
|
|
180
|
+
2026: (NOV, 8),
|
|
181
|
+
2027: (OCT, 28),
|
|
182
|
+
2028: (OCT, 17),
|
|
183
|
+
2029: (NOV, 5),
|
|
184
|
+
2030: (OCT, 25),
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class SurinameIslamicHolidays(_CustomIslamicHolidays):
|
|
189
|
+
# https://www.timeanddate.com/holidays/suriname/eid-al-fitr
|
|
190
|
+
EID_AL_FITR_DATES = {
|
|
191
|
+
2014: (JUL, 29),
|
|
192
|
+
2015: (JUL, 18),
|
|
193
|
+
2016: (JUL, 7),
|
|
194
|
+
2017: (JUN, 26),
|
|
195
|
+
2018: (JUN, 15),
|
|
196
|
+
2019: (JUN, 5),
|
|
197
|
+
2020: (MAY, 24),
|
|
198
|
+
2021: (MAY, 13),
|
|
199
|
+
2022: (MAY, 2),
|
|
200
|
+
2023: (APR, 22),
|
|
201
|
+
2024: (APR, 10),
|
|
202
|
+
2025: (MAR, 31),
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
# https://www.timeanddate.com/holidays/suriname/eid-al-adha
|
|
206
|
+
EID_AL_ADHA_DATES = {
|
|
207
|
+
2014: (OCT, 5),
|
|
208
|
+
2015: (SEP, 24),
|
|
209
|
+
2016: (SEP, 13),
|
|
210
|
+
2017: (SEP, 2),
|
|
211
|
+
2018: (AUG, 21),
|
|
212
|
+
2019: (AUG, 12),
|
|
213
|
+
2020: (JUL, 31),
|
|
214
|
+
2021: (JUL, 20),
|
|
215
|
+
2022: (JUL, 9),
|
|
216
|
+
2023: (JUN, 29),
|
|
217
|
+
2024: (JUN, 16),
|
|
218
|
+
2025: (JUN, 7),
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
class SR(Suriname):
|
|
223
|
+
pass
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class SUR(Suriname):
|
|
227
|
+
pass
|
holidays/countries/taiwan.py
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
from gettext import gettext as tr
|
|
15
|
+
from typing import Optional
|
|
15
16
|
|
|
16
17
|
from holidays.calendars.gregorian import (
|
|
17
18
|
JAN,
|
|
@@ -86,7 +87,7 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
|
|
|
86
87
|
super().__init__(*args, **kwargs)
|
|
87
88
|
|
|
88
89
|
def _populate_observed(
|
|
89
|
-
self, dts: set[date], rule: ObservedRule = None, since: int = 2015
|
|
90
|
+
self, dts: set[date], rule: Optional[ObservedRule] = None, since: int = 2015
|
|
90
91
|
) -> None:
|
|
91
92
|
"""
|
|
92
93
|
Taiwan's General Observance Rule first started in 2015 as per
|
holidays/groups/islamic.py
CHANGED
|
@@ -242,6 +242,16 @@ class IslamicHolidays(EasternCalendarHolidays):
|
|
|
242
242
|
name, self._islamic_calendar.hasan_al_askari_death_dates(self._year)
|
|
243
243
|
)
|
|
244
244
|
|
|
245
|
+
def _add_holiday_29_ramadan(self, name) -> set[date]:
|
|
246
|
+
"""
|
|
247
|
+
Add 29th Ramadan holiday.
|
|
248
|
+
|
|
249
|
+
https://decree.om/2022/rd20220088/
|
|
250
|
+
"""
|
|
251
|
+
return self._add_islamic_calendar_holiday(
|
|
252
|
+
name, self._islamic_calendar.ramadan_beginning_dates(self._year), days_delta=+28
|
|
253
|
+
)
|
|
254
|
+
|
|
245
255
|
def _add_imam_mahdi_birthday_day(self, name) -> set[date]:
|
|
246
256
|
"""
|
|
247
257
|
Add birthday of Muhammad al-Mahdi day (15th day of 8th month).
|
holidays/holiday_base.py
CHANGED
|
@@ -290,10 +290,36 @@ class HolidayBase(dict[date, str]):
|
|
|
290
290
|
*deprecated* use `subdiv` instead.
|
|
291
291
|
|
|
292
292
|
language:
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
Specifies the language in which holiday names are returned.
|
|
294
|
+
|
|
295
|
+
Accepts either:
|
|
296
|
+
|
|
297
|
+
* A two-letter ISO 639-1 language code (e.g., 'en' for English, 'fr' for French),
|
|
298
|
+
or
|
|
299
|
+
* A language and entity combination using an underscore (e.g., 'en_US' for U.S.
|
|
300
|
+
English, 'pt_BR' for Brazilian Portuguese).
|
|
301
|
+
|
|
302
|
+
!!! warning
|
|
303
|
+
The provided language or locale code must be supported by the holiday
|
|
304
|
+
entity. Unsupported values will result in names being shown in the entity's
|
|
305
|
+
original language.
|
|
306
|
+
|
|
307
|
+
If not explicitly set (`language=None`), the system attempts to infer the
|
|
308
|
+
language from the environment's locale settings. The following environment
|
|
309
|
+
variables are checked, in order of precedence: LANGUAGE, LC_ALL, LC_MESSAGES, LANG.
|
|
310
|
+
|
|
311
|
+
If none of these are set or they are empty, holiday names will default to the
|
|
312
|
+
original language of the entity's holiday implementation.
|
|
313
|
+
|
|
314
|
+
!!! warning
|
|
315
|
+
This fallback mechanism may yield inconsistent results across environments
|
|
316
|
+
(e.g., between a terminal session and a Jupyter notebook).
|
|
317
|
+
|
|
318
|
+
To ensure consistent behavior, it is recommended to set the language parameter
|
|
319
|
+
explicitly. If the specified language is not supported, holiday names will remain
|
|
320
|
+
in the original language of the entity's holiday implementation.
|
|
321
|
+
|
|
322
|
+
This behavior will be updated and formalized in v1.
|
|
297
323
|
|
|
298
324
|
categories:
|
|
299
325
|
Requested holiday categories.
|
|
@@ -1040,7 +1066,7 @@ class HolidayBase(dict[date, str]):
|
|
|
1040
1066
|
|
|
1041
1067
|
def get_closest_holiday(
|
|
1042
1068
|
self,
|
|
1043
|
-
target_date: DateLike = None,
|
|
1069
|
+
target_date: Optional[DateLike] = None,
|
|
1044
1070
|
direction: Literal["forward", "backward"] = "forward",
|
|
1045
1071
|
) -> Optional[tuple[date, str]]:
|
|
1046
1072
|
"""Find the closest holiday relative to a given date.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -104,7 +104,11 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
104
104
|
observed_label = "%s"
|
|
105
105
|
|
|
106
106
|
def __init__(
|
|
107
|
-
self,
|
|
107
|
+
self,
|
|
108
|
+
observed_rule: Optional[ObservedRule] = None,
|
|
109
|
+
observed_since: Optional[int] = None,
|
|
110
|
+
*args,
|
|
111
|
+
**kwargs,
|
|
108
112
|
):
|
|
109
113
|
self._observed_rule = observed_rule or ObservedRule()
|
|
110
114
|
self._observed_since = observed_since
|
holidays/registry.py
CHANGED
|
@@ -76,6 +76,7 @@ COUNTRIES: RegistryDict = {
|
|
|
76
76
|
"fiji": ("Fiji", "FJ", "FJI"),
|
|
77
77
|
"finland": ("Finland", "FI", "FIN"),
|
|
78
78
|
"france": ("France", "FR", "FRA"),
|
|
79
|
+
"french_southern_territories": ("FrenchSouthernTerritories", "TF", "ATF", "HolidaysTF"),
|
|
79
80
|
"gabon": ("Gabon", "GA", "GAB"),
|
|
80
81
|
"georgia": ("Georgia", "GE", "GEO"),
|
|
81
82
|
"germany": ("Germany", "DE", "DEU"),
|
|
@@ -134,6 +135,7 @@ COUNTRIES: RegistryDict = {
|
|
|
134
135
|
"north_macedonia": ("NorthMacedonia", "MK", "MKD"),
|
|
135
136
|
"northern_mariana_islands": ("NorthernMarianaIslands", "MP", "MNP", "HolidaysMP"),
|
|
136
137
|
"norway": ("Norway", "NO", "NOR"),
|
|
138
|
+
"oman": ("Oman", "OM", "OMN"),
|
|
137
139
|
"pakistan": ("Pakistan", "PK", "PAK"),
|
|
138
140
|
"palau": ("Palau", "PW", "PLW"),
|
|
139
141
|
"panama": ("Panama", "PA", "PAN"),
|
|
@@ -154,6 +156,7 @@ COUNTRIES: RegistryDict = {
|
|
|
154
156
|
"saudi_arabia": ("SaudiArabia", "SA", "SAU"),
|
|
155
157
|
"serbia": ("Serbia", "RS", "SRB"),
|
|
156
158
|
"seychelles": ("Seychelles", "SC", "SYC"),
|
|
159
|
+
"sierra_leone": ("SierraLeone", "SL", "SLE"),
|
|
157
160
|
"singapore": ("Singapore", "SG", "SGP"),
|
|
158
161
|
"slovakia": ("Slovakia", "SK", "SVK"),
|
|
159
162
|
"slovenia": ("Slovenia", "SI", "SVN"),
|
|
@@ -161,6 +164,7 @@ COUNTRIES: RegistryDict = {
|
|
|
161
164
|
"south_korea": ("SouthKorea", "KR", "KOR", "Korea"),
|
|
162
165
|
"spain": ("Spain", "ES", "ESP"),
|
|
163
166
|
"sri_lanka": ("SriLanka", "LK", "LKA"),
|
|
167
|
+
"suriname": ("Suriname", "SR", "SUR"),
|
|
164
168
|
"sweden": ("Sweden", "SE", "SWE"),
|
|
165
169
|
"switzerland": ("Switzerland", "CH", "CHE"),
|
|
166
170
|
"taiwan": ("Taiwan", "TW", "TWN"),
|
holidays/utils.py
CHANGED
|
@@ -71,10 +71,36 @@ def country_holidays(
|
|
|
71
71
|
*deprecated* use `subdiv` instead.
|
|
72
72
|
|
|
73
73
|
language:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
Specifies the language in which holiday names are returned.
|
|
75
|
+
|
|
76
|
+
Accepts either:
|
|
77
|
+
|
|
78
|
+
* A two-letter ISO 639-1 language code (e.g., 'en' for English, 'fr' for French),
|
|
79
|
+
or
|
|
80
|
+
* A language and entity combination using an underscore (e.g., 'en_US' for U.S.
|
|
81
|
+
English, 'pt_BR' for Brazilian Portuguese).
|
|
82
|
+
|
|
83
|
+
!!! warning
|
|
84
|
+
The provided language or locale code must be supported by the holiday
|
|
85
|
+
entity. Unsupported values will result in names being shown in the entity's
|
|
86
|
+
original language.
|
|
87
|
+
|
|
88
|
+
If not explicitly set (`language=None`), the system attempts to infer the
|
|
89
|
+
language from the environment's locale settings. The following environment
|
|
90
|
+
variables are checked, in order of precedence: LANGUAGE, LC_ALL, LC_MESSAGES, LANG.
|
|
91
|
+
|
|
92
|
+
If none of these are set or they are empty, holiday names will default to the
|
|
93
|
+
original language of the entity's holiday implementation.
|
|
94
|
+
|
|
95
|
+
!!! warning
|
|
96
|
+
This fallback mechanism may yield inconsistent results across environments
|
|
97
|
+
(e.g., between a terminal session and a Jupyter notebook).
|
|
98
|
+
|
|
99
|
+
To ensure consistent behavior, it is recommended to set the language parameter
|
|
100
|
+
explicitly. If the specified language is not supported, holiday names will remain
|
|
101
|
+
in the original language of the entity's holiday implementation.
|
|
102
|
+
|
|
103
|
+
This behavior will be updated and formalized in v1.
|
|
78
104
|
|
|
79
105
|
categories:
|
|
80
106
|
Requested holiday categories.
|
|
@@ -235,10 +261,36 @@ def financial_holidays(
|
|
|
235
261
|
Monday). False may not work for all countries.
|
|
236
262
|
|
|
237
263
|
language:
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
264
|
+
Specifies the language in which holiday names are returned.
|
|
265
|
+
|
|
266
|
+
Accepts either:
|
|
267
|
+
|
|
268
|
+
* A two-letter ISO 639-1 language code (e.g., 'en' for English, 'fr' for French),
|
|
269
|
+
or
|
|
270
|
+
* A language and entity combination using an underscore (e.g., 'en_US' for U.S.
|
|
271
|
+
English, 'pt_BR' for Brazilian Portuguese).
|
|
272
|
+
|
|
273
|
+
!!! warning
|
|
274
|
+
The provided language or locale code must be supported by the holiday
|
|
275
|
+
entity. Unsupported values will result in names being shown in the entity's
|
|
276
|
+
original language.
|
|
277
|
+
|
|
278
|
+
If not explicitly set (`language=None`), the system attempts to infer the
|
|
279
|
+
language from the environment's locale settings. The following environment
|
|
280
|
+
variables are checked, in order of precedence: LANGUAGE, LC_ALL, LC_MESSAGES, LANG.
|
|
281
|
+
|
|
282
|
+
If none of these are set or they are empty, holiday names will default to the
|
|
283
|
+
original language of the entity's holiday implementation.
|
|
284
|
+
|
|
285
|
+
!!! warning
|
|
286
|
+
This fallback mechanism may yield inconsistent results across environments
|
|
287
|
+
(e.g., between a terminal session and a Jupyter notebook).
|
|
288
|
+
|
|
289
|
+
To ensure consistent behavior, it is recommended to set the language parameter
|
|
290
|
+
explicitly. If the specified language is not supported, holiday names will remain
|
|
291
|
+
in the original language of the entity's holiday implementation.
|
|
292
|
+
|
|
293
|
+
This behavior will be updated and formalized in v1.
|
|
242
294
|
|
|
243
295
|
Returns:
|
|
244
296
|
A `HolidayBase` object matching the **market**.
|
holidays/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: holidays
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.71
|
|
4
4
|
Summary: Open World Holidays Framework
|
|
5
5
|
Author: Vacanza Team
|
|
6
6
|
Maintainer: Arkadii Yakovets, Panpakorn Siripanich, Serhii Murza
|
|
@@ -136,7 +136,7 @@ and detailed information.
|
|
|
136
136
|
|
|
137
137
|
## Available Countries
|
|
138
138
|
|
|
139
|
-
We currently support
|
|
139
|
+
We currently support 169 country codes. The standard way to refer to a country is by using its [ISO
|
|
140
140
|
3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
|
|
141
141
|
for domain names, and for a subdivision its [ISO 3166-2
|
|
142
142
|
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
|
|
@@ -563,6 +563,13 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
563
563
|
<td></td>
|
|
564
564
|
</tr>
|
|
565
565
|
<tr>
|
|
566
|
+
<td>French Southern Territories</td>
|
|
567
|
+
<td>TF</td>
|
|
568
|
+
<td></td>
|
|
569
|
+
<td>en_US, <strong>fr</strong>, uk</td>
|
|
570
|
+
<td></td>
|
|
571
|
+
</tr>
|
|
572
|
+
<tr>
|
|
566
573
|
<td>Gabon</td>
|
|
567
574
|
<td>GA</td>
|
|
568
575
|
<td></td>
|
|
@@ -977,6 +984,13 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
977
984
|
<td></td>
|
|
978
985
|
</tr>
|
|
979
986
|
<tr>
|
|
987
|
+
<td>Oman</td>
|
|
988
|
+
<td>OM</td>
|
|
989
|
+
<td></td>
|
|
990
|
+
<td><strong>ar</strong>, en_US</td>
|
|
991
|
+
<td></td>
|
|
992
|
+
</tr>
|
|
993
|
+
<tr>
|
|
980
994
|
<td>Pakistan</td>
|
|
981
995
|
<td>PK</td>
|
|
982
996
|
<td></td>
|
|
@@ -1117,6 +1131,13 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1117
1131
|
<td></td>
|
|
1118
1132
|
</tr>
|
|
1119
1133
|
<tr>
|
|
1134
|
+
<td>Sierra Leone</td>
|
|
1135
|
+
<td>SL</td>
|
|
1136
|
+
<td></td>
|
|
1137
|
+
<td><strong>en_SL</strong>, en_US</td>
|
|
1138
|
+
<td></td>
|
|
1139
|
+
</tr>
|
|
1140
|
+
<tr>
|
|
1120
1141
|
<td>Singapore</td>
|
|
1121
1142
|
<td>SG</td>
|
|
1122
1143
|
<td></td>
|
|
@@ -1166,6 +1187,13 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1166
1187
|
<td>BANK, GOVERNMENT, WORKDAY</td>
|
|
1167
1188
|
</tr>
|
|
1168
1189
|
<tr>
|
|
1190
|
+
<td>Suriname</td>
|
|
1191
|
+
<td>SR</td>
|
|
1192
|
+
<td></td>
|
|
1193
|
+
<td>en_US, <strong>nl</strong></td>
|
|
1194
|
+
<td></td>
|
|
1195
|
+
</tr>
|
|
1196
|
+
<tr>
|
|
1169
1197
|
<td>Sweden</td>
|
|
1170
1198
|
<td>SE</td>
|
|
1171
1199
|
<td></td>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
holidays/__init__.py,sha256=YtjE8Dzs1zoYwDECwhGwttIvu9a4uMo4YHfe0juLz5g,886
|
|
2
2
|
holidays/constants.py,sha256=9DXJZrW5cztzDHIuaIZ_kmvPkQeSXesBQat-AfgVipc,1309
|
|
3
3
|
holidays/helpers.py,sha256=AwTkiDi1E0A4AS7GZ3_fGJWSdlN-FNJ31SavtQrGKWM,1380
|
|
4
|
-
holidays/holiday_base.py,sha256=
|
|
4
|
+
holidays/holiday_base.py,sha256=pLBEJ8oONXbggLuopkUu1E1fYE8avBH7s-o-ulJzmmE,54670
|
|
5
5
|
holidays/ical.py,sha256=MShXtREO37HHpZsP8nhPf7KWdsR7PCGMtyV4_iwQorE,8466
|
|
6
6
|
holidays/mixins.py,sha256=07W8rUssbkTZ_pt6dWZTXWtxGG6NVxmOmZsdiLbtPtU,1111
|
|
7
|
-
holidays/observed_holiday_base.py,sha256=
|
|
7
|
+
holidays/observed_holiday_base.py,sha256=21X5uPDu8KdRV6rD13Gic_mAKXGeHJ5VIok0bvCBYpU,9125
|
|
8
8
|
holidays/py.typed,sha256=EUaxvGLCfdycmOVEDt64l9fUKWuyPBxOEQWGfnMnrxE,171
|
|
9
|
-
holidays/registry.py,sha256=
|
|
10
|
-
holidays/utils.py,sha256=
|
|
11
|
-
holidays/version.py,sha256=
|
|
9
|
+
holidays/registry.py,sha256=B61UxTq2WcHyNV9dGMBBiGVNaS07h2meGAnqJyBORQY,12513
|
|
10
|
+
holidays/utils.py,sha256=TP_p7_NW9eNGXT_WDrG-IiGN4l1hHsu6uvs6s8jRdMk,15585
|
|
11
|
+
holidays/version.py,sha256=MPHJl6TUDnw4cQ39uBQSG7gvLjbMHr9eUL62XgSuh7U,551
|
|
12
12
|
holidays/calendars/__init__.py,sha256=bb7Xwgb0Ej2lJTyjg23e5bTwRcxvP2KM51S4PbJlr5I,1433
|
|
13
13
|
holidays/calendars/balinese_saka.py,sha256=4MRujeENZah0RUSPLfGuohNcuysCQEgca6LoLeLAn4M,3261
|
|
14
14
|
holidays/calendars/buddhist.py,sha256=DPHQK73KpATi0g5Uv1bJmNQp5rcdreWJDRaXwVJNF-o,11353
|
|
@@ -23,7 +23,7 @@ holidays/calendars/julian_revised.py,sha256=CQ-FKNq4o0adRCWzoG0ZVomwE1A8Sa0yh0m2
|
|
|
23
23
|
holidays/calendars/persian.py,sha256=Y46aBNswWZEIqld9HFM2UQdL91z-2KE1ZHAS1l8P5Po,2138
|
|
24
24
|
holidays/calendars/sinhala.py,sha256=S8o_iOGcSylPgjW8SUpWQvhjFhf0ylQbzLyCrPZdUuc,11313
|
|
25
25
|
holidays/calendars/thai.py,sha256=zNY28kyNIVKG19hxhT4_cvGd507bMDgWqazzjw_rmMw,24800
|
|
26
|
-
holidays/countries/__init__.py,sha256=
|
|
26
|
+
holidays/countries/__init__.py,sha256=KVc_XvnCMlFn_7NjZRq9QLJvRLZPwpjNQIFItEKPbkQ,7610
|
|
27
27
|
holidays/countries/afghanistan.py,sha256=BGjJrftShFe0lf4TuPrpkkd1wfenPXUcGeL6ReSHu1s,5785
|
|
28
28
|
holidays/countries/albania.py,sha256=qCMtEV9kqZginzfNIptLhBpsJ01kHYxuI6TLEmceZ1o,5666
|
|
29
29
|
holidays/countries/algeria.py,sha256=5Jyvirc6ZPjwCKrzCRi941LXTctGzwCjj4BE9M4kc3s,3657
|
|
@@ -78,7 +78,8 @@ holidays/countries/eswatini.py,sha256=caNkmJoEKl0dI2q2m8ohERBnJmEN-h0WuwECwx1xQ7
|
|
|
78
78
|
holidays/countries/ethiopia.py,sha256=jPdFLNAN-0ChoKeSAkxSqLLQD-tL77OByofQfbKNaGQ,4743
|
|
79
79
|
holidays/countries/fiji.py,sha256=5qtC1xQwfFoDdYh9P3D8kfO9PJ9wlnUQ_-vO8Sf79nY,6630
|
|
80
80
|
holidays/countries/finland.py,sha256=Q6NBuFGq6pHXNKMZE7vujT7g0SkptGSFNQBBBqJruFk,6869
|
|
81
|
-
holidays/countries/france.py,sha256=
|
|
81
|
+
holidays/countries/france.py,sha256=G5seWfbbxZqLPT9u2vQKNzbxGDKURo9xgwg8jBmE0kc,8172
|
|
82
|
+
holidays/countries/french_southern_territories.py,sha256=9z0pUUqO1Q4vqOq5f6SJMXDUEi5DitlZDSdS5F3ognQ,1618
|
|
82
83
|
holidays/countries/gabon.py,sha256=p-xvQ0MHQtZ1S2VJFMVwT4edHYvg8M32WiTuowQ-fj4,4255
|
|
83
84
|
holidays/countries/georgia.py,sha256=S6jBBfoKBRvnI1wIaCX-4I3N2woYNmaeLbv_nuJKi4w,3959
|
|
84
85
|
holidays/countries/germany.py,sha256=tjrG_w-V7hqD2crJFTa33oM7qMVSQqP0nxe3QYGr7hI,9125
|
|
@@ -119,7 +120,7 @@ holidays/countries/luxembourg.py,sha256=g9UtgNTUxcWV2kbjinJHZBS1mj1z3-P-2tP0wmYz
|
|
|
119
120
|
holidays/countries/macau.py,sha256=9TVQDQohpRNDT0k6x_kfwJwf_JR3v8zFWZHKBzhOdIo,18994
|
|
120
121
|
holidays/countries/madagascar.py,sha256=CMCkJHU14cpjaiUvXy6SF-OVCjWEODyPO2Cou3THVxk,3079
|
|
121
122
|
holidays/countries/malawi.py,sha256=lvll0pWuEKNONiadJElOn_xLbxIoCUO3mAkEq9AIUNw,2169
|
|
122
|
-
holidays/countries/malaysia.py,sha256=
|
|
123
|
+
holidays/countries/malaysia.py,sha256=MVGXFfslUsY7IdK2fvpNvnYm8d4GLgxrSUSZNa4tJQ0,31200
|
|
123
124
|
holidays/countries/maldives.py,sha256=dcLbbX3rPlHH1nwedNIbLpYXiXQ44DV9JcoVlF8arBk,2942
|
|
124
125
|
holidays/countries/malta.py,sha256=uY_ozMncfmKjzjlcYh3gxWneMs9xqUr4Wtr21rDls6A,4869
|
|
125
126
|
holidays/countries/marshall_islands.py,sha256=cDGLbLvWkBSVLYUTpfVklIx7qBDWZrHhwE85ddmacME,3311
|
|
@@ -138,7 +139,8 @@ holidays/countries/nigeria.py,sha256=1FaTHoxG_HMDd7in8TjFB3UPAQjzmZX-xuNkbOsgGgE
|
|
|
138
139
|
holidays/countries/north_macedonia.py,sha256=pP2iHnu5KiGiGk2us8_vva3tVXHrsrrF04c8LI-puTg,2232
|
|
139
140
|
holidays/countries/northern_mariana_islands.py,sha256=huPjXMAH357EnkMrn1BXFbzWKUxcTilZTPUf2fSoua0,1540
|
|
140
141
|
holidays/countries/norway.py,sha256=_XL54nMTF0Iq1s10Eb58r8hEpyh-FBpTJ3oHjyJuGaE,3453
|
|
141
|
-
holidays/countries/
|
|
142
|
+
holidays/countries/oman.py,sha256=BHvVSzYhvzgT6tsDuFJ8o4DwndGGPjJs4vUJdHEHxJc,5366
|
|
143
|
+
holidays/countries/pakistan.py,sha256=z2yFkVLZr2vI9f8tcBf4fNu39ommEFze0pOS30LOj_w,5939
|
|
142
144
|
holidays/countries/palau.py,sha256=QBriZmcJWSRAT5e0LOMYJBzfRS05vGhwN0gK09O5I9Q,4782
|
|
143
145
|
holidays/countries/panama.py,sha256=hCRtagp405drN4SYxCKTFJB-yxkjQtmnb5Os7pYS4qU,4525
|
|
144
146
|
holidays/countries/papua_new_guinea.py,sha256=GFbxsyPq0UNrp5nU5ze_QzilXQmvg9nBEAZ3gLfgjjs,7600
|
|
@@ -158,16 +160,18 @@ holidays/countries/san_marino.py,sha256=wgHAwl4gKQDR16gROBT3EHfZDjpePovRo0_YNiAV
|
|
|
158
160
|
holidays/countries/saudi_arabia.py,sha256=emVgGHS0J_TLQ7fFno3-GaSY8jmGSrh7O4E7V9CKRGY,4914
|
|
159
161
|
holidays/countries/serbia.py,sha256=BTWjmAPjFJTSTav4FrX3xfpK0pACHi4dC2P_BCWqmyw,2841
|
|
160
162
|
holidays/countries/seychelles.py,sha256=Ku3DoPCWXk43rk3mzWlk3tJPvCICoZf6Cbgi7-2sRaY,6220
|
|
163
|
+
holidays/countries/sierra_leone.py,sha256=9IUUNwdVadM9kUGmDYBqoOOpVlSm_qSgWRp2MfbkTjc,4664
|
|
161
164
|
holidays/countries/singapore.py,sha256=QaPUoulzhFvUU7ag9IzIaYtQCI8DFjr4aEpd3lbca3k,9718
|
|
162
165
|
holidays/countries/slovakia.py,sha256=30lP3P7dlRKjtd-gzLTUJ2qd_g8GnWaZQd7RdJfEv5c,4176
|
|
163
166
|
holidays/countries/slovenia.py,sha256=ukOntt4DRL4kbRrFOnsMEF3MXiQ1TseB5dK9GsRjquM,4754
|
|
164
167
|
holidays/countries/south_africa.py,sha256=YCO6atw6UEs5mI3mqaB-Wfz6g-bxMkKgmQaK04KFCWU,5741
|
|
165
|
-
holidays/countries/south_korea.py,sha256=
|
|
168
|
+
holidays/countries/south_korea.py,sha256=8AXZJZqmZQJOzwJoaew9Xp7UEP9Pveq_iUYhc9MrXLs,24796
|
|
166
169
|
holidays/countries/spain.py,sha256=NtF2Xws9LLmACdHfJ4iCCq7Ld-C_-DtDZTCPJ7ulQ5E,28263
|
|
167
170
|
holidays/countries/sri_lanka.py,sha256=tyMX7CLXJaeyrgPLaNYj_GKJUX0zfADoSEj3ZtuHOwI,19225
|
|
171
|
+
holidays/countries/suriname.py,sha256=QlDE4JVg65DE0csi4ScwD_yLro5qPWBkOXOqts2YEyk,7314
|
|
168
172
|
holidays/countries/sweden.py,sha256=q_nX32hX8KUNadXyMUtS9AcxwR8YlTi_fv1zWwtxxTI,4161
|
|
169
173
|
holidays/countries/switzerland.py,sha256=Nc71wqR1tLs94lbU2phNnvSfzd2bMZc9LU8pY49-TAU,16170
|
|
170
|
-
holidays/countries/taiwan.py,sha256=
|
|
174
|
+
holidays/countries/taiwan.py,sha256=OhWOPhFCQpiNkIIUoVCKgFa5QrKthEI5EqM8SC1XgkM,15540
|
|
171
175
|
holidays/countries/tanzania.py,sha256=bCxBsQoaghtUpGdw0Z68qfC_IfwyXV5yZ5a_S7odgtg,10597
|
|
172
176
|
holidays/countries/thailand.py,sha256=-AQceQupfyZUvvlajKZdluJRIpCY8l8VeJjTaxC5vcU,56988
|
|
173
177
|
holidays/countries/timor_leste.py,sha256=Qxey2BmxVOzEEZdRVbgXt4ejaxHTzQna3iKbFIZh-7g,20337
|
|
@@ -205,7 +209,7 @@ holidays/groups/eastern.py,sha256=jzWBn64xYz6IOIIEVUvBglwkJqTLbLb8hY5kmUz996E,15
|
|
|
205
209
|
holidays/groups/hebrew.py,sha256=YQyng6F-b83odO13L3MRR7tZ103YYSUi7nb-jzbPXHc,5622
|
|
206
210
|
holidays/groups/hindu.py,sha256=R0i7o-w7jfnYhKjp3te_mIP6TlScMjD2W5TZX0mUAuU,11840
|
|
207
211
|
holidays/groups/international.py,sha256=R9aflnCeo-r0quRL6J9K4utYdcEjKUlrgrEYOcrumMI,7948
|
|
208
|
-
holidays/groups/islamic.py,sha256=
|
|
212
|
+
holidays/groups/islamic.py,sha256=NIAqn6_izYb7YSQgFjyP91otjR9AuAd2bRfdOAd8XBg,14821
|
|
209
213
|
holidays/groups/persian.py,sha256=c32wO9-VC4qW2TUFhkX6I6ZVF9AViBgCHUl9ihxmexk,6588
|
|
210
214
|
holidays/groups/sinhala.py,sha256=TPDwNFR4PEPNSFlWujtF7Ee0DvS4pCOOAJFnFje0Hsg,6606
|
|
211
215
|
holidays/groups/thai.py,sha256=qo0E19V3vUDc4LIs_q7VZ9HMtKd-eJXAFqdLXNVuPWE,6657
|
|
@@ -220,6 +224,7 @@ holidays/locale/ar/LC_MESSAGES/ET.mo,sha256=pxOC5bZYlYSMLw_6O7h3aBav-uY1nsdjxFwJ
|
|
|
220
224
|
holidays/locale/ar/LC_MESSAGES/JO.mo,sha256=a6x12Orr-KGfQnPSEWSSlZWzADdb6PrH4QYdmQyJT48,389
|
|
221
225
|
holidays/locale/ar/LC_MESSAGES/KW.mo,sha256=9_5BxSgvUsG9UFVj_tl8PUeUVQ9wvVHgzkAQ2CYgu80,383
|
|
222
226
|
holidays/locale/ar/LC_MESSAGES/MA.mo,sha256=p74t945Btghp9axT83yGRMhDKlK1sXKwDNKVc2DbLN8,428
|
|
227
|
+
holidays/locale/ar/LC_MESSAGES/OM.mo,sha256=G283_f8rGt0PCJHB7rSpx9HiOKtoLXp2PlGUWJc4kVc,416
|
|
223
228
|
holidays/locale/ar/LC_MESSAGES/SA.mo,sha256=5fOoS2PFDBM9HGPVYncNa6weYi0Qu1CXaVcDwoGZTBw,536
|
|
224
229
|
holidays/locale/ar/LC_MESSAGES/TN.mo,sha256=oHMVRGOsNlIvKngaSjaM5Balf2-21Pd4IQpv_Yk7sUo,428
|
|
225
230
|
holidays/locale/ar/LC_MESSAGES/UA.mo,sha256=YVvhdivJfhG-cD-nYBYNdXkwj_Fla6j8Cyo-56OVR2k,2714
|
|
@@ -257,6 +262,7 @@ holidays/locale/en_PH/LC_MESSAGES/PH.mo,sha256=EDjOw4W0uh9gUYNzopx-jE4JKOBJw-_5d
|
|
|
257
262
|
holidays/locale/en_PK/LC_MESSAGES/PK.mo,sha256=S6HOEpBi1IWpKLh9RkCCIxhHhcOsoc7z1WatAk3KBm0,446
|
|
258
263
|
holidays/locale/en_SC/LC_MESSAGES/SC.mo,sha256=wXJIFSBjHxrNNLfpaVlWMjoAI1OSvgAjsyg4-j24xrQ,456
|
|
259
264
|
holidays/locale/en_SG/LC_MESSAGES/SG.mo,sha256=b9j0BOsto6GdHSECHBj6HhLW-kJPF7P39A9_4JbN3hw,410
|
|
265
|
+
holidays/locale/en_SL/LC_MESSAGES/SL.mo,sha256=Ni8gdtRU6f19E-Lu1o64HMC6C3m-7colpW1op_uD8Js,1137
|
|
260
266
|
holidays/locale/en_TL/LC_MESSAGES/TL.mo,sha256=58TTCamnTgxQ2zJpVt1XMEUqPrLxhbk4rr0P4x1bhKk,2962
|
|
261
267
|
holidays/locale/en_US/LC_MESSAGES/AE.mo,sha256=Vtr0w43j9-Ew2gaNKCfBSZQOTE-QO8DSa03k2RifxKE,1296
|
|
262
268
|
holidays/locale/en_US/LC_MESSAGES/AF.mo,sha256=V3zbNLxjz6d35Fu22_qDnBVZ7aLVjOs6-zruN0Jv3uk,1347
|
|
@@ -345,10 +351,11 @@ holidays/locale/en_US/LC_MESSAGES/MZ.mo,sha256=X5Hncuw3A2rxxy4g3l6nsUk96VN2FuQL8
|
|
|
345
351
|
holidays/locale/en_US/LC_MESSAGES/NI.mo,sha256=DhSFKm-cL_0ovUHiDP91HR11tnh0fy65Rk6e9fyQH6A,1077
|
|
346
352
|
holidays/locale/en_US/LC_MESSAGES/NL.mo,sha256=Q3o9O74ojkAlHWJ57p1xU2wAkRRFCG1QLAEPGYimy-g,1001
|
|
347
353
|
holidays/locale/en_US/LC_MESSAGES/NO.mo,sha256=7jQFZg42tZeIBHlLtQi9PZ9m1Zf851ML8aTcgLL9C4Q,1046
|
|
354
|
+
holidays/locale/en_US/LC_MESSAGES/OM.mo,sha256=sCj6t38mIqxqn4e-604UjjQH2PhAoM6yDz2n07D3rI4,960
|
|
348
355
|
holidays/locale/en_US/LC_MESSAGES/PA.mo,sha256=Ob8_PfnH6vjBjECoyCRp5LVATvDXb7DF2YaCy97GiIs,1339
|
|
349
356
|
holidays/locale/en_US/LC_MESSAGES/PE.mo,sha256=suUHWKK49VSHe5K8jrUEl5r7ZU8zFWnehzEcf55R_nE,1263
|
|
350
357
|
holidays/locale/en_US/LC_MESSAGES/PH.mo,sha256=YAAjucLRjeoLa6gjMgODdNaWmhYSakTsPoJubgZv4lw,1785
|
|
351
|
-
holidays/locale/en_US/LC_MESSAGES/PK.mo,sha256=
|
|
358
|
+
holidays/locale/en_US/LC_MESSAGES/PK.mo,sha256=vYUUT9IhJatuQrGiZtWwCAC2HmzPAG5-9hGqfXPaCuY,978
|
|
352
359
|
holidays/locale/en_US/LC_MESSAGES/PL.mo,sha256=o50bJh4kd2M1MbVzHkq9GGsZOBACupeI1hSrZDWkFgc,1927
|
|
353
360
|
holidays/locale/en_US/LC_MESSAGES/PT.mo,sha256=qHppTp3rmF-P61fflyD1geSCds6sUGdi-9p-fdAakzQ,2924
|
|
354
361
|
holidays/locale/en_US/LC_MESSAGES/PY.mo,sha256=rxIu5ToSL1lff5uDdcrqp9jy1ipU_JLCx1Y3fcDft-k,1317
|
|
@@ -362,7 +369,10 @@ holidays/locale/en_US/LC_MESSAGES/SE.mo,sha256=wIAzFZtHmVevp3JNqW-PCA6vKoKg45eyJ
|
|
|
362
369
|
holidays/locale/en_US/LC_MESSAGES/SG.mo,sha256=Ozjxyq2Jh3dr_kJvziRE1_QHW-U6bOOhhWcH1NXVZg4,1166
|
|
363
370
|
holidays/locale/en_US/LC_MESSAGES/SI.mo,sha256=uANoUoyEFr22l-NYgHarp2CIM1iBFnov-M5iCJSgZ2Q,1838
|
|
364
371
|
holidays/locale/en_US/LC_MESSAGES/SK.mo,sha256=qGAr2_NJP16kd6481_VRvMlqEdJdZV6G2AQCQ6g7JIg,1842
|
|
372
|
+
holidays/locale/en_US/LC_MESSAGES/SL.mo,sha256=8qJN5WmBbgZYkz2Or47QmfgSchoYojRPAAlgtdGfgv0,1120
|
|
373
|
+
holidays/locale/en_US/LC_MESSAGES/SR.mo,sha256=TuqUiTJ_o-ibeXVoutG6uaXCXPQ_czsQnBXhwYvy2IA,1398
|
|
365
374
|
holidays/locale/en_US/LC_MESSAGES/SV.mo,sha256=JpfJ1kRWJiEERmPyV6ejakv6nz_Jx6F_Grnv6QmF8X8,1011
|
|
375
|
+
holidays/locale/en_US/LC_MESSAGES/TF.mo,sha256=WuccWjDIs3G-a8D8FBGiQRLDewGET0lkqHYbYH4RtyY,454
|
|
366
376
|
holidays/locale/en_US/LC_MESSAGES/TH.mo,sha256=Q3n0pWYl6PZQbDcEIuXgvGhZcmJOLz2XGanyeLx20iY,10628
|
|
367
377
|
holidays/locale/en_US/LC_MESSAGES/TL.mo,sha256=SuxPn84ipOWu0G6nNr25HHxDpo_W83JUXcMunsOepFs,2995
|
|
368
378
|
holidays/locale/en_US/LC_MESSAGES/TN.mo,sha256=89l6SwKDPR8ItGqCcSrJqvH3f-i0X3uyJg2v9F60HOQ,1374
|
|
@@ -415,6 +425,7 @@ holidays/locale/fr/LC_MESSAGES/GN.mo,sha256=IvD9_tXx0j9fC2y_eGrZ23puaFGzOOhFJe52
|
|
|
415
425
|
holidays/locale/fr/LC_MESSAGES/LU.mo,sha256=gs36JyGFDWpC9UZd8v9aWAtH1ErXvqPkLvq-Z-6BwK0,953
|
|
416
426
|
holidays/locale/fr/LC_MESSAGES/MA.mo,sha256=NJr2ovWjQJrJFsGRkEhbRy66ug4BYPqn4rhdowdBy38,1476
|
|
417
427
|
holidays/locale/fr/LC_MESSAGES/MC.mo,sha256=w75EpxpTdC8fBPTvuNoqm0bkuzE24MwOEk82kbibcHk,450
|
|
428
|
+
holidays/locale/fr/LC_MESSAGES/TF.mo,sha256=HjGLSIJ-MNM_XDJh1aS9pH4q7K0J6pnHeNNquH7lzSI,450
|
|
418
429
|
holidays/locale/fr_HT/LC_MESSAGES/HT.mo,sha256=Wmoa6lN5NqsnStzzZmvRElbpDv-wqBf1DUZuHGibY4Q,412
|
|
419
430
|
holidays/locale/fy/LC_MESSAGES/NL.mo,sha256=W-6QE1mDp0HdzjeKKMIPpit7polGHpYQnWQf64r1Yps,944
|
|
420
431
|
holidays/locale/he/LC_MESSAGES/IL.mo,sha256=K8fn0Js9AKmWTFdSLvfHgU4qVm344xbtSfQdD_CLoqQ,408
|
|
@@ -446,6 +457,7 @@ holidays/locale/nl/LC_MESSAGES/AW.mo,sha256=p1xHj0JY_Fg5lm6PNWgZox54S-ZYnCyR908J
|
|
|
446
457
|
holidays/locale/nl/LC_MESSAGES/BE.mo,sha256=jqCqBMIcv3LWUZVHYZC46332MGE8KGT9-tNGlk6MIE0,451
|
|
447
458
|
holidays/locale/nl/LC_MESSAGES/CW.mo,sha256=u9Lv_bywGR93B4KhF_Isl9L8geUkA8M_6TxK_Wg4oSw,1190
|
|
448
459
|
holidays/locale/nl/LC_MESSAGES/NL.mo,sha256=CiT3ofC5_g2djvs8Ancunm3GM4JPj_LhCyBwkHOF_sY,454
|
|
460
|
+
holidays/locale/nl/LC_MESSAGES/SR.mo,sha256=xpJLB10q8pGxqh9iKVTM5d0_RePGbA-orzyp6XgP5-E,415
|
|
449
461
|
holidays/locale/no/LC_MESSAGES/GL.mo,sha256=NtyBoa4z7yLBRJeOLI8v63PC8Vgl5jD8V6m5nD6NCMk,1170
|
|
450
462
|
holidays/locale/no/LC_MESSAGES/NO.mo,sha256=FfYkyJlurVB73HHEM37ua3AsMoYpZqnJMm-f2QmUGmg,454
|
|
451
463
|
holidays/locale/pap_AW/LC_MESSAGES/AW.mo,sha256=QylNHN_NrXfdLOCnHo2mb3wmA6_NyZwYhYtBdEnT7dE,439
|
|
@@ -570,12 +582,13 @@ holidays/locale/uk/LC_MESSAGES/SE.mo,sha256=3uZs7a8WPWsonaX5JhQmrl1NUYnvS3wjRrGx
|
|
|
570
582
|
holidays/locale/uk/LC_MESSAGES/SI.mo,sha256=Qzt8XKHRkk5LJlaXdjj7GSRMan4FlK5soACDBqCM4qY,2378
|
|
571
583
|
holidays/locale/uk/LC_MESSAGES/SK.mo,sha256=aVEHnYZvTUsP6OrGO5xwBZMq1LiIMpewbBS-e5v7CYU,2346
|
|
572
584
|
holidays/locale/uk/LC_MESSAGES/SV.mo,sha256=KvWwTiPd_9yevjAcq7s0C-U80au3rkv_RXIDaftGILY,1183
|
|
585
|
+
holidays/locale/uk/LC_MESSAGES/TF.mo,sha256=BRwnnVa59Tt9RBVR0_MkcHGTkgv25wwW59EYDvEJ0SQ,522
|
|
573
586
|
holidays/locale/uk/LC_MESSAGES/TR.mo,sha256=WCXBbKvpu-it9RExKU3UHVvgvry480j-Jq7rZHoZjBE,1739
|
|
574
587
|
holidays/locale/uk/LC_MESSAGES/UA.mo,sha256=1dr9fbmzXjnrnt-Buh_9jzOmx-IkLu1zzdKsTWHyfMw,524
|
|
575
588
|
holidays/locale/uk/LC_MESSAGES/UY.mo,sha256=14_npmpHsOCAZ3ol57zP4f9Fc1DaoW-YJDkFwaTZLvo,2164
|
|
576
589
|
holidays/locale/uk/LC_MESSAGES/UZ.mo,sha256=nHRvXks-8vlEMEgVt3Ei3_w-Z4mxJMZ5bV4e0fmrFGA,1748
|
|
577
590
|
holidays/locale/uk/LC_MESSAGES/VE.mo,sha256=ip_XMCDwNXqT_7R9_t5ianbl7iu2PmRS4c4jbsC0b1E,1715
|
|
578
|
-
holidays/locale/ur_PK/LC_MESSAGES/PK.mo,sha256=
|
|
591
|
+
holidays/locale/ur_PK/LC_MESSAGES/PK.mo,sha256=FPi-WEPKK3mZS7xPLMTwLbYHtVqrsnGUq5OMRIrnhWA,1057
|
|
579
592
|
holidays/locale/uz/LC_MESSAGES/UZ.mo,sha256=5O47QKxV_dh_Bb8Jsv3Lgqoj9OPva3rFieKXNssWHTA,449
|
|
580
593
|
holidays/locale/vi/LC_MESSAGES/VN.mo,sha256=3A4sBnBqOXorndGZbQRqUTc9EfSWWnKWa7xOVmLMYuo,405
|
|
581
594
|
holidays/locale/zh_CN/LC_MESSAGES/CN.mo,sha256=ROEeCOVnJJxE2lfNTn3z5pwDVH1suMxRKqtwez9VzAo,449
|
|
@@ -586,9 +599,9 @@ holidays/locale/zh_HK/LC_MESSAGES/HK.mo,sha256=_Nwd_IMHUzHPC-vopo6cbEo7FGPotCtFL
|
|
|
586
599
|
holidays/locale/zh_MO/LC_MESSAGES/MO.mo,sha256=ps2VMwzoqTU317yi3NEihe4cNtvmaugwXPgyWKSISs0,410
|
|
587
600
|
holidays/locale/zh_TW/LC_MESSAGES/CN.mo,sha256=yqymDo7GRcAmwr-k4fIuZb_hXvsI22_oSZE_iMN3vK4,1293
|
|
588
601
|
holidays/locale/zh_TW/LC_MESSAGES/TW.mo,sha256=GskGT7DqRqwMzj76OsLv5SzGikBsMMzQq1QybuSrCdE,447
|
|
589
|
-
holidays-0.
|
|
590
|
-
holidays-0.
|
|
591
|
-
holidays-0.
|
|
592
|
-
holidays-0.
|
|
593
|
-
holidays-0.
|
|
594
|
-
holidays-0.
|
|
602
|
+
holidays-0.71.dist-info/licenses/AUTHORS.md,sha256=JNJfsgzVpQ8X263u10T233aopGyf8NTUkph-WumF03I,2339
|
|
603
|
+
holidays-0.71.dist-info/licenses/LICENSE,sha256=hgoRONdtoJWx9anY3GMt1m8Aq7dzhsd30fcSdmAoUak,1244
|
|
604
|
+
holidays-0.71.dist-info/METADATA,sha256=ilUa1RsUv1o7mLAVJbxZrnZrJ6z2ufbMztAB4lU4ySA,34868
|
|
605
|
+
holidays-0.71.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
|
606
|
+
holidays-0.71.dist-info/top_level.txt,sha256=VbGrOCSM-V2kztuL_7CoDKLOgzOc85ueFsng7VYerrQ,9
|
|
607
|
+
holidays-0.71.dist-info/RECORD,,
|
|
@@ -83,6 +83,7 @@ Kelsey Karin Hawley
|
|
|
83
83
|
Koert van der Veer
|
|
84
84
|
Koki Nomura
|
|
85
85
|
Kriti Birda
|
|
86
|
+
Lucca Augusto
|
|
86
87
|
Maina Kamau
|
|
87
88
|
Malthe Borch
|
|
88
89
|
Marek Šuppa
|
|
@@ -126,12 +127,14 @@ Robin Emeršič
|
|
|
126
127
|
Roshan Pradhan
|
|
127
128
|
Ryan McCrory
|
|
128
129
|
Sam Tregar
|
|
130
|
+
Samman Sarkar
|
|
129
131
|
Santiago Feliu
|
|
130
132
|
Sergi Almacellas Abellana
|
|
131
133
|
Sergio Mayoral Martinez
|
|
132
134
|
Serhii Murza
|
|
133
135
|
Shaurya Uppal
|
|
134
136
|
Sho Hirose
|
|
137
|
+
Shreyansh Pande
|
|
135
138
|
Simon Gurcke
|
|
136
139
|
Sugato Ray
|
|
137
140
|
Sylvain Pasche
|
|
File without changes
|
|
File without changes
|