holidays 0.74__py3-none-any.whl → 0.75__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 (220) hide show
  1. holidays/calendars/__init__.py +1 -1
  2. holidays/calendars/balinese_saka.py +1 -1
  3. holidays/calendars/hindu.py +26 -26
  4. holidays/calendars/islamic.py +161 -0
  5. holidays/calendars/thai.py +2 -2
  6. holidays/constants.py +1 -1
  7. holidays/countries/__init__.py +202 -182
  8. holidays/countries/afghanistan.py +2 -2
  9. holidays/countries/albania.py +3 -3
  10. holidays/countries/algeria.py +3 -3
  11. holidays/countries/andorra.py +1 -1
  12. holidays/countries/angola.py +11 -11
  13. holidays/countries/anguilla.py +175 -0
  14. holidays/countries/antigua_and_barbuda.py +10 -10
  15. holidays/countries/argentina.py +106 -103
  16. holidays/countries/armenia.py +2 -2
  17. holidays/countries/aruba.py +7 -7
  18. holidays/countries/australia.py +18 -18
  19. holidays/countries/azerbaijan.py +13 -13
  20. holidays/countries/bahamas.py +9 -9
  21. holidays/countries/bahrain.py +3 -3
  22. holidays/countries/bangladesh.py +1 -1
  23. holidays/countries/barbados.py +7 -7
  24. holidays/countries/belarus.py +9 -9
  25. holidays/countries/belgium.py +2 -2
  26. holidays/countries/belize.py +3 -3
  27. holidays/countries/benin.py +1 -1
  28. holidays/countries/bermuda.py +32 -21
  29. holidays/countries/bolivia.py +8 -8
  30. holidays/countries/bosnia_and_herzegovina.py +4 -4
  31. holidays/countries/botswana.py +4 -4
  32. holidays/countries/brazil.py +4 -4
  33. holidays/countries/brunei.py +43 -43
  34. holidays/countries/bulgaria.py +3 -3
  35. holidays/countries/burkina_faso.py +1 -1
  36. holidays/countries/burundi.py +2 -2
  37. holidays/countries/cambodia.py +6 -6
  38. holidays/countries/cameroon.py +3 -3
  39. holidays/countries/canada.py +9 -9
  40. holidays/countries/chad.py +2 -2
  41. holidays/countries/chile.py +7 -7
  42. holidays/countries/china.py +31 -31
  43. holidays/countries/cocos_islands.py +6 -6
  44. holidays/countries/colombia.py +7 -7
  45. holidays/countries/congo.py +2 -2
  46. holidays/countries/cook_islands.py +148 -0
  47. holidays/countries/costa_rica.py +1 -1
  48. holidays/countries/croatia.py +1 -1
  49. holidays/countries/cuba.py +9 -9
  50. holidays/countries/curacao.py +1 -1
  51. holidays/countries/cyprus.py +1 -1
  52. holidays/countries/czechia.py +3 -3
  53. holidays/countries/denmark.py +2 -2
  54. holidays/countries/djibouti.py +1 -1
  55. holidays/countries/dominica.py +11 -11
  56. holidays/countries/dominican_republic.py +1 -1
  57. holidays/countries/ecuador.py +1 -1
  58. holidays/countries/egypt.py +1 -1
  59. holidays/countries/el_salvador.py +3 -3
  60. holidays/countries/eswatini.py +3 -3
  61. holidays/countries/ethiopia.py +5 -5
  62. holidays/countries/fiji.py +12 -12
  63. holidays/countries/france.py +1 -1
  64. holidays/countries/french_southern_territories.py +1 -5
  65. holidays/countries/gabon.py +4 -4
  66. holidays/countries/georgia.py +2 -2
  67. holidays/countries/germany.py +3 -3
  68. holidays/countries/ghana.py +2 -2
  69. holidays/countries/greece.py +1 -1
  70. holidays/countries/greenland.py +2 -2
  71. holidays/countries/grenada.py +1 -1
  72. holidays/countries/guatemala.py +4 -4
  73. holidays/countries/guernsey.py +31 -31
  74. holidays/countries/guinea.py +6 -6
  75. holidays/countries/guyana.py +279 -0
  76. holidays/countries/haiti.py +3 -3
  77. holidays/countries/honduras.py +2 -2
  78. holidays/countries/hongkong.py +4 -4
  79. holidays/countries/hungary.py +98 -16
  80. holidays/countries/iceland.py +1 -1
  81. holidays/countries/india.py +8 -8
  82. holidays/countries/indonesia.py +46 -46
  83. holidays/countries/iran.py +2 -2
  84. holidays/countries/ireland.py +1 -1
  85. holidays/countries/ivory_coast.py +5 -5
  86. holidays/countries/jamaica.py +1 -1
  87. holidays/countries/japan.py +1 -1
  88. holidays/countries/jersey.py +23 -23
  89. holidays/countries/jordan.py +3 -3
  90. holidays/countries/kazakhstan.py +45 -45
  91. holidays/countries/kenya.py +13 -13
  92. holidays/countries/kuwait.py +4 -4
  93. holidays/countries/kyrgyzstan.py +1 -1
  94. holidays/countries/laos.py +7 -7
  95. holidays/countries/latvia.py +2 -2
  96. holidays/countries/lesotho.py +2 -2
  97. holidays/countries/liechtenstein.py +1 -1
  98. holidays/countries/lithuania.py +1 -1
  99. holidays/countries/macau.py +19 -19
  100. holidays/countries/madagascar.py +2 -2
  101. holidays/countries/malawi.py +2 -2
  102. holidays/countries/malaysia.py +6 -6
  103. holidays/countries/maldives.py +3 -3
  104. holidays/countries/malta.py +6 -6
  105. holidays/countries/marshall_islands.py +2 -2
  106. holidays/countries/mauritania.py +2 -2
  107. holidays/countries/mexico.py +3 -3
  108. holidays/countries/micronesia.py +205 -0
  109. holidays/countries/monaco.py +1 -1
  110. holidays/countries/montenegro.py +3 -3
  111. holidays/countries/morocco.py +3 -3
  112. holidays/countries/namibia.py +85 -26
  113. holidays/countries/nauru.py +129 -0
  114. holidays/countries/nepal.py +16 -16
  115. holidays/countries/netherlands.py +1 -1
  116. holidays/countries/new_zealand.py +2 -2
  117. holidays/countries/nicaragua.py +2 -2
  118. holidays/countries/niger.py +320 -0
  119. holidays/countries/nigeria.py +1 -1
  120. holidays/countries/north_macedonia.py +2 -2
  121. holidays/countries/norway.py +37 -4
  122. holidays/countries/oman.py +12 -12
  123. holidays/countries/pakistan.py +7 -7
  124. holidays/countries/palau.py +7 -7
  125. holidays/countries/panama.py +5 -5
  126. holidays/countries/papua_new_guinea.py +15 -15
  127. holidays/countries/paraguay.py +6 -6
  128. holidays/countries/peru.py +1 -1
  129. holidays/countries/philippines.py +18 -18
  130. holidays/countries/poland.py +1 -1
  131. holidays/countries/portugal.py +5 -5
  132. holidays/countries/qatar.py +7 -7
  133. holidays/countries/romania.py +1 -1
  134. holidays/countries/russia.py +28 -28
  135. holidays/countries/saint_kitts_and_nevis.py +16 -16
  136. holidays/countries/saint_lucia.py +3 -3
  137. holidays/countries/samoa.py +3 -3
  138. holidays/countries/sao_tome_and_principe.py +2 -2
  139. holidays/countries/saudi_arabia.py +3 -3
  140. holidays/countries/senegal.py +193 -0
  141. holidays/countries/seychelles.py +15 -15
  142. holidays/countries/sierra_leone.py +5 -5
  143. holidays/countries/singapore.py +12 -8
  144. holidays/countries/slovakia.py +1 -1
  145. holidays/countries/slovenia.py +2 -2
  146. holidays/countries/solomon_islands.py +220 -0
  147. holidays/countries/south_africa.py +4 -4
  148. holidays/countries/south_korea.py +7 -7
  149. holidays/countries/spain.py +18 -18
  150. holidays/countries/sri_lanka.py +26 -26
  151. holidays/countries/suriname.py +5 -5
  152. holidays/countries/svalbard_and_jan_mayen.py +47 -0
  153. holidays/countries/sweden.py +1 -1
  154. holidays/countries/switzerland.py +1 -1
  155. holidays/countries/taiwan.py +41 -41
  156. holidays/countries/tanzania.py +15 -15
  157. holidays/countries/thailand.py +83 -83
  158. holidays/countries/timor_leste.py +106 -104
  159. holidays/countries/togo.py +1 -1
  160. holidays/countries/tonga.py +16 -16
  161. holidays/countries/trinidad_and_tobago.py +3 -3
  162. holidays/countries/tunisia.py +1 -1
  163. holidays/countries/turkey.py +4 -4
  164. holidays/countries/turks_and_caicos_islands.py +134 -0
  165. holidays/countries/tuvalu.py +6 -6
  166. holidays/countries/ukraine.py +51 -51
  167. holidays/countries/united_arab_emirates.py +22 -22
  168. holidays/countries/united_kingdom.py +2 -2
  169. holidays/countries/united_states.py +38 -38
  170. holidays/countries/uruguay.py +6 -6
  171. holidays/countries/uzbekistan.py +3 -3
  172. holidays/countries/vanuatu.py +2 -2
  173. holidays/countries/vatican_city.py +11 -11
  174. holidays/countries/venezuela.py +8 -8
  175. holidays/countries/vietnam.py +7 -7
  176. holidays/countries/yemen.py +7 -7
  177. holidays/countries/zambia.py +3 -3
  178. holidays/deprecations/v1_incompatibility.py +1 -1
  179. holidays/financial/__init__.py +5 -5
  180. holidays/financial/brasil_bolsa_balcao.py +9 -9
  181. holidays/financial/european_central_bank.py +3 -3
  182. holidays/financial/ice_futures_europe.py +2 -2
  183. holidays/financial/ny_stock_exchange.py +4 -5
  184. holidays/groups/__init__.py +1 -1
  185. holidays/groups/islamic.py +13 -3
  186. holidays/groups/sinhala.py +12 -12
  187. holidays/groups/thai.py +3 -3
  188. holidays/locale/en_AI/LC_MESSAGES/AI.mo +0 -0
  189. holidays/locale/en_BM/LC_MESSAGES/BM.mo +0 -0
  190. holidays/locale/en_CK/LC_MESSAGES/CK.mo +0 -0
  191. holidays/locale/en_FM/LC_MESSAGES/FM.mo +0 -0
  192. holidays/locale/en_GY/LC_MESSAGES/GY.mo +0 -0
  193. holidays/locale/en_NA/LC_MESSAGES/NA.mo +0 -0
  194. holidays/locale/en_NR/LC_MESSAGES/NR.mo +0 -0
  195. holidays/locale/en_TC/LC_MESSAGES/TC.mo +0 -0
  196. holidays/locale/en_US/LC_MESSAGES/AI.mo +0 -0
  197. holidays/locale/en_US/LC_MESSAGES/BM.mo +0 -0
  198. holidays/locale/en_US/LC_MESSAGES/CK.mo +0 -0
  199. holidays/locale/en_US/LC_MESSAGES/FM.mo +0 -0
  200. holidays/locale/en_US/LC_MESSAGES/GY.mo +0 -0
  201. holidays/locale/en_US/LC_MESSAGES/NA.mo +0 -0
  202. holidays/locale/en_US/LC_MESSAGES/NE.mo +0 -0
  203. holidays/locale/en_US/LC_MESSAGES/NR.mo +0 -0
  204. holidays/locale/en_US/LC_MESSAGES/SJ.mo +0 -0
  205. holidays/locale/en_US/LC_MESSAGES/SN.mo +0 -0
  206. holidays/locale/en_US/LC_MESSAGES/TC.mo +0 -0
  207. holidays/locale/fr_NE/LC_MESSAGES/NE.mo +0 -0
  208. holidays/locale/fr_SN/LC_MESSAGES/SN.mo +0 -0
  209. holidays/locale/no/LC_MESSAGES/SJ.mo +0 -0
  210. holidays/locale/th/LC_MESSAGES/SJ.mo +0 -0
  211. holidays/locale/uk/LC_MESSAGES/NA.mo +0 -0
  212. holidays/locale/uk/LC_MESSAGES/SJ.mo +0 -0
  213. holidays/registry.py +10 -0
  214. holidays/version.py +1 -1
  215. {holidays-0.74.dist-info → holidays-0.75.dist-info}/METADATA +74 -5
  216. {holidays-0.74.dist-info → holidays-0.75.dist-info}/RECORD +220 -185
  217. {holidays-0.74.dist-info → holidays-0.75.dist-info}/licenses/CONTRIBUTORS +3 -0
  218. {holidays-0.74.dist-info → holidays-0.75.dist-info}/WHEEL +0 -0
  219. {holidays-0.74.dist-info → holidays-0.75.dist-info}/licenses/LICENSE +0 -0
  220. {holidays-0.74.dist-info → holidays-0.75.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,193 @@
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 CONTRIBUTORS 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 MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, DEC
17
+ from holidays.groups import (
18
+ ChristianHolidays,
19
+ InternationalHolidays,
20
+ IslamicHolidays,
21
+ StaticHolidays,
22
+ )
23
+ from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
24
+
25
+
26
+ class Senegal(
27
+ ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
28
+ ):
29
+ """Senegal holidays.
30
+ References:
31
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Senegal>
32
+ * [Law 63-51](https://web.archive.org/web/20250604134724/https://www.dri.gouv.sn/sites/default/files/LOI/1963/63_51.pdf)
33
+ * [Law 74-52](https://web.archive.org/web/20250608105243/https://www.dri.gouv.sn/sites/default/files/an-documents/LOI%20N1974%2052%20DU%204%20NOVEMBRE%201974.pdf)
34
+ * [Law 83-54](https://web.archive.org/web/20250608105419/https://www.dri.gouv.sn/sites/default/files/LOI/1983/comP4%20loi%20decentralisation%20et%20travail/LOI%20N%20198354%20DU%2018%20FEVRIER%201983/LOI%20N%20198354%20DU%2018%20FEVRIER%201983.pdf)
35
+ * [Law 2013-06](https://web.archive.org/web/20250604215148/https://natlex.ilo.org/dyn/natlex2/natlex2/files/download/97261/SEN-97261.pdf)
36
+ """
37
+
38
+ country = "SN"
39
+ default_language = "fr_SN"
40
+ # %s (estimated).
41
+ estimated_label = tr("%s (estimé)")
42
+ # %s (observed).
43
+ observed_label = tr("%s (observé)")
44
+ # %s (observed, estimated).
45
+ observed_estimated_label = tr("%s (observé, estimé)")
46
+ # First official source with holidays dates (Law 63-51).
47
+ start_year = 1964
48
+ supported_languages = ("en_US", "fr_SN")
49
+
50
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
51
+ """
52
+ Args:
53
+ islamic_show_estimated:
54
+ Whether to add "estimated" label to Islamic holidays name
55
+ if holiday date is estimated.
56
+ """
57
+ ChristianHolidays.__init__(self)
58
+ InternationalHolidays.__init__(self)
59
+ IslamicHolidays.__init__(
60
+ self, cls=SenegalIslamicHolidays, show_estimated=islamic_show_estimated
61
+ )
62
+ StaticHolidays.__init__(self, SenegalStaticHolidays)
63
+ # Law 74-52.
64
+ kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
65
+ kwargs.setdefault("observed_since", 1975)
66
+ super().__init__(*args, **kwargs)
67
+
68
+ def _populate_public_holidays(self):
69
+ if self._year >= 1983:
70
+ # Ashura.
71
+ self._add_ashura_day(tr("Tamxarit"))
72
+
73
+ if self._year >= 2014:
74
+ # Grand Magal of Touba.
75
+ self._add_grand_magal_of_touba(tr("Grand Magal de Touba"))
76
+
77
+ # Prophet's Birthday.
78
+ self._add_mawlid_day(tr("Journée du Maouloud"))
79
+
80
+ # Eid al-Fitr.
81
+ for dt in self._add_eid_al_fitr_day(tr("Journée de la Korité")):
82
+ self._add_observed(dt)
83
+
84
+ # Eid al-Adha.
85
+ for dt in self._add_eid_al_adha_day(tr("Journée de la Tabaski")):
86
+ self._add_observed(dt)
87
+
88
+ # New Year's Day.
89
+ self._add_new_years_day(tr("Jour de l'an"))
90
+
91
+ if 1983 <= self._year <= 1989:
92
+ # Senegambia Confederation Day.
93
+ self._add_holiday_feb_1(tr("Fête de la Confédération de la Sénégambie"))
94
+
95
+ # Independence Day.
96
+ name = tr("Fête de l'Indépendance")
97
+ if self._year >= 1975:
98
+ self._add_holiday_apr_4(name)
99
+ else:
100
+ self._add_holiday_jul_14(name)
101
+
102
+ # Easter Monday.
103
+ self._add_easter_monday(tr("Lundi de Pâques"))
104
+
105
+ # Labor Day.
106
+ self._add_labor_day(tr("Fête du Travail"))
107
+
108
+ # Ascension Day.
109
+ self._add_ascension_thursday(tr("Jeudi de l'Ascension"))
110
+
111
+ # Whit Monday.
112
+ self._add_whit_monday(tr("Lundi de Pentecôte"))
113
+
114
+ # Assumption Day.
115
+ self._add_assumption_of_mary_day(tr("Assomption"))
116
+
117
+ # All Saints' Day.
118
+ self._add_all_saints_day(tr("Toussaint"))
119
+
120
+ # Christmas Day.
121
+ self._add_christmas_day(tr("Noël"))
122
+
123
+
124
+ class SN(Senegal):
125
+ pass
126
+
127
+
128
+ class SEN(Senegal):
129
+ pass
130
+
131
+
132
+ class SenegalIslamicHolidays(_CustomIslamicHolidays):
133
+ # https://web.archive.org/web/20250609044648/https://www.timeanddate.com/holidays/senegal/tamkharit
134
+ ASHURA_DATES = {
135
+ 2020: (AUG, 29),
136
+ 2021: (AUG, 18),
137
+ 2022: (AUG, 8),
138
+ 2023: (JUL, 28),
139
+ 2024: (JUL, 17),
140
+ }
141
+
142
+ # https://web.archive.org/web/20250609061446/https://www.timeanddate.com/holidays/senegal/grand-magal-de-touba
143
+ GRAND_MAGAL_OF_TOUBA_DATES = {
144
+ 2020: (OCT, 6),
145
+ 2021: (SEP, 26),
146
+ 2022: (SEP, 15),
147
+ 2023: (SEP, 4),
148
+ 2024: (AUG, 23),
149
+ }
150
+
151
+ # https://web.archive.org/web/20250609091559/https://www.timeanddate.com/holidays/senegal/maouloud
152
+ MAWLID_DATES = {
153
+ 2020: (OCT, 29),
154
+ 2021: (OCT, 18),
155
+ 2022: (OCT, 8),
156
+ 2023: (SEP, 27),
157
+ 2024: (SEP, 15),
158
+ }
159
+
160
+ # https://web.archive.org/web/20250609092813/https://www.timeanddate.com/holidays/senegal/korite
161
+ EID_AL_FITR_DATES = {
162
+ 2020: (MAY, 24),
163
+ 2021: (MAY, 12),
164
+ 2022: (MAY, 1),
165
+ 2023: (APR, 22),
166
+ 2024: (APR, 10),
167
+ 2025: (MAR, 30),
168
+ }
169
+
170
+ # https://web.archive.org/web/20250609102658/https://www.timeanddate.com/holidays/senegal/tabaski
171
+ EID_AL_ADHA_DATES = {
172
+ 2020: (JUL, 31),
173
+ 2021: (JUL, 21),
174
+ 2022: (JUL, 10),
175
+ 2023: (JUN, 29),
176
+ 2024: (JUN, 17),
177
+ }
178
+
179
+
180
+ class SenegalStaticHolidays:
181
+ """Senegal special holidays.
182
+
183
+ References:
184
+ * [29th October, 2018 Public holiday](https://web.archive.org/web/20250608105852/https://www.juriafrica.com/lex/decret-2018-1942-26-octobre-2018-48947.htm)
185
+ * [26th December, 2022 Public holiday](https://web.archive.org/web/20250608135605/https://primature.sn/publications/conseil-des-ministres/conseil-des-ministres-du-22-decembre-2022)
186
+ """
187
+
188
+ # Public holiday.
189
+ name = tr("Jour férié")
190
+ special_public_holidays = {
191
+ 2018: (OCT, 29, name),
192
+ 2022: (DEC, 26, name),
193
+ }
@@ -21,11 +21,11 @@ class Seychelles(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
21
21
  """Seychelles holidays.
22
22
 
23
23
  References:
24
- * <https://www.psb.gov.sc/public-holidays>
25
- * <https://www.cbs.sc/PublicHolidays.html>
26
- * [Act 19 of 1976, 1994 Amendment (Oldest Seychelles Holidays Law available online in full)](https://seylii.org/akn/sc/act/1976/19/eng@2012-06-30)
27
- * [Act 11 of 2014 (Holidays names changed)](https://seylii.org/akn/sc/act/2014/11/eng@2014-08-04)
28
- * [Act 3 of 2017 (Added Easter Monday, repealing Liberation Day)](https://seylii.org/akn/sc/act/2017/3/eng@2017-04-12)
24
+ * <https://web.archive.org/web/20240312030952/https://www.psb.gov.sc/public-holidays>
25
+ * <https://web.archive.org/web/20250413193316/https://www.cbs.sc/PublicHolidays.html>
26
+ * [Act 19 of 1976, 1994 Amendment (Oldest Seychelles Holidays Law available online in full)](https://web.archive.org/web/20250414175740/https://seylii.org/akn/sc/act/1976/19/eng@2012-06-30)
27
+ * [Act 11 of 2014 (Holidays names changed)](https://web.archive.org/web/20240908070851/https://seylii.org/akn/sc/act/2014/11/eng@2014-08-04)
28
+ * [Act 3 of 2017 (Added Easter Monday, repealing Liberation Day)](https://web.archive.org/web/20240920163119/https://seylii.org/akn/sc/act/2017/3/eng@2017-04-12)
29
29
 
30
30
  Where any public holiday, except Sunday, falls on a Sunday the next following day,
31
31
  not being itself a public holiday, shall be a public holiday.
@@ -120,16 +120,16 @@ class SeychellesStaticHolidays:
120
120
  """Seychelles special holidays.
121
121
 
122
122
  References:
123
- * <https://seylii.org/akn/sc/act/si/2015/58/eng@2015-12-01>
124
- * <https://seylii.org/akn/sc/act/si/2015/59/eng@2015-12-11>
125
- * <https://seylii.org/akn/sc/act/si/2016/58/eng@2016-09-06>
126
- * <https://seylii.org/akn/sc/act/si/2019/10/eng@2019-03-05>
127
- * <https://seylii.org/akn/sc/act/si/2019/61/eng@2019-10-18>
128
- * <https://seylii.org/akn/sc/act/si/2020/134/eng@2020-09-17>
129
- * <https://seylii.org/akn/sc/act/si/2020/154/eng@2020-10-26>
130
- * <https://www.statehouse.gov.sc/news/1765/public-holiday-october-1>
131
- * <https://www.egov.sc/PressRoom/DisplayPressRelease.aspx?PRLID=196>
132
- * <https://www.nation.sc/archive/216478/saturday-may-12-2007-public-holiday>
123
+ * <https://web.archive.org/web/20250413193400/https://seylii.org/akn/sc/act/si/2015/58/eng@2015-12-01>
124
+ * <https://web.archive.org/web/20240908071355/https://seylii.org/akn/sc/act/si/2015/59/eng@2015-12-11>
125
+ * <https://web.archive.org/web/20250413193424/https://seylii.org/akn/sc/act/si/2016/58/eng@2016-09-06>
126
+ * <https://web.archive.org/web/20250413193436/https://seylii.org/akn/sc/act/si/2019/10/eng@2019-03-05>
127
+ * <https://web.archive.org/web/20250413193450/https://seylii.org/akn/sc/act/si/2019/61/eng@2019-10-18>
128
+ * <https://web.archive.org/web/20250413193558/https://seylii.org/akn/sc/act/si/2020/134/eng@2020-09-17>
129
+ * <https://web.archive.org/web/20250413193519/https://seylii.org/akn/sc/act/si/2020/154/eng@2020-10-26>
130
+ * <https://web.archive.org/web/20250413193534/https://www.statehouse.gov.sc/news/1765/public-holiday-october-1>
131
+ * <https://web.archive.org/web/20250413193643/https://www.egov.sc/PressRoom/DisplayPressRelease.aspx?PRLID=196>
132
+ * <https://web.archive.org/web/20250413193559/https://www.nation.sc/archive/216478/saturday-may-12-2007-public-holiday>
133
133
 
134
134
  All Election Dates usually proceed from the Outer Islands first, then the Inner Islands, and
135
135
  the main capital, Mahé, on the last day. The current implementation only uses the last day,
@@ -22,10 +22,10 @@ class SierraLeone(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
22
22
  """Sierra Leone holidays.
23
23
 
24
24
  References:
25
- * <https://www.officeholidays.com/countries/sierra-leone>
25
+ * <https://web.archive.org/web/20241006064824/https://www.officeholidays.com/countries/sierra-leone>
26
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>
27
+ * <https://web.archive.org/web/20250408204431/https://www.timeanddate.com/holidays/sierra-leone/>
28
+ * <https://web.archive.org/web/20240727123934/http://salpost.gov.sl/opening-time-national-holidays>
29
29
  """
30
30
 
31
31
  country = "SL"
@@ -40,7 +40,7 @@ class SierraLeone(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
40
40
  # Sierra Leone gained independence on April 27, 1961.
41
41
  start_year = 1962
42
42
 
43
- def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
43
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
44
44
  """
45
45
  Args:
46
46
  islamic_show_estimated:
@@ -112,7 +112,7 @@ class SierraLeoneIslamicHolidays(_CustomIslamicHolidays):
112
112
  """Sierra Leone Islamic holidays exact dates.
113
113
 
114
114
  References:
115
- * <https://www.timeanddate.com/holidays/sierra-leone/>
115
+ * <https://web.archive.org/web/20250408204431/https://www.timeanddate.com/holidays/sierra-leone/>
116
116
  """
117
117
 
118
118
  # Prophet's Birthday
@@ -45,9 +45,8 @@ class Singapore(
45
45
 
46
46
  References:
47
47
  * [Wikipedia](https://en.wikipedia.org/wiki/Public_holidays_in_Singapore)
48
- * [Holidays Act](https://sso.agc.gov.sg/Act/HA1998) (Act 24 of
49
- 1968—Holidays (Amendment) Act 1968)
50
- * [Ministry of Manpower](https://www.mom.gov.sg/employment-practices/public-holidays)
48
+ * [Holidays Act 1998](https://web.archive.org/web/20250405061431/https://sso.agc.gov.sg/Act/HA1998)
49
+ * [Ministry of Manpower](https://web.archive.org/web/20250616105633/https://mom.gov.sg/employment-practices/public-holidays)
51
50
 
52
51
  Limitations:
53
52
  * Prior to 1969: holidays are estimated.
@@ -66,7 +65,7 @@ class Singapore(
66
65
  observed_label = tr("%s (observed)")
67
66
  supported_languages = ("en_SG", "en_US", "th")
68
67
 
69
- def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
68
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
70
69
  """
71
70
  Args:
72
71
  islamic_show_estimated:
@@ -178,6 +177,7 @@ class SingaporeBuddhistHolidays(_CustomBuddhistHolidays):
178
177
  2023: (JUN, 2),
179
178
  2024: (MAY, 22),
180
179
  2025: (MAY, 12),
180
+ 2026: (MAY, 31),
181
181
  }
182
182
 
183
183
 
@@ -208,6 +208,7 @@ class SingaporeChineseHolidays(_CustomChineseHolidays):
208
208
  2023: (JAN, 22),
209
209
  2024: (FEB, 10),
210
210
  2025: (JAN, 29),
211
+ 2026: (FEB, 17),
211
212
  }
212
213
 
213
214
 
@@ -239,6 +240,7 @@ class SingaporeHinduHolidays(_CustomHinduHolidays):
239
240
  2023: (NOV, 12),
240
241
  2024: (OCT, 31),
241
242
  2025: (OCT, 20),
243
+ 2026: (NOV, 8),
242
244
  }
243
245
 
244
246
 
@@ -270,6 +272,7 @@ class SingaporeIslamicHolidays(_CustomIslamicHolidays):
270
272
  2023: (JUN, 29),
271
273
  2024: (JUN, 17),
272
274
  2025: (JUN, 7),
275
+ 2026: (MAY, 27),
273
276
  }
