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
holidays/groups/hindu.py CHANGED
@@ -4,12 +4,13 @@
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
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from collections.abc import Iterable
13
14
  from datetime import date
14
15
  from typing import Optional
15
16
 
@@ -35,10 +36,54 @@ class HinduCalendarHolidays(EasternCalendarHolidays):
35
36
  Adds customizable estimation label to holiday name if holiday date
36
37
  is an estimation.
37
38
  """
39
+
38
40
  return self._add_eastern_calendar_holiday(
39
41
  name, dt_estimated, self._hindu_calendar_show_estimated
40
42
  )
41
43
 
44
+ def _add_hindu_calendar_holiday_set(
45
+ self, name: str, dts_estimated: Iterable[tuple[date, bool]], days_delta: int = 0
46
+ ) -> set[date]:
47
+ """
48
+ Add Hindu calendar holidays.
49
+
50
+ Adds customizable estimation label to holiday name if holiday date
51
+ is an estimation.
52
+ """
53
+ added_dates = set()
54
+ for dt_estimated in dts_estimated:
55
+ if dt := self._add_eastern_calendar_holiday(
56
+ name, dt_estimated, self._hindu_calendar_show_estimated, days_delta=days_delta
57
+ ):
58
+ added_dates.add(dt)
59
+
60
+ return added_dates
61
+
62
+ def _add_buddha_purnima(self, name) -> Optional[date]:
63
+ """
64
+ Add Buddha Purnima.
65
+
66
+ Buddha Purnima, also known as Vesak, commemorates the birth, enlightenment,
67
+ and passing of Gautama Buddha. It falls on the full moon day of the
68
+ Hindu month of Vaisakha (April-May).
69
+ https://en.wikipedia.org/wiki/Vesak
70
+ """
71
+ return self._add_hindu_calendar_holiday(
72
+ name, self._hindu_calendar.buddha_purnima_date(self._year)
73
+ )
74
+
75
+ def _add_chhath_puja(self, name) -> Optional[date]:
76
+ """
77
+ Add Chhath Puja.
78
+
79
+ Chhath Puja is a Hindu festival dedicated to the Sun God (Surya).
80
+ It is observed six days after Diwali in the month of Kartika (October-November).
81
+ https://en.wikipedia.org/wiki/Chhath
82
+ """
83
+ return self._add_hindu_calendar_holiday(
84
+ name, self._hindu_calendar.chhath_puja_date(self._year)
85
+ )
86
+
42
87
  def _add_diwali(self, name) -> Optional[date]:
43
88
  """
44
89
  Add Diwali Festival.
