holidays 0.61__py3-none-any.whl → 0.63__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 (128) hide show
  1. holidays/calendars/thai.py +25 -9
  2. holidays/constants.py +3 -0
  3. holidays/countries/__init__.py +1 -0
  4. holidays/countries/albania.py +2 -4
  5. holidays/countries/angola.py +24 -29
  6. holidays/countries/argentina.py +25 -4
  7. holidays/countries/armenia.py +1 -3
  8. holidays/countries/aruba.py +2 -4
  9. holidays/countries/australia.py +1 -0
  10. holidays/countries/azerbaijan.py +31 -8
  11. holidays/countries/bahamas.py +2 -4
  12. holidays/countries/barbados.py +2 -4
  13. holidays/countries/belarus.py +2 -4
  14. holidays/countries/belize.py +2 -4
  15. holidays/countries/bolivia.py +2 -4
  16. holidays/countries/bosnia_and_herzegovina.py +1 -1
  17. holidays/countries/botswana.py +1 -3
  18. holidays/countries/brazil.py +2 -7
  19. holidays/countries/brunei.py +2 -4
  20. holidays/countries/bulgaria.py +1 -6
  21. holidays/countries/burkina_faso.py +3 -5
  22. holidays/countries/burundi.py +1 -3
  23. holidays/countries/cambodia.py +8 -11
  24. holidays/countries/cameroon.py +2 -4
  25. holidays/countries/canada.py +8 -13
  26. holidays/countries/chad.py +2 -4
  27. holidays/countries/chile.py +11 -14
  28. holidays/countries/china.py +2 -7
  29. holidays/countries/congo.py +2 -4
  30. holidays/countries/costa_rica.py +1 -1
  31. holidays/countries/croatia.py +2 -5
  32. holidays/countries/cuba.py +2 -4
  33. holidays/countries/curacao.py +2 -7
  34. holidays/countries/cyprus.py +1 -9
  35. holidays/countries/czechia.py +1 -1
  36. holidays/countries/djibouti.py +2 -4
  37. holidays/countries/dominica.py +3 -6
  38. holidays/countries/dominican_republic.py +2 -4
  39. holidays/countries/eswatini.py +1 -4
  40. holidays/countries/ethiopia.py +1 -3
  41. holidays/countries/finland.py +5 -2
  42. holidays/countries/france.py +19 -3
  43. holidays/countries/gabon.py +2 -4
  44. holidays/countries/georgia.py +1 -3
  45. holidays/countries/germany.py +4 -56
  46. holidays/countries/ghana.py +1 -4
  47. holidays/countries/guernsey.py +328 -0
  48. holidays/countries/haiti.py +2 -8
  49. holidays/countries/hongkong.py +2 -3
  50. holidays/countries/hungary.py +2 -2
  51. holidays/countries/indonesia.py +1 -3
  52. holidays/countries/iran.py +1 -3
  53. holidays/countries/ireland.py +1 -3
  54. holidays/countries/israel.py +3 -21
  55. holidays/countries/japan.py +2 -6
  56. holidays/countries/jersey.py +2 -4
  57. holidays/countries/kazakhstan.py +8 -4
  58. holidays/countries/kenya.py +1 -3
  59. holidays/countries/laos.py +2 -13
  60. holidays/countries/latvia.py +3 -7
  61. holidays/countries/lesotho.py +1 -3
  62. holidays/countries/lithuania.py +2 -4
  63. holidays/countries/madagascar.py +1 -4
  64. holidays/countries/malawi.py +1 -4
  65. holidays/countries/malaysia.py +1 -6
  66. holidays/countries/malta.py +2 -4
  67. holidays/countries/moldova.py +1 -3
  68. holidays/countries/mozambique.py +1 -3
  69. holidays/countries/namibia.py +2 -4
  70. holidays/countries/netherlands.py +1 -0
  71. holidays/countries/new_zealand.py +4 -11
  72. holidays/countries/nigeria.py +1 -3
  73. holidays/countries/pakistan.py +1 -3
  74. holidays/countries/palau.py +5 -7
  75. holidays/countries/papua_new_guinea.py +2 -4
  76. holidays/countries/paraguay.py +32 -31
  77. holidays/countries/philippines.py +3 -5
  78. holidays/countries/poland.py +1 -3
  79. holidays/countries/portugal.py +1 -0
  80. holidays/countries/russia.py +1 -3
  81. holidays/countries/saint_kitts_and_nevis.py +2 -4
  82. holidays/countries/seychelles.py +2 -4
  83. holidays/countries/slovakia.py +2 -4
  84. holidays/countries/slovenia.py +1 -3
  85. holidays/countries/south_africa.py +2 -4
  86. holidays/countries/south_korea.py +5 -14
  87. holidays/countries/switzerland.py +1 -0
  88. holidays/countries/taiwan.py +1 -3
  89. holidays/countries/tanzania.py +2 -8
  90. holidays/countries/thailand.py +500 -216
  91. holidays/countries/timor_leste.py +4 -8
  92. holidays/countries/tonga.py +2 -4
  93. holidays/countries/turkey.py +4 -11
  94. holidays/countries/ukraine.py +2 -4
  95. holidays/countries/united_kingdom.py +2 -8
  96. holidays/countries/united_states.py +27 -23
  97. holidays/countries/uruguay.py +10 -14
  98. holidays/countries/uzbekistan.py +1 -2
  99. holidays/countries/vanuatu.py +2 -4
  100. holidays/countries/vatican_city.py +1 -3
  101. holidays/countries/venezuela.py +1 -0
  102. holidays/countries/zambia.py +1 -4
  103. holidays/countries/zimbabwe.py +1 -3
  104. holidays/financial/__init__.py +2 -2
  105. holidays/financial/brasil_bolsa_balcao.py +4 -6
  106. holidays/financial/european_central_bank.py +12 -8
  107. holidays/financial/ice_futures_europe.py +2 -5
  108. holidays/financial/ny_stock_exchange.py +21 -22
  109. holidays/holiday_base.py +10 -12
  110. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  111. holidays/locale/en_US/LC_MESSAGES/PY.po +18 -14
  112. holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
  113. holidays/locale/en_US/LC_MESSAGES/TH.po +128 -24
  114. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  115. holidays/locale/es/LC_MESSAGES/PY.po +17 -13
  116. holidays/locale/th/LC_MESSAGES/TH.mo +0 -0
  117. holidays/locale/th/LC_MESSAGES/TH.po +127 -23
  118. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  119. holidays/locale/uk/LC_MESSAGES/PY.po +18 -14
  120. holidays/registry.py +3 -2
  121. holidays/utils.py +1 -5
  122. holidays/version.py +1 -1
  123. {holidays-0.61.dist-info → holidays-0.63.dist-info}/METADATA +14 -9
  124. {holidays-0.61.dist-info → holidays-0.63.dist-info}/RECORD +128 -127
  125. {holidays-0.61.dist-info → holidays-0.63.dist-info}/WHEEL +1 -1
  126. {holidays-0.61.dist-info → holidays-0.63.dist-info}/AUTHORS +0 -0
  127. {holidays-0.61.dist-info → holidays-0.63.dist-info}/LICENSE +0 -0
  128. {holidays-0.61.dist-info → holidays-0.63.dist-info}/top_level.txt +0 -0
