holidays 0.68__py3-none-any.whl → 0.70__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 (254) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/calendars/__init__.py +2 -1
  3. holidays/calendars/balinese_saka.py +112 -0
  4. holidays/calendars/buddhist.py +1 -1
  5. holidays/calendars/chinese.py +1 -1
  6. holidays/calendars/custom.py +1 -1
  7. holidays/calendars/gregorian.py +1 -1
  8. holidays/calendars/hebrew.py +1 -1
  9. holidays/calendars/hindu.py +866 -2
  10. holidays/calendars/islamic.py +161 -1
  11. holidays/calendars/julian.py +1 -1
  12. holidays/calendars/julian_revised.py +1 -1
  13. holidays/calendars/persian.py +1 -1
  14. holidays/calendars/sinhala.py +1 -1
  15. holidays/calendars/thai.py +309 -257
  16. holidays/constants.py +3 -1
  17. holidays/countries/__init__.py +7 -1
  18. holidays/countries/afghanistan.py +17 -7
  19. holidays/countries/albania.py +16 -7
  20. holidays/countries/algeria.py +14 -10
  21. holidays/countries/american_samoa.py +12 -6
  22. holidays/countries/andorra.py +5 -4
  23. holidays/countries/angola.py +15 -14
  24. holidays/countries/antigua_and_barbuda.py +145 -0
  25. holidays/countries/argentina.py +787 -169
  26. holidays/countries/armenia.py +5 -6
  27. holidays/countries/aruba.py +11 -9
  28. holidays/countries/australia.py +21 -20
  29. holidays/countries/austria.py +3 -1
  30. holidays/countries/azerbaijan.py +30 -19
  31. holidays/countries/bahamas.py +13 -11
  32. holidays/countries/bahrain.py +14 -7
  33. holidays/countries/bangladesh.py +5 -4
  34. holidays/countries/barbados.py +11 -9
  35. holidays/countries/belarus.py +15 -15
  36. holidays/countries/belgium.py +8 -6
  37. holidays/countries/belize.py +7 -6
  38. holidays/countries/bolivia.py +12 -11
  39. holidays/countries/bosnia_and_herzegovina.py +21 -11
  40. holidays/countries/botswana.py +8 -6
  41. holidays/countries/brazil.py +8 -7
  42. holidays/countries/brunei.py +56 -62
  43. holidays/countries/bulgaria.py +9 -10
  44. holidays/countries/burkina_faso.py +14 -5
  45. holidays/countries/burundi.py +17 -12
  46. holidays/countries/cambodia.py +15 -24
  47. holidays/countries/cameroon.py +16 -7
  48. holidays/countries/canada.py +13 -12
  49. holidays/countries/chad.py +15 -6
  50. holidays/countries/chile.py +29 -28
  51. holidays/countries/china.py +39 -38
  52. holidays/countries/colombia.py +15 -20
  53. holidays/countries/congo.py +6 -7
  54. holidays/countries/costa_rica.py +11 -10
  55. holidays/countries/croatia.py +8 -5
  56. holidays/countries/cuba.py +30 -27
  57. holidays/countries/curacao.py +6 -4
  58. holidays/countries/cyprus.py +4 -5
  59. holidays/countries/czechia.py +7 -6
  60. holidays/countries/denmark.py +5 -6
  61. holidays/countries/djibouti.py +11 -3
  62. holidays/countries/dominica.py +18 -16
  63. holidays/countries/dominican_republic.py +6 -4
  64. holidays/countries/ecuador.py +5 -4
  65. holidays/countries/egypt.py +10 -11
  66. holidays/countries/el_salvador.py +6 -5
  67. holidays/countries/estonia.py +3 -1
  68. holidays/countries/eswatini.py +6 -4
  69. holidays/countries/ethiopia.py +26 -11
  70. holidays/countries/fiji.py +183 -0
  71. holidays/countries/finland.py +11 -10
  72. holidays/countries/france.py +6 -9
  73. holidays/countries/gabon.py +17 -8
  74. holidays/countries/georgia.py +7 -7
  75. holidays/countries/germany.py +11 -11
  76. holidays/countries/ghana.py +14 -6
  77. holidays/countries/greece.py +4 -5
  78. holidays/countries/greenland.py +5 -6
  79. holidays/countries/guam.py +12 -6
  80. holidays/countries/guatemala.py +7 -9
  81. holidays/countries/guernsey.py +37 -34
  82. holidays/countries/guinea.py +182 -0
  83. holidays/countries/haiti.py +6 -5
  84. holidays/countries/honduras.py +8 -4
  85. holidays/countries/hongkong.py +49 -60
  86. holidays/countries/hungary.py +26 -23
  87. holidays/countries/iceland.py +5 -4
  88. holidays/countries/india.py +494 -174
  89. holidays/countries/indonesia.py +68 -108
  90. holidays/countries/iran.py +18 -9
  91. holidays/countries/ireland.py +5 -4
  92. holidays/countries/isle_of_man.py +2 -2
  93. holidays/countries/israel.py +4 -5
  94. holidays/countries/italy.py +5 -4
  95. holidays/countries/ivory_coast.py +156 -0
  96. holidays/countries/jamaica.py +6 -4
  97. holidays/countries/japan.py +5 -5
  98. holidays/countries/jersey.py +29 -26
  99. holidays/countries/jordan.py +13 -6
  100. holidays/countries/kazakhstan.py +72 -51
  101. holidays/countries/kenya.py +28 -18
  102. holidays/countries/kuwait.py +14 -7
  103. holidays/countries/kyrgyzstan.py +11 -6
  104. holidays/countries/laos.py +21 -29
  105. holidays/countries/latvia.py +7 -5
  106. holidays/countries/lesotho.py +6 -5
  107. holidays/countries/liechtenstein.py +5 -5
  108. holidays/countries/lithuania.py +4 -5
  109. holidays/countries/luxembourg.py +5 -3
  110. holidays/countries/macau.py +480 -0
  111. holidays/countries/madagascar.py +5 -4
  112. holidays/countries/malawi.py +6 -4
  113. holidays/countries/malaysia.py +30 -18
  114. holidays/countries/maldives.py +14 -7
  115. holidays/countries/malta.py +10 -19
  116. holidays/countries/marshall_islands.py +6 -4
  117. holidays/countries/mauritania.py +13 -6
  118. holidays/countries/mexico.py +8 -7
  119. holidays/countries/moldova.py +6 -4
  120. holidays/countries/monaco.py +6 -4
  121. holidays/countries/montenegro.py +16 -7
  122. holidays/countries/morocco.py +13 -8
  123. holidays/countries/mozambique.py +3 -1
  124. holidays/countries/namibia.py +7 -5
  125. holidays/countries/netherlands.py +6 -6
  126. holidays/countries/new_zealand.py +3 -1
  127. holidays/countries/nicaragua.py +6 -5
  128. holidays/countries/nigeria.py +13 -5
  129. holidays/countries/north_macedonia.py +13 -5
  130. holidays/countries/northern_mariana_islands.py +12 -6
  131. holidays/countries/norway.py +15 -15
  132. holidays/countries/pakistan.py +48 -18
  133. holidays/countries/palau.py +13 -11
  134. holidays/countries/panama.py +9 -8
  135. holidays/countries/papua_new_guinea.py +25 -21
  136. holidays/countries/paraguay.py +10 -9
  137. holidays/countries/peru.py +4 -5
  138. holidays/countries/philippines.py +32 -18
  139. holidays/countries/poland.py +7 -6
  140. holidays/countries/portugal.py +13 -15
  141. holidays/countries/puerto_rico.py +12 -6
  142. holidays/countries/qatar.py +172 -0
  143. holidays/countries/romania.py +6 -4
  144. holidays/countries/russia.py +6 -4
  145. holidays/countries/saint_kitts_and_nevis.py +24 -22
  146. holidays/countries/saint_lucia.py +8 -7
  147. holidays/countries/samoa.py +7 -6
  148. holidays/countries/san_marino.py +4 -3
  149. holidays/countries/saudi_arabia.py +15 -15
  150. holidays/countries/serbia.py +3 -4
  151. holidays/countries/seychelles.py +22 -26
  152. holidays/countries/singapore.py +33 -38
  153. holidays/countries/slovakia.py +6 -5
  154. holidays/countries/slovenia.py +7 -6
  155. holidays/countries/south_africa.py +8 -6
  156. holidays/countries/south_korea.py +25 -32
  157. holidays/countries/spain.py +31 -24
  158. holidays/countries/sri_lanka.py +52 -42
  159. holidays/countries/sweden.py +20 -19
  160. holidays/countries/switzerland.py +6 -5
  161. holidays/countries/taiwan.py +230 -31
  162. holidays/countries/tanzania.py +34 -27
  163. holidays/countries/thailand.py +134 -142
  164. holidays/countries/timor_leste.py +38 -17
  165. holidays/countries/tonga.py +46 -42
  166. holidays/countries/tunisia.py +9 -3
  167. holidays/countries/turkey.py +17 -9
  168. holidays/countries/tuvalu.py +12 -11
  169. holidays/countries/ukraine.py +54 -54
  170. holidays/countries/united_arab_emirates.py +43 -30
  171. holidays/countries/united_kingdom.py +7 -6
  172. holidays/countries/united_states.py +130 -86
  173. holidays/countries/united_states_minor_outlying_islands.py +12 -6
  174. holidays/countries/united_states_virgin_islands.py +12 -6
  175. holidays/countries/uruguay.py +10 -9
  176. holidays/countries/uzbekistan.py +16 -7
  177. holidays/countries/vanuatu.py +7 -5
  178. holidays/countries/vatican_city.py +16 -15
  179. holidays/countries/venezuela.py +11 -14
  180. holidays/countries/vietnam.py +15 -11
  181. holidays/countries/zambia.py +8 -6
  182. holidays/countries/zimbabwe.py +6 -4
  183. holidays/deprecations/v1_incompatibility.py +1 -1
  184. holidays/financial/__init__.py +1 -1
  185. holidays/financial/brasil_bolsa_balcao.py +14 -13
  186. holidays/financial/european_central_bank.py +7 -6
  187. holidays/financial/ice_futures_europe.py +7 -6
  188. holidays/financial/ny_stock_exchange.py +13 -10
  189. holidays/groups/__init__.py +2 -1
  190. holidays/groups/balinese_saka.py +45 -0
  191. holidays/groups/buddhist.py +1 -1
  192. holidays/groups/chinese.py +69 -4
  193. holidays/groups/christian.py +1 -1
  194. holidays/groups/custom.py +1 -1
  195. holidays/groups/eastern.py +1 -1
  196. holidays/groups/hebrew.py +1 -1
  197. holidays/groups/hindu.py +256 -1
  198. holidays/groups/international.py +1 -1
  199. holidays/groups/islamic.py +17 -3
  200. holidays/groups/persian.py +1 -1
  201. holidays/groups/sinhala.py +1 -1
  202. holidays/groups/thai.py +1 -7
  203. holidays/helpers.py +1 -1
  204. holidays/holiday_base.py +410 -273
  205. holidays/ical.py +228 -0
  206. holidays/locale/ar_QA/LC_MESSAGES/QA.mo +0 -0
  207. holidays/locale/de/LC_MESSAGES/PL.mo +0 -0
  208. holidays/locale/en_CI/LC_MESSAGES/CI.mo +0 -0
  209. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  210. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  211. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  212. holidays/locale/en_PK/LC_MESSAGES/PK.mo +0 -0
  213. holidays/locale/en_TL/LC_MESSAGES/TL.mo +0 -0
  214. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  215. holidays/locale/en_US/LC_MESSAGES/CI.mo +0 -0
  216. holidays/locale/en_US/LC_MESSAGES/GN.mo +0 -0
  217. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  218. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  219. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  220. holidays/locale/en_US/LC_MESSAGES/PK.mo +0 -0
  221. holidays/locale/en_US/LC_MESSAGES/QA.mo +0 -0
  222. holidays/locale/en_US/LC_MESSAGES/TL.mo +0 -0
  223. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  224. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  225. holidays/locale/fr/LC_MESSAGES/CI.mo +0 -0
  226. holidays/locale/fr/LC_MESSAGES/GN.mo +0 -0
  227. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  228. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  229. holidays/locale/pt_TL/LC_MESSAGES/TL.mo +0 -0
  230. holidays/locale/tet/LC_MESSAGES/TL.mo +0 -0
  231. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  232. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  233. holidays/locale/th/LC_MESSAGES/TL.mo +0 -0
  234. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  235. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  236. holidays/locale/ur_PK/LC_MESSAGES/PK.mo +0 -0
  237. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  238. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  239. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  240. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  241. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  242. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  243. holidays/mixins.py +2 -2
  244. holidays/observed_holiday_base.py +5 -2
  245. holidays/registry.py +7 -1
  246. holidays/utils.py +151 -151
  247. holidays/version.py +2 -2
  248. holidays-0.70.dist-info/METADATA +1404 -0
  249. {holidays-0.68.dist-info → holidays-0.70.dist-info}/RECORD +253 -222
  250. {holidays-0.68.dist-info → holidays-0.70.dist-info}/WHEEL +1 -1
  251. holidays-0.68.dist-info/AUTHORS → holidays-0.70.dist-info/licenses/AUTHORS.md +7 -2
  252. {holidays-0.68.dist-info → holidays-0.70.dist-info/licenses}/LICENSE +1 -1
  253. holidays-0.68.dist-info/METADATA +0 -1080
  254. {holidays-0.68.dist-info → holidays-0.70.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,172 @@
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
+ MAR,
19
+ APR,
20
+ MAY,
21
+ JUN,
22
+ JUL,
23
+ AUG,
24
+ SEP,
25
+ OCT,
26
+ NOV,
27
+ DEC,
28
+ THU,
29
+ FRI,
30
+ SAT,
31
+ )
32
+ from holidays.constants import BANK, PUBLIC
33
+ from holidays.groups import InternationalHolidays, IslamicHolidays, StaticHolidays
34
+ from holidays.holiday_base import HolidayBase
35
+
36
+
37
+ class Qatar(HolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays):
38
+ """Qatar holidays.
39
+
40
+ References:
41
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Qatar>
42
+ * [National Sports Day](https://hukoomi.gov.qa/en/national-sport-day)
43
+ * [Qatar National Day](https://www.qatar.qa/en/qatar/history-of-qatar-qatar-national-day-committee/)
44
+ * [Weekend](https://www.arabnews.com/node/234601)
45
+ """
46
+
47
+ country = "QA"
48
+ default_language = "ar_QA"
49
+ # %s (estimated).
50
+ estimated_label = tr("%s (المقدرة)")
51
+ start_year = 1971
52
+ supported_categories = (BANK, PUBLIC)
53
+ supported_languages = ("ar_QA", "en_US")
54
+
55
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
56
+ """
57
+ Args:
58
+ islamic_show_estimated:
59
+ Whether to add "estimated" label to Islamic holidays name
60
+ if holiday date is estimated.
61
+ """
62
+ InternationalHolidays.__init__(self)
63
+ IslamicHolidays.__init__(
64
+ self, cls=QatarIslamicHolidays, show_estimated=islamic_show_estimated
65
+ )
66
+ StaticHolidays.__init__(self, QatarStaticHolidays)
67
+ super().__init__(*args, **kwargs)
68
+
69
+ def _populate_public_holidays(self):
70
+ # Qatar switches from THU-FRI to FRI-SAT on Aug 1, 2003.
71
+ self.weekend = {THU, FRI} if self._year <= 2003 else {FRI, SAT}
72
+
73
+ if self._year >= 2012:
74
+ # National Sports Day.
75
+ self._add_holiday_2nd_tue_of_feb(tr("اليوم الوطني للرياضة"))
76
+
77
+ if self._year >= 2007:
78
+ # Qatar National Day.
79
+ self._add_holiday_dec_18(tr("اليوم الوطني لقطر"))
80
+
81
+ # Eid al-Fitr.
82
+ name = tr("عيد الفطر")
83
+ self._add_eid_al_fitr_day(name)
84
+ self._add_eid_al_fitr_day_two(name)
85
+ self._add_eid_al_fitr_day_three(name)
86
+
87
+ # Eid al-Adha.
88
+ name = tr("عيد الأضحى")
89
+ self._add_eid_al_adha_day(name)
90
+ self._add_eid_al_adha_day_two(name)
91
+ self._add_eid_al_adha_day_three(name)
92
+
93
+ def _populate_bank_holidays(self):
94
+ # New Year's Day.
95
+ self._add_new_years_day(tr("رأس السنة الميلادية"))
96
+
97
+ if self._year >= 2010:
98
+ # March Bank Holiday.
99
+ self._add_holiday_1st_sun_of_mar(tr("عطلة البنك"))
100
+
101
+
102
+ class QA(Qatar):
103
+ pass
104
+
105
+
106
+ class QAT(Qatar):
107
+ pass
108
+
109
+
110
+ class QatarIslamicHolidays(_CustomIslamicHolidays):
111
+ # https://www.timeanddate.com/holidays/qatar/eid-al-adha
112
+ EID_AL_ADHA_DATES = {
113
+ 2005: (JAN, 21),
114
+ 2006: ((JAN, 10), (DEC, 31)),
115
+ 2007: (DEC, 20),
116
+ 2008: (DEC, 9),
117
+ 2009: (NOV, 28),
118
+ 2010: (NOV, 15),
119
+ 2011: (NOV, 6),
120
+ 2012: (OCT, 26),
121
+ 2013: (OCT, 15),
122
+ 2014: (OCT, 4),
123
+ 2015: (SEP, 23),
124
+ 2016: (SEP, 10),
125
+ 2017: (AUG, 31),
126
+ 2018: (AUG, 22),
127
+ 2019: (AUG, 11),
128
+ 2020: (JUL, 31),
129
+ 2021: (JUL, 20),
130
+ 2022: (JUL, 9),
131
+ 2023: (JUN, 28),
132
+ 2024: (JUN, 16),
133
+ }
134
+
135
+ # https://www.timeanddate.com/holidays/qatar/eid-al-fitr
136
+ EID_AL_FITR_DATES = {
137
+ 2005: (NOV, 4),
138
+ 2006: (OCT, 24),
139
+ 2007: (OCT, 13),
140
+ 2008: (OCT, 2),
141
+ 2009: (SEP, 21),
142
+ 2010: (SEP, 10),
143
+ 2011: (AUG, 31),
144
+ 2012: (AUG, 19),
145
+ 2013: (AUG, 8),
146
+ 2014: (JUL, 28),
147
+ 2015: (JUL, 18),
148
+ 2016: (JUL, 6),
149
+ 2017: (JUN, 25),
150
+ 2018: (JUN, 15),
151
+ 2019: (JUN, 4),
152
+ 2020: (MAY, 24),
153
+ 2021: (MAY, 13),
154
+ 2022: (MAY, 2),
155
+ 2023: (APR, 21),
156
+ 2024: (APR, 10),
157
+ 2025: (MAR, 30),
158
+ }
159
+
160
+
161
+ class QatarStaticHolidays:
162
+ """Qatar special holidays.
163
+
164
+ References:
165
+ * [New Year's Holiday](https://www.expatica.com/qa/lifestyle/holidays/qatar-public-holidays-74585/)
166
+ """
167
+
168
+ # New Year's Holiday.
169
+ name = tr("عطلة رأس السنة")
170
+ special_public_holidays = {
171
+ 2025: (JAN, 2, name),
172
+ }
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -18,9 +18,11 @@ from holidays.holiday_base import HolidayBase
18
18
 
