holidays 0.61__py3-none-any.whl → 0.62__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 (117) hide show
  1. holidays/constants.py +3 -0
  2. holidays/countries/__init__.py +1 -0
  3. holidays/countries/albania.py +2 -4
  4. holidays/countries/angola.py +2 -4
  5. holidays/countries/argentina.py +23 -1
  6. holidays/countries/armenia.py +1 -3
  7. holidays/countries/aruba.py +2 -4
  8. holidays/countries/australia.py +1 -0
  9. holidays/countries/azerbaijan.py +31 -8
  10. holidays/countries/bahamas.py +2 -4
  11. holidays/countries/barbados.py +2 -4
  12. holidays/countries/belarus.py +2 -4
  13. holidays/countries/belize.py +2 -4
  14. holidays/countries/bolivia.py +1 -3
  15. holidays/countries/botswana.py +1 -3
  16. holidays/countries/brazil.py +2 -7
  17. holidays/countries/brunei.py +2 -4
  18. holidays/countries/bulgaria.py +1 -6
  19. holidays/countries/burkina_faso.py +3 -5
  20. holidays/countries/burundi.py +1 -3
  21. holidays/countries/cambodia.py +2 -4
  22. holidays/countries/cameroon.py +2 -4
  23. holidays/countries/canada.py +7 -11
  24. holidays/countries/chad.py +2 -4
  25. holidays/countries/chile.py +1 -3
  26. holidays/countries/china.py +2 -7
  27. holidays/countries/congo.py +2 -4
  28. holidays/countries/croatia.py +1 -3
  29. holidays/countries/cuba.py +2 -4
  30. holidays/countries/curacao.py +2 -7
  31. holidays/countries/cyprus.py +1 -9
  32. holidays/countries/djibouti.py +2 -4
  33. holidays/countries/dominica.py +2 -4
  34. holidays/countries/dominican_republic.py +2 -4
  35. holidays/countries/eswatini.py +1 -4
  36. holidays/countries/ethiopia.py +1 -3
  37. holidays/countries/finland.py +5 -2
  38. holidays/countries/france.py +1 -0
  39. holidays/countries/gabon.py +2 -4
  40. holidays/countries/georgia.py +1 -3
  41. holidays/countries/germany.py +4 -56
  42. holidays/countries/ghana.py +1 -4
  43. holidays/countries/guernsey.py +328 -0
  44. holidays/countries/haiti.py +2 -8
  45. holidays/countries/hongkong.py +2 -3
  46. holidays/countries/indonesia.py +1 -3
  47. holidays/countries/iran.py +1 -3
  48. holidays/countries/ireland.py +1 -3
  49. holidays/countries/israel.py +1 -18
  50. holidays/countries/japan.py +2 -6
  51. holidays/countries/jersey.py +2 -4
  52. holidays/countries/kazakhstan.py +2 -4
  53. holidays/countries/kenya.py +1 -3
  54. holidays/countries/laos.py +2 -13
  55. holidays/countries/latvia.py +1 -3
  56. holidays/countries/lesotho.py +1 -3
  57. holidays/countries/lithuania.py +1 -3
  58. holidays/countries/madagascar.py +1 -4
  59. holidays/countries/malawi.py +1 -4
  60. holidays/countries/malaysia.py +1 -6
  61. holidays/countries/malta.py +2 -4
  62. holidays/countries/moldova.py +1 -3
  63. holidays/countries/mozambique.py +1 -3
  64. holidays/countries/namibia.py +1 -3
  65. holidays/countries/netherlands.py +1 -0
  66. holidays/countries/new_zealand.py +1 -3
  67. holidays/countries/nigeria.py +1 -3
  68. holidays/countries/pakistan.py +1 -3
  69. holidays/countries/palau.py +5 -7
  70. holidays/countries/papua_new_guinea.py +2 -4
  71. holidays/countries/paraguay.py +32 -31
  72. holidays/countries/philippines.py +1 -3
  73. holidays/countries/poland.py +1 -3
  74. holidays/countries/portugal.py +1 -0
  75. holidays/countries/russia.py +1 -3
  76. holidays/countries/saint_kitts_and_nevis.py +2 -4
  77. holidays/countries/seychelles.py +2 -4
  78. holidays/countries/slovakia.py +2 -4
  79. holidays/countries/slovenia.py +1 -3
  80. holidays/countries/south_africa.py +2 -4
  81. holidays/countries/south_korea.py +1 -6
  82. holidays/countries/switzerland.py +1 -0
  83. holidays/countries/taiwan.py +1 -3
  84. holidays/countries/tanzania.py +2 -8
  85. holidays/countries/thailand.py +6 -8
  86. holidays/countries/timor_leste.py +4 -8
  87. holidays/countries/tonga.py +2 -4
  88. holidays/countries/turkey.py +2 -7
  89. holidays/countries/ukraine.py +2 -4
  90. holidays/countries/united_kingdom.py +2 -8
  91. holidays/countries/united_states.py +1 -0
  92. holidays/countries/uruguay.py +2 -7
  93. holidays/countries/uzbekistan.py +1 -2
  94. holidays/countries/vanuatu.py +2 -4
  95. holidays/countries/vatican_city.py +1 -3
  96. holidays/countries/venezuela.py +1 -0
  97. holidays/countries/zambia.py +1 -4
  98. holidays/countries/zimbabwe.py +1 -3
  99. holidays/financial/brasil_bolsa_balcao.py +4 -6
  100. holidays/financial/european_central_bank.py +2 -5
  101. holidays/financial/ice_futures_europe.py +2 -5
  102. holidays/financial/ny_stock_exchange.py +20 -21
  103. holidays/holiday_base.py +8 -1
  104. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  105. holidays/locale/en_US/LC_MESSAGES/PY.po +18 -14
  106. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  107. holidays/locale/es/LC_MESSAGES/PY.po +17 -13
  108. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  109. holidays/locale/uk/LC_MESSAGES/PY.po +18 -14
  110. holidays/registry.py +1 -0
  111. holidays/version.py +1 -1
  112. {holidays-0.61.dist-info → holidays-0.62.dist-info}/METADATA +8 -3
  113. {holidays-0.61.dist-info → holidays-0.62.dist-info}/RECORD +117 -116
  114. {holidays-0.61.dist-info → holidays-0.62.dist-info}/WHEEL +1 -1
  115. {holidays-0.61.dist-info → holidays-0.62.dist-info}/AUTHORS +0 -0
  116. {holidays-0.61.dist-info → holidays-0.62.dist-info}/LICENSE +0 -0
  117. {holidays-0.61.dist-info → holidays-0.62.dist-info}/top_level.txt +0 -0
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,10 +70,6 @@ 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
74
  name = self.tr("Dia do Ano Novo")
