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.
Files changed (33) hide show
  1. holidays/countries/__init__.py +4 -0
  2. holidays/countries/france.py +1 -1
  3. holidays/countries/french_southern_territories.py +53 -0
  4. holidays/countries/malaysia.py +5 -1
  5. holidays/countries/oman.py +185 -0
  6. holidays/countries/pakistan.py +7 -0
  7. holidays/countries/sierra_leone.py +149 -0
  8. holidays/countries/south_korea.py +14 -15
  9. holidays/countries/suriname.py +227 -0
  10. holidays/countries/taiwan.py +2 -1
  11. holidays/groups/islamic.py +10 -0
  12. holidays/holiday_base.py +31 -5
  13. holidays/locale/ar/LC_MESSAGES/OM.mo +0 -0
  14. holidays/locale/en_SL/LC_MESSAGES/SL.mo +0 -0
  15. holidays/locale/en_US/LC_MESSAGES/OM.mo +0 -0
  16. holidays/locale/en_US/LC_MESSAGES/PK.mo +0 -0
  17. holidays/locale/en_US/LC_MESSAGES/SL.mo +0 -0
  18. holidays/locale/en_US/LC_MESSAGES/SR.mo +0 -0
  19. holidays/locale/en_US/LC_MESSAGES/TF.mo +0 -0
  20. holidays/locale/fr/LC_MESSAGES/TF.mo +0 -0
  21. holidays/locale/nl/LC_MESSAGES/SR.mo +0 -0
  22. holidays/locale/uk/LC_MESSAGES/TF.mo +0 -0
  23. holidays/locale/ur_PK/LC_MESSAGES/PK.mo +0 -0
  24. holidays/observed_holiday_base.py +5 -1
  25. holidays/registry.py +4 -0
  26. holidays/utils.py +60 -8
  27. holidays/version.py +1 -1
  28. {holidays-0.70.dist-info → holidays-0.71.dist-info}/METADATA +30 -2
  29. {holidays-0.70.dist-info → holidays-0.71.dist-info}/RECORD +33 -20
  30. {holidays-0.70.dist-info → holidays-0.71.dist-info}/WHEEL +1 -1
  31. {holidays-0.70.dist-info → holidays-0.71.dist-info}/licenses/AUTHORS.md +3 -0
  32. {holidays-0.70.dist-info → holidays-0.71.dist-info}/licenses/LICENSE +0 -0
  33. {holidays-0.70.dist-info → holidays-0.71.dist-info}/top_level.txt +0 -0
@@ -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
@@ -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
@@ -10,7 +10,11 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- from datetime import date
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
+ }
@@ -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 and (self._year - 2007) % 5 == 0:
241
+ if self._year >= 2007:
242
242
  # Presidential Election Day.
243
243
  name = tr("대통령 선거일")
244
-
245
- if self._year <= 2012:
246
- self._add_holiday_3rd_wed_of_dec(name)
247
- elif self._year >= 2022:
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
- else:
257
- self._add_holiday_1st_wed_of_mar(name)
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
- # Added to create a 6-day long holiday period.
614
- 2025: (JAN, 27, temporary_public_holiday),
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
@@ -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
@@ -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
- The language which the returned holiday names will be translated
294
- into. It must be an ISO 639-1 (2-letter) language code. If the
295
- language translation is not supported the original holiday names
296
- will be used.
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, observed_rule: ObservedRule = None, observed_since: int = None, *args, **kwargs
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
- The language which the returned holiday names will be translated
75
- into. It must be an ISO 639-1 (2-letter) language code. If the
76
- language translation is not supported the original holiday names
77
- will be used.
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
- The language which the returned holiday names will be translated
239
- into. It must be an ISO 639-1 (2-letter) language code. If the
240
- language translation is not supported the original holiday names
241
- will be used.
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
@@ -10,4 +10,4 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- __version__ = "0.70"
13
+ __version__ = "0.71"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holidays
3
- Version: 0.70
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 165 country codes. The standard way to refer to a country is by using its [ISO
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=g17keFDHmCtvGIfQrI8mT5K0mOJ_5RQIPgoJN-oo1u0,53288
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=fhpChd0iyLRMm7VmUc5xw-HxBGY8x3uOHeGng4GCEYE,9072
7
+ holidays/observed_holiday_base.py,sha256=21X5uPDu8KdRV6rD13Gic_mAKXGeHJ5VIok0bvCBYpU,9125
8
8
  holidays/py.typed,sha256=EUaxvGLCfdycmOVEDt64l9fUKWuyPBxOEQWGfnMnrxE,171
9
- holidays/registry.py,sha256=ycSWUNK3YCDevJpQz0FWNnaHF1539amOCAG-cD0MMVI,12292
10
- holidays/utils.py,sha256=s-xTYu2cpaPF2b1svDhtqhi4me-GaNlvLFhkZWJpwDg,12985
11
- holidays/version.py,sha256=ZgoeQWP784JpxhsyqEoZIX4i-Yzoj7_M39E57VUpZzA,551
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=4yIFyNgayoqGVKKfhjfa0VD1VHZ31TZyx-pU3IIkYMo,7403
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=XG3lMBHApWLxUp46DAeQFlxXR5-DyeNzdpfAeccAraU,8155
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=dFWT1gDby453XaOE65wxp9cvIWkwr-GpCuh-HUOMW3s,31123
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/pakistan.py,sha256=Hk4tNHa6AA4yauYyJsdQCotLKlE8xFh7_q7N5J230Fg,5573
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=nyL1Dx0sZwtxXVV2K_5g91EqUhWZRyCE_DWpaBETNLQ,24715
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=KyPWzCgBhSEHSB2gmemyusf1Hmm3fRurkmXhLtCW8O4,15502
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=TyV3E-lST8gf6tVLq4q9JekwUH4iAIMySe-HpAOZqS0,14506
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=8MQhZ3KgKpwI49iTD9yGcGuKE8wTTcYS6wxB7SxGthY,932
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=2-rQIwOfoIF6cZGOtkS4rHBpYdpG6SNcvVpujq1EcVI,1008
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.70.dist-info/licenses/AUTHORS.md,sha256=74RiQju09Sj8SVzxfv2VVIJbAiigwLxBihsiKLjtSus,2295
590
- holidays-0.70.dist-info/licenses/LICENSE,sha256=hgoRONdtoJWx9anY3GMt1m8Aq7dzhsd30fcSdmAoUak,1244
591
- holidays-0.70.dist-info/METADATA,sha256=uEUfL27fQuZwpVGpqjgWg5EbUoCXaIlb4dmyNL9hkPo,34454
592
- holidays-0.70.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
593
- holidays-0.70.dist-info/top_level.txt,sha256=VbGrOCSM-V2kztuL_7CoDKLOgzOc85ueFsng7VYerrQ,9
594
- holidays-0.70.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (79.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -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