@@ -24,6 +24,9 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
24
24
 
25
25
  country = "BF"
26
26
  observed_label = "%s (observed)"
27
+ # On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
28
+ # gained independence from France.
29
+ start_year = 1961
27
30
 
28
31
  def __init__(self, *args, **kwargs):
29
32
  ChristianHolidays.__init__(self)
@@ -33,11 +36,6 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
33
36
  super().__init__(*args, **kwargs)
34
37
 
35
38
  def _populate_public_holidays(self):
36
- # On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
37
- # gained independence from France.
38
- if self._year <= 1960:
39
- return None
40
-
41
39
  # New Year's Day.
42
40
  self._add_observed(self._add_new_years_day("New Year's Day"))
43
41
 
@@ -28,6 +28,7 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
28
28
 
29
29
  country = "BI"
30
30
  observed_label = "%s (observed)"
31
+ start_year = 1962
31
32
 
32
33
  def __init__(self, *args, **kwargs):
33
34
  ChristianHolidays.__init__(self)
@@ -37,9 +38,6 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
37
38
  super().__init__(*args, **kwargs)
38
39
 
39
40
  def _populate_public_holidays(self):
40
- if self._year <= 1961:
41
- return None
42
-
43
41
  # New Year's Day
44
42
  self._add_observed(self._add_new_years_day("New Year's Day"))
45
43
 
@@ -52,6 +52,8 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
52
52
  country = "KH"
53
53
  default_language = "km"
54
54
  supported_languages = ("en_US", "km", "th")
55
+ # Available post-Independence from 1993 afterwards
56
+ start_year = 1993
55
57
 
56
58
  def __init__(self, *args, **kwargs):
57
59
  InternationalHolidays.__init__(self)
@@ -60,10 +62,6 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
60
62
  super().__init__(*args, **kwargs)
61
63
 
62
64
  def _populate_public_holidays(self):
63
- # Available post-Independence from 1993 afterwards
64
- if self._year <= 1992:
65
- return None
66
-
67
65
  # Fixed Holidays
