holidays 0.87__py3-none-any.whl → 0.89__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 (71) hide show
  1. holidays/constants.py +1 -0
  2. holidays/countries/american_samoa.py +2 -0
  3. holidays/countries/argentina.py +49 -37
  4. holidays/countries/australia.py +13 -1
  5. holidays/countries/azerbaijan.py +5 -4
  6. holidays/countries/belarus.py +4 -2
  7. holidays/countries/brazil.py +27 -1
  8. holidays/countries/chile.py +2 -3
  9. holidays/countries/estonia.py +5 -5
  10. holidays/countries/guam.py +2 -0
  11. holidays/countries/italy.py +7 -7
  12. holidays/countries/jordan.py +6 -4
  13. holidays/countries/kyrgyzstan.py +3 -2
  14. holidays/countries/macau.py +39 -45
  15. holidays/countries/malaysia.py +171 -71
  16. holidays/countries/new_zealand.py +4 -3
  17. holidays/countries/northern_mariana_islands.py +2 -0
  18. holidays/countries/puerto_rico.py +4 -2
  19. holidays/countries/qatar.py +4 -5
  20. holidays/countries/sweden.py +35 -11
  21. holidays/countries/taiwan.py +6 -5
  22. holidays/countries/timor_leste.py +14 -20
  23. holidays/countries/turks_and_caicos_islands.py +13 -3
  24. holidays/countries/united_states.py +400 -108
  25. holidays/countries/united_states_minor_outlying_islands.py +2 -0
  26. holidays/countries/united_states_virgin_islands.py +2 -0
  27. holidays/countries/uzbekistan.py +12 -1
  28. holidays/countries/venezuela.py +113 -23
  29. holidays/financial/__init__.py +1 -0
  30. holidays/financial/bombay_stock_exchange.py +33 -0
  31. holidays/financial/national_stock_exchange_of_india.py +1 -1
  32. holidays/holiday_base.py +2 -1
  33. holidays/locale/en_AU/LC_MESSAGES/AU.mo +0 -0
  34. holidays/locale/en_IN/LC_MESSAGES/XBOM.mo +0 -0
  35. holidays/locale/en_TC/LC_MESSAGES/TC.mo +0 -0
  36. holidays/locale/en_TL/LC_MESSAGES/TL.mo +0 -0
  37. holidays/locale/en_US/LC_MESSAGES/AU.mo +0 -0
  38. holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
  39. holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
  40. holidays/locale/en_US/LC_MESSAGES/SE.mo +0 -0
  41. holidays/locale/en_US/LC_MESSAGES/TC.mo +0 -0
  42. holidays/locale/en_US/LC_MESSAGES/TL.mo +0 -0
  43. holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
  44. holidays/locale/en_US/LC_MESSAGES/VE.mo +0 -0
  45. holidays/locale/en_US/LC_MESSAGES/XBOM.mo +0 -0
  46. holidays/locale/es/LC_MESSAGES/VE.mo +0 -0
  47. holidays/locale/gu/LC_MESSAGES/XBOM.mo +0 -0
  48. holidays/locale/gu/LC_MESSAGES/XNSE.mo +0 -0
  49. holidays/locale/hi/LC_MESSAGES/XBOM.mo +0 -0
  50. holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
  51. holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
  52. holidays/locale/pt_TL/LC_MESSAGES/TL.mo +0 -0
  53. holidays/locale/sv/LC_MESSAGES/SE.mo +0 -0
  54. holidays/locale/tet/LC_MESSAGES/TL.mo +0 -0
  55. holidays/locale/th/LC_MESSAGES/AU.mo +0 -0
  56. holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
  57. holidays/locale/th/LC_MESSAGES/SE.mo +0 -0
  58. holidays/locale/th/LC_MESSAGES/TL.mo +0 -0
  59. holidays/locale/th/LC_MESSAGES/US.mo +0 -0
  60. holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
  61. holidays/locale/uk/LC_MESSAGES/SE.mo +0 -0
  62. holidays/locale/uk/LC_MESSAGES/VE.mo +0 -0
  63. holidays/registry.py +1 -0
  64. holidays/utils.py +52 -0
  65. holidays/version.py +3 -1
  66. {holidays-0.87.dist-info → holidays-0.89.dist-info}/METADATA +18 -18
  67. {holidays-0.87.dist-info → holidays-0.89.dist-info}/RECORD +71 -65
  68. {holidays-0.87.dist-info → holidays-0.89.dist-info}/licenses/CONTRIBUTORS +7 -0
  69. {holidays-0.87.dist-info → holidays-0.89.dist-info}/WHEEL +0 -0
  70. {holidays-0.87.dist-info → holidays-0.89.dist-info}/licenses/LICENSE +0 -0
  71. {holidays-0.87.dist-info → holidays-0.89.dist-info}/top_level.txt +0 -0
@@ -13,10 +13,12 @@
13
13
  from gettext import gettext as tr
14
14
 