19
19
 
20
20
  class Romania(HolidayBase, ChristianHolidays, InternationalHolidays):
21
- """
22
- https://en.wikipedia.org/wiki/Public_holidays_in_Romania
23
- http://www.dreptonline.ro/legislatie/codul_muncii.php
21
+ """Romania holidays.
22
+
23
+ References:
24
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Romania>
25
+ * <http://www.dreptonline.ro/legislatie/codul_muncii.php>
24
26
  """
25
27
 
26
28
  country = "RO"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -19,9 +19,11 @@ from holidays.observed_holiday_base import ObservedHolidayBase
19
19
 
20
20
 
21
21
  class Russia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
22
- """
23
- https://en.wikipedia.org/wiki/Public_holidays_in_Russia
24
- https://ru.wikipedia.org/wiki/Праздники_России
22
+ """Russia holidays.
23
+
24
+ References:
25
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Russia>
26
+ * <https://ru.wikipedia.org/wiki/Праздники_России>
25
27
  """
26
28
 
27
29
  country = "RU"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -19,15 +19,16 @@ from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON,
19
19
  class SaintKittsAndNevis(
20
20
  ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
21
21
  ):
22
- """
22
+ """Saint Kitts and Nevis holidays.
23
+
23
24
  References:
24
- - https://lawcommission.gov.kn/wp-content/documents/Revised-Acts-of-St-Kitts-and-Nevis/Revised-Acts-of-St-Kitts-and-Nevis-2009/Ch-23_23-Public-Holidays-Act.pdf
25
- - https://web.archive.org/web/20220124000224/https://aglcskn.info/wp-content/documents/Act02and09TOC/Ch-23_23-Public-Holidays-Act.pdf
26
- - https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Kitts_and_Nevis
25
+ * <https://lawcommission.gov.kn/wp-content/documents/Revised-Acts-of-St-Kitts-and-Nevis/Revised-Acts-of-St-Kitts-and-Nevis-2009/Ch-23_23-Public-Holidays-Act.pdf>
26
+ * <https://web.archive.org/web/20220124000224/https://aglcskn.info/wp-content/documents/Act02and09TOC/Ch-23_23-Public-Holidays-Act.pdf>
27
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Kitts_and_Nevis>
27
28
 
