holidays 0.54__py3-none-any.whl → 0.56__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 (115) hide show
  1. holidays/__init__.py +1 -1
  2. holidays/countries/__init__.py +3 -0
  3. holidays/countries/algeria.py +11 -0
  4. holidays/countries/australia.py +1 -1
  5. holidays/countries/austria.py +10 -10
  6. holidays/countries/bangladesh.py +2 -0
  7. holidays/countries/bosnia_and_herzegovina.py +8 -12
  8. holidays/countries/brunei.py +23 -1
  9. holidays/countries/cambodia.py +20 -3
  10. holidays/countries/canada.py +6 -6
  11. holidays/countries/croatia.py +1 -1
  12. holidays/countries/cyprus.py +1 -1
  13. holidays/countries/dominica.py +130 -0
  14. holidays/countries/dominican_republic.py +7 -12
  15. holidays/countries/egypt.py +2 -0
  16. holidays/countries/haiti.py +134 -0
  17. holidays/countries/hongkong.py +1 -1
  18. holidays/countries/hungary.py +6 -0
  19. holidays/countries/ireland.py +6 -6
  20. holidays/countries/isle_of_man.py +1 -0
  21. holidays/countries/israel.py +2 -1
  22. holidays/countries/italy.py +113 -5
  23. holidays/countries/jordan.py +5 -0
  24. holidays/countries/kuwait.py +5 -0
  25. holidays/countries/laos.py +24 -62
  26. holidays/countries/liechtenstein.py +1 -1
  27. holidays/countries/luxembourg.py +1 -1
  28. holidays/countries/malaysia.py +16 -38
  29. holidays/countries/malta.py +3 -3
  30. holidays/countries/new_zealand.py +68 -43
  31. holidays/countries/philippines.py +215 -26
  32. holidays/countries/portugal.py +7 -7
  33. holidays/countries/russia.py +382 -3
  34. holidays/countries/samoa.py +72 -0
  35. holidays/countries/singapore.py +8 -0
  36. holidays/countries/slovakia.py +1 -1
  37. holidays/countries/spain.py +8 -8
  38. holidays/countries/switzerland.py +3 -3
  39. holidays/countries/ukraine.py +48 -43
  40. holidays/countries/united_kingdom.py +12 -22
  41. holidays/countries/united_states.py +2 -2
  42. holidays/groups/christian.py +19 -0
  43. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  44. holidays/locale/ar/LC_MESSAGES/CA.po +6 -6
  45. holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
  46. holidays/locale/ar/LC_MESSAGES/UA.po +26 -19
  47. holidays/locale/de/LC_MESSAGES/AT.po +6 -6
  48. holidays/locale/de/LC_MESSAGES/CH.po +3 -3
  49. holidays/locale/de/LC_MESSAGES/LI.po +1 -1
  50. holidays/locale/de/LC_MESSAGES/LU.po +1 -1
  51. holidays/locale/en_CA/LC_MESSAGES/CA.po +6 -6
  52. holidays/locale/en_US/LC_MESSAGES/AT.mo +0 -0
  53. holidays/locale/en_US/LC_MESSAGES/AT.po +14 -14
  54. holidays/locale/en_US/LC_MESSAGES/BG.mo +0 -0
  55. holidays/locale/en_US/LC_MESSAGES/BG.po +3 -3
  56. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  57. holidays/locale/en_US/LC_MESSAGES/CA.po +11 -11
  58. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  59. holidays/locale/en_US/LC_MESSAGES/CH.po +9 -8
  60. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  61. holidays/locale/en_US/LC_MESSAGES/ES.po +16 -16
  62. holidays/locale/en_US/LC_MESSAGES/HR.mo +0 -0
  63. holidays/locale/en_US/LC_MESSAGES/HR.po +4 -4
  64. holidays/locale/en_US/LC_MESSAGES/HT.mo +0 -0
  65. holidays/locale/en_US/LC_MESSAGES/HT.po +127 -0
  66. holidays/locale/en_US/LC_MESSAGES/LI.mo +0 -0
  67. holidays/locale/en_US/LC_MESSAGES/LI.po +4 -4
  68. holidays/locale/en_US/LC_MESSAGES/LU.mo +0 -0
  69. holidays/locale/en_US/LC_MESSAGES/LU.po +4 -4
  70. holidays/locale/en_US/LC_MESSAGES/MT.mo +0 -0
  71. holidays/locale/en_US/LC_MESSAGES/MT.po +8 -8
  72. holidays/locale/en_US/LC_MESSAGES/PT.mo +0 -0
  73. holidays/locale/en_US/LC_MESSAGES/PT.po +16 -16
  74. holidays/locale/en_US/LC_MESSAGES/SK.mo +0 -0
  75. holidays/locale/en_US/LC_MESSAGES/SK.po +4 -4
  76. holidays/locale/en_US/LC_MESSAGES/UA.mo +0 -0
  77. holidays/locale/en_US/LC_MESSAGES/UA.po +25 -19
  78. holidays/locale/es/LC_MESSAGES/ES.po +7 -7
  79. holidays/locale/es/LC_MESSAGES/HT.mo +0 -0
  80. holidays/locale/es/LC_MESSAGES/HT.po +127 -0
  81. holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
  82. holidays/locale/fr/LC_MESSAGES/CA.po +6 -6
  83. holidays/locale/fr/LC_MESSAGES/CH.po +3 -3
  84. holidays/locale/fr/LC_MESSAGES/LU.mo +0 -0
  85. holidays/locale/fr/LC_MESSAGES/LU.po +2 -2
  86. holidays/locale/fr_HT/LC_MESSAGES/HT.mo +0 -0
  87. holidays/locale/fr_HT/LC_MESSAGES/HT.po +127 -0
  88. holidays/locale/hr/LC_MESSAGES/HR.po +1 -1
  89. holidays/locale/ht/LC_MESSAGES/HT.mo +0 -0
  90. holidays/locale/ht/LC_MESSAGES/HT.po +127 -0
  91. holidays/locale/it/LC_MESSAGES/CH.po +3 -3
  92. holidays/locale/lb/LC_MESSAGES/LU.po +1 -1
  93. holidays/locale/mt/LC_MESSAGES/MT.po +3 -3
  94. holidays/locale/pt_PT/LC_MESSAGES/PT.po +7 -7
  95. holidays/locale/sk/LC_MESSAGES/SK.po +1 -1
  96. holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
  97. holidays/locale/th/LC_MESSAGES/CA.po +6 -6
  98. holidays/locale/uk/LC_MESSAGES/AT.po +6 -6
  99. holidays/locale/uk/LC_MESSAGES/CH.po +3 -3
  100. holidays/locale/uk/LC_MESSAGES/ES.po +7 -7
  101. holidays/locale/uk/LC_MESSAGES/HR.po +1 -1
  102. holidays/locale/uk/LC_MESSAGES/LI.po +1 -1
  103. holidays/locale/uk/LC_MESSAGES/LU.po +1 -1
  104. holidays/locale/uk/LC_MESSAGES/PT.po +7 -7
  105. holidays/locale/uk/LC_MESSAGES/SK.po +1 -1
  106. holidays/locale/uk/LC_MESSAGES/UA.mo +0 -0
  107. holidays/locale/uk/LC_MESSAGES/UA.po +24 -18
  108. holidays/registry.py +3 -0
  109. holidays/utils.py +3 -3
  110. {holidays-0.54.dist-info → holidays-0.56.dist-info}/METADATA +24 -9
  111. {holidays-0.54.dist-info → holidays-0.56.dist-info}/RECORD +115 -104
  112. {holidays-0.54.dist-info → holidays-0.56.dist-info}/WHEEL +1 -1
  113. {holidays-0.54.dist-info → holidays-0.56.dist-info}/AUTHORS +0 -0
  114. {holidays-0.54.dist-info → holidays-0.56.dist-info}/LICENSE +0 -0
  115. {holidays-0.54.dist-info → holidays-0.56.dist-info}/top_level.txt +0 -0