68
66
 
69
67
  # ទិវាចូលឆ្នាំសាកល
@@ -130,7 +128,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
130
128
  # NORODOM SIHAMONI, King of Cambodia
131
129
  "ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម ព្រះករុណា ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី"
132
130
  )
133
- dt = self._add_holiday_may_14(king_sihamoni_bday)
131
+ self._add_holiday_may_14(king_sihamoni_bday)
134
132
  if self._year <= 2019:
135
133
  self._add_holiday_may_13(king_sihamoni_bday)
136
134
  self._add_holiday_may_15(king_sihamoni_bday)
@@ -161,7 +159,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
161
159
  if self._year >= 1994:
162
160
  self._add_holiday_jun_18(
163
161
  # Birthday of Her Majesty the Queen-Mother NORODOM MONINEATH SIHANOUK of Cambodia
164
- tr("ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី ព្រះវររាជមាតា នរោត្តម មុនិនាថ សីហនុ"),
162
+ tr("ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី ព្រះវររាជមាតា នរោត្តម មុនិនាថ សីហនុ")
165
163
  )
166
164
 
167
165
  # ទិវាប្រកាសរដ្ឋធម្មនុញ្ញ
@@ -178,13 +176,12 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
178
176
 
179
177
  if self._year >= 2012:
180
178
  self._add_holiday_oct_15(
181
- # Mourning Day of the Late King-Father
182
- # NORODOM SIHANOUK of Cambodia
179
+ # Mourning Day of the Late King-Father NORODOM SIHANOUK of Cambodia
183
180
  tr(
184
181
  "ទិវាប្រារព្ឋពិធីគោរពព្រះវិញ្ញាណក្ខន្ឋ ព្រះករុណា ព្រះបាទសម្តេចព្រះ នរោត្តម "
185
182
  "សីហនុ ព្រះមហាវីរក្សត្រ ព្រះវររាជបិតាឯករាជ្យ បូរណភាពទឹកដី និងឯកភាពជាតិខ្មែរ "
186
183
  "ព្រះបរមរតនកោដ្ឋ"
187
- ),
184
+ )
188
185
  )
189
186
 
190
187
  # ទិវារំលឹកសន្ធិសញ្ញាសន្តិភាពទីក្រុងប៉ារីស
@@ -209,7 +206,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
209
206
  "ព្រះរាជពិធីគ្រងព្រះបរមរាជសម្បត្តិ របស់ ព្រះករុណា "
210
207
  "ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី "
211
208
  "ព្រះមហាក្សត្រនៃព្រះរាជាណាចក្រកម្ពុជា"
212
- ),
209
+ )
213
210
  )
214
211
 
215
212
  # ពិធីបុណ្យឯករាជ្យជាតិ
@@ -228,7 +225,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
228
225
  self._add_holiday_dec_10(tr("ទិវាសិទ្ធិមនុស្សអន្តរជាតិ"))
229
226
 
230
227
  # Cambodian Lunar Calendar Holidays
231
- # See `_ThaiLunisolar` in holidays/utils.py for more details.
228
+ # See `_ThaiLunisolar` in holidays/calendars/thai.py for more details.
232
229
  # Cambodian Lunar Calendar Holidays only work from 1941 to 2157.
233
230
 
234
231
  # ពិធីបុណ្យមាឃបូជា
