holidays 0.67__py3-none-any.whl → 0.69__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 (99) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/balinese_saka.py +112 -0
  3. holidays/calendars/chinese.py +1 -1
  4. holidays/calendars/hindu.py +865 -1
  5. holidays/constants.py +1 -0
  6. holidays/countries/__init__.py +1 -0
  7. holidays/countries/afghanistan.py +8 -2
  8. holidays/countries/albania.py +8 -2
  9. holidays/countries/algeria.py +6 -2
  10. holidays/countries/american_samoa.py +6 -2
  11. holidays/countries/azerbaijan.py +26 -4
  12. holidays/countries/bahrain.py +8 -2
  13. holidays/countries/bosnia_and_herzegovina.py +8 -2
  14. holidays/countries/brunei.py +8 -2
  15. holidays/countries/burkina_faso.py +8 -2
  16. holidays/countries/burundi.py +6 -2
  17. holidays/countries/cameroon.py +8 -2
  18. holidays/countries/chad.py +8 -2
  19. holidays/countries/djibouti.py +6 -2
  20. holidays/countries/egypt.py +6 -2
  21. holidays/countries/ethiopia.py +8 -2
  22. holidays/countries/gabon.py +8 -2
  23. holidays/countries/ghana.py +6 -2
  24. holidays/countries/guam.py +6 -2
  25. holidays/countries/hongkong.py +38 -52
  26. holidays/countries/india.py +482 -166
  27. holidays/countries/indonesia.py +14 -58
  28. holidays/countries/iran.py +8 -2
  29. holidays/countries/jordan.py +6 -2
  30. holidays/countries/kazakhstan.py +8 -2
  31. holidays/countries/kenya.py +209 -47
  32. holidays/countries/kuwait.py +6 -2
  33. holidays/countries/kyrgyzstan.py +6 -2
  34. holidays/countries/macau.py +474 -0
  35. holidays/countries/malaysia.py +30 -6
  36. holidays/countries/maldives.py +6 -2
  37. holidays/countries/mauritania.py +6 -2
  38. holidays/countries/montenegro.py +8 -2
  39. holidays/countries/morocco.py +6 -2
  40. holidays/countries/nigeria.py +6 -2
  41. holidays/countries/north_macedonia.py +6 -2
  42. holidays/countries/northern_mariana_islands.py +6 -2
  43. holidays/countries/pakistan.py +8 -2
  44. holidays/countries/philippines.py +13 -3
  45. holidays/countries/poland.py +1 -1
  46. holidays/countries/puerto_rico.py +6 -2
  47. holidays/countries/saudi_arabia.py +6 -2
  48. holidays/countries/singapore.py +7 -2
  49. holidays/countries/spain.py +8 -2
  50. holidays/countries/sri_lanka.py +8 -2
  51. holidays/countries/taiwan.py +226 -29
  52. holidays/countries/tanzania.py +8 -2
  53. holidays/countries/timor_leste.py +21 -2
  54. holidays/countries/tunisia.py +6 -2
  55. holidays/countries/turkey.py +8 -2
  56. holidays/countries/united_arab_emirates.py +8 -2
  57. holidays/countries/united_states.py +84 -35
  58. holidays/countries/united_states_minor_outlying_islands.py +6 -2
  59. holidays/countries/united_states_virgin_islands.py +6 -2
  60. holidays/countries/uzbekistan.py +8 -2
  61. holidays/groups/__init__.py +1 -0
  62. holidays/groups/balinese_saka.py +45 -0
  63. holidays/groups/chinese.py +68 -3
  64. holidays/groups/hindu.py +255 -0
  65. holidays/groups/islamic.py +5 -2
  66. holidays/holiday_base.py +44 -29
  67. holidays/locale/de/LC_MESSAGES/PL.mo +0 -0
  68. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  69. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  70. holidays/locale/en_KE/LC_MESSAGES/KE.mo +0 -0
  71. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  72. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  73. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  74. holidays/locale/en_US/LC_MESSAGES/KE.mo +0 -0
  75. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  76. holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
  77. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  78. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  79. holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
  80. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  81. holidays/locale/sw/LC_MESSAGES/KE.mo +0 -0
  82. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  83. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  84. holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
  85. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  86. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  87. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  88. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  89. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  90. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  91. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  92. holidays/registry.py +1 -0
  93. holidays/version.py +1 -1
  94. {holidays-0.67.dist-info → holidays-0.69.dist-info}/AUTHORS +1 -0
  95. {holidays-0.67.dist-info → holidays-0.69.dist-info}/METADATA +24 -19
  96. {holidays-0.67.dist-info → holidays-0.69.dist-info}/RECORD +99 -83
  97. {holidays-0.67.dist-info → holidays-0.69.dist-info}/WHEEL +1 -1
  98. {holidays-0.67.dist-info → holidays-0.69.dist-info}/LICENSE +0 -0
  99. {holidays-0.67.dist-info → holidays-0.69.dist-info}/top_level.txt +0 -0