28
29
  Cross-Checked With:
29
- - https://sknhcottawa.gov.kn/in-skn-national-public-holidays/
30
- - https://www.timeanddate.com/holidays/saint-kitts-and-nevis/
30
+ * <https://sknhcottawa.gov.kn/in-skn-national-public-holidays/>
31
+ * <https://www.timeanddate.com/holidays/saint-kitts-and-nevis/>
31
32
 
32
33
  If Sovereign's Birthday, New Year's Day, Independence Day, or National Heroes Day
33
34
  fall on a Sunday the next following Monday shall be a public holiday.
@@ -121,21 +122,22 @@ class KNA(SaintKittsAndNevis):
121
122
 
122
123
 
123
124
  class SaintKittsAndNevisStaticHolidays:
124
- """
125
- References
126
- - https://www.sknis.gov.kn/2023/07/17/state-funeral-accorded-to-sir-tapley-national-day-of-mourning-and-half-holiday-declared-for-july-20/
127
- - https://www.sknis.gov.kn/2022/12/30/public-holiday-notice-request-from-the-department-of-labour/
128
- - https://www.sknis.gov.kn/2022/08/06/prime-minister-drew-declares-monday-august-08-2022-as-a-public-holiday-in-st-kitts-and-nevis/
129
- - https://www.sknis.gov.kn/2022/04/20/nia-announces-half-holiday/
130
- - https://www.sknis.gov.kn/2021/07/26/governor-general-proclaims-tuesday-3rd-august-2021-as-a-public-holiday/
131
- - https://nia.gov.kn/culturama-47-rescheduled-to-independence-holiday-weekend-in-september/
132
- - https://www.sknis.gov.kn/2019/12/27/public-holidays-during-carnival-2019-2020/
133
- - https://www.sknis.gov.kn/2018/12/29/proclamations-from-his-excellency-the-governor-general-re-carnival-public-holidays/
134
- - https://www.sknis.gov.kn/2017/12/19/public-holiday-declared-for-nevis-today-after-the-ccms-solid-win-in-the-local-elections/
135
- - https://www.sknis.gov.kn/2017/04/13/employers-must-comply-with-law-for-work-performed-on-national-holidays-says-labour-department/
136
- - https://www.facebook.com/share/p/ZkpwKmyAzN4fEFP2/
137
- - https://www.facebook.com/share/p/Jc1uGgzGpj6zUzqB/
138
- - https://www.facebook.com/share/p/6GSgvcCWS3aenQh6/
125
+ """Saint Kitts and Nevis special holidays.
126
+
127
+ References:
128
+ * <https://www.sknis.gov.kn/2023/07/17/state-funeral-accorded-to-sir-tapley-national-day-of-mourning-and-half-holiday-declared-for-july-20/>
129
+ * <https://www.sknis.gov.kn/2022/12/30/public-holiday-notice-request-from-the-department-of-labour/>
130
+ * <https://www.sknis.gov.kn/2022/08/06/prime-minister-drew-declares-monday-august-08-2022-as-a-public-holiday-in-st-kitts-and-nevis/>
131
+ * <https://www.sknis.gov.kn/2022/04/20/nia-announces-half-holiday/>
132
+ * <https://www.sknis.gov.kn/2021/07/26/governor-general-proclaims-tuesday-3rd-august-2021-as-a-public-holiday/>
133
+ * <https://nia.gov.kn/culturama-47-rescheduled-to-independence-holiday-weekend-in-september/>
134
+ * <https://www.sknis.gov.kn/2019/12/27/public-holidays-during-carnival-2019-2020/>
135
+ * <https://www.sknis.gov.kn/2018/12/29/proclamations-from-his-excellency-the-governor-general-re-carnival-public-holidays/>
136
+ * <https://www.sknis.gov.kn/2017/12/19/public-holiday-declared-for-nevis-today-after-the-ccms-solid-win-in-the-local-elections/>
137
+ * <https://www.sknis.gov.kn/2017/04/13/employers-must-comply-with-law-for-work-performed-on-national-holidays-says-labour-department/>
138
+ * <https://www.facebook.com/share/p/ZkpwKmyAzN4fEFP2/>
139
+ * <https://www.facebook.com/share/p/Jc1uGgzGpj6zUzqB/>
140
+ * <https://www.facebook.com/share/p/6GSgvcCWS3aenQh6/>
139
141
  """
140
142
 
141
143
  # Federal Election Victory Day.
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -17,13 +17,14 @@ from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON,
17
17
 
18
18
 
19
19
  class SaintLucia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
20
- """
20
+ """Saint Lucia holidays.
21
+
21
22
  References:
22
- - https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Lucia
23
- - https://www.timeanddate.com/holidays/saint-lucia/
24
- - https://archive.stlucia.gov.lc/saint_lucia/public_holidays.htm
25
- - https://archive.stlucia.gov.lc/stluciasilver/national_holidays.htm
26
- - https://web.archive.org/web/20160314100648/http://www.stluciachamber.org/uploadedImages/contentImg/file/List%20of%20Holidays%20for%202015%20(1).pdf
23
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Lucia>
24
+ * <https://www.timeanddate.com/holidays/saint-lucia/>
25
+ * <https://archive.stlucia.gov.lc/saint_lucia/public_holidays.htm>
26
+ * <https://archive.stlucia.gov.lc/stluciasilver/national_holidays.htm>
27
+ * <https://web.archive.org/web/20160314100648/http://www.stluciachamber.org/uploadedImages/contentImg/file/List%20of%20Holidays%20for%202015%20(1).pdf>
27
28
  """