@@ -33,6 +33,8 @@ class Cameroon(
33
33
 
34
34
  country = "CM"
35
35
  observed_label = "%s (observed)"
36
+ # On 1 January 1960, French Cameroun gained independence from France.
37
+ start_year = 1960
36
38
 
37
39
  def __init__(self, *args, **kwargs):
38
40
  ChristianHolidays.__init__(self)
@@ -43,10 +45,6 @@ class Cameroon(
43
45
  super().__init__(*args, **kwargs)
44
46
 
45
47
  def _populate_public_holidays(self):
46
- # On 1 January 1960, French Cameroun gained independence from France.
47
- if self._year <= 1959:
48
- return None
49
-
50
48
  dts_observed = set()
51
49
 
52
50
  # New Year's Day.
@@ -37,6 +37,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
37
37
  - http://web2.gov.mb.ca/laws/statutes/ccsm/r120e.php
38
38
  - https://www2.gnb.ca/content/gnb/en/departments/elg/local_government/content/governance/content/days_of_rest_act.html
39
39
  - https://www.ontario.ca/document/your-guide-employment-standards-act-0/public-holidays
40
+ - https://www.gov.nu.ca/en/print/pdf/node/52266
40
41
  - https://www.officeholidays.com/countries/canada/
41
42
  - https://www.timeanddate.com/holidays/canada/
42
43
  """
@@ -62,6 +63,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
62
63
  "YT",
63
64
  )
64
65
  supported_languages = ("ar", "en_CA", "en_US", "fr", "th")
66
+ start_year = 1867
65
67
 
66
68
  def __init__(self, *args, **kwargs):
67
69
  ChristianHolidays.__init__(self)
@@ -99,9 +101,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
99
101
  self._add_christmas_day(tr("Christmas Day"))
100
102
 
101
103
  def _populate_public_holidays(self):
102
- if self._year <= 1866:
103
- return None
104
-
105
104
  self._add_statutory_holidays()
106
105
 
107
106
  self._add_observed(self._christmas_day)
@@ -109,9 +108,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
109
108
  def _populate_government_holidays(self):
110
109
  """Holidays for federally regulated workplaces."""
111
110
 
112
- if self._year <= 1866:
113
- return None
114
-
115
111
  self._add_statutory_holidays()
116
112
 
117
113
  if self._year >= 1953:
@@ -141,9 +137,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
141
137
  )
142
138
 
143
139
  def _populate_optional_holidays(self):
144
- if self._year <= 1866:
145
- return None
146
-
147
140
  # Christmas Day.
148
141
  self._add_observed(
149
142
  self._add_christmas_day(tr("Christmas Day")), rule=SAT_SUN_TO_NEXT_MON_TUE
@@ -243,14 +236,13 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
243
236
 
244
237
  def _populate_subdiv_mb_optional_holidays(self):
245
238
  if self._year >= 1900:
246
- name = (
239
+ self._add_holiday_1st_mon_of_aug(
247
240
  # Terry Fox Day.
248
241
  tr("Terry Fox Day")
249
242
  if self._year >= 2015
250
243
  # Civic Holiday.
251
244
  else tr("Civic Holiday")
252
245
  )
253
- self._add_holiday_1st_mon_of_aug(name)
254
246
 
255
247
  if self._year >= 1931:
256
248
  # Remembrance Day.
@@ -361,6 +353,10 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
361
353
  # Victoria Day.
362
354
  self._add_holiday_1st_mon_before_may_24(tr("Victoria Day"))
363
355
 
356
+ if self._year >= 2020:
357
+ # Nunavut Day.
358
+ self._add_holiday_jul_9(tr("Nunavut Day"))
359
+
364
360
  if self._year >= 1900:
365
361
  # Civic Holiday.
366
362
  self._add_holiday_1st_mon_of_aug(tr("Civic Holiday"))
@@ -376,8 +372,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
376
372
  self._add_remembrance_day(tr("Remembrance Day"))
377
373
 
378
374
  def _populate_subdiv_nu_optional_holidays(self):
379
- if self._year >= 2000:
380
- # Nunavut Day.
375
+ if 2000 <= self._year <= 2019:
381
376
  name = tr("Nunavut Day")
382
377
  if self._year == 2000:
383
378
  self._add_holiday_apr_1(name)
@@ -32,6 +32,8 @@ class Chad(
32
32
 
33
33
  country = "TD"
34
34
  observed_label = "%s (observed)"
35
+ # On 11 August 1960, Chad gained independence from France.
36
+ start_year = 1961
35
37
 
36
38
  def __init__(self, *args, **kwargs):
37
39
  ChristianHolidays.__init__(self)
@@ -42,10 +44,6 @@ class Chad(
42
44
  super().__init__(*args, **kwargs)
43
45
 
44
46
  def _populate_public_holidays(self):
45
- # On 11 August 1960, Chad gained independence from France.
46
- if self._year <= 1960:
47
- return None
48
-
49
47
  # New Year's Day.
50
48
  self._add_observed(self._add_new_years_day("New Year's Day"))
51
49
 
@@ -79,6 +79,7 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
79
79
  )
80
80
  supported_categories = (BANK, PUBLIC)
81
81
  supported_languages = ("en_US", "es", "uk")
82
+ start_year = 1915
82
83
 
83
84
  def __init__(self, *args, **kwargs):
84
85
  ChristianHolidays.__init__(self)
@@ -89,9 +90,6 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
89
90
  super().__init__(*args, **kwargs)
90
91
 
91
92
  def _populate_public_holidays(self):
92
- if self._year <= 1914:
93
- return None
94
-
95
93
  # New Year's Day.
96
94
  self._add_new_years_day(tr("Año Nuevo"))
97
95
  if self._year >= 2017:
@@ -145,10 +143,8 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
145
143
  # Day of National Liberation.
146
144
  self._add_holiday_sep_11(tr("Día de la Liberación Nacional"))
147
145
  elif 1999 <= self._year <= 2001:
148
- self._add_holiday_1st_mon_of_sep(
149
- # Day of National Unity.
150
- tr("Día de la Unidad Nacional")
151
- )
146
+ # Day of National Unity.
147
+ self._add_holiday_1st_mon_of_sep(tr("Día de la Unidad Nacional"))
152
148
 
153
149
  if self._year >= 2007:
154
150
  self._add_observed(
@@ -170,14 +166,15 @@ class Chile(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stati
170
166
  self._add_holiday_sep_20(tr("Fiestas Patrias"))
171
167
 
172
168
  if self._year >= 1922 and self._year != 1973:
173
- name = (
174
- # Meeting of Two Worlds' Day.
175
- tr("Día del Encuentro de dos Mundos")
176
- if self._year >= 2000
177
- # Columbus Day.
178
- else tr("Día de la Raza")
169
+ self._move_holiday(
170
+ self._add_columbus_day(
171
+ # Meeting of Two Worlds' Day.
172
+ tr("Día del Encuentro de dos Mundos")
173
+ if self._year >= 2000
174
+ # Columbus Day.
175
+ else tr("Día de la Raza")
176
+ )
179
177
  )
180
- self._move_holiday(self._add_columbus_day(name))
181
178
 
182
179
  if self._year >= 2008:
183
180
  # This holiday is moved to the preceding Friday if it falls on a Tuesday,
@@ -69,6 +69,8 @@ class China(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays,
69
69
  supported_categories = (PUBLIC, HALF_DAY)
70
70
  default_language = "zh_CN"
71
71
  supported_languages = ("en_US", "th", "zh_CN", "zh_TW")
72
+ # Proclamation of the People's Republic of China on Oct 1, 1949.
73
+ start_year = 1950
72
74
 
73
75
  def __init__(self, *args, **kwargs):
74
76
  ChineseCalendarHolidays.__init__(self)
@@ -79,10 +81,6 @@ class China(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays,
79
81
  super().__init__(*args, **kwargs)
80
82
 
81
83
  def _populate_public_holidays(self):
82
- # Proclamation of the People's Republic of China on Oct 1, 1949.
83
- if self._year <= 1949:
84
- return None
85
-
86
84
  dts_observed = set()
87
85
 
88
86
  # 元旦 (simp.) / 新年 (trad.)
@@ -186,9 +184,6 @@ class China(ObservedHolidayBase, ChineseCalendarHolidays, InternationalHolidays,
186
184
 
187
185
  def _populate_half_day_holidays(self):
188
186
  # No in lieus are given for this category.
189
- # Proclamation of the People's Republic of China on Oct 1, 1949.
190
- if self._year <= 1949:
191
- return None
192
187
 
193
188
  # International Women's Day.
194
189
  self._add_womens_day(tr("国际妇女节"))
@@ -31,6 +31,8 @@ class Congo(HolidayBase, ChristianHolidays, InternationalHolidays):
31
31
  country = "CG"
32
32
  default_language = "fr"
33
33
  supported_languages = ("en_US", "fr")
34
+ # Loi N° 2-94 of 1 March 1994.
35
+ start_year = 1994
34
36
 
35
37
  def __init__(self, *args, **kwargs) -> None:
36
38
  ChristianHolidays.__init__(self)
@@ -38,10 +40,6 @@ class Congo(HolidayBase, ChristianHolidays, InternationalHolidays):
38
40
  super().__init__(*args, **kwargs)
39
41
 
40
42
  def _populate_public_holidays(self):
41
- # Loi N° 2-94 of 1 March 1994
42
- if self._year <= 1993:
43
- return None
44
-
45
43
  # New Year's Day.
46
44
  self._add_new_years_day(tr("Jour de l'An"))
47
45
 
@@ -106,7 +106,7 @@ class CostaRica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
106
106
  if self._year >= 2021:
107
107
  aug_31 = self._add_holiday_aug_31(
108
108
  # Day of the Black Person and Afro-Costa Rican Culture.
109
- self.tr("Día de la Persona Negra y la Cultura Afrocostarricense")
109
+ tr("Día de la Persona Negra y la Cultura Afrocostarricense")
110
110
  )
111
111
  if self._year in {2021, 2022, 2023}:
112
112
  # Move to next Sunday.
@@ -27,6 +27,7 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
27
27
  country = "HR"
28
28
  default_language = "hr"
29
29
  supported_languages = ("en_US", "hr", "uk")
30
+ start_year = 1992
30
31
 
31
32
  def __init__(self, *args, **kwargs):
32
33
  ChristianHolidays.__init__(self)
@@ -34,9 +35,6 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
34
35
  super().__init__(*args, **kwargs)
35
36
 
36
37
  def _populate_public_holidays(self):
37
- if self._year <= 1991:
38
- return None
39
-
40
38
  # New Year's Day.
41
39
  self._add_new_years_day(tr("Nova godina"))
42
40
 
@@ -69,14 +67,13 @@ class Croatia(HolidayBase, ChristianHolidays, InternationalHolidays):
69
67
  # Anti-Fascist Struggle Day.
70
68
  self._add_holiday_jun_22(tr("Dan antifašističke borbe"))
71
69
 
72
- name = (
70
+ self._add_holiday_aug_5(
73
71
  # Victory and Homeland Thanksgiving Day and Croatian Veterans Day.
74
72
  tr("Dan pobjede i domovinske zahvalnosti i Dan hrvatskih branitelja")
75
73
  if self._year >= 2008
76
74
  # Victory and Homeland Thanksgiving Day.
77
75
  else tr("Dan pobjede i domovinske zahvalnosti")
78
76
  )
79
- self._add_holiday_aug_5(name)
80
77
 
81
78
  # Assumption Day.
82
79
  self._add_assumption_of_mary_day(tr("Velika Gospa"))
@@ -36,6 +36,8 @@ class Cuba(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
36
36
  # %s (observed).
37
37
  observed_label = tr("%s (observado)")
38
38
  supported_languages = ("en_US", "es", "uk")
39
+ # This calendar only works from 1959 onwards.
40
+ start_year = 1959
39
41
 
40
42
  def __init__(self, *args, **kwargs):
41
43
  ChristianHolidays.__init__(self)
@@ -44,10 +46,6 @@ class Cuba(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
44
46
  super().__init__(*args, **kwargs)
45
47
 
46
48
  def _populate_public_holidays(self):
47
- # This calendar only works from 1959 onwards.
48
- if self._year <= 1958:
49
- return None
50
-
51
49
  # Liberation Day.
52
50
  jan_1 = self._add_holiday_jan_1(tr("Triunfo de la Revolución"))
53
51
  if self._year <= 2013:
@@ -29,6 +29,8 @@ class Curacao(HolidayBase, ChristianHolidays, InternationalHolidays):
29
29
  default_language = "pap_CW"
30
30
  supported_categories = (HALF_DAY, PUBLIC)
31
31
  supported_languages = ("en_US", "nl", "pap_CW", "uk")
32
+ # 1954: Creation of the Netherlands Antilles.
33
+ start_year = 1954
32
34
 
33
35
  def __init__(self, *args, **kwargs):
34
36
  ChristianHolidays.__init__(self)
@@ -36,10 +38,6 @@ class Curacao(HolidayBase, ChristianHolidays, InternationalHolidays):
36
38
  super().__init__(*args, **kwargs)
37
39
 
38
40
  def _populate_public_holidays(self):
39
- # 1954: Creation of the Netherlands Antilles.
40
- if self._year <= 1953:
41
- return None
42
-
43
41
  # Aña Nobo.
44
42
  # Status: In-Use.
45
43
 
@@ -136,9 +134,6 @@ class Curacao(HolidayBase, ChristianHolidays, InternationalHolidays):
136
134
  self._add_christmas_day_two(tr("Di dos dia di Pasku di Nasementu"))
137
135
 
138
136
  def _populate_half_day_holidays(self):
139
- if self._year <= 1953:
140
- return None
141
-
142
137
  # New Year's Eve.
143
138
  self._add_new_years_eve(tr("Vispu di Aña Nobo"))
144
139
 
@@ -31,6 +31,7 @@ class Cyprus(HolidayBase, ChristianHolidays, InternationalHolidays):
31
31
  default_language = "el"
32
32
  supported_categories = (BANK, OPTIONAL, PUBLIC)
33
33
  supported_languages = ("el", "en_CY", "en_US", "uk")
34
+ start_year = 1961
34
35
 
35
36
  def __init__(self, *args, **kwargs):
36
37
  ChristianHolidays.__init__(self, JULIAN_REVISED_CALENDAR)
@@ -38,9 +39,6 @@ class Cyprus(HolidayBase, ChristianHolidays, InternationalHolidays):
38
39
  super().__init__(*args, **kwargs)
39
40
 
40
41
  def _populate_public_holidays(self):
41
- if self._year <= 1960:
42
- return None
43
-
44
42
  # New Year's Day.
45
43
  self._add_new_years_day(tr("Πρωτοχρονιά"))
46
44
 
@@ -88,16 +86,10 @@ class Cyprus(HolidayBase, ChristianHolidays, InternationalHolidays):
88
86
  self._add_christmas_day_two(tr("Επομένη Χριστουγέννων"))
89
87
 
90
88
  def _populate_bank_holidays(self):
91
- if self._year <= 1960:
92
- return None
93
-
94
89
  # Easter Tuesday.
95
90
  self._add_easter_tuesday(tr("Τρίτη της Διακαινησίμου"))
96
91
 
97
92
  def _populate_optional_holidays(self):
98
- if self._year <= 1960:
99
- return None
100
-
101
93
  # Holy Saturday.
102
94
  self._add_holy_saturday(tr("Μεγάλο Σάββατο"))
103
95
 
@@ -36,7 +36,7 @@ class Czechia(HolidayBase, ChristianHolidays, InternationalHolidays):
36
36
  tr("Den obnovy samostatného českého státu")
37
37
  if self._year >= 2000
38
38
  # New Year's Day.
39
- else tr("Nový rok"),
39
+ else tr("Nový rok")
40
40
  )
41
41
 
42
42
  if self._year <= 1951 or self._year >= 2016:
@@ -24,6 +24,8 @@ class Djibouti(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHol
24
24
  estimated_label = tr("%s (estimé)")
25
25
  supported_languages = ("ar", "en_US", "fr")
26
26
  weekend = {FRI, SAT}
27
+ # On 27 June 1977, Djibouti gained independence from France.
28
+ start_year = 1978
27
29
 
28
30
  def __init__(self, *args, **kwargs):
29
31
  ChristianHolidays.__init__(self)
@@ -32,10 +34,6 @@ class Djibouti(HolidayBase, ChristianHolidays, IslamicHolidays, InternationalHol
32
34
  super().__init__(*args, **kwargs)
33
35
 
34
36
  def _populate_public_holidays(self):
35
- # On 27 June 1977, Djibouti gained independence from France.
36
- if self._year <= 1977:
37
- return None
38
-
39
37
  # New Year's Day.
40
38
  self._add_new_years_day(tr("Nouvel an"))
41
39
 
@@ -39,6 +39,8 @@ class Dominica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
39
39
 
40
40
  country = "DM"
41
41
  observed_label = "%s (observed)"
42
+ # Public Holidays Act, L.I. 12 of 1990 Amendment.
43
+ start_year = 1990
42
44
 
43
45
  def __init__(self, *args, **kwargs):
44
46
  ChristianHolidays.__init__(self)
@@ -48,10 +50,6 @@ class Dominica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
48
50
  super().__init__(*args, **kwargs)
49
51
 
50
52
  def _populate_public_holidays(self):
51
- # Public Holidays Act, L.I. 12 of 1990 Amendment.
52
- if self._year <= 1989:
53
- return None
54
-
55
53
  # New Year's Day.
56
54
  self._add_observed(self._add_new_years_day("New Year's Day"))
57
55
 
@@ -77,14 +75,13 @@ class Dominica(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
77
75
  # Whit Monday.
78
76
  self._add_whit_monday("Whit Monday")
79
77
 
80
- first_monday_of_august_holiday_name = (
78
+ self._add_holiday_1st_mon_of_aug(
81
79
  # Emancipation Day.
82
80
  "Emancipation Day"
83
81
  if self._year >= 1998
84
82
  # First Monday of August.
85
83
  else "First Monday of August"
86
84
  )
87
- self._add_holiday_1st_mon_of_aug(first_monday_of_august_holiday_name)
88
85
 
89
86
  # Independence Day.
90
87
  self._add_observed(self._add_holiday_nov_3("Independence Day"), rule=SUN_TO_NEXT_TUE)
@@ -30,6 +30,8 @@ class DominicanRepublic(ObservedHolidayBase, ChristianHolidays, InternationalHol
30
30
  country = "DO"
31
31
  default_language = "es"
32
32
  supported_languages = ("en_US", "es", "uk")
33
+ # Law No. 139-97 - Holidays Dominican Republic (Jun 27, 1997).
34
+ start_year = 1998
33
35
 
34
36
  def __init__(self, *args, **kwargs):
35
37
  ChristianHolidays.__init__(self)
@@ -38,10 +40,6 @@ class DominicanRepublic(ObservedHolidayBase, ChristianHolidays, InternationalHol
38
40
  super().__init__(*args, **kwargs)
39
41
 
40
42
  def _populate_public_holidays(self):
41
- # Law No. 139-97 - Holidays Dominican Republic (Jun 27, 1997).
42
- if self._year <= 1997:
43
- return None
44
-
45
43
  # New Year's Day.
46
44
  self._add_new_years_day(tr("Año Nuevo"))
47
45
 
@@ -25,6 +25,7 @@ class Eswatini(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
25
25
 
26
26
  country = "SZ"
27
27
  observed_label = "%s (observed)"
28
+ start_year = 1939
28
29
 
29
30
  def __init__(self, *args, **kwargs):
30
31
  ChristianHolidays.__init__(self)
@@ -35,10 +36,6 @@ class Eswatini(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
35
36
  super().__init__(*args, **kwargs)
36
37
 
37
38
  def _populate_public_holidays(self):
38
- # Observed since 1939
39
- if self._year <= 1938:
40
- return None
41
-
42
39
  self._add_observed(self._add_new_years_day("New Year's Day"))
43
40
 
44
41
  self._add_good_friday("Good Friday")
@@ -31,6 +31,7 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
31
31
  # %s (estimated).
32
32
  estimated_label = tr("%s (ግምት)")
33
33
  supported_languages = ("am", "ar", "en_US")
34
+ start_year = 1898
34
35
 
35
36
  def _is_leap_year(self):
36
37
  """
@@ -49,9 +50,6 @@ class Ethiopia(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHol
49
50
  super().__init__(*args, **kwargs)
50
51
 
51
52
  def _populate_public_holidays(self):
52
- if self._year <= 1897:
53
- return None
54
-
55
53
  # Christmas Day.
56
54
  self._add_christmas_day(tr("ገና"))
57
55
 
@@ -28,12 +28,14 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
28
28
  - https://en.wikipedia.org/wiki/Flag_flying_days_in_Finland#Customary_flag_days
29
29
  - https://intermin.fi/en/flag-and-arms/flag-flying-days
30
30
  - https://intermin.fi/en/flag-and-arms/flag-days/2024
31
+ - https://en.wikipedia.org/wiki/Independence_Day_(Finland)
31
32
  """
32
33
 
33
34
  country = "FI"
34
35
  default_language = "fi"
35
36
  supported_languages = ("en_US", "fi", "sv_FI", "uk")
36
37
  supported_categories = (PUBLIC, UNOFFICIAL)
38
+ start_year = 1853
37
39
 
38
40
  def __init__(self, *args, **kwargs):
39
41
  ChristianHolidays.__init__(self)
@@ -90,8 +92,9 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
90
92
  else:
91
93
  self._add_holiday_nov_1(name)
92
94
 
93
- # Independence Day.
94
- self._add_holiday_dec_6(tr("Itsenäisyyspäivä"))
95
+ if self._year >= 1917:
96
+ # Independence Day.
97
+ self._add_holiday_dec_6(tr("Itsenäisyyspäivä"))
95
98
 
96
99
  # Christmas Eve.
97
100
  self._add_christmas_eve(tr("Jouluaatto"))
@@ -35,18 +35,33 @@ class France(HolidayBase, ChristianHolidays, InternationalHolidays):
35
35
  default_language = "fr"
36
36
  supported_languages = ("en_US", "fr", "uk")
37
37
  subdivisions = (
38
- "BL", # Saint Barthelemy.
38
+ "BL", # Saint-Barthélemy.
39
39
  "GES", # Alsace, Champagne-Ardenne, Lorraine(Moselle).
40
40
  "GP", # Guadeloupe.
41
41
  "GY", # Guyane.
42
- "MF", # Saint Martin.
42
+ "MF", # Saint-Martin.
43
43
  "MQ", # Martinique.
44
44
  "NC", # Nouvelle-Calédonie,
45
45
  "PF", # Polynésie Française.
46
- "RE", # Reunion.
46
+ "RE", # La Réunion.
47
47
  "WF", # Wallis-et-Futuna.
48
48
  "YT", # Mayotte.
49
49
  )
50
+ subdivisions_aliases = {
51
+ "Saint-Barthélemy": "BL",
52
+ "Alsace": "GES",
53
+ "Champagne-Ardenne": "GES",
54
+ "Lorraine": "GES",
55
+ "Guadeloupe": "GP",
56
+ "Guyane": "GY",
57
+ "Saint-Martin": "MF",
58
+ "Martinique": "MQ",
59
+ "Nouvelle-Calédonie": "NC",
60
+ "Polynésie Française": "PF",
61
+ "La Réunion": "RE",
62
+ "Wallis-et-Futuna": "WF",
63
+ "Mayotte": "YT",
64
+ }
50
65
 
51
66
  _deprecated_subdivisions = (
52
67
  "Alsace-Moselle",
@@ -62,6 +77,7 @@ class France(HolidayBase, ChristianHolidays, InternationalHolidays):
62
77
  "Saint-Martin",
63
78
  "Wallis-et-Futuna",
64
79
  )
80
+ start_year = 1801
65
81
 
66
82
  def __init__(self, *args, **kwargs):
67
83
  ChristianHolidays.__init__(self)