77
75
  dt = self._add_new_years_day(name)
@@ -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)
@@ -345,4 +362,9 @@ class ArgentinaStaticHolidays:
345
362
  (JUN, 21, arg_bridge_public_holiday),
346
363
  (OCT, 11, arg_bridge_public_holiday),
347
364
  ),
365
+ 2025: (
366
+ (MAY, 2, arg_bridge_public_holiday),
367
+ (AUG, 15, arg_bridge_public_holiday),
368
+ (NOV, 21, arg_bridge_public_holiday),
369
+ ),
348
370
  }
@@ -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
 
@@ -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
 
@@ -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
  # ទិវាចូលឆ្នាំសាកល
@@ -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
@@ -361,6 +354,10 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
361
354
  # Victoria Day.
362
355
  self._add_holiday_1st_mon_before_may_24(tr("Victoria Day"))
363
356
 
357
+ if self._year >= 2020:
358
+ # Nunavut Day.
359
+ self._add_holiday_jul_9(tr("Nunavut Day"))
360
+
364
361
  if self._year >= 1900:
365
362
  # Civic Holiday.
366
363
  self._add_holiday_1st_mon_of_aug(tr("Civic Holiday"))
@@ -376,8 +373,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
376
373
  self._add_remembrance_day(tr("Remembrance Day"))
377
374
 
378
375
  def _populate_subdiv_nu_optional_holidays(self):
379
- if self._year >= 2000:
380
- # Nunavut Day.
376
+ if 2000 <= self._year <= 2019:
381
377
  name = tr("Nunavut Day")
382
378
  if self._year == 2000:
383
379
  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:
@@ -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("国际妇女节"))