@@ -12,15 +12,16 @@
12
12
 
13
13
  from gettext import gettext as tr
14
14
 
15
- from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, NOV, DEC
15
+ from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, NOV, DEC
16
16
  from holidays.calendars.julian import JULIAN_CALENDAR
17
17
  from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
18
- from holidays.holiday_base import HolidayBase
18
+ from holidays.observed_holiday_base import ObservedHolidayBase
19
19
 
20
20
 
21
- class Russia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
21
+ class Russia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
22
22
  """
23
23
  https://en.wikipedia.org/wiki/Public_holidays_in_Russia
24
+ https://ru.wikipedia.org/wiki/Праздники_России
24
25
  """
25
26
 
26
27
  country = "RU"
@@ -119,6 +120,190 @@ class RussiaStaticHolidays:
119
120
  substituted_label = tr("Выходной (перенесено с %s)")
120
121
 
121
122
  special_public_holidays = {
123
+ # Substituted Holidays 1991
124
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
125
+ 1991: (
126
+ (MAY, 3, MAY, 5),
127
+ (MAY, 10, MAY, 12),
128
+ ),
129
+ # Substituted Holidays 1994
130
+ # src: https://www.consultant.ru/document/cons_doc_LAW_3235/
131
+ 1994: (MAR, 7, MAR, 5),
132
+ # Substituted Holidays 1995
133
+ # src: https://www.consultant.ru/document/cons_doc_LAW_6316/
134
+ # https://www.consultant.ru/document/cons_doc_LAW_8134/
135
+ # https://www.consultant.ru/document/cons_doc_LAW_8499/
136
+ 1995: (
137
+ (MAY, 8, MAY, 6),
138
+ (NOV, 6, NOV, 4),
139
+ (DEC, 11, DEC, 9),
140
+ ),
141
+ # Substituted Holidays 1996
142
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
143
+ 1996: (
144
+ (MAY, 3, MAY, 5),
145
+ (MAY, 10, MAY, 12),
146
+ (JUL, 3, DEC, 14),
147
+ (NOV, 8, NOV, 10),
148
+ (DEC, 13, DEC, 15),
149
+ ),
150
+ # Substituted Holidays 1997
151
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
152
+ 1997: (
153
+ (JAN, 3, JAN, 5),
154
+ (JUN, 13, JUN, 15),
155
+ ),
156
+ # Substituted Holidays 1999
157
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
158
+ 1999: (JAN, 8, JAN, 10),
159
+ # Substituted Holidays 2000
160
+ # src: https://www.consultant.ru/document/cons_doc_LAW_25401/
161
+ 2000: (
162
+ (MAY, 8, MAY, 6),
163
+ (NOV, 6, NOV, 4),
164
+ (DEC, 11, DEC, 9),
165
+ ),
166
+ # Substituted Holidays 2001
167
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
168
+ 2001: (
169
+ (MAR, 9, MAR, 11),
170
+ (APR, 30, APR, 28),
171
+ (JUN, 11, JUN, 9),
172
+ (DEC, 31, DEC, 29),
173
+ ),
174
+ # Substituted Holidays 2002
175
+ # src: https://www.consultant.ru/document/cons_doc_LAW_33943/
176
+ 2002: (
177
+ (MAY, 3, APR, 27),
178
+ (MAY, 10, MAY, 18),
179
+ (NOV, 8, NOV, 10),
180
+ (DEC, 13, DEC, 15),
181
+ ),
182
+ # Substituted Holidays 2003
183
+ # src: https://www.consultant.ru/document/cons_doc_LAW_39997/16abd0212dcc02f64a1daed24286d2ffc2a4a9e9/
184
+ 2003: (
185
+ (JAN, 3, JAN, 4),
186
+ (JAN, 6, JAN, 5),
187
+ (JUN, 13, JUN, 21),
188
+ ),
189
+ # Substituted Holidays 2005
190
+ # src: https://www.consultant.ru/document/cons_doc_LAW_50948/
191
+ # https://ru.wikipedia.org/wiki/Праздники_России
192
+ 2005: (
193
+ (MAR, 7, MAR, 5),
194
+ (MAY, 10, MAY, 14),
195
+ ),
196
+ # Substituted Holidays 2006
197
+ # src: https://www.consultant.ru/document/cons_doc_LAW_57425/
198
+ 2006: (
199
+ (FEB, 24, FEB, 26),
200
+ (MAY, 8, MAY, 6),
201
+ ),
202
+ # Substituted Holidays 2007
203
+ # src: https://www.consultant.ru/document/cons_doc_LAW_63838/
204
+ 2007: (
205
+ (APR, 30, APR, 28),
206
+ (JUN, 11, JUN, 9),
207
+ (DEC, 31, DEC, 29),
208
+ ),
209
+ # Substituted Holidays 2008
210
+ # src: https://www.consultant.ru/document/cons_doc_LAW_70469/
211
+ 2008: (
212
+ (MAY, 2, MAY, 4),
213
+ (JUN, 13, JUN, 7),
214
+ (NOV, 3, NOV, 1),
215
+ ),
216
+ # Substituted Holidays 2009
217
+ # src: https://www.consultant.ru/document/cons_doc_LAW_81981/
218
+ 2009: (JAN, 9, JAN, 11),
219
+ # Substituted Holidays 2010
220
+ # src: https://www.consultant.ru/document/cons_doc_LAW_93374/
221
+ 2010: (
222
+ (FEB, 22, FEB, 27),
223
+ (NOV, 5, NOV, 13),
224
+ ),
225
+ # Substituted Holidays 2011
226
+ # src: https://www.consultant.ru/document/cons_doc_LAW_103530/
227
+ 2011: (MAR, 7, MAR, 5),
228
+ # Substituted Holidays 2012
229
+ # src: https://www.consultant.ru/document/cons_doc_LAW_117190/
230
+ 2012: (
231
+ (MAR, 9, MAR, 11),
232
+ (APR, 30, APR, 28),
233
+ (MAY, 7, MAY, 5),
234
+ (MAY, 8, MAY, 12),
235
+ (JUN, 11, JUN, 9),
236
+ (DEC, 31, DEC, 29),
237
+ ),
238
+ # Substituted Holidays 2013
239
+ # src: https://www.consultant.ru/document/cons_doc_LAW_136654/
240
+ 2013: (
241
+ (MAY, 2, JAN, 5),
242
+ (MAY, 3, JAN, 6),
243
+ (MAY, 10, FEB, 25),
244
+ ),
245
+ # Substituted Holidays 2014
246
+ # src: https://www.consultant.ru/document/cons_doc_LAW_146983/
247
+ 2014: (
248
+ (MAY, 2, JAN, 4),
249
+ (JUN, 13, JAN, 5),
250
+ (NOV, 3, FEB, 24),
251
+ ),
252
+ # Substituted Holidays 2015
253
+ # src: https://www.consultant.ru/document/cons_doc_LAW_167928/
254
+ 2015: (
255
+ (JAN, 9, JAN, 3),
256
+ (MAY, 4, JAN, 4),
257
+ ),
258
+ # Substituted Holidays 2016
259
+ # src: https://www.consultant.ru/document/cons_doc_LAW_186505/
260
+ 2016: (
261
+ (MAY, 3, JAN, 2),
262
+ (MAR, 7, JAN, 3),
263
+ (FEB, 22, FEB, 20),
264
+ ),
265
+ # Substituted Holidays 2017
266
+ # src: https://www.consultant.ru/document/cons_doc_LAW_202871/
267
+ 2017: (
268
+ (FEB, 24, JAN, 1),
269
+ (MAY, 8, JAN, 7),
270
+ ),
271
+ # Substituted Holidays 2018
272
+ # src: https://www.consultant.ru/document/cons_doc_LAW_280526/
273
+ 2018: (
274
+ (MAR, 9, JAN, 6),
275
+ (MAY, 2, JAN, 7),
276
+ (APR, 30, APR, 28),
277
+ (JUN, 11, JUN, 9),
278
+ (DEC, 31, DEC, 29),
279
+ ),
280
+ # Substituted Holidays 2019
281
+ # src: https://www.consultant.ru/document/cons_doc_LAW_307996/
282
+ 2019: (
283
+ (MAY, 2, JAN, 5),
284
+ (MAY, 3, JAN, 6),
285
+ (MAY, 10, FEB, 23),
286
+ ),
287
+ # Substituted Holidays 2020
288
+ # src: https://www.consultant.ru/document/cons_doc_law_328918/
289
+ 2020: (
290
+ (MAY, 4, JAN, 4),
291
+ (MAY, 5, JAN, 5),
292
+ ),
293
+ # Substituted Holidays 2021
294
+ # src: https://www.consultant.ru/document/cons_doc_law_365179/
295
+ 2021: (
296
+ (NOV, 5, JAN, 2),
297
+ (DEC, 31, JAN, 3),
298
+ (FEB, 22, FEB, 20),
299
+ ),
300
+ # Substituted Holidays 2022
301
+ # src: https://www.consultant.ru/document/cons_doc_LAW_395538/
302
+ 2022: (
303
+ (MAY, 3, JAN, 1),
304
+ (MAY, 10, JAN, 2),
305
+ (MAR, 7, MAR, 5),
306
+ ),
122
307
  # Substituted Holidays 2023
123
308
  # src: https://www.consultant.ru/document/cons_doc_LAW_425407/
124
309
  2023: (
@@ -144,3 +329,197 @@ class RussiaStaticHolidays:
144
329
  (NOV, 3, NOV, 1),
145
330
  ),
146
331
  }