@@ -51,6 +96,204 @@ class HinduCalendarHolidays(EasternCalendarHolidays):
51
96
  """
52
97
  return self._add_hindu_calendar_holiday(name, self._hindu_calendar.diwali_date(self._year))
53
98
 
99
+ def _add_diwali_india(self, name) -> Optional[date]:
100
+ return self._add_hindu_calendar_holiday(
101
+ name, self._hindu_calendar.diwali_india_date(self._year)
102
+ )
103
+
104
+ def _add_dussehra(self, name) -> Optional[date]:
105
+ """
106
+ Add Dussehra Festival.
107
+
108
+ Dussehra (Vijayadashami) is a major Hindu festival that marks the end
109
+ of Navratri. It is celebrated on the 10th day of the Hindu lunisolar
110
+ month of Ashvin (September-October).
111
+ https://en.wikipedia.org/wiki/Vijayadashami
112
+ """
113
+ return self._add_hindu_calendar_holiday(
114
+ name, self._hindu_calendar.dussehra_date(self._year)
115
+ )
116
+
117
+ def _add_ganesh_chaturthi(self, name) -> Optional[date]:
118
+ """
119
+ Add Ganesh Chaturthi.
120
+
121
+ Ganesh Chaturthi is a Hindu festival celebrating the birth of Lord Ganesha.
122
+ It falls on the fourth day of the Hindu month of Bhadrapada (August/September).
123
+ https://en.wikipedia.org/wiki/Ganesh_Chaturthi
124
+ """
125
+ return self._add_hindu_calendar_holiday(
126
+ name, self._hindu_calendar.ganesh_chaturthi_date(self._year)
127
+ )
128
+
129
+ def _add_govardhan_puja(self, name) -> Optional[date]:
130
+ """
131
+ Add Govardhan Puja.
132
+
133
+ Govardhan Puja, also known as Annakut, is celebrated the day after Diwali
134
+ to honor Lord Krishna. It falls on the first lunar day of the Hindu month of Kartika.
135
+ https://en.wikipedia.org/wiki/Govardhan_Puja
136
+ """
137
+ return self._add_hindu_calendar_holiday(
138
+ name, self._hindu_calendar.govardhan_puja_date(self._year)
139
+ )
140
+
141
+ def _add_gudi_padwa(self, name) -> Optional[date]:
142
+ """
143
+ Add Gudi Padwa.
144
+
145
+ Gudi Padwa is the traditional New Year festival for Maharashtrians.
146
+ It falls on the first day of Chaitra (March-April).
147
+ https://en.wikipedia.org/wiki/Gudi_Padwa
148
+ """
149
+ return self._add_hindu_calendar_holiday(
150
+ name, self._hindu_calendar.gudi_padwa_date(self._year)
151
+ )
152
+
153
+ def _add_guru_gobind_singh_jayanti(self, name) -> set[date]:
154
+ """
155
+ Add Guru Gobind Singh Jayanti.
156
+
157
+ Guru Gobind Singh Jayanti commemorates the birth anniversary of
158
+ Guru Gobind Singh, the tenth Sikh Guru. It follows the Nanakshahi calendar.
159
+ https://en.wikipedia.org/wiki/Guru_Gobind_Singh
160
+ """
161
+ return self._add_hindu_calendar_holiday_set(
162
+ name, self._hindu_calendar.guru_gobind_singh_jayanti_date(self._year)
163
+ )
164
+
165
+ def _add_guru_nanak_jayanti(self, name) -> Optional[date]:
166
+ """
167
+ Add Guru Nanak Jayanti.
168
+
169
+ Guru Nanak Jayanti celebrates the birth anniversary of Guru Nanak,
170
+ the founder of Sikhism. It is observed on the full moon day of
171
+ Kartik (October-November).
172
+ https://en.wikipedia.org/wiki/Guru_Nanak_Gurpurab
173
+ """
174
+ return self._add_hindu_calendar_holiday(
175
+ name, self._hindu_calendar.guru_nanak_jayanti_date(self._year)
176
+ )
177
+
178
+ def _add_holi(self, name) -> Optional[date]:
179
+ """
180
+ Add Holi Festival.
181
+
182
+ Holi, known as the Festival of Colors, is a Hindu festival that marks
183
+ the arrival of spring. It is celebrated on the full moon day of the
184
+ Hindu month of Phalguna (February/March).
185
+ https://en.wikipedia.org/wiki/Holi
186
+ """
187
+ return self._add_hindu_calendar_holiday(name, self._hindu_calendar.holi_date(self._year))
188
+
189
+ def _add_janmashtami(self, name) -> Optional[date]:
190
+ """
191
+ Add Janmashtami.
192
+
193
+ Janmashtami is a Hindu festival that celebrates the birth of Lord Krishna.
194
+ It falls on the eighth day of the Hindu month of Bhadrapada (August/September).
195
+ https://en.wikipedia.org/wiki/Krishna_Janmashtami
196
+ """
197
+ return self._add_hindu_calendar_holiday(
198
+ name, self._hindu_calendar.janmashtami_date(self._year)
199
+ )
200
+
201
+ def _add_maha_navami(self, name) -> Optional[date]:
202
+ """
203
+ Add Maha Navami.
204
+
205
+ Maha Navami is the ninth day of Navratri, dedicated to Goddess Durga.
206
+ It is observed in Ashvin (September-October).
207
+ https://en.wikipedia.org/wiki/Navaratri
208
+ """
209
+ return self._add_hindu_calendar_holiday(
210
+ name, self._hindu_calendar.maha_navami_date(self._year)
211
+ )
212
+
213
+ def _add_maha_shivaratri(self, name) -> Optional[date]:
214
+ """
215
+ Add Maha Shivaratri.
216
+
217
+ Maha Shivaratri is a Hindu festival dedicated to Lord Shiva. It is celebrated
218
+ on the 14th night of the Hindu month of Phalguna (February/March).
219
+ https://en.wikipedia.org/wiki/Maha_Shivaratri
220
+ """
221
+ return self._add_hindu_calendar_holiday(
222
+ name, self._hindu_calendar.maha_shivaratri_date(self._year)
223
+ )
224
+
225
+ def _add_mahavir_jayanti(self, name) -> Optional[date]:
226
+ """
227
+ Add Mahavir Jayanti.
228
+
229
+ Mahavir Jayanti celebrates the birth of Lord Mahavira, the 24th
230
+ Tirthankara of Jainism. It falls on the 13th day of Chaitra (March-April).
231
+ https://en.wikipedia.org/wiki/Mahavir_Jayanti
232
+ """
233
+ return self._add_hindu_calendar_holiday(
234
+ name, self._hindu_calendar.mahavir_jayanti_date(self._year)
235
+ )
236
+
237
+ def _add_makar_sankranti(self, name) -> Optional[date]:
238
+ """
239
+ Add Makar Sankranti.
240
+
241
+ Makar Sankranti is a Hindu festival that marks the transition of the Sun
242
+ into Capricorn (Makar). It is celebrated on January 14th or 15th every year.
243
+ https://en.wikipedia.org/wiki/Makar_Sankranti
244
+ """
245
+ return self._add_hindu_calendar_holiday(
246
+ name, self._hindu_calendar.makar_sankranti_date(self._year)
247
+ )
248
+
249
+ def _add_onam(self, name) -> Optional[date]:
250
+ """
251
+ Add Onam.
252
+
253
+ Onam is a major festival in Kerala, celebrating the homecoming of
254
+ King Mahabali. It falls in the month of Chingam (August-September).
255
+ https://en.wikipedia.org/wiki/Onam
256
+ """
257
+ return self._add_hindu_calendar_holiday(name, self._hindu_calendar.onam_date(self._year))
258
+
259
+ def _add_raksha_bandhan(self, name) -> Optional[date]:
260
+ """
261
+ Add Raksha Bandhan.
262
+
263
+ Raksha Bandhan is a Hindu festival that celebrates the bond between
264
+ brothers and sisters. It falls on the full moon day of the Hindu month
265
+ of Shravana (July/August).
266
+ https://en.wikipedia.org/wiki/Raksha_Bandhan
267
+ """
268
+ return self._add_hindu_calendar_holiday(
269
+ name, self._hindu_calendar.raksha_bandhan_date(self._year)
270
+ )
271
+
272
+ def _add_ram_navami(self, name) -> Optional[date]:
273
+ """
274
+ Add Ram Navami.
275
+
276
+ Ram Navami is a Hindu festival celebrating the birth of Lord Rama.
277
+ It is observed on the ninth day of the Hindu month of Chaitra (March/April).
278
+ https://en.wikipedia.org/wiki/Rama_Navami
279
+ """
280
+ return self._add_hindu_calendar_holiday(
281
+ name, self._hindu_calendar.ram_navami_date(self._year)
282
+ )
283
+
284
+ def _add_sharad_navratri(self, name) -> Optional[date]:
285
+ """
286
+ Add Navratri / Sharad Navratri.
287
+
288
+ Navratri is a Hindu festival dedicated to the worship of Goddess Durga.
289
+ It is celebrated over nine nights and occurs in the lunar month of Ashvin
290
+ (September/October).
291
+ https://en.wikipedia.org/wiki/Navratri
292
+ """
293
+ return self._add_hindu_calendar_holiday(
294
+ name, self._hindu_calendar.sharad_navratri_date(self._year)
295
+ )
296
+
54
297
  def _add_thaipusam(self, name) -> Optional[date]:
55
298
  """