28
29
 
29
30
  country = "LC"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -15,12 +15,13 @@ from holidays.holiday_base import HolidayBase
15
15
 
16
16
 
17
17
  class Samoa(HolidayBase, ChristianHolidays, InternationalHolidays):
18
- """
18
+ """Samoa holidays.
19
+
19
20
  References:
20
- - https://en.wikipedia.org/wiki/Public_holidays_in_Samoa
21
- - https://www.timeanddate.com/holidays/samoa/
22
- - https://www.mcil.gov.ws/?attachment_id=6336
23
- - https://www.paclii.org/ws/legis/consol_act_2020/pha2008163/
21
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Samoa>
22
+ * <https://www.timeanddate.com/holidays/samoa/>
23
+ * <https://www.mcil.gov.ws/?attachment_id=6336>
24
+ * <https://www.paclii.org/ws/legis/consol_act_2020/pha2008163/>
24
25
  """
25
26
 
26
27
  country = "WS"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -15,9 +15,10 @@ from holidays.holiday_base import HolidayBase
15
15
 
16
16
 
17
17
  class SanMarino(HolidayBase, ChristianHolidays, InternationalHolidays):
18
- """
18
+ """San Marino holidays.
19
+
19
20
  References:
20
- - https://en.wikipedia.org/wiki/Public_holidays_in_San_Marino
21
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_San_Marino>
21
22
  """