274
277
 
275
278
  # Hari Raya Puasa
@@ -299,6 +302,7 @@ class SingaporeIslamicHolidays(_CustomIslamicHolidays):
299
302
  2023: (APR, 22),
300
303
  2024: (APR, 10),
301
304
  2025: (MAR, 31),
305
+ 2026: (MAR, 21),
302
306
  }
303
307
 
304
308
 
@@ -306,10 +310,10 @@ class SingaporeStaticHolidays:
306
310
  """Singapore special holidays.
307
311
 
308
312
  References:
309
- * <https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015>
310
- * <https://www.mom.gov.sg/newsroom/press-releases/2020/0624-public-holiday-on-polling-day---10-july-2020>
311
- * <https://www.mom.gov.sg/newsroom/press-releases/2023/0822-public-holiday-on-polling-day---1-sep-2023>
312
- * <https://www.mom.gov.sg/newsroom/press-releases/2025/0415-public-holiday-on-polling-day_3-may-2025>
313
+ * <https://web.archive.org/web/20241015024728/https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015>
314
+ * <https://web.archive.org/web/20240809195048/https://www.mom.gov.sg/newsroom/press-releases/2020/0624-public-holiday-on-polling-day---10-july-2020>
315
+ * <https://web.archive.org/web/20241113193000/https://www.mom.gov.sg/newsroom/press-releases/2023/0822-public-holiday-on-polling-day---1-sep-2023>
316
+ * <https://web.archive.org/web/20250424145037/https://www.mom.gov.sg/newsroom/press-releases/2025/0415-public-holiday-on-polling-day_3-may-2025>
313
317
  """
