holidays 0.73__py3-none-any.whl → 0.74__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 (71) hide show
  1. holidays/constants.py +8 -1
  2. holidays/countries/__init__.py +6 -0
  3. holidays/countries/aland_islands.py +63 -0
  4. holidays/countries/angola.py +2 -2
  5. holidays/countries/argentina.py +2 -2
  6. holidays/countries/azerbaijan.py +1 -1
  7. holidays/countries/belgium.py +1 -1
  8. holidays/countries/benin.py +199 -0
  9. holidays/countries/bermuda.py +141 -0
  10. holidays/countries/british_virgin_islands.py +205 -0
  11. holidays/countries/chile.py +1 -1
  12. holidays/countries/curacao.py +1 -1
  13. holidays/countries/dominican_republic.py +1 -1
  14. holidays/countries/ecuador.py +1 -1
  15. holidays/countries/equatorial_guinea.py +150 -0
  16. holidays/countries/ethiopia.py +1 -1
  17. holidays/countries/finland.py +200 -36
  18. holidays/countries/italy.py +1 -1
  19. holidays/countries/ivory_coast.py +1 -1
  20. holidays/countries/kazakhstan.py +23 -23
  21. holidays/countries/mexico.py +1 -1
  22. holidays/countries/morocco.py +1 -1
  23. holidays/countries/north_macedonia.py +267 -15
  24. holidays/countries/norway.py +1 -1
  25. holidays/countries/panama.py +1 -1
  26. holidays/countries/paraguay.py +1 -1
  27. holidays/countries/slovenia.py +1 -1
  28. holidays/countries/sweden.py +1 -1
  29. holidays/countries/thailand.py +2 -2
  30. holidays/countries/togo.py +2 -2
  31. holidays/countries/trinidad_and_tobago.py +1 -1
  32. holidays/countries/tuvalu.py +1 -1
  33. holidays/countries/ukraine.py +44 -44
  34. holidays/countries/united_states.py +1 -1
  35. holidays/countries/venezuela.py +1 -1
  36. holidays/countries/yemen.py +207 -0
  37. holidays/groups/chinese.py +3 -3
  38. holidays/groups/christian.py +4 -4
  39. holidays/groups/international.py +9 -9
  40. holidays/groups/islamic.py +3 -3
  41. holidays/locale/ar/LC_MESSAGES/YE.mo +0 -0
  42. holidays/locale/en_US/LC_MESSAGES/AX.mo +0 -0
  43. holidays/locale/en_US/LC_MESSAGES/BJ.mo +0 -0
  44. holidays/locale/en_US/LC_MESSAGES/FI.mo +0 -0
  45. holidays/locale/en_US/LC_MESSAGES/GQ.mo +0 -0
  46. holidays/locale/en_US/LC_MESSAGES/MK.mo +0 -0
  47. holidays/locale/en_US/LC_MESSAGES/TH.mo +0 -0
  48. holidays/locale/en_US/LC_MESSAGES/VG.mo +0 -0
  49. holidays/locale/en_US/LC_MESSAGES/YE.mo +0 -0
  50. holidays/locale/en_VG/LC_MESSAGES/VG.mo +0 -0
  51. holidays/locale/es/LC_MESSAGES/GQ.mo +0 -0
  52. holidays/locale/fi/LC_MESSAGES/AX.mo +0 -0
  53. holidays/locale/fi/LC_MESSAGES/FI.mo +0 -0
  54. holidays/locale/fr_BJ/LC_MESSAGES/BJ.mo +0 -0
  55. holidays/locale/mk/LC_MESSAGES/MK.mo +0 -0
  56. holidays/locale/sv_FI/LC_MESSAGES/AX.mo +0 -0
  57. holidays/locale/sv_FI/LC_MESSAGES/FI.mo +0 -0
  58. holidays/locale/th/LC_MESSAGES/AX.mo +0 -0
  59. holidays/locale/th/LC_MESSAGES/FI.mo +0 -0
  60. holidays/locale/uk/LC_MESSAGES/AX.mo +0 -0
  61. holidays/locale/uk/LC_MESSAGES/FI.mo +0 -0
  62. holidays/locale/uk/LC_MESSAGES/MK.mo +0 -0
  63. holidays/locale/uk/LC_MESSAGES/TH.mo +0 -0
  64. holidays/registry.py +6 -0
  65. holidays/version.py +1 -1
  66. {holidays-0.73.dist-info → holidays-0.74.dist-info}/METADATA +50 -8
  67. {holidays-0.73.dist-info → holidays-0.74.dist-info}/RECORD +71 -47
  68. {holidays-0.73.dist-info → holidays-0.74.dist-info}/WHEEL +1 -1
  69. {holidays-0.73.dist-info → holidays-0.74.dist-info}/licenses/CONTRIBUTORS +2 -0
  70. {holidays-0.73.dist-info → holidays-0.74.dist-info}/licenses/LICENSE +0 -0
  71. {holidays-0.73.dist-info → holidays-0.74.dist-info}/top_level.txt +0 -0
