holidays 0.80__py3-none-any.whl → 0.82__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 (142) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/burmese.py +319 -0
  3. holidays/calendars/chinese.py +39 -1
  4. holidays/calendars/hebrew.py +2 -2
  5. holidays/calendars/thai.py +49 -2
  6. holidays/countries/__init__.py +16 -0
  7. holidays/countries/afghanistan.py +7 -5
  8. holidays/countries/algeria.py +89 -24
  9. holidays/countries/antarctica.py +58 -0
  10. holidays/countries/bouvet_island.py +31 -0
  11. holidays/countries/brazil.py +1 -1
  12. holidays/countries/british_indian_ocean_territory.py +31 -0
  13. holidays/countries/bulgaria.py +6 -1
  14. holidays/countries/chile.py +9 -8
  15. holidays/countries/china.py +4 -0
  16. holidays/countries/cuba.py +3 -4
  17. holidays/countries/djibouti.py +1 -1
  18. holidays/countries/heard_island_and_mcdonald_islands.py +31 -0
  19. holidays/countries/hongkong.py +5 -1
  20. holidays/countries/hungary.py +4 -5
  21. holidays/countries/india.py +6 -0
  22. holidays/countries/japan.py +22 -18
  23. holidays/countries/jordan.py +6 -3
  24. holidays/countries/kuwait.py +6 -3
  25. holidays/countries/macau.py +9 -0
  26. holidays/countries/malaysia.py +14 -3
  27. holidays/countries/mongolia.py +2 -0
  28. holidays/countries/myanmar.py +195 -0
  29. holidays/countries/north_korea.py +161 -0
  30. holidays/countries/norway.py +23 -8
  31. holidays/countries/oman.py +6 -2
  32. holidays/countries/paraguay.py +70 -23
  33. holidays/countries/philippines.py +11 -2
  34. holidays/countries/portugal.py +5 -6
  35. holidays/countries/qatar.py +5 -2
  36. holidays/countries/rwanda.py +6 -1
  37. holidays/countries/saint_helena_ascension_and_tristan_da_cunha.py +197 -0
  38. holidays/countries/saudi_arabia.py +6 -5
  39. holidays/countries/serbia.py +5 -0
  40. holidays/countries/south_africa.py +96 -53
  41. holidays/countries/south_korea.py +10 -1
  42. holidays/countries/spain.py +26 -4
  43. holidays/countries/sudan.py +118 -0
  44. holidays/countries/switzerland.py +169 -3
  45. holidays/countries/taiwan.py +27 -3
  46. holidays/countries/tajikistan.py +1 -1
  47. holidays/countries/tanzania.py +6 -1
  48. holidays/countries/thailand.py +21 -0
  49. holidays/countries/tonga.py +6 -1
  50. holidays/countries/trinidad_and_tobago.py +6 -1
  51. holidays/countries/united_arab_emirates.py +9 -2
  52. holidays/countries/united_states.py +16 -0
  53. holidays/countries/uruguay.py +6 -1
  54. holidays/countries/vietnam.py +10 -1
  55. holidays/countries/yemen.py +6 -3
  56. holidays/groups/__init__.py +1 -0
  57. holidays/groups/balinese_saka.py +1 -1
  58. holidays/groups/buddhist.py +1 -1
  59. holidays/groups/burmese.py +273 -0
  60. holidays/groups/chinese.py +27 -14
  61. holidays/groups/custom.py +8 -2
  62. holidays/groups/eastern.py +25 -3
  63. holidays/groups/hebrew.py +16 -14
  64. holidays/groups/hindu.py +15 -13
  65. holidays/groups/islamic.py +52 -47
  66. holidays/groups/mongolian.py +1 -1
  67. holidays/groups/sinhala.py +4 -9
  68. holidays/groups/tibetan.py +3 -4
  69. holidays/holiday_base.py +5 -4
  70. holidays/ical.py +6 -4
  71. holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
  72. holidays/locale/ar_SD/LC_MESSAGES/SD.mo +0 -0
  73. holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
  74. holidays/locale/en_GB/LC_MESSAGES/SH.mo +0 -0
  75. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  76. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  77. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  78. holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
  79. holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
  80. holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
  81. holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
  82. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  83. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  84. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  85. holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
  86. holidays/locale/en_US/LC_MESSAGES/KP.mo +0 -0
  87. holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
  88. holidays/locale/en_US/LC_MESSAGES/MM.mo +0 -0
  89. holidays/locale/en_US/LC_MESSAGES/MN.mo +0 -0
  90. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  91. holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
  92. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  93. holidays/locale/en_US/LC_MESSAGES/SD.mo +0 -0
  94. holidays/locale/en_US/LC_MESSAGES/SH.mo +0 -0
  95. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  96. holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
  97. holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
  98. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  99. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  100. holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
  101. holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
  102. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  103. holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
  104. holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
  105. holidays/locale/ko_KP/LC_MESSAGES/KP.mo +0 -0
  106. holidays/locale/mn/LC_MESSAGES/MN.mo +0 -0
  107. holidays/locale/my/LC_MESSAGES/MM.mo +0 -0
  108. holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
  109. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  110. holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
  111. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  112. holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
  113. holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
  114. holidays/locale/th/LC_MESSAGES/MM.mo +0 -0
  115. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  116. holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
  117. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  118. holidays/locale/th/LC_MESSAGES/US.mo +0 -0
  119. holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
  120. holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
  121. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  122. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  123. holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
  124. holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
  125. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  126. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  127. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  128. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  129. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  130. holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
  131. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  132. holidays/no_holiday_base.py +21 -0
  133. holidays/observed_holiday_base.py +1 -1
  134. holidays/registry.py +12 -0
  135. holidays/utils.py +5 -5
  136. holidays/version.py +1 -1
  137. {holidays-0.80.dist-info → holidays-0.82.dist-info}/METADATA +61 -5
  138. {holidays-0.80.dist-info → holidays-0.82.dist-info}/RECORD +142 -121
  139. {holidays-0.80.dist-info → holidays-0.82.dist-info}/licenses/CONTRIBUTORS +2 -0
  140. {holidays-0.80.dist-info → holidays-0.82.dist-info}/WHEEL +0 -0
  141. {holidays-0.80.dist-info → holidays-0.82.dist-info}/licenses/LICENSE +0 -0
  142. {holidays-0.80.dist-info → holidays-0.82.dist-info}/top_level.txt +0 -0