holidays/constants.py CHANGED
@@ -42,6 +42,7 @@ ARMED_FORCES = "armed_forces"
42
42
  BANK = "bank"
43
43
  GOVERNMENT = "government"
44
44
  HALF_DAY = "half_day"
45
+ MANDATORY = "mandatory"
45
46
  OPTIONAL = "optional"
46
47
  PUBLIC = "public"
47
48
  SCHOOL = "school"
@@ -100,6 +100,7 @@ from .lesotho import Lesotho, LS, LSO
100
100
  from .liechtenstein import Liechtenstein, LI, LIE
101
101
  from .lithuania import Lithuania, LT, LTU
102
102
  from .luxembourg import Luxembourg, LU, LUX
103
+ from .macau import Macau, MO, MAC
103
104
  from .madagascar import Madagascar, MG, MDG
104
105
  from .malawi import Malawi, MW, MWI
105
106
  from .malaysia import Malaysia, MY, MYS
@@ -48,9 +48,15 @@ class Afghanistan(HolidayBase, InternationalHolidays, IslamicHolidays, PersianCa
48
48
  start_year = 1919
49
49
  weekend = {FRI, SAT}
50
50
 
51
- def __init__(self, *args, **kwargs):
51
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
52
+ """
53
+ :param islamic_show_estimated:
54
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
55
+ """
52
56
  InternationalHolidays.__init__(self)
53
- IslamicHolidays.__init__(self, AfghanistanIslamicHolidays)
57
+ IslamicHolidays.__init__(
58
+ self, cls=AfghanistanIslamicHolidays, show_estimated=islamic_show_estimated
59
+ )
54
60
  PersianCalendarHolidays.__init__(self)
55
61
  super().__init__(*args, **kwargs)
56
62
 
@@ -46,10 +46,16 @@ class Albania(
46
46
  # Law No. 7651 from 21.12.1992.
47
47
  start_year = 1993
48
48
 
49
- def __init__(self, *args, **kwargs):
49
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
50
+ """
51
+ :param islamic_show_estimated:
52
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
53
+ """
50
54
  ChristianHolidays.__init__(self)
51
55
  InternationalHolidays.__init__(self)
52
- IslamicHolidays.__init__(self, AlbaniaIslamicHolidays)
56
+ IslamicHolidays.__init__(
57
+ self, cls=AlbaniaIslamicHolidays, show_estimated=islamic_show_estimated
58
+ )
53
59
  StaticHolidays.__init__(self, AlbaniaStaticHolidays)
54
60
  kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
55
61
  super().__init__(*args, **kwargs)
@@ -33,9 +33,13 @@ class Algeria(HolidayBase, InternationalHolidays, IslamicHolidays):
33
33
  estimated_label = tr("(تقدير) %s")
34
34
  supported_languages = ("ar", "en_US", "fr")
35
35
 
36
- def __init__(self, *args, **kwargs):
36
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
37
+ """
38
+ :param islamic_show_estimated:
39
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
40
+ """
37
41
  InternationalHolidays.__init__(self)
38
- IslamicHolidays.__init__(self)
42
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
39
43
  super().__init__(*args, **kwargs)
40
44
 
41
45
  def _populate_public_holidays(self):
@@ -10,7 +10,7 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- from holidays.constants import PUBLIC, UNOFFICIAL
13
+ from holidays.constants import GOVERNMENT, PUBLIC, UNOFFICIAL
14
14
  from holidays.countries.united_states import US
15
15
 
16
16
 
@@ -20,13 +20,17 @@ class HolidaysAS(US):
20
20
  # https://en.wikipedia.org/wiki/ISO_3166-2:US#Subdivisions_included_in_ISO_3166-1
21
21
 
22
22
  country = "AS"
23
- supported_categories = (PUBLIC, UNOFFICIAL)
23
+ supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
24
24
  subdivisions = () # Override US subdivisions.
25
25
 
26
26
  def _populate_public_holidays(self) -> None:
27
27
  self.subdiv = "AS"
28
28
  super()._populate_public_holidays()
29
29
 
30
+ def _populate_government_holidays(self) -> None:
31
+ self.subdiv = "AS"
32
+ super()._populate_government_holidays()
33
+
30
34
  def _populate_unofficial_holidays(self) -> None:
31
35
  self.subdiv = "AS"
32
36
  super()._populate_unofficial_holidays()
@@ -44,9 +44,15 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
44
44
  supported_languages = ("az", "en_US", "uk")
45
45
  start_year = 1990
46
46
 
47
- def __init__(self, *args, **kwargs):
47
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
48
+ """
49
+ :param islamic_show_estimated:
50
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
51
+ """
48
52
  InternationalHolidays.__init__(self)
49
- IslamicHolidays.__init__(self, AzerbaijanIslamicHolidays)
53
+ IslamicHolidays.__init__(
54
+ self, cls=AzerbaijanIslamicHolidays, show_estimated=islamic_show_estimated
55
+ )
50
56
  StaticHolidays.__init__(self, AzerbaijanStaticHolidays)
51
57
  kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)
52
58
  kwargs.setdefault("observed_since", 2006)
@@ -68,7 +74,9 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
68
74
  dts_non_observed.add(self._add_holiday_jan_20(tr("Ümumxalq hüzn günü")))
69
75
 
70
76
  # Women's Day.
71
- dts_observed.add(self._add_womens_day(tr("Qadınlar günü")))
77
+ dt = self._add_womens_day(tr("Qadınlar günü"))
78
+ if self._year != 2025:
79
+ dts_observed.add(dt)
72
80
 
73
81
  # Spring Festival.
74
82
  name = tr("Novruz bayramı")
@@ -135,7 +143,9 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
135
143
  if self._year >= 1993:
136
144
  # Eid al-Fitr.
137
145
  name = tr("Ramazan bayrami")
138
- dts_bairami.update(self._add_eid_al_fitr_day(name))
146
+ dt = self._add_eid_al_fitr_day(name)
147
+ if self._year != 2025:
148
+ dts_bairami.update(dt)
139
149
  if self._year >= 2006:
140
150
  dts_bairami.update(self._add_eid_al_fitr_day_two(name))
141
151
 
@@ -217,6 +227,7 @@ class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
217
227
  2022: (JUL, 9),
218
228
  2023: (JUN, 28),
219
229
  2024: (JUN, 16),
230
+ 2025: (JUN, 6),
220
231
  }
