holidays 0.76__py3-none-any.whl → 0.77__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.
- holidays/countries/__init__.py +19 -0
- holidays/countries/australia.py +6 -8
- holidays/countries/british_virgin_islands.py +6 -6
- holidays/countries/cabo_verde.py +293 -0
- holidays/countries/cayman_islands.py +162 -0
- holidays/countries/central_african_republic.py +143 -0
- holidays/countries/christmas_island.py +215 -0
- holidays/countries/cocos_islands.py +4 -4
- holidays/countries/dr_congo.py +139 -0
- holidays/countries/faroe_islands.py +102 -0
- holidays/countries/georgia.py +11 -5
- holidays/countries/gibraltar.py +219 -0
- holidays/countries/guernsey.py +6 -6
- holidays/countries/japan.py +6 -8
- holidays/countries/jersey.py +2 -2
- holidays/countries/lebanon.py +448 -0
- holidays/countries/mali.py +151 -0
- holidays/countries/montserrat.py +177 -0
- holidays/countries/nepal.py +8 -8
- holidays/countries/new_zealand.py +2 -2
- holidays/countries/niue.py +115 -0
- holidays/countries/norfolk_island.py +129 -0
- holidays/countries/palau.py +1 -1
- holidays/countries/palestine.py +177 -0
- holidays/countries/peru.py +12 -0
- holidays/countries/saint_vincent_and_the_grenadines.py +130 -0
- holidays/countries/seychelles.py +1 -1
- holidays/countries/solomon_islands.py +2 -2
- holidays/countries/tokelau.py +66 -0
- holidays/countries/turks_and_caicos_islands.py +2 -2
- holidays/countries/united_kingdom.py +2 -2
- holidays/countries/united_states.py +2 -5
- holidays/groups/christian.py +10 -10
- holidays/groups/hebrew.py +2 -2
- holidays/groups/islamic.py +17 -0
- holidays/holiday_base.py +1 -1
- holidays/locale/ar/LC_MESSAGES/LB.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/PS.mo +0 -0
- holidays/locale/da/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/de/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/en_CX/LC_MESSAGES/CX.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/GI.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/KY.mo +0 -0
- holidays/locale/en_MS/LC_MESSAGES/MS.mo +0 -0
- holidays/locale/en_NF/LC_MESSAGES/NF.mo +0 -0
- holidays/locale/en_NU/LC_MESSAGES/NU.mo +0 -0
- holidays/locale/en_TK/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CX.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LB.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ML.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VC.mo +0 -0
- holidays/locale/en_VC/LC_MESSAGES/VC.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/fo/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CD.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CF.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/ML.mo +0 -0
- holidays/locale/is/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/no/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/pt_CV/LC_MESSAGES/CV.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/FO.mo +0 -0
- holidays/locale/tkl/LC_MESSAGES/TK.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PE.mo +0 -0
- holidays/observed_holiday_base.py +3 -1
- holidays/registry.py +15 -0
- holidays/version.py +1 -1
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/METADATA +107 -2
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/RECORD +85 -32
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/licenses/CONTRIBUTORS +3 -0
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/WHEEL +0 -0
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.76.dist-info → holidays-0.77.dist-info}/top_level.txt +0 -0
holidays/countries/__init__.py
CHANGED
|
@@ -46,12 +46,16 @@ from holidays.countries.brunei import Brunei, BN, BRN
|
|
|
46
46
|
from holidays.countries.bulgaria import Bulgaria, BG, BLG
|
|
47
47
|
from holidays.countries.burkina_faso import BurkinaFaso, BF, BFA
|
|
48
48
|
from holidays.countries.burundi import Burundi, BI, BDI
|
|
49
|
+
from holidays.countries.cabo_verde import CaboVerde, CV, CPV
|
|
49
50
|
from holidays.countries.cambodia import Cambodia, KH, KHM
|
|
50
51
|
from holidays.countries.cameroon import Cameroon, CM, CMR
|
|
51
52
|
from holidays.countries.canada import Canada, CA, CAN
|
|
53
|
+
from holidays.countries.cayman_islands import CaymanIslands, KY, CYM
|
|
54
|
+
from holidays.countries.central_african_republic import CentralAfricanRepublic, CF, CAF
|
|
52
55
|
from holidays.countries.chad import Chad, TD, TCD
|
|
53
56
|
from holidays.countries.chile import Chile, CL, CHL
|
|
54
57
|
from holidays.countries.china import China, CN, CHN
|
|
58
|
+
from holidays.countries.christmas_island import ChristmasIsland, CX, CXR
|
|
55
59
|
from holidays.countries.cocos_islands import CocosIslands, CC, CCK
|
|
56
60
|
from holidays.countries.colombia import Colombia, CO, COL
|
|
57
61
|
from holidays.countries.congo import Congo, CG, COG
|
|
@@ -66,6 +70,7 @@ from holidays.countries.denmark import Denmark, DK, DNK
|
|
|
66
70
|
from holidays.countries.djibouti import Djibouti, DJ, DJI
|
|
67
71
|
from holidays.countries.dominica import Dominica, DM, DMA
|
|
68
72
|
from holidays.countries.dominican_republic import DominicanRepublic, DO, DOM
|
|
73
|
+
from holidays.countries.dr_congo import DRCongo, CD, COD
|
|
69
74
|
from holidays.countries.ecuador import Ecuador, EC, ECU
|
|
70
75
|
from holidays.countries.egypt import Egypt, EG, EGY
|
|
71
76
|
from holidays.countries.el_salvador import ElSalvador, SV, SLV
|
|
@@ -74,6 +79,7 @@ from holidays.countries.estonia import Estonia, EE, EST
|
|
|
74
79
|
from holidays.countries.eswatini import Eswatini, SZ, SZW, Swaziland
|
|
75
80
|
from holidays.countries.ethiopia import Ethiopia, ET, ETH
|
|
76
81
|
from holidays.countries.falkland_islands import FalklandIslands, FK, FLK
|
|
82
|
+
from holidays.countries.faroe_islands import FaroeIslands, FO, FRO
|
|
77
83
|
from holidays.countries.fiji import Fiji, FJ, FJI
|
|
78
84
|
from holidays.countries.finland import Finland, FI, FIN
|
|
79
85
|
from holidays.countries.france import France, FR, FRA
|
|
@@ -89,6 +95,7 @@ from holidays.countries.gabon import Gabon, GA, GAB
|
|
|
89
95
|
from holidays.countries.georgia import Georgia, GE, GEO
|
|
90
96
|
from holidays.countries.germany import Germany, DE, DEU
|
|
91
97
|
from holidays.countries.ghana import Ghana, GH, GHA
|
|
98
|
+
from holidays.countries.gibraltar import Gibraltar, GI, GIB
|
|
92
99
|
from holidays.countries.greece import Greece, GR, GRC
|
|
93
100
|
from holidays.countries.greenland import Greenland, GL, GRL
|
|
94
101
|
from holidays.countries.grenada import Grenada, GD, GRD
|
|
@@ -121,6 +128,7 @@ from holidays.countries.kuwait import Kuwait, KW, KWT
|
|
|
121
128
|
from holidays.countries.kyrgyzstan import Kyrgyzstan, KG, KGZ
|
|
122
129
|
from holidays.countries.laos import Laos, LA, LAO
|
|
123
130
|
from holidays.countries.latvia import Latvia, LV, LVA
|
|
131
|
+
from holidays.countries.lebanon import Lebanon, LB, LBN
|
|
124
132
|
from holidays.countries.lesotho import Lesotho, LS, LSO
|
|
125
133
|
from holidays.countries.libya import Libya, LY, LBY
|
|
126
134
|
from holidays.countries.liechtenstein import Liechtenstein, LI, LIE
|
|
@@ -131,6 +139,7 @@ from holidays.countries.madagascar import Madagascar, MG, MDG
|
|
|
131
139
|
from holidays.countries.malawi import Malawi, MW, MWI
|
|
132
140
|
from holidays.countries.malaysia import Malaysia, MY, MYS
|
|
133
141
|
from holidays.countries.maldives import Maldives, MV, MDV
|
|
142
|
+
from holidays.countries.mali import Mali, ML, MLI
|
|
134
143
|
from holidays.countries.malta import Malta, MT, MLT
|
|
135
144
|
from holidays.countries.marshall_islands import MarshallIslands, MH, MHL, HolidaysMH
|
|
136
145
|
from holidays.countries.martinique import Martinique, MQ, MTQ, HolidaysMQ
|
|
@@ -143,6 +152,7 @@ from holidays.countries.moldova import Moldova, MD, MDA
|
|
|
143
152
|
from holidays.countries.monaco import Monaco, MC, MCO
|
|
144
153
|
from holidays.countries.mongolia import Mongolia, MN, MNG
|
|
145
154
|
from holidays.countries.montenegro import Montenegro, ME, MNE
|
|
155
|
+
from holidays.countries.montserrat import Montserrat, MS, MSR
|
|
146
156
|
from holidays.countries.morocco import Morocco, MA, MOR
|
|
147
157
|
from holidays.countries.mozambique import Mozambique, MZ, MOZ
|
|
148
158
|
from holidays.countries.namibia import Namibia, NA, NAM
|
|
@@ -154,12 +164,15 @@ from holidays.countries.new_zealand import NewZealand, NZ, NZL
|
|
|
154
164
|
from holidays.countries.nicaragua import Nicaragua, NI, NIC
|
|
155
165
|
from holidays.countries.niger import Niger, NE, NER
|
|
156
166
|
from holidays.countries.nigeria import Nigeria, NG, NGA
|
|
167
|
+
from holidays.countries.niue import Niue, NU, NIU
|
|
168
|
+
from holidays.countries.norfolk_island import NorfolkIsland, NF, NFK
|
|
157
169
|
from holidays.countries.north_macedonia import NorthMacedonia, MK, MKD
|
|
158
170
|
from holidays.countries.northern_mariana_islands import NorthernMarianaIslands, MP, MNP, HolidaysMP
|
|
159
171
|
from holidays.countries.norway import Norway, NO, NOR
|
|
160
172
|
from holidays.countries.oman import Oman, OM, OMN
|
|
161
173
|
from holidays.countries.pakistan import Pakistan, PK, PAK
|
|
162
174
|
from holidays.countries.palau import Palau, PW, PLW
|
|
175
|
+
from holidays.countries.palestine import Palestine, PS, PSE
|
|
163
176
|
from holidays.countries.panama import Panama, PA, PAN
|
|
164
177
|
from holidays.countries.papua_new_guinea import PapuaNewGuinea, PG, PNG
|
|
165
178
|
from holidays.countries.paraguay import Paraguay, PY, PRY
|
|
@@ -182,6 +195,11 @@ from holidays.countries.saint_pierre_and_miquelon import (
|
|
|
182
195
|
SPM,
|
|
183
196
|
HolidaysPM,
|
|
184
197
|
)
|
|
198
|
+
from holidays.countries.saint_vincent_and_the_grenadines import (
|
|
199
|
+
SaintVincentAndTheGrenadines,
|
|
200
|
+
VC,
|
|
201
|
+
VCT,
|
|
202
|
+
)
|
|
185
203
|
from holidays.countries.samoa import Samoa, WS, WSM
|
|
186
204
|
from holidays.countries.san_marino import SanMarino, SM, SMR
|
|
187
205
|
from holidays.countries.sao_tome_and_principe import SaoTomeAndPrincipe, ST, STP
|
|
@@ -208,6 +226,7 @@ from holidays.countries.tanzania import Tanzania, TZ, TZA
|
|
|
208
226
|
from holidays.countries.thailand import Thailand, TH, THA
|
|
209
227
|
from holidays.countries.timor_leste import TimorLeste, TL, TLS
|
|
210
228
|
from holidays.countries.togo import Togo, TG, TGO
|
|
229
|
+
from holidays.countries.tokelau import Tokelau, TK, TKL
|
|
211
230
|
from holidays.countries.tonga import Tonga, TO, TON
|
|
212
231
|
from holidays.countries.trinidad_and_tobago import TrinidadAndTobago, TT, TTO
|
|
213
232
|
from holidays.countries.tunisia import Tunisia, TN, TUN
|
holidays/countries/australia.py
CHANGED
|
@@ -529,8 +529,8 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
529
529
|
}
|
|
530
530
|
# The Royal Queensland Show.
|
|
531
531
|
name = tr("The Royal Queensland Show")
|
|
532
|
-
if self._year
|
|
533
|
-
self._add_holiday(name,
|
|
532
|
+
if dt := ekka_dates.get(self._year):
|
|
533
|
+
self._add_holiday(name, dt)
|
|
534
534
|
else:
|
|
535
535
|
# [1st FRI after Aug 5] + 5 days = [1st WED after Aug 10]
|
|
536
536
|
self._add_holiday_1st_wed_from_aug_10(name)
|
|
@@ -839,8 +839,8 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
839
839
|
}
|
|
840
840
|
# Grand Final Day.
|
|
841
841
|
name = tr("Grand Final Day")
|
|
842
|
-
if self._year
|
|
843
|
-
self._add_holiday(name,
|
|
842
|
+
if dt := grand_final_dates.get(self._year):
|
|
843
|
+
self._add_holiday(name, dt)
|
|
844
844
|
else:
|
|
845
845
|
self._add_holiday_1_day_prior_last_sat_of_sep(name)
|
|
846
846
|
|
|
@@ -937,10 +937,8 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
|
|
|
937
937
|
2012: (OCT, 1),
|
|
938
938
|
2024: (SEP, 23),
|
|
939
939
|
}
|
|
940
|
-
if self._year
|
|
941
|
-
self._add_holiday(
|
|
942
|
-
self.sovereign_birthday, sovereign_birthday_dates[self._year]
|
|
943
|
-
)
|
|
940
|
+
if dt := sovereign_birthday_dates.get(self._year):
|
|
941
|
+
self._add_holiday(self.sovereign_birthday, dt)
|
|
944
942
|
else:
|
|
945
943
|
self._add_holiday_last_mon_of_sep(self.sovereign_birthday)
|
|
946
944
|
else:
|
|
@@ -89,8 +89,8 @@ class BritishVirginIslands(
|
|
|
89
89
|
2019: (JUN, 7),
|
|
90
90
|
2023: (JUN, 16),
|
|
91
91
|
}
|
|
92
|
-
if self._year
|
|
93
|
-
self._add_holiday(name,
|
|
92
|
+
if dt := sovereign_birthday_dates.get(self._year):
|
|
93
|
+
self._add_holiday(name, dt)
|
|
94
94
|
else:
|
|
95
95
|
self._add_holiday_2nd_fri_of_jun(name)
|
|
96
96
|
else:
|
|
@@ -110,8 +110,8 @@ class BritishVirginIslands(
|
|
|
110
110
|
2015: (JUN, 29),
|
|
111
111
|
2020: (JUN, 29),
|
|
112
112
|
}
|
|
113
|
-
if self._year
|
|
114
|
-
self._add_holiday(name,
|
|
113
|
+
if dt := territory_day_dates.get(self._year):
|
|
114
|
+
self._add_holiday(name, dt)
|
|
115
115
|
else:
|
|
116
116
|
if self._year >= 2021:
|
|
117
117
|
self._add_holiday_1st_mon_of_jul(name)
|
|
@@ -151,8 +151,8 @@ class BritishVirginIslands(
|
|
|
151
151
|
2015: (OCT, 19),
|
|
152
152
|
2020: (OCT, 23),
|
|
153
153
|
}
|
|
154
|
-
if self._year
|
|
155
|
-
self._add_holiday(name,
|
|
154
|
+
if dt := saint_ursula_dates.get(self._year):
|
|
155
|
+
self._add_holiday(name, dt)
|
|
156
156
|
else:
|
|
157
157
|
self._add_observed(
|
|
158
158
|
self._add_holiday_oct_21(name), rule=SAT_TO_PREV_FRI + SUN_TO_NEXT_MON
|
|
@@ -0,0 +1,293 @@
|
|
|
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.constants import OPTIONAL, PUBLIC
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class CaboVerde(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
21
|
+
"""Cabo Verde holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* [Public holidays in Cape Verde](https://en.wikipedia.org/wiki/Public_holidays_in_Cape_Verde)
|
|
25
|
+
* [Legislação Municipal Cabo-Verdiana](https://web.archive.org/web/20180820172827/http://www.interface.gov.cv/index.php?option=com_docman&task=doc_download&gid=12&Itemid=314)
|
|
26
|
+
* [Feriados Bancários - Banco de Cabo Verde](https://web.archive.org/web/20250629042854/https://www.bcv.cv/pt/SistemadePagamentos/feriados_bancarios/Paginas/FeriadosBancarios.aspx)
|
|
27
|
+
* [Feriados Públicos - Feel Cabo Verde](https://web.archive.org/web/20250419201823/https://feelcaboverde.com/feriados-publicos/)
|
|
28
|
+
* [Public Holidays - Feel Cape Verde](https://web.archive.org/web/20250419202739/https://feelcaboverde.com/en/public-holidays-cape-verde/)
|
|
29
|
+
* [Democracy Day](https://web.archive.org/web/20250420093850/https://cmsv.cv/dia-da-liberdade-e-democracia-de-cabo-verde/)
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
country = "CV"
|
|
33
|
+
default_language = "pt_CV"
|
|
34
|
+
start_year = 1976
|
|
35
|
+
subdivisions = (
|
|
36
|
+
"BR", # Brava.
|
|
37
|
+
"BV", # Boa Vista.
|
|
38
|
+
"CA", # Santa Catarina.
|
|
39
|
+
"CF", # Santa Catarina do Fogo.
|
|
40
|
+
"CR", # Santa Cruz.
|
|
41
|
+
"MA", # Maio.
|
|
42
|
+
"MO", # Mosteiros.
|
|
43
|
+
"PA", # Paul.
|
|
44
|
+
"PN", # Porto Novo.
|
|
45
|
+
"PR", # Praia.
|
|
46
|
+
"RB", # Ribeira Brava
|
|
47
|
+
"RG", # Ribeira Grande.
|
|
48
|
+
"RS", # Ribeira Grande de Santiago.
|
|
49
|
+
"SD", # São Domingos.
|
|
50
|
+
"SF", # São Filipe.
|
|
51
|
+
"SL", # Sal.
|
|
52
|
+
"SM", # São Miguel.
|
|
53
|
+
"SO", # São Lourenço dos Órgãos.
|
|
54
|
+
"SS", # São Salvador do Mundo.
|
|
55
|
+
"SV", # São Vicente.
|
|
56
|
+
"TA", # Tarrafal.
|
|
57
|
+
"TS", # Tarrafal de São Nicolau.
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
subdivisions_aliases = {
|
|
61
|
+
"Brava": "BR",
|
|
62
|
+
"Boa Vista": "BV",
|
|
63
|
+
"Santa Catarina": "CA",
|
|
64
|
+
"Santa Catarina do Fogo": "CF",
|
|
65
|
+
"Santa Cruz": "CR",
|
|
66
|
+
"Maio": "MA",
|
|
67
|
+
"Mosteiros": "MO",
|
|
68
|
+
"Paul": "PA",
|
|
69
|
+
"Porto Novo": "PN",
|
|
70
|
+
"Praia": "PR",
|
|
71
|
+
"Ribeira Brava": "RB",
|
|
72
|
+
"Ribeira Grande": "RG",
|
|
73
|
+
"Ribeira Grande de Santiago": "RS",
|
|
74
|
+
"São Domingos": "SD",
|
|
75
|
+
"São Filipe": "SF",
|
|
76
|
+
"Sal": "SL",
|
|
77
|
+
"São Miguel": "SM",
|
|
78
|
+
"São Lourenço dos Órgãos": "SO",
|
|
79
|
+
"São Salvador do Mundo": "SS",
|
|
80
|
+
"São Vicente": "SV",
|
|
81
|
+
"Tarrafal": "TA",
|
|
82
|
+
"Tarrafal de São Nicolau": "TS",
|
|
83
|
+
}
|
|
84
|
+
supported_categories = (OPTIONAL, PUBLIC)
|
|
85
|
+
supported_languages = ("de", "en_US", "es", "fr", "pt_CV")
|
|
86
|
+
|
|
87
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
88
|
+
ChristianHolidays.__init__(self)
|
|
89
|
+
InternationalHolidays.__init__(self)
|
|
90
|
+
super().__init__(*args, **kwargs)
|
|
91
|
+
|
|
92
|
+
def _populate_public_holidays(self):
|
|
93
|
+
# New Year's Day.
|
|
94
|
+
self._add_new_years_day(tr("Ano Novo"))
|
|
95
|
+
|
|
96
|
+
# Law # 95/V/99 of March 22nd.
|
|
97
|
+
if self._year >= 2000:
|
|
98
|
+
# Democracy and Freedom Day.
|
|
99
|
+
self._add_holiday_jan_13(tr("Dia da Liberdade e da Democracia"))
|
|
100
|
+
|
|
101
|
+
# National Heroes Day.
|
|
102
|
+
self._add_holiday_jan_20(tr("Dia da Nacionalidade e dos Heróis Nacionais"))
|
|
103
|
+
|
|
104
|
+
# Ash Wednesday.
|
|
105
|
+
self._add_ash_wednesday(tr("Quarta-feira de Cinzas"))
|
|
106
|
+
|
|
107
|
+
# Good Friday.
|
|
108
|
+
self._add_good_friday(tr("Sexta-feira Santa"))
|
|
109
|
+
|
|
110
|
+
# Easter Sunday.
|
|
111
|
+
self._add_easter_sunday(tr("Páscoa"))
|
|
112
|
+
|
|
113
|
+
# Worker's Day.
|
|
114
|
+
self._add_labor_day(tr("Dia do Trabalhador"))
|
|
115
|
+
|
|
116
|
+
# Law # 69/VI/2005 of May 31st.
|
|
117
|
+
if self._year >= 2005:
|
|
118
|
+
# International Children's Day.
|
|
119
|
+
self._add_childrens_day(tr("Dia Mundial da Criança"))
|
|
120
|
+
|
|
121
|
+
# Independence Day.
|
|
122
|
+
self._add_holiday_jul_5(tr("Dia da Independência Nacional"))
|
|
123
|
+
|
|
124
|
+
# Assumption Day.
|
|
125
|
+
self._add_assumption_of_mary_day(tr("Dia da Assunção"))
|
|
126
|
+
|
|
127
|
+
# All Saints' Day.
|
|
128
|
+
self._add_all_saints_day(tr("Dia de Todos os Santos"))
|
|
129
|
+
|
|
130
|
+
# Christmas Day.
|
|
131
|
+
self._add_christmas_day(tr("Dia do Natal"))
|
|
132
|
+
|
|
133
|
+
def _populate_optional_holidays(self):
|
|
134
|
+
# Holy Thursday.
|
|
135
|
+
self._add_holy_thursday(tr("Quinta-Feira Santa"))
|
|
136
|
+
|
|
137
|
+
# Mother's Day.
|
|
138
|
+
self._add_holiday_2nd_sun_of_may(tr("Dia das Mães"))
|
|
139
|
+
|
|
140
|
+
# Father's Day.
|
|
141
|
+
self._add_holiday_3rd_sun_of_jun(tr("Dia dos Pais"))
|
|
142
|
+
|
|
143
|
+
def _populate_subdiv_br_public_holidays(self):
|
|
144
|
+
# Law # 93/82 of November 6th.
|
|
145
|
+
if self._year >= 1983:
|
|
146
|
+
# Brava Municipality Day.
|
|
147
|
+
self._add_holiday_jun_24(tr("Dia do Município da Brava"))
|
|
148
|
+
|
|
149
|
+
def _populate_subdiv_bv_public_holidays(self):
|
|
150
|
+
# Law # 93/82 of November 6th.
|
|
151
|
+
if self._year >= 1983:
|
|
152
|
+
# Boa Vista Municipality Day.
|
|
153
|
+
self._add_holiday_jul_4(tr("Dia do Município da Boa Vista"))
|
|
154
|
+
|
|
155
|
+
def _populate_subdiv_ca_public_holidays(self):
|
|
156
|
+
# Law # 93/82 of November 6th.
|
|
157
|
+
if self._year >= 1982:
|
|
158
|
+
# Santa Catarina de Santiago Municipality Day.
|
|
159
|
+
self._add_holiday_nov_25(tr("Dia do Município de Santa Catarina de Santiago"))
|
|
160
|
+
|
|
161
|
+
def _populate_subdiv_cf_public_holidays(self):
|
|
162
|
+
# Law # 66/VI/2005 of May 9th.
|
|
163
|
+
if self._year >= 2005:
|
|
164
|
+
# Santa Catarina do Fogo Municipality Day.
|
|
165
|
+
self._add_holiday_nov_25(tr("Dia do Município de Santa Catarina do Fogo"))
|
|
166
|
+
|
|
167
|
+
def _populate_subdiv_cr_public_holidays(self):
|
|
168
|
+
# Law # 93/82 of November 6th.
|
|
169
|
+
if self._year >= 1983:
|
|
170
|
+
# Santa Cruz Municipality Day.
|
|
171
|
+
self._add_holiday_jul_25(tr("Dia do Município de Santa Cruz"))
|
|
172
|
+
|
|
173
|
+
def _populate_subdiv_ma_public_holidays(self):
|
|
174
|
+
# Law # 93/82 of November 6th.
|
|
175
|
+
if self._year >= 1983:
|
|
176
|
+
# Maio Municipality Day.
|
|
177
|
+
self._add_holiday_sep_8(tr("Dia do Município do Maio"))
|
|
178
|
+
|
|
179
|
+
def _populate_subdiv_mo_public_holidays(self):
|
|
180
|
+
# Law # 23/IV/91 of December 30th.
|
|
181
|
+
if self._year >= 1992:
|
|
182
|
+
# Mosteiros Municipality Day.
|
|
183
|
+
self._add_holiday_aug_15(tr("Dia do Município dos Mosteiros"))
|
|
184
|
+
|
|
185
|
+
def _populate_subdiv_pa_public_holidays(self):
|
|
186
|
+
# Law # 93/82 of November 6th.
|
|
187
|
+
if self._year >= 1983:
|
|
188
|
+
# Santo Antão Island Day.
|
|
189
|
+
self._add_holiday_jan_17(tr("Dia da Ilha de Santo Antão"))
|
|
190
|
+
|
|
191
|
+
# Paúl Municipality Day.
|
|
192
|
+
self._add_holiday_jun_13(tr("Dia do Município do Paúl"))
|
|
193
|
+
|
|
194
|
+
def _populate_subdiv_pn_public_holidays(self):
|
|
195
|
+
# Law # 93/82 of November 6th.
|
|
196
|
+
if self._year >= 1983:
|
|
197
|
+
# Santo Antão Island Day.
|
|
198
|
+
self._add_holiday_jan_17(tr("Dia da Ilha de Santo Antão"))
|
|
199
|
+
|
|
200
|
+
# Porto Novo Municipality Day.
|
|
201
|
+
self._add_holiday_sep_2(tr("Dia do Município do Porto Novo"))
|
|
202
|
+
|
|
203
|
+
def _populate_subdiv_pr_public_holidays(self):
|
|
204
|
+
# Law # 93/82 of November 6th.
|
|
205
|
+
if self._year >= 1983:
|
|
206
|
+
# Praia Municipality Day.
|
|
207
|
+
self._add_holiday_may_19(tr("Dia do Município da Praia"))
|
|
208
|
+
|
|
209
|
+
def _populate_subdiv_rb_public_holidays(self):
|
|
210
|
+
# Law # 67/VI/2005 of May 9th.
|
|
211
|
+
if self._year >= 2005:
|
|
212
|
+
# Ribeira Brava Municipality Day.
|
|
213
|
+
self._add_holiday_dec_6(tr("Dia do Município de Ribeira Brava"))
|
|
214
|
+
|
|
215
|
+
def _populate_subdiv_rg_public_holidays(self):
|
|
216
|
+
# Law # 93/82 of November 6th.
|
|
217
|
+
if self._year >= 1983:
|
|
218
|
+
# Santo Antão Island Day.
|
|
219
|
+
self._add_holiday_jan_17(tr("Dia da Ilha de Santo Antão"))
|
|
220
|
+
|
|
221
|
+
# Ribeira Grande Municipality Day.
|
|
222
|
+
self._add_holiday_may_7(tr("Dia do Município de Ribeira Grande"))
|
|
223
|
+
|
|
224
|
+
def _populate_subdiv_rs_public_holidays(self):
|
|
225
|
+
# Law # 63/VI/2005 of May 9th.
|
|
226
|
+
if self._year >= 2006:
|
|
227
|
+
# Ribeira Grande de Santiago Municipality Day.
|
|
228
|
+
self._add_holiday_jan_31(tr("Dia do Município de Ribeira Grande de Santiago"))
|
|
229
|
+
|
|
230
|
+
def _populate_subdiv_sd_public_holidays(self):
|
|
231
|
+
# Law # 96/IV/93 of December 31st.
|
|
232
|
+
if self._year >= 1994:
|
|
233
|
+
# São Domingos Municipality Day.
|
|
234
|
+
self._add_holiday_mar_13(tr("Dia do Município de São Domingos"))
|
|
235
|
+
|
|
236
|
+
def _populate_subdiv_sf_public_holidays(self):
|
|
237
|
+
# Law # 23/IV/91 of December 30th.
|
|
238
|
+
if self._year >= 1992:
|
|
239
|
+
# São Filipe Municipality Day.
|
|
240
|
+
self._add_holiday_may_1(tr("Dia do Município de São Filipe"))
|
|
241
|
+
|
|
242
|
+
def _populate_subdiv_sl_public_holidays(self):
|
|
243
|
+
# Law # 93/82 of November 6th.
|
|
244
|
+
if self._year >= 1983:
|
|
245
|
+
# Sal Municipality Day.
|
|
246
|
+
self._add_holiday_sep_15(tr("Dia do Município do Sal"))
|
|
247
|
+
|
|
248
|
+
def _populate_subdiv_sm_public_holidays(self):
|
|
249
|
+
# Law # 11/V/96 of November 11th.
|
|
250
|
+
if self._year >= 1997:
|
|
251
|
+
# São Miguel Municipality Day.
|
|
252
|
+
self._add_holiday_sep_29(tr("Dia do Município de São Miguel"))
|
|
253
|
+
|
|
254
|
+
def _populate_subdiv_so_public_holidays(self):
|
|
255
|
+
# Law # 64/VI/2005 of May 9th.
|
|
256
|
+
if self._year >= 2005:
|
|
257
|
+
# São Lourenço dos Órgãos Municipality Day.
|
|
258
|
+
self._add_holiday_may_9(tr("Dia do Município de São Lourenço dos Órgãos"))
|
|
259
|
+
|
|
260
|
+
def _populate_subdiv_ss_public_holidays(self):
|
|
261
|
+
# Law # 65/VI/2005 of May 9th.
|
|
262
|
+
if self._year >= 2005:
|
|
263
|
+
# São Salvador do Mundo Municipality Day.
|
|
264
|
+
self._add_holiday_jul_19(tr("Dia do Município de São Salvador do Mundo"))
|
|
265
|
+
|
|
266
|
+
def _populate_subdiv_sv_public_holidays(self):
|
|
267
|
+
# Law # 93/82 of November 6th.
|
|
268
|
+
if self._year >= 1983:
|
|
269
|
+
# São Vicente Municipality Day.
|
|
270
|
+
self._add_holiday_jan_22(tr("Dia do Município de São Vicente"))
|
|
271
|
+
|
|
272
|
+
# Carnival Tuesday.
|
|
273
|
+
self._add_carnival_tuesday(tr("Terça-feira de Carnaval"))
|
|
274
|
+
|
|
275
|
+
def _populate_subdiv_ta_public_holidays(self):
|
|
276
|
+
# Law # 93/82 of November 6th.
|
|
277
|
+
if self._year >= 1983:
|
|
278
|
+
# Tarrafal de Santiago Municipality Day.
|
|
279
|
+
self._add_holiday_jan_15(tr("Dia do Município do Tarrafal de Santiago"))
|
|
280
|
+
|
|
281
|
+
def _populate_subdiv_ts_public_holidays(self):
|
|
282
|
+
# Law # 67/VI/2005 of May 9th.
|
|
283
|
+
if self._year >= 2005:
|
|
284
|
+
# Tarrafal de São Nicolau Municipality Day.
|
|
285
|
+
self._add_holiday_aug_2(tr("Dia do Município do Tarrafal de São Nicolau"))
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
class CV(CaboVerde):
|
|
289
|
+
pass
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class CPV(CaboVerde):
|
|
293
|
+
pass
|
|
@@ -0,0 +1,162 @@
|
|
|
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 import APR, MAY, JUN, JUL, SEP, NOV, DEC
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
17
|
+
from holidays.observed_holiday_base import (
|
|
18
|
+
ObservedHolidayBase,
|
|
19
|
+
SAT_SUN_TO_NEXT_MON,
|
|
20
|
+
SAT_SUN_TO_NEXT_MON_TUE,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class CaymanIslands(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
25
|
+
"""Cayman Islands holidays.
|
|
26
|
+
|
|
27
|
+
References:
|
|
28
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_the_Cayman_Islands>
|
|
29
|
+
* [Public Holidays Law (2007 Revision)](https://web.archive.org/web/20250227060525/https://legislation.gov.ky/cms/images/LEGISLATION/PRINCIPAL/1964/1964-0140/PublicHolidaysAct_2007%20Revision_g.pdf)
|
|
30
|
+
* [Public Holidays Order, 2024](https://web.archive.org/web/20240518181823/https://legislation.gov.ky/cms/images/LEGISLATION/AMENDING/2024/2024-O004/PublicHolidaysOrder2024SL4of2024.pdf)
|
|
31
|
+
* [2006-2015](https://web.archive.org/web/20151014061601/http://www.gov.ky/portal/page?_pageid=1142,1592653&_dad=portal&_schema=PORTAL)
|
|
32
|
+
* [2016-2018](https://web.archive.org/web/20180330170202/http://www.gov.ky:80/portal/page/portal/cighome/cayman/islands/publicholidays)
|
|
33
|
+
* [2021](http://archive.today/2025.07.09-033240/https://www.gov.ky/news/press-release-details/public-holidays-for-2021)
|
|
34
|
+
* [2022](http://archive.today/2025.07.09-033515/https://www.gov.ky/news/press-release-details/public-holidays-2022)
|
|
35
|
+
* [2024](http://archive.today/2025.01.06-110234/https://www.gov.ky/calendar/public-holidays)
|
|
36
|
+
* [2025](http://archive.today/2025.07.09-033853/https://www.gov.ky/calendar/public-holidays)
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
country = "KY"
|
|
40
|
+
default_language = "en_GB"
|
|
41
|
+
# %s observed.
|
|
42
|
+
observed_label = tr("%s (observed)")
|
|
43
|
+
# Earliest year of holidays with an accessible online record.
|
|
44
|
+
start_year = 2006
|
|
45
|
+
supported_languages = ("en_GB", "en_US")
|
|
46
|
+
|
|
47
|
+
def __init__(self, *args, **kwargs):
|
|
48
|
+
ChristianHolidays.__init__(self)
|
|
49
|
+
InternationalHolidays.__init__(self)
|
|
50
|
+
StaticHolidays.__init__(self, cls=CaymanIslandsStaticHolidays)
|
|
51
|
+
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
|
|
52
|
+
super().__init__(*args, **kwargs)
|
|
53
|
+
|
|
54
|
+
def _populate_public_holidays(self):
|
|
55
|
+
# New Year's Day.
|
|
56
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")))
|
|
57
|
+
|
|
58
|
+
# National Heroes Day.
|
|
59
|
+
self._add_holiday_4th_mon_of_jan(tr("National Heroes Day"))
|
|
60
|
+
|
|
61
|
+
# Ash Wednesday.
|
|
62
|
+
self._add_ash_wednesday(tr("Ash Wednesday"))
|
|
63
|
+
|
|
64
|
+
# Good Friday.
|
|
65
|
+
self._add_good_friday(tr("Good Friday"))
|
|
66
|
+
|
|
67
|
+
# Easter Monday.
|
|
68
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
69
|
+
|
|
70
|
+
if self._year >= 2024:
|
|
71
|
+
# Emancipation Day.
|
|
72
|
+
self._add_holiday_1st_mon_of_may(tr("Emancipation Day"))
|
|
73
|
+
|
|
74
|
+
# Discovery Day.
|
|
75
|
+
self._add_holiday_3rd_mon_of_may(tr("Discovery Day"))
|
|
76
|
+
|
|
77
|
+
if self._year <= 2022:
|
|
78
|
+
queens_birthday_dates = {
|
|
79
|
+
2007: (JUN, 18),
|
|
80
|
+
2012: (JUN, 18),
|
|
81
|
+
2013: (JUN, 17),
|
|
82
|
+
2017: (JUN, 19),
|
|
83
|
+
2022: (JUN, 6),
|
|
84
|
+
}
|
|
85
|
+
# Queen's Birthday.
|
|
86
|
+
name = tr("Queen's Birthday")
|
|
87
|
+
if dt := queens_birthday_dates.get(self._year):
|
|
88
|
+
self._add_holiday(name, dt)
|
|
89
|
+
else:
|
|
90
|
+
self._add_holiday_2_days_past_2nd_sat_of_jun(name)
|
|
91
|
+
else:
|
|
92
|
+
# King's Birthday.
|
|
93
|
+
self._add_holiday_2_days_past_3rd_sat_of_jun(tr("King's Birthday"))
|
|
94
|
+
|
|
95
|
+
# Constitution Day.
|
|
96
|
+
self._add_holiday_1st_mon_of_jul(tr("Constitution Day"))
|
|
97
|
+
|
|
98
|
+
# Remembrance Day.
|
|
99
|
+
self._add_holiday_2nd_mon_of_nov(tr("Remembrance Day"))
|
|
100
|
+
|
|
101
|
+
self._add_observed(
|
|
102
|
+
# Christmas Day.
|
|
103
|
+
self._add_christmas_day(tr("Christmas Day")),
|
|
104
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
self._add_observed(
|
|
108
|
+
# Boxing Day.
|
|
109
|
+
self._add_christmas_day_two(tr("Boxing Day")),
|
|
110
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE,
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class KY(CaymanIslands):
|
|
115
|
+
pass
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class CYM(CaymanIslands):
|
|
119
|
+
pass
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class CaymanIslandsStaticHolidays:
|
|
123
|
+
"""Cayman Islands special holidays.
|
|
124
|
+
|
|
125
|
+
References:
|
|
126
|
+
* [Public Holidays Order, 2009](https://archive.org/details/public-holidays-order-2009-sl-33-of-2009)
|
|
127
|
+
* [Public Holidays Order (No. 2), 2019](https://archive.org/details/public-holidays-no.-2-order-2019-sl-38-of-2019)
|
|
128
|
+
* [Public Holidays Order, 2025](https://archive.org/details/public-holidays-order-2025-sl-15-of-2025)
|
|
129
|
+
* [Referendum Day 2019](https://web.archive.org/web/20250711121821/https://www.facebook.com/ElectionsOffice/posts/reminder-the-referendum-vote-has-been-postponed-and-will-no-longer-take-place-th/2619995141431734/?_rdc=2&_rdr)
|
|
130
|
+
* [UK Royal Wedding](https://en.wikipedia.org/wiki/Wedding_of_Prince_William_and_Catherine_Middleton)
|
|
131
|
+
* [Queen Elizabeth II's Diamond Jubilee](https://web.archive.org/web/20210803202236/https://www.caymancompass.com/2012/06/06/queens-diamond-jubilee-feted/)
|
|
132
|
+
* [Queen Elizabeth II's Funeral](https://web.archive.org/web/20231226055510/https://www.caymancompass.com/2022/09/12/cayman-declares-public-holiday-for-queens-funeral/)
|
|
133
|
+
* [King Charles III's Coronation](https://web.archive.org/web/20250601214328/https://www.radiocayman.gov.ky/news/public-holidays-for-2023-unconfirmed)
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
# Referendum Day.
|
|
137
|
+
referendum_day_name = tr("Referendum Day")
|
|
138
|
+
# General Election Day.
|
|
139
|
+
general_election_day_name = tr("General Election Day")
|
|
140
|
+
special_public_holidays = {
|
|
141
|
+
2009: (
|
|
142
|
+
# 2009 Cayman Islands Constitution Day.
|
|
143
|
+
(NOV, 6, tr("2009 Cayman Islands Constitution Day")),
|
|
144
|
+
(MAY, 20, general_election_day_name),
|
|
145
|
+
),
|
|
146
|
+
# UK Royal Wedding.
|
|
147
|
+
2011: (APR, 29, tr("UK Royal Wedding")),
|
|
148
|
+
2012: (
|
|
149
|
+
# Queen Elizabeth II's Diamond Jubilee.
|
|
150
|
+
(JUN, 4, tr("Queen Elizabeth II's Diamond Jubilee")),
|
|
151
|
+
(JUL, 18, referendum_day_name),
|
|
152
|
+
),
|
|
153
|
+
2013: (MAY, 22, general_election_day_name),
|
|
154
|
+
2017: (MAY, 24, general_election_day_name),
|
|
155
|
+
2019: (DEC, 19, referendum_day_name),
|
|
156
|
+
2021: (APR, 14, general_election_day_name),
|
|
157
|
+
# Queen Elizabeth II's Funeral.
|
|
158
|
+
2022: (SEP, 19, tr("Queen Elizabeth II's Funeral")),
|
|
159
|
+
# King Charles III's Coronation.
|
|
160
|
+
2023: (MAY, 8, tr("Coronation of His Majesty King Charles III")),
|
|
161
|
+
2025: (APR, 30, general_election_day_name),
|
|
162
|
+
}
|