56
299
  Add Thaipusam.
@@ -62,3 +305,15 @@ class HinduCalendarHolidays(EasternCalendarHolidays):
62
305
  return self._add_hindu_calendar_holiday(
63
306
  name, self._hindu_calendar.thaipusam_date(self._year)
64
307
  )
308
+
309
+ def _add_vaisakhi(self, name) -> Optional[date]:
310
+ """
311
+ Add Vaisakhi.
312
+
313
+ Vaisakhi is a major Sikh festival marking the Sikh New Year and the
314
+ founding of the Khalsa. It falls on April 13 or 14.
315
+ https://en.wikipedia.org/wiki/Vaisakhi
316
+ """
317
+ return self._add_hindu_calendar_holiday(
318
+ name, self._hindu_calendar.vaisakhi_date(self._year)
319
+ )
@@ -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
@@ -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
@@ -25,8 +25,9 @@ class IslamicHolidays(EasternCalendarHolidays):
25
25
  calendar consisting of 12 lunar months in a year of 354 or 355 days.
26
26
  """
27
27
 
28
- def __init__(self, cls=None) -> None:
28
+ def __init__(self, cls=None, show_estimated=True) -> None:
29
29
  self._islamic_calendar = cls() if cls else _IslamicLunar()
30
+ self._islamic_calendar_show_estimated = show_estimated
30
31
 
31
32
  def _add_ali_al_rida_death_day(self, name) -> set[date]:
32
33
  """
