holidays 0.72__py3-none-any.whl → 0.74__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 (93) hide show
  1. holidays/calendars/hindu.py +147 -3
  2. holidays/constants.py +8 -1
  3. holidays/countries/__init__.py +10 -0
  4. holidays/countries/aland_islands.py +63 -0
  5. holidays/countries/andorra.py +130 -46
  6. holidays/countries/angola.py +2 -2
  7. holidays/countries/argentina.py +12 -2
  8. holidays/countries/azerbaijan.py +1 -1
  9. holidays/countries/belgium.py +1 -1
  10. holidays/countries/benin.py +199 -0
  11. holidays/countries/bermuda.py +141 -0
  12. holidays/countries/british_virgin_islands.py +205 -0
  13. holidays/countries/chile.py +1 -1
  14. holidays/countries/cocos_islands.py +259 -0
  15. holidays/countries/curacao.py +1 -1
  16. holidays/countries/dominican_republic.py +1 -1
  17. holidays/countries/ecuador.py +1 -1
  18. holidays/countries/equatorial_guinea.py +150 -0
  19. holidays/countries/ethiopia.py +1 -1
  20. holidays/countries/finland.py +200 -36
  21. holidays/countries/grenada.py +143 -0
  22. holidays/countries/italy.py +1 -1
  23. holidays/countries/ivory_coast.py +1 -1
  24. holidays/countries/kazakhstan.py +23 -23
  25. holidays/countries/malaysia.py +0 -8
  26. holidays/countries/mexico.py +1 -1
  27. holidays/countries/morocco.py +1 -1
  28. holidays/countries/nepal.py +441 -0
  29. holidays/countries/north_macedonia.py +267 -15
  30. holidays/countries/norway.py +1 -1
  31. holidays/countries/panama.py +1 -1
  32. holidays/countries/paraguay.py +1 -1
  33. holidays/countries/philippines.py +2 -0
  34. holidays/countries/slovenia.py +1 -1
  35. holidays/countries/sweden.py +1 -1
  36. holidays/countries/thailand.py +2 -2
  37. holidays/countries/togo.py +182 -0
  38. holidays/countries/trinidad_and_tobago.py +1 -1
  39. holidays/countries/tuvalu.py +1 -1
  40. holidays/countries/ukraine.py +44 -44
  41. holidays/countries/united_states.py +1 -1
  42. holidays/countries/vatican_city.py +29 -31
  43. holidays/countries/venezuela.py +1 -1
  44. holidays/countries/yemen.py +207 -0
  45. holidays/groups/chinese.py +3 -3
  46. holidays/groups/christian.py +7 -7
  47. holidays/groups/hindu.py +121 -1
  48. holidays/groups/international.py +9 -9
  49. holidays/groups/islamic.py +3 -3
  50. holidays/locale/ar/LC_MESSAGES/YE.mo +0 -0
  51. holidays/locale/ca/LC_MESSAGES/AD.mo +0 -0
  52. holidays/locale/coa_CC/LC_MESSAGES/CC.mo +0 -0
  53. holidays/locale/en_CC/LC_MESSAGES/CC.mo +0 -0
  54. holidays/locale/en_GD/LC_MESSAGES/GD.mo +0 -0
  55. holidays/locale/en_US/LC_MESSAGES/AD.mo +0 -0
  56. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  57. holidays/locale/en_US/LC_MESSAGES/AX.mo +0 -0
  58. holidays/locale/en_US/LC_MESSAGES/BJ.mo +0 -0
  59. holidays/locale/en_US/LC_MESSAGES/CC.mo +0 -0
  60. holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
  61. holidays/locale/en_US/LC_MESSAGES/GD.mo +0 -0
  62. holidays/locale/en_US/LC_MESSAGES/GQ.mo +0 -0
  63. holidays/locale/en_US/LC_MESSAGES/MK.mo +0 -0
  64. holidays/locale/en_US/LC_MESSAGES/TG.mo +0 -0
  65. holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
  66. holidays/locale/en_US/LC_MESSAGES/VG.mo +0 -0
  67. holidays/locale/en_US/LC_MESSAGES/YE.mo +0 -0
  68. holidays/locale/en_VG/LC_MESSAGES/VG.mo +0 -0
  69. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  70. holidays/locale/es/LC_MESSAGES/GQ.mo +0 -0
  71. holidays/locale/fi/LC_MESSAGES/AX.mo +0 -0
  72. holidays/locale/fi/LC_MESSAGES/FI.mo +0 -0
  73. holidays/locale/fr/LC_MESSAGES/TG.mo +0 -0
  74. holidays/locale/fr_BJ/LC_MESSAGES/BJ.mo +0 -0
  75. holidays/locale/mk/LC_MESSAGES/MK.mo +0 -0
  76. holidays/locale/sv_FI/LC_MESSAGES/AX.mo +0 -0
  77. holidays/locale/sv_FI/LC_MESSAGES/FI.mo +0 -0
  78. holidays/locale/th/LC_MESSAGES/AX.mo +0 -0
  79. holidays/locale/th/LC_MESSAGES/FI.mo +0 -0
  80. holidays/locale/uk/LC_MESSAGES/AD.mo +0 -0
  81. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  82. holidays/locale/uk/LC_MESSAGES/AX.mo +0 -0
  83. holidays/locale/uk/LC_MESSAGES/FI.mo +0 -0
  84. holidays/locale/uk/LC_MESSAGES/MK.mo +0 -0
  85. holidays/locale/uk/LC_MESSAGES/TH.mo +0 -0
  86. holidays/registry.py +10 -0
  87. holidays/version.py +1 -1
  88. {holidays-0.72.dist-info → holidays-0.74.dist-info}/METADATA +80 -10
  89. {holidays-0.72.dist-info → holidays-0.74.dist-info}/RECORD +93 -55
  90. {holidays-0.72.dist-info → holidays-0.74.dist-info}/WHEEL +1 -1
  91. {holidays-0.72.dist-info → holidays-0.74.dist-info}/licenses/CONTRIBUTORS +2 -0
  92. {holidays-0.72.dist-info → holidays-0.74.dist-info}/licenses/LICENSE +0 -0
  93. {holidays-0.72.dist-info → holidays-0.74.dist-info}/top_level.txt +0 -0