@@ -144,85 +144,122 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
144
144
  self._add_christmas_day_two(tr("Stephanstag"))
145
145
 
146
146
  def _populate_subdiv_ar_public_holidays(self):
147
+ # Good Friday.
147
148
  self._add_good_friday(tr("Karfreitag"))
148
149
 
150
+ # Easter Monday.
149
151
  self._add_easter_monday(tr("Ostermontag"))
150
152
 
153
+ # Whit Monday.
151
154
  self._add_whit_monday(tr("Pfingstmontag"))
152
155
 
153
156
  self._add_observed(
154
- self._add_christmas_day_two(tr("Stephanstag")), rule=TUE_TO_NONE + SAT_TO_NONE
157
+ # Saint Stephen's Day.
158
+ self._add_christmas_day_two(tr("Stephanstag")),
159
+ rule=TUE_TO_NONE + SAT_TO_NONE,
155
160
  )
156
161
 
157
162
  def _populate_subdiv_ai_public_holidays(self):
163
+ # Good Friday.
158
164
  self._add_good_friday(tr("Karfreitag"))
159
165
 
166
+ # Easter Monday.
160
167
  self._add_easter_monday(tr("Ostermontag"))
161
168
 
169
+ # Whit Monday.
162
170
  self._add_whit_monday(tr("Pfingstmontag"))
163
171
 
172
+ # Corpus Christi.
164
173
  self._add_corpus_christi_day(tr("Fronleichnam"))
165
174
 
175
+ # Assumption Day.
166
176
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
167
177
 
178
+ # All Saints' Day.
168
179
  self._add_all_saints_day(tr("Allerheiligen"))
169
180
 
181
+ # Immaculate Conception.
170
182
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
171
183
 
172
184
  self._add_observed(
173
- self._add_christmas_day_two(tr("Stephanstag")), rule=TUE_TO_NONE + SAT_TO_NONE
185
+ # Saint Stephen's Day.
186
+ self._add_christmas_day_two(tr("Stephanstag")),
187
+ rule=TUE_TO_NONE + SAT_TO_NONE,
174
188
  )
175
189
 
176
190
  def _populate_subdiv_bl_public_holidays(self):
191
+ # Good Friday.
177
192
  self._add_good_friday(tr("Karfreitag"))
178
193
 
194
+ # Easter Monday.
179
195
  self._add_easter_monday(tr("Ostermontag"))
180
196
 
197
+ # Labor Day.
181
198
  self._add_labor_day(tr("Tag der Arbeit"))
182
199
 