332
+ special_public_holidays_observed = {
333
+ # These are cases where additional in-lieus are given
334
+ # without actually making weekend workdays.
335
+ # Substituted Holidays 1992 (observed)
336
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
337
+ 1992: (
338
+ (MAY, 4, MAY, 2),
339
+ (MAY, 11, MAY, 9),
340
+ (NOV, 9, NOV, 7),
341
+ ),
342
+ # Substituted Holidays 1993 (observed)
343
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
344
+ 1993: (
345
+ (JAN, 4, JAN, 2),
346
+ (MAY, 3, MAY, 1),
347
+ (MAY, 4, MAY, 2),
348
+ (MAY, 10, MAY, 9),
349
+ (JUN, 14, JUN, 12),
350
+ (NOV, 8, NOV, 7),
351
+ ),
352
+ # Substituted Holidays 1994 (observed)
353
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
354
+ 1994: (
355
+ (JAN, 3, JAN, 1),
356
+ (JAN, 4, JAN, 2),
357
+ (MAY, 3, MAY, 1),
358
+ (MAY, 10, MAY, 9),
359
+ (JUN, 13, JUN, 12),
360
+ ),
361
+ # Substituted Holidays 1995 (observed)
362
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
363
+ 1995: (
364
+ (JAN, 3, JAN, 1),
365
+ (JAN, 9, JAN, 7),
366
+ ),
367
+ # Substituted Holidays 1996 (observed)
368
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
369
+ 1996: (JAN, 8, JAN, 7),
370
+ # Substituted Holidays 1997 (observed)
371
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
372
+ 1997: (MAR, 10, MAR, 8),
373
+ # Substituted Holidays 1998 (observed)
374
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
375
+ 1998: (
376
+ (MAR, 9, MAR, 8),
377
+ (MAY, 4, MAY, 2),
378
+ (MAY, 11, MAY, 9),
379
+ (NOV, 9, NOV, 7),
380
+ (DEC, 14, DEC, 12),
381
+ ),
382
+ # Substituted Holidays 1999 (observed)
383
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
384
+ 1999: (
385
+ (JAN, 4, JAN, 2),
386
+ (MAY, 3, MAY, 1),
387
+ (MAY, 4, MAY, 2),
388
+ (MAY, 10, MAY, 9),
389
+ (JUN, 14, JUN, 12),
390
+ (NOV, 8, NOV, 7),
391
+ (DEC, 13, DEC, 12),
392
+ ),
393
+ # Substituted Holidays 2000 (observed)
394
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
395
+ 2000: (
396
+ (JAN, 3, JAN, 1),
397
+ (JAN, 4, JAN, 2),
398
+ ),
399
+ # Substituted Holidays 2001 (observed)
400
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
401
+ 2001: (JAN, 8, JAN, 7),
402
+ # Substituted Holidays 2002 (observed)
403
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
404
+ 2002: (FEB, 25, FEB, 23),
405
+ # Substituted Holidays 2003 (observed)
406
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
407
+ 2003: (
408
+ (FEB, 24, FEB, 23),
409
+ (MAR, 10, MAR, 8),
410
+ ),
411
+ # Substituted Holidays 2004 (observed)
412
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
413
+ 2004: (
414
+ (MAY, 3, MAY, 1),
415
+ (MAY, 4, MAY, 2),
416
+ (MAY, 10, MAY, 9),
417
+ (JUN, 14, JUN, 12),
418
+ (NOV, 8, NOV, 7),
419
+ (DEC, 13, DEC, 12),
420
+ ),
421
+ # Substituted Holidays 2005 (observed)
422
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
423
+ 2005: (
424
+ (JAN, 6, JAN, 1),
425
+ (JAN, 10, JAN, 2),
426
+ (MAY, 2, MAY, 1),
427
+ (JUN, 13, JUN, 12),
428
+ ),
429
+ # Substituted Holidays 2006 (observed)
430
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
431
+ 2006: (
432
+ (JAN, 6, JAN, 1),
433
+ (JAN, 9, JAN, 7),
434
+ (NOV, 6, NOV, 4),
435
+ ),
436
+ # Substituted Holidays 2007 (observed)
437
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
438
+ 2007: (
439
+ (JAN, 8, JAN, 7),
440
+ (NOV, 5, NOV, 4),
441
+ ),
442
+ # Substituted Holidays 2008 (observed)
443
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
444
+ 2008: (
445
+ (JAN, 8, JAN, 5),
446
+ (FEB, 25, FEB, 23),
447
+ (MAR, 10, MAR, 8),
448
+ ),
449
+ # Substituted Holidays 2009 (observed)
450
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
451
+ 2009: (
452
+ (JAN, 6, JAN, 3),
453
+ (JAN, 8, JAN, 4),
454
+ (MAR, 9, MAR, 8),
455
+ (MAY, 11, MAY, 9),
456
+ ),
457
+ # Substituted Holidays 2010 (observed)
458
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
459
+ 2010: (
460
+ (JAN, 6, JAN, 2),
461
+ (JAN, 8, JAN, 3),
462
+ (MAY, 3, MAY, 1),
463
+ (MAY, 10, MAY, 9),
464
+ (JUN, 14, JUN, 12),
465
+ ),
466
+ # Substituted Holidays 2011 (observed)
467
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
468
+ 2011: (
469
+ (JAN, 6, JAN, 1),
470
+ (JAN, 10, JAN, 2),
471
+ (MAY, 2, MAY, 1),
472
+ (JUN, 13, JUN, 12),
473
+ ),
474
+ # Substituted Holidays 2012 (observed)
475
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
476
+ 2012: (
477
+ (JAN, 6, JAN, 1),
478
+ (JAN, 9, JAN, 7),
479
+ (NOV, 5, NOV, 4),
480
+ ),
481
+ # Substituted Holidays 2014 (observed)
482
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
483
+ 2014: (MAR, 10, MAR, 8),
484
+ # Substituted Holidays 2015 (observed)
485
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
486
+ 2015: (
487
+ (MAR, 9, MAR, 8),
488
+ (MAY, 11, MAY, 9),
489
+ ),
490
+ # Substituted Holidays 2016 (observed)
491
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
492
+ 2016: (
493
+ (MAY, 2, MAY, 1),
494
+ (JUN, 13, JUN, 12),
495
+ ),
496
+ # Substituted Holidays 2017 (observed)
497
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
498
+ 2017: (NOV, 6, NOV, 4),
499
+ # Substituted Holidays 2018 (observed)
500
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
501
+ 2018: (NOV, 5, NOV, 4),
502
+ # Substituted Holidays 2020 (observed)
503
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
504
+ 2020: (
505
+ (FEB, 24, FEB, 23),
506
+ (MAR, 9, MAR, 8),
507
+ (MAY, 11, MAY, 9),
508
+ ),
509
+ # Substituted Holidays 2021 (observed)
510
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
511
+ 2021: (
512
+ (MAY, 3, MAY, 1),
513
+ (MAY, 10, MAY, 9),
514
+ (JUN, 14, JUN, 12),
515
+ ),
516
+ # Substituted Holidays 2022 (observed)
517
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
518
+ 2022: (
519
+ (MAY, 2, MAY, 1),
520
+ (JUN, 13, JUN, 12),
521
+ ),
522
+ # Substituted Holidays 2023 (observed)
523
+ # src: https://ru.wikipedia.org/wiki/Праздники_России
524
+ 2023: (NOV, 6, NOV, 4),
525
+ }
@@ -0,0 +1,72 @@
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 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/python-holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.groups import ChristianHolidays, InternationalHolidays
14
+ from holidays.holiday_base import HolidayBase
15
+
16
+
17
+ class Samoa(HolidayBase, ChristianHolidays, InternationalHolidays):
18
+ """
19
+ 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/
24
+ """
25
+
26
+ country = "WS"
27
+
28
+ def __init__(self, *args, **kwargs):
29
+ ChristianHolidays.__init__(self)
30
+ InternationalHolidays.__init__(self)
31
+
32
+ super().__init__(*args, **kwargs)
33
+
34
+ def _populate(self, year):
35
+ super()._populate(year)
36
+
37
+ # New Year's Day.
38
+ self._add_new_years_day("New Year's Day")
39
+ self._add_new_years_day_two("The Day After New Year's Day")
40
+
41
+ # Good Friday.
42
+ self._add_good_friday("Good Friday")
43
+ self._add_holy_saturday("Day After Good Friday")
44
+
45
+ # Easter Monday.
46
+ self._add_easter_monday("Easter Monday")
47
+
48
+ # Mother's Day.
49
+ self._add_holiday_1_day_past_2nd_sun_of_may("Mother's Day")
50
+
51
+ # Independence Day.
52
+ self._add_holiday_jun_1("Independence Day")
53
+
54
+ # Father's Day.
55
+ self._add_holiday_1_day_past_2nd_sun_of_aug("Father's Day")
56
+
57
+ # White Monday (Lotu a Tamaiti).
58
+ self._add_holiday_1_day_past_2nd_sun_of_oct("White Sunday (Lotu a Tamaiti)")
59
+
60
+ # Christmas Day.
61
+ self._add_christmas_day("Christmas Day")
62
+
63
+ # Boxing Day.
64
+ self._add_christmas_day_two("Boxing Day")
65
+
66
+
67
+ class WS(Samoa):
68
+ pass
69
+
70
+
71
+ class WSM(Samoa):
72
+ pass
@@ -177,6 +177,7 @@ class SingaporeBuddhistHolidays(_CustomBuddhistHolidays):
177
177
  2022: (MAY, 15),
