holidays 0.25__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 +9 -7
- holidays/calendars/buddhist.py +445 -0
- holidays/calendars/chinese.py +1238 -431
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hebrew.py +2 -2
- holidays/calendars/hindu.py +445 -0
- holidays/calendars/islamic.py +1347 -1347
- holidays/calendars/thai.py +229 -38
- holidays/countries/__init__.py +8 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +25 -35
- holidays/countries/armenia.py +1 -0
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/austria.py +1 -0
- holidays/countries/azerbaijan.py +44 -71
- holidays/countries/bahrain.py +7 -7
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +2 -3
- holidays/countries/belize.py +128 -0
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +37 -44
- holidays/countries/brazil.py +4 -7
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +3 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +183 -0
- holidays/countries/canada.py +20 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +6 -13
- holidays/countries/china.py +21 -25
- holidays/countries/colombia.py +18 -15
- holidays/countries/costa_rica.py +25 -27
- holidays/countries/cuba.py +28 -15
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +3 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +2 -3
- holidays/countries/dominican_republic.py +2 -3
- holidays/countries/ecuador.py +55 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/el_salvador.py +101 -0
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +7 -14
- holidays/countries/finland.py +2 -3
- holidays/countries/france.py +1 -0
- holidays/countries/gabon.py +139 -0
- holidays/countries/georgia.py +1 -0
- holidays/countries/germany.py +1 -0
- holidays/countries/greece.py +7 -6
- holidays/countries/honduras.py +17 -13
- holidays/countries/hongkong.py +117 -126
- holidays/countries/hungary.py +93 -92
- holidays/countries/iceland.py +1 -0
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +178 -142
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +23 -5
- holidays/countries/israel.py +12 -24
- holidays/countries/italy.py +6 -7
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +11 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +44 -26
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/liechtenstein.py +1 -0
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +335 -343
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +2 -3
- holidays/countries/moldova.py +4 -6
- holidays/countries/monaco.py +17 -26
- holidays/countries/montenegro.py +34 -24
- holidays/countries/morocco.py +8 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/netherlands.py +1 -0
- holidays/countries/new_zealand.py +166 -134
- holidays/countries/nicaragua.py +27 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +2 -3
- holidays/countries/pakistan.py +73 -75
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +55 -47
- holidays/countries/peru.py +1 -0
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +4 -9
- holidays/countries/portugal.py +4 -11
- holidays/countries/romania.py +4 -5
- holidays/countries/russia.py +1 -0
- holidays/countries/san_marino.py +26 -27
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +22 -31
- holidays/countries/singapore.py +181 -189
- holidays/countries/slovakia.py +2 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +59 -26
- holidays/countries/spain.py +7 -10
- holidays/countries/sweden.py +2 -3
- holidays/countries/switzerland.py +1 -0
- holidays/countries/taiwan.py +20 -20
- holidays/countries/thailand.py +36 -82
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +7 -18
- holidays/countries/united_arab_emirates.py +23 -31
- holidays/countries/united_kingdom.py +124 -116
- holidays/countries/united_states.py +42 -72
- holidays/countries/uruguay.py +1 -0
- holidays/countries/vatican_city.py +64 -32
- holidays/countries/venezuela.py +9 -6
- holidays/countries/vietnam.py +6 -20
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +15 -16
- holidays/financial/ny_stock_exchange.py +80 -86
- 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 +54 -76
- holidays/holiday_groups.py +11 -1053
- holidays/locale/am/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/am/LC_MESSAGES/ET.po +20 -15
- holidays/locale/ar/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/CA.po +184 -0
- holidays/locale/ar/LC_MESSAGES/ET.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/ET.po +92 -0
- holidays/locale/ar/LC_MESSAGES/UA.mo +0 -0
- holidays/locale/ar/LC_MESSAGES/UA.po +97 -0
- holidays/locale/be/LC_MESSAGES/BY.po +11 -13
- holidays/locale/bg/LC_MESSAGES/BG.po +13 -15
- holidays/locale/da/LC_MESSAGES/DK.po +13 -12
- holidays/locale/de/LC_MESSAGES/AT.po +14 -14
- holidays/locale/de/LC_MESSAGES/CH.po +91 -56
- holidays/locale/de/LC_MESSAGES/DE.po +32 -32
- holidays/locale/de/LC_MESSAGES/LI.po +23 -23
- holidays/locale/el/LC_MESSAGES/CY.po +16 -16
- holidays/locale/el/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/el/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AM.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AM.po +20 -20
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.po +34 -33
- holidays/locale/en_US/LC_MESSAGES/AT.po +13 -13
- 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 +13 -15
- 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 +11 -13
- holidays/locale/en_US/LC_MESSAGES/CA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CA.po +70 -37
- holidays/locale/en_US/LC_MESSAGES/CH.po +91 -56
- holidays/locale/en_US/LC_MESSAGES/CL.po +39 -38
- holidays/locale/en_US/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CO.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CR.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CU.po +10 -10
- 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 +16 -16
- holidays/locale/en_US/LC_MESSAGES/DE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/DK.po +12 -11
- 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.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ET.po +20 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/FR.po +27 -24
- holidays/locale/en_US/LC_MESSAGES/GE.po +23 -27
- holidays/locale/en_US/LC_MESSAGES/GR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GR.po +21 -17
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +17 -12
- 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/IS.po +17 -17
- holidays/locale/en_US/LC_MESSAGES/JP.po +25 -25
- 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/LI.po +22 -22
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +27 -27
- holidays/locale/en_US/LC_MESSAGES/MD.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/MX.po +9 -12
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/NL.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/NO.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/PE.po +30 -30
- holidays/locale/en_US/LC_MESSAGES/PL.po +38 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +39 -36
- holidays/locale/en_US/LC_MESSAGES/PY.po +16 -16
- holidays/locale/en_US/LC_MESSAGES/RO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RS.po +17 -19
- holidays/locale/en_US/LC_MESSAGES/RU.po +11 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/SK.po +17 -18
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +18 -19
- holidays/locale/en_US/LC_MESSAGES/UY.po +15 -15
- holidays/locale/en_US/LC_MESSAGES/VE.po +16 -16
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.po +34 -33
- holidays/locale/es/LC_MESSAGES/CL.po +39 -38
- holidays/locale/es/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CO.po +24 -24
- holidays/locale/es/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/CR.po +19 -19
- holidays/locale/es/LC_MESSAGES/CU.po +10 -10
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/es/LC_MESSAGES/HN.po +17 -12
- holidays/locale/es/LC_MESSAGES/MX.po +9 -12
- holidays/locale/es/LC_MESSAGES/NI.po +12 -12
- holidays/locale/es/LC_MESSAGES/PE.po +30 -30
- holidays/locale/es/LC_MESSAGES/PY.po +16 -16
- holidays/locale/es/LC_MESSAGES/UY.po +15 -15
- holidays/locale/es/LC_MESSAGES/VE.po +16 -16
- holidays/locale/fi/LC_MESSAGES/FI.po +16 -16
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/CH.po +91 -56
- holidays/locale/fr/LC_MESSAGES/FR.po +27 -24
- holidays/locale/fr/LC_MESSAGES/MC.po +23 -23
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/hy/LC_MESSAGES/AM.po +16 -16
- holidays/locale/is/LC_MESSAGES/IS.po +18 -18
- holidays/locale/it/LC_MESSAGES/CH.po +91 -56
- holidays/locale/ja/LC_MESSAGES/JP.po +25 -25
- holidays/locale/ka/LC_MESSAGES/GE.po +23 -27
- 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/nl/LC_MESSAGES/NL.po +13 -13
- holidays/locale/no/LC_MESSAGES/NO.po +14 -14
- 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 +38 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +39 -36
- holidays/locale/ro/LC_MESSAGES/MD.po +14 -15
- holidays/locale/ro/LC_MESSAGES/RO.po +13 -14
- holidays/locale/ru/LC_MESSAGES/RU.po +11 -9
- holidays/locale/sk/LC_MESSAGES/SK.po +17 -18
- holidays/locale/sr/LC_MESSAGES/RS.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/RS.po +15 -17
- holidays/locale/sv/LC_MESSAGES/FI.po +16 -16
- holidays/locale/sv/LC_MESSAGES/SE.po +20 -20
- 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 +42 -42
- 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.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.po +35 -35
- holidays/locale/uk/LC_MESSAGES/AT.po +15 -16
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CH.po +92 -58
- holidays/locale/uk/LC_MESSAGES/CL.po +40 -40
- holidays/locale/uk/LC_MESSAGES/CO.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CO.po +28 -29
- holidays/locale/uk/LC_MESSAGES/CR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CR.po +20 -21
- holidays/locale/uk/LC_MESSAGES/CU.po +11 -12
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DE.po +33 -34
- holidays/locale/uk/LC_MESSAGES/DK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/DO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/EC.po +12 -14
- holidays/locale/uk/LC_MESSAGES/FI.po +17 -18
- holidays/locale/uk/LC_MESSAGES/FR.po +28 -26
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +18 -14
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/IS.po +19 -20
- holidays/locale/uk/LC_MESSAGES/LI.po +24 -25
- holidays/locale/uk/LC_MESSAGES/MC.po +27 -28
- holidays/locale/uk/LC_MESSAGES/MD.po +14 -15
- holidays/locale/uk/LC_MESSAGES/MX.po +10 -14
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +16 -17
- holidays/locale/uk/LC_MESSAGES/NL.po +14 -15
- holidays/locale/uk/LC_MESSAGES/NO.po +15 -16
- holidays/locale/uk/LC_MESSAGES/PE.po +31 -32
- holidays/locale/uk/LC_MESSAGES/PL.po +38 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +17 -18
- holidays/locale/uk/LC_MESSAGES/RO.po +13 -14
- holidays/locale/uk/LC_MESSAGES/SE.po +21 -22
- holidays/locale/uk/LC_MESSAGES/SK.po +18 -20
- holidays/locale/uk/LC_MESSAGES/UA.po +17 -17
- holidays/locale/uk/LC_MESSAGES/UY.po +16 -17
- holidays/locale/uk/LC_MESSAGES/VE.po +17 -18
- holidays/registry.py +21 -12
- holidays/utils.py +87 -17
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/METADATA +282 -265
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.25.dist-info/RECORD +0 -390
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.25.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
holidays/countries/san_marino.py
CHANGED
|
@@ -9,16 +9,12 @@
|
|
|
9
9
|
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
10
|
# License: MIT (see LICENSE file)
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from datetime import timedelta as td
|
|
14
|
-
|
|
15
|
-
from dateutil.easter import easter
|
|
16
|
-
|
|
17
|
-
from holidays.constants import JAN, FEB, MAR, MAY, JUL, AUG, SEP, NOV, DEC
|
|
12
|
+
from holidays.constants import FEB, MAR, JUL, SEP
|
|
18
13
|
from holidays.holiday_base import HolidayBase
|
|
14
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
15
|
|
|
20
16
|
|
|
21
|
-
class SanMarino(HolidayBase):
|
|
17
|
+
class SanMarino(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
22
18
|
"""
|
|
23
19
|
References:
|
|
24
20
|
- https://en.wikipedia.org/wiki/Public_holidays_in_San_Marino
|
|
@@ -26,64 +22,67 @@ class SanMarino(HolidayBase):
|
|
|
26
22
|
|
|
27
23
|
country = "SM"
|
|
28
24
|
|
|
25
|
+
def __init__(self, *args, **kwargs):
|
|
26
|
+
ChristianHolidays.__init__(self)
|
|
27
|
+
InternationalHolidays.__init__(self)
|
|
28
|
+
super().__init__(*args, **kwargs)
|
|
29
|
+
|
|
29
30
|
def _populate(self, year: int) -> None:
|
|
30
31
|
super()._populate(year)
|
|
31
32
|
|
|
32
33
|
# New Year's Day.
|
|
33
|
-
self
|
|
34
|
+
self._add_new_years_day("New Year's Day")
|
|
34
35
|
|
|
35
36
|
# Epiphany.
|
|
36
|
-
self
|
|
37
|
+
self._add_epiphany_day("Epiphany")
|
|
37
38
|
|
|
38
39
|
# Feast of Saint Agatha.
|
|
39
|
-
self
|
|
40
|
+
self._add_holiday("Feast of Saint Agatha", FEB, 5)
|
|
40
41
|
|
|
41
42
|
# Anniversary of the Arengo.
|
|
42
|
-
self
|
|
43
|
-
|
|
44
|
-
easter_sunday = easter(year)
|
|
43
|
+
self._add_holiday("Anniversary of the Arengo", MAR, 25)
|
|
45
44
|
|
|
46
45
|
# Easter Sunday.
|
|
47
|
-
self
|
|
46
|
+
self._add_easter_sunday("Easter Sunday")
|
|
48
47
|
|
|
49
48
|
# Easter Monday.
|
|
50
|
-
self
|
|
49
|
+
self._add_easter_monday("Easter Monday")
|
|
51
50
|
|
|
52
51
|
# Labour Day.
|
|
53
|
-
self
|
|
52
|
+
self._add_labor_day("Labour Day")
|
|
54
53
|
|
|
55
54
|
# Corpus Cristi.
|
|
56
|
-
self
|
|
55
|
+
self._add_corpus_christi_day("Corpus Cristi")
|
|
57
56
|
|
|
58
57
|
# Liberation from Fascism Day.
|
|
59
|
-
self
|
|
58
|
+
self._add_holiday("Liberation from Fascism Day", JUL, 28)
|
|
60
59
|
|
|
61
60
|
# Assumption of Mary.
|
|
62
|
-
self
|
|
61
|
+
self._add_assumption_of_mary_day("Assumption Day")
|
|
63
62
|
|
|
64
63
|
# The Feast of Saint Marinus and the Republic.
|
|
65
|
-
self
|
|
64
|
+
self._add_holiday("Foundation Day", SEP, 3)
|
|
66
65
|
|
|
67
66
|
# All Saints' Day.
|
|
68
|
-
self
|
|
67
|
+
self._add_all_saints_day("All Saints' Day")
|
|
69
68
|
|
|
70
69
|
# Commemoration of the Dead.
|
|
71
|
-
self
|
|
70
|
+
self._add_all_souls_day("Commemoration of the Dead")
|
|
72
71
|
|
|
73
72
|
# Immaculate Conception.
|
|
74
|
-
self
|
|
73
|
+
self._add_immaculate_conception_day("Immaculate Conception Day")
|
|
75
74
|
|
|
76
75
|
# Christmas Eve.
|
|
77
|
-
self
|
|
76
|
+
self._add_christmas_eve("Christmas Eve")
|
|
78
77
|
|
|
79
78
|
# Christmas Day.
|
|
80
|
-
self
|
|
79
|
+
self._add_christmas_day("Christmas Day")
|
|
81
80
|
|
|
82
81
|
# Saint Stephen's Day.
|
|
83
|
-
self
|
|
82
|
+
self._add_christmas_day_two("Saint Stephen's Day")
|
|
84
83
|
|
|
85
84
|
# New Year's Eve.
|
|
86
|
-
self
|
|
85
|
+
self._add_new_years_eve("New Year's Eve")
|
|
87
86
|
|
|
88
87
|
|
|
89
88
|
class SM(SanMarino):
|
|
@@ -36,40 +36,30 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
36
36
|
country = "SA"
|
|
37
37
|
special_holidays = {
|
|
38
38
|
# celebrate the country's win against Argentina in the World Cup
|
|
39
|
-
2022: (
|
|
39
|
+
2022: (NOV, 23, "National Holiday"),
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
def __init__(self, *args, **kwargs):
|
|
43
43
|
IslamicHolidays.__init__(self)
|
|
44
44
|
super().__init__(*args, **kwargs)
|
|
45
45
|
|
|
46
|
-
def _add_islamic_observed(
|
|
47
|
-
self, hol_name: str, hol_dates: Set[date]
|
|
48
|
-
) -> None:
|
|
46
|
+
def _add_islamic_observed(self, hol_name: str, hol_dates: Set[date]) -> None:
|
|
49
47
|
if not self.observed:
|
|
50
48
|
return None
|
|
51
49
|
for dt in hol_dates:
|
|
52
|
-
weekend_days = sum(
|
|
53
|
-
self._is_weekend(dt + td(days=i)) for i in range(4)
|
|
54
|
-
)
|
|
50
|
+
weekend_days = sum(self._is_weekend(dt + td(days=i)) for i in range(4))
|
|
55
51
|
for i in range(weekend_days):
|
|
56
|
-
self._add_holiday(
|
|
57
|
-
f"{hol_name} (Observed)", dt + td(days=+4 + i)
|
|
58
|
-
)
|
|
52
|
+
self._add_holiday(f"{hol_name} (Observed)", dt + td(days=+4 + i))
|
|
59
53
|
|
|
60
54
|
def _add_observed(self, hol_date: date) -> None:
|
|
61
55
|
if self.observed:
|
|
62
56
|
weekend = sorted(self.weekend)
|
|
63
57
|
# 1st weekend day (Thursday before 2013 and Friday otherwise)
|
|
64
58
|
if hol_date.weekday() == weekend[0]:
|
|
65
|
-
self._add_holiday(
|
|
66
|
-
f"{self[hol_date]} (Observed)", hol_date + td(days=-1)
|
|
67
|
-
)
|
|
59
|
+
self._add_holiday(f"{self[hol_date]} (Observed)", hol_date + td(days=-1))
|
|
68
60
|
# 2nd weekend day (Friday before 2013 and Saturday otherwise)
|
|
69
61
|
elif hol_date.weekday() == weekend[1]:
|
|
70
|
-
self._add_holiday(
|
|
71
|
-
f"{self[hol_date]} (Observed)", hol_date + td(days=+1)
|
|
72
|
-
)
|
|
62
|
+
self._add_holiday(f"{self[hol_date]} (Observed)", hol_date + td(days=+1))
|
|
73
63
|
|
|
74
64
|
def _populate(self, year):
|
|
75
65
|
super()._populate(year)
|
|
@@ -113,9 +103,7 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
113
103
|
if year >= 2005:
|
|
114
104
|
dt = date(year, SEP, 23)
|
|
115
105
|
if dt not in self:
|
|
116
|
-
self._add_observed(
|
|
117
|
-
self._add_holiday("National Day Holiday", dt)
|
|
118
|
-
)
|
|
106
|
+
self._add_observed(self._add_holiday("National Day Holiday", dt))
|
|
119
107
|
|
|
120
108
|
# Founding Day holiday (started 2022).
|
|
121
109
|
# Note: if founding day happens within the Eid al-Fitr Holiday or
|
|
@@ -123,9 +111,7 @@ class SaudiArabia(HolidayBase, IslamicHolidays):
|
|
|
123
111
|
if year >= 2022:
|
|
124
112
|
dt = date(year, FEB, 22)
|
|
125
113
|
if dt not in self:
|
|
126
|
-
self._add_observed(
|
|
127
|
-
self._add_holiday("Founding Day Holiday", dt)
|
|
128
|
-
)
|
|
114
|
+
self._add_observed(self._add_holiday("Founding Day Holiday", dt))
|
|
129
115
|
|
|
130
116
|
# observed holidays special cases
|
|
131
117
|
if self.observed and year == 2001:
|
holidays/countries/serbia.py
CHANGED
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
from datetime import date
|
|
13
13
|
from datetime import timedelta as td
|
|
14
14
|
from gettext import gettext as tr
|
|
15
|
-
from typing import Optional
|
|
16
15
|
|
|
17
16
|
from holidays.calendars import JULIAN_CALENDAR
|
|
18
|
-
from holidays.constants import
|
|
19
|
-
from holidays.holiday_base import
|
|
17
|
+
from holidays.constants import FEB
|
|
18
|
+
from holidays.holiday_base import HolidayBase
|
|
20
19
|
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
21
20
|
|
|
22
21
|
|
|
@@ -30,54 +29,46 @@ class Serbia(HolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
30
29
|
|
|
31
30
|
country = "RS"
|
|
32
31
|
default_language = "sr"
|
|
32
|
+
supported_languages = ("en_US", "sr")
|
|
33
33
|
|
|
34
34
|
def __init__(self, *args, **kwargs):
|
|
35
35
|
ChristianHolidays.__init__(self, JULIAN_CALENDAR)
|
|
36
36
|
InternationalHolidays.__init__(self)
|
|
37
37
|
super().__init__(*args, **kwargs)
|
|
38
38
|
|
|
39
|
-
def
|
|
40
|
-
self
|
|
41
|
-
|
|
42
|
-
return self._add_holiday(
|
|
43
|
-
self.tr("%s (Слободан дан)") % self.tr(name), *dt
|
|
44
|
-
)
|
|
39
|
+
def _add_observed(self, dt: date, days: int = +1) -> None:
|
|
40
|
+
if self.observed and self._is_sunday(dt):
|
|
41
|
+
self._add_holiday(self.tr("%s (слободан дан)") % self[dt], dt + td(days))
|
|
45
42
|
|
|
46
43
|
def _populate(self, year):
|
|
47
44
|
super()._populate(year)
|
|
48
45
|
|
|
49
46
|
# New Year's Day.
|
|
50
|
-
name =
|
|
51
|
-
self._add_new_years_day(name)
|
|
52
|
-
self._add_new_years_day_two(name)
|
|
53
|
-
if self.observed and self._is_weekend(JAN, 1):
|
|
54
|
-
self._add_observed_holiday(name, JAN, 3)
|
|
47
|
+
name = tr("Нова година")
|
|
48
|
+
self._add_observed(self._add_new_years_day(name), days=+2)
|
|
49
|
+
self._add_observed(self._add_new_years_day_two(name))
|
|
55
50
|
|
|
56
51
|
# Orthodox Christmas.
|
|
57
52
|
self._add_christmas_day(tr("Божић"))
|
|
58
53
|
|
|
59
54
|
# Statehood Day.
|
|
60
|
-
name =
|
|
61
|
-
self._add_holiday(name, FEB, 15)
|
|
62
|
-
self._add_holiday(name, FEB, 16)
|
|
63
|
-
if self.observed and self._is_weekend(FEB, 15):
|
|
64
|
-
self._add_observed_holiday(name, FEB, 17)
|
|
55
|
+
name = tr("Дан државности Србије")
|
|
56
|
+
self._add_observed(self._add_holiday(name, FEB, 15), days=+2)
|
|
57
|
+
self._add_observed(self._add_holiday(name, FEB, 16))
|
|
65
58
|
|
|
66
59
|
# International Workers' Day.
|
|
67
60
|
name = tr("Празник рада")
|
|
68
61
|
may_1 = self._add_labor_day(name)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
self.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if self.observed and self._is_sunday(nov_11):
|
|
80
|
-
self._add_holiday(name, nov_11 + td(days=+1))
|
|
62
|
+
self._add_observed(may_1, days=+2)
|
|
63
|
+
self._add_observed(
|
|
64
|
+
self._add_holiday(name, may_1 + td(days=+1)),
|
|
65
|
+
days=+2 if may_1 + td(days=+1) == self._easter_sunday else +1,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
self._add_observed(
|
|
69
|
+
# Armistice Day.
|
|
70
|
+
self._add_remembrance_day(tr("Дан примирја у Првом светском рату"))
|
|
71
|
+
)
|
|
81
72
|
|
|
82
73
|
# Good Friday.
|
|
83
74
|
self._add_good_friday(tr("Велики петак"))
|