314
318
 
315
319
  # Polling Day.
@@ -24,7 +24,7 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
24
24
  References:
25
25
  * <https://en.wikipedia.org/wiki/Public_holidays_in_Slovakia>
26
26
  * <https://sk.wikipedia.org/wiki/Zoznam_sviatkov_na_Slovensku>
27
- * <https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1993/241/>
27
+ * <https://web.archive.org/web/20250413192257/https://www.slov-lex.sk/pravne-predpisy/SK/ZZ/1993/241/>
28
28
  """
29
29
 
30
30
  country = "SK"
@@ -24,8 +24,8 @@ class Slovenia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
24
24
  References:
25
25
  * <https://en.wikipedia.org/wiki/Public_holidays_in_Slovenia>
26
26
  * <https://sl.wikipedia.org/wiki/Državni_prazniki_v_Sloveniji>
27
- * <https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina/1991-01-1091/zakon-o-praznikih-in-dela-prostih-dnevih-v-republiki-sloveniji>
28
- * <https://www.gov.si/teme/drzavni-prazniki-in-dela-prosti-dnevi/>
27
+ * <https://web.archive.org/web/20250429081020/https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina/1991-01-1091/zakon-o-praznikih-in-dela-prostih-dnevih-v-republiki-sloveniji>
28
+ * <https://web.archive.org/web/20250414154423/https://www.gov.si/teme/drzavni-prazniki-in-dela-prosti-dnevi>
29
29
  """