178
178
  2023: (JUN, 2),
179
179
  2024: (MAY, 22),
180
+ 2025: (MAY, 12),
180
181
  }
181
182
 
182
183
 
@@ -206,10 +207,12 @@ class SingaporeChineseHolidays(_CustomChineseHolidays):
206
207
  2022: (FEB, 1),
207
208
  2023: (JAN, 22),
208
209
  2024: (FEB, 10),
210
+ 2025: (JAN, 29),
209
211
  }
210
212
 
211
213
 
212
214
  class SingaporeHinduHolidays(_CustomHinduHolidays):
215
+ # Deepavali
213
216
  DIWALI_DATES = {
214
217
  2001: (NOV, 14),
215
218
  2002: (NOV, 3),
@@ -235,10 +238,12 @@ class SingaporeHinduHolidays(_CustomHinduHolidays):
235
238
  2022: (OCT, 24),
236
239
  2023: (NOV, 12),
237
240
  2024: (OCT, 31),
241
+ 2025: (OCT, 20),
238
242
  }
239
243
 
240
244
 
241
245
  class SingaporeIslamicHolidays(_CustomIslamicHolidays):
246
+ # Hari Raya Haji
242
247
  EID_AL_ADHA_DATES = {
243
248
  2001: (MAR, 6),
244
249
  2002: (FEB, 23),
@@ -264,8 +269,10 @@ class SingaporeIslamicHolidays(_CustomIslamicHolidays):
264
269
  2022: (JUL, 10),
265
270
  2023: (JUN, 29),
266
271
  2024: (JUN, 17),
272
+ 2025: (JUN, 7),
267
273
  }