200
+ # Whit Monday.
183
201
  self._add_whit_monday(tr("Pfingstmontag"))
184
202
 
203
+ # Saint Stephen's Day.
185
204
  self._add_christmas_day_two(tr("Stephanstag"))
186
205
 
187
206
  def _populate_subdiv_bs_public_holidays(self):
207
+ # Good Friday.
188
208
  self._add_good_friday(tr("Karfreitag"))
189
209
 
210
+ # Easter Monday.
190
211
  self._add_easter_monday(tr("Ostermontag"))
191
212
 
213
+ # Labor Day.
192
214
  self._add_labor_day(tr("Tag der Arbeit"))
193
215
 
216
+ # Whit Monday.
194
217
  self._add_whit_monday(tr("Pfingstmontag"))
195
218
 
219
+ # Saint Stephen's Day.
196
220
  self._add_christmas_day_two(tr("Stephanstag"))
197
221
 
198
222
  def _populate_subdiv_be_public_holidays(self):
223
+ # Saint Berchtold's Day.
199
224
  self._add_new_years_day_two(tr("Berchtoldstag"))
200
225
 
226
+ # Good Friday.
201
227
  self._add_good_friday(tr("Karfreitag"))
202
228
 
229
+ # Easter Monday.
203
230
  self._add_easter_monday(tr("Ostermontag"))
204
231
 
232
+ # Whit Monday.
205
233
  self._add_whit_monday(tr("Pfingstmontag"))
206
234
 
235
+ # Saint Stephen's Day.
207
236
  self._add_christmas_day_two(tr("Stephanstag"))
208
237
 
209
238
  def _populate_subdiv_fr_public_holidays(self):
239
+ # Good Friday.
210
240
  self._add_good_friday(tr("Karfreitag"))
211
241
 
212
242
  def _populate_subdiv_fr_optional_holidays(self):
243
+ # Saint Berchtold's Day.
213
244
  self._add_new_years_day_two(tr("Berchtoldstag"))
214
245
 
246
+ # Easter Monday.
215
247
  self._add_easter_monday(tr("Ostermontag"))
216
248
 
249
+ # Whit Monday.
217
250
  self._add_whit_monday(tr("Pfingstmontag"))
218
251
 
252
+ # Saint Stephen's Day.
219
253
  self._add_christmas_day_two(tr("Stephanstag"))
220
254
 
221
255
  def _populate_subdiv_ge_public_holidays(self):
256
+ # Good Friday.
222
257
  self._add_good_friday(tr("Karfreitag"))
223
258
 
259
+ # Easter Monday.
224
260
  self._add_easter_monday(tr("Ostermontag"))
225
261
 
262
+ # Whit Monday.
226
263
  self._add_whit_monday(tr("Pfingstmontag"))
227
264
 
228
265
  # Genevan Fast.
@@ -241,70 +278,98 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
241
278
  _timedelta(dt, +7) if dt == _timedelta(self._easter_sunday, -3) else dt,
242
279
  )
243
280
 
281
+ # Good Friday.
244
282
  self._add_good_friday(tr("Karfreitag"))
245
283
 
284
+ # Easter Monday.
246
285
  self._add_easter_monday(tr("Ostermontag"))
247
286
 
287
+ # Whit Monday.
248
288
  self._add_whit_monday(tr("Pfingstmontag"))
249
289
 
290
+ # All Saints' Day.
250
291
  self._add_all_saints_day(tr("Allerheiligen"))
251
292
 
293
+ # Saint Stephen's Day.
252
294
  self._add_christmas_day_two(tr("Stephanstag"))
253
295
 
254
296
  def _populate_subdiv_gl_optional_holidays(self):
297
+ # Saint Berchtold's Day.
255
298
  self._add_new_years_day_two(tr("Berchtoldstag"))
256
299
 
257
300
  def _populate_subdiv_gr_public_holidays(self):
301
+ # Easter Monday.
258
302
  self._add_easter_monday(tr("Ostermontag"))
259
303
 
304
+ # Whit Monday.
260
305
  self._add_whit_monday(tr("Pfingstmontag"))
261
306
 
307
+ # Saint Stephen's Day.
262
308
  self._add_christmas_day_two(tr("Stephanstag"))
263
309
 
264
310
  def _populate_subdiv_gr_optional_holidays(self):
311
+ # Good Friday.
265
312
  self._add_good_friday(tr("Karfreitag"))
266
313
 
267
314
  def _populate_subdiv_ju_public_holidays(self):