15
15
  from holidays.calendars.gregorian import (
16
+ JAN,
16
17
  FEB,
17
18
  MAR,
18
19
  APR,
19
20
  MAY,
21
+ JUN,
20
22
  SEP,
21
23
  NOV,
22
24
  DEC,
@@ -28,8 +30,13 @@ from holidays.calendars.gregorian import (
28
30
  SAT,
29
31
  SUN,
30
32
  )
31
- from holidays.constants import GOVERNMENT, PUBLIC, UNOFFICIAL
32
- from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
33
+ from holidays.constants import GOVERNMENT, HALF_DAY, PUBLIC, UNOFFICIAL
34
+ from holidays.groups import (
35
+ ChristianHolidays,
36
+ HinduCalendarHolidays,
37
+ InternationalHolidays,
38
+ StaticHolidays,
39
+ )
33
40
  from holidays.observed_holiday_base import (
34
41
  ObservedHolidayBase,
35
42
  ObservedRule,
@@ -46,7 +53,13 @@ GA_IN_WASHINGTON_BIRTHDAY = ObservedRule(
46
53
  )
47
54
 
48
55
 
49
- class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
56
+ class UnitedStates(
57
+ ObservedHolidayBase,
58
+ ChristianHolidays,
59
+ HinduCalendarHolidays,
60
+ InternationalHolidays,
61
+ StaticHolidays,
62
+ ):
50
63
  """United States of America (the) holidays.
51
64
 
52
65
  References:
@@ -61,6 +74,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
61
74
  * [B-112525 February 27th, 1953 32 COMP. GEN. 378](https://web.archive.org/web/20201001081239/https://www.gao.gov/products/b-112525#mt=e-report)
62
75
  * [Public Law 89-554](https://web.archive.org/web/20250512204449/https://www.govinfo.gov/content/pkg/STATUTE-80/pdf/STATUTE-80-Pg378.pdf)
63
76
  * [E.O. 11582 of February 11th, 1971](https://web.archive.org/web/20250326234305/https://www.archives.gov/federal-register/codification/executive-order/11582.html)
77
+ * [CA Diwali state holiday (AB 268, 2025-2026)](https://web.archive.org/web/20251223175415if_/https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=202520260AB268)
64
78
  * Washington's Birthday:
65
79
  * [AK](https://web.archive.org/web/20250306070343/https://doa.alaska.gov/calendar/)
66
80
  * [AL](https://web.archive.org/web/20250125202410/https://admincode.legislature.state.al.us/administrative-code/670-X-12-.01)
@@ -103,14 +117,45 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
103
117
  * Northern Mariana Islands (subdivision MP):
104
118
  * <https://web.archive.org/web/20240727045236/https://governor.gov.mp/archived-news/executive-actions-archive/memorandum-2022-legal-holidays/>
105
119
  * <https://web.archive.org/web/20250429140158/https://governor.gov.mp/archived-news/executive-actions-archive/memorandum-2022-legal-holidays/>
120
+ * Alaska:
121
+ * [Proclamation 3269 - Admission of the State of Alaska Into the Union](https://web.archive.org/web/20250613173049/https://www.presidency.ucsb.edu/documents/proclamation-3269-admission-the-state-alaska-into-the-union)
122
+ * [Alaska Statutes, Sec. 44.12.010](https://web.archive.org/web/20251014215648/https://www.akleg.gov/basis/statutes.asp#44.12.010)
123
+ * [Alaska Day](https://web.archive.org/web/20120502232826/http://www.alaskadispatch.com/article/happy-alaska-day-great-land)
124
+ * [Chapter 109, Session Laws of Alaska (1989)](https://web.archive.org/web/20251228151503/https://www.akleg.gov/basis/folioproxy.asp?url=http://wwwjnu03.akleg.org/cgi-bin/folioisa.dll/slpr/query=*/doc/%7B@1158%7D?next)
106
125
  * American Samoa:
107
126
  * <https://web.archive.org/web/20240808163628/https://asbar.org/code-annotated/1-0501-public-holidays/>
127
+ * Puerto Rico:
128
+ * [1902 Political Code of Puerto Rico](https://web.archive.org/web/20251019021053/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/C%C3%B3digos/0-1902/0-1902.pdf)
129
+ * [Joint Resolution No. 31 of Aug 18, 1913](https://web.archive.org/web/20240923174029/https://bvirtualogp.pr.gov/ogp/Bvirtual/resolucionesConjuntas/PDF/0031-1913.pdf)
130
+ * [Law No. 47 of Dec 1, 1917](https://web.archive.org/web/20240531113045/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0047-1917.pdf)
131
+ * [Law No. 3 of Apr 9, 1925](https://web.archive.org/web/20240531113358/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0003-1925.pdf)
132
+ * [Law No. 3 of Mar 27, 1931](https://web.archive.org/web/20250625060601/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/3-1931.pdf)
133
+ * [Law No. 91 of May 6, 1938](https://web.archive.org/web/20250807060751/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/91-1938.pdf)
134
+ * [Law No. 97 of May 6, 1938](https://web.archive.org/web/20251213203244/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0099-1938.pdf)
135
+ * [Law No. 3 of Mar 15, 1939](https://web.archive.org/web/20240531113040/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0003-1939.pdf)
136
+ * [Law No. 1 of Aug 1, 1952](https://web.archive.org/web/20250430200856/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/3-duplicados/1-1952.pdf)
137
+ * [Law No. 88 of Jun 27, 1969](https://web.archive.org/web/20250605105341/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/88-1969.pdf)
138
+ * [Law No. 260 of Jul 30, 1974](https://web.archive.org/web/20251214005218/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0259-1974.pdf)
139
+ * [Law No. 129 of Jun 13, 1980](https://web.archive.org/web/20251213230716/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0129-1980.pdf)
140
+ * [Law No. 121 of Dec 24, 1991](https://web.archive.org/web/20251213230111/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0121-1991.pdf)
141
+ * [Law No. 39 of Jul 11, 1994](https://web.archive.org/web/20221222034721/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0039-1994.pdf)
142
+ * [Law No. 76 of Jul 6, 1995](https://web.archive.org/web/20250605110906/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/76-1995.pdf)
143
+ * [Law No. 305 of Dec 25, 2002](https://web.archive.org/web/20250625061048/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/305-2002.pdf)
144
+ * [Law No. 182 of Dec 1, 2010](https://web.archive.org/web/20221221221227/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0182-2010.pdf)
145
+ * [Law No. 111 of Jul 29, 2014](https://web.archive.org/web/20250219021118/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0111-2014.pdf)
146
+ * [Law No. 40 of Mar 25, 2015](https://web.archive.org/web/20221221221216/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2/0040-2015.pdf)
147
+ * [Law No. 152 of Jul 23, 2018](https://web.archive.org/web/20250204220144/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2018/0152-2018.pdf)
148
+ * [Law No. 117 of Dec 23, 2022](https://web.archive.org/web/20250204215251/https://bvirtualogp.pr.gov/ogp/Bvirtual/leyesreferencia/PDF/2020/0117-2022.pdf)
108
149
  """
109
150
 
110
151
  country = "US"
111
152
  default_language = "en_US"
112
153
  # %s (observed).
113
154
  observed_label = tr("%s (observed)")
155
+ # %s (estimated).
156
+ estimated_label = tr("%s (estimated)")
157
+ # %s (observed, estimated).
158
+ observed_estimated_label = tr("%s (observed, estimated)")
114
159
  supported_languages = ("en_US", "th")
115
160
  # Independence Declared on July 4th, 1776.
116
161
  start_year = 1777
@@ -232,7 +277,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
232
277
  "West Virginia": "WV",
233
278
  "Wyoming": "WY",
234
279
  }
235
- supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
280
+ supported_categories: tuple[str, ...] = (GOVERNMENT, HALF_DAY, PUBLIC, UNOFFICIAL)
236
281
  _deprecated_subdivisions = (
237
282
  "FM",
238
283
  "MH",
@@ -241,6 +286,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
241
286
 
242
287
  def __init__(self, *args, **kwargs):
243
288
  ChristianHolidays.__init__(self)
289
+ HinduCalendarHolidays.__init__(self)
244
290
  InternationalHolidays.__init__(self)
245
291
  StaticHolidays.__init__(self, cls=UnitedStatesStaticHolidays)
246
292
  kwargs.setdefault("observed_rule", SAT_TO_PREV_FRI + SUN_TO_NEXT_MON)
@@ -296,6 +342,19 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
296
342
  if self._year >= 1954:
297
343
  self._add_observed(dt)
298
344
 
345
+ if self._year >= 1938:
346
+ name = (
347
+ # Veterans Day.
348
+ tr("Veterans Day")
349
+ if self._year >= 1954
350
+ # Armistice Day.
351
+ else tr("Armistice Day")
352
+ )
353
+ if 1971 <= self._year <= 1977:
354
+ self._add_holiday_4th_mon_of_oct(name)
355
+ else:
356
+ self._add_observed(self._add_remembrance_day(name))
357
+
299
358
  if self._year >= 1971:
300
359
  # Memorial Day.
301
360
  self._add_holiday_last_mon_of_may(tr("Memorial Day"))
@@ -318,19 +377,6 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
318
377
  # Columbus Day.
319
378
  self._add_holiday_2nd_mon_of_oct(tr("Columbus Day"))
320
379
 
321
- if self._year >= 1938:
322
- name = (
323
- # Veterans Day.
324
- tr("Veterans Day")
325
- if self._year >= 1954
326
- # Armistice Day.
327
- else tr("Armistice Day")
328
- )
329
- if 1971 <= self._year <= 1977:
330
- self._add_holiday_4th_mon_of_oct(name)
331
- else:
332
- self._add_observed(self._add_remembrance_day(name))
333
-
334
380
  # Thanksgiving Day.
335
381
  # Began to be declared annually in 1862 by Abraham Lincoln.
336
382
  # First declared as last THU of NOV in 1863.
@@ -379,101 +425,133 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
379
425
  )
380
426
 
381
427
  def _populate_subdiv_holidays(self):
382
- if PUBLIC not in self.categories:
383
- return None
428
+ if PUBLIC in self.categories:
429
+ if self._year >= 1986 and self.subdiv not in {
430
+ "AK",
431
+ "AL",
432
+ "AR",
433
+ "AZ",
434
+ "GA",
435
+ "ID",
436
+ "MS",
437
+ "NH",
438
+ }:
439
+ # Martin Luther King Jr. Day.
440
+ self._add_holiday_3rd_mon_of_jan(tr("Martin Luther King Jr. Day"))
441
+
442
+ if self._year >= 1879 and self.subdiv not in {
443
+ "AK",
444
+ "AL",
445
+ "AR",
446
+ "DE",
447
+ "FL",
448
+ "GA",
449
+ "IN",
450
+ "NM",
451
+ "PR",
452
+ "VI",
453
+ }:
454
+ # Washington's Birthday.
455
+ name = tr("Washington's Birthday")
456
+ if self._year >= 1971:
457
+ if self.subdiv not in {
458
+ "AZ",
459
+ "CA",
460
+ "CO",
461
+ "HI",
462
+ "ID",
463
+ "MD",
464
+ "MN",
465
+ "MT",
466
+ "NJ",
467
+ "OH",
468
+ "OK",
469
+ "OR",
470
+ "PA",
471
+ "SC",
472
+ "TN",
473
+ "TX",
474
+ "UT",
475
+ "VA",
476
+ "VT",
477
+ "WA",
478
+ "WV",
479
+ "WY",
480
+ }:
481
+ self._add_holiday_3rd_mon_of_feb(name)
482
+ else:
483
+ self._add_holiday_feb_22(name)
384
484
 
385
- if self._year >= 1986 and self.subdiv not in {"AL", "AR", "AZ", "GA", "ID", "MS", "NH"}:
386
- # Martin Luther King Jr. Day.
387
- self._add_holiday_3rd_mon_of_jan(tr("Martin Luther King Jr. Day"))
388
-
389
- if self._year >= 1879 and self.subdiv not in {
390
- "AL",
391
- "AR",
392
- "DE",
393
- "FL",
394
- "GA",
395
- "IN",
396
- "NM",
397
- "VI",
398
- }:
399
- # Washington's Birthday.
400
- name = tr("Washington's Birthday")
401
- if self._year >= 1971:
402
- if self.subdiv not in {
403
- "AK",
485
+ if self._year >= 1937 and (
486
+ self.subdiv is None
487
+ or self.subdiv
488
+ in {
489
+ "AS",
404
490
  "AZ",
405
- "CA",
406
- "CO",
407
- "HI",
491
+ "CT",
492
+ "GA",
408
493
  "ID",
494
+ "IL",
495
+ "IN",
496
+ "MA",
409
497
  "MD",
410
- "MN",
498
+ "MO",
411
499
  "MT",
412
500
  "NJ",
501
+ "NY",
413
502
  "OH",
414
- "OK",
415
- "OR",
416
503
  "PA",
417
- "PR",
418
- "SC",
419
- "TN",
420
- "TX",
421
504
  "UT",
422
- "VA",
423
- "VT",
424
- "WA",
425
505
  "WV",
426
- "WY",
427
- }:
428
- self._add_holiday_3rd_mon_of_feb(name)
429
- else:
430
- self._add_holiday_feb_22(name)
431
-
432
- if self._year >= 1937 and (
433
- self.subdiv is None
434
- or self.subdiv
435
- in {
436
- "AS",
437
- "AZ",
438
- "CT",
439
- "GA",
440
- "ID",
441
- "IL",
442
- "IN",
443
- "MA",
444
- "MD",
445
- "MO",
446
- "MT",
447
- "NJ",
448
- "NY",
449
- "OH",
450
- "PA",
451
- "UT",
452
- "WV",
453
- }
454
- ):
455
- # Columbus Day.
456
- name = tr("Columbus Day")
457
- if self._year >= 1971:
458
- self._add_holiday_2nd_mon_of_oct(name)
459
- else:
460
- self._add_columbus_day(name)
506
+ }
507
+ ):
508
+ # Columbus Day.
509
+ name = tr("Columbus Day")
510
+ if self._year >= 1971:
511
+ self._add_holiday_2nd_mon_of_oct(name)
512
+ else:
513
+ self._add_columbus_day(name)
514
+
515
+ if self._year >= 1938 and self.subdiv != "PR":
516
+ name = (
517
+ # Veterans Day.
518
+ tr("Veterans Day")
519
+ if self._year >= 1954
520
+ # Armistice Day.
521
+ else tr("Armistice Day")
522
+ )
523
+ if 1971 <= self._year <= 1977:
524
+ self._add_holiday_4th_mon_of_oct(name)
525
+ else:
526
+ self._add_observed(self._add_remembrance_day(name))
461
527
 
462
528
  super()._populate_subdiv_holidays()
463
529
 
464
530
  def _populate_subdiv_ak_public_holidays(self):
531
+ # Proclamation 3269 from Jan 3, 1959.
532
+ if self._year <= 1958:
533
+ return None
534
+
535
+ # Chapter 109 SLA 1989.
536
+ if self._year >= 1990:
537
+ # Martin Luther King Jr.'s Birthday.
538
+ self._add_holiday_3rd_mon_of_jan(tr("Martin Luther King Jr.'s Birthday"))
539
+ else:
540
+ # Lincoln's Birthday.
541
+ self._add_observed(self._add_holiday_feb_12(tr("Lincoln's Birthday")))
542
+
465
543
  if self._year >= 1971:
466
- # Presidents' Day.
467
- self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
544
+ # Chapter 109 SLA 1989.
545
+ self._add_holiday_3rd_mon_of_feb(
546
+ # Presidents' Day.
547
+ tr("Presidents' Day")
548
+ if self._year >= 1990
549
+ # Washington's Birthday.
550
+ else tr("Washington's Birthday")
551
+ )
468
552
 
469
- # No observance in 1921: https://web.archive.org/web/20230208015211/https://chroniclingamerica.loc.gov/lccn/sn86072239/1922-03-29/ed-1/seq-8/
470
- if self._year >= 1918 and self._year != 1921:
471
- # Seward's Day.
472
- name = tr("Seward's Day")
473
- if self._year >= 1955:
474
- self._add_holiday_last_mon_of_mar(name)
475
- else:
476
- self._add_holiday_mar_30(name)
553
+ # Seward's Day.
554
+ self._add_holiday_last_mon_of_mar(tr("Seward's Day"))
477
555
 
478
556
  if self._year >= 1971:
479
557
  self._add_holiday_2nd_mon_of_oct(
@@ -484,10 +562,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
484
562
  else tr("Columbus Day")
485
563
  )
486
564
 
487
- # https://web.archive.org/web/20120502232826/http://www.alaskadispatch.com/article/happy-alaska-day-great-land
488
- if self._year >= 1917:
489
- # Alaska Day.
490
- self._add_observed(self._add_holiday_oct_18(tr("Alaska Day")))
565
+ # Alaska Day.
566
+ self._add_observed(self._add_holiday_oct_18(tr("Alaska Day")))
491
567
 
492
568
  def _populate_subdiv_al_public_holidays(self):
493
569
  if self._year >= 1986:
@@ -582,6 +658,10 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
582
658
  # Day After Thanksgiving.
583
659
  self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
584
660
 
661
+ if self._year >= 2026:
662
+ # Diwali.
663
+ self._add_diwali_india(tr("Diwali"))
664
+
585
665
  def _populate_subdiv_co_public_holidays(self):
586
666
  if self._year >= 1971:
587
667
  # Washington-Lincoln Day.
@@ -1079,24 +1159,174 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
1079
1159
  self._add_holiday_1_day_past_4th_thu_of_nov(tr("Day After Thanksgiving"))
1080
1160
 
1081
1161
  def _populate_subdiv_pr_public_holidays(self):
1082
- # Epiphany.
1083
- self._add_epiphany_day(tr("Epiphany"))
1162
+ # Art. 387 of the 1902 Political Code of Puerto Rico.
1163
+ if self._year <= 1902:
1164
+ return None
1084
1165
 
1166
+ # Día de Reyes.
1167
+ # Law No. 3 of Mar 27, 1931.
1168
+ if self._year >= 1932:
1169
+ # Epiphany.
1170
+ self._add_epiphany_day(tr("Epiphany"))
1171
+
1172
+ # Natalicio de Eugenio María de Hostos.
1173
+ # Established by Law No. 3 of Mar 15, 1939.
1174
+ # Made movable by Law No. 88 of Jun 27, 1969.
1175
+ # Abolished by Law No. 111 of Jul 29, 2014.
1176
+ if 1940 <= self._year <= 2014:
1177
+ # Birthday of Eugenio María de Hostos.
1178
+ name = tr("Birthday of Eugenio María de Hostos")
1179
+ if self._year >= 1971:
1180
+ self._add_holiday_2nd_mon_of_jan(name)
1181
+ else:
1182
+ self._add_observed(self._add_holiday_jan_11(name), rule=SUN_TO_NEXT_MON)
1183
+
1184
+ # ...Día de las Mujeres y Hombres Próceres de Puerto Rico.
1185
+ # Law No. 152 of Jul 23, 2018.
1186
+ if self._year >= 2019:
1187
+ # George Washington Day, Presidents' Day, and the Day of the Women and Men
1188
+ # Heroes of Puerto Rico.
1189
+ name = tr(
1190
+ "George Washington Day, Presidents' Day, and the Day of the Women and Men "
1191
+ "Heroes of Puerto Rico"
1192
+ )
1193
+ # ...Día del Prócer y la Mujer Ilustre de Puerto Rico.
1194
+ # Law No. 40 of Mar 25, 2015.
1195
+ elif self._year >= 2016:
1196
+ # George Washington Day, Presidents' Day, and the Day of the Hero
1197
+ # and the Illustrious Woman of Puerto Rico.
1198
+ name = tr(
1199
+ "George Washington Day, Presidents' Day, and the Day of the Hero "
1200
+ "and the Illustrious Woman of Puerto Rico"
1201
+ )
1202
+ # ...Día de los Próceres Puertorriqueños.
1203
+ # Law No. 111 of Jul 29, 2014.
1204
+ elif self._year >= 2015:
1205
+ # George Washington Day, Presidents' Day, and the Puerto Rican Heroes Day.
1206
+ name = tr("George Washington Day, Presidents' Day, and the Puerto Rican Heroes Day")
1207
+ else:
1208
+ name = tr("George Washington Day")
1085
1209
  if self._year >= 1971:
1086
- # Presidents' Day.
1087
- self._add_holiday_3rd_mon_of_feb(tr("Presidents' Day"))
1210
+ self._add_holiday_3rd_mon_of_feb(name)
1211
+ else:
1212
+ self._add_observed(self._add_holiday_feb_22(name), rule=SUN_TO_NEXT_MON)
1213
+
1214
+ # Día de la Abolición de la Esclavitud.
1088
1215
 
1089
1216
  # Emancipation Day.
1090
1217
  self._add_observed(self._add_holiday_mar_22(tr("Emancipation Day")), rule=SUN_TO_NEXT_MON)
1091
1218
 
1219
+ # Viernes Santo.
1220
+
1092
1221
  # Good Friday.
1093
1222
  self._add_good_friday(tr("Good Friday"))
1094
1223
 
1095
- # Constitution Day.
1096
- self._add_observed(self._add_holiday_jul_25(tr("Constitution Day")), rule=SUN_TO_NEXT_MON)
1224
+ # Día de José de Diego.
1225
+ # Established by Law No. 3 of Apr 9, 1925.
1226
+ # Made movable by Law No. 88 of Jun 27, 1969.
1227
+ # Abolished by Law No. 111 of Jul 29, 2014.
1228
+ if 1925 <= self._year <= 2014:
1229
+ # José de Diego Day.
1230
+ name = tr("José de Diego Day")
1231
+ if self._year >= 1971:
1232
+ self._add_holiday_3rd_mon_of_apr(name)
1233
+ else:
1234
+ self._add_observed(self._add_holiday_apr_16(name), rule=SUN_TO_NEXT_MON)
1235
+
1236
+ # Día de Luis Muñoz Rivera.
1237
+ # Established by Law No. 47 of Dec 1, 1917.
1238
+ # Made movable by Law No. 88 of Jun 27, 1969.
1239
+ # Abolished by Law No. 111 of Jul 29, 2014.
1240
+ if 1918 <= self._year <= 2014:
1241
+ # Luis Muñoz Rivera Day.
1242
+ name = tr("Luis Muñoz Rivera Day")
1243
+ if self._year >= 1971:
1244
+ self._add_holiday_3rd_mon_of_jul(name)
1245
+ else:
1246
+ self._add_observed(self._add_holiday_jul_17(name), rule=SUN_TO_NEXT_MON)
1247
+
1248
+ # Día de la Ocupación / Día de la Constitución del Estado Libre Asociado de Puerto Rico.
1249
+ self._add_observed(
1250
+ self._add_holiday_jul_25(
1251
+ # Puerto Rico Constitution Day.
1252
+ tr("Puerto Rico Constitution Day")
1253
+ # Renamed by Law No. 1 of Aug 1, 1952.
1254
+ if self._year >= 1953
1255
+ # Occupation Day.
1256
+ else tr("Occupation Day")
1257
+ ),
1258
+ rule=SUN_TO_NEXT_MON,
1259
+ )
1260
+
1261
+ # Día de José Celso Barbosa.
1262
+ # Established by Law No. 97 of May 6, 1938.
1263
+ # Abolished by Law No. 111 of Jul 29, 2014.
1264
+ if 1938 <= self._year <= 2014:
1265
+ # José Celso Barbosa Day.
1266
+ name = tr("José Celso Barbosa Day")
1267
+ # Made movable by Law No. 88 of Jun 27, 1969.
1268
+ # Made fixed by:
1269
+ # Law No. 39 of Jul 11, 1994 (for 1994),
1270
+ # Law No. 76 of Jul 6, 1995.
1271
+ if 1971 <= self._year <= 1993:
1272
+ self._add_holiday_4th_mon_of_jul(name)
1273
+ else:
1274
+ self._add_observed(self._add_holiday_jul_27(name), rule=SUN_TO_NEXT_MON)
1275
+
1276
+ # Día de la Raza.
1277
+ # Established by Joint Resolution No. 31 of Aug 18, 1913.
1278
+ # Made movable by Law No. 88 of Jun 27, 1969.
1279
+ # Made fixed by Law No. 260 of Jul 30, 1974.
1280
+ # Made movable by Law No. 111 of Jul 29, 2014.
1281
+ if self._year >= 1913:
1282
+ # Columbus Day.
1283
+ name = tr("Columbus Day")
1284
+ if 1971 <= self._year <= 1973 or self._year >= 2014:
1285
+ self._add_holiday_2nd_mon_of_oct(name)
1286
+ else:
1287
+ self._add_observed(self._add_columbus_day(name), rule=SUN_TO_NEXT_MON)
1288
+
1289
+ # Día del Armisticio / Día del Veterano.
1290
+ # The exact year of holiday appearance is currently uncertain.
1291
+ if self._year >= 1938:
1292
+ self._add_observed(
1293
+ self._add_remembrance_day(
1294
+ # Veterans Day.
1295
+ tr("Veterans Day")
1296
+ # Renamed by Law No. 129 of Jun 13, 1980.
1297
+ if self._year >= 1980
1298
+ # Armistice Day.
1299
+ else tr("Armistice Day")
1300
+ ),
1301
+ rule=SUN_TO_NEXT_MON,
1302
+ )
1097
1303
 
1098
- # Discovery Day.
1099
- self._add_observed(self._add_holiday_nov_19(tr("Discovery Day")), rule=SUN_TO_NEXT_MON)
1304
+ # Día del Descubrimiento de Puerto Rico.
1305
+ # Established by Law No. 91 of May 6, 1938.
1306
+ if self._year >= 1938:
1307
+ # Día de la Puertorriqueñidad.
1308
+ # Renamed by Law No. 117 of Dec 23, 2022.
1309
+ if self._year >= 2023:
1310
+ # Puerto Rican Identity Day.
1311
+ name = tr("Puerto Rican Identity Day")
1312
+ # Día de la Cultura Puertorriqueña y el Descubrimiento de Puerto Rico.
1313
+ # Renamed by Law No. 111 of Jul 29, 2014.
1314
+ elif self._year >= 2014:
1315
+ # Puerto Rican Culture and Discovery of Puerto Rico Day.
1316
+ name = tr("Puerto Rican Culture and Discovery of Puerto Rico Day")
1317
+ else:
1318
+ # Discovery of Puerto Rico Day.
1319
+ name = tr("Discovery of Puerto Rico Day")
1320
+ self._add_observed(self._add_holiday_nov_19(name), rule=SUN_TO_NEXT_MON)
1321
+
1322
+ def _populate_subdiv_pr_half_day_holidays(self):
1323
+ # Established by Law No. 305 of Dec 25, 2002.
1324
+ if self._year >= 2003:
1325
+ # %s (from 12pm).
1326
+ begin_time_label = self.tr("%s (from 12pm)")
1327
+
1328
+ # Christmas Eve.
1329
+ self._add_christmas_eve(begin_time_label % self.tr("Christmas Eve"))
1100
1330
 
1101
1331
  def _populate_subdiv_ri_public_holidays(self):
1102
1332
  if self._year >= 1948:
@@ -1415,6 +1645,27 @@ class UnitedStatesStaticHolidays(StaticHolidays):
1415
1645
  * [1813](https://web.archive.org/web/20240621142030/https://founders.archives.gov/documents/Madison/03-06-02-0434)
1416
1646
  * [1815](https://web.archive.org/web/20240621142030/https://founders.archives.gov/documents/Madison/03-09-02-0066)
1417
1647
 
1648
+ Federal Government Closings:
1649
+ * [2001, EO 13238](https://web.archive.org/web/20250414100019/http://www.federalregister.gov/documents/2001/12/10/01-30624/closing-of-federal-government-executive-departments-and-agencies-on-monday-december-24-2001)
1650
+ * [2002, EO 13281](https://web.archive.org/web/20250213083130/https://www.federalregister.gov/documents/2002/12/23/02-32518/half-day-closing-of-executive-departments-and-agencies-of-the-federal-government-on-tuesday-december)
1651
+ * [2003, EO 13320](https://web.archive.org/web/20250201153913/https://www.federalregister.gov/documents/2003/12/12/03-30913/closing-of-executive-departments-and-agencies-of-the)
1652
+ * [2004, EO 13343](https://web.archive.org/web/20250414155140/https://www.federalregister.gov/documents/2004/06/08/04-13123/providing-for-the-closing-of-government-departments-and-agencies-on-june-11-2004)
1653
+ * [2007, EO 13421](https://web.archive.org/web/20250208143815/https://www.federalregister.gov/documents/2007/01/04/06-9993/providing-for-the-closing-of-government-departments-and-agencies-on-january-2-2007)
1654
+ * [2007, EO 13453](https://web.archive.org/web/20250414113515/https://www.federalregister.gov/documents/2007/12/11/07-6022/closing-of-executive-departments-and-agencies-of-the-federal-government-on-monday-december-24-2007)
1655
+ * [2008, EO 13482](https://web.archive.org/web/20250413080630/https://www.federalregister.gov/documents/2008/12/16/E8-30042/closing-of-executive-departments-and-agencies-of-the-federal-government-on-friday-december-26-2008)
1656
+ * [2009, EO 13523](https://web.archive.org/web/20250204020329/https://www.federalregister.gov/documents/2009/12/16/E9-30020/half-day-closing-of-executive-departments-and-agencies-on-thursday-december-24-2009)
1657
+ * [2012, EO 13633](https://web.archive.org/web/20250202102026/https://www.federalregister.gov/documents/2012/12/28/2012-31225/closing-of-executive-departments-and-agencies-of-the-federal-government-on-monday-december-24-2012)
1658
+ * [2014, EO 13682](https://web.archive.org/web/20250204140956/https://www.federalregister.gov/documents/2014/12/10/2014-29121/closing-of-executive-departments-and-agencies-of-the-federal-government-on-friday-december-26-2014)
1659
+ * [2015, EO 13713]https://web.archive.org/web/20250204021239/https://www.federalregister.gov/documents/2015/12/16/2015-31749/half-day-closing-of-executive-departments-and-agencies-of-the-federal-government-on-thursday)
1660
+ * [2018, EO 13852](https://web.archive.org/web/20250507175643/https://www.federalregister.gov/documents/2018/12/04/2018-26552/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on)
1661
+ * [2018, EO 13854](https://web.archive.org/web/20250202030122/https://www.federalregister.gov/documents/2018/12/21/2018-27945/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on)
1662
+ * [2019, EO 13900](https://web.archive.org/web/20250205125417/https://www.federalregister.gov/documents/2019/12/20/2019-27678/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on)
1663
+ * [2020, EO 13965](https://web.archive.org/web/20250212090335/https://www.federalregister.gov/documents/2020/12/16/2020-27807/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on)
1664
+ * [2024, EO 14129](https://web.archive.org/web/20250219155414/https://www.federalregister.gov/documents/2024/12/26/2024-31143/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on)
1665
+ * [2025, EO 14133](https://web.archive.org/web/20250218220403/https://www.federalregister.gov/documents/2025/01/03/2024-31766/providing-for-the-closing-of-executive-departments-and-agencies-of-the-federal-government-on-january)
1666
+ * [2025](https://web.archive.org/web/20251219180805/https://www.whitehouse.gov/presidential-actions/2025/12/providing-for-the-closure-of-executive-departments-and-agencies-of-the-federal-government-on-december-24-2025-and-december-26-2025/)
1667
+
1668
+
1418
1669
  Pre-1971 Inauguration Day observances has been moved here.
1419
1670
  """
1420
1671
 
@@ -1428,6 +1679,15 @@ class UnitedStatesStaticHolidays(StaticHolidays):
1428
1679
  # Inauguration Day.
1429
1680
  inauguration_day_name = tr("Inauguration Day")
1430
1681
 
1682
+ # %s (half-day closing).
1683
+ half_day_closing_label = tr("%s (half-day closing)")
1684
+
1685
+ # Christmas Eve.
1686
+ christmas_eve_name = tr("Christmas Eve")
1687
+
1688
+ # Day After Christmas.
1689
+ day_after_christmas_name = tr("Day After Christmas")
1690
+
1431
1691
  special_public_holidays = {
1432
1692
  1777: (DEC, 18, public_thanksgiving_and_prayer_day_name),
1433
1693
  1782: (NOV, 28, public_thanksgiving_and_prayer_day_name),
@@ -1439,6 +1699,38 @@ class UnitedStatesStaticHolidays(StaticHolidays):
1439
1699
  1815: (APR, 13, public_humiliation_and_prayer_day_name),
1440
1700
  }
1441
1701
 
1702
+ special_government_holidays = {
1703
+ 2001: (DEC, 24, christmas_eve_name),
1704
+ 2002: (DEC, 24, half_day_closing_label % christmas_eve_name),
1705
+ 2003: (DEC, 26, day_after_christmas_name),
1706
+ # National Day of Mourning for former President Ronald Reagan.
1707
+ 2004: (JUN, 11, tr("National Day of Mourning for former President Ronald Reagan")),
1708
+ 2007: (
1709
+ # National Day of Mourning for former President Gerald R. Ford.
1710
+ (JAN, 2, tr("National Day of Mourning for former President Gerald R. Ford")),
1711
+ (DEC, 24, christmas_eve_name),
1712
+ ),
1713
+ 2008: (DEC, 26, day_after_christmas_name),
1714
+ 2009: (DEC, 24, half_day_closing_label % christmas_eve_name),
1715
+ 2012: (DEC, 24, christmas_eve_name),
1716
+ 2014: (DEC, 26, day_after_christmas_name),
1717
+ 2015: (DEC, 24, half_day_closing_label % christmas_eve_name),
1718
+ 2018: (
1719
+ # National Day of Mourning for former President George H. W. Bush.
1720
+ (DEC, 5, tr("National Day of Mourning for former President George H. W. Bush")),
1721
+ (DEC, 24, christmas_eve_name),
1722
+ ),
1723
+ 2019: (DEC, 24, christmas_eve_name),
1724
+ 2020: (DEC, 24, christmas_eve_name),
1725
+ 2024: (DEC, 24, christmas_eve_name),
1726
+ 2025: (
1727
+ # National Day of Mourning for former President Jimmy Carter.
1728
+ (JAN, 9, tr("National Day of Mourning for former President Jimmy Carter")),
1729
+ (DEC, 24, christmas_eve_name),
1730
+ (DEC, 26, day_after_christmas_name),
1731
+ ),
1732
+ }
1733
+
1442
1734
  # Pre-1953 Inauguration Day observances.
1443
1735
  special_dc_public_holidays_observed = {
1444
1736
  1877: (MAR, 5, inauguration_day_name),