holidays/constants.py CHANGED
@@ -39,7 +39,6 @@ HOLIDAY_NAME_DELIMITER = "; " # Holiday names separator.
39
39
 
40
40
  # Supported holiday categories.
41
41
  ARMED_FORCES = "armed_forces"
42
- ARMENIAN = "armenian"
43
42
  BANK = "bank"
44
43
  GOVERNMENT = "government"
45
44
  HALF_DAY = "half_day"
@@ -58,5 +57,13 @@ HINDU = "hindu"
58
57
  ISLAMIC = "islamic"
59
58
  ORTHODOX = "orthodox"
60
59
 
60
+ ALBANIAN = "albanian"
61
+ ARMENIAN = "armenian"
62
+ BOSNIAN = "bosnian"
63
+ ROMA = "roma"
64
+ SERBIAN = "serbian"
65
+ TURKISH = "turkish"
66
+ VLACH = "vlach"
67
+
61
68
  DEFAULT_START_YEAR = 1901
62
69
  DEFAULT_END_YEAR = 2100
@@ -13,6 +13,7 @@
13
13
  # flake8: noqa: F401
14
14
 
15
15
  from .afghanistan import Afghanistan, AF, AFG
16
+ from .aland_islands import AlandIslands, AX, ALA, HolidaysAX
16
17
  from .albania import Albania, AL, ALB
17
18
  from .algeria import Algeria, DZ, DZA
18
19
  from .american_samoa import AmericanSamoa, AS, ASM, HolidaysAS
@@ -32,10 +33,13 @@ from .barbados import Barbados, BB, BRB
32
33
  from .belarus import Belarus, BY, BLR
33
34
  from .belgium import Belgium, BE, BEL
34
35
  from .belize import Belize, BZ, BLZ
36
+ from .benin import Benin, BJ, BEN
37
+ from .bermuda import Bermuda, BM, BMU
35
38
  from .bolivia import Bolivia, BO, BOL
36
39
  from .bosnia_and_herzegovina import BosniaAndHerzegovina, BA, BIH
37
40
  from .botswana import Botswana, BW, BWA
38
41
  from .brazil import Brazil, BR, BRA
42
+ from .british_virgin_islands import BritishVirginIslands, VG, VGB
39
43
  from .brunei import Brunei, BN, BRN
40
44
  from .bulgaria import Bulgaria, BG, BLG
41
45
  from .burkina_faso import BurkinaFaso, BF, BFA
@@ -62,6 +66,7 @@ from .dominican_republic import DominicanRepublic, DO, DOM
62
66
  from .ecuador import Ecuador, EC, ECU
63
67
  from .egypt import Egypt, EG, EGY
64
68
  from .el_salvador import ElSalvador, SV, SLV
69
+ from .equatorial_guinea import EquatorialGuinea, GQ, GNQ
65
70
  from .estonia import Estonia, EE, EST
66
71
  from .eswatini import Eswatini, SZ, SZW, Swaziland
67
72
  from .ethiopia import Ethiopia, ET, ETH
@@ -190,5 +195,6 @@ from .vanuatu import Vanuatu, VU, VTU
190
195
  from .vatican_city import VaticanCity, VA, VAT
191
196
  from .venezuela import Venezuela, VE, VEN
192
197
  from .vietnam import Vietnam, VN, VNM
198
+ from .yemen import Yemen, YE, YEM
193
199
  from .zambia import Zambia, ZM, ZMB
194
200
  from .zimbabwe import Zimbabwe, ZW, ZWE
