holidays 0.63__py3-none-any.whl → 0.65__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/calendars/hebrew.py +32 -3
- holidays/constants.py +1 -0
- holidays/countries/__init__.py +1 -0
- holidays/countries/afghanistan.py +192 -0
- holidays/countries/azerbaijan.py +2 -2
- holidays/countries/belarus.py +93 -14
- holidays/countries/el_salvador.py +45 -24
- holidays/countries/iran.py +3 -0
- holidays/countries/israel.py +55 -80
- holidays/countries/kazakhstan.py +2 -2
- holidays/countries/lithuania.py +1 -4
- holidays/countries/montenegro.py +143 -27
- holidays/countries/norway.py +1 -1
- holidays/countries/poland.py +9 -1
- holidays/countries/russia.py +1 -1
- holidays/countries/south_korea.py +2 -0
- holidays/countries/thailand.py +1 -2
- holidays/countries/ukraine.py +19 -10
- holidays/financial/ny_stock_exchange.py +81 -44
- holidays/groups/__init__.py +1 -0
- holidays/groups/christian.py +2 -0
- holidays/groups/custom.py +12 -0
- holidays/groups/hebrew.py +151 -0
- holidays/groups/persian.py +11 -0
- holidays/holiday_base.py +15 -8
- holidays/locale/be/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/be/LC_MESSAGES/BY.po +53 -17
- holidays/locale/cnr/LC_MESSAGES/ME.mo +0 -0
- holidays/locale/cnr/LC_MESSAGES/ME.po +102 -0
- holidays/locale/en_US/LC_MESSAGES/AF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AF.po +92 -0
- holidays/locale/en_US/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +61 -20
- holidays/locale/en_US/LC_MESSAGES/ME.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ME.po +102 -0
- holidays/locale/en_US/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PL.po +7 -5
- holidays/locale/en_US/LC_MESSAGES/SV.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SV.po +75 -0
- holidays/locale/es/LC_MESSAGES/SV.mo +0 -0
- holidays/locale/es/LC_MESSAGES/SV.po +75 -0
- holidays/locale/fa_AF/LC_MESSAGES/AF.mo +0 -0
- holidays/locale/fa_AF/LC_MESSAGES/AF.po +92 -0
- holidays/locale/pl/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +8 -4
- holidays/locale/ps_AF/LC_MESSAGES/AF.mo +0 -0
- holidays/locale/ps_AF/LC_MESSAGES/AF.po +92 -0
- holidays/locale/ru/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/BY.po +111 -0
- holidays/locale/th/LC_MESSAGES/BY.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BY.po +109 -0
- holidays/locale/th/LC_MESSAGES/NO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/NO.po +80 -0
- holidays/locale/th/LC_MESSAGES/RU.mo +0 -0
- holidays/locale/th/LC_MESSAGES/RU.po +90 -0
- holidays/locale/th/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/th/LC_MESSAGES/UA.po +114 -0
- holidays/locale/uk/LC_MESSAGES/ME.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ME.po +102 -0
- holidays/locale/uk/LC_MESSAGES/PL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PL.po +7 -5
- holidays/locale/uk/LC_MESSAGES/SV.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SV.po +75 -0
- holidays/registry.py +1 -0
- holidays/version.py +1 -1
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/AUTHORS +1 -0
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/METADATA +17 -12
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/RECORD +71 -41
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/WHEEL +1 -1
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/LICENSE +0 -0
- {holidays-0.63.dist-info → holidays-0.65.dist-info}/top_level.txt +0 -0
holidays/countries/israel.py
CHANGED
|
@@ -12,20 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
-
from holidays.calendars import _HebrewLunisolar
|
|
16
15
|
from holidays.calendars.gregorian import _timedelta, FRI, SAT
|
|
17
|
-
from holidays.calendars.hebrew import (
|
|
18
|
-
HANUKKAH,
|
|
19
|
-
INDEPENDENCE_DAY,
|
|
20
|
-
LAG_BAOMER,
|
|
21
|
-
PASSOVER,
|
|
22
|
-
PURIM,
|
|
23
|
-
ROSH_HASHANAH,
|
|
24
|
-
SHAVUOT,
|
|
25
|
-
SUKKOT,
|
|
26
|
-
YOM_KIPPUR,
|
|
27
|
-
)
|
|
28
16
|
from holidays.constants import OPTIONAL, PUBLIC, SCHOOL
|
|
17
|
+
from holidays.groups import HebrewCalendarHolidays
|
|
29
18
|
from holidays.observed_holiday_base import (
|
|
30
19
|
ObservedHolidayBase,
|
|
31
20
|
MON_TO_NEXT_TUE,
|
|
@@ -38,7 +27,7 @@ from holidays.observed_holiday_base import (
|
|
|
38
27
|
)
|
|
39
28
|
|
|
40
29
|
|
|
41
|
-
class Israel(ObservedHolidayBase):
|
|
30
|
+
class Israel(ObservedHolidayBase, HebrewCalendarHolidays):
|
|
42
31
|
"""
|
|
43
32
|
Israel holidays.
|
|
44
33
|
|
|
@@ -57,117 +46,103 @@ class Israel(ObservedHolidayBase):
|
|
|
57
46
|
start_year = 1948
|
|
58
47
|
|
|
59
48
|
def __init__(self, *args, **kwargs):
|
|
49
|
+
HebrewCalendarHolidays.__init__(self)
|
|
60
50
|
kwargs.setdefault("observed_rule", FRI_TO_PREV_THU + SAT_TO_PREV_THU)
|
|
61
51
|
super().__init__(*args, **kwargs)
|
|
62
52
|
|
|
63
|
-
def
|
|
64
|
-
|
|
53
|
+
def _add_observed(self, dt, name, rule):
|
|
54
|
+
is_observed, _ = super()._add_observed(dt, name, rule)
|
|
55
|
+
if not is_observed:
|
|
56
|
+
self._add_holiday(name, dt)
|
|
65
57
|
|
|
66
58
|
def _populate_public_holidays(self):
|
|
67
59
|
# Rosh Hashanah (New Year).
|
|
68
|
-
|
|
69
|
-
rosh_hashanah_dt = self._get_holiday(ROSH_HASHANAH)
|
|
70
|
-
self._add_holiday(name, rosh_hashanah_dt)
|
|
71
|
-
self._add_holiday(name, _timedelta(rosh_hashanah_dt, +1))
|
|
60
|
+
self._add_rosh_hashanah(tr("ראש השנה"), range(2))
|
|
72
61
|
|
|
73
62
|
# Yom Kippur (Day of Atonement).
|
|
74
|
-
self.
|
|
63
|
+
self._add_yom_kippur(tr("יום כיפור"))
|
|
75
64
|
|
|
76
|
-
sukkot_dt = self._get_holiday(SUKKOT)
|
|
77
65
|
# Sukkot (Feast of Tabernacles).
|
|
78
|
-
self.
|
|
66
|
+
self._add_sukkot(tr("סוכות"))
|
|
79
67
|
# Simchat Torah / Shemini Atzeret.
|
|
80
|
-
self.
|
|
68
|
+
self._add_sukkot(tr("שמחת תורה/שמיני עצרת"), +7)
|
|
81
69
|
|
|
82
|
-
passover_dt = self._get_holiday(PASSOVER)
|
|
83
70
|
# Pesach (Passover).
|
|
84
|
-
self.
|
|
71
|
+
self._add_passover(tr("פסח"))
|
|
85
72
|
# Shvi'i shel Pesach (Seventh day of Passover)
|
|
86
|
-
self.
|
|
73
|
+
self._add_passover(tr("שביעי של פסח"), +6)
|
|
87
74
|
|
|
88
|
-
# Yom Ha-Atzmaut (Independence Day).
|
|
89
|
-
name = tr("יום העצמאות")
|
|
90
|
-
independence_day_dt = self._get_holiday(INDEPENDENCE_DAY)
|
|
91
75
|
rule = FRI_TO_PREV_THU + SAT_TO_PREV_THU
|
|
92
76
|
if self._year >= 2004:
|
|
93
77
|
rule += MON_TO_NEXT_TUE
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
78
|
+
self._add_observed(
|
|
79
|
+
self._hebrew_calendar.israel_independence_date(self._year),
|
|
80
|
+
# Yom Ha-Atzmaut (Independence Day).
|
|
81
|
+
tr("יום העצמאות"),
|
|
82
|
+
rule,
|
|
83
|
+
)
|
|
97
84
|
|
|
98
85
|
# Shavuot.
|
|
99
|
-
self.
|
|
86
|
+
self._add_shavuot(tr("שבועות"))
|
|
100
87
|
|
|
101
88
|
def _populate_optional_holidays(self):
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
# Chol HaMoed Sukkot (Feast of Tabernacles holiday).
|
|
105
|
-
self._add_holiday(tr("חול המועד סוכות"), _timedelta(sukkot_dt, offset))
|
|
89
|
+
# Chol HaMoed Sukkot (Feast of Tabernacles holiday).
|
|
90
|
+
self._add_sukkot(tr("חול המועד סוכות"), range(1, 6))
|
|
106
91
|
|
|
107
92
|
if self._year >= 2008:
|
|
108
93
|
# Sigd.
|
|
109
|
-
self.
|
|
94
|
+
self._add_yom_kippur(tr("סיגד"), +49)
|
|
110
95
|
|
|
111
96
|
# Purim.
|
|
112
|
-
self.
|
|
97
|
+
self._add_purim(tr("פורים"))
|
|
113
98
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
# Chol HaMoed Pesach (Passover holiday).
|
|
117
|
-
self._add_holiday(tr("חול המועד פסח"), _timedelta(passover_dt, offset))
|
|
99
|
+
# Chol HaMoed Pesach (Passover holiday).
|
|
100
|
+
self._add_passover(tr("חול המועד פסח"), range(1, 6))
|
|
118
101
|
|
|
119
102
|
if self._year >= 1963:
|
|
120
|
-
# Yom Hazikaron (Fallen Soldiers and Victims of Terrorism Remembrance Day).
|
|
121
|
-
name = tr("יום הזיכרון לחללי מערכות ישראל ונפגעי פעולות האיבה")
|
|
122
|
-
remembrance_day_dt = _timedelta(self._get_holiday(INDEPENDENCE_DAY), -1)
|
|
123
103
|
rule = THU_TO_PREV_WED + FRI_TO_PREV_WED
|
|
124
104
|
if self._year >= 2004:
|
|
125
105
|
rule += SUN_TO_NEXT_MON
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
106
|
+
self._add_observed(
|
|
107
|
+
_timedelta(self._hebrew_calendar.israel_independence_date(self._year), -1),
|
|
108
|
+
# Yom Hazikaron (Fallen Soldiers and Victims of Terrorism Remembrance Day).
|
|
109
|
+
tr("יום הזיכרון לחללי מערכות ישראל ונפגעי פעולות האיבה"),
|
|
110
|
+
rule,
|
|
111
|
+
)
|
|
129
112
|
|
|
130
113
|
if self._year >= 1998:
|
|
131
114
|
# Yom Yerushalayim (Jerusalem Day).
|
|
132
|
-
self.
|
|
115
|
+
self._add_lag_baomer(tr("יום ירושלים"), +10)
|
|
133
116
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
117
|
+
self._add_observed(
|
|
118
|
+
self._hebrew_calendar.tisha_bav_date(self._year),
|
|
119
|
+
# Tisha B'Av (Tisha B'Av, fast).
|
|
120
|
+
tr("תשעה באב"),
|
|
121
|
+
SAT_TO_NEXT_SUN,
|
|
122
|
+
)
|
|
140
123
|
|
|
141
124
|
def _populate_school_holidays(self):
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
name = tr("תענית אסתר")
|
|
155
|
-
purim_dt = self._get_holiday(PURIM)
|
|
156
|
-
taanit_ester_dt = _timedelta(purim_dt, -1)
|
|
157
|
-
is_observed, _ = self._add_observed(taanit_ester_dt, name, SAT_TO_PREV_THU)
|
|
158
|
-
if not is_observed:
|
|
159
|
-
self._add_holiday(name, taanit_ester_dt)
|
|
125
|
+
# Chol HaMoed Sukkot (Feast of Tabernacles holiday).
|
|
126
|
+
self._add_sukkot(tr("חול המועד סוכות"), range(1, 6))
|
|
127
|
+
|
|
128
|
+
# Hanukkah.
|
|
129
|
+
self._add_hanukkah(tr("חנוכה"), range(8))
|
|
130
|
+
|
|
131
|
+
self._add_observed(
|
|
132
|
+
_timedelta(self._hebrew_calendar.purim_date(self._year), -1),
|
|
133
|
+
# Ta`anit Ester (Fast of Esther).
|
|
134
|
+
tr("תענית אסתר"),
|
|
135
|
+
SAT_TO_PREV_THU,
|
|
136
|
+
)
|
|
160
137
|
|
|
161
138
|
# Purim.
|
|
162
|
-
self.
|
|
139
|
+
self._add_purim(tr("פורים"))
|
|
163
140
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
# Chol HaMoed Pesach (Passover holiday).
|
|
167
|
-
self._add_holiday(tr("חול המועד פסח"), _timedelta(passover_dt, offset))
|
|
141
|
+
# Chol HaMoed Pesach (Passover holiday).
|
|
142
|
+
self._add_passover(tr("חול המועד פסח"), range(1, 6))
|
|
168
143
|
|
|
169
144
|
# Lag Ba'omer (Lag BaOmer).
|
|
170
|
-
self.
|
|
145
|
+
self._add_lag_baomer(tr('ל"ג בעומר'))
|
|
171
146
|
|
|
172
147
|
|
|
173
148
|
class IL(Israel):
|
holidays/countries/kazakhstan.py
CHANGED
|
@@ -278,7 +278,6 @@ class KazakhstanStaticHolidays:
|
|
|
278
278
|
2019: (MAY, 10, MAY, 4),
|
|
279
279
|
2020: (
|
|
280
280
|
(JAN, 3, JAN, 5),
|
|
281
|
-
(MAY, 8, MAY, 11),
|
|
282
281
|
(DEC, 18, DEC, 20),
|
|
283
282
|
),
|
|
284
283
|
2021: (JUL, 5, JUL, 3),
|
|
@@ -293,5 +292,6 @@ class KazakhstanStaticHolidays:
|
|
|
293
292
|
}
|
|
294
293
|
|
|
295
294
|
special_public_holidays_observed = {
|
|
296
|
-
|
|
295
|
+
# Victory Day.
|
|
296
|
+
2020: (MAY, 8, tr("Жеңіс күні")),
|
|
297
297
|
}
|
holidays/countries/lithuania.py
CHANGED
|
@@ -67,10 +67,7 @@ class Lithuania(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
67
67
|
if self._year >= 1991:
|
|
68
68
|
self._add_holiday_jul_6(
|
|
69
69
|
# Statehood Day.
|
|
70
|
-
tr(
|
|
71
|
-
"Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) "
|
|
72
|
-
"ir Tautiškos giesmės diena"
|
|
73
|
-
)
|
|
70
|
+
tr("Valstybės (Lietuvos karaliaus Mindaugo karūnavimo) ir Tautiškos giesmės diena")
|
|
74
71
|
)
|
|
75
72
|
|
|
76
73
|
# Assumption Day.
|
holidays/countries/montenegro.py
CHANGED
|
@@ -10,65 +10,141 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import GREGORIAN_CALENDAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
13
17
|
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
14
|
-
from holidays.
|
|
18
|
+
from holidays.constants import CATHOLIC, HEBREW, ISLAMIC, ORTHODOX, PUBLIC, WORKDAY
|
|
19
|
+
from holidays.groups import (
|
|
20
|
+
ChristianHolidays,
|
|
21
|
+
HebrewCalendarHolidays,
|
|
22
|
+
InternationalHolidays,
|
|
23
|
+
IslamicHolidays,
|
|
24
|
+
StaticHolidays,
|
|
25
|
+
)
|
|
15
26
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON, SUN_TO_NEXT_TUE
|
|
16
27
|
|
|
17
28
|
|
|
18
|
-
class Montenegro(
|
|
29
|
+
class Montenegro(
|
|
30
|
+
ObservedHolidayBase,
|
|
31
|
+
ChristianHolidays,
|
|
32
|
+
HebrewCalendarHolidays,
|
|
33
|
+
InternationalHolidays,
|
|
34
|
+
IslamicHolidays,
|
|
35
|
+
StaticHolidays,
|
|
36
|
+
):
|
|
19
37
|
"""
|
|
20
38
|
References:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- https://www.officeholidays.com/countries/montenegro/2023
|
|
39
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Montenegro
|
|
40
|
+
- `Zakon o državnim i drugim praznicima <https://wapi.gov.me/download-preview/927f23a3-db4e-4f65-9f29-ce3c9dde0c90?version=1.0>`_
|
|
41
|
+
- `Zakon o svetkovanju vjerskih praznika <https://wapi.gov.me/download-preview/4f0b05a4-c85b-4eb2-bc29-0ad8363a9ba3?version=1.0>`_
|
|
25
42
|
"""
|
|
26
43
|
|
|
27
44
|
country = "ME"
|
|
28
|
-
|
|
45
|
+
default_language = "cnr"
|
|
46
|
+
# %s (estimated).
|
|
47
|
+
estimated_label = tr("%s (procijenjeno)")
|
|
48
|
+
# %s (observed).
|
|
49
|
+
observed_label = tr("%s (neradni dan)")
|
|
50
|
+
# %s (observed, estimated).
|
|
51
|
+
observed_estimated_label = tr("%s (neradni dan, procijenjeno)")
|
|
52
|
+
supported_languages = ("cnr", "en_US", "uk")
|
|
53
|
+
supported_categories = (CATHOLIC, ISLAMIC, HEBREW, ORTHODOX, PUBLIC, WORKDAY)
|
|
54
|
+
start_year = 2007
|
|
29
55
|
|
|
30
56
|
def __init__(self, *args, **kwargs):
|
|
31
57
|
ChristianHolidays.__init__(self, calendar=JULIAN_CALENDAR)
|
|
58
|
+
HebrewCalendarHolidays.__init__(self)
|
|
32
59
|
InternationalHolidays.__init__(self)
|
|
60
|
+
IslamicHolidays.__init__(self, cls=MontenegroIslamicHolidays)
|
|
61
|
+
StaticHolidays.__init__(self, cls=MontenegroStaticHolidays)
|
|
33
62
|
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
34
63
|
super().__init__(*args, **kwargs)
|
|
35
64
|
|
|
36
65
|
def _populate_public_holidays(self):
|
|
37
66
|
# New Year's Day.
|
|
38
|
-
name = "
|
|
67
|
+
name = tr("Nova godina")
|
|
39
68
|
self._add_observed(self._add_new_years_day(name), rule=SUN_TO_NEXT_TUE)
|
|
40
69
|
self._add_observed(self._add_new_years_day_two(name))
|
|
41
70
|
|
|
42
|
-
#
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# Orthodox Christmas.
|
|
46
|
-
self._add_christmas_day("Orthodox Christmas")
|
|
47
|
-
|
|
48
|
-
# Labour Day.
|
|
49
|
-
name = "Labour Day"
|
|
71
|
+
# Labor Day.
|
|
72
|
+
name = tr("Praznik rada")
|
|
50
73
|
self._add_observed(self._add_labor_day(name), rule=SUN_TO_NEXT_TUE)
|
|
51
74
|
self._add_observed(self._add_labor_day_two(name))
|
|
52
75
|
|
|
53
|
-
# Good Friday.
|
|
54
|
-
self._add_good_friday("Orthodox Good Friday")
|
|
55
|
-
|
|
56
|
-
# Easter Sunday.
|
|
57
|
-
self._add_easter_sunday("Orthodox Easter Sunday")
|
|
58
|
-
|
|
59
|
-
# Easter Monday.
|
|
60
|
-
self._add_easter_monday("Orthodox Easter Monday")
|
|
61
|
-
|
|
62
76
|
# Independence Day.
|
|
63
|
-
name = "
|
|
77
|
+
name = tr("Dan nezavisnosti")
|
|
64
78
|
self._add_observed(self._add_holiday_may_21(name), rule=SUN_TO_NEXT_TUE)
|
|
65
79
|
self._add_observed(self._add_holiday_may_22(name))
|
|
66
80
|
|
|
67
81
|
# Statehood Day.
|
|
68
|
-
name = "
|
|
82
|
+
name = tr("Dan državnosti")
|
|
69
83
|
self._add_observed(self._add_holiday_jul_13(name), rule=SUN_TO_NEXT_TUE)
|
|
70
84
|
self._add_observed(self._add_holiday_jul_14(name))
|
|
71
85
|
|
|
86
|
+
if self._year >= 2022:
|
|
87
|
+
# Njegos Day.
|
|
88
|
+
self._add_observed(self._add_holiday_nov_13(tr("Njegošev dan")))
|
|
89
|
+
|
|
90
|
+
def _populate_catholic_holidays(self):
|
|
91
|
+
# Good Friday.
|
|
92
|
+
self._add_good_friday(tr("Veliki petak"), GREGORIAN_CALENDAR)
|
|
93
|
+
|
|
94
|
+
# Easter.
|
|
95
|
+
self._add_easter_monday(tr("Uskrs"), GREGORIAN_CALENDAR)
|
|
96
|
+
|
|
97
|
+
# All Saints' Day.
|
|
98
|
+
self._add_all_saints_day(tr("Svi Sveti"))
|
|
99
|
+
|
|
100
|
+
# Christmas Eve.
|
|
101
|
+
self._add_christmas_eve(tr("Badnji dan"), GREGORIAN_CALENDAR)
|
|
102
|
+
|
|
103
|
+
# Christmas.
|
|
104
|
+
name = tr("Božić")
|
|
105
|
+
self._add_christmas_day(name, GREGORIAN_CALENDAR)
|
|
106
|
+
self._add_christmas_day_two(name, GREGORIAN_CALENDAR)
|
|
107
|
+
|
|
108
|
+
def _populate_hebrew_holidays(self):
|
|
109
|
+
# Pesach.
|
|
110
|
+
self._add_passover(tr("Pasha"), range(2))
|
|
111
|
+
|
|
112
|
+
# Yom Kippur.
|
|
113
|
+
self._add_yom_kippur(tr("Jom Kipur"), range(2))
|
|
114
|
+
|
|
115
|
+
def _populate_islamic_holidays(self):
|
|
116
|
+
# Eid al-Fitr.
|
|
117
|
+
name = tr("Ramazanski bajram")
|
|
118
|
+
self._add_eid_al_fitr_day(name)
|
|
119
|
+
self._add_eid_al_fitr_day_two(name)
|
|
120
|
+
self._add_eid_al_fitr_day_three(name)
|
|
121
|
+
|
|
122
|
+
# Eid al-Adha.
|
|
123
|
+
name = tr("Kurbanski bajram")
|
|
124
|
+
self._add_eid_al_adha_day(name)
|
|
125
|
+
self._add_eid_al_adha_day_two(name)
|
|
126
|
+
self._add_eid_al_adha_day_three(name)
|
|
127
|
+
|
|
128
|
+
def _populate_orthodox_holidays(self):
|
|
129
|
+
# Good Friday.
|
|
130
|
+
self._add_good_friday(tr("Veliki petak"))
|
|
131
|
+
|
|
132
|
+
# Easter.
|
|
133
|
+
self._add_easter_monday(tr("Uskrs"))
|
|
134
|
+
|
|
135
|
+
# Christmas Eve.
|
|
136
|
+
self._add_christmas_eve(tr("Badnji dan"))
|
|
137
|
+
|
|
138
|
+
# Christmas.
|
|
139
|
+
name = tr("Božić")
|
|
140
|
+
self._add_christmas_day(name)
|
|
141
|
+
self._add_christmas_day_two(name)
|
|
142
|
+
|
|
143
|
+
def _populate_workday_holidays(self):
|
|
144
|
+
if self._year >= 2022:
|
|
145
|
+
# Ecological State Day.
|
|
146
|
+
self._add_holiday_sep_20(tr("Dan Ekološke države"))
|
|
147
|
+
|
|
72
148
|
|
|
73
149
|
class ME(Montenegro):
|
|
74
150
|
pass
|
|
@@ -76,3 +152,43 @@ class ME(Montenegro):
|
|
|
76
152
|
|
|
77
153
|
class MNE(Montenegro):
|
|
78
154
|
pass
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class MontenegroIslamicHolidays(_CustomIslamicHolidays):
|
|
158
|
+
EID_AL_ADHA_DATES = {
|
|
159
|
+
2012: (OCT, 26),
|
|
160
|
+
2013: (OCT, 15),
|
|
161
|
+
2014: (OCT, 5),
|
|
162
|
+
2015: (SEP, 24),
|
|
163
|
+
2016: (SEP, 13),
|
|
164
|
+
2017: (SEP, 2),
|
|
165
|
+
2018: (AUG, 22),
|
|
166
|
+
2019: (AUG, 11),
|
|
167
|
+
2020: (JUL, 31),
|
|
168
|
+
2021: (JUL, 20),
|
|
169
|
+
2022: (JUL, 9),
|
|
170
|
+
2023: (JUN, 28),
|
|
171
|
+
2024: (JUN, 16),
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
EID_AL_FITR_DATES = {
|
|
175
|
+
2012: (AUG, 19),
|
|
176
|
+
2013: (AUG, 8),
|
|
177
|
+
2014: (JUL, 29),
|
|
178
|
+
2015: (JUL, 18),
|
|
179
|
+
2016: (JUL, 7),
|
|
180
|
+
2017: (JUN, 26),
|
|
181
|
+
2018: (JUN, 15),
|
|
182
|
+
2019: (JUN, 4),
|
|
183
|
+
2020: (MAY, 24),
|
|
184
|
+
2021: (MAY, 13),
|
|
185
|
+
2022: (MAY, 2),
|
|
186
|
+
2023: (APR, 21),
|
|
187
|
+
2024: (APR, 10),
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class MontenegroStaticHolidays:
|
|
192
|
+
special_public_holidays = {
|
|
193
|
+
2024: (NOV, 14, tr("Njegošev dan")),
|
|
194
|
+
}
|
holidays/countries/norway.py
CHANGED
|
@@ -35,7 +35,7 @@ class Norway(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
35
35
|
|
|
36
36
|
country = "NO"
|
|
37
37
|
default_language = "no"
|
|
38
|
-
supported_languages = ("en_US", "no", "uk")
|
|
38
|
+
supported_languages = ("en_US", "no", "th", "uk")
|
|
39
39
|
|
|
40
40
|
def __init__(self, include_sundays=False, *args, **kwargs):
|
|
41
41
|
"""
|
holidays/countries/poland.py
CHANGED
|
@@ -19,7 +19,10 @@ from holidays.holiday_base import HolidayBase
|
|
|
19
19
|
|
|
20
20
|
class Poland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
21
21
|
"""
|
|
22
|
-
|
|
22
|
+
References:
|
|
23
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Poland
|
|
24
|
+
- https://pl.wikipedia.org/wiki/Dni_wolne_od_pracy_w_Polsce
|
|
25
|
+
- https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20240001965
|
|
23
26
|
"""
|
|
24
27
|
|
|
25
28
|
country = "PL"
|
|
@@ -104,8 +107,13 @@ class Poland(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolida
|
|
|
104
107
|
tr("Niepokalane Poczęcie Najświętszej Marii Panny")
|
|
105
108
|
)
|
|
106
109
|
|
|
110
|
+
if self._year >= 2025:
|
|
111
|
+
# Christmas Eve.
|
|
112
|
+
self._add_christmas_eve(tr("Wigilia Bożego Narodzenia"))
|
|
113
|
+
|
|
107
114
|
# Christmas Day.
|
|
108
115
|
self._add_christmas_day(tr("Boże Narodzenie (pierwszy dzień)"))
|
|
116
|
+
|
|
109
117
|
# Second Day of Christmas.
|
|
110
118
|
self._add_christmas_day_two(tr("Boże Narodzenie (drugi dzień)"))
|
|
111
119
|
|
holidays/countries/russia.py
CHANGED
|
@@ -26,7 +26,7 @@ class Russia(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
26
26
|
|
|
27
27
|
country = "RU"
|
|
28
28
|
default_language = "ru"
|
|
29
|
-
supported_languages = ("en_US", "ru")
|
|
29
|
+
supported_languages = ("en_US", "ru", "th")
|
|
30
30
|
start_year = 1991
|
|
31
31
|
|
|
32
32
|
def __init__(self, *args, **kwargs):
|
|
@@ -617,6 +617,8 @@ class SouthKoreaStaticHolidays:
|
|
|
617
617
|
2023: (OCT, 2, temporary_public_holiday),
|
|
618
618
|
# 76th Anniversary of the Armed Forces of Korea.
|
|
619
619
|
2024: (OCT, 1, armed_forces_day),
|
|
620
|
+
# Added to create a 6-day long holiday period.
|
|
621
|
+
2025: (JAN, 27, temporary_public_holiday),
|
|
620
622
|
}
|
|
621
623
|
# Pre-2014 Alternate Holidays
|
|
622
624
|
# https://namu.wiki/w/대체%20휴일%20제도#s-4.2.1
|
holidays/countries/thailand.py
CHANGED
|
@@ -556,8 +556,7 @@ class Thailand(ObservedHolidayBase, InternationalHolidays, StaticHolidays, ThaiC
|
|
|
556
556
|
if self._year >= 2019:
|
|
557
557
|
# HM King Bhumibol Adulyadej the Great's Birthday Anniversary.
|
|
558
558
|
name = tr(
|
|
559
|
-
"วันคล้ายวันเฉลิมพระชนมพรรษาพระบาทสมเด็จพระบรมชนกาธิเบศร "
|
|
560
|
-
"มหาภูมิพลอดุลยเดชมหาราช บรมนาถบพิตร"
|
|
559
|
+
"วันคล้ายวันเฉลิมพระชนมพรรษาพระบาทสมเด็จพระบรมชนกาธิเบศร มหาภูมิพลอดุลยเดชมหาราช บรมนาถบพิตร"
|
|
561
560
|
)
|
|
562
561
|
elif self._year >= 2016:
|
|
563
562
|
# HM King Bhumibol Adulyadej Birthday Anniversary.
|
holidays/countries/ukraine.py
CHANGED
|
@@ -25,8 +25,9 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
|
|
|
25
25
|
"""
|
|
26
26
|
Ukraine holidays.
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
- https://zakon1.rada.gov.ua/laws/show/322-08/paran454#n454
|
|
28
|
+
References:
|
|
29
|
+
- Labor Code of Ukraine, Art. 73 `<https://zakon1.rada.gov.ua/laws/show/322-08/paran454#n454>`_
|
|
30
|
+
- https://zakon.rada.gov.ua/laws/show/585-12
|
|
30
31
|
"""
|
|
31
32
|
|
|
32
33
|
country = "UA"
|
|
@@ -34,7 +35,7 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
|
|
|
34
35
|
# %s (observed).
|
|
35
36
|
observed_label = tr("%s (вихідний)")
|
|
36
37
|
supported_categories = (PUBLIC, WORKDAY)
|
|
37
|
-
supported_languages = ("ar", "en_US", "uk")
|
|
38
|
+
supported_languages = ("ar", "en_US", "th", "uk")
|
|
38
39
|
# The current set of holidays came into force in 1991.
|
|
39
40
|
start_year = 1991
|
|
40
41
|
|
|
@@ -71,10 +72,9 @@ class Ukraine(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Sta
|
|
|
71
72
|
# International Women's Day.
|
|
72
73
|
dts_observed.add(self._add_womens_day(tr("Міжнародний жіночий день")))
|
|
73
74
|
|
|
74
|
-
if (self._year >= 2022)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
dts_observed.add(self._add_easter_sunday(tr("Великдень (Пасха)")))
|
|
75
|
+
if (self._year >= 2022) is is_martial_law:
|
|
76
|
+
# Easter Sunday (Pascha).
|
|
77
|
+
dts_observed.add(self._add_easter_sunday(tr("Великдень (Пасха)")))
|
|
78
78
|
|
|
79
79
|
# Holy Trinity Day.
|
|
80
80
|
dts_observed.add(self._add_whit_sunday(tr("Трійця")))
|
|
@@ -169,6 +169,7 @@ class UKR(Ukraine):
|
|
|
169
169
|
class UkraineStaticHolidays:
|
|
170
170
|
"""
|
|
171
171
|
Substituted holidays:
|
|
172
|
+
- `1991 <https://zakon.rada.gov.ua/laws/show/60-91-%D0%BF>`_
|
|
172
173
|
- `1992 [1] <https://zakon.rada.gov.ua/laws/show/202-92-%D0%BF>`_
|
|
173
174
|
- `1992 [2] <https://zakon.rada.gov.ua/laws/show/377-91-%D0%BF>`_
|
|
174
175
|
- `1993 [1] <https://zakon.rada.gov.ua/laws/show/563-93-%D0%BF>`_
|
|
@@ -178,8 +179,9 @@ class UkraineStaticHolidays:
|
|
|
178
179
|
- `1995 [2] <https://zakon.rada.gov.ua/laws/show/634-95-%D0%BF>`_
|
|
179
180
|
- `1995 [3] <https://zakon.rada.gov.ua/laws/show/266-95-%D0%BF>`_
|
|
180
181
|
- `1996 <https://zakon.rada.gov.ua/laws/show/424-96-%D0%BF>`_
|
|
181
|
-
- `1997[1] <https://zakon.rada.gov.ua/laws/show/326-97-%D0%BF>`_
|
|
182
|
-
- `1997[2] <https://zakon.rada.gov.ua/laws/show/1547-96-%D0%BF>`_
|
|
182
|
+
- `1997 [1] <https://zakon.rada.gov.ua/laws/show/326-97-%D0%BF>`_
|
|
183
|
+
- `1997 [2] <https://zakon.rada.gov.ua/laws/show/1547-96-%D0%BF>`_
|
|
184
|
+
- `1998 <https://zakon.rada.gov.ua/laws/show/1404-97-%D0%BF>`_,
|
|
183
185
|
- `1999 [1] <https://zakon.rada.gov.ua/laws/show/1433-99-%D0%BF>`_,
|
|
184
186
|
- `1999 [2] <https://zakon.rada.gov.ua/laws/show/558-99-%D0%BF>`_,
|
|
185
187
|
- `1999 [3] <https://zakon.rada.gov.ua/laws/show/2070-98-%D0%BF>`_
|
|
@@ -221,6 +223,11 @@ class UkraineStaticHolidays:
|
|
|
221
223
|
# Day off (substituted from %s).
|
|
222
224
|
substituted_label = tr("Вихідний день (перенесено з %s)")
|
|
223
225
|
special_public_holidays = {
|
|
226
|
+
1991: (
|
|
227
|
+
(MAY, 3, MAY, 5),
|
|
228
|
+
(MAY, 10, MAY, 12),
|
|
229
|
+
(JUL, 15, JUL, 13),
|
|
230
|
+
),
|
|
224
231
|
1992: (
|
|
225
232
|
(JAN, 6, JAN, 4),
|
|
226
233
|
(APR, 27, MAY, 16),
|
|
@@ -244,9 +251,11 @@ class UkraineStaticHolidays:
|
|
|
244
251
|
1997: (
|
|
245
252
|
(JAN, 2, DEC, 28, 1996),
|
|
246
253
|
(JAN, 6, JAN, 4),
|
|
254
|
+
(JAN, 8, JAN, 11),
|
|
247
255
|
(APR, 29, APR, 19),
|
|
248
256
|
(APR, 30, MAY, 17),
|
|
249
257
|
),
|
|
258
|
+
1998: (JAN, 2, JAN, 4),
|
|
250
259
|
1999: (
|
|
251
260
|
(JAN, 8, JAN, 10),
|
|
252
261
|
(APR, 12, APR, 24),
|
|
@@ -324,7 +333,7 @@ class UkraineStaticHolidays:
|
|
|
324
333
|
),
|
|
325
334
|
2012: (
|
|
326
335
|
(MAR, 9, MAR, 3),
|
|
327
|
-
(APR,
|
|
336
|
+
(APR, 30, APR, 28),
|
|
328
337
|
(JUN, 29, JUL, 7),
|
|
329
338
|
(DEC, 31, DEC, 29),
|
|
330
339
|
),
|