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
@@ -22,7 +22,7 @@ THAI_CALENDAR = "THAI_CALENDAR"
22
22
 
23
23
  class _ThaiLunisolar:
24
24
  """
25
- ** Thai Lunar Calendar Holidays only work from 1941 (B.E. 2484) onwards
25
+ ** Thai Lunar Calendar Holidays only work from 1913 (B.E. 2456/2455) onwards
26
26
  until 2157 (B.E. 2700) as we only have Thai year-type data for
27
27
  cross-checking until then.
28
28
 
@@ -100,9 +100,15 @@ class _ThaiLunisolar:
100
100
  2010-05-28
101
101
  """
102
102
 
103
- # Athikawan (Extra-Day Year) list goes from 1941-2157 C.E.
103
+ # Athikawan (Extra-Day Year) list goes from 1914-2157 C.E.
104
104
  # Copied off from 1757-2157 (B.E. 2300-2700) Thai Lunar Calendar
105
105
  ATHIKAWAN_YEARS_GREGORIAN = {
106
+ 1914,
107
+ 1917,
108
+ 1925,
109
+ 1929,
110
+ 1933,
111
+ 1936,
106
112
  1945,
107
113
  1949,
108
114
  1952,
@@ -147,10 +153,20 @@ class _ThaiLunisolar:
147
153
  2153,
148
154
  }
149
155
 
150
- # Athikamat (Extra-Month Year) list goes from 1941-2157 C.E.:
156
+ # Athikamat (Extra-Month Year) list goes from 1914-2157 C.E.:
151
157
  # Copied off from 1757-2157 (B.E. 2300-2700) Thai Lunar Calendar
152
158
  # Approx formula as follows: (common_era-78)-0.45222)%2.7118886 < 1
153
159
  ATHIKAMAT_YEARS_GREGORIAN = {
160
+ 1915,
161
+ 1918,
162
+ 1920,
163
+ 1923,
164
+ 1926,
165
+ 1928,
166
+ 1931,
167
+ 1934,
168
+ 1937,
169
+ 1939,
154
170
  1942,
155
171
  1944,
156
172
  1947,
@@ -234,12 +250,12 @@ class _ThaiLunisolar:
234
250
  }
235
251
 
236
252
  # While Buddhist Holy Days have been observed since the 1900s
237
- # Due to the calendar changes in 1941 (B.E. 2484) and that
238
- # our array only goes up to B.E. 2700; We'll thus only populate
239
- # the data for 1941-2157 (B.E. 2484-2700).
253
+ # Thailand's Public Holiday Act wasn't codified until 1914 (B.E. 2457)
254
+ # and that our array only goes up to B.E. 2700; We'll thus only populate
255
+ # the data for 1914-2157 (B.E. 2457-2700).
240
256
  # Sources: หนังสือเวียนกรมการปกครอง กระทรวงมหาดไทย มท 0310.1/ว4 5 ก.พ. 2539
241
- START_DATE = date(1940, 11, 30)
242
- START_YEAR = 1941
257
+ START_DATE = date(1913, 11, 28)
258
+ START_YEAR = 1914
243
259
  END_YEAR = 2157
244
260
 
245
261
  def __init__(self, calendar=THAI_CALENDAR) -> None:
@@ -270,7 +286,7 @@ class _ThaiLunisolar:
270
286
  Calculate the start date of that particular Thai Lunar Calendar Year.
271
287
  This usually falls in November or December of the previous Gregorian
272
288
  year in question. Should the year be outside of working scope
273
- (1941-2157: B.E 2484-2700), this will returns None instead.
289
+ (1914-2157: B.E 2457-2700), this will returns None instead.
274
290
 
275
291
  :param year:
276
292
  The Gregorian year.
holidays/constants.py CHANGED
@@ -54,3 +54,6 @@ CHRISTIAN = "christian"
54
54
  HEBREW = "hebrew"
55
55
  HINDU = "hindu"
56
56
  ISLAMIC = "islamic"
57
+
58
+ DEFAULT_START_YEAR = 1901
59
+ DEFAULT_END_YEAR = 2100
@@ -72,6 +72,7 @@ from .greece import Greece, GR, GRC
72
72
  from .greenland import Greenland, GL, GRL
73
73
  from .guam import Guam, GU, GUM, HolidaysGU
74
74
  from .guatemala import Guatemala, GT, GUA