22
23
 
23
24
  country = "SM"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -27,18 +27,12 @@ from holidays.observed_holiday_base import (
27
27
 
28
28
 
29
29
  class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
30
- """
31
- There are only 4 official national holidays in Saudi:
32
- - https://laboreducation.hrsd.gov.sa/en/gallery/274
33
- - https://laboreducation.hrsd.gov.sa/en/labor-education/322
34
- - https://english.alarabiya.net/News/gulf/2022/01/27/Saudi-Arabia-to-commemorate-Founding-Day-on-Feb-22-annually-Royal-order
35
-
36
- The national day and the founding day holidays are based on the
37
- Georgian calendar while the other two holidays are based on the
38
- Islamic Calendar, and they are estimates as they announced each
39
- year and based on moon sightings; they are:
40
- - Eid al-Fitr
41
- - Eid al-Adha
30
+ """Saudi Arabia holidays.
31
+
32
+ References:
33
+ * <https://laboreducation.hrsd.gov.sa/en/gallery/274>
34
+ * <https://laboreducation.hrsd.gov.sa/en/labor-education/322>
35
+ * <https://english.alarabiya.net/News/gulf/2022/01/27/Saudi-Arabia-to-commemorate-Founding-Day-on-Feb-22-annually-Royal-order>
42
36
  """
43
37
 
44
38
  country = "SA"
@@ -51,8 +45,14 @@ class SaudiArabia(ObservedHolidayBase, IslamicHolidays, StaticHolidays):
51
45
  observed_estimated_label = tr("(تقدير ملاحظة) %s")
52
46
  supported_languages = ("ar", "en_US")
53
47
 
54
- def __init__(self, *args, **kwargs):
55
- IslamicHolidays.__init__(self)
48
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
49
+ """
50
+ Args:
51
+ islamic_show_estimated:
52
+ Whether to add "estimated" label to Islamic holidays name
53
+ if holiday date is estimated.
54
+ """
55
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
56
56
  StaticHolidays.__init__(self, SaudiArabiaStaticHolidays)
57
57
  kwargs.setdefault("observed_rule", FRI_TO_PREV_THU + SAT_TO_NEXT_SUN)
58
58
  super().__init__(*args, **kwargs)
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -18,11 +18,10 @@ from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON,
18
18
 
19
19
 
20
20
  class Serbia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
21
- """
22
- Serbia holidays.
21
+ """Serbia holidays.
23
22
 
24
23
  References:
25
- - https://en.wikipedia.org/wiki/Public_holidays_in_Serbia
24
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Serbia>
26
25
  """
27
26
 
28
27
  country = "RS"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -18,19 +18,14 @@ from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
18
18
 
19
19
 
20
20
  class Seychelles(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
21
- """
22
- https://www.psb.gov.sc/public-holidays
23
- https://www.cbs.sc/PublicHolidays.html
24
-
25
- [Act 19 of 1976, 1994 Amendment]
26
- Oldest Seychelles Holidays Law available online in full.
27
- https://seylii.org/akn/sc/act/1976/19/eng@2012-06-30
28
- [Act 11 of 2014]
29
- Holidays names changed.
30
- https://seylii.org/akn/sc/act/2014/11/eng@2014-08-04
31
- [Act 3 of 2017]
32
- Added Easter Monday, repealing Liberation Day.
33
- https://seylii.org/akn/sc/act/2017/3/eng@2017-04-12
21
+ """Seychelles holidays.
22
+
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)
34
29
 
35
30
  Where any public holiday, except Sunday, falls on a Sunday the next following day,
36
31
  not being itself a public holiday, shall be a public holiday.
@@ -122,18 +117,19 @@ class SYC(Seychelles):
122
117
 
123
118
 
124
119
  class SeychellesStaticHolidays:
125
- """
126
- Sources:
127
- - https://seylii.org/akn/sc/act/si/2015/58/eng@2015-12-01
128
- - https://seylii.org/akn/sc/act/si/2015/59/eng@2015-12-11
129
- - https://seylii.org/akn/sc/act/si/2016/58/eng@2016-09-06
130
- - https://seylii.org/akn/sc/act/si/2019/10/eng@2019-03-05
131
- - https://seylii.org/akn/sc/act/si/2019/61/eng@2019-10-18
132
- - https://seylii.org/akn/sc/act/si/2020/134/eng@2020-09-17
133
- - https://seylii.org/akn/sc/act/si/2020/154/eng@2020-10-26
134
- - https://www.statehouse.gov.sc/news/1765/public-holiday-october-1
135
- - https://www.egov.sc/PressRoom/DisplayPressRelease.aspx?PRLID=196
136
- - https://www.nation.sc/archive/216478/saturday-may-12-2007-public-holiday
120
+ """Seychelles special holidays.
121
+
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>
137
133
 
138
134
  All Election Dates usually proceed from the Outer Islands first, then the Inner Islands, and
139
135
  the main capital, Mahé, on the last day. The current implementation only uses the last day,
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS file)
7
+ # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -41,52 +41,46 @@ class Singapore(
41
41
  IslamicHolidays,