@@ -169,50 +169,50 @@ class UkraineStaticHolidays:
169
169
  """Ukraine special holidays.
170
170
 
171
171
  Substituted holidays References:
172
- * [1991](https://zakon.rada.gov.ua/laws/show/60-91-%D0%BF)
173
- * [1992 [1]](https://zakon.rada.gov.ua/laws/show/202-92-%D0%BF)
174
- * [1992 [2]](https://zakon.rada.gov.ua/laws/show/377-91-%D0%BF)
175
- * [1993 [1]](https://zakon.rada.gov.ua/laws/show/563-93-%D0%BF)
176
- * [1993 [2]](https://zakon.rada.gov.ua/laws/show/725-92-%D0%BF)
177
- * [1994](https://zakon.rada.gov.ua/laws/show/98-94-%D0%BF)
178
- * [1995 [1]](https://zakon.rada.gov.ua/laws/show/852-95-%D0%BF)
179
- * [1995 [2]](https://zakon.rada.gov.ua/laws/show/634-95-%D0%BF)
180
- * [1995 [3]](https://zakon.rada.gov.ua/laws/show/266-95-%D0%BF)
181
- * [1996](https://zakon.rada.gov.ua/laws/show/424-96-%D0%BF)
182
- * [1997 [1]](https://zakon.rada.gov.ua/laws/show/326-97-%D0%BF)
183
- * [1997 [2]](https://zakon.rada.gov.ua/laws/show/1547-96-%D0%BF)
184
- * [1998](https://zakon.rada.gov.ua/laws/show/1404-97-%D0%BF>)
185
- * [1999 [1]](https://zakon.rada.gov.ua/laws/show/1433-99-%D0%BF>)
186
- * [1999 [2]](https://zakon.rada.gov.ua/laws/show/558-99-%D0%BF>)
187
- * [1999 [3]](https://zakon.rada.gov.ua/laws/show/2070-98-%D0%BF)
188
- * [2000 [1]](https://zakon.rada.gov.ua/laws/show/1251-2000-%D0%BF)
189
- * [2000 [2]](https://zakon.rada.gov.ua/laws/show/717-2000-%D0%BF)
190
- * [2001 [1]](https://zakon.rada.gov.ua/laws/show/138-2001-%D1%80)
191
- * [2001 [2]](https://zakon.rada.gov.ua/laws/show/210-2001-%D0%BF)
192
- * [2002](https://zakon.rada.gov.ua/laws/show/202-2002-%D1%80)
193
- * [2002 - 2003](https:/zakon.rada.gov.ua/laws/show/705-2002-%D1%80)
194
- * [2004](https://zakon.rada.gov.ua/laws/show/773-2003-%D1%80)
195
- * [2005 [1]](https://zakon.rada.gov.ua/laws/show/936-2004-%D1%80)
196
- * [2005 [2]](https://zakon.rada.gov.ua/laws/show/133-2005-%D1%80)
197
- * [2006 [1]](https://zakon.rada.gov.ua/laws/show/490-2005-%D1%80)
198
- * [2006 [2]](https://zakon.rada.gov.ua/laws/show/562-2005-%D1%80)
199
- * [2007](https://zakon.rada.gov.ua/laws/show/612-2006-%D1%80)
200
- * [2008 [1]](https://zakon.rada.gov.ua/laws/show/1059-2007-%D1%80)
201
- * [2008 [2]](https://zakon.rada.gov.ua/laws/show/538-2008-%D1%80)
202
- * [2009](https://zakon.rada.gov.ua/laws/show/1458-2008-%D1%80)
203
- * [2010](https://zakon.rada.gov.ua/laws/show/1412-2009-%D1%80)
204
- * [2011](https://zakon.rada.gov.ua/laws/show/2130-2010-%D1%80)
205
- * [2012](https://zakon.rada.gov.ua/laws/show/1210-2011-%D1%80)
206
- * [2013](https://zakon.rada.gov.ua/laws/show/1043-2012-%D1%80)
207
- * [2014](https://zakon.rada.gov.ua/laws/show/920-2013-%D1%80)
208
- * [2015](https://zakon.rada.gov.ua/laws/show/1084-2014-%D1%80)
209
- * [2016](https://zakon.rada.gov.ua/laws/show/1155-2015-%D1%80)
210
- * [2017](https://zakon.rada.gov.ua/laws/show/850-2016-%D1%80)
211
- * [2018](https://zakon.rada.gov.ua/laws/show/1-2018-%D1%80)
212
- * [2019](https://zakon.rada.gov.ua/laws/show/7-2019-%D1%80)
213
- * [2020](https://zakon.rada.gov.ua/laws/show/995-2019-%D1%80)
214
- * [2021](https://zakon.rada.gov.ua/laws/show/1191-2020-%D1%80)
215
- * [2022](https://zakon.rada.gov.ua/laws/show/1004-2021-%D1%80)
172
+ * [1991](https://zakon.rada.gov.ua/laws/show/60-91-п)
173
+ * [1992 [1]](https://zakon.rada.gov.ua/laws/show/202-92-п)
174
+ * [1992 [2]](https://zakon.rada.gov.ua/laws/show/377-91-п)
175
+ * [1993 [1]](https://zakon.rada.gov.ua/laws/show/563-93-п)
176
+ * [1993 [2]](https://zakon.rada.gov.ua/laws/show/725-92-п)
177
+ * [1994](https://zakon.rada.gov.ua/laws/show/98-94-п)
178
+ * [1995 [1]](https://zakon.rada.gov.ua/laws/show/852-95-п)
179
+ * [1995 [2]](https://zakon.rada.gov.ua/laws/show/634-95-п)
180
+ * [1995 [3]](https://zakon.rada.gov.ua/laws/show/266-95-п)
181
+ * [1996](https://zakon.rada.gov.ua/laws/show/424-96-п)
182
+ * [1997 [1]](https://zakon.rada.gov.ua/laws/show/326-97-п)
183
+ * [1997 [2]](https://zakon.rada.gov.ua/laws/show/1547-96-п)
184
+ * [1998](https://zakon.rada.gov.ua/laws/show/1404-97-п)
185
+ * [1999 [1]](https://zakon.rada.gov.ua/laws/show/1433-99-п)
186
+ * [1999 [2]](https://zakon.rada.gov.ua/laws/show/558-99-п)
187
+ * [1999 [3]](https://zakon.rada.gov.ua/laws/show/2070-98-п)
188
+ * [2000 [1]](https://zakon.rada.gov.ua/laws/show/1251-2000-п)
189
+ * [2000 [2]](https://zakon.rada.gov.ua/laws/show/717-2000-п)
190
+ * [2001 [1]](https://zakon.rada.gov.ua/laws/show/138-2001)
191
+ * [2001 [2]](https://zakon.rada.gov.ua/laws/show/210-2001-п)
192
+ * [2002](https://zakon.rada.gov.ua/laws/show/202-2002)
193
+ * [2002 - 2003](https:/zakon.rada.gov.ua/laws/show/705-2002)
194
+ * [2004](https://zakon.rada.gov.ua/laws/show/773-2003)
195
+ * [2005 [1]](https://zakon.rada.gov.ua/laws/show/936-2004)
196
+ * [2005 [2]](https://zakon.rada.gov.ua/laws/show/133-2005)
197
+ * [2006 [1]](https://zakon.rada.gov.ua/laws/show/490-2005)
198
+ * [2006 [2]](https://zakon.rada.gov.ua/laws/show/562-2005)
199
+ * [2007](https://zakon.rada.gov.ua/laws/show/612-2006)
200
+ * [2008 [1]](https://zakon.rada.gov.ua/laws/show/1059-2007)
201
+ * [2008 [2]](https://zakon.rada.gov.ua/laws/show/538-2008)
202
+ * [2009](https://zakon.rada.gov.ua/laws/show/1458-2008)
203
+ * [2010](https://zakon.rada.gov.ua/laws/show/1412-2009)
204
+ * [2011](https://zakon.rada.gov.ua/laws/show/2130-2010)
205
+ * [2012](https://zakon.rada.gov.ua/laws/show/1210-2011)
206
+ * [2013](https://zakon.rada.gov.ua/laws/show/1043-2012)
207
+ * [2014](https://zakon.rada.gov.ua/laws/show/920-2013)
208
+ * [2015](https://zakon.rada.gov.ua/laws/show/1084-2014)
209
+ * [2016](https://zakon.rada.gov.ua/laws/show/1155-2015)
210
+ * [2017](https://zakon.rada.gov.ua/laws/show/850-2016)
211
+ * [2018](https://zakon.rada.gov.ua/laws/show/1-2018)
212
+ * [2019](https://zakon.rada.gov.ua/laws/show/7-2019)
213
+ * [2020](https://zakon.rada.gov.ua/laws/show/995-2019)
214
+ * [2021](https://zakon.rada.gov.ua/laws/show/1191-2020)
215
+ * [2022](https://zakon.rada.gov.ua/laws/show/1004-2021)
216
216
 
217
217
  Special holidays References:
218
218
  * [1995](https://zakon.rada.gov.ua/laws/show/13/95)
@@ -72,7 +72,7 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
72
72
  * Columbus Day / Indigenous Peoples' Day history:
73
73
  * <https://www.pewresearch.org/short-reads/2023/10/05/working-on-columbus-day-or-indigenous-peoples-day-it-depends-on-where-your-job-is/>
74
74
  * <https://www.officeholidays.com/holidays/usa/columbus-day-state-guide>
75
- * <https://en.wikipedia.org/wiki/Indigenous_Peoples%27_Day_(United_States)>
75
+ * <https://en.wikipedia.org/wiki/Indigenous_Peoples'_Day_(United_States)>
76
76
  * <https://www.sos.ri.gov/divisions/civics-and-education/reference-desk/ri-state-holidays>
77
77
  * <https://web.archive.org/web/20080831103521/http://www.dpa.ca.gov/personnel-policies/holidays.htm>
78
78
  * [Frances Xavier Cabrini Day](https://leg.colorado.gov/sites/default/files/2020a_1031_signed.pdf)
@@ -64,58 +64,56 @@ class VaticanCity(HolidayBase, ChristianHolidays, InternationalHolidays):
64
64
  tr("Anniversario della istituzione dello Stato della Città del Vaticano")
65
65
  )
66
66
 
67
- # Anniversary of the Election of the Holy Father.
68
- name_election = tr("Anniversario dell'Elezione del Santo Padre")
69
-
70
67
  # Name Day of the Holy Father.
71
68
  name_day = tr("Onomastico del Santo Padre")
72
69
 
73
- if self._year >= 2013:
70
+ if self._year >= 2025:
71
+ # Pope Leo XIV (Robert Francis Prevost).
72
+ # Name Day: Saint Robert Bellarmine Day (SEP 17).
73
+ self._add_holiday_sep_17(name_day)
74
+
75
+ if self._year == 2025:
76
+ # Pope Francis (cont.).
77
+ self._add_saint_georges_day(name_day)
78
+ elif self._year >= 2013:
74
79
  # Pope Francis (Jorge Mario Bergoglio).
75
80
  # Name Day: Saint George's Day (APR 23).
76
- self._add_holiday_mar_13(name_election)
77
81
  self._add_saint_georges_day(name_day)
78
- elif self._year >= 2005:
82
+ elif self._year >= 2006:
79
83
  # Pope Benedict XVI (Josef Aloisius Ratzinger).
80
84
  # Name Day: Saint Joseph's Day (MAR 19).
81
- self._add_holiday_apr_19(name_election)
82
85
  self._add_saint_josephs_day(name_day)
83
- elif self._year >= 1978:
86
+ elif 1978 <= self._year <= 2004:
84
87
  # Pope John Paul II (Karol Józef Wojtyła).
85
88
  # Name Day: Saint Charles Borromeo Day (NOV 4).
86
- self._add_holiday_oct_16(name_election)
87
89
  self._add_holiday_nov_4(name_day)
88
90
 
89
- if self._year == 1978:
90
- # Pope John Paul I (Albino Luciani).
91
- # Name Day: Saint Albinus of Angers (MAR 1)?
92
- self._add_holiday_aug_26(name_election)
91
+ # Anniversary of the Election of the Holy Father.
92
+ name_election = tr("Anniversario dell'Elezione del Santo Padre")
93
93
 
94
- # Pope Paul VI (cont.).
95
- self._add_holiday_jun_21(name_election)
96
- elif self._year >= 1963:
94
+ if self._year >= 2026:
95
+ # Pope Leo XIV (Robert Francis Prevost).
96
+ self._add_holiday_may_8(name_election)
97
+ elif self._year >= 2014:
98
+ # Pope Francis (Jorge Mario Bergoglio).
99
+ self._add_holiday_mar_13(name_election)
100
+ elif 2006 <= self._year <= 2012:
101
+ # Pope Benedict XVI (Josef Aloisius Ratzinger).
102
+ self._add_holiday_apr_19(name_election)
103
+ elif 1979 <= self._year <= 2004:
104
+ # Pope John Paul II (Karol Józef Wojtyła).
105
+ self._add_holiday_oct_16(name_election)
106
+ elif 1964 <= self._year <= 1978:
97
107
  # Pope Paul VI (Giovanni Battista Enrico Antonio Maria Montini).
98
- # Name Day: Saint John's Day (JUN 24)?
99
108
  self._add_holiday_jun_21(name_election)
100
- elif self._year >= 1958:
109
+ elif 1959 <= self._year <= 1962:
101
110
  # Pope John XXIII (Angelo Giuseppe Roncalli).
102
- # Name Day: Saint Angelus of Jerusalem (MAY 5)?
103
111
  self._add_holiday_oct_28(name_election)
104
-
105
- if self._year == 1958:
106
- # Pope Pius XII (cont.).
107
- self._add_holiday_mar_2(name_election)
108
- elif self._year >= 1939:
112
+ elif 1940 <= self._year <= 1958:
109
113
  # Pope Pius XII (Eugenio Maria Giuseppe Giovanni Pacelli).
110
- # Name Day: Saint Eugene (JUN 2)?
111
114
  self._add_holiday_mar_2(name_election)
112
-
113
- if self._year == 1939:
114
- # Pope Pius XI (cont.).
115
- self._add_holiday_feb_6(name_election)
116
- else:
115
+ elif self._year <= 1939:
117
116
  # Pope Pius XI (Achille Ambrogio Damiano Ratti).
118
- # Name Day: Saint Nereus and Achilleus (MAY 12)?
119
117
  self._add_holiday_feb_6(name_election)
120
118
 
121
119
  # Saint Joseph's Day.
@@ -23,7 +23,7 @@ class Venezuela(HolidayBase, ChristianHolidays, InternationalHolidays):
23
23
  * <https://dias-festivos.eu/dias-festivos/venezuela/#>
24
24
  * [1909 Aug 5](https://www.guao.org/sites/default/files/efemerides/69.Ley%20fiestas%20nacionales%201909.pdf)
25
25
  * [1918 May 19](https://www.guao.org/sites/default/files/efemerides/70.%20Ley%20de%20fiestas%20nacionales%201918.pdf)
26
- * [1921 Jun 11](https://guao.org/sites/default/files/efemerides/37.LEYES_Y_DECRETOS_1921_Di%cc%81a_de_la_raza.PDF)
26
+ * [1921 Jun 11](https://guao.org/sites/default/files/efemerides/37.LEYES_Y_DECRETOS_1921_Día_de_la_raza.PDF)
27
27
  * [1971 Jun 22](https://www.ilo.org/dyn/travail/docs/2030/Law%20No.29.541.pdf)
28
28
  * [2002 Oct 10](https://www.acnur.org/fileadmin/Documentos/BDL/2008/6635.pdf)
29
29
  * [2012 May 7](https://oig.cepal.org/sites/default/files/2012_leyorgtrabajo_ven.pdf)
@@ -0,0 +1,207 @@
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 gettext import gettext as tr
14
+
15
+ from holidays.calendars import _CustomIslamicHolidays
16
+ from holidays.calendars.gregorian import (
17
+ JAN,
18
+ FEB,
19
+ MAR,
20
+ APR,
21
+ MAY,
22
+ JUN,
23
+ JUL,
24
+ AUG,
25
+ SEP,
26
+ OCT,
27
+ THU,
28
+ FRI,
29
+ SAT,
30
+ _timedelta,
31
+ )
32
+ from holidays.constants import PUBLIC, SCHOOL, WORKDAY
33
+ from holidays.groups import InternationalHolidays, IslamicHolidays
34
+ from holidays.observed_holiday_base import ObservedHolidayBase, FRI_TO_NEXT_WORKDAY
35
+
36
+
37
+ class Yemen(ObservedHolidayBase, InternationalHolidays, IslamicHolidays):
38
+ """Yemen holidays.
39
+
40
+ References:
41
+ * [Presidential Decree Law No. (8) of 1996](https://web.archive.org/web/20230905142654/http://yemen-nic.info/db/laws_ye/detail.php?ID=11476)
42
+ * [Presidential Decree Law No. (2) of 2000](https://web.archive.org/web/20140714152707/http://www.presidentsaleh.gov.ye/showlaws.php?_lwbkno=3&_lwptno=2&_lwnmid=4)
43
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Yemen>
44
+ * <https://ar.wikipedia.org/wiki/قائمة_العطل_الرسمية_في_اليمن>
45
+ * <https://web.archive.org/web/20160806072136/http://marebpress.net/news_details.php?lang=arabic&sid=55120>
46
+ * <https://web.archive.org/web/20250505071425/https://yemenembassy.it/festivities/>
47
+ * <https://web.archive.org/web/20250113111659/https://www.timeanddate.com/holidays/yemen/2025?hol=9>
48
+ * <https://web.archive.org/web/20250103115023/http://www.yemenpost.net/Detail123456789.aspx?ID=3&SubID=7132&MainCat=3>
49
+ """
50
+
51
+ country = "YE"
52
+ default_language = "ar"
53
+ # %s (estimated).
54
+ estimated_label = tr("%s (مُقدَّر)")
55
+ # %s (observed).
56
+ observed_label = tr("%s (ملاحظة)")
57
+ # %s (observed, estimated).
58
+ observed_estimated_label = tr("%s (مُقدَّر ملاحظة)")
59
+ # The Republic of Yemen was declared on 22 May 1990.
60
+ start_year = 1991
61
+ supported_categories = (PUBLIC, SCHOOL, WORKDAY)
62
+ supported_languages = ("ar", "en_US")
63
+
64
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
65
+ """
66
+ Args:
67
+ islamic_show_estimated:
68
+ Whether to add "estimated" label to Islamic holidays name
69
+ if holiday date is estimated.
70
+ """
71
+ InternationalHolidays.__init__(self)
72
+ IslamicHolidays.__init__(
73
+ self, cls=YemenIslamicHolidays, show_estimated=islamic_show_estimated
74
+ )
75
+ kwargs.setdefault("observed_rule", FRI_TO_NEXT_WORKDAY)
76
+ super().__init__(*args, **kwargs)
77
+
78
+ def _populate_public_holidays(self):
79
+ dts_observed = set()
80
+
81
+ # Yemen switches from THU-FRI to FRI-SAT on Aug 15, 2013
82
+ self.weekend = {THU, FRI} if self._year <= 2012 else {FRI, SAT}
83
+
84
+ # Hijri New Year.
85
+ dts_observed.update(self._add_islamic_new_year_day(tr("عيد رأس السنة الهجرية")))
86
+
87
+ if self._year <= 1999:
88
+ # Prophet's Birthday.
89
+ dts_observed.update(self._add_mawlid_day(tr("المولد النبوي")))
90
+
91
+ # Eid al-Fitr.
92
+ name = tr("عيد الفطر")
93
+ dts_observed.update(self._add_eid_al_fitr_day(name))
94
+ dts_observed.update(self._add_eid_al_fitr_day_two(name))
95
+ dts_observed.update(self._add_eid_al_fitr_day_three(name))
96
+ ramadan_29_holidays = self._add_holiday_29_ramadan(name)
97
+ dts_observed.update(ramadan_29_holidays)
98
+ for dt in ramadan_29_holidays:
99
+ if _timedelta(dt, +1) not in self:
100
+ dts_observed.update(self._add_eid_al_fitr_eve(name))
101
+
102
+ # Eid al-Adha.
103
+ name = tr("عيد الأضحى")
104
+ dts_observed.update(self._add_arafah_day(name))
105
+ dts_observed.update(self._add_eid_al_adha_day(name))
106
+ dts_observed.update(self._add_eid_al_adha_day_two(name))
107
+ dts_observed.update(self._add_eid_al_adha_day_three(name))
108
+ dts_observed.update(self._add_eid_al_adha_day_four(name))
109
+
110
+ # Labor Day.
111
+ dts_observed.add(self._add_labor_day(tr("عيد العمال")))
112
+
113
+ # Unity Day.
114
+ dts_observed.add(self._add_holiday_may_22(tr("اليوم الوطني للجمهورية اليمنية")))
115
+
116
+ if self._year <= 1999:
117
+ # Victory Day.
118
+ dts_observed.add(self._add_holiday_jul_7(tr("ذكرى 7 يوليو")))
119
+
120
+ # Revolution Day.
121
+ dts_observed.add(self._add_holiday_sep_26(tr("ثورة 26 سبتمبر المجيدة")))
122
+
123
+ # Liberation Day.
124
+ dts_observed.add(self._add_holiday_oct_14(tr("ثورة 14 أكتوبر المجيدة")))
125
+
126
+ # Independence Day.
127
+ dts_observed.add(self._add_holiday_nov_30(tr("عيد الجلاء")))
128
+
129
+ if self.observed:
130
+ self._populate_observed(dts_observed)
131
+
132
+ def _populate_school_holidays(self):
133
+ if self._year >= 2013:
134
+ # Teacher's Day.
135
+ self._add_holiday_may_5(tr("عيد المعلم"))
136
+
137
+ def _populate_workday_holidays(self):
138
+ if self._year >= 2000:
139
+ # Prophet's Birthday.
140
+ self._add_mawlid_day(tr("المولد النبوي"))
141
+
142
+ # Isra' and Mi'raj.
143
+ self._add_isra_and_miraj_day(tr("ذكرى الإسراء والمعراج"))
144
+
145
+ # Victory Day.
146
+ self._add_holiday_jul_7(tr("ذكرى 7 يوليو"))
147
+
148
+
149
+ class YE(Yemen):
150
+ pass
151
+
152
+
153
+ class YEM(Yemen):
154
+ pass
155
+
156
+
157
+ class YemenIslamicHolidays(_CustomIslamicHolidays):
158
+ # https://www.timeanddate.com/holidays/yemen/eid-al-adha-first-day
159
+ EID_AL_ADHA_DATES = {
160
+ 2020: (JUL, 31),
161
+ 2021: (JUL, 20),
162
+ 2022: (JUL, 9),
163
+ 2023: (JUN, 28),
164
+ 2024: (JUN, 16),
165
+ }
166
+
167
+ # https://www.timeanddate.com/holidays/yemen/eid-al-fitr-first-day
168
+ EID_AL_FITR_DATES = {
169
+ 2020: (MAY, 24),
170
+ 2021: (MAY, 13),
171
+ 2022: (MAY, 2),
172
+ 2023: (APR, 21),
173
+ 2024: (APR, 10),
174
+ 2025: (MAR, 30),
175
+ }
176
+
177
+ # https://www.timeanddate.com/holidays/yemen/muharram-new-year
178
+ HIJRI_NEW_YEAR_DATES = {
179
+ 2020: (AUG, 20),
180
+ 2021: (AUG, 10),
181
+ 2022: (JUL, 30),
182
+ 2023: (JUL, 19),
183
+ 2024: (JUL, 7),
184
+ }
185
+
186
+ # https://www.timeanddate.com/holidays/yemen/isra-miraj
187
+ ISRA_AND_MIRAJ_DATES = {
188
+ 2023: (FEB, 18),
189
+ 2024: (FEB, 8),
190
+ 2025: (JAN, 27),
191
+ }
192
+
193
+ # https://www.timeanddate.com/holidays/yemen/prophet-birthday
194
+ MAWLID_DATES = {
195
+ 2020: (OCT, 29),
196
+ 2021: (OCT, 18),
197
+ 2022: (OCT, 8),
198
+ 2023: (SEP, 27),
199
+ 2024: (SEP, 15),
200
+ }
201
+
202
+ # https://www.timeanddate.com/holidays/yemen/ramadan-begins
203
+ RAMADAN_BEGINNING_DATES = {
204
+ 2023: (MAR, 23),
205
+ 2024: (MAR, 11),
206
+ 2025: (MAR, 1),
207
+ }
@@ -115,7 +115,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
115
115
  Birthday of the Buddha is a Buddhist festival that is celebrated in
116
116
  most of East Asia and South Asia commemorating the birth of Gautama
117
117
  Buddha, who was the founder of Buddhism.
118
- https://en.wikipedia.org/wiki/Buddha%27s_Birthday
118
+ https://en.wikipedia.org/wiki/Buddha's_Birthday
119
119
  """
120
120
  return self._add_chinese_calendar_holiday(
121
121
  name, self._chinese_calendar.buddha_birthday_date(self._year)
@@ -126,7 +126,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
126
126
  Add Chinese New Year's Eve (last day of 12th lunar month).
127
127
 
128
128
  Chinese New Year's Eve is the day before the Chinese New Year.
129
- https://en.wikipedia.org/wiki/Chinese_New_Year%27s_Eve
129
+ https://en.wikipedia.org/wiki/Chinese_New_Year's_Eve
130
130
  """
131
131
  return self._add_chinese_calendar_holiday(
132
132
  name, self._chinese_calendar.lunar_new_year_date(self._year), days_delta=-1
@@ -235,7 +235,7 @@ class ChineseCalendarHolidays(EasternCalendarHolidays):
235
235
 
236
236
  Vietnamese festival held annually from the 8th to the 11th day of the
237
237
  3rd lunar month in honour of the Hùng Kings.
238
- https://en.wikipedia.org/wiki/H%C3%B9ng_Kings%27_Festival
238
+ https://en.wikipedia.org/wiki/Hùng_Kings'_Festival
239
239
  """
240
240
  return self._add_chinese_calendar_holiday(
241
241
  name, self._chinese_calendar.hung_kings_date(self._year)
@@ -100,7 +100,7 @@ class ChristianHolidays:
100
100
 
101
101
  Also known as All Hallows' Day, the Feast of All Saints,
102
102
  the Feast of All Hallows, the Solemnity of All Saints, and Hallowmas.
103
- https://en.wikipedia.org/wiki/All_Saints%27_Day
103
+ https://en.wikipedia.org/wiki/All_Saints'_Day
104
104
  """
105
105
  return self._add_holiday_nov_1(name)
106
106
 
@@ -111,7 +111,7 @@ class ChristianHolidays:
111
111
  All Souls' Day is a day of prayer and remembrance for the faithful
112
112
  departed, observed by certain Christian denominations on 2 November.
113
113
  In Belarussian tradition it is called Dziady.
114
- https://en.wikipedia.org/wiki/All_Souls%27_Day
114
+ https://en.wikipedia.org/wiki/All_Souls'_Day
115
115
  https://en.wikipedia.org/wiki/Dziady
116
116
  """
117
117
  return self._add_holiday_nov_2(name)
@@ -197,7 +197,7 @@ class ChristianHolidays:
197
197
 
198
198
  def _add_carnival_tuesday(self, name) -> date:
199
199
  """
200
- Add Carnival Monday (47 days before Easter Sunday).
200
+ Add Carnival Tuesday (47 days before Easter Sunday).
201
201
 
202
202
  Carnival is a Catholic Christian festive season that occurs before
203
203
  the liturgical season of Lent.
@@ -373,7 +373,7 @@ class ChristianHolidays:
373
373
 
374
374
  Add Day Of Rejoicing ("Radonitsa"), in the Russian Orthodox Church is
375
375
  a commemoration of the departed observed on the second Tuesday of
376
- Pascha (Easter).In Ukrainian tradition it is called Provody.
376
+ Pascha (Easter). In Ukrainian tradition it is called Provody.
377
377
  https://en.wikipedia.org/wiki/Radonitsa
378
378
  """
379
379
  return self._add_holiday(name, _timedelta(self._easter_sunday, +9))
@@ -384,7 +384,7 @@ class ChristianHolidays:
384
384
 
385
385
  Saint George's Day is celebrated on 23 April, the traditionally
386
386
  accepted date of the saint's death.
387
- https://en.wikipedia.org/wiki/Saint_George%27s_Day
387
+ https://en.wikipedia.org/wiki/Saint_George's_Day
388
388
  """
389
389
  return self._add_holiday_apr_23(name)
390
390
 
@@ -415,13 +415,13 @@ class ChristianHolidays:
415
415
  Solemnity of Saint Joseph, is in Western Christianity the principal
416
416
  feast day of Saint Joseph, husband of the Virgin Mary and legal father
417
417
  of Jesus Christ.
418
- https://en.wikipedia.org/wiki/Saint_Joseph%27s_Day
418
+ https://en.wikipedia.org/wiki/Saint_Joseph's_Day
419
419
  """
420
420
  return self._add_holiday_mar_19(name)
421
421
 
422
422
  def _add_saints_peter_and_paul_day(self, name) -> date:
423
423
  """
424
- Feast of Saints Peter and Paul (June 29th).
424
+ Add Feast of Saints Peter and Paul (June 29th).
425
425
 
426
426
  A liturgical feast in honor of the martyrdom in Rome of the apostles
427
427
  Saint Peter and Saint Paul, which is observed on 29 June.