holidays 0.78__py3-none-any.whl → 0.80__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/__init__.py +1 -0
- holidays/calendars/chinese.py +14 -4
- holidays/calendars/ethiopian.py +31 -0
- holidays/calendars/hindu.py +1 -0
- holidays/calendars/islamic.py +16 -4
- holidays/calendars/julian.py +14 -0
- holidays/calendars/mandaean.py +59 -0
- holidays/calendars/tibetan.py +1466 -0
- holidays/constants.py +2 -1
- holidays/countries/__init__.py +20 -0
- holidays/countries/afghanistan.py +6 -39
- holidays/countries/albania.py +3 -22
- holidays/countries/argentina.py +7 -18
- holidays/countries/australia.py +191 -295
- holidays/countries/azerbaijan.py +6 -39
- holidays/countries/bahrain.py +29 -38
- holidays/countries/bhutan.py +194 -0
- holidays/countries/bosnia_and_herzegovina.py +7 -28
- holidays/countries/brunei.py +7 -117
- holidays/countries/burkina_faso.py +9 -15
- holidays/countries/burundi.py +95 -40
- holidays/countries/cameroon.py +8 -34
- holidays/countries/canada.py +9 -1
- holidays/countries/central_african_republic.py +3 -16
- holidays/countries/chad.py +9 -17
- holidays/countries/chile.py +20 -4
- holidays/countries/christmas_island.py +10 -15
- holidays/countries/cocos_islands.py +5 -24
- holidays/countries/comoros.py +121 -0
- holidays/countries/egypt.py +5 -37
- holidays/countries/eritrea.py +104 -0
- holidays/countries/ethiopia.py +18 -47
- holidays/countries/fiji.py +1 -2
- holidays/countries/gabon.py +5 -23
- holidays/countries/gambia.py +168 -0
- holidays/countries/georgia.py +9 -7
- holidays/countries/guinea.py +5 -27
- holidays/countries/guinea_bissau.py +96 -0
- holidays/countries/guyana.py +2 -17
- holidays/countries/india.py +12 -25
- holidays/countries/indonesia.py +6 -158
- holidays/countries/iran.py +16 -126
- holidays/countries/iraq.py +276 -0
- holidays/countries/kazakhstan.py +2 -18
- holidays/countries/kenya.py +2 -8
- holidays/countries/kiribati.py +124 -0
- holidays/countries/kyrgyzstan.py +2 -0
- holidays/countries/lebanon.py +5 -87
- holidays/countries/liberia.py +80 -0
- holidays/countries/libya.py +5 -37
- holidays/countries/macau.py +65 -63
- holidays/countries/malaysia.py +9 -130
- holidays/countries/maldives.py +2 -0
- holidays/countries/mali.py +4 -9
- holidays/countries/mauritania.py +2 -0
- holidays/countries/mauritius.py +1 -2
- holidays/countries/montenegro.py +3 -18
- holidays/countries/nepal.py +42 -44
- holidays/countries/niger.py +14 -74
- holidays/countries/nigeria.py +198 -27
- holidays/countries/north_macedonia.py +3 -39
- holidays/countries/oman.py +6 -28
- holidays/countries/pakistan.py +5 -30
- holidays/countries/palestine.py +2 -5
- holidays/countries/philippines.py +3 -33
- holidays/countries/qatar.py +3 -45
- holidays/countries/rwanda.py +162 -0
- holidays/countries/saudi_arabia.py +3 -0
- holidays/countries/senegal.py +6 -16
- holidays/countries/sierra_leone.py +5 -21
- holidays/countries/singapore.py +7 -59
- holidays/countries/somalia.py +79 -0
- holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
- holidays/countries/south_sudan.py +133 -0
- holidays/countries/spain.py +7 -10
- holidays/countries/sri_lanka.py +3 -14
- holidays/countries/suriname.py +11 -19
- holidays/countries/syrian_arab_republic.py +134 -0
- holidays/countries/tajikistan.py +116 -0
- holidays/countries/tanzania.py +291 -153
- holidays/countries/timor_leste.py +2 -17
- holidays/countries/togo.py +4 -29
- holidays/countries/trinidad_and_tobago.py +2 -9
- holidays/countries/turkey.py +2 -116
- holidays/countries/turkmenistan.py +164 -0
- holidays/countries/uganda.py +101 -0
- holidays/countries/united_arab_emirates.py +5 -29
- holidays/countries/uzbekistan.py +3 -31
- holidays/countries/yemen.py +8 -52
- holidays/financial/__init__.py +5 -0
- holidays/financial/national_stock_exchange_of_india.py +169 -0
- holidays/groups/__init__.py +2 -0
- holidays/groups/christian.py +48 -12
- holidays/groups/eastern.py +1 -1
- holidays/groups/international.py +17 -1
- holidays/groups/islamic.py +1 -1
- holidays/groups/mandaean.py +107 -0
- holidays/groups/tibetan.py +153 -0
- holidays/holiday_base.py +14 -0
- holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/registry.py +46 -14
- holidays/version.py +1 -1
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/METADATA +127 -9
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/RECORD +161 -113
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/CONTRIBUTORS +2 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/WHEEL +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.78.dist-info → holidays-0.80.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,160 @@
|
|
|
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.calendars.gregorian import APR, MAY, JUN, SEP, OCT, NOV
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
17
|
+
from holidays.observed_holiday_base import (
|
|
18
|
+
ObservedHolidayBase,
|
|
19
|
+
MON_TO_NEXT_TUE,
|
|
20
|
+
SAT_SUN_TO_NEXT_MON,
|
|
21
|
+
SAT_SUN_TO_NEXT_MON_TUE,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class SouthGeorgiaAndTheSouthSandwichIslands(
|
|
26
|
+
ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
27
|
+
):
|
|
28
|
+
"""South Georgia and the South Sandwich Islands holidays.
|
|
29
|
+
|
|
30
|
+
References:
|
|
31
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_South_Georgia_and_the_South_Sandwich_Islands>
|
|
32
|
+
* [2012-2013](https://web.archive.org/web/20240810165616/https://laws.gov.gs/wp-content/uploads/2022/05/2012.pdf)
|
|
33
|
+
* [2014](https://web.archive.org/web/20250726194445/https://laws.gov.gs/wp-content/uploads/2022/05/2013.pdf)
|
|
34
|
+
* [2015](https://web.archive.org/web/20240810161237/https://laws.gov.gs/wp-content/uploads/2022/05/2014.pdf)
|
|
35
|
+
* [2016](https://web.archive.org/web/20250726193915/https://laws.gov.gs/wp-content/uploads/2022/05/2015.pdf)
|
|
36
|
+
* [2017](https://web.archive.org/web/20250726193700/https://laws.gov.gs/wp-content/uploads/2022/05/2016.pdf)
|
|
37
|
+
* [2018](https://web.archive.org/web/20240810175520/https://laws.gov.gs/wp-content/uploads/2022/05/2017.pdf)
|
|
38
|
+
* [2019](https://web.archive.org/web/20250726193031/https://laws.gov.gs/wp-content/uploads/2022/05/2018.pdf)
|
|
39
|
+
* [2020](https://web.archive.org/web/20250726192724/https://laws.gov.gs/wp-content/uploads/2022/05/2019.pdf)
|
|
40
|
+
* [2021](https://web.archive.org/web/20210911002738/https://www.gov.gs/docsarchive/Legislation/SGSSI%20Gazette%20No%202%20dated%2023%20December%202020.pdf)
|
|
41
|
+
* [2022](https://web.archive.org/web/20250727082227/https://laws.gov.gs/wp-content/uploads/2022/05/2021.pdf)
|
|
42
|
+
* [2023](https://web.archive.org/web/20240810165140/https://laws.gov.gs/wp-content/uploads/2024/03/Gazette2023.pdf)
|
|
43
|
+
* [2024](https://web.archive.org/web/20240810163638/https://laws.gov.gs/wp-content/uploads/2024/02/SGSSI-Gazette-No-1-dated-27-February-2024.pdf)
|
|
44
|
+
* [2025](https://web.archive.org/web/20250404025158/https://laws.gov.gs/wp-content/uploads/2025/01/SGSSI-Gazette-No-1-dated-30-January-2025.pdf)
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
country = "GS"
|
|
48
|
+
default_language = "en_GS"
|
|
49
|
+
# %s (observed).
|
|
50
|
+
observed_label = tr("%s (observed)")
|
|
51
|
+
supported_languages = ("en_GS", "en_US")
|
|
52
|
+
start_year = 2012
|
|
53
|
+
|
|
54
|
+
def __init__(self, *args, **kwargs):
|
|
55
|
+
ChristianHolidays.__init__(self)
|
|
56
|
+
InternationalHolidays.__init__(self)
|
|
57
|
+
StaticHolidays.__init__(self, SouthGeorgiaAndTheSouthSandwichIslandsStaticHolidays)
|
|
58
|
+
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
|
|
59
|
+
super().__init__(*args, **kwargs)
|
|
60
|
+
|
|
61
|
+
def _populate_public_holidays(self):
|
|
62
|
+
# New Year's Day.
|
|
63
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")))
|
|
64
|
+
|
|
65
|
+
# Possession Day.
|
|
66
|
+
self._add_observed(self._add_holiday_jan_17(tr("Possession Day")))
|
|
67
|
+
|
|
68
|
+
# Good Friday.
|
|
69
|
+
self._add_good_friday(tr("Good Friday"))
|
|
70
|
+
|
|
71
|
+
if self._year <= 2019:
|
|
72
|
+
# Easter Monday.
|
|
73
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
74
|
+
|
|
75
|
+
if 2018 <= self._year <= 2022:
|
|
76
|
+
# The Queen's Birthday.
|
|
77
|
+
dt = self._add_holiday_apr_21(tr("The Queen's Birthday"))
|
|
78
|
+
if self._year not in {2019, 2020}:
|
|
79
|
+
self._add_observed(dt)
|
|
80
|
+
|
|
81
|
+
# Liberation Day.
|
|
82
|
+
name = tr("Liberation Day")
|
|
83
|
+
self._add_observed(
|
|
84
|
+
self._add_holiday_apr_25(name)
|
|
85
|
+
if self._year >= 2016
|
|
86
|
+
else self._add_holiday_apr_26(name)
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
if self._year >= 2015:
|
|
90
|
+
# Shackleton Day.
|
|
91
|
+
dt = self._add_holiday_may_20(tr("Shackleton Day"))
|
|
92
|
+
if self._year != 2023:
|
|
93
|
+
self._add_observed(dt)
|
|
94
|
+
|
|
95
|
+
# Mid-winter Day.
|
|
96
|
+
dt = self._add_holiday_jun_21(tr("Mid-winter Day"))
|
|
97
|
+
if self._year != 2025:
|
|
98
|
+
self._add_observed(dt)
|
|
99
|
+
|
|
100
|
+
if self._year <= 2021:
|
|
101
|
+
if self._year >= 2015:
|
|
102
|
+
# Toothfish Day.
|
|
103
|
+
self._add_observed(self._add_holiday_sep_4(tr("Toothfish Day")))
|
|
104
|
+
else:
|
|
105
|
+
# Toothfish (End of Season) Day.
|
|
106
|
+
dt = self._add_holiday_sep_14(tr("Toothfish (end of season) Day"))
|
|
107
|
+
if self._year != 2013:
|
|
108
|
+
self._add_observed(dt)
|
|
109
|
+
|
|
110
|
+
if self._year >= 2020:
|
|
111
|
+
# Environment Day.
|
|
112
|
+
dt = self._add_holiday_oct_30(tr("Environment Day"))
|
|
113
|
+
if self._year != 2021:
|
|
114
|
+
self._add_observed(dt)
|
|
115
|
+
|
|
116
|
+
# Placed before Christmas Day for proper observed calculation.
|
|
117
|
+
self._add_observed(
|
|
118
|
+
# Boxing Day.
|
|
119
|
+
self._add_christmas_day_two(tr("Boxing Day")),
|
|
120
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE + MON_TO_NEXT_TUE,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Christmas Day.
|
|
124
|
+
self._add_observed(self._add_christmas_day(tr("Christmas Day")))
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class GS(SouthGeorgiaAndTheSouthSandwichIslands):
|
|
128
|
+
pass
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class SGS(SouthGeorgiaAndTheSouthSandwichIslands):
|
|
132
|
+
pass
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class SouthGeorgiaAndTheSouthSandwichIslandsStaticHolidays:
|
|
136
|
+
"""South Georgia and the South Sandwich Islands special holidays."""
|
|
137
|
+
|
|
138
|
+
# The Queen's Platinum Jubilee.
|
|
139
|
+
queens_platinum_jubilee = tr("The Queen's Platinum Jubilee")
|
|
140
|
+
|
|
141
|
+
special_public_holidays = {
|
|
142
|
+
2022: (
|
|
143
|
+
(JUN, 2, queens_platinum_jubilee),
|
|
144
|
+
(JUN, 3, queens_platinum_jubilee),
|
|
145
|
+
),
|
|
146
|
+
2023: (
|
|
147
|
+
# King Charles III's Coronation.
|
|
148
|
+
(MAY, 8, tr("Coronation of King Charles III")),
|
|
149
|
+
# King's Birthday.
|
|
150
|
+
(NOV, 14, tr("King's Birthday")),
|
|
151
|
+
),
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
special_public_holidays_observed = {
|
|
155
|
+
2013: (SEP, 13, tr("Toothfish (end of season) Day")),
|
|
156
|
+
2019: (APR, 23, tr("The Queen's Birthday")),
|
|
157
|
+
2021: (OCT, 29, tr("Environment Day")),
|
|
158
|
+
2023: (MAY, 19, tr("Shackleton Day")),
|
|
159
|
+
2025: (JUN, 20, tr("Mid-winter Day")),
|
|
160
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
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 import _CustomIslamicHolidays
|
|
14
|
+
from holidays.calendars.gregorian import MAR, MAY, JUN, JUL, AUG
|
|
15
|
+
from holidays.constants import ISLAMIC, PUBLIC
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SouthSudan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
21
|
+
"""South Sudan holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_South_Sudan>
|
|
25
|
+
* [Guidelines for Opening Schools in South Sudan for the Academic Year, 2024](https://web.archive.org/web/20250716011243/https://mogei.gov.ss/super/assets/documents/calendar/2024_MoGEI_Academic%20calendar%20and%20implemention%20guidelines_%20South%20Sudan_A5_final_Approved%20and%20signed%20-%203.pdf)
|
|
26
|
+
* <https://web.archive.org/web/20241211222746/http://www.doitinafrica.com/south-sudan/events/public-holidays.htm>
|
|
27
|
+
* [2016](https://web.archive.org/web/20250825141310/https://docs.southsudanngoforum.org/sites/default/files/2016-11/2016%20ANNUAL%20HOLIDAYS%20CALENDAR%20.pdf)
|
|
28
|
+
* [2018](https://web.archive.org/web/20250825141312/https://docs.southsudanngoforum.org/sites/default/files/2018-01/Annual%20Holidays%20for%202018.pdf)
|
|
29
|
+
* [2020](https://web.archive.org/web/20250825141316/https://docs.southsudanngoforum.org/sites/default/files/2020-01/South_Sudan_Annual_Holidays_for_2020.pdf)
|
|
30
|
+
* [2021](https://web.archive.org/web/20250514045013/https://docs.southsudanngoforum.org/sites/default/files/2021-02/Public%20Holidays%20Calendar%202021.pdf)
|
|
31
|
+
* [2022](https://web.archive.org/web/20250430165748/https://docs.southsudanngoforum.org/sites/default/files/2022-03/HRPublic%20Holidays%202022HR.pdf)
|
|
32
|
+
* [2025](https://web.archive.org/web/20250426232710/https://www.netherlandsandyou.nl/web/south-sudan/about-us/closing-days)
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
country = "SS"
|
|
36
|
+
# %s (estimated).
|
|
37
|
+
estimated_label = "%s (estimated)"
|
|
38
|
+
# South Sudan became independent on 9 July 2011.
|
|
39
|
+
start_year = 2012
|
|
40
|
+
supported_categories = (ISLAMIC, PUBLIC)
|
|
41
|
+
|
|
42
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
43
|
+
"""
|
|
44
|
+
Args:
|
|
45
|
+
islamic_show_estimated:
|
|
46
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
47
|
+
if holiday date is estimated.
|
|
48
|
+
"""
|
|
49
|
+
ChristianHolidays.__init__(self)
|
|
50
|
+
InternationalHolidays.__init__(self)
|
|
51
|
+
IslamicHolidays.__init__(
|
|
52
|
+
self, cls=SouthSudanIslamicHolidays, show_estimated=islamic_show_estimated
|
|
53
|
+
)
|
|
54
|
+
super().__init__(*args, **kwargs)
|
|
55
|
+
|
|
56
|
+
def _populate_public_holidays(self):
|
|
57
|
+
# New Year's Day.
|
|
58
|
+
self._add_new_years_day("New Year's Day")
|
|
59
|
+
|
|
60
|
+
# Peace Agreement Day.
|
|
61
|
+
self._add_holiday_jan_9("Peace Agreement Day")
|
|
62
|
+
|
|
63
|
+
# Good Friday.
|
|
64
|
+
self._add_good_friday("Good Friday")
|
|
65
|
+
|
|
66
|
+
# Holy Saturday.
|
|
67
|
+
self._add_holy_saturday("Holy Saturday")
|
|
68
|
+
|
|
69
|
+
# Easter Sunday.
|
|
70
|
+
self._add_easter_sunday("Easter Sunday")
|
|
71
|
+
|
|
72
|
+
# Easter Monday.
|
|
73
|
+
self._add_easter_monday("Easter Monday")
|
|
74
|
+
|
|
75
|
+
# International Labour Day.
|
|
76
|
+
self._add_labor_day("International Labour Day")
|
|
77
|
+
|
|
78
|
+
# SPLA Day.
|
|
79
|
+
self._add_holiday_may_16("SPLA Day")
|
|
80
|
+
|
|
81
|
+
# Independence Day.
|
|
82
|
+
self._add_holiday_jul_9("Independence Day")
|
|
83
|
+
|
|
84
|
+
# Martyrs' Day.
|
|
85
|
+
self._add_holiday_jul_30("Martyrs' Day")
|
|
86
|
+
|
|
87
|
+
# Christmas Eve.
|
|
88
|
+
self._add_christmas_eve("Christmas Eve")
|
|
89
|
+
|
|
90
|
+
# Christmas Day.
|
|
91
|
+
self._add_christmas_day("Christmas Day")
|
|
92
|
+
|
|
93
|
+
# Second Day of Christmas.
|
|
94
|
+
self._add_christmas_day_two("Second Day of Christmas")
|
|
95
|
+
|
|
96
|
+
# Eid al-Fitr.
|
|
97
|
+
self._add_eid_al_fitr_day("Eid al-Fitr")
|
|
98
|
+
|
|
99
|
+
# Eid al-Adha.
|
|
100
|
+
self._add_eid_al_adha_day("Eid al-Adha")
|
|
101
|
+
|
|
102
|
+
def _populate_islamic_holidays(self):
|
|
103
|
+
# Eid al-Fitr Holiday.
|
|
104
|
+
self._add_eid_al_fitr_day_two("Eid al-Fitr Holiday")
|
|
105
|
+
|
|
106
|
+
# Eid al-Adha Holiday.
|
|
107
|
+
self._add_eid_al_adha_day_two("Eid al-Adha Holiday")
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class SS(SouthSudan):
|
|
111
|
+
pass
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class SSD(SouthSudan):
|
|
115
|
+
pass
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class SouthSudanIslamicHolidays(_CustomIslamicHolidays):
|
|
119
|
+
EID_AL_ADHA_DATES = {
|
|
120
|
+
2018: (AUG, 21),
|
|
121
|
+
2020: (JUL, 31),
|
|
122
|
+
2021: (JUL, 18),
|
|
123
|
+
2022: (JUL, 9),
|
|
124
|
+
2025: (JUN, 6),
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
EID_AL_FITR_DATES = {
|
|
128
|
+
2018: (JUN, 14),
|
|
129
|
+
2020: (MAY, 22),
|
|
130
|
+
2021: (MAY, 13),
|
|
131
|
+
2022: (MAY, 3),
|
|
132
|
+
2025: (MAR, 31),
|
|
133
|
+
}
|
holidays/countries/spain.py
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
15
|
from holidays.calendars import _CustomIslamicHolidays
|
|
16
|
-
from holidays.calendars.gregorian import MAR,
|
|
16
|
+
from holidays.calendars.gregorian import MAR, MAY, JUN, AUG, SEP, OCT, NOV
|
|
17
17
|
from holidays.groups import (
|
|
18
18
|
ChristianHolidays,
|
|
19
19
|
IslamicHolidays,
|
|
@@ -52,6 +52,10 @@ class Spain(
|
|
|
52
52
|
|
|
53
53
|
country = "ES"
|
|
54
54
|
default_language = "es"
|
|
55
|
+
# %s (estimated).
|
|
56
|
+
estimated_label = tr("%s (estimado)")
|
|
57
|
+
# Monday following %s (estimated).
|
|
58
|
+
observed_estimated_label = tr("Lunes siguiente a %s (estimado)")
|
|
55
59
|
# Monday following %s.
|
|
56
60
|
observed_label = tr("Lunes siguiente a %s")
|
|
57
61
|
subdivisions = (
|
|
@@ -717,28 +721,21 @@ class ESP(Spain):
|
|
|
717
721
|
|
|
718
722
|
|
|
719
723
|
class SpainIslamicHolidays(_CustomIslamicHolidays):
|
|
724
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2010, 2025)
|
|
720
725
|
EID_AL_ADHA_DATES = {
|
|
721
726
|
2010: (NOV, 17),
|
|
722
|
-
2011: (NOV, 6),
|
|
723
727
|
2012: (OCT, 25),
|
|
724
|
-
2013: (OCT, 15),
|
|
725
|
-
2014: (OCT, 4),
|
|
726
728
|
2015: (SEP, 25),
|
|
727
729
|
2016: (SEP, 12),
|
|
728
|
-
2017: (SEP, 1),
|
|
729
730
|
2018: (AUG, 22),
|
|
730
731
|
2019: (AUG, 12),
|
|
731
|
-
2020: (JUL, 31),
|
|
732
|
-
2021: (JUL, 20),
|
|
733
|
-
2022: (JUL, 9),
|
|
734
732
|
2023: (JUN, 29),
|
|
735
733
|
2024: (JUN, 17),
|
|
736
|
-
2025: (JUN, 6),
|
|
737
734
|
}
|
|
738
735
|
|
|
736
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2022, 2025)
|
|
739
737
|
EID_AL_FITR_DATES = {
|
|
740
738
|
2022: (MAY, 3),
|
|
741
|
-
2023: (APR, 21),
|
|
742
739
|
2025: (MAR, 31),
|
|
743
740
|
}
|
|
744
741
|
|
holidays/countries/sri_lanka.py
CHANGED
|
@@ -289,10 +289,9 @@ class SriLankaHinduHolidays(_CustomHinduHolidays):
|
|
|
289
289
|
|
|
290
290
|
|
|
291
291
|
class SriLankaIslamicHolidays(_CustomIslamicHolidays):
|
|
292
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2003, 2025)
|
|
292
293
|
EID_AL_ADHA_DATES = {
|
|
293
294
|
2003: (FEB, 12),
|
|
294
|
-
2004: (FEB, 1),
|
|
295
|
-
2005: (JAN, 21),
|
|
296
295
|
2006: ((JAN, 11), (DEC, 31)),
|
|
297
296
|
2007: (DEC, 21),
|
|
298
297
|
2008: (DEC, 9),
|
|
@@ -306,7 +305,6 @@ class SriLankaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
306
305
|
2014: (OCT, 5),
|
|
307
306
|
2015: (SEP, 24),
|
|
308
307
|
2016: (SEP, 12),
|
|
309
|
-
2017: (SEP, 1),
|
|
310
308
|
2018: (AUG, 22),
|
|
311
309
|
2019: (AUG, 12),
|
|
312
310
|
2020: (AUG, 1),
|
|
@@ -317,23 +315,17 @@ class SriLankaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
317
315
|
2025: (JUN, 7),
|
|
318
316
|
}
|
|
319
317
|
|
|
318
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2003, 2025)
|
|
320
319
|
EID_AL_FITR_DATES = {
|
|
321
320
|
2003: (NOV, 26),
|
|
322
|
-
2004: (NOV, 14),
|
|
323
321
|
2005: (NOV, 4),
|
|
324
322
|
2006: (OCT, 24),
|
|
325
|
-
2007: (OCT, 13),
|
|
326
|
-
2008: (OCT, 1),
|
|
327
323
|
2009: (SEP, 21),
|
|
328
|
-
2010: (SEP, 10),
|
|
329
324
|
2011: (AUG, 31),
|
|
330
|
-
2012: (AUG, 19),
|
|
331
325
|
2013: (AUG, 9),
|
|
332
326
|
2014: (JUL, 29),
|
|
333
327
|
2015: (JUL, 18),
|
|
334
|
-
2016: (JUL, 6),
|
|
335
328
|
2017: (JUN, 26),
|
|
336
|
-
2018: (JUN, 15),
|
|
337
329
|
2019: (JUN, 5),
|
|
338
330
|
2020: (MAY, 25),
|
|
339
331
|
2021: (MAY, 14),
|
|
@@ -343,25 +335,22 @@ class SriLankaIslamicHolidays(_CustomIslamicHolidays):
|
|
|
343
335
|
2025: (MAR, 31),
|
|
344
336
|
}
|
|
345
337
|
|
|
338
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2003, 2025)
|
|
346
339
|
MAWLID_DATES = {
|
|
347
340
|
2003: (MAY, 14),
|
|
348
341
|
2004: (MAY, 2),
|
|
349
342
|
2005: (APR, 22),
|
|
350
343
|
2006: (APR, 11),
|
|
351
344
|
2007: (APR, 1),
|
|
352
|
-
2008: (MAR, 20),
|
|
353
345
|
2009: (MAR, 10),
|
|
354
346
|
2010: (FEB, 27),
|
|
355
347
|
2011: (FEB, 16),
|
|
356
348
|
2012: (FEB, 5),
|
|
357
349
|
2013: (JAN, 25),
|
|
358
350
|
2014: (JAN, 14),
|
|
359
|
-
# Technically 2015 has both JAN 5 and DEC 24
|
|
360
|
-
# but this is only observed for JAN 4.
|
|
361
351
|
2015: (JAN, 4),
|
|
362
352
|
2016: (DEC, 12),
|
|
363
353
|
2017: (DEC, 1),
|
|
364
|
-
2018: (NOV, 20),
|
|
365
354
|
2019: (NOV, 10),
|
|
366
355
|
2020: (OCT, 30),
|
|
367
356
|
2021: (OCT, 19),
|
holidays/countries/suriname.py
CHANGED
|
@@ -14,7 +14,7 @@ from gettext import gettext as tr
|
|
|
14
14
|
|
|
15
15
|
from holidays import HolidayBase
|
|
16
16
|
from holidays.calendars import _CustomHinduHolidays, _CustomIslamicHolidays
|
|
17
|
-
from holidays.calendars.gregorian import MAR, APR,
|
|
17
|
+
from holidays.calendars.gregorian import MAR, APR, JUN, JUL, AUG, SEP, OCT, NOV
|
|
18
18
|
from holidays.groups import (
|
|
19
19
|
ChineseCalendarHolidays,
|
|
20
20
|
ChristianHolidays,
|
|
@@ -142,6 +142,14 @@ class Suriname(
|
|
|
142
142
|
self._add_chinese_new_years_day(tr("Chinees Nieuwjaar"))
|
|
143
143
|
|
|
144
144
|
|
|
145
|
+
class SR(Suriname):
|
|
146
|
+
pass
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class SUR(Suriname):
|
|
150
|
+
pass
|
|
151
|
+
|
|
152
|
+
|
|
145
153
|
class SurinameHinduHolidays(_CustomHinduHolidays):
|
|
146
154
|
# https://web.archive.org/web/20241104221047/https://www.timeanddate.com/holidays/suriname/holi-phagwa
|
|
147
155
|
HOLI_DATES = {
|
|
@@ -187,41 +195,25 @@ class SurinameHinduHolidays(_CustomHinduHolidays):
|
|
|
187
195
|
|
|
188
196
|
class SurinameIslamicHolidays(_CustomIslamicHolidays):
|
|
189
197
|
# https://web.archive.org/web/20241107062349/https://www.timeanddate.com/holidays/suriname/eid-al-fitr
|
|
198
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2014, 2025)
|
|
190
199
|
EID_AL_FITR_DATES = {
|
|
191
200
|
2014: (JUL, 29),
|
|
192
201
|
2015: (JUL, 18),
|
|
193
202
|
2016: (JUL, 7),
|
|
194
203
|
2017: (JUN, 26),
|
|
195
|
-
2018: (JUN, 15),
|
|
196
204
|
2019: (JUN, 5),
|
|
197
|
-
2020: (MAY, 24),
|
|
198
|
-
2021: (MAY, 13),
|
|
199
|
-
2022: (MAY, 2),
|
|
200
205
|
2023: (APR, 22),
|
|
201
|
-
2024: (APR, 10),
|
|
202
206
|
2025: (MAR, 31),
|
|
203
207
|
}
|
|
204
208
|
|
|
205
209
|
# https://web.archive.org/web/20241113121535/https://www.timeanddate.com/holidays/suriname/eid-al-adha
|
|
210
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2014, 2025)
|
|
206
211
|
EID_AL_ADHA_DATES = {
|
|
207
212
|
2014: (OCT, 5),
|
|
208
213
|
2015: (SEP, 24),
|
|
209
214
|
2016: (SEP, 13),
|
|
210
215
|
2017: (SEP, 2),
|
|
211
|
-
2018: (AUG, 21),
|
|
212
216
|
2019: (AUG, 12),
|
|
213
|
-
2020: (JUL, 31),
|
|
214
|
-
2021: (JUL, 20),
|
|
215
|
-
2022: (JUL, 9),
|
|
216
217
|
2023: (JUN, 29),
|
|
217
|
-
2024: (JUN, 16),
|
|
218
218
|
2025: (JUN, 7),
|
|
219
219
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
class SR(Suriname):
|
|
223
|
-
pass
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
class SUR(Suriname):
|
|
227
|
-
pass
|
|
@@ -0,0 +1,134 @@
|
|
|
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.calendars import _CustomIslamicHolidays
|
|
16
|
+
from holidays.calendars.gregorian import GREGORIAN_CALENDAR, MAR, OCT, FRI, SAT
|
|
17
|
+
from holidays.calendars.julian import JULIAN_CALENDAR
|
|
18
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
19
|
+
from holidays.holiday_base import HolidayBase
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SyrianArabRepublic(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
23
|
+
"""Syrian Arab Republic holidays.
|
|
24
|
+
|
|
25
|
+
References:
|
|
26
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Syria>
|
|
27
|
+
* [Central Bank of Syria - Public Holidays 2024](https://web.archive.org/web/20250813035705/https://cb.gov.sy/index.php?lang=1&dir=html&ex=1&page=holidays&act=598-)
|
|
28
|
+
* [Christmas and Boxing Day](https://web.archive.org/web/20250414224148/https://en.royanews.tv/news/56308)
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
country = "SY"
|
|
32
|
+
default_language = "ar"
|
|
33
|
+
# %s (estimated).
|
|
34
|
+
estimated_label = tr("%s (المقدرة)")
|
|
35
|
+
# Earliest reliable record dates back to 2004.
|
|
36
|
+
start_year = 2004
|
|
37
|
+
supported_languages = ("ar", "en_US")
|
|
38
|
+
weekend = {FRI, SAT}
|
|
39
|
+
|
|
40
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
41
|
+
"""
|
|
42
|
+
Args:
|
|
43
|
+
islamic_show_estimated:
|
|
44
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
45
|
+
if holiday date is estimated.
|
|
46
|
+
"""
|
|
47
|
+
ChristianHolidays.__init__(self, calendar=JULIAN_CALENDAR)
|
|
48
|
+
InternationalHolidays.__init__(self)
|
|
49
|
+
IslamicHolidays.__init__(
|
|
50
|
+
self, cls=SyriaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
51
|
+
)
|
|
52
|
+
super().__init__(*args, **kwargs)
|
|
53
|
+
|
|
54
|
+
def _populate_public_holidays(self):
|
|
55
|
+
# New Year's Day.
|
|
56
|
+
self._add_new_years_day(tr("عيد رأس السنة الميلادية"))
|
|
57
|
+
|
|
58
|
+
# Revolution Day.
|
|
59
|
+
self._add_holiday_mar_8(tr("الثورة السورية"))
|
|
60
|
+
|
|
61
|
+
# Mother's Day.
|
|
62
|
+
self._add_holiday_mar_21(tr("عيد الأم"))
|
|
63
|
+
|
|
64
|
+
# Gregorian Easter Sunday.
|
|
65
|
+
self._add_easter_sunday(tr("عيد الفصح حسب التقويم الغربي"), calendar=GREGORIAN_CALENDAR)
|
|
66
|
+
|
|
67
|
+
# Julian Easter Sunday.
|
|
68
|
+
self._add_easter_sunday(tr("عيد الفصح حسب التقويم الشرقي"))
|
|
69
|
+
|
|
70
|
+
# Independence Day.
|
|
71
|
+
self._add_holiday_apr_17(tr("عيد الاستقلال"))
|
|
72
|
+
|
|
73
|
+
# Labor Day.
|
|
74
|
+
self._add_labor_day(tr("عيد العمال"))
|
|
75
|
+
|
|
76
|
+
# Martyrs' Day.
|
|
77
|
+
self._add_holiday_may_6(tr("عيد الشهداء"))
|
|
78
|
+
|
|
79
|
+
# Tishreen Liberation War Day.
|
|
80
|
+
self._add_holiday_oct_6(tr("ذكرى حرب تشرين التحريرية"))
|
|
81
|
+
|
|
82
|
+
if self._year >= 2024:
|
|
83
|
+
# Christmas Day.
|
|
84
|
+
self._add_christmas_day(tr("عيد الميلاد"), calendar=GREGORIAN_CALENDAR)
|
|
85
|
+
|
|
86
|
+
# Boxing Day.
|
|
87
|
+
self._add_christmas_day_two(tr("يوم الصناديق"), calendar=GREGORIAN_CALENDAR)
|
|
88
|
+
|
|
89
|
+
# Islamic New Year.
|
|
90
|
+
self._add_islamic_new_year_day(tr("رأس السنة الهجرية"))
|
|
91
|
+
|
|
92
|
+
# Prophet's Birthday.
|
|
93
|
+
self._add_mawlid_day(tr("عيد المولد النبوي الشريف"))
|
|
94
|
+
|
|
95
|
+
# Eid al-Fitr.
|
|
96
|
+
name = tr("عيد الفطر")
|
|
97
|
+
self._add_eid_al_fitr_day(name)
|
|
98
|
+
self._add_eid_al_fitr_day_two(name)
|
|
99
|
+
self._add_eid_al_fitr_day_three(name)
|
|
100
|
+
|
|
101
|
+
# Eid al-Adha.
|
|
102
|
+
name = tr("عيد الأضحى")
|
|
103
|
+
self._add_arafah_day(name)
|
|
104
|
+
self._add_eid_al_adha_day(name)
|
|
105
|
+
self._add_eid_al_adha_day_two(name)
|
|
106
|
+
self._add_eid_al_adha_day_three(name)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class SY(SyrianArabRepublic):
|
|
110
|
+
pass
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class SYR(SyrianArabRepublic):
|
|
114
|
+
pass
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class SyriaIslamicHolidays(_CustomIslamicHolidays):
|
|
118
|
+
# https://web.archive.org/web/20250120140034/https://www.timeanddate.com/holidays/syria/muharram-new-year
|
|
119
|
+
HIJRI_NEW_YEAR_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
120
|
+
|
|
121
|
+
# https://web.archive.org/web/20240808150300/https://www.timeanddate.com/holidays/syria/prophet-birthday
|
|
122
|
+
MAWLID_DATES_CONFIRMED_YEARS = (2020, 2024)
|
|
123
|
+
MAWLID_DATES = {
|
|
124
|
+
2021: (OCT, 19),
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
# https://web.archive.org/web/20250404011133/https://www.timeanddate.com/holidays/syria/eid-al-fitr
|
|
128
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2020, 2025)
|
|
129
|
+
EID_AL_FITR_DATES = {
|
|
130
|
+
2025: (MAR, 31),
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
# https://web.archive.org/web/20250126132002/https://www.timeanddate.com/holidays/syria/eid-al-adha
|
|
134
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2020, 2025)
|