42
42
  StaticHolidays,
43
43
  ):
44
+ """Singapore holidays.
45
+
46
+ References:
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)
51
+
52
+ Limitations:
53
+ * Prior to 1969: holidays are estimated.
54
+ * Prior to 2000: holidays may not be accurate.
55
+ * 2024 and later: the following four moving date holidays (whose exact
56
+ date is announced yearly) are estimated, and so denoted:
57
+ * Hari Raya Puasa
58
+ * Hari Raya Haji
59
+ * Vesak Day
60
+ * Deepavali
61
+ """
62
+
44
63
  country = "SG"
45
64
  default_language = "en_SG"
46
65
  # %s (observed).
47
66
  observed_label = tr("%s (observed)")
48
67
  supported_languages = ("en_SG", "en_US", "th")
49
68
 
50
- def __init__(self, *args, **kwargs):
69
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
51
70
  """
52
- A subclass of :py:class:`HolidayBase` representing public holidays in
53
- Singapore.
54
-
55
- Limitations:
56
-
57
- - Prior to 1969: holidays are estimated.
58
- - Prior to 2000: holidays may not be accurate.
59
- - 2024 and later: the following four moving date holidays (whose exact
60
- date is announced yearly) are estimated, and so denoted:
61
-
62
- - Hari Raya Puasa
63
- - Hari Raya Haji
64
- - Vesak Day
65
- - Deepavali
66
-
67
- Sources:
68
-
69
- - `Holidays Act <https://sso.agc.gov.sg/Act/HA1998>`__ (Act 24 of
70
- 1968—Holidays (Amendment) Act 1968)
71
- - `Ministry of Manpower
72
- <https://www.mom.gov.sg/employment-practices/public-holidays>`__
73
-
74
- References:
75
-
76
- - `Wikipedia
77
- <https://en.wikipedia.org/wiki/Public_holidays_in_Singapore>`__
78
-
79
- Country created and maintained by: `Mike Borsetti
80
- <https://github.com/mborsetti>`__
81
-
82
- See parameters and usage in :py:class:`HolidayBase`.
71
+ Args:
72
+ islamic_show_estimated:
73
+ Whether to add "estimated" label to Islamic holidays name
74
+ if holiday date is estimated.
83
75
  """