30
30
 
31
31
  country = "SI"
@@ -0,0 +1,220 @@
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 CONTRIBUTORS 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.calendars.gregorian import APR, JUN, SEP, NOV
14
+ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
15
+ from holidays.observed_holiday_base import (
16
+ ObservedHolidayBase,
17
+ SAT_TO_PREV_FRI,
18
+ SUN_TO_NEXT_MON,
19
+ SAT_SUN_TO_NEXT_MON_TUE,
20
+ )
21
+
22
+
23
+ class SolomonIslands(
24
+ ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
25
+ ):
26
+ """Solomon Islands holidays.
27
+
28
+ References:
29
+ * [Public Holidays Act](https://web.archive.org/web/20250615054807/https://www.paclii.org/sb/legis/consol_act_1996/pha163.pdf)
30
+ * [2016](https://web.archive.org/web/20250530230724/https://mehrd.gov.sb/documents?view=download&format=raw&fileId=4377)
31
+ * [2020](https://web.archive.org/web/20240908025223/https://solomons.gov.sb/national-and-provincial-public-holidays-2020/)
32
+ * [2021](https://web.archive.org/web/20241004035112/https://solomons.gov.sb/wp-content/uploads/2021/03/Gaz-No.-54-Sup-No.-50-Wednesday-10th-March-2021.pdf)
33
+ * [2022](https://web.archive.org/web/20240727185307/https://solomons.gov.sb/wp-content/uploads/2021/10/Gaz-No.-246-Tuesday-19th-October-2021-.pdf)
34
+ * [2023](https://web.archive.org/web/20240810050725/https://solomons.gov.sb/wp-content/uploads/2022/12/Gaz-No.-324-Wednesday-21st-December-2022-1.pdf)
35
+ * [2024](https://web.archive.org/web/20240727124555/https://solomons.gov.sb/wp-content/uploads/2024/02/Gaz-No.-15-Monday-12th-FEBRUARY-2024.pdf)
36
+ * [2025](https://web.archive.org/web/20250615054517/https://solomons.gov.sb/wp-content/uploads/2024/11/Gaz-No.-178-Monday-25th-November-2024.pdf)
37
+
38
+ About the day appointed for the celebration of the Anniversary of the Birthday of the
39
+ Sovereign:
40
+
41
+ * Up to 2022, the Queen's Birthday was typically observed on the second Saturday of
42
+ June, with the preceding Friday designated as a public holiday. From 2023 onward,
43
+ the King's Birthday has been marked on the Friday before the third Saturday in
44
+ June. Although there has been no amendment to the Public Holidays Act to explicitly
45
+ state this change, the pattern is evident in the annual government gazettes and
46
+ supported by information from the relevant [Wikipedia
47
+ entry](https://en.wikipedia.org/wiki/King's_Official_Birthday#Solomon_Islands).
48
+ * There are a few exceptions to this rule:
49
+ * [Queen's Birthday 2022](https://web.archive.org/web/20240727184251/https://solomons.gov.sb/wp-content/uploads/2022/05/Gaz-No.-171-Friday-27th-May-2022.pdf)
50
+ * According to the holidays schedule for 2024, King's Birthday was celebrated on
51
+ the 3rd saturday of June (June 15) and the preceding Friday was observed as a
52
+ public holiday.
53
+ * [King's Birthday 2025](https://web.archive.org/web/20250615054519/https://solomons.gov.sb/wp-content/uploads/2025/04/Gaz-No.-33-Wednesday-9th-April-2025.pdf)
54
+
55
+ Province Days are not listed in the Public Holidays Act but are consistently announced
56
+ in the official gazette each year.
57
+
58
+ While the Public Holidays Act specifies the Sunday to next Monday observance rule,
59
+ gazettes dating back to 2016 also follow the Saturday to previous Friday rule for
60
+ shifting public holidays.
61
+ """
62
+
63
+ country = "SB"
64
+ # %s (observed).
65
+ observed_label = "%s (observed)"
66
+ start_year = 1979
67
+ subdivisions = (
68
+ "CE", # Central.
69
+ "CH", # Choiseul.
70
+ "CT", # Capital Territory (Honiara).
71
+ "GU", # Guadalcanal.
72
+ "IS", # Isabel.
73
+ "MK", # Makira-Ulawa.
74
+ "ML", # Malaita.
75
+ "RB", # Rennell and Bellona.
76
+ "TE", # Temotu.
77
+ "WE", # Western.
78
+ )
79
+ subdivisions_aliases = {
80
+ "Central": "CE",
81
+ "Choiseul": "CH",
82
+ "Capital Territory": "CT",
83
+ "Honiara": "CT",
84
+ "Guadalcanal": "GU",
85
+ "Isabel": "IS",
86
+ "Makira-Ulawa": "MK",
87
+ "Malaita": "ML",
88
+ "Rennell and Bellona": "RB",
89
+ "Temotu": "TE",
90
+ "Western": "WE",
91
+ }
92
+
93
+ def __init__(self, *args, **kwargs):
94
+ ChristianHolidays.__init__(self)
95
+ InternationalHolidays.__init__(self)
96
+ StaticHolidays.__init__(self, cls=SolomonIslandsStaticHolidays)
97
+ kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON + SAT_TO_PREV_FRI)
98
+ super().__init__(*args, **kwargs)
99
+
100
+ def _populate_public_holidays(self):
101
+ # New Year's Day.
102
+ name = "New Year's Day"
103
+ self._add_observed(self._add_new_years_day(name))
104
+ self._add_observed(self._next_year_new_years_day, name=name, rule=SAT_TO_PREV_FRI)
105
+
106
+ # Good Friday.
107
+ self._add_good_friday("Good Friday")
108
+
109
+ # Holy Saturday.
110
+ self._add_holy_saturday("Holy Saturday")
111
+
112
+ # Easter Monday.
113
+ self._add_easter_monday("Easter Monday")
114
+
115
+ # Whit Monday.
116
+ self._add_whit_monday("Whit Monday")
117
+
118
+ name = (
119
+ # King's Birthday.
120
+ "King's Birthday"
121
+ if self._year >= 2023
122
+ # Queen's Birthday.
123
+ else "Queen's Birthday"
124
+ )
125
+ sovereign_birthday_dates = {
126
+ 2022: (JUN, 3),
127
+ 2025: (JUN, 13),
128
+ }
129
+ if self._year in sovereign_birthday_dates:
130
+ self._add_holiday(name, sovereign_birthday_dates[self._year])
131
+ elif self._year == 2024:
132
+ self._add_observed(self._add_holiday_3rd_sat_of_jun(name))
133
+ elif self._year >= 2023:
134
+ self._add_holiday_1_day_prior_3rd_sat_of_jun(name)
135
+ else:
136
+ self._add_observed(self._add_holiday_2nd_sat_of_jun(name))
137
+
138
+ # Independence Day.
139
+ self._add_observed(self._add_holiday_jul_7("Independence Day"))
140
+
141
+ self._add_observed(
142
+ # Christmas Day.
143
+ self._add_christmas_day("Christmas Day"),
144
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
145
+ )
146
+
147
+ self._add_observed(
148
+ # National Day of Thanksgiving.
149
+ self._add_christmas_day_two("National Day of Thanksgiving"),
150
+ rule=SAT_SUN_TO_NEXT_MON_TUE,
151
+ )
152
+
153
+ def _populate_subdiv_ce_public_holidays(self):
154
+ # Central Province Day.
155
+ self._add_observed(self._add_holiday_jun_29("Central Province Day"))
156
+
157
+ def _populate_subdiv_ch_public_holidays(self):
158
+ # Choiseul Province Day.
159
+ self._add_observed(self._add_holiday_feb_25("Choiseul Province Day"))
160
+
161
+ def _populate_subdiv_gu_public_holidays(self):
162
+ # Guadalcanal Province Day.
163
+ self._add_observed(self._add_holiday_aug_1("Guadalcanal Province Day"))
164
+
165
+ def _populate_subdiv_is_public_holidays(self):
166
+ # Isabel Province Day.
167
+ self._add_observed(self._add_holiday_jun_2("Isabel Province Day"))
168
+
169
+ def _populate_subdiv_mk_public_holidays(self):
170
+ # Makira-Ulawa Province Day.
171
+ self._add_observed(self._add_holiday_aug_3("Makira-Ulawa Province Day"))
172
+
173
+ def _populate_subdiv_ml_public_holidays(self):
174
+ # Malaita Province Day.
175
+ self._add_observed(self._add_holiday_aug_15("Malaita Province Day"))
176
+
177
+ def _populate_subdiv_rb_public_holidays(self):
178
+ # Rennell and Bellona Province Day.
179
+ self._add_observed(self._add_holiday_jul_20("Rennell and Bellona Province Day"))
180
+
181
+ def _populate_subdiv_te_public_holidays(self):
182
+ # Temotu Province Day.
183
+ self._add_observed(self._add_holiday_jun_8("Temotu Province Day"))
184
+
185
+ def _populate_subdiv_we_public_holidays(self):
186
+ # Western Province Day.
187
+ self._add_observed(self._add_holiday_dec_7("Western Province Day"))
188
+
189
+
190
+ class SB(SolomonIslands):
191
+ pass
192
+
193
+
194
+ class SLB(SolomonIslands):
195
+ pass
196
+
197
+
198
+ class SolomonIslandsStaticHolidays:
199
+ """Solomon Islands special holidays.
200
+
201
+ References:
202
+ * [2024 General Election Holiday](https://web.archive.org/web/20240711032116/https://solomonchamber.com.sb/media/2618/gaz-no-61-monday-8th-april-2024.pdf)
203
+ * [2020 By-election Holiday](https://web.archive.org/web/20241011021616/https://solomons.gov.sb/wp-content/uploads/2020/11/GAZ-173-11th-November-2020-1.pdf)
204
+ * [Gazette No. 269 of 2022](https://web.archive.org/web/20240727183925/https://solomons.gov.sb/wp-content/uploads/2022/09/Gaz-No.-269-Friday-9th-September-2022.pdf)
205
+ """
206
+
207
+ # Public Holiday.
208
+ name = "Public Holiday"
209
+ special_public_holidays = {
210
+ 2022: (SEP, 12, name),
211
+ 2024: (APR, 17, name),
212
+ }
213
+
214
+ special_ch_public_holidays = {
215
+ 2020: (NOV, 18, name),
216
+ }
217
+
218
+ special_gu_public_holidays = {
219
+ 2020: (NOV, 18, name),
220
+ }
@@ -19,10 +19,10 @@ class SouthAfrica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
19
19
  """South Africa holidays.
20
20
 
21
21
  References:
22
- * <https://www.gov.za/about-sa/public-holidays>
22
+ * <https://web.archive.org/web/20250424073852/https://www.gov.za/about-sa/public-holidays>
23
23
  * <https://en.wikipedia.org/wiki/Public_holidays_in_South_Africa>
24
- * <https://www.gov.za/speeches/president-cyril-ramaphosa-progress-economic-recovery-30-oct-2023-0000>
25
- * <https://www.gov.za/documents/notices/public-holidays-act-declaration-29-may-2024-public-holiday-23-feb-2024>
24
+ * <https://web.archive.org/web/20240715110800/https://www.gov.za/speeches/president-cyril-ramaphosa-progress-economic-recovery-30-oct-2023-0000>
25
+ * <https://web.archive.org/web/20250427184315/https://www.gov.za/documents/notices/public-holidays-act-declaration-29-may-2024-public-holiday-23-feb-2024>
26
26
  """