221
232
 
222
233
  EID_AL_FITR_DATES = {
@@ -243,6 +254,7 @@ class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
243
254
  2022: (MAY, 2),
244
255
  2023: (APR, 21),
245
256
  2024: (APR, 10),
257
+ 2025: (MAR, 30),
246
258
  }
247
259
 
248
260
 
@@ -258,11 +270,17 @@ class AzerbaijanStaticHolidays:
258
270
  - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7843
259
271
  - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8332
260
272
  - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8449
273
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8623
261
274
  Special holidays references:
262
275
  - https://www.msk.gov.az/en/elections/pages/municipal-elections/belediyye-29-01-2025
263
276
  """
264
277
 
265
278
  eid_al_adha = tr("Qurban bayrami")
279
+
280
+ eid_al_fitr = tr("Ramazan bayrami")
281
+
282
+ womens_day = tr("Qadınlar günü")
283
+
266
284
  # Substituted date format.
267
285
  substituted_date_format = tr("%d.%m.%Y")
268
286
  # Day off (substituted from %s).
@@ -323,5 +341,9 @@ class AzerbaijanStaticHolidays:
323
341
 
324
342
  special_public_holidays_observed = {
325
343
  2007: (JAN, 3, eid_al_adha),
344
+ 2025: (
345
+ (MAR, 27, womens_day),
346
+ (MAR, 28, eid_al_fitr),
347
+ ),
326
348
  2072: (JAN, 5, eid_al_adha),
327
349
  }
@@ -34,9 +34,15 @@ class Bahrain(HolidayBase, InternationalHolidays, IslamicHolidays):
34
34
  supported_languages = ("ar", "en_US")
35
35
  weekend = {FRI, SAT}
36
36
 
37
- def __init__(self, *args, **kwargs):
37
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
38
+ """
39
+ :param islamic_show_estimated:
40
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
41
+ """
38
42
  InternationalHolidays.__init__(self)
39
- IslamicHolidays.__init__(self, cls=BahrainIslamicHolidays)
43
+ IslamicHolidays.__init__(
44
+ self, cls=BahrainIslamicHolidays, show_estimated=islamic_show_estimated
45
+ )
40
46
  super().__init__(*args, **kwargs)
41
47
 
42
48
  def _populate_public_holidays(self):
@@ -73,10 +73,16 @@ class BosniaAndHerzegovina(
73
73
  "RS": "SRP",
74
74
  }
75
75
 
76
- def __init__(self, *args, **kwargs):
76
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
77
+ """
78
+ :param islamic_show_estimated:
79
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
80
+ """
77
81
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
78
82
  InternationalHolidays.__init__(self)
79
- IslamicHolidays.__init__(self, cls=BosniaAndHerzegovinaIslamicHolidays)
83
+ IslamicHolidays.__init__(
84
+ self, cls=BosniaAndHerzegovinaIslamicHolidays, show_estimated=islamic_show_estimated
85
+ )
80
86
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
81
87
  super().__init__(*args, **kwargs)
82
88
 
@@ -130,11 +130,17 @@ class Brunei(
130
130
  # Available post-Independence from 1984 afterwards
131
131
  start_year = 1984
132
132
 
133
- def __init__(self, *args, **kwargs):
133
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
134
+ """
135
+ :param islamic_show_estimated:
136
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
137
+ """
134
138
  ChineseCalendarHolidays.__init__(self)
135
139
  ChristianHolidays.__init__(self)
136
140
  InternationalHolidays.__init__(self)
137
- IslamicHolidays.__init__(self, cls=BruneiIslamicHolidays)
141
+ IslamicHolidays.__init__(
142
+ self, cls=BruneiIslamicHolidays, show_estimated=islamic_show_estimated
143
+ )
138
144
  StaticHolidays.__init__(self, cls=BruneiStaticHolidays)
139
145
  kwargs.setdefault("observed_rule", FRI_SUN_TO_NEXT_SAT_MON)
140
146
  super().__init__(*args, **kwargs)
@@ -28,10 +28,16 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
28
28
  # gained independence from France.
29
29
  start_year = 1961
30
30
 
31
- def __init__(self, *args, **kwargs):
31
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
32
+ """
33
+ :param islamic_show_estimated:
34
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
35
+ """
32
36
  ChristianHolidays.__init__(self)
33
37
  InternationalHolidays.__init__(self)
34
- IslamicHolidays.__init__(self, cls=BurkinaFasoIslamicHolidays)
38
+ IslamicHolidays.__init__(
39
+ self, cls=BurkinaFasoIslamicHolidays, show_estimated=islamic_show_estimated
40
+ )
35
41
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
36
42
  super().__init__(*args, **kwargs)
37
43
 
@@ -30,10 +30,14 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
30
30
  observed_label = "%s (observed)"
31
31
  start_year = 1962
32
32
 
33
- def __init__(self, *args, **kwargs):
33
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
34
+ """
35
+ :param islamic_show_estimated:
36
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
37
+ """
34
38
  ChristianHolidays.__init__(self)
35
39
  InternationalHolidays.__init__(self)
36
- IslamicHolidays.__init__(self)
40
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
37
41
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
38
42
  super().__init__(*args, **kwargs)
39
43
 
@@ -36,10 +36,16 @@ class Cameroon(
36
36
  # On 1 January 1960, French Cameroun gained independence from France.
37
37
  start_year = 1960
38
38
 
39
- def __init__(self, *args, **kwargs):
39
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
40
+ """
41
+ :param islamic_show_estimated:
42
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
43
+ """
40
44
  ChristianHolidays.__init__(self)
41
45
  InternationalHolidays.__init__(self)
42
- IslamicHolidays.__init__(self, cls=CameroonIslamicHolidays)
46
+ IslamicHolidays.__init__(
47
+ self, cls=CameroonIslamicHolidays, show_estimated=islamic_show_estimated
48
+ )
43
49
  StaticHolidays.__init__(self, cls=CameroonStaticHolidays)
44
50
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_WORKDAY)
45
51
  super().__init__(*args, **kwargs)
@@ -35,10 +35,16 @@ class Chad(
35
35
  # On 11 August 1960, Chad gained independence from France.
36
36
  start_year = 1961
37
37
 
38
- def __init__(self, *args, **kwargs):
38
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
39
+ """
40
+ :param islamic_show_estimated:
41
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
42
+ """
39
43
  ChristianHolidays.__init__(self)
40
44
  InternationalHolidays.__init__(self)
41
- IslamicHolidays.__init__(self, cls=ChadIslamicHolidays)
45
+ IslamicHolidays.__init__(
46
+ self, cls=ChadIslamicHolidays, show_estimated=islamic_show_estimated
47
+ )
42
48
  StaticHolidays.__init__(self, ChadStaticHolidays)
43
49
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
44
50
  super().__init__(*args, **kwargs)
@@ -27,9 +27,13 @@ class Djibouti(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHol
27
27
  # On 27 June 1977, Djibouti gained independence from France.
28
28
  start_year = 1978
29
29
 
30
- def __init__(self, *args, **kwargs):
30
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
31
+ """
32
+ :param islamic_show_estimated:
33
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
34
+ """
31
35
  ChristianHolidays.__init__(self)
32
- IslamicHolidays.__init__(self)
36
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
33
37
  InternationalHolidays.__init__(self)
34
38
  super().__init__(*args, **kwargs)
35
39
 
@@ -35,10 +35,14 @@ class Egypt(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHolida
35
35
  supported_languages = ("ar", "en_US")
36
36
  weekend = {FRI, SAT}
37
37
 
38
- def __init__(self, *args, **kwargs):
38
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
39
+ """
40
+ :param islamic_show_estimated:
41
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
42
+ """
39
43
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
40
44
  InternationalHolidays.__init__(self)
41
- IslamicHolidays.__init__(self)
45
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
42
46
  super().__init__(*args, **kwargs)
43
47
 
44
48
  def _populate_public_holidays(self):
@@ -43,10 +43,16 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
43
43
  """
