holidays 0.71__py3-none-any.whl → 0.72__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 (243) hide show
  1. holidays/__init__.py +1 -2
  2. holidays/calendars/__init__.py +1 -1
  3. holidays/calendars/balinese_saka.py +1 -1
  4. holidays/calendars/buddhist.py +5 -3
  5. holidays/calendars/chinese.py +101 -13
  6. holidays/calendars/custom.py +1 -1
  7. holidays/calendars/gregorian.py +1 -1
  8. holidays/calendars/hebrew.py +1 -1
  9. holidays/calendars/hindu.py +47 -3
  10. holidays/calendars/islamic.py +1 -1
  11. holidays/calendars/julian.py +1 -1
  12. holidays/calendars/julian_revised.py +1 -1
  13. holidays/calendars/persian.py +1 -1
  14. holidays/calendars/sinhala.py +1 -1
  15. holidays/calendars/thai.py +1 -1
  16. holidays/constants.py +1 -1
  17. holidays/countries/__init__.py +3 -1
  18. holidays/countries/afghanistan.py +1 -1
  19. holidays/countries/albania.py +2 -2
  20. holidays/countries/algeria.py +1 -1
  21. holidays/countries/american_samoa.py +2 -1
  22. holidays/countries/andorra.py +10 -1
  23. holidays/countries/angola.py +1 -1
  24. holidays/countries/antigua_and_barbuda.py +1 -1
  25. holidays/countries/argentina.py +5 -5
  26. holidays/countries/armenia.py +1 -1
  27. holidays/countries/aruba.py +1 -1
  28. holidays/countries/australia.py +16 -5
  29. holidays/countries/austria.py +3 -3
  30. holidays/countries/azerbaijan.py +1 -1
  31. holidays/countries/bahamas.py +1 -1
  32. holidays/countries/bahrain.py +1 -1
  33. holidays/countries/bangladesh.py +1 -1
  34. holidays/countries/barbados.py +1 -1
  35. holidays/countries/belarus.py +1 -1
  36. holidays/countries/belgium.py +1 -1
  37. holidays/countries/belize.py +1 -1
  38. holidays/countries/bolivia.py +23 -12
  39. holidays/countries/bosnia_and_herzegovina.py +5 -5
  40. holidays/countries/botswana.py +1 -1
  41. holidays/countries/brazil.py +3 -4
  42. holidays/countries/brunei.py +1 -1
  43. holidays/countries/bulgaria.py +1 -1
  44. holidays/countries/burkina_faso.py +1 -1
  45. holidays/countries/burundi.py +1 -1
  46. holidays/countries/cambodia.py +22 -22
  47. holidays/countries/cameroon.py +1 -1
  48. holidays/countries/canada.py +91 -57
  49. holidays/countries/chad.py +1 -1
  50. holidays/countries/chile.py +36 -18
  51. holidays/countries/china.py +1 -1
  52. holidays/countries/colombia.py +1 -1
  53. holidays/countries/congo.py +1 -1
  54. holidays/countries/costa_rica.py +1 -1
  55. holidays/countries/croatia.py +1 -1
  56. holidays/countries/cuba.py +1 -1
  57. holidays/countries/curacao.py +1 -1
  58. holidays/countries/cyprus.py +1 -1
  59. holidays/countries/czechia.py +1 -1
  60. holidays/countries/denmark.py +1 -1
  61. holidays/countries/djibouti.py +1 -1
  62. holidays/countries/dominica.py +1 -1
  63. holidays/countries/dominican_republic.py +1 -1
  64. holidays/countries/ecuador.py +1 -1
  65. holidays/countries/egypt.py +1 -1
  66. holidays/countries/el_salvador.py +18 -18
  67. holidays/countries/estonia.py +1 -1
  68. holidays/countries/eswatini.py +1 -1
  69. holidays/countries/ethiopia.py +43 -24
  70. holidays/countries/fiji.py +1 -1
  71. holidays/countries/finland.py +1 -1
  72. holidays/countries/france.py +3 -4
  73. holidays/countries/french_southern_territories.py +1 -1
  74. holidays/countries/gabon.py +1 -1
  75. holidays/countries/georgia.py +1 -1
  76. holidays/countries/germany.py +20 -21
  77. holidays/countries/ghana.py +1 -1
  78. holidays/countries/greece.py +1 -1
  79. holidays/countries/greenland.py +1 -1
  80. holidays/countries/guam.py +2 -1
  81. holidays/countries/guatemala.py +1 -1
  82. holidays/countries/guernsey.py +1 -1
  83. holidays/countries/guinea.py +1 -1
  84. holidays/countries/haiti.py +1 -1
  85. holidays/countries/honduras.py +1 -1
  86. holidays/countries/hongkong.py +2 -2
  87. holidays/countries/hungary.py +1 -1
  88. holidays/countries/iceland.py +1 -1
  89. holidays/countries/india.py +17 -11
  90. holidays/countries/indonesia.py +1 -1
  91. holidays/countries/iran.py +1 -1
  92. holidays/countries/ireland.py +1 -1
  93. holidays/countries/isle_of_man.py +1 -1
  94. holidays/countries/israel.py +1 -1
  95. holidays/countries/italy.py +1 -1
  96. holidays/countries/ivory_coast.py +5 -5
  97. holidays/countries/jamaica.py +1 -1
  98. holidays/countries/japan.py +1 -1
  99. holidays/countries/jersey.py +1 -1
  100. holidays/countries/jordan.py +1 -1
  101. holidays/countries/kazakhstan.py +1 -1
  102. holidays/countries/kenya.py +1 -1
  103. holidays/countries/kuwait.py +1 -1
  104. holidays/countries/kyrgyzstan.py +1 -1
  105. holidays/countries/laos.py +1 -1
  106. holidays/countries/latvia.py +1 -1
  107. holidays/countries/lesotho.py +1 -1
  108. holidays/countries/liechtenstein.py +1 -1
  109. holidays/countries/lithuania.py +1 -1
  110. holidays/countries/luxembourg.py +1 -1
  111. holidays/countries/macau.py +5 -5
  112. holidays/countries/madagascar.py +1 -1
  113. holidays/countries/malawi.py +1 -1
  114. holidays/countries/malaysia.py +21 -21
  115. holidays/countries/maldives.py +1 -1
  116. holidays/countries/malta.py +1 -1
  117. holidays/countries/marshall_islands.py +1 -1
  118. holidays/countries/mauritania.py +1 -1
  119. holidays/countries/mexico.py +1 -1
  120. holidays/countries/moldova.py +1 -1
  121. holidays/countries/monaco.py +1 -1
  122. holidays/countries/montenegro.py +1 -1
  123. holidays/countries/morocco.py +1 -1
  124. holidays/countries/mozambique.py +1 -1
  125. holidays/countries/namibia.py +1 -1
  126. holidays/countries/netherlands.py +1 -1
  127. holidays/countries/new_zealand.py +19 -19
  128. holidays/countries/nicaragua.py +19 -19
  129. holidays/countries/nigeria.py +1 -1
  130. holidays/countries/north_macedonia.py +1 -1
  131. holidays/countries/northern_mariana_islands.py +2 -1
  132. holidays/countries/norway.py +1 -1
  133. holidays/countries/oman.py +1 -1
  134. holidays/countries/pakistan.py +1 -1
  135. holidays/countries/palau.py +1 -1
  136. holidays/countries/panama.py +1 -1
  137. holidays/countries/papua_new_guinea.py +1 -1
  138. holidays/countries/paraguay.py +1 -1
  139. holidays/countries/peru.py +1 -1
  140. holidays/countries/philippines.py +1 -1
  141. holidays/countries/poland.py +1 -1
  142. holidays/countries/portugal.py +23 -25
  143. holidays/countries/puerto_rico.py +2 -1
  144. holidays/countries/qatar.py +1 -1
  145. holidays/countries/romania.py +1 -1
  146. holidays/countries/russia.py +1 -1
  147. holidays/countries/saint_kitts_and_nevis.py +1 -1
  148. holidays/countries/saint_lucia.py +1 -1
  149. holidays/countries/samoa.py +1 -1
  150. holidays/countries/san_marino.py +1 -1
  151. holidays/countries/sao_tome_and_principe.py +112 -0
  152. holidays/countries/saudi_arabia.py +1 -1
  153. holidays/countries/serbia.py +1 -1
  154. holidays/countries/seychelles.py +1 -1
  155. holidays/countries/sierra_leone.py +1 -1
  156. holidays/countries/singapore.py +5 -2
  157. holidays/countries/slovakia.py +1 -1
  158. holidays/countries/slovenia.py +1 -1
  159. holidays/countries/south_africa.py +1 -1
  160. holidays/countries/south_korea.py +3 -31
  161. holidays/countries/spain.py +43 -20
  162. holidays/countries/sri_lanka.py +1 -1
  163. holidays/countries/suriname.py +1 -1
  164. holidays/countries/sweden.py +1 -1
  165. holidays/countries/switzerland.py +61 -28
  166. holidays/countries/taiwan.py +1 -1
  167. holidays/countries/tanzania.py +1 -1
  168. holidays/countries/thailand.py +3 -3
  169. holidays/countries/timor_leste.py +1 -1
  170. holidays/countries/tonga.py +1 -1
  171. holidays/countries/trinidad_and_tobago.py +197 -0
  172. holidays/countries/tunisia.py +1 -1
  173. holidays/countries/turkey.py +1 -1
  174. holidays/countries/tuvalu.py +6 -6
  175. holidays/countries/ukraine.py +1 -1
  176. holidays/countries/united_arab_emirates.py +1 -1
  177. holidays/countries/united_kingdom.py +1 -1
  178. holidays/countries/united_states.py +62 -4
  179. holidays/countries/united_states_minor_outlying_islands.py +2 -1
  180. holidays/countries/united_states_virgin_islands.py +2 -1
  181. holidays/countries/uruguay.py +1 -1
  182. holidays/countries/uzbekistan.py +1 -1
  183. holidays/countries/vanuatu.py +1 -1
  184. holidays/countries/vatican_city.py +1 -1
  185. holidays/countries/venezuela.py +1 -1
  186. holidays/countries/vietnam.py +3 -2
  187. holidays/countries/zambia.py +1 -1
  188. holidays/countries/zimbabwe.py +1 -1
  189. holidays/deprecations/v1_incompatibility.py +1 -1
  190. holidays/financial/__init__.py +1 -1
  191. holidays/financial/brasil_bolsa_balcao.py +1 -1
  192. holidays/financial/european_central_bank.py +1 -1
  193. holidays/financial/ice_futures_europe.py +1 -1
  194. holidays/financial/ny_stock_exchange.py +1 -1
  195. holidays/groups/__init__.py +1 -1
  196. holidays/groups/balinese_saka.py +1 -1
  197. holidays/groups/buddhist.py +1 -1
  198. holidays/groups/chinese.py +6 -4
  199. holidays/groups/christian.py +1 -1
  200. holidays/groups/custom.py +1 -1
  201. holidays/groups/eastern.py +1 -1
  202. holidays/groups/hebrew.py +1 -1
  203. holidays/groups/hindu.py +45 -3
  204. holidays/groups/international.py +1 -1
  205. holidays/groups/islamic.py +1 -1
  206. holidays/groups/persian.py +1 -1
  207. holidays/groups/sinhala.py +1 -1
  208. holidays/groups/thai.py +6 -6
  209. holidays/helpers.py +1 -1
  210. holidays/holiday_base.py +1 -1
  211. holidays/ical.py +2 -2
  212. holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
  213. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  214. holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
  215. holidays/locale/en_CA/LC_MESSAGES/CA.mo +0 -0
  216. holidays/locale/en_CI/LC_MESSAGES/CI.mo +0 -0
  217. holidays/locale/en_ET/LC_MESSAGES/ET.mo +0 -0
  218. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  219. holidays/locale/en_TT/LC_MESSAGES/TT.mo +0 -0
  220. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  221. holidays/locale/en_US/LC_MESSAGES/CI.mo +0 -0
  222. holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
  223. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  224. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  225. holidays/locale/en_US/LC_MESSAGES/ST.mo +0 -0
  226. holidays/locale/en_US/LC_MESSAGES/TT.mo +0 -0
  227. holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
  228. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  229. holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
  230. holidays/locale/pt_ST/LC_MESSAGES/ST.mo +0 -0
  231. holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
  232. holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
  233. holidays/mixins.py +1 -1
  234. holidays/observed_holiday_base.py +1 -1
  235. holidays/registry.py +3 -1
  236. holidays/utils.py +1 -1
  237. holidays/version.py +2 -2
  238. {holidays-0.71.dist-info → holidays-0.72.dist-info}/METADATA +36 -16
  239. {holidays-0.71.dist-info → holidays-0.72.dist-info}/RECORD +243 -236
  240. {holidays-0.71.dist-info → holidays-0.72.dist-info}/WHEEL +1 -1
  241. holidays-0.71.dist-info/licenses/AUTHORS.md → holidays-0.72.dist-info/licenses/CONTRIBUTORS +1 -2
  242. {holidays-0.71.dist-info → holidays-0.72.dist-info}/licenses/LICENSE +1 -1
  243. {holidays-0.71.dist-info → holidays-0.72.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -29,37 +29,70 @@ class Switzerland(ObservedHolidayBase, ChristianHolidays, InternationalHolidays)
29
29
 
30
30
  country = "CH"
31
31
  default_language = "de"
32
+ start_year = 1801
32
33
  subdivisions = (
33
- "AG", # Aargau
34
- "AI", # Appenzell Innerrhoden
35
- "AR", # Appenzell Ausserrhoden
36
- "BL", # Basel-Landschaft
37
- "BS", # Basel-Stadt
38
- "BE", # Bern
39
- "FR", # Fribourg
40
- "GE", # Geneva
41
- "GL", # Glarus
42
- "GR", # Graubünden
43
- "JU", # Jura
44
- "LU", # Luzern
45
- "NE", # Neuchâtel
46
- "NW", # Nidwalden
47
- "OW", # Obwalden
48
- "SG", # St. Gallen
49
- "SH", # Schaffhausen
50
- "SZ", # Schwyz
51
- "SO", # Solothurn
52
- "TG", # Thurgau
53
- "TI", # Ticino
54
- "UR", # Uri
55
- "VD", # Vaud
56
- "VS", # Valais
57
- "ZG", # Zug
58
- "ZH", # Zürich
34
+ "AG", # Aargau.
35
+ "AI", # Appenzell Innerrhoden.
36
+ "AR", # Appenzell Ausserrhoden.
37
+ "BE", # Bern (Berne).
38
+ "BL", # Basel-Landschaft.
39
+ "BS", # Basel-Stadt.
40
+ "FR", # Freiburg (Fribourg).
41
+ "GE", # Genève.
42
+ "GL", # Glarus.
43
+ "GR", # Graubünden (Grigioni, Grischun).
44
+ "JU", # Jura.
45
+ "LU", # Luzern.
46
+ "NE", # Neuchâtel.
47
+ "NW", # Nidwalden.
48
+ "OW", # Obwalden.
49
+ "SG", # Sankt Gallen.
50
+ "SH", # Schaffhausen.
51
+ "SO", # Solothurn.
52
+ "SZ", # Schwyz.
53
+ "TG", # Thurgau.
54
+ "TI", # Ticino.
55
+ "UR", # Uri.
56
+ "VD", # Vaud.
57
+ "VS", # Valais (Wallis).
58
+ "ZG", # Zug.
59
+ "ZH", # Zürich.
59
60
  )
61
+ subdivisions_aliases = {
62
+ "Aargau": "AG",
63
+ "Appenzell Innerrhoden": "AI",
64
+ "Appenzell Ausserrhoden": "AR",
65
+ "Bern": "BE",
66
+ "Berne": "BE",
67
+ "Basel-Landschaft": "BL",
68
+ "Basel-Stadt": "BS",
69
+ "Freiburg": "FR",
70
+ "Fribourg": "FR",
71
+ "Genève": "GE",
72
+ "Glarus": "GL",
73
+ "Graubünden": "GR",
74
+ "Grigioni": "GR",
75
+ "Grischun": "GR",
76
+ "Jura": "JU",
77
+ "Luzern": "LU",
78
+ "Neuchâtel": "NE",
79
+ "Nidwalden": "NW",
80
+ "Obwalden": "OW",
81
+ "Sankt Gallen": "SG",
82
+ "Schaffhausen": "SH",
83
+ "Solothurn": "SO",
84
+ "Schwyz": "SZ",
85
+ "Thurgau": "TG",
86
+ "Ticino": "TI",
87
+ "Uri": "UR",
88
+ "Vaud": "VD",
89
+ "Valais": "VS",
90
+ "Wallis": "VS",
91
+ "Zug": "ZG",
92
+ "Zürich": "ZH",
93
+ }
60
94
  supported_categories = (HALF_DAY, OPTIONAL, PUBLIC)
61
95
  supported_languages = ("de", "en_US", "fr", "it", "uk")
62
- start_year = 1801
63
96
 
64
97
  def __init__(self, *args, **kwargs):
65
98
  ChristianHolidays.__init__(self)
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -181,13 +181,13 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
181
181
  """
182
182
 
183
183
  country = "TH"
184
- supported_categories = (ARMED_FORCES, BANK, GOVERNMENT, PUBLIC, SCHOOL, WORKDAY)
185
184
  default_language = "th"
186
185
  # %s (in lieu).
187
186
  observed_label = tr("ชดเชย%s")
188
- supported_languages = ("en_US", "th")
189
187
  # First Holiday Decree was promulgated in March 1914.
190
188
  start_year = 1914
189
+ supported_categories = (ARMED_FORCES, BANK, GOVERNMENT, PUBLIC, SCHOOL, WORKDAY)
190
+ supported_languages = ("en_US", "th")
191
191
 
192
192
  def __init__(self, *args, **kwargs):
193
193
  InternationalHolidays.__init__(self)
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -0,0 +1,197 @@
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 datetime import date
14
+ from gettext import gettext as tr
15
+
16
+ from holidays.calendars import _CustomHinduHolidays, _CustomIslamicHolidays
17
+ from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, OCT, NOV
18
+ from holidays.constants import OPTIONAL, PUBLIC
19
+ from holidays.groups import (
20
+ ChristianHolidays,
21
+ HinduCalendarHolidays,
22
+ InternationalHolidays,
23
+ IslamicHolidays,
24
+ )
25
+ from holidays.observed_holiday_base import (
26
+ ObservedHolidayBase,
27
+ SUN_TO_NEXT_WORKDAY,
28
+ SAT_SUN_TO_NEXT_WORKDAY,
29
+ WORKDAY_TO_NEXT_WORKDAY,
30
+ )
31
+
32
+
33
+ class TrinidadAndTobago(
34
+ ObservedHolidayBase,
35
+ ChristianHolidays,
36
+ HinduCalendarHolidays,
37
+ InternationalHolidays,
38
+ IslamicHolidays,
39
+ ):
40
+ """Trinidad and Tobago holidays.
41
+
42
+ References:
43
+ * <https://web.archive.org/web/20250429121623/https://otp.tt/trinidad-and-tobago/national-holidays-and-awards/>
44
+ * <https://web.archive.org/web/20250429120744/https://laws.gov.tt/ttdll-web2/revision/list?offset=380&q=&currentid=322>
45
+ * <https://web.archive.org/web/20250429120707/https://www.guardian.co.tt/article-6.2.448640.3e9e366923>
46
+ * <https://web.archive.org/web/20250429120548/https://www.guardian.co.tt/article-6.2.410311.3fe66fb00f>
47
+ * <https://web.archive.org/web/20250418212357/https://www.nalis.gov.tt/resources/tt-content-guide/labour-day/>
48
+ * <https://web.archive.org/web/20250429120701/https://www.facebook.com/groups/191766699268/posts/10160832951274269/>
49
+ * <https://web.archive.org/web/20250429142054/https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2F100064996051675%2Fposts%2F1101755938667598%2F>
50
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Trinidad_and_Tobago>
51
+ * <https://en.wikipedia.org/wiki/Trinidad_and_Tobago_Carnival>
52
+ * <https://en.wikipedia.org/wiki/Indian_Arrival_Day#Trinidad_and_Tobago>
53
+ * <https://web.archive.org/web/20250429120402/https://www.timeanddate.com/holidays/trinidad/eid-al-fitr>
54
+ * <https://web.archive.org/web/20250429120140/https://www.timeanddate.com/holidays/trinidad/diwali>
55
+ """
56
+
57
+ country = "TT"
58
+ default_language = "en_TT"
59
+ supported_categories = (OPTIONAL, PUBLIC)
60
+ # %s (estimated).
61
+ estimated_label = tr("%s (estimated)")
62
+ # %s (observed).
63
+ observed_label = tr("%s (observed)")
64
+ # %s (observed, estimated).
65
+ observed_estimated_label = tr("%s (observed, estimated)")
66
+ supported_languages = ("en_TT", "en_US")
67
+ # Trinidad and Tobago gained independence on August 31, 1962.
68
+ start_year = 1963
69
+
70
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
71
+ """
72
+ Args:
73
+ islamic_show_estimated:
74
+ Whether to add "estimated" label to Islamic holidays name
75
+ if holiday date is estimated.
76
+ """
77
+ ChristianHolidays.__init__(self)
78
+ HinduCalendarHolidays.__init__(self, cls=TrinidadAndTobagoHinduHolidays)
79
+ InternationalHolidays.__init__(self)
80
+ IslamicHolidays.__init__(
81
+ self, cls=TrinidadAndTobagoIslamicHolidays, show_estimated=islamic_show_estimated
82
+ )
83
+ super().__init__(*args, **kwargs)
84
+
85
+ def _populate_observed(self, dts: set[date], multiple: bool = False) -> None:
86
+ for dt in sorted(dts):
87
+ self._add_observed(
88
+ dt,
89
+ rule=WORKDAY_TO_NEXT_WORKDAY + SAT_SUN_TO_NEXT_WORKDAY
90
+ if len(self.get_list(dt)) > 1
91
+ else SUN_TO_NEXT_WORKDAY,
92
+ )
93
+
94
+ def _populate_public_holidays(self):
95
+ dts_observed = set()
96
+
97
+ # New Year's Day.
98
+ dts_observed.add(self._add_new_years_day(tr("New Year's Day")))
99
+
100
+ # Good Friday.
101
+ dts_observed.add(self._add_good_friday(tr("Good Friday")))
102
+
103
+ # Easter Monday.
104
+ dts_observed.add(self._add_easter_monday(tr("Easter Monday")))
105
+
106
+ if self._year >= 1996:
107
+ # Spiritual Baptist Liberation Day.
108
+ dts_observed.add(self._add_holiday_mar_30(tr("Spiritual Baptist Liberation Day")))
109
+
110
+ # Indian Arrival Day.
111
+ dts_observed.add(self._add_holiday_may_30(tr("Indian Arrival Day")))
112
+
113
+ # Corpus Christi.
114
+ dts_observed.add(self._add_corpus_christi_day(tr("Corpus Christi")))
115
+
116
+ if self._year >= 1973:
117
+ # Labor Day.
118
+ dts_observed.add(self._add_holiday_jun_19(tr("Labour Day")))
119
+
120
+ if self._year >= 1985:
121
+ # African Emancipation Day.
122
+ dts_observed.add(self._add_holiday_aug_1(tr("African Emancipation Day")))
123
+
124
+ # Independence Day.
125
+ dts_observed.add(self._add_holiday_aug_31(tr("Independence Day")))
126
+
127
+ if self._year >= 1976:
128
+ # Republic Day.
129
+ dts_observed.add(self._add_holiday_sep_24(tr("Republic Day")))
130
+
131
+ # Diwali.
132
+ dts_observed.add(self._add_diwali(tr("Divali")))
133
+
134
+ # Christmas Day.
135
+ dts_observed.add(self._add_christmas_day(tr("Christmas Day")))
136
+
137
+ # Boxing Day.
138
+ dts_observed.add(self._add_christmas_day_two(tr("Boxing Day")))
139
+
140
+ # Eid al-Fitr.
141
+ dts_observed.update(self._add_eid_al_fitr_day(tr("Eid-Ul-Fitr")))
142
+
143
+ if self.observed:
144
+ self._populate_observed(dts_observed)
145
+
146
+ def _populate_optional_holidays(self):
147
+ # Carnival Monday.
148
+ self._add_carnival_monday(tr("Carnival Monday"))
149
+
150
+ # Carnival Tuesday.
151
+ self._add_carnival_tuesday(tr("Carnival Tuesday"))
152
+
153
+
154
+ class TT(TrinidadAndTobago):
155
+ pass
156
+
157
+
158
+ class TTO(TrinidadAndTobago):
159
+ pass
160
+
161
+
162
+ class TrinidadAndTobagoHinduHolidays(_CustomHinduHolidays):
163
+ DIWALI_DATES = {
164
+ 2012: (NOV, 13),
165
+ 2013: (NOV, 4),
166
+ 2014: (OCT, 23),
167
+ 2015: (NOV, 11),
168
+ 2016: (OCT, 29),
169
+ 2017: (OCT, 19),
170
+ 2018: (NOV, 7),
171
+ 2019: (OCT, 27),
172
+ 2020: (NOV, 14),
173
+ 2021: (NOV, 4),
174
+ 2022: (OCT, 24),
175
+ 2023: (NOV, 12),
176
+ 2024: (OCT, 31),
177
+ 2025: (OCT, 20),
178
+ }
179
+
180
+
181
+ class TrinidadAndTobagoIslamicHolidays(_CustomIslamicHolidays):
182
+ EID_AL_FITR_DATES = {
183
+ 2012: (AUG, 19),
184
+ 2013: (AUG, 8),
185
+ 2014: (JUL, 29),
186
+ 2015: (JUL, 18),
187
+ 2016: (JUL, 6),
188
+ 2017: (JUN, 26),
189
+ 2018: (JUN, 15),
190
+ 2019: (JUN, 5),
191
+ 2020: (MAY, 24),
192
+ 2021: (MAY, 13),
193
+ 2022: (MAY, 2),
194
+ 2023: (APR, 22),
195
+ 2024: (APR, 10),
196
+ 2025: (MAR, 31),
197
+ }
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -39,7 +39,10 @@ class Tuvalu(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
39
39
  default_language = "tvl"
40
40
  # %s (observed).
41
41
  observed_label = tr("%s (fakamatakuga)")
42
- supported_languages = ("en_GB", "en_US", "tvl")
42
+ # Tuvalu became fully independent of the United Kingdom on October 1, 1978
43
+ # Tuvalu's PUBLIC HOLIDAYS (AMENDMENT) ACT 1990 (Act 2 of 1990)
44
+ # It was first proclaimed on FEB 7th, 1990
45
+ start_year = 1990
43
46
  subdivisions = (
44
47
  "FUN", # Funafuti.
45
48
  "NIT", # Niutao.
@@ -62,10 +65,7 @@ class Tuvalu(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
62
65
  "Nui": "NUI",
63
66
  "Vaitupu": "VAI",
64
67
  }
65
- # Tuvalu became fully independent of the United Kingdom on October 1, 1978
66
- # Tuvalu's PUBLIC HOLIDAYS (AMENDMENT) ACT 1990 (Act 2 of 1990)
67
- # It was first proclaimed on FEB 7th, 1990
68
- start_year = 1990
68
+ supported_languages = ("en_GB", "en_US", "tvl")
69
69
 
70
70
  def __init__(self, *args, **kwargs):
71
71
  ChristianHolidays.__init__(self)
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -84,8 +84,8 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
84
84
  """
85
85
 
86
86
  country = "US"
87
- supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
88
87
  observed_label = "%s (observed)"
88
+ start_year = 1777
89
89
  subdivisions: Union[tuple[()], tuple[str, ...]] = (
90
90
  "AK", # Alaska.
91
91
  "AL", # Alabama.
@@ -145,13 +145,71 @@ class UnitedStates(ObservedHolidayBase, ChristianHolidays, InternationalHolidays
145
145
  "WV", # West Virginia.
146
146
  "WY", # Wyoming.
147
147
  )
148
-
148
+ subdivisions_aliases = {
149
+ "Alaska": "AK",
150
+ "Alabama": "AL",
151
+ "Arkansas": "AR",
152
+ "American Samoa": "AS",
153
+ "Arizona": "AZ",
154
+ "California": "CA",
155
+ "Colorado": "CO",
156
+ "Connecticut": "CT",
157
+ "District of Columbia": "DC",
158
+ "Delaware": "DE",
159
+ "Florida": "FL",
160
+ "Georgia": "GA",
161
+ "Guam": "GU",
162
+ "Hawaii": "HI",
163
+ "Iowa": "IA",
164
+ "Idaho": "ID",
165
+ "Illinois": "IL",
166
+ "Indiana": "IN",
167
+ "Kansas": "KS",
168
+ "Kentucky": "KY",
169
+ "Louisiana": "LA",
170
+ "Massachusetts": "MA",
171
+ "Maryland": "MD",
172
+ "Maine": "ME",
173
+ "Michigan": "MI",
174
+ "Minnesota": "MN",
175
+ "Missouri": "MO",
176
+ "Northern Mariana Islands": "MP",
177
+ "Mississippi": "MS",
178
+ "Montana": "MT",
179
+ "North Carolina": "NC",
180
+ "North Dakota": "ND",
181
+ "Nebraska": "NE",
182
+ "New Hampshire": "NH",
183
+ "New Jersey": "NJ",
184
+ "New Mexico": "NM",
185
+ "Nevada": "NV",
186
+ "New York": "NY",
187
+ "Ohio": "OH",
188
+ "Oklahoma": "OK",
189
+ "Oregon": "OR",
190
+ "Pennsylvania": "PA",
191
+ "Puerto Rico": "PR",
192
+ "Rhode Island": "RI",
193
+ "South Carolina": "SC",
194
+ "South Dakota": "SD",
195
+ "Tennessee": "TN",
196
+ "Texas": "TX",
197
+ "United States Minor Outlying Islands": "UM",
198
+ "Utah": "UT",
199
+ "Virginia": "VA",
200
+ "Virgin Islands, U.S.": "VI",
201
+ "Vermont": "VT",
202
+ "Washington": "WA",
203
+ "Wisconsin": "WI",
204
+ "West Virginia": "WV",
205
+ "Wyoming": "WY",
206
+ }
207
+ supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
149
208
  _deprecated_subdivisions = (
150
209
  "FM",
151
210
  "MH",
152
211
  "PW",
153
212
  )
154
- start_year = 1777
155
213
 
156
214
  def __init__(self, *args, **kwargs):
157
215
  ChristianHolidays.__init__(self)
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -24,6 +24,7 @@ class HolidaysUM(US):
24
24
  country = "UM"
25
25
  supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
26
26
  subdivisions = () # Override US subdivisions.
27
+ subdivisions_aliases = {} # Override US subdivisions aliases.
27
28
 
28
29
  def _populate_public_holidays(self) -> None:
29
30
  self.subdiv = "UM"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -24,6 +24,7 @@ class HolidaysVI(US):
24
24
  country = "VI"
25
25
  supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
26
26
  subdivisions = () # Override US subdivisions.
27
+ subdivisions_aliases = {} # Override US subdivisions aliases.
27
28
 
28
29
  def _populate_public_holidays(self) -> None:
29
30
  self.subdiv = "VI"
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -4,7 +4,7 @@
4
4
  # specific sets of holidays on the fly. It aims to make determining whether a
5
5
  # specific date is a holiday as fast and flexible as possible.
6
6
  #
7
- # Authors: Vacanza Team and individual contributors (see AUTHORS.md file)
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
8
  # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
9
  # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
10
  # Website: https://github.com/vacanza/holidays
@@ -13,6 +13,7 @@
13
13
  from datetime import date
14
14
  from gettext import gettext as tr
15
15
 
16
+ from holidays.calendars.chinese import VIETNAMESE_CALENDAR
16
17
  from holidays.calendars.gregorian import (
17
18
  JAN,
18
19
  FEB,
@@ -59,7 +60,7 @@ class Vietnam(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHoliday
59
60
  supported_languages = ("en_US", "th", "vi")
60
61
 
61
62
  def __init__(self, *args, **kwargs):
62
- ChineseCalendarHolidays.__init__(self)
63
+ ChineseCalendarHolidays.__init__(self, calendar=VIETNAMESE_CALENDAR)
63
64
  InternationalHolidays.__init__(self)
64
65
  StaticHolidays.__init__(self, VietnamStaticHolidays)
65
66
  kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_WORKDAY)