holidays 0.79__py3-none-any.whl → 0.81__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 (124) hide show
  1. holidays/calendars/chinese.py +39 -1
  2. holidays/calendars/hindu.py +1 -0
  3. holidays/constants.py +0 -1
  4. holidays/countries/__init__.py +13 -0
  5. holidays/countries/argentina.py +4 -0
  6. holidays/countries/australia.py +191 -295
  7. holidays/countries/bosnia_and_herzegovina.py +5 -1
  8. holidays/countries/burkina_faso.py +5 -0
  9. holidays/countries/burundi.py +95 -40
  10. holidays/countries/cameroon.py +5 -0
  11. holidays/countries/canada.py +7 -0
  12. holidays/countries/chad.py +5 -0
  13. holidays/countries/china.py +4 -0
  14. holidays/countries/christmas_island.py +6 -0
  15. holidays/countries/comoros.py +121 -0
  16. holidays/countries/eritrea.py +104 -0
  17. holidays/countries/gabon.py +2 -0
  18. holidays/countries/georgia.py +9 -7
  19. holidays/countries/guinea_bissau.py +0 -4
  20. holidays/countries/hongkong.py +5 -1
  21. holidays/countries/kyrgyzstan.py +2 -0
  22. holidays/countries/macau.py +74 -63
  23. holidays/countries/maldives.py +2 -0
  24. holidays/countries/mauritania.py +2 -0
  25. holidays/countries/mongolia.py +2 -0
  26. holidays/countries/nigeria.py +198 -27
  27. holidays/countries/philippines.py +11 -2
  28. holidays/countries/rwanda.py +162 -0
  29. holidays/countries/saint_helena_ascension_and_tristan_da_cunha.py +197 -0
  30. holidays/countries/sierra_leone.py +1 -1
  31. holidays/countries/singapore.py +4 -0
  32. holidays/countries/somalia.py +79 -0
  33. holidays/countries/south_korea.py +4 -0
  34. holidays/countries/south_sudan.py +133 -0
  35. holidays/countries/spain.py +26 -0
  36. holidays/countries/sudan.py +115 -0
  37. holidays/countries/taiwan.py +5 -1
  38. holidays/countries/tajikistan.py +116 -0
  39. holidays/countries/tanzania.py +291 -147
  40. holidays/countries/turkmenistan.py +6 -0
  41. holidays/countries/uganda.py +101 -0
  42. holidays/countries/vietnam.py +4 -0
  43. holidays/financial/__init__.py +5 -0
  44. holidays/financial/national_stock_exchange_of_india.py +169 -0
  45. holidays/groups/chinese.py +3 -15
  46. holidays/groups/eastern.py +1 -3
  47. holidays/groups/islamic.py +10 -0
  48. holidays/locale/ar_SD/LC_MESSAGES/SD.mo +0 -0
  49. holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
  50. holidays/locale/en_GB/LC_MESSAGES/SH.mo +0 -0
  51. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  52. holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
  53. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  54. holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
  55. holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
  56. holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
  57. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  58. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  59. holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
  60. holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
  61. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  62. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  63. holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
  64. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  65. holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
  66. holidays/locale/en_US/LC_MESSAGES/MN.mo +0 -0
  67. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  68. holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
  69. holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
  70. holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
  71. holidays/locale/en_US/LC_MESSAGES/SD.mo +0 -0
  72. holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
  73. holidays/locale/en_US/LC_MESSAGES/SH.mo +0 -0
  74. holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
  75. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  76. holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
  77. holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
  78. holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
  79. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  80. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  81. holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
  82. holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
  83. holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
  84. holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
  85. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  86. holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
  87. holidays/locale/mn/LC_MESSAGES/MN.mo +0 -0
  88. holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
  89. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  90. holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
  91. holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
  92. holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
  93. holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
  94. holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
  95. holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
  96. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  97. holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
  98. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  99. holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
  100. holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
  101. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  102. holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
  103. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  104. holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
  105. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  106. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  107. holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
  108. holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
  109. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  110. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  111. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  112. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  113. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  114. holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
  115. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  116. holidays/observed_holiday_base.py +1 -1
  117. holidays/registry.py +39 -14
  118. holidays/version.py +1 -1
  119. {holidays-0.79.dist-info → holidays-0.81.dist-info}/METADATA +76 -7
  120. {holidays-0.79.dist-info → holidays-0.81.dist-info}/RECORD +124 -97
  121. {holidays-0.79.dist-info → holidays-0.81.dist-info}/WHEEL +0 -0
  122. {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/CONTRIBUTORS +0 -0
  123. {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/LICENSE +0 -0
  124. {holidays-0.79.dist-info → holidays-0.81.dist-info}/top_level.txt +0 -0
@@ -55,8 +55,12 @@ class BosniaAndHerzegovina(
55
55
 
56
56
  country = "BA"
57
57
  default_language = "bs"
58
+ # %s (estimated).
59
+ estimated_label = tr("%s (procijenjeno)")
60
+ # %s (observed, estimated).
61
+ observed_estimated_label = tr("%s (slobodan dan, procijenjeno)")
58
62
  # %s (observed).
59
- observed_label = tr("%s (preneseno)")
63
+ observed_label = tr("%s (slobodan dan)")
60
64
  subdivisions = (
61
65
  "BIH", # Federacija Bosne i Hercegovine.
62
66
  "BRC", # Brčko distrikt.
@@ -24,6 +24,11 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
24
24
  """
25
25
 
26
26
  country = "BF"
27
+ # %s (estimated).
28
+ estimated_label = "%s (estimated)"
29
+ # %s (observed, estimated).
30
+ observed_estimated_label = "%s (observed, estimated)"
31
+ # %s (observed).
27
32
  observed_label = "%s (observed)"
28
33
  # On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
29
34
  # gained independence from France.
@@ -10,6 +10,10 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
+ from gettext import gettext as tr
14
+
15
+ from holidays.calendars import _CustomIslamicHolidays
16
+ from holidays.calendars.gregorian import JUN, JUL, SEP, OCT
13
17
  from holidays.groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
14
18
  from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
15
19
 
@@ -18,16 +22,25 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
18
22
  """Burundi holidays.
19
23
 
20
24
  References:
21
- * <https://web.archive.org/web/20240915030631/https://www.officeholidays.com/countries/burundi>
25
+ * [Décret n° 100/150 du 7 Juin 2021](https://web.archive.org/web/20240514031141/https://www.presidence.gov.bi/wp-content/uploads/2021/06/Liste-et-regime-des-jours-feries.pdf)
26
+ * [Republic of Burundi's Ministry of Foreign Affairs Public Holidays List](https://web.archive.org/web/20250820080112/https://www.mae.gov.bi/en/official-holidays/)
27
+ * <https://web.archive.org/web/20250820095115/https://www.timeanddate.com/holidays/burundi/2025>
22
28
 
23
- Note that holidays falling on a sunday maybe observed on the following Monday.
24
- This depends on formal announcements by the government, which only happens close
25
- to the date of the holiday.
29
+ When it appears inappropriate for a public holiday listed in Article 1 to be observed because
30
+ it coincides with a Sunday, it shall be postponed to the following working day, which shall
31
+ accordingly be considered a public holiday and observed as such.
26
32
  """
27
33
 
28
34
  country = "BI"
29
- observed_label = "%s (observed)"
35
+ # %s (estimated).
36
+ estimated_label = tr("%s (estimé)")
37
+ default_language = "fr_BI"
38
+ # %s (observed, estimated).
39
+ observed_estimated_label = tr("%s (observé, estimé)")
40
+ # %s (observed).
41
+ observed_label = tr("%s (observé)")
30
42
  start_year = 1962
43
+ supported_languages = ("en_US", "fr_BI")
31
44
 
32
45
  def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
33
46
  """
@@ -38,58 +51,82 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
38
51
  """
39
52
  ChristianHolidays.__init__(self)
40
53
  InternationalHolidays.__init__(self)
41
- IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
54
+ IslamicHolidays.__init__(
55
+ self, cls=BurundiIslamicHolidays, show_estimated=islamic_show_estimated
56
+ )
42
57
  kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
43
58
  super().__init__(*args, **kwargs)
44
59
 
45
60
  def _populate_public_holidays(self):
46
- # New Year's Day
47
- self._add_observed(self._add_new_years_day("New Year's Day"))
61
+ dts_observed = set()
62
+
63
+ # New Year's Day.
64
+ dts_observed.add(self._add_new_years_day(tr("Jour de l'an")))
48
65
 
49
- # Unity Day
50
66
  if self._year >= 1992:
51
- self._add_observed(self._add_holiday_feb_5("Unity Day"))
67
+ # Unity Day.
68
+ dts_observed.add(self._add_holiday_feb_5(tr("Fête de l'Unité")))
52
69
 
53
- # President Ntaryamira Day
54
70
  if self._year >= 1995:
55
- self._add_observed(self._add_holiday_apr_6("President Ntaryamira Day"))
71
+ dts_observed.add(
72
+ self._add_holiday_apr_6(
73
+ # Commemoration of the Assassination of President Cyprien Ntaryamira.
74
+ tr("Commémoration de l'Assassinat du Président Cyprien Ntaryamira")
75
+ )
76
+ )
56
77
 
57
- # Labour Day
58
- self._add_observed(self._add_labor_day("Labour Day"))
78
+ # International Labor Day.
79
+ dts_observed.add(self._add_labor_day(tr("Fête Internationale du Travail")))
59
80
 
60
- # Ascension Day
61
- self._add_ascension_thursday("Ascension Day")
81
+ # Ascension Day.
82
+ self._add_ascension_thursday(tr("Jour de l'Ascension"))
62
83
 
63
- # President Nkurunziza Day
64
84
  if self._year >= 2022:
65
- self._add_observed(self._add_holiday_jun_8("President Nkurunziza Day"))
66
-
67
- # Independence Day
68
- self._add_observed(self._add_holiday_jul_1("Independence Day"))
69
-
70
- # Assumption Day
71
- self._add_observed(self._add_assumption_of_mary_day("Assumption Day"))
72
-
73
- # Prince Louis Rwagasore Day
74
- self._add_observed(self._add_holiday_oct_13("Prince Louis Rwagasore Day"))
75
-
76
- # President Ndadaye's Day
85
+ dts_observed.add(
86
+ self._add_holiday_jun_8(
87
+ # National Day of Patriotism and Commemoration of the Death of
88
+ # President Pierre Nkurunziza.
89
+ tr(
90
+ "Journée Nationale du Patriotisme et Commémoration de la Mort "
91
+ "du Président Pierre Nkurunziza"
92
+ )
93
+ )
94
+ )
95
+
96
+ # Independence Day.
97
+ dts_observed.add(self._add_holiday_jul_1(tr("Anniversaire de l'Indépendance")))
98
+
99
+ # Assumption Day.
100
+ dts_observed.add(self._add_assumption_of_mary_day(tr("Assomption")))
101
+
102
+ dts_observed.add(
103
+ self._add_holiday_oct_13(
104
+ # Commemoration of the Assassination of National Hero, Prince Louis Rwagasore.
105
+ tr("Commémoration de l'Assassinat du Héros National, le Prince Louis Rwagasore")
106
+ )
107
+ )
77
108
  if self._year >= 1994:
78
- self._add_observed(self._add_holiday_oct_21("President Ndadaye's Day"))
109
+ dts_observed.add(
110
+ self._add_holiday_oct_21(
111
+ # Commemoration of the Assassination of President Melchior Ndadaye.
112
+ tr("Commémoration de l'Assassinat du Président Melchior Ndadaye")
113
+ )
114
+ )
115
+
116
+ # All Saints' Day.
117
+ dts_observed.add(self._add_all_saints_day(tr("Toussaint")))
79
118
 
80
- # All Saints' Day
81
- self._add_observed(self._add_all_saints_day("All Saints' Day"))
119
+ # Christmas Day.
120
+ dts_observed.add(self._add_christmas_day(tr("Noël")))
82
121
 
83
- # Christmas Day
84
- self._add_observed(self._add_christmas_day("Christmas Day"))
122
+ # Eid al-Fitr.
123
+ dts_observed.update(self._add_eid_al_fitr_day(tr("Aid-El-Fithr")))
85
124
 
86
- # Eid ul Fitr
87
- for dt in self._add_eid_al_fitr_day("Eid ul Fitr"):
88
- self._add_observed(dt)
125
+ # Eid al-Adha.
126
+ dts_observed.update(self._add_eid_al_adha_day(tr("Aid-El-Adha")))
89
127
 
90
- # Eid al Adha
91
- for dt in self._add_eid_al_adha_day("Eid al Adha"):
92
- self._add_observed(dt)
128
+ if self.observed:
129
+ self._populate_observed(dts_observed)
93
130
 
94
131
 
95
132
  class BI(Burundi):
@@ -98,3 +135,21 @@ class BI(Burundi):
98
135
 
99
136
  class BDI(Burundi):
100
137
  pass
138
+
139
+
140
+ class BurundiIslamicHolidays(_CustomIslamicHolidays):
141
+ EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2025)
142
+ EID_AL_ADHA_DATES = {
143
+ 2014: (OCT, 5),
144
+ 2015: (SEP, 24),
145
+ 2016: (SEP, 13),
146
+ 2017: (SEP, 2),
147
+ }
148
+
149
+ EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2025)
150
+ EID_AL_FITR_DATES = {
151
+ 2014: (JUL, 29),
152
+ 2015: (JUL, 18),
153
+ 2016: (JUL, 7),
154
+ 2017: (JUN, 26),
155
+ }
@@ -33,6 +33,11 @@ class Cameroon(
33
33
  """
34
34
 
35
35
  country = "CM"
36
+ # %s (estimated).
37
+ estimated_label = "%s (estimated)"
38
+ # %s (observed, estimated).
39
+ observed_estimated_label = "%s (observed, estimated)"
40
+ # %s (observed).
36
41
  observed_label = "%s (observed)"
37
42
  # On 1 January 1960, French Cameroun gained independence from France.
38
43
  start_year = 1960
@@ -46,6 +46,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
46
46
  * <https://web.archive.org/web/20250428154427/https://recherche-collection-search.bac-lac.gc.ca/eng/home/record?idnumber=9326&app=diawlmking&ecopy=80003QJW>
47
47
  * <https://web.archive.org/web/20240915001506/https://www.britannica.com/topic/Victoria-Day>
48
48
  * [NT National Aboriginal Day](https://web.archive.org/web/20160623071755/http://www.daair.gov.nt.ca/_live/pages/wpPages/National_Aboriginal_Day.aspx)
49
+ * [MB National Day for Truth and Reconciliation](https://web.archive.org/web/20240714223654/https://web2.gov.mb.ca/bills/43-1/b004e.php)
49
50
  """
50
51
 
51
52
  country = "CA"
@@ -277,6 +278,12 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
277
278
 
278
279
  self._add_victoria_day()
279
280
 
281
+ if self._year >= 2024:
282
+ self._add_observed(
283
+ # National Day for Truth and Reconciliation.
284
+ self._add_holiday_sep_30(tr("National Day for Truth and Reconciliation"))
285
+ )
286
+
280
287
  self._add_thanksgiving_day()
281
288
 
282
289
  def _populate_subdiv_mb_optional_holidays(self):
@@ -32,6 +32,11 @@ class Chad(
32
32
  """
33
33
 
34
34
  country = "TD"
35
+ # %s (estimated).
36
+ estimated_label = "%s (estimated)"
37
+ # %s (observed, estimated).
38
+ observed_estimated_label = "%s (observed, estimated)"
39
+ # %s (observed).
35
40
  observed_label = "%s (observed)"
36
41
  # On 11 August 1960, Chad gained independence from France.
37
42
  start_year = 1961
@@ -65,6 +65,10 @@ class China(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays,
65
65
  """
66
66
 
67
67
  country = "CN"
68
+ # %s (estimated).
69
+ estimated_label = tr("%s(推定)")
70
+ # %s (observed, estimated).
71
+ observed_estimated_label = tr("%s(观察日,推定)")
68
72
  # %s (observed).
69
73
  observed_label = tr("%s(观察日)")
70
74
  supported_categories = (PUBLIC, HALF_DAY)
@@ -72,6 +72,12 @@ class ChristmasIsland(
72
72
  start_year = 2007
73
73
 
74
74
  def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
75
+ """
76
+ Args:
77
+ islamic_show_estimated:
78
+ Whether to add "estimated" label to Islamic holidays name
79
+ if holiday date is estimated.
80
+ """
75
81
  ChineseCalendarHolidays.__init__(self, cls=ChristmasIslandChineseHolidays)
76
82
  ChristianHolidays.__init__(self)
77
83
  InternationalHolidays.__init__(self)
@@ -0,0 +1,121 @@
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 CONTRIBUTORS 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/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.calendars import _CustomIslamicHolidays
14
+ from holidays.calendars.gregorian import JAN, APR, OCT
15
+ from holidays.groups import (
16
+ ChristianHolidays,
17
+ IslamicHolidays,
18
+ InternationalHolidays,
19
+ StaticHolidays,
20
+ )
21
+ from holidays.holiday_base import HolidayBase
22
+
23
+
24
+ class Comoros(
25
+ HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
26
+ ):
27
+ """Comoros holidays.
28
+
29
+ References:
30
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_the_Comoros>
31
+ * [Prophet's Birthday 2021](https://web.archive.org/web/20250712053206/https://scontent-del1-2.xx.fbcdn.net/v/t39.30808-6/471586197_1113861707132176_3696210890184034016_n.jpg?_nc_cat=100&ccb=1-7&_nc_sid=833d8c&_nc_ohc=3hfvuVNGVbMQ7kNvwHvrgbW&_nc_oc=AdnuDzvtcvdBJMoN-qSW7Pnx2fnzj2TFgwMSRklpM_Na-5AaB9y8D0U5BINcxL-vVL0&_nc_zt=23&_nc_ht=scontent-del1-2.xx&_nc_gid=HWC_59SRsyDfwGxku5bqXw&oh=00_AfSk0LCPS7PARPjdX5-vfM_lr7WxZnrkA9jRyrdUFhoyMQ&oe=68736290)
32
+ """
33
+
34
+ country = "KM"
35
+ # %s (estimated).
36
+ estimated_label = "%s (estimated)"
37
+ # Independence from France on July 6, 1975.
38
+ start_year = 1976
39
+
40
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
41
+ """
42
+ Args:
43
+ islamic_show_estimated:
44
+ Whether to add "estimated" label to Islamic holidays name
45
+ if holiday date is estimated.
46
+ """
47
+ ChristianHolidays.__init__(self)
48
+ InternationalHolidays.__init__(self)
49
+ IslamicHolidays.__init__(
50
+ self, cls=ComorosIslamicHolidays, show_estimated=islamic_show_estimated
51
+ )
52
+ StaticHolidays.__init__(self, ComorosStaticHolidays)
53
+ super().__init__(*args, **kwargs)
54
+
55
+ def _populate_public_holidays(self):
56
+ # New Year's Day.
57
+ self._add_new_years_day("New Year's Day")
58
+
59
+ # Cheikh al Maarouf Day.
60
+ self._add_holiday_mar_18("Cheikh al Maarouf Day")
61
+
62
+ # Labor Day.
63
+ self._add_labor_day("Labour Day")
64
+
65
+ # National Day.
66
+ self._add_holiday_jul_6("National Day")
67
+
68
+ if self._year >= 2006:
69
+ # Maore Day.
70
+ self._add_holiday_nov_12("Maore Day")
71
+
72
+ # Christmas Day.
73
+ self._add_christmas_day("Christmas Day")
74
+
75
+ # Islamic New Year.
76
+ self._add_islamic_new_year_day("Islamic New Year")
77
+
78
+ # Prophet's Birthday.
79
+ self._add_mawlid_day("Prophet's Birthday")
80
+
81
+ # Isra' and Mi'raj.
82
+ self._add_isra_and_miraj_day("Isra' and Mi'raj")
83
+
84
+ # Eid al-Fitr.
85
+ name = "Eid al-Fitr"
86
+ self._add_eid_al_fitr_day(name)
87
+ self._add_eid_al_fitr_day_two(name)
88
+ self._add_eid_al_fitr_day_three(name)
89
+
90
+ # Eid al-Adha.
91
+ name = "Eid al-Adha"
92
+ self._add_eid_al_adha_day(name)
93
+ self._add_eid_al_adha_day_two(name)
94
+
95
+
96
+ class KM(Comoros):
97
+ pass
98
+
99
+
100
+ class COM(Comoros):
101
+ pass
102
+
103
+
104
+ class ComorosIslamicHolidays(_CustomIslamicHolidays):
105
+ MAWLID_DATES = {
106
+ 2021: (OCT, 19),
107
+ }
108
+
109
+
110
+ class ComorosStaticHolidays:
111
+ """Comoros special holidays.
112
+
113
+ References:
114
+ * [Décret N°24-056PR](https://web.archive.org/web/20250717033820/https://munganyo.km/decrees/225)
115
+ * [Décret N°25-008PR](https://web.archive.org/web/20250715223159/https://munganyo.km/decrees/374)
116
+ """
117
+
118
+ special_public_holidays = {
119
+ 2024: (APR, 13, "National Holiday"),
120
+ 2025: (JAN, 30, "Election Partial Day Holiday"),
121
+ }
@@ -0,0 +1,104 @@
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 CONTRIBUTORS 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/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.calendars.ethiopian import ETHIOPIAN_CALENDAR
14
+ from holidays.constants import GOVERNMENT, PUBLIC
15
+ from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
16
+ from holidays.holiday_base import HolidayBase
17
+
18
+
19
+ class Eritrea(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
20
+ """Eritrea holidays.
21
+
22
+ References:
23
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Eritrea>
24
+ * <https://web.archive.org/web/20230313234629/https://explore-eritrea.com/working-hours-and-holidays/>
25
+ * <https://web.archive.org/web/20110903130335/http://www.eritrea.be/old/eritrea-religions.htm>
26
+ * <https://web.archive.org/web/20250820085307/https://www.mintageworld.com/media/detail/11411-fenkil-day-in-eritrea/>
27
+ """
28
+
29
+ country = "ER"
30
+ # %s (estimated).
31
+ estimated_label = "%s (estimated)"
32
+ # On 28 May 1993, Eritrea was admitted into the United Nations as the 182nd member state.
33
+ start_year = 1994
34
+ supported_categories = (GOVERNMENT, PUBLIC)
35
+
36
+ def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
37
+ """
38
+ Args:
39
+ islamic_show_estimated:
40
+ Whether to add "estimated" label to Islamic holidays name
41
+ if holiday date is estimated.
42
+ """
43
+ ChristianHolidays.__init__(self, ETHIOPIAN_CALENDAR)
44
+ InternationalHolidays.__init__(self)
45
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
46
+ super().__init__(*args, **kwargs)
47
+
48
+ def _populate_public_holidays(self):
49
+ # New Year's Day.
50
+ self._add_new_years_day("New Year's Day")
51
+
52
+ # Orthodox Christmas.
53
+ self._add_christmas_day("Orthodox Christmas")
54
+
55
+ # Epiphany.
56
+ self._add_epiphany_day("Epiphany")
57
+
58
+ # Women's Day.
59
+ self._add_womens_day("Women's Day")
60
+
61
+ # Good Friday.
62
+ self._add_good_friday("Good Friday")
63
+
64
+ # Orthodox Easter.
65
+ self._add_easter_sunday("Orthodox Easter")
66
+
67
+ # International Workers' Day.
68
+ self._add_labor_day("International Workers' Day")
69
+
70
+ # Independence Day.
71
+ self._add_holiday_may_24("Independence Day")
72
+
73
+ # Martyrs' Day.
74
+ self._add_holiday_jun_20("Martyrs' Day")
75
+
76
+ # Revolution Day.
77
+ self._add_holiday_sep_1("Revolution Day")
78
+
79
+ # Ethiopian New Year.
80
+ self._add_ethiopian_new_year("Ethiopian New Year")
81
+
82
+ # Finding of the True Cross.
83
+ self._add_finding_of_true_cross("Finding of the True Cross")
84
+
85
+ # Prophet's Birthday.
86
+ self._add_mawlid_day("Prophet's Birthday")
87
+
88
+ # Eid al-Fitr.
89
+ self._add_eid_al_fitr_day("Eid al-Fitr")
90
+
91
+ # Eid al-Adha.
92
+ self._add_eid_al_adha_day("Eid al-Adha")
93
+
94
+ def _populate_government_holidays(self):
95
+ # Fenkil Day.
96
+ self._add_holiday_feb_10("Fenkil Day")
97
+
98
+
99
+ class ER(Eritrea):
100
+ pass
101
+
102
+
103
+ class ERI(Eritrea):
104
+ pass
@@ -27,6 +27,8 @@ class Gabon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolida
27
27
  """
28
28
 
29
29
  country = "GA"
30
+ # %s (estimated).
31
+ estimated_label = "%s (estimated)"
30
32
  # On 17 August 1960, Gabon gained independence from France.
31
33
  start_year = 1961
32
34
 
@@ -12,9 +12,8 @@
12
12
 
13
13
  from gettext import gettext as tr
14
14
 
15
- from holidays.calendars.gregorian import MAY
15
+ from holidays.calendars.gregorian import MAY, AUG
16
16
  from holidays.calendars.julian import JULIAN_CALENDAR
17
- from holidays.constants import GOVERNMENT, PUBLIC
18
17
  from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
19
18
  from holidays.holiday_base import HolidayBase
20
19
 
@@ -29,7 +28,6 @@ class Georgia(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
29
28
  """
30
29
 
31
30
  country = "GE"
32
- supported_categories = (GOVERNMENT, PUBLIC)
33
31
  default_language = "ka"
34
32
  supported_languages = ("en_US", "ka", "uk")
35
33
  start_year = 1991
@@ -109,10 +107,14 @@ class GeorgiaStaticHolidays:
109
107
  """Georgia special holidays.
110
108
 
111
109
  References:
112
- * <https://web.archive.org/web/20240704104728/https://matsne.gov.ge/ka/document/view/6173967>
110
+ * [Decree 167 of 15/05/2024](https://web.archive.org/web/20240620045954/https://www.matsne.gov.ge/ka/document/view/6173967?publication=0)
111
+ * [Decree 381 of 25/08/2025](https://archive.org/details/matsne-6612161-0)
113
112
  """
114
113
 
115
- special_government_holidays = {
116
- # Day of Family Sanctity and Respect for Parents.
117
- 2024: (MAY, 17, tr("ოჯახის სიწმინდისა და მშობლების პატივისცემის დღე")),
114
+ # Public Holiday.
115
+ public_holiday = tr("უქმე დღე")
116
+
117
+ special_public_holidays = {
118
+ 2024: (MAY, 17, public_holiday),
119
+ 2025: (AUG, 29, public_holiday),
118
120
  }
@@ -28,10 +28,6 @@ class GuineaBissau(HolidayBase, ChristianHolidays, InternationalHolidays, Islami
28
28
  default_language = "pt_GW"
29
29
  # %s (estimated).
30
30
  estimated_label = tr("%s (prevista)")
31
- # %s (observed).
32
- observed_label = tr("%s (ponte)")
33
- # %s (estimated, observed).
34
- observed_estimated_label = tr("%s (prevista, ponte)")
35
31
  supported_languages = ("en_US", "pt_GW")
36
32
  start_year = 2023
37
33
 
@@ -69,8 +69,12 @@ class HongKong(
69
69
  country = "HK"
70
70
  default_language = "zh_HK"
71
71
  default_preferred_discretionary_holidays = (CHRISTMAS,)
72
+ # %s (estimated).
73
+ estimated_label = tr("%s(推定)")
74
+ # %s (observed, estimated).
75
+ observed_estimated_label = tr("%s(補假,推定)")
72
76
  # %s (observed).
73
- observed_label = tr("%s(慶祝)")
77
+ observed_label = tr("%s(補假)")
74
78
  supported_categories = (OPTIONAL, PUBLIC)
75
79
  supported_languages = ("en_HK", "en_US", "th", "zh_CN", "zh_HK")
76
80
  weekend = {SUN}
@@ -23,6 +23,8 @@ class Kyrgyzstan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicH
23
23
  """
24
24
 
25
25
  country = "KG"
26
+ # %s (estimated).
27
+ estimated_label = "%s (estimated)"
26
28
 
27
29
  def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
28
30
  """