315
+ # Saint Berchtold's Day.
268
316
  self._add_new_years_day_two(tr("Berchtoldstag"))
269
317
 
318
+ # Good Friday.
270
319
  self._add_good_friday(tr("Karfreitag"))
271
320
 
321
+ # Easter Monday.
272
322
  self._add_easter_monday(tr("Ostermontag"))
273
323
 
324
+ # Labor Day.
274
325
  self._add_labor_day(tr("Tag der Arbeit"))
275
326
 
327
+ # Whit Monday.
276
328
  self._add_whit_monday(tr("Pfingstmontag"))
277
329
 
330
+ # Corpus Christi.
278
331
  self._add_corpus_christi_day(tr("Fronleichnam"))
279
332
 
280
333
  # Independence Day.
281
334
  self._add_holiday_jun_23(tr("Fest der Unabhängigkeit"))
282
335
 
336
+ # Assumption Day.
283
337
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
284
338
 
339
+ # All Saints' Day.
285
340
  self._add_all_saints_day(tr("Allerheiligen"))
286
341
 
287
342
  def _populate_subdiv_lu_public_holidays(self):
343
+ # Saint Berchtold's Day.
288
344
  self._add_new_years_day_two(tr("Berchtoldstag"))
289
345
 
346
+ # Good Friday.
290
347
  self._add_good_friday(tr("Karfreitag"))
291
348
 
349
+ # Easter Monday.
292
350
  self._add_easter_monday(tr("Ostermontag"))
293
351
 
352
+ # Whit Monday.
294
353
  self._add_whit_monday(tr("Pfingstmontag"))
295
354
 
355
+ # Corpus Christi.
296
356
  self._add_corpus_christi_day(tr("Fronleichnam"))
297
357
 
358
+ # Assumption Day.
298
359
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
299
360
 
361
+ # All Saints' Day.
300
362
  self._add_all_saints_day(tr("Allerheiligen"))
301
363
 
364
+ # Immaculate Conception.
302
365
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
303
366
 
367
+ # Saint Stephen's Day.
304
368
  self._add_christmas_day_two(tr("Stephanstag"))
305
369
 
306
370
  def _populate_subdiv_ne_public_holidays(self):
307
371
  self._add_observed(
372
+ # Saint Berchtold's Day.
308
373
  self._add_new_years_day_two(tr("Berchtoldstag")),
309
374
  rule=MON_ONLY, # Jan 2 is public holiday only when it falls on Monday.
310
375
  )
@@ -312,242 +377,343 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
312
377
  # Republic Day.
313
378
  self._add_holiday_mar_1(tr("Jahrestag der Ausrufung der Republik"))
314
379
 
380
+ # Good Friday.
315
381
  self._add_good_friday(tr("Karfreitag"))
316
382
 
383
+ # Labor Day.
317
384
  self._add_labor_day(tr("Tag der Arbeit"))
318
385
 
386
+ # Corpus Christi.
319
387
  self._add_corpus_christi_day(tr("Fronleichnam"))
320
388
 
389
+ # Saint Stephen's Day.
321
390
  self._add_observed(self._add_christmas_day_two(tr("Stephanstag")), rule=MON_ONLY)
322
391
 
323
392
  def _populate_subdiv_nw_public_holidays(self):
324
393
  # Saint Joseph's Day.
325
394
  self._add_saint_josephs_day(tr("Josefstag"))
326
395
 
396
+ # Good Friday.
327
397
  self._add_good_friday(tr("Karfreitag"))
328
398
 
399
+ # Corpus Christi.
329
400
  self._add_corpus_christi_day(tr("Fronleichnam"))
330
401
 
402
+ # Assumption Day.
331
403
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
332
404
 
405
+ # All Saints' Day.
333
406
  self._add_all_saints_day(tr("Allerheiligen"))
334
407
 
408
+ # Immaculate Conception.
335
409
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
336
410
 
337
411
  def _populate_subdiv_nw_optional_holidays(self):
412
+ # Saint Berchtold's Day.
338
413
  self._add_new_years_day_two(tr("Berchtoldstag"))
339
414
 
415
+ # Easter Monday.
340
416
  self._add_easter_monday(tr("Ostermontag"))
341
417
 
418
+ # Whit Monday.
342
419
  self._add_whit_monday(tr("Pfingstmontag"))
343
420
 
421
+ # Saint Stephen's Day.
344
422
  self._add_christmas_day_two(tr("Stephanstag"))
345
423
 
346
424
  def _populate_subdiv_ow_public_holidays(self):
425
+ # Good Friday.
347
426
  self._add_good_friday(tr("Karfreitag"))