@@ -0,0 +1,63 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.constants import PUBLIC, UNOFFICIAL, WORKDAY
14
+ from holidays.countries.finland import Finland
15
+
16
+
17
+ class HolidaysAX(Finland):
18
+ """Åland Islands holidays.
19
+
20
+ Alias of a Finnish subdivision that is also officially assigned
21
+ its own country code in ISO 3166-1.
22
+
23
+ !!! note "Note"
24
+ Åland's Autonomy Day is currently added in Finland's implementation.
25
+
26
+ References:
27
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Åland>
28
+ * <https://en.wikipedia.org/wiki/Åland's_Autonomy_Day>
29
+ """
30
+
31
+ country = "AX"
32
+ parent_entity = Finland
33
+ default_language = "fi"
34
+ supported_languages = ("en_US", "fi", "sv_FI", "th", "uk")
35
+ supported_categories = (PUBLIC, UNOFFICIAL, WORKDAY)
36
+ subdivisions = () # Override Finland subdivisions.
37
+ subdivisions_aliases = {} # Override Finland subdivisions aliases.
38
+ # Åland Islands got its autonomy on May 7th, 1920.
39
+ start_year = 1921
40
+
41
+ def _populate_public_holidays(self) -> None:
42
+ self.subdiv = "01"
43
+ super()._populate_public_holidays()
44
+
45
+ def _populate_unofficial_holidays(self) -> None:
46
+ self.subdiv = "01"
47
+ super()._populate_unofficial_holidays()
48
+
49
+ def _populate_workday_holidays(self) -> None:
50
+ self.subdiv = "01"
51
+ super()._populate_workday_holidays()
52
+
53
+
54
+ class AlandIslands(HolidaysAX):
55
+ pass
56
+
57
+
58
+ class AX(HolidaysAX):
59
+ pass
60
+
61
+
62
+ class ALA(HolidaysAX):
63
+ pass
@@ -36,8 +36,8 @@ class Angola(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
36
36
  * [Law #16/96](https://www.lexlink.eu/FileGet.aspx?FileId=3037036)
37
37
  * [Law #1/01](https://www.lexlink.eu/FileGet.aspx?FileId=3029035)
38
38
  * [Law #7/03](https://www.lexlink.eu/FileGet.aspx?FileId=3002131)
39
- * [Law #10/11](https://equadros.gov.ao/documents/40468/0/lei_10_11-1+%281%29.pdf)
40
- * [Law #11/18](https://equadros.gov.ao/documents/40468/0/Lei_no_11-18+%281%29.pdf)
39
+ * [Law #10/11](https://equadros.gov.ao/documents/40468/0/lei_10_11-1+(1).pdf)
40
+ * [Law #11/18](https://equadros.gov.ao/documents/40468/0/Lei_no_11-18+(1).pdf)
41
41
  * <https://www.officeholidays.com/countries/angola/>
42
42
  * <https://www.timeanddate.com/holidays/angola/>
43
43
  """
@@ -41,7 +41,7 @@ class Argentina(
41
41
  """Argentina holidays.
42
42
 
43
43
  References:
44
- * [Spanish Wikipedia](https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_feriados_en_Argentina)
44
+ * [Spanish Wikipedia](https://es.wikipedia.org/wiki/Anexo:Días_festivos_en_Argentina)
45
45
  * [Decree-Law 2446](https://www.argentina.gob.ar/normativa/nacional/decreto_ley-2446-1956-161122/texto)
46
46
  * [Law 21329](https://www.argentina.gob.ar/normativa/nacional/ley-21329-65453/texto)
47
47
  * [Law 22655](https://www.argentina.gob.ar/normativa/nacional/ley-22655-140416/texto)
@@ -814,7 +814,7 @@ class ArgentinaStaticHolidays:
814
814
 
815
815
  Special Holidays References:
816
816
  * [Decree 615/2010](https://www.argentina.gob.ar/normativa/nacional/decreto-615-2010-166825/texto)
817
- * [Joint Resolution 1159/2010](https://www.argentina.gob.ar/normativa/nacional/resoluci%C3%B3n-1159-2010-173748/texto)
817
+ * [Joint Resolution 1159/2010](https://www.argentina.gob.ar/normativa/nacional/resolución-1159-2010-173748/texto)
818
818
  * [Law 26721](https://www.argentina.gob.ar/normativa/nacional/ley-26721-191835/texto)
819
819
  * [Law 26763](https://www.argentina.gob.ar/normativa/nacional/ley-26763-201915/texto)
820
820
  * [Law 26837](https://www.argentina.gob.ar/normativa/nacional/ley-26837-207405/texto)
@@ -29,7 +29,7 @@ class Azerbaijan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
29
29
 
30
30
  References:
31
31
  * <https://en.wikipedia.org/wiki/Public_holidays_in_Azerbaijan>
32
- * <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://az.wikipedia.org/wiki/Azərbaycanın_dövlət_bayramları_və_xüsusi_günləri>
33
33
  * <https://www.sosial.gov.az/en/prod-calendar>
34
34
  """
35
35
 
@@ -23,7 +23,7 @@ class Belgium(HolidayBase, ChristianHolidays, InternationalHolidays):
23
23
  References:
24
24
  * <https://en.wikipedia.org/wiki/Public_holidays_in_Belgium>
25
25
  * <https://www.belgium.be/nl/over_belgie/land/belgie_in_een_notendop/feestdagen>
26
- * <https://nl.wikipedia.org/wiki/Feestdagen_in_Belgi%C3%AB>
26
+ * <https://nl.wikipedia.org/wiki/Feestdagen_in_België>
27
27
  * <https://www.nbb.be/en/about-national-bank/national-bank-belgium/public-holidays>
28
28
  """
29
29
 
@@ -0,0 +1,199 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from gettext import gettext as tr
14
+
15
+ from holidays.constants import PUBLIC, WORKDAY
16
+ from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
17
+ from holidays.holiday_base import HolidayBase
18
+
19
+
20
+ class Benin(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
21
+ """Benin holidays.
22
+
23
+ References:
24
+ * <https://en.wikipedia.org/wiki/Public_holidays_in_Benin>
25
+ * [Order 71-14](https://web.archive.org/web/20240727075244/https://sgg.gouv.bj/doc/ordonnance-1971-14/)
26
+ * [Order 76-35](https://web.archive.org/web/20240726042853/https://sgg.gouv.bj/doc/ordonnance-1976-35/)
27
+ * [Order 79-33](https://web.archive.org/web/20240725115717/https://sgg.gouv.bj/doc/ordonnance-1979-33/)
28
+ * [Law 90-019](https://web.archive.org/web/20250527021602/https://sgg.gouv.bj/doc/loi-90-019/)
29
+ * [Law 97-031](https://web.archive.org/web/20250527022039/https://sgg.gouv.bj/doc/loi-97-031/)
30
+ * [Law 2024-32](https://web.archive.org/web/20250321041430/https://sgg.gouv.bj/doc/loi-2024-32/)
31
+
32
+ Official dates:
33
+ * [2015](https://web.archive.org/web/20211130121041/https://beninconsulate.co.ke/index.php/news-events/7-public-holidays-2015)
34
+ * [2017](https://web.archive.org/web/20211130124252/https://beninconsulate.co.ke/index.php/news-events/8-public-holidays-2017)
35
+ * [2019](https://web.archive.org/web/20231003144018/https://beninconsulate.co.ke/index.php/news-events)
36
+ * [2024](https://web.archive.org/web/20241211032923/https://beninconsulate.co.ke/index.php/news-events)
37
+ * [2025](https://web.archive.org/web/20250317141957/https://beninconsulate.co.ke/index.php/news-events?start=1)
38
+
39
+ Certain holidays dates:
40
+ * 2022:
41
+ * [All Saints' Day](https://web.archive.org/web/20241010101230/https://travail.gouv.bj/page/communiques/la-journee-du-mardi-1er-novembre-2022-declaree-feriee-chomee-et-payee)
42
+ * [Christmas Day](https://web.archive.org/web/20240814200022/https://travail.gouv.bj/page/communiques/la-journee-du-dimanche-25-decembre-2022-declaree-feriee-chomee-et-payee-a-loccasion-de-la-celebration-de-la-fete-de-noel-lire-le-communique-du-ministre-du-travail-et-de-la-fonction-publique)
43
+ * 2023:
44
+ * [New Year's Day](https://web.archive.org/web/20240724084416/https://travail.gouv.bj/page/communiques/la-journee-du-dimanche-1er-janvier-2023-declaree-feriee-chomee-et-payee-a-loccasion-de-la-celebration-de-la-fete-du-nouvel-an)
45
+ * [Vodoun Festival](https://web.archive.org/web/20240724084406/https://travail.gouv.bj/page/communiques/la-journee-du-mardi-10-janvier-2023-est-declaree-feriee-chomee-et-payee-a-loccasion-de-la-celebration-de-la-fete-annuelle-des-religions-traditionnelles-2301071350-956)
46
+ * [Eid al-Fitr](https://web.archive.org/web/20240723004550/https://travail.gouv.bj/page/communiques/celebration-le-vendredi-21-avril-2023-de-la-fete-du-ramadan)
47
+ * [Easter Monday](https://web.archive.org/web/20241010103541/https://travail.gouv.bj/page/communiques/la-journee-du-lundi-10-avril-2023-est-declaree-feriee-chomee-et-payee-en-raison-de-la-fete-de-paques)
48
+ * [Whit Monday](https://web.archive.org/web/20240911163554/https://travail.gouv.bj/page/communiques/la-fete-de-pentecote)
49
+ * [Labor Day](https://web.archive.org/web/20240814205702/https://travail.gouv.bj/page/communiques/la-journee-du-lundi-1er-mai-2023-declaree-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national-a-loccasion-de-la-celebration-de-la-fete-du-travail)
50
+ * [Assumption Day](https://web.archive.org/web/20241214182235/https://travail.gouv.bj/page/communiques/la-journee-du-mardi-15-aout-2023-declaree-feriee-chomee-et-payee-en-raison-de-la-fete-de-lassomption)
51
+ * [Independence Day](https://web.archive.org/web/20240723004533/https://travail.gouv.bj/page/communiques/la-journee-du-mardi-1er-aout-2023-declaree-feriee-chomee-et-payee-a-l-occasion-de-la-fete-nationale)
52
+ * [Eid al-Adha](https://web.archive.org/web/20250422035008/https://travail.gouv.bj/page/communiques/communique-du-ministere-du-travail-et-de-la-fonction-publique-2306262022-744)
53
+ * 2024:
54
+ * [Vodoun Festival](https://web.archive.org/web/20240723004435/https://travail.gouv.bj/page/communiques/la-journee-du-mercredi-10-janvier-2024-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
55
+ * [Eid al-Fitr](https://web.archive.org/web/20241010114534/https://travail.gouv.bj/page/communiques/la-journee-du-mercredi-10-avril-2024-jour-du-ramadan-est-declaree-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
56
+ * [Easter Monday](https://web.archive.org/web/20241106004344/https://travail.gouv.bj/page/communiques/la-journee-du-lundi-1er-avril-2024-lundi-de-paques-est-chomee)
57
+ * [Assumption Day](https://web.archive.org/web/20250215044724/https://travail.gouv.bj/page/communiques/la-journee-du-dimanche-15-aout-jour-de-lassomption-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
58
+ * [Eid al-Adha](https://web.archive.org/web/20241214200230/https://travail.gouv.bj/page/communiques/jour-de-la-tabaski)
59
+ * [Labor Day](https://web.archive.org/web/20250418224409/https://www.travail.gouv.bj/page/communiques/la-journee-du-mercredi-1er-mai-2024-journee-de-la-fete-du-travail-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
60
+ * [Ascension Day](https://web.archive.org/web/20241214204011/https://travail.gouv.bj/page/communiques/le-jeudi-09-mai-2024-jour-de-lascension-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
61
+ * [Whit Monday](https://web.archive.org/web/20241010113401/https://travail.gouv.bj/page/communiques/le-lundi-20-mai-2024-lundi-de-pentecote-est-ferie-chome-et-paye-sur-toute-letendue-du-territoire-national)
62
+ * [Prophet's Birthday](https://web.archive.org/web/20250215034616/https://travail.gouv.bj/page/communiques/la-journee-du-dimanche-15-septembre-2024-jour-de-maoloud-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
63
+ * [Christmas Day](https://web.archive.org/web/20250122081816/https://travail.gouv.bj/page/communiques/la-journee-du-mercredi-25-decembre-2024-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
64
+ * 2025:
65
+ * [New Year's Day](https://web.archive.org/web/20250422023225/https://travail.gouv.bj/page/communiques/la-journee-du-mercredi-1er-janvier-2025-fete-du-nouvel-an-est-feriee-chomee-et-payee-sur-toute-letendue-du-territoire-national)
66
+ * [Vodoun Festival](https://web.archive.org/web/20250422034718/https://travail.gouv.bj/page/communiques/les-journees-du-jeudi-9-janvier-2024-et-vendredi-10-janvier-2024-sont-feriees-chomees-et-payees-sur-toute-letendue-du-territoire-national)
67
+ """
68
+
69
+ country = "BJ"
70
+ default_language = "fr_BJ"
71
+ # %s (estimated).
72
+ estimated_label = tr("%s (estimé)")
73
+ # Order 76-35 of June 30, 1976.
74
+ start_year = 1977
75
+ supported_categories = (PUBLIC, WORKDAY)
76
+ supported_languages = ("en_US", "fr_BJ")
77
+
78
+ def __init__(self, islamic_show_estimated: bool = True, *args, **kwargs):
79
+ """
80
+ Args:
81
+ islamic_show_estimated:
82
+ Whether to add "estimated" label to Islamic holidays name
83
+ if holiday date is estimated.
84
+ """
85
+ ChristianHolidays.__init__(self)
86
+ InternationalHolidays.__init__(self)
87
+ IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
88
+ super().__init__(*args, **kwargs)
89
+
90
+ def _populate_public_holidays(self):
91
+ # New Year's Day.
92
+ self._add_new_years_day(tr("Fête du Nouvel An"))
93
+
94
+ # Established in 1998 by Law 97-031.
95
+ # Changed in 2025 by Law 2024-32.
96
+ if self._year >= 1998:
97
+ # Vodoun Festival.
98
+ name = tr("Fête annuelle des religions traditionnelles")
99
+ if self._year >= 2025:
100
+ self._add_holiday_1_day_prior_2nd_fri_of_jan(name)
101
+ self._add_holiday_2nd_fri_of_jan(name)
102
+ else:
103
+ self._add_holiday_jan_10(name)
104
+
105
+ # Established in 1980 by Order 79-33.
106
+ # Abolished in 1991 by Law 90-019.
107
+ if 1980 <= self._year <= 1990:
108
+ # Martyrs' Day.
109
+ self._add_holiday_jan_16(tr("Journée des Martyrs"))
110
+
111
+ # Youth Day.
112
+ self._add_holiday_apr_1(tr("Journée de la Jeunesse Béninoise"))
113
+
114
+ # Changed in 1991 by Law 90-019.
115
+ if self._year >= 1991:
116
+ # Easter Monday.
117
+ self._add_easter_monday(tr("Lundi de Pâques"))
118
+ else:
119
+ # Easter Sunday.
120
+ self._add_easter_sunday(tr("Jour de Pâques"))
121
+
122
+ # Labor Day.
123
+ self._add_labor_day(tr("Fête du Travail"))
124
+
125
+ # Established in 1991 by Law 90-019.
126
+ if self._year >= 1991:
127
+ # Ascension Day.
128
+ self._add_ascension_thursday(tr("Jour de l'Ascension"))
129
+
130
+ if self._year >= 1991:
131
+ # Whit Monday.
132
+ self._add_whit_monday(tr("Lundi de Pentecôte"))
133
+ else:
134
+ # Whit Sunday.
135
+ self._add_whit_sunday(tr("Jour de Pentecôte"))
136
+
137
+ # Established in 1990 by Law 90-019.
138
+ if self._year >= 1990:
139
+ # Assumption Day.
140
+ self._add_assumption_of_mary_day(tr("Jour de l'Assomption"))
141
+
142
+ # Established in 1977 by Order 71-14.
143
+ # Abolished in 1990 by Law 90-019.
144
+ if self._year <= 1989:
145
+ # Armed Forces Day.
146
+ self._add_holiday_oct_26(tr("Fête des Forces Armées Populaires du Bénin"))
147
+
148
+ # Established in 1990 by Law 90-019.
149
+ if self._year >= 1990:
150
+ # All Saints' Day.
151
+ self._add_all_saints_day(tr("La Toussaint"))
152
+
153
+ # National Day.
154
+ name = tr("Fête Nationale")
155
+ if self._year >= 1991:
156
+ self._add_holiday_aug_1(name)
157
+ else:
158
+ self._add_holiday_nov_30(name)
159
+
160
+ # Christmas Day.
161
+ self._add_christmas_day(tr("Jour de Noël"))
162
+
163
+ # Established in 1977 by Order 71-14.
164
+ # Abolished in 1990 by Law 90-019.
165
+ if self._year <= 1989:
166
+ # Production Day.
167
+ self._add_holiday_dec_31(tr("Fête de la Production"))
168
+
169
+ # Islamic holidays.
170
+
171
+ # Established in 1990 by Law 90-019.
172
+ if self._year >= 1990:
173
+ # Prophet's Birthday.
174
+ self._add_mawlid_day(tr("Journée Maouloud"))
175
+
176
+ # Eid al-Fitr.
177
+ self._add_eid_al_fitr_day(tr("Jour du Ramadan"))
178
+
179
+ # Eid al-Adha.
180
+ self._add_eid_al_adha_day(tr("Jour de la Tabaski"))
181
+
182
+ def _populate_workday_holidays(self):
183
+ if self._year >= 1990:
184
+ # Remembrance Day.
185
+ self._add_holiday_jan_16(tr("Journée de Souvenir"))
186
+
187
+ # People's Sovereignty Day.
188
+ self._add_holiday_feb_28(tr("Journée de la Souveraineté de Peuple"))
189
+
190
+ # Women's Day.
191
+ self._add_holiday_mar_8(tr("Journée de la Femme"))
192
+
193
+
194
+ class BJ(Benin):
195
+ pass
196
+
197
+
198
+ class BEN(Benin):
199
+ pass
@@ -0,0 +1,141 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.calendars.gregorian import MAY, JUN, OCT, NOV
14
+ from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
15
+ from holidays.observed_holiday_base import (
16
+ ObservedHolidayBase,
17
+ SAT_SUN_TO_NEXT_MON,
18
+ SAT_SUN_TO_NEXT_MON_TUE,
19
+ )
20
+
21
+
22
+ class Bermuda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
23
+ """Bermuda holidays.
24
+
25
+ References:
26
+ * [Public Holidays Act 1947](https://web.archive.org/web/20250527163956/https://www.bermudalaws.bm/Laws/Consolidated%20Law/1947/Public%20Holidays%20Act%201947)
27
+ * [Public Holidays Amendment Act 1999](https://web.archive.org/web/20250527163749/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/1999/Public%20Holidays%20Amendment%20Act%201999)
28
+ * [Public Holidays Amendment Act 2008](https://web.archive.org/web/20250527163810/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2008/Public%20Holidays%20Amendment%20Act%202008)
29
+ * [Public Holidays Amendment (No. 2) Act 2009](https://web.archive.org/web/20250527163816/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2009/Public%20Holidays%20Amendment%20%28No.%202%29%20Act%202009)
30
+ * [Public Holidays Amendment Act 2017](https://web.archive.org/web/20250527163819/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2017/Public%20Holidays%20Amendment%20Act%202017)
31
+ * [Public Holidays Amendment Act 2020](https://web.archive.org/web/20250527163836/https://www.bermudalaws.bm/Laws/Annual%20Law/Acts/2020/Public%20Holidays%20Amendment%20Act%202020)
32
+ * [Government of Bermuda](https://web.archive.org/web/20250530055854/https://www.gov.bm/public-holidays)
33
+ * [Proclamation BR 149 / 2018](https://web.archive.org/web/20250530114331/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2018/Proclamation%20-%20Bermuda%20Day%20Public%20Holiday)
34
+ """
35
+
36
+ country = "BM"
37
+ observed_label = "%s (observed)"
38
+ start_year = 1948
39
+
40
+ def __init__(self, *args, **kwargs):
41
+ ChristianHolidays.__init__(self)
42
+ InternationalHolidays.__init__(self)
43
+ StaticHolidays.__init__(self, BermudaStaticHolidays)
44
+ kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
45
+ super().__init__(*args, **kwargs)
46
+
47
+ def _populate_public_holidays(self):
48
+ # New Year's Day.
49
+ self._add_observed(self._add_new_years_day("New Year's Day"))
50
+
51
+ # Good Friday.
52
+ self._add_good_friday("Good Friday")
53
+
54
+ # Bermuda Day.
55
+ name = "Bermuda Day"
56
+ if self._year <= 2017:
57
+ self._add_observed(self._add_holiday_may_24(name))
58
+ elif self._year == 2019:
59
+ self._add_holiday_may_24(name)
60
+ elif self._year <= 2020:
61
+ self._add_holiday_last_fri_of_may(name)
62
+ else:
63
+ self._add_holiday_3_days_prior_last_mon_of_may(name)
64
+
65
+ # Queen's Birthday.
66
+ name = "Queen's Birthday"
67
+ if self._year <= 1999:
68
+ self._add_holiday_3rd_mon_of_jun(name)
69
+ elif self._year <= 2008:
70
+ self._add_holiday_2_days_past_2nd_sat_of_jun(name)
71
+
72
+ # National Heroes Day.
73
+ name = "National Heroes Day"
74
+ if self._year == 2008:
75
+ self._add_holiday_2nd_mon_of_oct(name)
76
+ elif self._year >= 2009:
77
+ self._add_holiday_3rd_mon_of_jun(name)
78
+
79
+ self._add_holiday_4_days_prior_1st_mon_of_aug(
80
+ # Cup Match Day.
81
+ "Cup Match Day"
82
+ if self._year <= 1999
83
+ # Emancipation Day.
84
+ else "Emancipation Day"
85
+ )
86
+
87
+ self._add_holiday_3_days_prior_1st_mon_of_aug(
88
+ # Somers Day.
89
+ "Somers Day"
90
+ if self._year <= 2019
91
+ # Mary Prince Day.
92
+ else "Mary Prince Day"
93
+ )
94
+
95
+ # Labor Day.
96
+ self._add_holiday_1st_mon_of_sep("Labour Day")
97
+
98
+ # Remembrance Day.
99
+ self._add_observed(self._add_remembrance_day("Remembrance Day"))
100
+
101
+ # Christmas Day.
102
+ self._add_observed(self._add_christmas_day("Christmas Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
103
+
104
+ # Boxing Day.
105
+ self._add_observed(self._add_christmas_day_two("Boxing Day"), rule=SAT_SUN_TO_NEXT_MON_TUE)
106
+
107
+
108
+ class BM(Bermuda):
109
+ pass
110
+
111
+
112
+ class BMU(Bermuda):
113
+ pass
114
+
115
+
116
+ class BermudaStaticHolidays:
117
+ """Bermuda special holidays.
118
+
119
+ References:
120
+ * [June 5, 2007 Holiday](https://web.archive.org/web/20250530122818/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2007/Proclamation)
121
+ * Portuguese Welcome 170th Anniversary
122
+ * <https://web.archive.org/web/20241210201648/https://www.royalgazette.com/other/news/article/20191025/portuguese-welcome-170th-anniversary-holiday/>
123
+ * <https://web.archive.org/web/20250530122008/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2018/Proclamation%20-%20Portguese%20Public%20Holiday>
124
+ * Flora Duffy Day
125
+ * <https://web.archive.org/web/20240613083451/https://bernews.com/2021/10/governor-signs-flora-duffy-day-proclamation/>
126
+ * <https://web.archive.org/web/20250530113359/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2021/Proclamation%20for%2018%20October%202021%20Holiday>
127
+ * The Coronation of His Majesty King Charles III Holiday
128
+ * <https://web.archive.org/web/20250222035055/https://gov.bm/articles/coronation-his-majesty-king-charles-iii-her-majesty-queen-consort>
129
+ * <https://web.archive.org/web/20250530112129/https://www.bermudalaws.bm/Laws/Annual%20Law/Statutory%20Instruments/2023/Proclamation%20for%208%20May%202023%20Holiday>
130
+ """
131
+
132
+ special_public_holidays = {
133
+ # Public Holiday.
134
+ 2007: (JUN, 5, "Public Holiday"),
135
+ # Portuguese Welcome 170th Anniversary.
136
+ 2019: (NOV, 4, "Portuguese Welcome 170th Anniversary"),
137
+ # Flora Duffy Day.
138
+ 2021: (OCT, 18, "Flora Duffy Day"),
139
+ # The Coronation of His Majesty King Charles III.
140
+ 2023: (MAY, 8, "The Coronation of His Majesty King Charles III"),
141
+ }