@@ -262,7 +263,9 @@ class IslamicHolidays(EasternCalendarHolidays):
262
263
  """
263
264
  added_dates = set()
264
265
  for dts in dates:
265
- if dt := self._add_eastern_calendar_holiday(name, dts, days_delta=days_delta):
266
+ if dt := self._add_eastern_calendar_holiday(
267
+ name, dts, self._islamic_calendar_show_estimated, days_delta
268
+ ):
266
269
  added_dates.add(dt)
267
270
 
268
271
  return added_dates
@@ -292,6 +295,17 @@ class IslamicHolidays(EasternCalendarHolidays):
292
295
  name, self._islamic_calendar.isra_and_miraj_dates(self._year)
293
296
  )
294
297
 
298
+ def _add_laylat_al_qadr_day(self, name):
299
+ """
300
+ Add Laylat al-Qadr Day (27th day of 9th month).
301
+
302
+ The Night of Power.
303
+ https://en.wikipedia.org/wiki/Night_of_Power
304
+ """
305
+ return self._add_islamic_calendar_holiday(
306
+ name, self._islamic_calendar.laylat_al_qadr_dates(self._year)
307
+ )
308
+
295
309
  def _add_maldives_embraced_islam_day(self, name) -> set[date]:
296
310
  """
297
311
  Add Maldives Embraced Islam Day (1st day of 4th month).
@@ -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
@@ -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
holidays/groups/thai.py CHANGED
@@ -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
@@ -35,9 +35,6 @@ class ThaiCalendarHolidays:
35
35
  Asalha Pūjā (also written as Asarnha Bucha Day) is a Buddhist festival
36
36
  celebrated on the 15th Waxing Day (Full Moon) of Month 8.
37
37
 
38
- Khmer variant: always fall on Month 8.
39
- Thai variant: will use Month 8.8 instead for Athikamat years.
40
-
41
38
  https://en.wikipedia.org/wiki/Asalha_Puja
42
39
  """
43
40
 
@@ -94,9 +91,6 @@ class ThaiCalendarHolidays:
94
91
  Start of Buddhist Lent (also written as Khao Phansa Day) is a Buddhist
95
92
  festival celebrated on the 1st Waning Day of Month 8.
96
93
 
97
- Khmer variant: always fall on Month 8.
98
- Thai variant: will use Month 8.8 instead for Athikamat years.
99
-
100
94
  https://en.wikipedia.org/wiki/Vassa
101
95
  """
102
96
 
holidays/helpers.py CHANGED
@@ -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