348
427
 
428
+ # Corpus Christi.
349
429
  self._add_corpus_christi_day(tr("Fronleichnam"))
350
430
 
431
+ # Assumption Day.
351
432
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
352
433
 
353
434
  # Saint Nicholas of Flüe.
354
435
  self._add_holiday_sep_25(tr("Bruder Klaus"))
355
436
 
437
+ # All Saints' Day.
356
438
  self._add_all_saints_day(tr("Allerheiligen"))
357
439
 
440
+ # Immaculate Conception.
358
441
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
359
442
 
360
443
  def _populate_subdiv_ow_optional_holidays(self):
444
+ # Saint Berchtold's Day.
361
445
  self._add_new_years_day_two(tr("Berchtoldstag"))
362
446
 
447
+ # Easter Monday.
363
448
  self._add_easter_monday(tr("Ostermontag"))
364
449
 
450
+ # Whit Monday.
365
451
  self._add_whit_monday(tr("Pfingstmontag"))
366
452
 
453
+ # Saint Stephen's Day.
367
454
  self._add_christmas_day_two(tr("Stephanstag"))
368
455
 
369
456
  def _populate_subdiv_sg_public_holidays(self):
457
+ # Good Friday.
370
458
  self._add_good_friday(tr("Karfreitag"))
371
459
 
460
+ # Easter Monday.
372
461
  self._add_easter_monday(tr("Ostermontag"))
373
462
 
463
+ # Whit Monday.
374
464
  self._add_whit_monday(tr("Pfingstmontag"))
375
465
 
466
+ # All Saints' Day.
376
467
  self._add_all_saints_day(tr("Allerheiligen"))
377
468
 
469
+ # Saint Stephen's Day.
378
470
  self._add_christmas_day_two(tr("Stephanstag"))
379
471
 
380
472
  def _populate_subdiv_sg_optional_holidays(self):
473
+ # Saint Berchtold's Day.
381
474
  self._add_new_years_day_two(tr("Berchtoldstag"))
382
475
 
383
476
  def _populate_subdiv_sh_public_holidays(self):
477
+ # Good Friday.
384
478
  self._add_good_friday(tr("Karfreitag"))
385
479
 
480
+ # Easter Monday.
386
481
  self._add_easter_monday(tr("Ostermontag"))
387
482
 
483
+ # Labor Day.
388
484
  self._add_labor_day(tr("Tag der Arbeit"))
389
485
 
486
+ # Whit Monday.
390
487
  self._add_whit_monday(tr("Pfingstmontag"))
391
488
 
489
+ # Saint Stephen's Day.
392
490
  self._add_christmas_day_two(tr("Stephanstag"))
393
491
 
394
492
  def _populate_subdiv_sh_optional_holidays(self):
493
+ # Saint Berchtold's Day.
395
494
  self._add_new_years_day_two(tr("Berchtoldstag"))
396
495
 
397
496
  def _populate_subdiv_sz_public_holidays(self):
398
497
  # Epiphany.
399
498
  self._add_epiphany_day(tr("Heilige Drei Könige"))
400
499
 
500
+ # Saint Joseph's Day.
401
501
  self._add_saint_josephs_day(tr("Josefstag"))
402
502
 
503
+ # Good Friday.
403
504
  self._add_good_friday(tr("Karfreitag"))
404
505
 
506
+ # Easter Monday.
405
507
  self._add_easter_monday(tr("Ostermontag"))
406
508
 
509
+ # Whit Monday.
407
510
  self._add_whit_monday(tr("Pfingstmontag"))
408
511
 
512
+ # Corpus Christi.
409
513
  self._add_corpus_christi_day(tr("Fronleichnam"))
410
514
 
515
+ # Assumption Day.
411
516
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
412
517
 
518
+ # All Saints' Day.
413
519
  self._add_all_saints_day(tr("Allerheiligen"))
414
520
 
521
+ # Immaculate Conception.
415
522
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
416
523
 
524
+ # Saint Stephen's Day.
417
525
  self._add_christmas_day_two(tr("Stephanstag"))
418
526
 
419
527
  def _populate_subdiv_so_public_holidays(self):
528
+ # Good Friday.
420
529
  self._add_good_friday(tr("Karfreitag"))
421
530
 
422
531
  def _populate_subdiv_so_half_day_holidays(self):
532
+ # Labor Day.
423
533
  self._add_labor_day(tr("Tag der Arbeit"))
424
534
 
425
535
  def _populate_subdiv_so_optional_holidays(self):