268
274
 
275
+ # Hari Raya Puasa
269
276
  EID_AL_FITR_DATES = {
270
277
  2001: (DEC, 16),
271
278
  2002: (DEC, 6),
@@ -291,6 +298,7 @@ class SingaporeIslamicHolidays(_CustomIslamicHolidays):
291
298
  2022: (MAY, 3),
292
299
  2023: (APR, 22),
293
300
  2024: (APR, 10),
301
+ 2025: (MAR, 31),
294
302
  }
295
303
 
296
304
 
@@ -62,7 +62,7 @@ class Slovakia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHoli
62
62
  # Day of Victory over Fascism.
63
63
  self._add_holiday_may_8(tr("Deň víťazstva nad fašizmom"))
64
64
 
65
- # St. Cyril and Methodius Day.
65
+ # Saints Cyril and Methodius Day.
66
66
  self._add_holiday_jul_5(tr("Sviatok svätého Cyrila a svätého Metoda"))
67
67
 
68
68
  # Slovak National Uprising Anniversary.
@@ -167,7 +167,7 @@ class Spain(
167
167
 
168
168
  self._add_holy_thursday(tr("Jueves Santo"))
169
169
 
170
- # St. George's Day.
170
+ # Saint George's Day.
171
171
  self._move_holiday(self._add_saint_georges_day(tr("Día de San Jorge")))
172
172
 
173
173
  if self._year in {2011, 2016, 2022}:
@@ -239,7 +239,7 @@ class Spain(
239
239
  self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
240
240
 
241
241
  if self._year in {2012, 2013, 2014, 2019, 2024}:
242
- # St. James' Day.
242
+ # Saint James' Day.
243
243
  self._add_saint_james_day(tr("Santiago Apóstol"))
244
244
 
245
245
  if self._year not in {2012, 2015, 2019, 2024}:
@@ -348,7 +348,7 @@ class Spain(
348
348
  self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
349
349
 
350
350
  if self._year in {2010, 2011, 2020}:
351
- # St. Joseph's Day.
351
+ # Saint Joseph's Day.
352
352
  self._add_saint_josephs_day(tr("San José"))
353
353
 
354
354
  self._add_holy_thursday(tr("Jueves Santo"))
@@ -403,7 +403,7 @@ class Spain(
403
403
  self._add_whit_monday(tr("Día de la Pascua Granada"))
404
404
 
405
405
  if self._year not in {2012, 2018}:
406
- # St. John the Baptist.
406
+ # Saint John the Baptist.
407
407
  self._add_saint_johns_day(tr("San Juan"))
408
408
 
409
409
  if self._year not in {2011, 2022}:
@@ -411,7 +411,7 @@ class Spain(
411
411
  self._add_holiday_sep_11(tr("Fiesta Nacional de Cataluña"))
412
412
 
413
413
  if self._year not in {2010, 2021}:
414
- # St. Stephen's Day.
414
+ # Saint Stephen's Day.
415
415
  self._add_christmas_day_two(tr("San Esteban"))
416
416
 
417
417
  def _populate_subdiv_ex_public_holidays(self):
@@ -426,7 +426,7 @@ class Spain(
426
426
  self._add_carnival_tuesday(tr("Martes de Carnaval"))
427
427
 
428
428
  if self._year in {2010, 2017, 2021}:
429
- # St. Joseph's Day.
429
+ # Saint Joseph's Day.
430
430
  self._move_holiday(self._add_saint_josephs_day(tr("San José")))
431
431
 
432
432
  self._add_holy_thursday(tr("Jueves Santo"))
@@ -712,12 +712,12 @@ class SpainIslamicHolidays(_CustomIslamicHolidays):
712
712
 
713
713
  class SpainStaticHolidays:
714
714
  special_ga_public_holidays = {
715
- # Day following St. Joseph's Day.
715
+ # Day following Saint Joseph's Day.
716
716
  2015: (MAR, 20, tr("Día siguiente a San José")),
717
717
  }
718
718
 
719
719
  special_md_public_holidays = {
720
- # St. Joseph's Day Transfer.
720
+ # Saint Joseph's Day Transfer.
721
721
  2013: (MAR, 18, tr("Traslado de San José")),
722
722
  }
723
723
 
@@ -105,7 +105,7 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
105
105
  # Immaculate Conception.
106
106
  self._add_immaculate_conception_day(tr("Mariä Empfängnis"))
107
107
 
108
- # St. Stephen's Day.
108
+ # Saint Stephen's Day.
109
109
  self._add_christmas_day_two(tr("Stephanstag"))
110
110
 
111
111
  def _populate_subdiv_ar_public_holidays(self):
@@ -286,7 +286,7 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
286
286
  self._add_observed(self._add_christmas_day_two(tr("Stephanstag")), rule=MON_ONLY)
287
287
 
288
288
  def _populate_subdiv_nw_public_holidays(self):
289
- # St. Joseph's Day.
289
+ # Saint Joseph's Day.
290
290
  self._add_saint_josephs_day(tr("Josefstag"))
291
291
 
292
292
  self._add_good_friday(tr("Karfreitag"))
@@ -315,7 +315,7 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
315
315
 
316
316
  self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
317
317
 
318
- # St. Nicholas of Flüe.
318
+ # Saint Nicholas of Flüe.
319
319
  self._add_holiday_sep_25(tr("Bruder Klaus"))
320
320
 
321
321
  self._add_all_saints_day(tr("Allerheiligen"))