44
44
  return isleap(self._year + 1)
45
45
 
46
- def __init__(self, *args, **kwargs):
46
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
47
+ """
48
+ :param islamic_show_estimated:
49
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
50
+ """
47
51
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
48
52
  InternationalHolidays.__init__(self)
49
- IslamicHolidays.__init__(self, EthiopiaIslamicHolidays)
53
+ IslamicHolidays.__init__(
54
+ self, cls=EthiopiaIslamicHolidays, show_estimated=islamic_show_estimated
55
+ )
50
56
  super().__init__(*args, **kwargs)
51
57
 
52
58
  def _populate_public_holidays(self):
@@ -29,10 +29,16 @@ class Gabon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolida
29
29
  # On 17 August 1960, Gabon gained independence from France.
30
30
  start_year = 1961
31
31
 
32
- def __init__(self, *args, **kwargs) -> None:
32
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
33
+ """
34
+ :param islamic_show_estimated:
35
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
36
+ """
33
37
  ChristianHolidays.__init__(self)
34
38
  InternationalHolidays.__init__(self)
35
- IslamicHolidays.__init__(self, cls=GabonIslamicHolidays)
39
+ IslamicHolidays.__init__(
40
+ self, cls=GabonIslamicHolidays, show_estimated=islamic_show_estimated
41
+ )
36
42
  super().__init__(*args, **kwargs)