536
+ # Saint Berchtold's Day.
426
537
  self._add_new_years_day_two(tr("Berchtoldstag"))
427
538
 
428
539
  def _populate_subdiv_tg_public_holidays(self):
540
+ # Saint Berchtold's Day.
429
541
  self._add_new_years_day_two(tr("Berchtoldstag"))
430
542
 
543
+ # Labor Day.
431
544
  self._add_labor_day(tr("Tag der Arbeit"))
432
545
 
546
+ # Good Friday.
433
547
  self._add_good_friday(tr("Karfreitag"))
434
548
 
549
+ # Easter Monday.
435
550
  self._add_easter_monday(tr("Ostermontag"))
436
551
 
552
+ # Whit Monday.
437
553
  self._add_whit_monday(tr("Pfingstmontag"))
438
554
 
555
+ # Saint Stephen's Day.
439
556
  self._add_christmas_day_two(tr("Stephanstag"))
440
557
 
441
558
  def _populate_subdiv_ti_public_holidays(self):
559
+ # Epiphany.
442
560
  self._add_epiphany_day(tr("Heilige Drei Könige"))
443
561
 
562
+ # Saint Joseph's Day.
444
563
  self._add_saint_josephs_day(tr("Josefstag"))
445
564
 
565
+ # Easter Monday.
446
566
  self._add_easter_monday(tr("Ostermontag"))
447
567
 
568
+ # Labor Day.
448
569
  self._add_labor_day(tr("Tag der Arbeit"))
449
570
 
571
+ # Whit Monday.
450
572
  self._add_whit_monday(tr("Pfingstmontag"))
451
573
 
574
+ # Corpus Christi.
452
575
  self._add_corpus_christi_day(tr("Fronleichnam"))
453
576
 
454
577
  # Saints Peter and Paul.
455
578
  self._add_saints_peter_and_paul_day(tr("Peter und Paul"))
456
579
 
580
+ # Assumption Day.
457
581
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
458
582
 
583
+ # All Saints' Day.
459
584
  self._add_all_saints_day(tr("Allerheiligen"))
460
585
 
586
+ # Immaculate Conception.
461
587
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
462
588
 
589
+ # Saint Stephen's Day.
463
590
  self._add_christmas_day_two(tr("Stephanstag"))
464
591
 
465
592
  def _populate_subdiv_ur_public_holidays(self):
593
+ # Epiphany.
466
594
  self._add_epiphany_day(tr("Heilige Drei Könige"))
467
595
 
596
+ # Saint Joseph's Day.
468
597
  self._add_saint_josephs_day(tr("Josefstag"))
469
598
 
599
+ # Good Friday.
470
600
  self._add_good_friday(tr("Karfreitag"))
471
601
 
602
+ # Easter Monday.
472
603
  self._add_easter_monday(tr("Ostermontag"))
473
604
 
605
+ # Whit Monday.
474
606
  self._add_whit_monday(tr("Pfingstmontag"))
475
607
 
608
+ # Corpus Christi.
476
609
  self._add_corpus_christi_day(tr("Fronleichnam"))
477
610
 
611
+ # Assumption Day.
478
612
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
479
613
 
614
+ # All Saints' Day.
480
615
  self._add_all_saints_day(tr("Allerheiligen"))
481
616
 
617
+ # Immaculate Conception.
482
618
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
483
619
 
484
620
  self._add_observed(
485
- self._add_christmas_day_two(tr("Stephanstag")), rule=TUE_TO_NONE + SAT_TO_NONE
621
+ # Saint Stephen's Day.
622
+ self._add_christmas_day_two(tr("Stephanstag")),
623
+ rule=TUE_TO_NONE + SAT_TO_NONE,
486
624
  )
487
625
 
488
626
  def _populate_subdiv_vd_public_holidays(self):
627
+ # Saint Berchtold's Day.
489
628
  self._add_new_years_day_two(tr("Berchtoldstag"))
490
629
 
630
+ # Good Friday.
491
631
  self._add_good_friday(tr("Karfreitag"))
492
632
 
633
+ # Easter Monday.
493
634
  self._add_easter_monday(tr("Ostermontag"))
494
635
 
636
+ # Whit Monday.
495
637
  self._add_whit_monday(tr("Pfingstmontag"))
496
638
 
497
639
  # Prayer Monday.
498
640
  self._add_holiday_1_day_past_3rd_sun_of_sep(tr("Bettagsmontag"))
499
641
 
500
642
  def _populate_subdiv_vs_public_holidays(self):
