holidays 0.71__py3-none-any.whl → 0.73__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 (260) 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 +194 -6
  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 +7 -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 +140 -47
  23. holidays/countries/angola.py +1 -1
  24. holidays/countries/antigua_and_barbuda.py +1 -1
  25. holidays/countries/argentina.py +15 -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/cocos_islands.py +259 -0
  53. holidays/countries/colombia.py +1 -1
  54. holidays/countries/congo.py +1 -1
  55. holidays/countries/costa_rica.py +1 -1
  56. holidays/countries/croatia.py +1 -1
  57. holidays/countries/cuba.py +1 -1
  58. holidays/countries/curacao.py +1 -1
  59. holidays/countries/cyprus.py +1 -1
  60. holidays/countries/czechia.py +1 -1
  61. holidays/countries/denmark.py +1 -1
  62. holidays/countries/djibouti.py +1 -1
  63. holidays/countries/dominica.py +1 -1
  64. holidays/countries/dominican_republic.py +1 -1
  65. holidays/countries/ecuador.py +1 -1
  66. holidays/countries/egypt.py +1 -1
  67. holidays/countries/el_salvador.py +18 -18
  68. holidays/countries/estonia.py +1 -1
  69. holidays/countries/eswatini.py +1 -1
  70. holidays/countries/ethiopia.py +43 -24
  71. holidays/countries/fiji.py +1 -1
  72. holidays/countries/finland.py +1 -1
  73. holidays/countries/france.py +3 -4
  74. holidays/countries/french_southern_territories.py +1 -1
  75. holidays/countries/gabon.py +1 -1
  76. holidays/countries/georgia.py +1 -1
  77. holidays/countries/germany.py +20 -21
  78. holidays/countries/ghana.py +1 -1
  79. holidays/countries/greece.py +1 -1
  80. holidays/countries/greenland.py +1 -1
  81. holidays/countries/grenada.py +143 -0
  82. holidays/countries/guam.py +2 -1
  83. holidays/countries/guatemala.py +1 -1
  84. holidays/countries/guernsey.py +1 -1
  85. holidays/countries/guinea.py +1 -1
  86. holidays/countries/haiti.py +1 -1
  87. holidays/countries/honduras.py +1 -1
  88. holidays/countries/hongkong.py +2 -2
  89. holidays/countries/hungary.py +1 -1
  90. holidays/countries/iceland.py +1 -1
  91. holidays/countries/india.py +17 -11
  92. holidays/countries/indonesia.py +1 -1
  93. holidays/countries/iran.py +1 -1
  94. holidays/countries/ireland.py +1 -1
  95. holidays/countries/isle_of_man.py +1 -1
  96. holidays/countries/israel.py +1 -1
  97. holidays/countries/italy.py +1 -1
  98. holidays/countries/ivory_coast.py +5 -5
  99. holidays/countries/jamaica.py +1 -1
  100. holidays/countries/japan.py +1 -1
  101. holidays/countries/jersey.py +1 -1
  102. holidays/countries/jordan.py +1 -1
  103. holidays/countries/kazakhstan.py +1 -1
  104. holidays/countries/kenya.py +1 -1
  105. holidays/countries/kuwait.py +1 -1
  106. holidays/countries/kyrgyzstan.py +1 -1
  107. holidays/countries/laos.py +1 -1
  108. holidays/countries/latvia.py +1 -1
  109. holidays/countries/lesotho.py +1 -1
  110. holidays/countries/liechtenstein.py +1 -1
  111. holidays/countries/lithuania.py +1 -1
  112. holidays/countries/luxembourg.py +1 -1
  113. holidays/countries/macau.py +5 -5
  114. holidays/countries/madagascar.py +1 -1
  115. holidays/countries/malawi.py +1 -1
  116. holidays/countries/malaysia.py +21 -29
  117. holidays/countries/maldives.py +1 -1
  118. holidays/countries/malta.py +1 -1
  119. holidays/countries/marshall_islands.py +1 -1
  120. holidays/countries/mauritania.py +1 -1
  121. holidays/countries/mexico.py +1 -1
  122. holidays/countries/moldova.py +1 -1
  123. holidays/countries/monaco.py +1 -1
  124. holidays/countries/montenegro.py +1 -1
  125. holidays/countries/morocco.py +1 -1
  126. holidays/countries/mozambique.py +1 -1
  127. holidays/countries/namibia.py +1 -1
  128. holidays/countries/nepal.py +441 -0
  129. holidays/countries/netherlands.py +1 -1
  130. holidays/countries/new_zealand.py +19 -19
  131. holidays/countries/nicaragua.py +19 -19
  132. holidays/countries/nigeria.py +1 -1
  133. holidays/countries/north_macedonia.py +1 -1
  134. holidays/countries/northern_mariana_islands.py +2 -1
  135. holidays/countries/norway.py +1 -1
  136. holidays/countries/oman.py +1 -1
  137. holidays/countries/pakistan.py +1 -1
  138. holidays/countries/palau.py +1 -1
  139. holidays/countries/panama.py +1 -1
  140. holidays/countries/papua_new_guinea.py +1 -1
  141. holidays/countries/paraguay.py +1 -1
  142. holidays/countries/peru.py +1 -1
  143. holidays/countries/philippines.py +3 -1
  144. holidays/countries/poland.py +1 -1
  145. holidays/countries/portugal.py +23 -25
  146. holidays/countries/puerto_rico.py +2 -1
  147. holidays/countries/qatar.py +1 -1
  148. holidays/countries/romania.py +1 -1
  149. holidays/countries/russia.py +1 -1
  150. holidays/countries/saint_kitts_and_nevis.py +1 -1
  151. holidays/countries/saint_lucia.py +1 -1
  152. holidays/countries/samoa.py +1 -1
  153. holidays/countries/san_marino.py +1 -1
  154. holidays/countries/sao_tome_and_principe.py +112 -0
  155. holidays/countries/saudi_arabia.py +1 -1
  156. holidays/countries/serbia.py +1 -1
  157. holidays/countries/seychelles.py +1 -1
  158. holidays/countries/sierra_leone.py +1 -1
  159. holidays/countries/singapore.py +5 -2
  160. holidays/countries/slovakia.py +1 -1
  161. holidays/countries/slovenia.py +1 -1
  162. holidays/countries/south_africa.py +1 -1
  163. holidays/countries/south_korea.py +3 -31
  164. holidays/countries/spain.py +43 -20
  165. holidays/countries/sri_lanka.py +1 -1
  166. holidays/countries/suriname.py +1 -1
  167. holidays/countries/sweden.py +1 -1
  168. holidays/countries/switzerland.py +61 -28
  169. holidays/countries/taiwan.py +1 -1
  170. holidays/countries/tanzania.py +1 -1
  171. holidays/countries/thailand.py +3 -3
  172. holidays/countries/timor_leste.py +1 -1
  173. holidays/countries/togo.py +182 -0
  174. holidays/countries/tonga.py +1 -1
  175. holidays/countries/trinidad_and_tobago.py +197 -0
  176. holidays/countries/tunisia.py +1 -1
  177. holidays/countries/turkey.py +1 -1
  178. holidays/countries/tuvalu.py +6 -6
  179. holidays/countries/ukraine.py +1 -1
  180. holidays/countries/united_arab_emirates.py +1 -1
  181. holidays/countries/united_kingdom.py +1 -1
  182. holidays/countries/united_states.py +62 -4
  183. holidays/countries/united_states_minor_outlying_islands.py +2 -1
  184. holidays/countries/united_states_virgin_islands.py +2 -1
  185. holidays/countries/uruguay.py +1 -1
  186. holidays/countries/uzbekistan.py +1 -1
  187. holidays/countries/vanuatu.py +1 -1
  188. holidays/countries/vatican_city.py +30 -32
  189. holidays/countries/venezuela.py +1 -1
  190. holidays/countries/vietnam.py +3 -2
  191. holidays/countries/zambia.py +1 -1
  192. holidays/countries/zimbabwe.py +1 -1
  193. holidays/deprecations/v1_incompatibility.py +1 -1
  194. holidays/financial/__init__.py +1 -1
  195. holidays/financial/brasil_bolsa_balcao.py +1 -1
  196. holidays/financial/european_central_bank.py +1 -1
  197. holidays/financial/ice_futures_europe.py +1 -1
  198. holidays/financial/ny_stock_exchange.py +1 -1
  199. holidays/groups/__init__.py +1 -1
  200. holidays/groups/balinese_saka.py +1 -1
  201. holidays/groups/buddhist.py +1 -1
  202. holidays/groups/chinese.py +6 -4
  203. holidays/groups/christian.py +4 -4
  204. holidays/groups/custom.py +1 -1
  205. holidays/groups/eastern.py +1 -1
  206. holidays/groups/hebrew.py +1 -1
  207. holidays/groups/hindu.py +166 -4
  208. holidays/groups/international.py +1 -1
  209. holidays/groups/islamic.py +1 -1
  210. holidays/groups/persian.py +1 -1
  211. holidays/groups/sinhala.py +1 -1
  212. holidays/groups/thai.py +6 -6
  213. holidays/helpers.py +1 -1
  214. holidays/holiday_base.py +1 -1
  215. holidays/ical.py +2 -2
  216. holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
  217. holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
  218. holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
  219. holidays/locale/ca/LC_MESSAGES/AD.mo +0 -0
  220. holidays/locale/coa_CC/LC_MESSAGES/CC.mo +0 -0
  221. holidays/locale/en_CA/LC_MESSAGES/CA.mo +0 -0
  222. holidays/locale/en_CC/LC_MESSAGES/CC.mo +0 -0
  223. holidays/locale/en_CI/LC_MESSAGES/CI.mo +0 -0
  224. holidays/locale/en_ET/LC_MESSAGES/ET.mo +0 -0
  225. holidays/locale/en_GD/LC_MESSAGES/GD.mo +0 -0
  226. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  227. holidays/locale/en_TT/LC_MESSAGES/TT.mo +0 -0
  228. holidays/locale/en_US/LC_MESSAGES/AD.mo +0 -0
  229. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  230. holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
  231. holidays/locale/en_US/LC_MESSAGES/CC.mo +0 -0
  232. holidays/locale/en_US/LC_MESSAGES/CI.mo +0 -0
  233. holidays/locale/en_US/LC_MESSAGES/ET.mo +0 -0
  234. holidays/locale/en_US/LC_MESSAGES/GD.mo +0 -0
  235. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  236. holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
  237. holidays/locale/en_US/LC_MESSAGES/ST.mo +0 -0
  238. holidays/locale/en_US/LC_MESSAGES/TG.mo +0 -0
  239. holidays/locale/en_US/LC_MESSAGES/TT.mo +0 -0
  240. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  241. holidays/locale/fr/LC_MESSAGES/CA.mo +0 -0
  242. holidays/locale/fr/LC_MESSAGES/TG.mo +0 -0
  243. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  244. holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
  245. holidays/locale/pt_ST/LC_MESSAGES/ST.mo +0 -0
  246. holidays/locale/th/LC_MESSAGES/CA.mo +0 -0
  247. holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
  248. holidays/locale/uk/LC_MESSAGES/AD.mo +0 -0
  249. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  250. holidays/mixins.py +1 -1
  251. holidays/observed_holiday_base.py +1 -1
  252. holidays/registry.py +7 -1
  253. holidays/utils.py +1 -1
  254. holidays/version.py +2 -2
  255. {holidays-0.71.dist-info → holidays-0.73.dist-info}/METADATA +66 -18
  256. {holidays-0.71.dist-info → holidays-0.73.dist-info}/RECORD +260 -239
  257. {holidays-0.71.dist-info → holidays-0.73.dist-info}/WHEEL +1 -1
  258. holidays-0.71.dist-info/licenses/AUTHORS.md → holidays-0.73.dist-info/licenses/CONTRIBUTORS +1 -2
  259. {holidays-0.71.dist-info → holidays-0.73.dist-info}/licenses/LICENSE +1 -1
  260. {holidays-0.71.dist-info → holidays-0.73.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
@@ -60,27 +60,45 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
60
60
 
61
61
  country = "CL"
62
62
  default_language = "es"
63
+ start_year = 1915
63
64
  subdivisions = (
64
- "AI",
65
- "AN",
66
- "AP",
67
- "AR",
68
- "AT",
69
- "BI",
70
- "CO",
71
- "LI",
72
- "LL",
73
- "LR",
74
- "MA",
75
- "ML",
76
- "NB",
77
- "RM",
78
- "TA",
79
- "VS",
65
+ "AI", # Aisén del General Carlos Ibañez del Campo.
66
+ "AN", # Antofagasta.
67
+ "AP", # Arica y Parinacota.
68
+ "AR", # La Araucanía.
69
+ "AT", # Atacama.
70
+ "BI", # Biobío.
71
+ "CO", # Coquimbo.
72
+ "LI", # Libertador General Bernardo O'Higgins.
73
+ "LL", # Los Lagos.
74
+ "LR", # Los Ríos.
75
+ "MA", # Magallanes.
76
+ "ML", # Maule.
77
+ "NB", # Ñuble.
78
+ "RM", # Región Metropolitana de Santiago.
79
+ "TA", # Tarapacá.
80
+ "VS", # Valparaíso.
80
81
  )
82
+ subdivisions_aliases = {
83
+ "Aisén del General Carlos Ibañez del Campo": "AI",
84
+ "Antofagasta": "AN",
85
+ "Arica y Parinacota": "AP",
86
+ "La Araucanía": "AR",
87
+ "Atacama": "AT",
88
+ "Biobío": "BI",
89
+ "Coquimbo": "CO",
90
+ "Libertador General Bernardo O'Higgins": "LI",
91
+ "Los Lagos": "LL",
92
+ "Los Ríos": "LR",
93
+ "Magallanes": "MA",
94
+ "Maule": "ML",
95
+ "Ñuble": "NB",
96
+ "Región Metropolitana de Santiago": "RM",
97
+ "Tarapacá": "TA",
98
+ "Valparaíso": "VS",
99
+ }
81
100
  supported_categories = (BANK, PUBLIC)
82
101
  supported_languages = ("en_US", "es", "uk")
83
- start_year = 1915
84
102
 
85
103
  def __init__(self, *args, **kwargs):
86
104
  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
@@ -0,0 +1,259 @@
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 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
17
+ from holidays.groups import (
18
+ ChristianHolidays,
19
+ InternationalHolidays,
20
+ IslamicHolidays,
21
+ StaticHolidays,
22
+ )
23
+ from holidays.observed_holiday_base import (
24
+ ObservedHolidayBase,
25
+ MON_TO_NEXT_TUE,
26
+ SAT_SUN_TO_NEXT_MON,
27
+ SAT_SUN_TO_NEXT_MON_TUE,
28
+ )
29
+
30
+
31
+ class CocosIslands(
32
+ ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
33
+ ):
34
+ """Cocos (Keeling) Islands holidays.
35
+
36
+ References:
37
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_the_Cocos_(Keeling)_Islands>
38
+ * <https://www.infrastructure.gov.au/territories-regions-cities/territories/indian-ocean-territories/community-bulletins>
39
+ * <https://www.infrastructure.gov.au/territories-regions-cities/territories/indian-ocean-territories/gazettes-bulletins>
40
+
41
+ * [2007](https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2006/02_2006_Public_Holidays_2007_CKI.doc)
42
+ * [2008](https://web.archive.org/web/20240718120923/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2007/06-2007_Public_Holidays_CKI.pdf)
43
+ * [2008 Eid al-Fitr](https://web.archive.org/web/20240331104649/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2008/03_2008_Observance_of_Hari_Raya_Puasa_2008.pdf)
44
+ * [2009](https://web.archive.org/web/20231208153529/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2008/01-2008-2009-public-holiday-CKI-gazette.pdf)
45
+ * [2010](https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2009/2009-Gazette_6-2009-CKI-Proclamation_of_2010_Special_Public_Bank_Holidays.pdf)
46
+ * [2013](https://web.archive.org/web/20240805055409/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2012/2012-Gazette_8-2012-CKI-Proclamation_of_2013_Public_Holidays_for_Cocos_(Keeling)_Islands.pdf)
47
+ * [2014](https://web.archive.org/web/20240718123844/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2013/2013-Gazette_3-2013-Cocos_K_Islands_2014_Public_Holidays.pdf)
48
+ * [2016](https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2015/2015-Gazette_4-2015-CKI-Proclamation_of_2016_Special_Public_Bank_Holidays.pdf)
49
+ * [2016 Eid al-Fitr](https://web.archive.org/web/20231208203746/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2016/2016-Gazette_3-2016-CKI-Proclamation_Special_Public_and_Bank_Holidays_2016.pdf)
50
+ * [2017](https://web.archive.org/web/20240303203132/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_gazette/files/2016/2016-Gazette_2-2016-CKI-Proclamation_Special_Public_and_Bank_Holidays_2017.pdf)
51
+ * [2019](https://web.archive.org/web/20241123131420/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_bulletins/2018/files/A38-2018.pdf)
52
+ * [2019 Act of Self Determination Day](https://web.archive.org/web/20220518200522/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_bulletins/2019/files/A10-2019-bank-holidays.pdf)
53
+ * [2020](https://web.archive.org/web/20240521203357/https://www.infrastructure.gov.au/sites/default/files/migrated/territories/indian_ocean/iot_bulletins/2019/files/A53-2019.pdf)
54
+ * [2021](https://web.archive.org/web/20250502204052/https://www.infrastructure.gov.au/territories-regions-cities/territories/indian_ocean/iot_bulletins/2020/A041-2020-cki-public-holidays)
55
+ * [2022](https://web.archive.org/web/20250429071240/https://www.infrastructure.gov.au/sites/default/files/documents/a33-2021-2022-public-holidays-cocos-keeling-islands.pdf)
56
+ * [2022 Eid al-Fitr](https://web.archive.org/web/20220810061351/https://www.infrastructure.gov.au/sites/default/files/documents/Gazette-Change-to-CKI-Hari-Raya-Puasa-2022.pdf)
57
+ * [2023](https://web.archive.org/web/20240711221156/https://www.infrastructure.gov.au/sites/default/files/documents/a19-2022-community-bulletin-2023-kings-birthday-cocos-keeling-islands.pdf)
58
+ * [2023 Eid al-Adha](https://web.archive.org/web/20240804112114/https://www.infrastructure.gov.au/sites/default/files/documents/a06-2023_community_bulletin_-_change_of_public_holiday_date_for_hari_raya_haji_2023.pdf)
59
+ * [2024](https://web.archive.org/web/20250207203100/https://www.infrastructure.gov.au/sites/default/files/documents/a12-2023-2024-public-holidays-cocos-k-islands.pdf)
60
+ * [2025](https://web.archive.org/web/20250413083314/https://www.infrastructure.gov.au/sites/default/files/documents/a21-2024-administrator-community-bulletin-cki-public-holidays-2025.pdf)
61
+ """
62
+
63
+ country = "CC"
64
+ default_language = "en_CC"
65
+ # %s (observed).
66
+ observed_label = tr("%s (observed)")
67
+ # %s (estimated).
68
+ estimated_label = tr("%s (estimated)")
69
+ # %s (observed, estimated).
70
+ observed_estimated_label = tr("%s (observed, estimated)")
71
+ supported_languages = ("coa_CC", "en_CC", "en_US")
72
+ # Act of Self Determination 1984.
73
+ start_year = 1985
74
+
75
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
76
+ """
77
+ Args:
78
+ islamic_show_estimated:
79
+ Whether to add "estimated" label to Islamic holidays name
80
+ if holiday date is estimated.
81
+ """
82
+ ChristianHolidays.__init__(self)
83
+ InternationalHolidays.__init__(self)
84
+ IslamicHolidays.__init__(
85
+ self, cls=CocosIslandsIslamicHolidays, show_estimated=islamic_show_estimated
86
+ )
87
+ StaticHolidays.__init__(self, CocosIslandsStaticHolidays)
88
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
89
+ super().__init__(*args, **kwargs)
90
+
91
+ def _populate_public_holidays(self):
92
+ # New Year's Day.
93
+ self._add_observed(self._add_new_years_day(tr("New Year's Day")))
94
+
95
+ # Australia Day.
96
+ self._add_observed(self._add_holiday_jan_26(tr("Australia Day")))
97
+
98
+ act_of_self_determination_dates = {
99
+ 2007: (APR, 5),
100
+ }
101
+ # Act of Self Determination Day.
102
+ name = tr("Act of Self Determination Day")
103
+ if self._year in act_of_self_determination_dates:
104
+ self._add_holiday(name, act_of_self_determination_dates[self._year])
105
+ else:
106
+ dt = self._add_holiday_apr_6(name)
107
+ if self._year != 2019:
108
+ self._add_observed(dt)
109
+
110
+ # Good Friday.
111
+ self._add_good_friday(tr("Good Friday"))
112
+
113
+ # Easter Monday.
114
+ self._add_easter_monday(tr("Easter Monday"))
115
+
116
+ # ANZAC Day.
117
+ self._add_observed(self._add_holiday_apr_25(tr("ANZAC Day")))
118
+
119
+ queens_kings_birthday_dates = {
120
+ 2021: (JUN, 7),
121
+ 2022: (JUN, 6),
122
+ 2023: (JUN, 6),
123
+ 2024: (JUN, 6),
124
+ }
125
+ name = (
126
+ # King's Birthday.
127
+ tr("King's Birthday")
128
+ if self._year >= 2023
129
+ # Queen's Birthday.
130
+ else tr("Queen's Birthday")
131
+ )
132
+ if self._year in queens_kings_birthday_dates:
133
+ self._add_holiday(name, queens_kings_birthday_dates[self._year])
134
+ else:
135
+ self._add_holiday_2nd_mon_of_jun(name)
136
+
137
+ # Placed before Christmas Day for proper observed calculation.
138
+ self._add_observed(
139
+ # Boxing Day.
140
+ self._add_christmas_day_two(tr("Boxing Day")),
141
+ rule=SAT_SUN_TO_NEXT_MON_TUE + MON_TO_NEXT_TUE,
142
+ )
143
+
144
+ # Christmas Day.
145
+ self._add_observed(self._add_christmas_day(tr("Christmas Day")))
146
+
147
+ # Islamic holidays.
148
+
149
+ if self._year <= 2019:
150
+ # Islamic New Year.
151
+ for dt in self._add_islamic_new_year_day(tr("Islamic New Year")):
152
+ self._add_observed(dt)
153
+
154
+ # Prophet's Birthday.
155
+ for dt in self._add_mawlid_day(tr("Prophet's Birthday")):
156
+ self._add_observed(dt)
157
+
158
+ # Eid al-Fitr.
159
+ for dt in self._add_eid_al_fitr_day(tr("Eid al-Fitr")):
160
+ self._add_observed(dt)
161
+
162
+ # Eid al-Adha.
163
+ for dt in self._add_eid_al_adha_day(tr("Eid al-Adha")):
164
+ if self._year != 2025:
165
+ self._add_observed(dt)
166
+
167
+
168
+ class CocosIslandsIslamicHolidays(_CustomIslamicHolidays):
169
+ EID_AL_ADHA_DATES = {
170
+ 2007: (DEC, 20),
171
+ 2008: (DEC, 8),
172
+ 2009: (NOV, 30),
173
+ 2010: (NOV, 16),
174
+ 2013: (OCT, 15),
175
+ 2014: (OCT, 4),
176
+ 2016: (SEP, 13),
177
+ 2017: (SEP, 1),
178
+ 2019: (AUG, 11),
179
+ 2020: (JUL, 31),
180
+ 2021: (JUL, 20),
181
+ 2022: (JUL, 9),
182
+ 2023: (JUN, 28),
183
+ 2024: (JUN, 17),
184
+ 2025: (JUN, 7),
185
+ }
186
+
187
+ EID_AL_FITR_DATES = {
188
+ 2007: (OCT, 15),
189
+ 2008: (OCT, 1),
190
+ 2009: (SEP, 21),
191
+ 2010: (SEP, 10),
192
+ 2013: (AUG, 8),
193
+ 2014: (JUL, 28),
194
+ 2016: (JUL, 6),
195
+ 2017: (JUN, 24),
196
+ 2019: (JUN, 5),
197
+ 2020: (MAY, 24),
198
+ 2021: (MAY, 13),
199
+ 2022: (MAY, 3),
200
+ 2023: (APR, 22),
201
+ 2024: (APR, 10),
202
+ 2025: (MAR, 31),
203
+ }
204
+
205
+ HIJRI_NEW_YEAR_DATES = {
206
+ 2007: (JAN, 22),
207
+ 2008: (JAN, 10),
208
+ 2009: (DEC, 18),
209
+ 2010: (DEC, 7),
210
+ 2013: (NOV, 4),
211
+ 2014: (OCT, 25),
212
+ 2016: (OCT, 3),
213
+ 2017: (SEP, 22),
214
+ 2019: (SEP, 1),
215
+ }
216
+
217
+ MAWLID_DATES = {
218
+ 2007: (APR, 2),
219
+ 2008: (MAR, 20),
220
+ 2009: (MAR, 9),
221
+ 2010: (FEB, 26),
222
+ 2013: (JAN, 24),
223
+ 2014: (JAN, 13),
224
+ 2016: (DEC, 12),
225
+ 2017: (DEC, 1),
226
+ 2019: (NOV, 9),
227
+ 2020: (OCT, 29),
228
+ 2021: (OCT, 19),
229
+ 2022: (OCT, 8),
230
+ 2023: (SEP, 27),
231
+ 2024: (SEP, 16),
232
+ 2025: (SEP, 5),
233
+ }
234
+
235
+
236
+ class CC(CocosIslands):
237
+ pass
238
+
239
+
240
+ class CCK(CocosIslands):
241
+ pass
242
+
243
+
244
+ class CocosIslandsStaticHolidays:
245
+ """Cocos (Keeling) Islands special holidays.
246
+
247
+ References:
248
+ * [National Day of Mourning 2022](https://web.archive.org/web/20240712213751/https://www.infrastructure.gov.au/sites/default/files/documents/04-2022-proclamation-cki-day-of-mourning.pdf)
249
+ """
250
+
251
+ special_public_holidays = {
252
+ # National Day of Mourning for Queen Elizabeth II.
253
+ 2022: (SEP, 22, tr("National Day of Mourning for Queen Elizabeth II")),
254
+ }
255
+
256
+ special_public_holidays_observed = {
257
+ 2019: (APR, 10, tr("Act of Self Determination Day")),
258
+ 2025: (JUN, 6, tr("Eid al-Adha")),
259
+ }
@@ -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
@@ -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
@@ -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
@@ -27,22 +27,23 @@ class ElSalvador(HolidayBase, ChristianHolidays, InternationalHolidays):
27
27
 
28
28
  country = "SV"
29
29
  default_language = "es"
30
- supported_languages = ("en_US", "es", "uk")
30
+ # Labor Code 1972.
31
+ start_year = 1973
31
32
  subdivisions = (
32
- "AH", # Ahuachapán
33
- "CA", # Cabañas
34
- "CH", # Chalatenango
35
- "CU", # Cuscatlán
36
- "LI", # La Libertad
37
- "MO", # Morazán
38
- "PA", # La Paz
39
- "SA", # Santa Ana
40
- "SM", # San Miguel
41
- "SO", # Sonsonate
42
- "SS", # San Salvador
43
- "SV", # San Vicente
44
- "UN", # La Unión
45
- "US", # Usulután
33
+ "AH", # Ahuachapán.
34
+ "CA", # Cabañas.
35
+ "CH", # Chalatenango.
36
+ "CU", # Cuscatlán.
37
+ "LI", # La Libertad.
38
+ "MO", # Morazán.
39
+ "PA", # La Paz.
40
+ "SA", # Santa Ana.
41
+ "SM", # San Miguel.
42
+ "SO", # Sonsonate.
43
+ "SS", # San Salvador.
44
+ "SV", # San Vicente.
45
+ "UN", # La Unión.
46
+ "US", # Usulután.
46
47
  )
47
48
  subdivisions_aliases = {
48
49
  "Ahuachapán": "AH",
@@ -60,8 +61,7 @@ class ElSalvador(HolidayBase, ChristianHolidays, InternationalHolidays):
60
61
  "La Unión": "UN",
61
62
  "Usulután": "US",
62
63
  }
63
- # Labor Code 1972.
64
- start_year = 1973
64
+ supported_languages = ("en_US", "es", "uk")
65
65
 
66
66
  def __init__(self, *args, **kwargs):
67
67
  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