holidays 0.26__py3-none-any.whl → 0.27__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/__init__.py +1 -1
- holidays/calendars/__init__.py +5 -7
- holidays/calendars/buddhist.py +1 -3
- holidays/calendars/chinese.py +1 -3
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hindu.py +1 -3
- holidays/calendars/islamic.py +1341 -1345
- holidays/calendars/thai.py +217 -26
- holidays/countries/__init__.py +4 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +13 -24
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/azerbaijan.py +30 -38
- holidays/countries/bahrain.py +5 -5
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +1 -3
- holidays/countries/belize.py +4 -16
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +9 -18
- holidays/countries/brazil.py +2 -5
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +2 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +71 -77
- holidays/countries/canada.py +19 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +4 -11
- holidays/countries/china.py +1 -2
- holidays/countries/colombia.py +17 -15
- holidays/countries/costa_rica.py +2 -6
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +2 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +1 -3
- holidays/countries/dominican_republic.py +1 -3
- holidays/countries/ecuador.py +54 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +5 -14
- holidays/countries/finland.py +1 -3
- holidays/countries/gabon.py +49 -53
- holidays/countries/greece.py +1 -2
- holidays/countries/honduras.py +16 -13
- holidays/countries/hongkong.py +7 -8
- holidays/countries/hungary.py +93 -92
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +120 -114
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +9 -4
- holidays/countries/israel.py +6 -18
- holidays/countries/italy.py +1 -2
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +10 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +1 -3
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +223 -248
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +1 -3
- holidays/countries/moldova.py +3 -6
- holidays/countries/monaco.py +16 -26
- holidays/countries/montenegro.py +23 -19
- holidays/countries/morocco.py +2 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/new_zealand.py +11 -21
- holidays/countries/nicaragua.py +26 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +1 -3
- holidays/countries/pakistan.py +71 -72
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +54 -47
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +3 -9
- holidays/countries/portugal.py +3 -11
- holidays/countries/romania.py +3 -5
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +19 -29
- holidays/countries/singapore.py +70 -74
- holidays/countries/slovakia.py +1 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +14 -23
- holidays/countries/spain.py +2 -5
- holidays/countries/sweden.py +1 -3
- holidays/countries/taiwan.py +2 -5
- holidays/countries/thailand.py +34 -81
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +6 -18
- holidays/countries/united_arab_emirates.py +21 -29
- holidays/countries/united_kingdom.py +47 -67
- holidays/countries/united_states.py +42 -72
- holidays/countries/vatican_city.py +1 -3
- holidays/countries/venezuela.py +8 -6
- holidays/countries/vietnam.py +6 -18
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +1 -3
- holidays/financial/ny_stock_exchange.py +31 -48
- holidays/groups/__init__.py +18 -0
- holidays/groups/buddhist.py +71 -0
- holidays/groups/chinese.py +235 -0
- holidays/groups/christian.py +483 -0
- holidays/groups/hindu.py +71 -0
- holidays/groups/international.py +157 -0
- holidays/groups/islamic.py +288 -0
- holidays/groups/thai.py +157 -0
- holidays/helpers.py +20 -0
- holidays/holiday_base.py +49 -75
- holidays/holiday_groups.py +11 -1190
- holidays/locale/am/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/CA.po +43 -43
- holidays/locale/ar/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/UA.po +16 -14
- holidays/locale/be/LC_MESSAGES/BY.po +9 -8
- holidays/locale/bg/LC_MESSAGES/BG.po +14 -12
- holidays/locale/da/LC_MESSAGES/DK.po +7 -6
- holidays/locale/el/LC_MESSAGES/CY.po +5 -3
- holidays/locale/el/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AR.po +26 -25
- holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
- holidays/locale/en_US/LC_MESSAGES/BG.po +14 -12
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +9 -8
- holidays/locale/en_US/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/CL.po +18 -18
- holidays/locale/en_US/LC_MESSAGES/CO.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CR.po +6 -5
- holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
- holidays/locale/en_US/LC_MESSAGES/CY.po +5 -3
- holidays/locale/en_US/LC_MESSAGES/DK.po +7 -6
- holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
- holidays/locale/en_US/LC_MESSAGES/ET.po +18 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
- holidays/locale/en_US/LC_MESSAGES/JP.po +19 -17
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +16 -15
- holidays/locale/en_US/LC_MESSAGES/MD.po +5 -5
- holidays/locale/en_US/LC_MESSAGES/MX.po +3 -2
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PL.po +23 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +31 -31
- holidays/locale/en_US/LC_MESSAGES/PY.po +13 -11
- holidays/locale/en_US/LC_MESSAGES/RO.po +4 -3
- holidays/locale/en_US/LC_MESSAGES/RS.po +10 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SK.po +14 -14
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +16 -14
- holidays/locale/en_US/LC_MESSAGES/VE.po +6 -6
- holidays/locale/es/LC_MESSAGES/AR.po +26 -25
- holidays/locale/es/LC_MESSAGES/CL.po +18 -18
- holidays/locale/es/LC_MESSAGES/CO.po +19 -19
- holidays/locale/es/LC_MESSAGES/CR.po +6 -5
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.po +12 -12
- holidays/locale/es/LC_MESSAGES/MX.po +3 -2
- holidays/locale/es/LC_MESSAGES/NI.po +10 -10
- holidays/locale/es/LC_MESSAGES/PY.po +13 -11
- holidays/locale/es/LC_MESSAGES/VE.po +6 -6
- holidays/locale/fi/LC_MESSAGES/FI.po +13 -13
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/MC.po +15 -14
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/ja/LC_MESSAGES/JP.po +19 -17
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +139 -0
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
- holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
- holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
- holidays/locale/no/LC_MESSAGES/NO.po +1 -1
- holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
- holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +23 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +31 -31
- holidays/locale/ro/LC_MESSAGES/MD.po +5 -5
- holidays/locale/ro/LC_MESSAGES/RO.po +4 -3
- holidays/locale/sk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/sr/LC_MESSAGES/RS.po +10 -10
- holidays/locale/sv/LC_MESSAGES/FI.po +13 -13
- holidays/locale/sv/LC_MESSAGES/SE.po +1 -1
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +96 -0
- holidays/locale/th/LC_MESSAGES/CA.po +43 -43
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +145 -0
- holidays/locale/th/LC_MESSAGES/TH.po +41 -41
- holidays/locale/uk/LC_MESSAGES/AR.po +26 -25
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CL.po +18 -18
- holidays/locale/uk/LC_MESSAGES/CO.po +19 -19
- holidays/locale/uk/LC_MESSAGES/CR.po +6 -5
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DK.po +7 -6
- holidays/locale/uk/LC_MESSAGES/DO.po +12 -12
- holidays/locale/uk/LC_MESSAGES/EC.po +11 -12
- holidays/locale/uk/LC_MESSAGES/FI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/MC.po +15 -14
- holidays/locale/uk/LC_MESSAGES/MD.po +5 -5
- holidays/locale/uk/LC_MESSAGES/MX.po +3 -2
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PL.po +23 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +13 -11
- holidays/locale/uk/LC_MESSAGES/RO.po +4 -3
- holidays/locale/uk/LC_MESSAGES/SE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/UA.po +16 -14
- holidays/locale/uk/LC_MESSAGES/VE.po +6 -6
- holidays/registry.py +7 -11
- holidays/utils.py +5 -15
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/METADATA +25 -7
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.26.dist-info/RECORD +0 -402
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
holidays/countries/belize.py
CHANGED
|
@@ -45,11 +45,7 @@ class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
45
45
|
if self._is_friday(dt) or self._is_sunday(dt):
|
|
46
46
|
dt = _get_nth_weekday_from(1, MON, dt)
|
|
47
47
|
name = "%s (Observed)" % name
|
|
48
|
-
elif (
|
|
49
|
-
self._is_tuesday(dt)
|
|
50
|
-
or self._is_wednesday(dt)
|
|
51
|
-
or self._is_thursday(dt)
|
|
52
|
-
):
|
|
48
|
+
elif self._is_tuesday(dt) or self._is_wednesday(dt) or self._is_thursday(dt):
|
|
53
49
|
dt = _get_nth_weekday_from(-1, MON, dt)
|
|
54
50
|
name = "%s (Observed)" % name
|
|
55
51
|
self._add_holiday(name, dt)
|
|
@@ -58,11 +54,7 @@ class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
58
54
|
# Chapter 289 of the laws of Belize states that if the holiday falls
|
|
59
55
|
# on a Sunday, the following Monday is observed as public holiday
|
|
60
56
|
name, dt = self._parse_holiday(*args)
|
|
61
|
-
if (
|
|
62
|
-
self.observed
|
|
63
|
-
and self._is_sunday(dt)
|
|
64
|
-
and dt + td(days=+1) not in self
|
|
65
|
-
):
|
|
57
|
+
if self.observed and self._is_sunday(dt) and dt + td(days=+1) not in self:
|
|
66
58
|
name = "%s (Observed)" % name
|
|
67
59
|
dt += td(days=+1)
|
|
68
60
|
return super()._add_holiday(name, dt)
|
|
@@ -81,9 +73,7 @@ class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
81
73
|
self._add_holiday("George Price Day", JAN, 15)
|
|
82
74
|
|
|
83
75
|
# National Heroes and Benefactors Day.
|
|
84
|
-
self._add_movable_holiday(
|
|
85
|
-
"National Heroes and Benefactors Day", MAR, 9
|
|
86
|
-
)
|
|
76
|
+
self._add_movable_holiday("National Heroes and Benefactors Day", MAR, 9)
|
|
87
77
|
|
|
88
78
|
# Good Friday.
|
|
89
79
|
self._add_good_friday("Good Friday")
|
|
@@ -113,9 +103,7 @@ class Belize(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
113
103
|
|
|
114
104
|
# Indigenous Peoples' Resistance Day / Pan American Day.
|
|
115
105
|
self._add_movable_holiday(
|
|
116
|
-
"Indigenous Peoples' Resistance Day"
|
|
117
|
-
if year >= 2021
|
|
118
|
-
else "Pan American Day",
|
|
106
|
+
"Indigenous Peoples' Resistance Day" if year >= 2021 else "Pan American Day",
|
|
119
107
|
date(year, OCT, 12),
|
|
120
108
|
)
|
|
121
109
|
|
holidays/countries/bolivia.py
CHANGED
|
@@ -51,9 +51,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
51
51
|
|
|
52
52
|
# Plurinational State Foundation Day.
|
|
53
53
|
if year >= 2010:
|
|
54
|
-
self._add_holiday(
|
|
55
|
-
"Nacimiento del Estado Plurinacional de Bolivia", JAN, 22
|
|
56
|
-
)
|
|
54
|
+
self._add_holiday("Nacimiento del Estado Plurinacional de Bolivia", JAN, 22)
|
|
57
55
|
|
|
58
56
|
# Carnival.
|
|
59
57
|
name = "Feriado por Carnaval"
|
|
@@ -115,9 +113,7 @@ class Bolivia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
115
113
|
|
|
116
114
|
def _add_subdiv_o_holidays(self):
|
|
117
115
|
# Carnival in Oruro.
|
|
118
|
-
self._add_holiday(
|
|
119
|
-
"Carnaval de Oruro", self._easter_sunday + td(days=-51)
|
|
120
|
-
)
|
|
116
|
+
self._add_holiday("Carnaval de Oruro", self._easter_sunday + td(days=-51))
|
|
121
117
|
|
|
122
118
|
def _add_subdiv_s_holidays(self):
|
|
123
119
|
# Santa Cruz Day.
|
|
@@ -15,13 +15,10 @@ from datetime import timedelta as td
|
|
|
15
15
|
from holidays.calendars import GREGORIAN_CALENDAR, JULIAN_CALENDAR
|
|
16
16
|
from holidays.constants import JAN, MAR, NOV
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
-
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
|
|
19
|
-
from holidays.holiday_groups import InternationalHolidays
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class BosniaAndHerzegovina(
|
|
23
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
24
|
-
):
|
|
21
|
+
class BosniaAndHerzegovina(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
25
22
|
"""
|
|
26
23
|
https://en.wikipedia.org/wiki/Public_holidays_in_Bosnia_and_Herzegovina
|
|
27
24
|
https://www.paragraf.ba/neradni-dani-fbih.html
|
|
@@ -59,9 +56,7 @@ class BosniaAndHerzegovina(
|
|
|
59
56
|
self._add_holiday("Treći dan Dana rada", may_1 + td(days=+2))
|
|
60
57
|
|
|
61
58
|
# Catholic Easter Monday
|
|
62
|
-
self._add_easter_monday(
|
|
63
|
-
"Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR
|
|
64
|
-
)
|
|
59
|
+
self._add_easter_monday("Uskrsni ponedjeljak (Katolički)", GREGORIAN_CALENDAR)
|
|
65
60
|
|
|
66
61
|
# Catholic Christmas
|
|
67
62
|
self._add_christmas_day("Božić (Katolički)", GREGORIAN_CALENDAR)
|
|
@@ -76,11 +71,7 @@ class BosniaAndHerzegovina(
|
|
|
76
71
|
# New Year's Day
|
|
77
72
|
jan_1 = self._add_new_years_day("Nova Godina")
|
|
78
73
|
self._add_new_years_day_two("Drugi dan Nove Godine")
|
|
79
|
-
if (
|
|
80
|
-
self.subdiv in {"FBiH", "BD"}
|
|
81
|
-
and self.observed
|
|
82
|
-
and self._is_sunday(jan_1)
|
|
83
|
-
):
|
|
74
|
+
if self.subdiv in {"FBiH", "BD"} and self.observed and self._is_sunday(jan_1):
|
|
84
75
|
self._add_new_years_day_three("Treći dan Nove Godine")
|
|
85
76
|
|
|
86
77
|
super()._add_subdiv_holidays()
|
|
@@ -141,10 +132,7 @@ class BosniaAndHerzegovina(
|
|
|
141
132
|
|
|
142
133
|
# Dayton Agreement Day
|
|
143
134
|
self._add_holiday(
|
|
144
|
-
(
|
|
145
|
-
"Dan uspostave Opšteg okvirnog sporazuma za mir u "
|
|
146
|
-
"Bosni i Hercegovini"
|
|
147
|
-
),
|
|
135
|
+
("Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini"),
|
|
148
136
|
NOV,
|
|
149
137
|
21,
|
|
150
138
|
)
|
holidays/countries/botswana.py
CHANGED
|
@@ -27,19 +27,16 @@ class Botswana(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
country = "BW"
|
|
30
|
-
special_holidays = {2019: (
|
|
30
|
+
special_holidays = {2019: (JUL, 2, "Public Holiday")}
|
|
31
31
|
|
|
32
32
|
def __init__(self, *args, **kwargs) -> None:
|
|
33
33
|
ChristianHolidays.__init__(self)
|
|
34
34
|
InternationalHolidays.__init__(self)
|
|
35
35
|
super().__init__(*args, **kwargs)
|
|
36
36
|
|
|
37
|
-
def _add_observed(self, dt: date) -> None:
|
|
37
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
38
38
|
if self.observed and self._is_sunday(dt) and self._year >= 1995:
|
|
39
|
-
self._add_holiday(
|
|
40
|
-
"%s (Observed)" % self[dt],
|
|
41
|
-
dt + td(days=2 if dt + td(days=+1) in self else 1),
|
|
42
|
-
)
|
|
39
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=days))
|
|
43
40
|
|
|
44
41
|
def _populate(self, year):
|
|
45
42
|
if year <= 1965:
|
|
@@ -47,10 +44,8 @@ class Botswana(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
47
44
|
|
|
48
45
|
super()._populate(year)
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
self._add_observed(jan_1)
|
|
53
|
-
self._add_observed(jan_2)
|
|
47
|
+
self._add_observed(self._add_new_years_day("New Year's Day"), days=+2)
|
|
48
|
+
self._add_observed(self._add_new_years_day_two("New Year's Day Holiday"))
|
|
54
49
|
|
|
55
50
|
# Easter and easter related calculations
|
|
56
51
|
self._add_good_friday("Good Friday")
|
|
@@ -68,18 +63,14 @@ class Botswana(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
68
63
|
july_3rd_monday = self._add_holiday(
|
|
69
64
|
"President's Day", _get_nth_weekday_of_month(3, MON, JUL, year)
|
|
70
65
|
)
|
|
71
|
-
self._add_holiday(
|
|
72
|
-
"President's Day Holiday", july_3rd_monday + td(days=+1)
|
|
73
|
-
)
|
|
66
|
+
self._add_holiday("President's Day Holiday", july_3rd_monday + td(days=+1))
|
|
74
67
|
|
|
75
68
|
sep_30 = self._add_holiday("Botswana Day", SEP, 30)
|
|
76
|
-
|
|
77
|
-
self._add_observed(sep_30)
|
|
78
|
-
self._add_observed(oct_1)
|
|
69
|
+
self._add_observed(sep_30, days=+2)
|
|
70
|
+
self._add_observed(self._add_holiday("Botswana Day Holiday", sep_30 + td(days=+1)))
|
|
79
71
|
|
|
80
|
-
|
|
72
|
+
self._add_observed(self._add_christmas_day("Christmas Day"), days=+2)
|
|
81
73
|
dec_26 = self._add_christmas_day_two("Boxing Day")
|
|
82
|
-
self._add_observed(dec_25)
|
|
83
74
|
self._add_observed(dec_26)
|
|
84
75
|
|
|
85
76
|
if self.observed and year >= 2016 and self._is_saturday(dec_26):
|
holidays/countries/brazil.py
CHANGED
|
@@ -13,8 +13,7 @@ from datetime import timedelta as td
|
|
|
13
13
|
from datetime import date
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _get_nth_weekday_from, _get_nth_weekday_of_month
|
|
16
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
17
|
-
from holidays.constants import OCT, NOV, DEC, FRI, SUN
|
|
16
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, FRI, SUN
|
|
18
17
|
from holidays.holiday_base import HolidayBase
|
|
19
18
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
20
19
|
|
|
@@ -150,9 +149,7 @@ class Brazil(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
150
149
|
def get_movable_acre(*args) -> date:
|
|
151
150
|
dt = date(self._year, *args)
|
|
152
151
|
if self._year >= 2009 and (
|
|
153
|
-
self._is_tuesday(dt)
|
|
154
|
-
or self._is_wednesday(dt)
|
|
155
|
-
or self._is_thursday(dt)
|
|
152
|
+
self._is_tuesday(dt) or self._is_wednesday(dt) or self._is_thursday(dt)
|
|
156
153
|
):
|
|
157
154
|
dt = _get_nth_weekday_from(1, FRI, dt)
|
|
158
155
|
return dt
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
# python-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: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
8
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
9
|
+
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
|
+
# License: MIT (see LICENSE file)
|
|
11
|
+
|
|
12
|
+
from datetime import date
|
|
13
|
+
from datetime import timedelta as td
|
|
14
|
+
from gettext import gettext as tr
|
|
15
|
+
|
|
16
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
17
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
18
|
+
from holidays.holiday_base import HolidayBase
|
|
19
|
+
from holidays.holiday_groups import (
|
|
20
|
+
ChineseCalendarHolidays,
|
|
21
|
+
ChristianHolidays,
|
|
22
|
+
InternationalHolidays,
|
|
23
|
+
IslamicHolidays,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Brunei(
|
|
28
|
+
HolidayBase,
|
|
29
|
+
ChineseCalendarHolidays,
|
|
30
|
+
ChristianHolidays,
|
|
31
|
+
InternationalHolidays,
|
|
32
|
+
IslamicHolidays,
|
|
33
|
+
):
|
|
34
|
+
"""
|
|
35
|
+
A subclass of :py:class:`HolidayBase` representing public holidays
|
|
36
|
+
in Brunei Darussalam.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
References:
|
|
40
|
+
|
|
41
|
+
- Based on: http://www.labour.gov.bn/Lists/Upcomming%20events/AllItems.aspx
|
|
42
|
+
http://www.labour.gov.bn/Download/GUIDE%20TO%20BRUNEI%20EMPLOYMENT%20LAWS%20-%20english%20version-3.pdf # noqa: E501
|
|
43
|
+
- Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf # noqa: E501
|
|
44
|
+
https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf # noqa: E501
|
|
45
|
+
https://www.timeanddate.com/holidays/brunei/
|
|
46
|
+
- [Jubli Emas Sultan Hassanal Bolkiah]
|
|
47
|
+
https://www.brudirect.com/news.php?id=28316
|
|
48
|
+
|
|
49
|
+
Limitations:
|
|
50
|
+
|
|
51
|
+
- Brunei Darussalam holidays only works from 1984 onwards
|
|
52
|
+
- Islamic holidays
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
Country created by: `PPsyrius <https://github.com/PPsyrius>`__
|
|
56
|
+
|
|
57
|
+
Country maintained by: `PPsyrius <https://github.com/PPsyrius>`__
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
country = "BN"
|
|
61
|
+
default_language = "ms"
|
|
62
|
+
estimated_label = tr("%s* (*anggaran)")
|
|
63
|
+
supported_languages = ("en_US", "ms", "th")
|
|
64
|
+
|
|
65
|
+
special_holidays = {
|
|
66
|
+
# Sultan Hassanal Bolkiah's Golden Jubilee celebration
|
|
67
|
+
2017: (OCT, 5, tr("Jubli Emas Sultan Hassanal Bolkiah")),
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
def __init__(self, *args, **kwargs):
|
|
71
|
+
ChineseCalendarHolidays.__init__(self)
|
|
72
|
+
ChristianHolidays.__init__(self)
|
|
73
|
+
InternationalHolidays.__init__(self)
|
|
74
|
+
IslamicHolidays.__init__(self, calendar=BruneiIslamicCalendar())
|
|
75
|
+
|
|
76
|
+
super().__init__(*args, **kwargs)
|
|
77
|
+
|
|
78
|
+
def _populate(self, year):
|
|
79
|
+
# Available post-Independence from 1984 afterwards
|
|
80
|
+
if year <= 1983:
|
|
81
|
+
return None
|
|
82
|
+
|
|
83
|
+
def _add_observed(dt: date) -> None:
|
|
84
|
+
"""
|
|
85
|
+
If Public Holiday falls on either Friday or Sunday, in-lieu
|
|
86
|
+
observance is given out on the following Saturday or Monday.
|
|
87
|
+
"""
|
|
88
|
+
if self.observed and (self._is_friday(dt) or self._is_sunday(dt)):
|
|
89
|
+
for name in self.get_list(dt):
|
|
90
|
+
self._add_holiday(self.tr("%s - Diperhatikan") % name, dt + td(days=+1))
|
|
91
|
+
|
|
92
|
+
super()._populate(year)
|
|
93
|
+
|
|
94
|
+
# Awal Tahun Masihi
|
|
95
|
+
# Status: In-Use.
|
|
96
|
+
|
|
97
|
+
# New Year's Day
|
|
98
|
+
_add_observed(self._add_new_years_day(tr("Awal Tahun Masihi")))
|
|
99
|
+
|
|
100
|
+
# Tahun Baru Cina
|
|
101
|
+
# Status: In-Use.
|
|
102
|
+
|
|
103
|
+
# Lunar New Year
|
|
104
|
+
_add_observed(self._add_chinese_new_years_day(tr("Tahun Baru Cina")))
|
|
105
|
+
|
|
106
|
+
# Hari Kebangsaan
|
|
107
|
+
# Status: In-Use.
|
|
108
|
+
# Starts in 1984.
|
|
109
|
+
|
|
110
|
+
# National Day
|
|
111
|
+
_add_observed(self._add_holiday(tr("Hari Kebangsaan"), FEB, 23))
|
|
112
|
+
|
|
113
|
+
# Hari Angkatan Bersenjata Diraja Brunei
|
|
114
|
+
# Status: In-Use.
|
|
115
|
+
# Starts in 1984.
|
|
116
|
+
# Commemorates the formation of Royal Brunei Malay Regiment in 1961.
|
|
117
|
+
|
|
118
|
+
_add_observed(
|
|
119
|
+
self._add_holiday(
|
|
120
|
+
# Armed Forces Day
|
|
121
|
+
tr("Hari Angkatan Bersenjata Diraja Brunei"),
|
|
122
|
+
MAY,
|
|
123
|
+
31,
|
|
124
|
+
)
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# Hari Keputeraan KDYMM Sultan Brunei
|
|
128
|
+
# Status: In-Use.
|
|
129
|
+
# Started in 1968.
|
|
130
|
+
|
|
131
|
+
_add_observed(
|
|
132
|
+
self._add_holiday(
|
|
133
|
+
# Sultan Hassanal Bolkiah's Birthday
|
|
134
|
+
tr("Hari Keputeraan KDYMM Sultan Brunei"),
|
|
135
|
+
JUL,
|
|
136
|
+
15,
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# Hari Natal
|
|
141
|
+
# Status: In-Use.
|
|
142
|
+
|
|
143
|
+
# Christmas Day
|
|
144
|
+
_add_observed(self._add_christmas_day(tr("Hari Natal")))
|
|
145
|
+
|
|
146
|
+
# Islamic Holidays are placed after Gregorian holidays to prevent
|
|
147
|
+
# the duplication of observed tags. - see #1168
|
|
148
|
+
|
|
149
|
+
# Israk dan Mikraj
|
|
150
|
+
# Status: In-Use.
|
|
151
|
+
|
|
152
|
+
# Isra Mi'raj
|
|
153
|
+
for dt in self._add_isra_and_miraj_day(tr("Israk dan Mikraj")):
|
|
154
|
+
_add_observed(dt)
|
|
155
|
+
|
|
156
|
+
# Hari Pertama Berpuasa
|
|
157
|
+
# Status: In-Use.
|
|
158
|
+
|
|
159
|
+
# First Day of Ramadan
|
|
160
|
+
for dt in self._add_ramadan_beginning_day(tr("Hari Pertama Berpuasa")):
|
|
161
|
+
_add_observed(dt)
|
|
162
|
+
|
|
163
|
+
# Hari Nuzul Al-Quran
|
|
164
|
+
# Status: In-Use.
|
|
165
|
+
|
|
166
|
+
# Anniversary of the revelation of the Quran
|
|
167
|
+
for dt in self._add_nuzul_al_quran_day(tr("Hari Nuzul Al-Quran")):
|
|
168
|
+
_add_observed(dt)
|
|
169
|
+
|
|
170
|
+
# Hari Raya Aidil Fitri
|
|
171
|
+
# Status: In-Use.
|
|
172
|
+
# This is celebrate for three days in Brunei.
|
|
173
|
+
# Observed as 'Hari Raya Puasa' and only for 2 days at certain point.
|
|
174
|
+
# We utilizes a separate in-lieu trigger for this one.
|
|
175
|
+
# 1: If Wed-Thu-Fri -> Sat (+3)
|
|
176
|
+
# 2: If Thu-Fri-Sat -> Mon (+4)
|
|
177
|
+
# 3: If Fri-Sat-Sun -> Mon (+3)
|
|
178
|
+
# 4: If Sat-Sun-Mon -> Tue (+3)
|
|
179
|
+
# 5: If Sun-Mon-Tue -> Wed (+3)
|
|
180
|
+
|
|
181
|
+
# Eid al-Fitr
|
|
182
|
+
name = tr("Hari Raya Aidil Fitri")
|
|
183
|
+
|
|
184
|
+
al_fitr_dates = self._add_eid_al_fitr_day(name)
|
|
185
|
+
self._add_eid_al_fitr_day_two(name)
|
|
186
|
+
self._add_eid_al_fitr_day_three(name)
|
|
187
|
+
|
|
188
|
+
if self.observed:
|
|
189
|
+
for dt in al_fitr_dates:
|
|
190
|
+
obs_date = None
|
|
191
|
+
for delta in range(3):
|
|
192
|
+
hol_date = dt + td(days=delta)
|
|
193
|
+
if self._is_friday(hol_date) or self._is_sunday(hol_date):
|
|
194
|
+
obs_date = dt + td(days=+3)
|
|
195
|
+
if self._is_sunday(obs_date):
|
|
196
|
+
obs_date += td(days=+1)
|
|
197
|
+
break
|
|
198
|
+
if obs_date:
|
|
199
|
+
self._add_islamic_calendar_holiday(
|
|
200
|
+
self.tr("%s - Diperhatikan") % self[hol_date],
|
|
201
|
+
(
|
|
202
|
+
(
|
|
203
|
+
obs_date,
|
|
204
|
+
self._year not in BruneiIslamicCalendar.EID_AL_FITR_DATES,
|
|
205
|
+
),
|
|
206
|
+
),
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
# Hari Raya Aidil Adha
|
|
210
|
+
# Status: In-Use.
|
|
211
|
+
|
|
212
|
+
# Eid al-Adha
|
|
213
|
+
for dt in self._add_eid_al_adha_day(tr("Hari Raya Aidil Adha")):
|
|
214
|
+
_add_observed(dt)
|
|
215
|
+
|
|
216
|
+
# Awal Tahun Hijrah
|
|
217
|
+
# Status: In-Use.
|
|
218
|
+
|
|
219
|
+
# Islamic New Year
|
|
220
|
+
for dt in self._add_islamic_new_year_day(tr("Awal Tahun Hijrah")):
|
|
221
|
+
_add_observed(dt)
|
|
222
|
+
|
|
223
|
+
# Maulidur Rasul
|
|
224
|
+
# Status: In-Use.
|
|
225
|
+
|
|
226
|
+
# Birth of the Prophet
|
|
227
|
+
for dt in self._add_mawlid_day(tr("Maulidur Rasul")):
|
|
228
|
+
_add_observed(dt)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
class BN(Brunei):
|
|
232
|
+
pass
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
class BRN(Brunei):
|
|
236
|
+
pass
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class BruneiIslamicCalendar(_CustomIslamicCalendar):
|
|
240
|
+
EID_AL_ADHA_DATES = {
|
|
241
|
+
2000: (MAR, 16),
|
|
242
|
+
2001: (MAR, 6),
|
|
243
|
+
2002: (FEB, 23),
|
|
244
|
+
2003: (FEB, 12),
|
|
245
|
+
2004: (FEB, 2),
|
|
246
|
+
2005: (JAN, 21),
|
|
247
|
+
2006: ((JAN, 10), (DEC, 31)),
|
|
248
|
+
2007: (DEC, 20),
|
|
249
|
+
2008: (DEC, 9),
|
|
250
|
+
2009: (NOV, 28),
|
|
251
|
+
2010: (NOV, 17),
|
|
252
|
+
2011: (NOV, 7),
|
|
253
|
+
2012: (OCT, 26),
|
|
254
|
+
2013: (OCT, 15),
|
|
255
|
+
2014: (OCT, 5),
|
|
256
|
+
2015: (SEP, 24),
|
|
257
|
+
2016: (SEP, 13),
|
|
258
|
+
2017: (SEP, 2),
|
|
259
|
+
2018: (AUG, 22),
|
|
260
|
+
2019: (AUG, 11),
|
|
261
|
+
2020: (AUG, 1),
|
|
262
|
+
2021: (JUL, 20),
|
|
263
|
+
2022: (JUL, 10),
|
|
264
|
+
2023: (JUN, 29),
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
EID_AL_FITR_DATES = {
|
|
268
|
+
2000: ((JAN, 8), (DEC, 28)),
|
|
269
|
+
2001: (DEC, 17),
|
|
270
|
+
2002: (DEC, 6),
|
|
271
|
+
2003: (NOV, 26),
|
|
272
|
+
2004: (NOV, 14),
|
|
273
|
+
2005: (NOV, 3),
|
|
274
|
+
2006: (OCT, 24),
|
|
275
|
+
2007: (OCT, 13),
|
|
276
|
+
2008: (OCT, 1),
|
|
277
|
+
2009: (SEP, 20),
|
|
278
|
+
2010: (SEP, 10),
|
|
279
|
+
2011: (AUG, 31),
|
|
280
|
+
2012: (AUG, 19),
|
|
281
|
+
2013: (AUG, 8),
|
|
282
|
+
2014: (JUL, 29),
|
|
283
|
+
2015: (JUL, 18),
|
|
284
|
+
2016: (JUL, 7),
|
|
285
|
+
2017: (JUN, 26),
|
|
286
|
+
2018: (JUN, 15),
|
|
287
|
+
2019: (JUN, 5),
|
|
288
|
+
2020: (MAY, 24),
|
|
289
|
+
2021: (MAY, 13),
|
|
290
|
+
2022: (MAY, 3),
|
|
291
|
+
2023: (APR, 22),
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
HIJRI_NEW_YEAR_DATES = {
|
|
295
|
+
2000: (APR, 6),
|
|
296
|
+
2001: (MAR, 26),
|
|
297
|
+
2002: (MAR, 15),
|
|
298
|
+
2003: (MAR, 5),
|
|
299
|
+
2004: (FEB, 22),
|
|
300
|
+
2005: (FEB, 10),
|
|
301
|
+
2006: (JAN, 31),
|
|
302
|
+
2007: (JAN, 20),
|
|
303
|
+
2008: ((JAN, 10), (DEC, 29)),
|
|
304
|
+
2009: (DEC, 18),
|
|
305
|
+
2010: (DEC, 8),
|
|
306
|
+
2011: (NOV, 27),
|
|
307
|
+
2012: (NOV, 15),
|
|
308
|
+
2013: (NOV, 5),
|
|
309
|
+
2014: (OCT, 25),
|
|
310
|
+
2015: (OCT, 15),
|
|
311
|
+
2016: (OCT, 3),
|
|
312
|
+
2017: (SEP, 22),
|
|
313
|
+
2018: (SEP, 12),
|
|
314
|
+
2019: (SEP, 1),
|
|
315
|
+
2020: (AUG, 20),
|
|
316
|
+
2021: (AUG, 10),
|
|
317
|
+
2022: (JUL, 30),
|
|
318
|
+
2023: (JUL, 19),
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
ISRA_AND_MIRAJ_DATES = {
|
|
322
|
+
2000: (OCT, 26),
|
|
323
|
+
2001: (OCT, 15),
|
|
324
|
+
2002: (OCT, 4),
|
|
325
|
+
2003: (SEP, 24),
|
|
326
|
+
2004: (SEP, 12),
|
|
327
|
+
2005: (SEP, 1),
|
|
328
|
+
2006: (AUG, 22),
|
|
329
|
+
2007: (AUG, 11),
|
|
330
|
+
2008: (JUL, 31),
|
|
331
|
+
2009: (JUL, 20),
|
|
332
|
+
2010: (JUL, 9),
|
|
333
|
+
2011: (JUN, 29),
|
|
334
|
+
2012: (JUN, 17),
|
|
335
|
+
2013: (JUN, 6),
|
|
336
|
+
2014: (MAY, 27),
|
|
337
|
+
2015: (MAY, 16),
|
|
338
|
+
2016: (MAY, 5),
|
|
339
|
+
2017: (APR, 24),
|
|
340
|
+
2018: (APR, 14),
|
|
341
|
+
2019: (APR, 3),
|
|
342
|
+
2020: (MAR, 22),
|
|
343
|
+
2021: (MAR, 11),
|
|
344
|
+
2022: (MAR, 1),
|
|
345
|
+
2023: (FEB, 18),
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
MAWLID_DATES = {
|
|
349
|
+
2000: (JUN, 15),
|
|
350
|
+
2001: (JUN, 4),
|
|
351
|
+
2002: (MAY, 24),
|
|
352
|
+
2003: (MAY, 14),
|
|
353
|
+
2004: (MAY, 2),
|
|
354
|
+
2005: (APR, 21),
|
|
355
|
+
2006: (APR, 11),
|
|
356
|
+
2007: (MAR, 31),
|
|
357
|
+
2008: (MAR, 20),
|
|
358
|
+
2009: (MAR, 9),
|
|
359
|
+
2010: (FEB, 26),
|
|
360
|
+
2011: (FEB, 16),
|
|
361
|
+
2012: (FEB, 5),
|
|
362
|
+
2013: (JAN, 24),
|
|
363
|
+
2014: (JAN, 14),
|
|
364
|
+
2015: ((JAN, 3), (DEC, 24)),
|
|
365
|
+
2016: (DEC, 12),
|
|
366
|
+
2017: (DEC, 1),
|
|
367
|
+
2018: (NOV, 21),
|
|
368
|
+
2019: (NOV, 9),
|
|
369
|
+
2020: (OCT, 29),
|
|
370
|
+
2021: (OCT, 19),
|
|
371
|
+
2022: (OCT, 8),
|
|
372
|
+
2023: (SEP, 28),
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
NUZUL_AL_QURAN_DATES = {
|
|
376
|
+
2000: (DEC, 14),
|
|
377
|
+
2001: (DEC, 3),
|
|
378
|
+
2002: (NOV, 22),
|
|
379
|
+
2003: (NOV, 12),
|
|
380
|
+
2004: (NOV, 1),
|
|
381
|
+
2005: (OCT, 21),
|
|
382
|
+
2006: (OCT, 10),
|
|
383
|
+
2007: (SEP, 29),
|
|
384
|
+
2008: (SEP, 18),
|
|
385
|
+
2009: (SEP, 7),
|
|
386
|
+
2010: (AUG, 27),
|
|
387
|
+
2011: (AUG, 17),
|
|
388
|
+
2012: (AUG, 5),
|
|
389
|
+
2013: (JUL, 25),
|
|
390
|
+
2014: (JUL, 15),
|
|
391
|
+
2015: (JUL, 4),
|
|
392
|
+
2016: (JUN, 23),
|
|
393
|
+
2017: (JUN, 12),
|
|
394
|
+
2018: (JUN, 2),
|
|
395
|
+
2019: (MAY, 23),
|
|
396
|
+
2020: (MAY, 10),
|
|
397
|
+
2021: (APR, 29),
|
|
398
|
+
2022: (APR, 19),
|
|
399
|
+
2023: (APR, 8),
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
RAMADAN_BEGINNING_DATES = {
|
|
403
|
+
2000: (NOV, 28),
|
|
404
|
+
2001: (NOV, 17),
|
|
405
|
+
2002: (NOV, 6),
|
|
406
|
+
2003: (OCT, 27),
|
|
407
|
+
2004: (OCT, 16),
|
|
408
|
+
2005: (OCT, 5),
|
|
409
|
+
2006: (SEP, 24),
|
|
410
|
+
2007: (SEP, 13),
|
|
411
|
+
2008: (SEP, 2),
|
|
412
|
+
2009: (AUG, 22),
|
|
413
|
+
2010: (AUG, 11),
|
|
414
|
+
2011: (AUG, 1),
|
|
415
|
+
2012: (JUL, 20),
|
|
416
|
+
2013: (JUL, 9),
|
|
417
|
+
2014: (JUN, 29),
|
|
418
|
+
2015: (JUN, 18),
|
|
419
|
+
2016: (JUN, 7),
|
|
420
|
+
2017: (MAY, 27),
|
|
421
|
+
2018: (MAY, 16),
|
|
422
|
+
2019: (MAY, 6),
|
|
423
|
+
2020: (APR, 25),
|
|
424
|
+
2021: (APR, 13),
|
|
425
|
+
2022: (APR, 3),
|
|
426
|
+
2023: (MAR, 23),
|
|
427
|
+
}
|
holidays/countries/bulgaria.py
CHANGED
|
@@ -53,9 +53,7 @@ class Bulgaria(HolidayBase):
|
|
|
53
53
|
self._add_holiday(tr("Нова година"), JAN, 1)
|
|
54
54
|
|
|
55
55
|
# Liberation Day.
|
|
56
|
-
self._add_holiday(
|
|
57
|
-
tr("Ден на Освобождението на България от османско иго"), MAR, 3
|
|
58
|
-
)
|
|
56
|
+
self._add_holiday(tr("Ден на Освобождението на България от османско иго"), MAR, 3)
|
|
59
57
|
|
|
60
58
|
# International Workers' Day.
|
|
61
59
|
self._add_holiday(
|
|
@@ -65,9 +63,7 @@ class Bulgaria(HolidayBase):
|
|
|
65
63
|
)
|
|
66
64
|
|
|
67
65
|
# Saint George's Day.
|
|
68
|
-
self._add_holiday(
|
|
69
|
-
tr("Гергьовден, Ден на храбростта и Българската армия"), MAY, 6
|
|
70
|
-
)
|
|
66
|
+
self._add_holiday(tr("Гергьовден, Ден на храбростта и Българската армия"), MAY, 6)
|
|
71
67
|
|
|
72
68
|
# Bulgarian Education and Culture and Slavonic Literature Day.
|
|
73
69
|
self._add_holiday(
|