643
+ # Saint Joseph's Day.
501
644
  self._add_saint_josephs_day(tr("Josefstag"))
502
645
 
646
+ # Corpus Christi.
503
647
  self._add_corpus_christi_day(tr("Fronleichnam"))
504
648
 
649
+ # Assumption Day.
505
650
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
506
651
 
652
+ # All Saints' Day.
507
653
  self._add_all_saints_day(tr("Allerheiligen"))
508
654
 
655
+ # Immaculate Conception.
509
656
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
510
657
 
511
658
  def _populate_subdiv_vs_optional_holidays(self):
659
+ # Saint Berchtold's Day.
512
660
  self._add_new_years_day_two(tr("Berchtoldstag"))
513
661
 
662
+ # Easter Monday.
514
663
  self._add_easter_monday(tr("Ostermontag"))
515
664
 
665
+ # Whit Monday.
516
666
  self._add_whit_monday(tr("Pfingstmontag"))
517
667
 
668
+ # Saint Stephen's Day.
518
669
  self._add_christmas_day_two(tr("Stephanstag"))
519
670
 
520
671
  def _populate_subdiv_zg_public_holidays(self):
672
+ # Good Friday.
521
673
  self._add_good_friday(tr("Karfreitag"))
522
674
 
675
+ # Corpus Christi.
523
676
  self._add_corpus_christi_day(tr("Fronleichnam"))
524
677
 
678
+ # Assumption Day.
525
679
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
526
680
 
681
+ # All Saints' Day.
527
682
  self._add_all_saints_day(tr("Allerheiligen"))
528
683
 
684
+ # Immaculate Conception.
529
685
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
530
686
 
531
687
  def _populate_subdiv_zg_optional_holidays(self):
688
+ # Saint Berchtold's Day.
532
689
  self._add_new_years_day_two(tr("Berchtoldstag"))
533
690
 
691
+ # Easter Monday.
534
692
  self._add_easter_monday(tr("Ostermontag"))
535
693
 
694
+ # Whit Monday.
536
695
  self._add_whit_monday(tr("Pfingstmontag"))
537
696
 
697
+ # Saint Stephen's Day.
538
698
  self._add_christmas_day_two(tr("Stephanstag"))
539
699
 
540
700
  def _populate_subdiv_zh_public_holidays(self):
701
+ # Saint Berchtold's Day.
541
702
  self._add_new_years_day_two(tr("Berchtoldstag"))
542
703
 
704
+ # Good Friday.
543
705
  self._add_good_friday(tr("Karfreitag"))
544
706
 
707
+ # Easter Monday.
545
708
  self._add_easter_monday(tr("Ostermontag"))
546
709
 
710
+ # Labor Day.
547
711
  self._add_labor_day(tr("Tag der Arbeit"))
548
712
 
713
+ # Whit Monday.
549
714
  self._add_whit_monday(tr("Pfingstmontag"))
550
715
 
716
+ # Saint Stephen's Day.
551
717
  self._add_christmas_day_two(tr("Stephanstag"))
552
718
 
553
719
 
@@ -10,9 +10,10 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- from datetime import date
13
+ from __future__ import annotations
14
+
14
15
  from gettext import gettext as tr
15
- from typing import Optional
16
+ from typing import Optional, TYPE_CHECKING
16
17
 