75
+ from .guernsey import Guernsey, GG, GGY
75
76
  from .haiti import Haiti, HT, HTI
76
77
  from .honduras import Honduras, HN, HND
77
78
  from .hongkong import HongKong, HK, HKG
@@ -43,6 +43,8 @@ class Albania(
43
43
  # %s (observed, estimated).
44
44
  observed_estimated_label = tr("%s (ditë pushimi e shtyrë, e vlerësuar)")
45
45
  supported_languages = ("en_US", "sq", "uk")
46
+ # Law No. 7651 from 21.12.1992.
47
+ start_year = 1993
46
48
 
47
49
  def __init__(self, *args, **kwargs):
48
50
  ChristianHolidays.__init__(self)
@@ -53,10 +55,6 @@ class Albania(
53
55
  super().__init__(*args, **kwargs)
54
56
 
55
57
  def _populate_public_holidays(self):
56
- # Law No. 7651 from 21.12.1992.
57
- if self._year <= 1992:
58
- return None
59
-
60
58
  dts_observed = set()
61
59
 
62
60
  # New Year's Day.
@@ -46,6 +46,8 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
46
46
  supported_languages = ("en_US", "pt_AO", "uk")
47
47
  # %s (observed).
48
48
  observed_label = tr("%s (ponte)")
49
+ # Decree #5/75.
50
+ start_year = 1975
49
51
 
50
52
  def __init__(self, *args, **kwargs):
51
53
  ChristianHolidays.__init__(self)
@@ -68,12 +70,8 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
68
70
  return super()._add_observed(dt, **kwargs)
69
71
 
70
72
  def _populate_public_holidays(self):
71
- # Decree #5/75.
72
- if self._year <= 1974:
73
- return None
74
-
75
73
  # New Year's Day.
76
- name = self.tr("Dia do Ano Novo")
74
+ name = tr("Dia do Ano Novo")
77
75
  dt = self._add_new_years_day(name)
78
76
  if self._year <= 2011 or self._year >= 2018:
79
77
  self._add_observed(dt)
@@ -86,14 +84,15 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
86
84
  self._add_holiday_jan_4(tr("Dia dos Mártires da Repressão Colonial"))
87
85
  )
88
86
 
89
- name = (
90
- # Beginning of the Armed Struggle for National Liberation Day.
91
- tr("Dia do Início da Luta Armada de Libertação Nacional")
92
- if self._year >= 2012
93
- # Beginning of the Armed Struggle Day.
94
- else tr("Dia do Início da Luta Armada")
87
+ self._add_observed(
88
+ self._add_holiday_feb_4(
89
+ # Beginning of the Armed Struggle for National Liberation Day.
90
+ tr("Dia do Início da Luta Armada de Libertação Nacional")
91
+ if self._year >= 2012
92
+ # Beginning of the Armed Struggle Day.
93
+ else tr("Dia do Início da Luta Armada")
94
+ )
95
95
  )
96
- self._add_observed(self._add_holiday_feb_4(name))
97
96
 
98
97
  # Law #16/96.
99
98
  if self._year >= 1997:
@@ -105,17 +104,13 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
105
104
 
106
105
  # Law #11/18.
107
106
  if self._year >= 2019:
108
- self._add_observed(
109
- # Southern Africa Liberation Day.
110
- self._add_holiday_mar_23(tr("Dia da Libertação da África Austral"))
111
- )
107
+ # Southern Africa Liberation Day.
108
+ self._add_observed(self._add_holiday_mar_23(tr("Dia da Libertação da África Austral")))
112
109
 
113
110
  # Law #7/03.
114
111
  if self._year >= 2003:
115
- self._add_observed(
116
- # Peace and National Reconciliation Day.
117
- self._add_holiday_apr_4(tr("Dia da Paz e Reconciliação Nacional"))
118
- )
112
+ # Peace and National Reconciliation Day.
113
+ self._add_observed(self._add_holiday_apr_4(tr("Dia da Paz e Reconciliação Nacional")))
119
114
 
120
115
  # Law #16/96.
121
116
  if self._year >= 1997:
@@ -147,21 +142,22 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
147
142
  if self._year <= 2010 or self._year >= 2018:
148
143
  self._add_observed(dt)
149
144
 
150
- name = (
151
- # National Independence Day.
152
- tr("Dia da Independência Nacional")
153
- if self._year >= 1996
154
- # Independence Day.
155
- else tr("Dia da Independência")
145
+ self._add_observed(
146
+ self._add_holiday_nov_11(
147
+ # National Independence Day.
148
+ tr("Dia da Independência Nacional")
149
+ if self._year >= 1996
150
+ # Independence Day.
151
+ else tr("Dia da Independência")
152
+ )
156
153
  )
157
- self._add_observed(self._add_holiday_nov_11(name))
158
154
 
159
155
  # Decree # 7/92.
160
156
  if self._year <= 1991:
161
157
  # Date of Founding of MPLA - Labor Party.
162
158
  self._add_holiday_dec_10(tr("Data da Fundacao do MPLA - Partido do Trabalho"))
163
159
 
164
- name = (
160
+ dt = self._add_christmas_day(
165
161
  # Christmas and Family Day.
166
162
  tr("Dia de Natal e da Família")
167
163
  if self._year >= 2011
@@ -171,7 +167,6 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
171
167
  else tr("Dia da Família") # Family Day.
172
168
  )
173
169
  )
174
- dt = self._add_christmas_day(name)
175
170
  if self._year <= 2010 or self._year >= 2018:
176
171
  self._add_observed(dt)
177
172
 
@@ -33,16 +33,31 @@ class Argentina(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
33
33
  - Based on:
34
34
  https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_feriados_en_Argentina
35
35
  - [Ley 24455] Belgrano and San Martin Day as third Monday
36
+ https://servicios.infoleg.gob.ar/infolegInternet/anexos/0-4999/782/norma.htm
36
37
  - [Ley 27399] - For 2018++
37
38
  https://www.argentina.gob.ar/normativa/nacional/ley-27399-281835/texto
38
39
  - [Decreto 1585/2010] - 2011-2013 Bridge Holidays, Movable Holidays Law
40
+ https://www.argentina.gob.ar/normativa/nacional/decreto-1585-2010-174391/texto
39
41
  - [Decreto 1768/2013] - 2014-2016 Bridge Holidays
42
+ https://www.argentina.gob.ar/normativa/nacional/decreto-1768-2013-222021/texto
40
43
  - [Decretos 52-80-923/2017] - 2017-2019 Bridge Holidays
44
+ https://www.argentina.gob.ar/normativa/nacional/decreto-52-2017-271094/texto
45
+ https://www.argentina.gob.ar/normativa/nacional/decreto-80-2017-271382/texto
46
+ https://www.argentina.gob.ar/normativa/nacional/decreto-923-2017-287145
41
47
  - [Decreto 717/2019] - 2020 Bridge Holidays
48
+ https://www.argentina.gob.ar/normativa/nacional/decreto-717-2019-330204/texto
42
49
  - [Decreto 297/2020] - Veteran Day moved due to Covid-19
50
+ https://www.argentina.gob.ar/normativa/nacional/decreto-297-2020-335741/texto
43
51
  - [Decreto 947/2020] - 2021 Bridge Holidays
52
+ https://www.argentina.gob.ar/normativa/nacional/decreto-947-2020-344620/texto
44
53
  - [Decreto 789/2021] - 2022 Bridge Holidays
54
+ https://www.argentina.gob.ar/normativa/nacional/decreto-789-2021-356678/texto
45
55
  - [Decreto 764/2022] - 2023 Bridge Holidays
56
+ https://www.argentina.gob.ar/normativa/nacional/decreto-764-2022-375264/texto
57
+ - [Decreto 106/2023] - 2024 Bridge Holidays
58
+ https://www.argentina.gob.ar/normativa/nacional/decreto-106-2023-395689/texto
59
+ - [Decreto 1017/2024] - 2025 Bridge Holidays
60
+ https://www.argentina.gob.ar/normativa/nacional/decreto-1027-2024-406417/texto
46
61
  - [Always Update Calendar Year Link]
47
62
  https://www.argentina.gob.ar/interior/feriados
48
63
  http://servicios.lanacion.com.ar/feriados
@@ -60,7 +75,8 @@ class Argentina(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
60
75
  https://servicios.lanacion.com.ar/app-mobile/feriados/2016
61
76
  https://servicios.lanacion.com.ar/app-mobile/feriados/2015
62
77
 
63
- Movable Holidays Laws:
78
+ Movable Holidays Laws:
79
+
64
80
  - Decreto 1584/2010: 2010-11-03
65
81
  - AUG 17, OCT 12, NOV 20 Holidays will always be on MON
66
82
  - Decreto 52/2017: 2017-01-23 (Reconfirmed in Ley 27399)
@@ -73,6 +89,7 @@ class Argentina(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
73
89
  supported_languages = ("en_US", "es", "uk")
74
90
  # %s (observed).
75
91
  observed_label = tr("%s (observado)")
92
+ start_year = 1801
76
93
 
77
94
  def __init__(self, *args, **kwargs):
78
95
  ChristianHolidays.__init__(self)
@@ -188,7 +205,7 @@ class Argentina(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
188
205
  if self._year >= 2016:
189
206
  jun_17 = self._add_holiday_jun_17(
190
207
  # Pass to the Immortality of General Don Martin Miguel de Guemes.
191
- tr("Paso a la Inmortalidad del General Don Martín Miguel de Güemes"),
208
+ tr("Paso a la Inmortalidad del General Don Martín Miguel de Güemes")
192
209
  )
193
210
  # If Jun 17 is Friday, then it should move to Mon, Jun 20
194
211
  # but Jun 20 is Gen. Belgrano holiday
@@ -215,14 +232,13 @@ class Argentina(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
215
232
  # In 2010 the holiday became movable and its name was changed.
216
233
 
217
234
  if self._year >= 1917:
218
- name = (
235
+ oct_12 = self._add_columbus_day(
219
236
  # Respect for Cultural Diversity Day.
220
237
  tr("Día del Respeto a la Diversidad Cultural")
221
238
  if self._year >= 2010
222
239
  # Columbus Day.
223
240
  else tr("Día de la Raza")
224
241
  )
225
- oct_12 = self._add_columbus_day(name)
226
242
  if self._year >= 2010:
227
243
  self._move_holiday(oct_12)
228
244
 
@@ -345,4 +361,9 @@ class ArgentinaStaticHolidays:
345
361
  (JUN, 21, arg_bridge_public_holiday),
346
362
  (OCT, 11, arg_bridge_public_holiday),
347
363
  ),
364
+ 2025: (
365
+ (MAY, 2, arg_bridge_public_holiday),
366
+ (AUG, 15, arg_bridge_public_holiday),
367
+ (NOV, 21, arg_bridge_public_holiday),
368
+ ),
348
369
  }
@@ -30,6 +30,7 @@ class Armenia(HolidayBase, ChristianHolidays, InternationalHolidays):
30
30
  country = "AM"
31
31
  default_language = "hy"
32
32
  supported_languages = ("en_US", "hy")
33
+ start_year = 1991
33
34
 
34
35
  def __init__(self, *args, **kwargs):
35
36
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
@@ -37,9 +38,6 @@ class Armenia(HolidayBase, ChristianHolidays, InternationalHolidays):
37
38
  super().__init__(*args, **kwargs)
38
39
 
39
40
  def _populate_public_holidays(self):
40
- if self._year <= 1990:
41
- return None
42
-
43
41
  # New Year's Day.
44
42
  name = tr("Նոր տարվա օր")
45
43
  self._add_new_years_day(name)
@@ -32,6 +32,8 @@ class Aruba(HolidayBase, ChristianHolidays, InternationalHolidays):
32
32
  country = "AW"
33
33
  default_language = "pap_AW"
34
34
  supported_languages = ("en_US", "nl", "pap_AW", "uk")
35
+ # AUG 1947: Autonomous State status in the Kingdom of the Netherlands.
36
+ start_year = 1947
35
37
 
36
38
  def __init__(self, *args, **kwargs):
37
39
  ChristianHolidays.__init__(self)
@@ -39,10 +41,6 @@ class Aruba(HolidayBase, ChristianHolidays, InternationalHolidays):
39
41
  super().__init__(*args, **kwargs)
40
42
 
41
43
  def _populate_public_holidays(self):
42
- # AUG 1947: Autonomous State status in the Kingdom of the Netherlands.
43
- if self._year <= 1946:
44
- return None
45
-
46
44
  # Aña Nobo.
47
45
  # Status: In-Use.
48
46
 
@@ -65,6 +65,7 @@ class Australia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, S
65
65
  "Victoria": "VIC",
66
66
  "Western Australia": "WA",
67
67
  }
68
+ start_year = 1801
68
69
 
69
70
  @property
70
71
  def sovereign_birthday(self) -> str:
@@ -25,9 +25,12 @@ from holidays.observed_holiday_base import (
25
25
 
26
26
 
27
27
  class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, StaticHolidays):
28
- # [1] https://en.wikipedia.org/wiki/Public_holidays_in_Azerbaijan
29
- # [2] https://az.wikipedia.org/wiki/Az%C9%99rbaycan%C4%B1n_d%C3%B6vl%C9%99t_bayramlar%C4%B1_v%C9%99_x%C3%BCsusi_g%C3%BCnl%C9%99ri
30
- # [3] https://www.sosial.gov.az/en/prod-calendar
28
+ """
29
+ References:
30
+ - https://en.wikipedia.org/wiki/Public_holidays_in_Azerbaijan
31
+ - https://az.wikipedia.org/wiki/Az%C9%99rbaycan%C4%B1n_d%C3%B6vl%C9%99t_bayramlar%C4%B1_v%C9%99_x%C3%BCsusi_g%C3%BCnl%C9%99ri
32
+ - https://www.sosial.gov.az/en/prod-calendar
33
+ """
31
34
 
32
35
  country = "AZ"
33
36
  default_language = "az"
@@ -39,6 +42,7 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
39
42
  observed_estimated_label = tr("%s (müşahidə olunur, təxmini)")
40
43
  supported_categories = (PUBLIC, WORKDAY)
41
44
  supported_languages = ("az", "en_US", "uk")
45
+ start_year = 1990
42
46
 
43
47
  def __init__(self, *args, **kwargs):
44
48
  InternationalHolidays.__init__(self)
@@ -49,9 +53,6 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
49
53
  super().__init__(*args, **kwargs)
50
54
 
51
55
  def _populate_public_holidays(self):
52
- if self._year <= 1989:
53
- return None
54
-
55
56
  dts_observed = set()
56
57
  dts_non_observed = set()
57
58
  dts_bairami = set()
@@ -246,6 +247,21 @@ class AzerbaijanIslamicHolidays(_CustomIslamicHolidays):
246
247
 
247
248
 
248
249
  class AzerbaijanStaticHolidays:
250
+ """
251
+ Substituted holidays references:
252
+ - https://nk.gov.az/az/senedler/qerarlar/is-va-istirahat-gunlarinin-yerlarinin-dayisdirilmasi-haqqinda-5423
253
+ - https://nk.gov.az/az/senedler/qerarlar/is-va-istirahat-gunlarinin-yerlarinin--dayisdirilmasi-haqqinda-5982
254
+ - https://nk.gov.az/az/senedler/qerarlar/is-va-istirahat-gunlarinin-yerlarinin-dayisdirilmasi-haqqinda-6488
255
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7047
256
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7466
257
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7576
258
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-7843
259
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8332
260
+ - https://nk.gov.az/az/senedler/qerarlar/is-ve-istirahet-gunlerinin-yerlerinin-deyisdirilme-8449
261
+ Special holidays references:
262
+ - https://www.msk.gov.az/en/elections/pages/municipal-elections/belediyye-29-01-2025
263
+ """
264
+
249
265
  eid_al_adha = tr("Qurban bayrami")
250
266
  # Substituted date format.
251
267
  substituted_date_format = tr("%d.%m.%Y")
@@ -255,6 +271,9 @@ class AzerbaijanStaticHolidays:
255
271
  # Presidential elections.
256
272
  presidential_elections = tr("Prezidenti seçkiləri")
257
273
 
274
+ # Municipal elections.
275
+ municipal_elections = tr("Bələdiyyə seçkiləri")
276
+
258
277
  special_public_holidays = {
259
278
  2011: (AUG, 29, AUG, 27),
260
279
  2013: (
@@ -266,8 +285,7 @@ class AzerbaijanStaticHolidays:
266
285
  (JAN, 6, DEC, 29, 2013),
267
286
  ),
268
287
  2018: (APR, 11, presidential_elections),
269
- # Municipal elections.
270
- 2019: (DEC, 27, tr("Bələdiyyə seçkiləri")),
288
+ 2019: (DEC, 27, municipal_elections),
271
289
  2020: (
272
290
  (MAR, 27, MAR, 29),
273
291
  (MAY, 27, MAY, 30),
@@ -295,6 +313,11 @@ class AzerbaijanStaticHolidays:
295
313
  (APR, 12, APR, 6),
296
314
  (NOV, 12, NOV, 16),
297
315
  (NOV, 13, NOV, 23),
316
+ (DEC, 30, DEC, 28),
317
+ ),
318
+ 2025: (
319
+ (JAN, 3, DEC, 29, 2024),
320
+ (JAN, 29, municipal_elections),
298
321
  ),
299
322
  }
300
323
 
@@ -39,6 +39,8 @@ class Bahamas(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
39
39
 
40
40
  country = "BS"
41
41
  observed_label = "%s (observed)"
42
+ # Gained Independence on Jul 10, 1973.
43
+ start_year = 1974
42
44
 
43
45
  def __init__(self, *args, **kwargs):
44
46
  ChristianHolidays.__init__(self)
@@ -48,10 +50,6 @@ class Bahamas(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
48
50
  super().__init__(*args, **kwargs)
49
51
 
50
52
  def _populate_public_holidays(self):
51
- # Gained Independence on Jul 10, 1973.
52
- if self._year <= 1973:
53
- return None
54
-
55
53
  # New Year's Day.
56
54
  # Pre-2012 Observance:
57
55
  # - If TUE, New Year's Day (observed) prev MON.
@@ -33,6 +33,8 @@ class Barbados(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
33
33
 
34
34
  country = "BB"
35
35
  observed_label = "%s (observed)"
36
+ # Public Holidays Act Cap.352, 1968-12-30
37
+ start_year = 1969
36
38
 
37
39
  def __init__(self, *args, **kwargs):
38
40
  ChristianHolidays.__init__(self)
@@ -42,10 +44,6 @@ class Barbados(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
42
44
  super().__init__(*args, **kwargs)
43
45
 
44
46
  def _populate_public_holidays(self):
45
- # Public Holidays Act Cap.352, 1968-12-30
46
- if self._year <= 1968:
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
 
@@ -33,6 +33,8 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
33
33
  country = "BY"
34
34
  default_language = "be"
35
35
  supported_languages = ("be", "en_US")
36
+ # The current set of holidays actual from 1998.
37
+ start_year = 1998
36
38
 
37
39
  def __init__(self, *args, **kwargs):
38
40
  ChristianHolidays.__init__(self, JULIAN_CALENDAR)
@@ -41,10 +43,6 @@ class Belarus(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
41
43
  super().__init__(*args, **kwargs)
42
44
 
43
45
  def _populate_public_holidays(self):
44
- # The current set of holidays actual from 1998.
45
- if self._year <= 1997:
46
- return None
47
-
48
46
  # New Year's Day.
49
47
  self._add_new_years_day(tr("Новы год"))
50
48
 
@@ -30,6 +30,8 @@ class Belize(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
30
30
 
31
31
  country = "BZ"
32
32
  observed_label = "%s (observed)"
33
+ # Belize was granted independence on 21.09.1981.
34
+ start_year = 1982
33
35
 
34
36
  def __init__(self, *args, **kwargs):
35
37
  ChristianHolidays.__init__(self)
@@ -42,10 +44,6 @@ class Belize(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
42
44
  super().__init__(*args, **kwargs)
43
45
 
44
46
  def _populate_public_holidays(self):
45
- # Belize was granted independence on 21.09.1981.
46
- if self._year <= 1981:
47
- return None
48
-
49
47
  # New Year's Day.
50
48
  self._move_holiday(self._add_new_years_day("New Year's Day"))
51
49
 
@@ -51,6 +51,7 @@ class Bolivia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
51
51
  "S", # Santa Cruz
52
52
  "T", # Tarija
53
53
  )
54
+ start_year = 1825
54
55
 
55
56
  def __init__(self, *args, **kwargs):
56
57
  ChristianHolidays.__init__(self)
@@ -61,9 +62,6 @@ class Bolivia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
61
62
  super().__init__(*args, **kwargs)
62
63
 
63
64
  def _populate_public_holidays(self):
64
- if self._year <= 1824:
65
- return None
66
-
67
65
  # New Year's Day.
68
66
  self._add_observed(self._add_new_years_day(tr("Año Nuevo")))
69
67
 
@@ -85,7 +83,7 @@ class Bolivia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
85
83
  self._add_good_friday(tr("Viernes Santo"))
86
84
 
87
85
  # Labor Day.
88
- self._add_observed(may_1 := self._add_labor_day(self.tr("Día del Trabajo")))
86
+ self._add_observed(may_1 := self._add_labor_day(tr("Día del Trabajo")))
89
87
  # Supreme Decree #1210.
90
88
  if 2012 <= self._year <= 2015:
91
89
  self._add_observed(may_1, rule=TUE_TO_PREV_MON + THU_TO_NEXT_FRI)
@@ -224,7 +224,7 @@ class BosniaAndHerzegovina(
224
224
 
225
225
  self._add_holiday_nov_21(
226
226
  # Dayton Agreement Day.
227
- tr("Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini"),
227
+ tr("Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini")
228
228
  )
229
229
 
230
230
  # Catholic Christmas Eve.
@@ -30,6 +30,7 @@ class Botswana(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
30
30
 
31
31
  country = "BW"
32
32
  observed_label = "%s (observed)"
33
+ start_year = 1966
33
34
 
34
35
  def __init__(self, *args, **kwargs):
35
36
  ChristianHolidays.__init__(self)
@@ -40,9 +41,6 @@ class Botswana(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, St
40
41
  super().__init__(*args, **kwargs)
41
42
 
42
43
  def _populate_public_holidays(self):
43
- if self._year <= 1965:
44
- return None
45
-
46
44
  self._add_observed(self._add_new_years_day("New Year's Day"), rule=SUN_TO_NEXT_TUE)
47
45
  self._add_observed(self._add_new_years_day_two("New Year's Day Holiday"))
48
46
 
@@ -92,6 +92,8 @@ class Brazil(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
92
92
 
93
93
  supported_categories = (OPTIONAL, PUBLIC)
94
94
  supported_languages = ("en_US", "pt_BR", "uk")
95
+ # Decreto n. 155-B, de 14.01.1890
96
+ start_year = 1890
95
97
 
96
98
  def __init__(self, *args, **kwargs) -> None:
97
99
  ChristianHolidays.__init__(self)
@@ -99,10 +101,6 @@ class Brazil(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
99
101
  super().__init__(*args, **kwargs)
100
102
 
101
103
  def _populate_public_holidays(self):
102
- # Decreto n. 155-B, de 14.01.1890
103
- if self._year <= 1889:
104
- return None
105
-
106
104
  # Universal Fraternization Day.
107
105
  self._add_new_years_day(tr("Confraternização Universal"))
108
106
 
@@ -158,9 +156,6 @@ class Brazil(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
158
156
  self._add_christmas_day(tr("Natal"))
159
157
 
160
158
  def _populate_optional_holidays(self):
161
- if self._year <= 1889:
162
- return None
163
-
164
159
  # Carnival.
165
160
  name = tr("Carnaval")
166
161
  self._add_carnival_monday(name)
@@ -127,6 +127,8 @@ class Brunei(
127
127
  observed_estimated_label = tr("%s (diperhatikan, anggaran)")
128
128
  supported_languages = ("en_US", "ms", "th")
129
129
  weekend = {FRI, SUN}
130
+ # Available post-Independence from 1984 afterwards
131
+ start_year = 1984
130
132
 
131
133
  def __init__(self, *args, **kwargs):
132
134
  ChineseCalendarHolidays.__init__(self)
@@ -138,10 +140,6 @@ class Brunei(
138
140
  super().__init__(*args, **kwargs)
139
141
 
140
142
  def _populate_public_holidays(self):
141
- # Available post-Independence from 1984 afterwards
142
- if self._year <= 1983:
143
- return None
144
-
145
143
  # Awal Tahun Masihi
146
144
  # Status: In-Use.
147
145
 
@@ -48,6 +48,7 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
48
48
  observed_label = tr("%s (почивен ден)")
49
49
  supported_categories = (PUBLIC, SCHOOL)
50
50
  supported_languages = ("bg", "en_US", "uk")
51
+ start_year = 1990
51
52
 
52
53
  def __init__(self, *args, **kwargs):
53
54
  ChristianHolidays.__init__(self, JULIAN_REVISED_CALENDAR)
@@ -65,9 +66,6 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
65
66
  self._add_observed(dt, name)
66
67
 
67
68
  def _populate_public_holidays(self):
68
- if self._year <= 1989:
69
- return None
70
-
71
69
  dts_observed = set()
72
70
 
73
71
  # New Year's Day.
@@ -129,9 +127,6 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
129
127
  )
130
128
 
131
129
  def _populate_school_holidays(self):
132
- if self._year <= 1989:
133
- return None
134
-
135
130
  # National Awakening Day.
136
131
  self._add_holiday_nov_1(tr("Ден на народните будители"))
137
132