37
43
 
38
44
  def _populate_public_holidays(self):
@@ -30,10 +30,14 @@ class Ghana(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Islam
30
30
  observed_estimated_label = "%s (observed, estimated)"
31
31
  start_year = 1957
32
32
 
33
- def __init__(self, *args, **kwargs):
33
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
34
+ """
35
+ :param islamic_show_estimated:
36
+ Whether to add "estimated" label to Islamic holidays name if holiday date is estimated.
37
+ """
34
38
  ChristianHolidays.__init__(self)
35
39
  InternationalHolidays.__init__(self)
36
- IslamicHolidays.__init__(self)
40
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
37
41
  kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
38
42
  super().__init__(*args, **kwargs)
39
43
 
@@ -10,7 +10,7 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- from holidays.constants import PUBLIC, UNOFFICIAL
13
+ from holidays.constants import GOVERNMENT, PUBLIC, UNOFFICIAL
14
14
  from holidays.countries.united_states import US
15
15
 
16
16
 
@@ -20,13 +20,17 @@ class HolidaysGU(US):
20
20
  # https://en.wikipedia.org/wiki/ISO_3166-2:US#Subdivisions_included_in_ISO_3166-1
21
21
 
22
22
  country = "GU"
23
- supported_categories = (PUBLIC, UNOFFICIAL)
23
+ supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
24
24
  subdivisions = () # Override US subdivisions.
25
25
 
26
26
  def _populate_public_holidays(self) -> None:
27
27
  self.subdiv = "GU"
28
28
  super()._populate_public_holidays()
29
29
 
30
+ def _populate_government_holidays(self) -> None:
31
+ self.subdiv = "GU"
32
+ super()._populate_government_holidays()
33
+
30
34
  def _populate_unofficial_holidays(self) -> None:
31
35
  self.subdiv = "GU"
32
36
  super()._populate_unofficial_holidays()