17
18
  from holidays.calendars.gregorian import (
18
19
  JAN,
@@ -31,6 +32,7 @@ from holidays.calendars.gregorian import (
31
32
  FRI,
32
33
  SAT,
33
34
  SUN,
35
+ _get_nth_weekday_of_month,
34
36
  )
35
37
  from holidays.constants import GOVERNMENT, OPTIONAL, PUBLIC, SCHOOL, WORKDAY
36
38
  from holidays.groups import ChineseCalendarHolidays, InternationalHolidays, StaticHolidays
@@ -42,6 +44,9 @@ from holidays.observed_holiday_base import (
42
44
  SAT_SUN_TO_NEXT_WORKDAY,
43
45
  )
44
46
 
47
+ if TYPE_CHECKING:
48
+ from datetime import date
49
+
45
50
  CHILDRENS_DAY_RULE = ObservedRule({MON: +1, TUE: -1, WED: -1, THU: +1, FRI: -1, SAT: -1, SUN: -2})
46
51
 
47
52
 
@@ -72,8 +77,12 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
72
77
  """
73
78
 
74
79
  country = "TW"
80
+ # %s (estimated).
81
+ estimated_label = tr("%s(推定)")
82
+ # %s (observed, estimated).
83
+ observed_estimated_label = tr("%s(補假,推定)")
75
84
  # %s (observed).
76
- observed_label = tr("%s(慶祝)")
85
+ observed_label = tr("%s(補假)")
77
86
  default_language = "zh_TW"
78
87
  supported_categories = (GOVERNMENT, OPTIONAL, PUBLIC, SCHOOL, WORKDAY)
79
88
  supported_languages = ("en_US", "th", "zh_CN", "zh_TW")
@@ -87,6 +96,21 @@ class Taiwan(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays
87
96
  kwargs.setdefault("observed_rule", SAT_TO_PREV_WORKDAY + SUN_TO_NEXT_WORKDAY)
88
97
  super().__init__(*args, **kwargs)
89
98
 
99
+ def _get_weekend(self, dt: date) -> set[int]:
100
+ # 1998–2000: Sundays as well as the 2nd & 4th Saturday of each month.
101
+ if dt.year <= 2000:
102
+ weekend = {SUN}
103
+ if dt.weekday() == SAT:
104
+ if dt in {
105
+ _get_nth_weekday_of_month(2, SAT, dt.month, dt.year), # 2nd Saturday.
106
+ _get_nth_weekday_of_month(4, SAT, dt.month, dt.year), # 4th Saturday.
107
+ }:
108
+ weekend.add(SAT)
109
+ else:
110
+ weekend = {SAT, SUN}
111
+
112
+ return weekend
113
+
90
114
  def _populate_observed(
91
115
  self, dts: set[date], rule: Optional[ObservedRule] = None, since: int = 2015
92
116
  ) -> None:
@@ -107,7 +107,7 @@ class TJK(Tajikistan):
107
107
 
108
108
 
109
109
  class TajikistanIslamicHolidays(_CustomIslamicHolidays):
110
- # https://www.timeanddate.com/holidays/tajikistan/eid-al-fitr
110
+ # https://web.archive.org/web/20240911001624/https://www.timeanddate.com/holidays/tajikistan/eid-al-fitr
111
111
  EID_AL_FITR_DATES_CONFIRMED_YEARS = (1992, 2025)
112
112
  EID_AL_FITR_DATES = {
113
113
  2023: (APR, 22),
@@ -10,8 +10,10 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- from datetime import date
13
+ from __future__ import annotations
14
+
14
15
  from gettext import gettext as tr
16
+ from typing import TYPE_CHECKING
15
17
 
16
18
  from holidays.calendars import _CustomIslamicHolidays
17
19
  from holidays.calendars.gregorian import (
@@ -43,6 +45,9 @@ from holidays.observed_holiday_base import (
43
45
  SAT_SUN_TO_NEXT_MON_TUE,
44
46
  )
45
47
 
48
+ if TYPE_CHECKING:
49
+ from datetime import date
50
+
46
51
 
47
52
  class Tanzania(
48
53
  ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
@@ -26,6 +26,8 @@ from holidays.calendars.gregorian import (
26
26
  OCT,
27
27
  NOV,
28
28
  DEC,
29
+ SAT,
30
+ SUN,
29
31
  _timedelta,
30
32
  )
31
33
  from holidays.constants import ARMED_FORCES, BANK, GOVERNMENT, PUBLIC, SCHOOL, WORKDAY
@@ -199,6 +201,25 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
199
201
  def _is_observed(self, dt: date) -> bool:
200
202
  return 1961 <= self._year <= 1973 or 1995 <= self._year <= 1997 or self._year >= 2001
201
203
 
204
+ def _get_weekend(self, dt: date) -> set[int]:
205
+ if dt >= date(1959, MAR, 1):
206
+ # SAT & SUN (Full Day).
207
+ weekend = {SAT, SUN}
208
+ elif date(1956, OCT, 1) <= dt <= date(1957, OCT, 6):
209
+ # Buddhist Sabbath Days and Sun (Full Day).
210
+ weekend = {SUN}
211
+ buddhist_sabbath_dates = self._thai_calendar.buddhist_sabbath_dates(dt.year)
212
+ if dt in buddhist_sabbath_dates:
213
+ weekend.add(dt.weekday())
214
+ elif dt >= date(1939, FEB, 28):
215
+ # SAT from 12:00 onwards and SUN (Full Day).
216
+ weekend = {SUN}
217
+ else:
218
+ # Prior to this, there was no concept of weekend.
219
+ weekend = set()
220
+
221
+ return weekend
222
+
202
223
  def _populate_public_holidays(self):
203
224
  # Fixed Date Holidays
204
225