84
76
  BuddhistCalendarHolidays.__init__(self, cls=SingaporeBuddhistHolidays, show_estimated=True)
85
77
  ChineseCalendarHolidays.__init__(self, cls=SingaporeChineseHolidays, show_estimated=True)
86
78
  ChristianHolidays.__init__(self)
87
79
  HinduCalendarHolidays.__init__(self, cls=SingaporeHinduHolidays)
88
80
  InternationalHolidays.__init__(self)
89
- IslamicHolidays.__init__(self, cls=SingaporeIslamicHolidays)
81
+ IslamicHolidays.__init__(
82
+ self, cls=SingaporeIslamicHolidays, show_estimated=islamic_show_estimated
83
+ )
90
84
  StaticHolidays.__init__(self, cls=SingaporeStaticHolidays)
91
85
  # Implement Section 4(2) of the Holidays Act:
92
86
  # "if any day specified in the Schedule falls on a Sunday,
@@ -309,10 +303,11 @@ class SingaporeIslamicHolidays(_CustomIslamicHolidays):
309
303
 
310
304
 
311
305
  class SingaporeStaticHolidays:
312
- """
313
- References
314
- - https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015
315
- - https://www.straitstimes.com/singapore/politics/singapore-presidential-election-2023-polling-day-on-sept-1-nomination-day-on-aug-22
306
+ """Singapore special holidays.
307
+
308
+ References:
309
+ * <https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015>
310
+ * <https://www.straitstimes.com/singapore/politics/singapore-presidential-election-2023-polling-day-on-sept-1-nomination-day-on-aug-22>
316
311
  """
317
312
 
318
313
  # Polling Day.