27
27
 
28
28
  country = "ZA"
@@ -152,6 +152,6 @@ class SouthAfricaStaticHolidays:
152
152
  }
153
153
 
154
154
  special_public_holidays_observed = {
155
- # Special holiday http://tiny.cc/za_y2k
155
+ # https://web.archive.org/web/20120328122217/http://www.info.gov.za/speeches/1999/991028409p1002.htm
156
156
  2000: (JAN, 3, y2k_changeover),
157
157
  }
@@ -55,19 +55,19 @@ class SouthKorea(
55
55
 
56
56
  References:
57
57
  * <https://en.wikipedia.org/wiki/Public_holidays_in_South_Korea>
58
- * <https://www.law.go.kr/법령/관공서의%20공휴일에%20관한%20규정>
59
- * <https://elaw.klri.re.kr/eng_service/lawView.do?lang=ENG&hseq=34678>
60
- * <https://elaw.klri.re.kr/eng_service/%20lawView.do?hseq=38405&lang=ENG>
58
+ * <https://web.archive.org/web/20240429121214/https://www.law.go.kr/법령/관공서의%20공휴일에%20관한%20규정>
59
+ * <https://web.archive.org/web/20250429081641/https://elaw.klri.re.kr/eng_service/lawView.do?lang=ENG&hseq=34678>
60
+ * <https://web.archive.org/web/20250123212346/https://elaw.klri.re.kr/eng_service/%20lawView.do?hseq=38405&lang=ENG>
61
61
  * <https://namu.wiki/w/대통령%20선거일>
62
62
  * <https://namu.wiki/w/공휴일/대한민국>
63
63
  * <https://namu.wiki/w/공휴일/대한민국/역사>
64
64
  * <https://namu.wiki/w/대체%20휴일%20제도>
65
- * [TH localization 1](https://overseas.mofa.go.kr/th-th/wpge/m_3133/contents.do)
66
- * [TH localization 2](https://thailand.korean-culture.org/th/138/korea/38)
65
+ * [TH localization 1](https://web.archive.org/web/20241217184803/https://overseas.mofa.go.kr/th-th/wpge/m_3133/contents.do)
66
+ * [TH localization 2](https://web.archive.org/web/20200216004120/http://thailand.korean-culture.org:80/th/138/korea/38)
67
67
 
68
68
  Checked With:
69
- * <https://publicholidays.co.kr/ko/2020-dates/>
70
- * <https://publicholidays.co.kr/ko/2022-dates/>
69
+ * <https://web.archive.org/web/20231202051034/https://publicholidays.co.kr/ko/2020-dates/>
70
+ * <https://web.archive.org/web/20231002172705/https://publicholidays.co.kr/ko/2022-dates/>
71
71
 
72
72
  According to (3), the alt holidays in Korea are as follows:
73
73
  * The alt holiday means next first non holiday after the holiday.