From 84a9277763ca65700ed7d91506ff333df0625a4e Mon Sep 17 00:00:00 2001 From: ~Jhellico Date: Mon, 4 Mar 2024 20:28:16 +0200 Subject: [PATCH 01/14] Initialize v0.45 --- holidays/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/holidays/__init__.py b/holidays/__init__.py index 3a627343c..13c8eb5b4 100644 --- a/holidays/__init__.py +++ b/holidays/__init__.py @@ -16,7 +16,7 @@ from holidays.registry import EntityLoader from holidays.utils import * -__version__ = "0.44" +__version__ = "0.45" EntityLoader.load("countries", globals()) From b120e5e4e1de223087b0e1438b15a605a1e68cb7 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Wed, 6 Mar 2024 09:10:14 -0800 Subject: [PATCH 02/14] Add Kuwait holidays (#1707) Co-authored-by: Jaemin Kim --- AUTHORS | 1 + README.rst | 7 +- holidays/countries/__init__.py | 1 + holidays/countries/kuwait.py | 77 ++ holidays/groups/islamic.py | 1 + holidays/locale/ar/LC_MESSAGES/KW.po | 64 ++ holidays/locale/en_US/LC_MESSAGES/KW.po | 64 ++ holidays/registry.py | 1 + snapshots/countries/KW_COMMON.json | 1337 +++++++++++++++++++++++ tests/countries/test_kuwait.py | 77 ++ 10 files changed, 1629 insertions(+), 1 deletion(-) create mode 100644 holidays/countries/kuwait.py create mode 100644 holidays/locale/ar/LC_MESSAGES/KW.po create mode 100644 holidays/locale/en_US/LC_MESSAGES/KW.po create mode 100644 snapshots/countries/KW_COMMON.json create mode 100644 tests/countries/test_kuwait.py diff --git a/AUTHORS b/AUTHORS index adbef9495..97991b008 100644 --- a/AUTHORS +++ b/AUTHORS @@ -52,6 +52,7 @@ Hugh McNamara Hugo van Kemenade Jacky Han Jacob Punter +Jaemin Kim Jahir Fiquitiva Jakob M. Kjær Jan Pipek diff --git a/README.rst b/README.rst index 279072e77..b53e6aa11 100644 --- a/README.rst +++ b/README.rst @@ -142,7 +142,7 @@ Available Countries .. _ISO 639-1 code: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes .. _ISO 639-2 code: https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes -We currently support 143 country codes. The standard way to refer to a country +We currently support 144 country codes. The standard way to refer to a country is by using its `ISO 3166-1 alpha-2 code`_, the same used for domain names, and for a subdivision its `ISO 3166-2 code`_. Some countries have common or foreign names or abbreviations as aliases for their subdivisions. These are defined in @@ -541,6 +541,11 @@ All other default values are highlighted with bold: - - - + * - Kuwait + - KW + - + - **ar**, en_US + - * - Kyrgyzstan - KG - diff --git a/holidays/countries/__init__.py b/holidays/countries/__init__.py index 84efa2ff3..9235ff51f 100644 --- a/holidays/countries/__init__.py +++ b/holidays/countries/__init__.py @@ -84,6 +84,7 @@ from .jersey import Jersey, JE, JEY from .kazakhstan import Kazakhstan, KZ, KAZ from .kenya import Kenya, KE, KEN +from .kuwait import Kuwait, KW, KWT from .kyrgyzstan import Kyrgyzstan, KG, KGZ from .laos import Laos, LA, LAO from .latvia import Latvia, LV, LVA diff --git a/holidays/countries/kuwait.py b/holidays/countries/kuwait.py new file mode 100644 index 000000000..4b714d5fe --- /dev/null +++ b/holidays/countries/kuwait.py @@ -0,0 +1,77 @@ +# python-holidays +# --------------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/dr-prodigy/python-holidays +# License: MIT (see LICENSE file) + +from gettext import gettext as tr + +from holidays.groups import InternationalHolidays, IslamicHolidays +from holidays.holiday_base import HolidayBase + + +class Kuwait(HolidayBase, InternationalHolidays, IslamicHolidays): + """ + References: + - https://en.wikipedia.org/wiki/2024_in_Kuwait + - https://www.officeholidays.com/countries/kuwait + - https://www.timeanddate.com/holidays/kuwait/2024 + """ + + country = "KW" + default_language = "ar" + # %s (estimated). + estimated_label = tr("(تقدير) %s") + supported_languages = ("ar", "en_US") + + def __init__(self, *args, **kwargs): + InternationalHolidays.__init__(self) + IslamicHolidays.__init__(self) + super().__init__(*args, **kwargs) + + def _populate_public_holidays(self): + # New Year's Day. + self._add_new_years_day(tr("رأس السنة الميلادية")) + + # National Day. + self._add_holiday_feb_25(tr("اليوم الوطني")) + + # Liberation Day. + self._add_holiday_feb_26(tr("يوم التحرير")) + + # Islamic New Year. + self._add_islamic_new_year_day(tr("رأس السنة الهجرية")) + + # Prophet's Birthday. + self._add_mawlid_day(tr("عيد المولد النبوي")) + + # Isra and Miraj. + self._add_isra_and_miraj_day(tr("ليلة المعراج")) + + # Eid al-Fitr. + self._add_eid_al_fitr_day(tr("عيد الفطر")) + # Eid al-Fitr Holiday. + self._add_eid_al_fitr_day_two(tr("عطلة عيد الفطر")) + self._add_eid_al_fitr_day_three(tr("عطلة عيد الفطر")) + + # Arafat Day. + self._add_arafah_day(tr("يوم عرفة")) + + # Eid al-Adha. + self._add_eid_al_adha_day(tr("عيد الأضحى")) + # Eid al-Adha Holiday. + self._add_eid_al_adha_day_two(tr("عطلة عيد الأضحى")) + self._add_eid_al_adha_day_three(tr("عطلة عيد الأضحى")) + + +class KW(Kuwait): + pass + + +class KWT(Kuwait): + pass diff --git a/holidays/groups/islamic.py b/holidays/groups/islamic.py index faeae9cbe..4027b108b 100644 --- a/holidays/groups/islamic.py +++ b/holidays/groups/islamic.py @@ -291,6 +291,7 @@ def _add_isra_and_miraj_day(self, name): """ Add Isra' and Mi'raj Day (27th day of 7th month). + The Prophet's Ascension. https://en.wikipedia.org/wiki/Isra%27_and_Mi%27raj """ return self._add_islamic_calendar_holiday( diff --git a/holidays/locale/ar/LC_MESSAGES/KW.po b/holidays/locale/ar/LC_MESSAGES/KW.po new file mode 100644 index 000000000..7f65c3547 --- /dev/null +++ b/holidays/locale/ar/LC_MESSAGES/KW.po @@ -0,0 +1,64 @@ +# Kuwait holidays. +# Authors: Jaemin Kim , (c) 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Python Holidays 0.44\n" +"POT-Creation-Date: 2024-02-28 09:55-0800\n" +"PO-Revision-Date: 2024-02-28 09:55-0800\n" +"Last-Translator: Jaemin Kim \n" +"Language-Team: Python Holidays Localization Team\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Lingua 4.15.0\n" + +#. %s (estimated). +#, c-format +msgid "(تقدير) %s" +msgstr "" + +#. New Year's Day. +msgid "رأس السنة الميلادية" +msgstr "" + +#. Isra and Miraj. +msgid "ليلة المعراج" +msgstr "" + +#. National Day. +msgid "اليوم الوطني" +msgstr "" + +#. Liberation Day. +msgid "يوم التحرير" +msgstr "" + +#. Eid al-Fitr. +msgid "عيد الفطر" +msgstr "" + +#. Eid al-Fitr Holiday. +msgid "عطلة عيد الفطر" +msgstr "" + +#. Arafat Day. +msgid "يوم عرفة" +msgstr "" + +#. Eid al-Adha. +msgid "عيد الأضحى" +msgstr "" + +#. Eid al-Adha Holiday. +msgid "عطلة عيد الأضحى" +msgstr "" + +#. Islamic New Year. +msgid "رأس السنة الهجرية" +msgstr "" + +#. Prophet's Birthday. +msgid "عيد المولد النبوي" +msgstr "" diff --git a/holidays/locale/en_US/LC_MESSAGES/KW.po b/holidays/locale/en_US/LC_MESSAGES/KW.po new file mode 100644 index 000000000..cc7ffb022 --- /dev/null +++ b/holidays/locale/en_US/LC_MESSAGES/KW.po @@ -0,0 +1,64 @@ +# Kuwait holidays en_US localization. +# Authors: Arkadii Yakovets , (c) 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Python Holidays 0.44\n" +"POT-Creation-Date: 2024-02-28 09:55-0800\n" +"PO-Revision-Date: 2024-02-28 09:55-0800\n" +"Last-Translator: Arkadii Yakovets \n" +"Language-Team: Python Holidays Localization Team\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Lingua 4.15.0\n" + +#. %s (estimated). +#, c-format +msgid "(تقدير) %s" +msgstr "%s (estimated)" + +#. New Year's Day. +msgid "رأس السنة الميلادية" +msgstr "New Year's Day" + +#. Isra and Miraj. +msgid "ليلة المعراج" +msgstr "Isra and Miraj" + +#. National Day. +msgid "اليوم الوطني" +msgstr "National Day" + +#. Liberation Day. +msgid "يوم التحرير" +msgstr "Liberation Day" + +#. Eid al-Fitr. +msgid "عيد الفطر" +msgstr "Eid al-Fitr" + +#. Eid al-Fitr Holiday. +msgid "عطلة عيد الفطر" +msgstr "Eid al-Fitr Holiday" + +#. Arafat Day. +msgid "يوم عرفة" +msgstr "Arafat Day" + +#. Eid al-Adha. +msgid "عيد الأضحى" +msgstr "Eid al-Adha" + +#. Eid al-Adha Holiday. +msgid "عطلة عيد الأضحى" +msgstr "Eid al-Adha Holiday" + +#. Islamic New Year. +msgid "رأس السنة الهجرية" +msgstr "Islamic New Year" + +#. Prophet's Birthday. +msgid "عيد المولد النبوي" +msgstr "Prophet's Birthday" diff --git a/holidays/registry.py b/holidays/registry.py index 632cd4d6f..c609cbae9 100644 --- a/holidays/registry.py +++ b/holidays/registry.py @@ -90,6 +90,7 @@ "jersey": ("Jersey", "JE", "JEY"), "kazakhstan": ("Kazakhstan", "KZ", "KAZ"), "kenya": ("Kenya", "KE", "KEN"), + "kuwait": ("Kuwait", "KW", "KWT"), "kyrgyzstan": ("Kyrgyzstan", "KG", "KGZ"), "laos": ("Laos", "LA", "LAO"), "latvia": ("Latvia", "LV", "LVA"), diff --git a/snapshots/countries/KW_COMMON.json b/snapshots/countries/KW_COMMON.json new file mode 100644 index 000000000..dfbf3e475 --- /dev/null +++ b/snapshots/countries/KW_COMMON.json @@ -0,0 +1,1337 @@ +{ + "1950-01-01": "New Year's Day; Prophet's Birthday (estimated)", + "1950-02-25": "National Day", + "1950-02-26": "Liberation Day", + "1950-05-14": "Isra and Miraj (estimated)", + "1950-07-16": "Eid al-Fitr (estimated)", + "1950-07-17": "Eid al-Fitr Holiday (estimated)", + "1950-07-18": "Eid al-Fitr Holiday (estimated)", + "1950-09-22": "Arafat Day (estimated)", + "1950-09-23": "Eid al-Adha (estimated)", + "1950-09-24": "Eid al-Adha Holiday (estimated)", + "1950-09-25": "Eid al-Adha Holiday (estimated)", + "1950-10-13": "Islamic New Year (estimated)", + "1950-12-22": "Prophet's Birthday (estimated)", + "1951-01-01": "New Year's Day", + "1951-02-25": "National Day", + "1951-02-26": "Liberation Day", + "1951-05-04": "Isra and Miraj (estimated)", + "1951-07-06": "Eid al-Fitr (estimated)", + "1951-07-07": "Eid al-Fitr Holiday (estimated)", + "1951-07-08": "Eid al-Fitr Holiday (estimated)", + "1951-09-11": "Arafat Day (estimated)", + "1951-09-12": "Eid al-Adha (estimated)", + "1951-09-13": "Eid al-Adha Holiday (estimated)", + "1951-09-14": "Eid al-Adha Holiday (estimated)", + "1951-10-02": "Islamic New Year (estimated)", + "1951-12-11": "Prophet's Birthday (estimated)", + "1952-01-01": "New Year's Day", + "1952-02-25": "National Day", + "1952-02-26": "Liberation Day", + "1952-04-22": "Isra and Miraj (estimated)", + "1952-06-23": "Eid al-Fitr (estimated)", + "1952-06-24": "Eid al-Fitr Holiday (estimated)", + "1952-06-25": "Eid al-Fitr Holiday (estimated)", + "1952-08-30": "Arafat Day (estimated)", + "1952-08-31": "Eid al-Adha (estimated)", + "1952-09-01": "Eid al-Adha Holiday (estimated)", + "1952-09-02": "Eid al-Adha Holiday (estimated)", + "1952-09-21": "Islamic New Year (estimated)", + "1952-11-30": "Prophet's Birthday (estimated)", + "1953-01-01": "New Year's Day", + "1953-02-25": "National Day", + "1953-02-26": "Liberation Day", + "1953-04-12": "Isra and Miraj (estimated)", + "1953-06-13": "Eid al-Fitr (estimated)", + "1953-06-14": "Eid al-Fitr Holiday (estimated)", + "1953-06-15": "Eid al-Fitr Holiday (estimated)", + "1953-08-19": "Arafat Day (estimated)", + "1953-08-20": "Eid al-Adha (estimated)", + "1953-08-21": "Eid al-Adha Holiday (estimated)", + "1953-08-22": "Eid al-Adha Holiday (estimated)", + "1953-09-10": "Islamic New Year (estimated)", + "1953-11-19": "Prophet's Birthday (estimated)", + "1954-01-01": "New Year's Day", + "1954-02-25": "National Day", + "1954-02-26": "Liberation Day", + "1954-04-01": "Isra and Miraj (estimated)", + "1954-06-02": "Eid al-Fitr (estimated)", + "1954-06-03": "Eid al-Fitr Holiday (estimated)", + "1954-06-04": "Eid al-Fitr Holiday (estimated)", + "1954-08-08": "Arafat Day (estimated)", + "1954-08-09": "Eid al-Adha (estimated)", + "1954-08-10": "Eid al-Adha Holiday (estimated)", + "1954-08-11": "Eid al-Adha Holiday (estimated)", + "1954-08-30": "Islamic New Year (estimated)", + "1954-11-08": "Prophet's Birthday (estimated)", + "1955-01-01": "New Year's Day", + "1955-02-25": "National Day", + "1955-02-26": "Liberation Day", + "1955-03-21": "Isra and Miraj (estimated)", + "1955-05-23": "Eid al-Fitr (estimated)", + "1955-05-24": "Eid al-Fitr Holiday (estimated)", + "1955-05-25": "Eid al-Fitr Holiday (estimated)", + "1955-07-29": "Arafat Day (estimated)", + "1955-07-30": "Eid al-Adha (estimated)", + "1955-07-31": "Eid al-Adha Holiday (estimated)", + "1955-08-01": "Eid al-Adha Holiday (estimated)", + "1955-08-20": "Islamic New Year (estimated)", + "1955-10-29": "Prophet's Birthday (estimated)", + "1956-01-01": "New Year's Day", + "1956-02-25": "National Day", + "1956-02-26": "Liberation Day", + "1956-03-10": "Isra and Miraj (estimated)", + "1956-05-11": "Eid al-Fitr (estimated)", + "1956-05-12": "Eid al-Fitr Holiday (estimated)", + "1956-05-13": "Eid al-Fitr Holiday (estimated)", + "1956-07-18": "Arafat Day (estimated)", + "1956-07-19": "Eid al-Adha (estimated)", + "1956-07-20": "Eid al-Adha Holiday (estimated)", + "1956-07-21": "Eid al-Adha Holiday (estimated)", + "1956-08-08": "Islamic New Year (estimated)", + "1956-10-17": "Prophet's Birthday (estimated)", + "1957-01-01": "New Year's Day", + "1957-02-25": "National Day", + "1957-02-26": "Liberation Day", + "1957-02-27": "Isra and Miraj (estimated)", + "1957-05-01": "Eid al-Fitr (estimated)", + "1957-05-02": "Eid al-Fitr Holiday (estimated)", + "1957-05-03": "Eid al-Fitr Holiday (estimated)", + "1957-07-07": "Arafat Day (estimated)", + "1957-07-08": "Eid al-Adha (estimated)", + "1957-07-09": "Eid al-Adha Holiday (estimated)", + "1957-07-10": "Eid al-Adha Holiday (estimated)", + "1957-07-28": "Islamic New Year (estimated)", + "1957-10-06": "Prophet's Birthday (estimated)", + "1958-01-01": "New Year's Day", + "1958-02-16": "Isra and Miraj (estimated)", + "1958-02-25": "National Day", + "1958-02-26": "Liberation Day", + "1958-04-20": "Eid al-Fitr (estimated)", + "1958-04-21": "Eid al-Fitr Holiday (estimated)", + "1958-04-22": "Eid al-Fitr Holiday (estimated)", + "1958-06-26": "Arafat Day (estimated)", + "1958-06-27": "Eid al-Adha (estimated)", + "1958-06-28": "Eid al-Adha Holiday (estimated)", + "1958-06-29": "Eid al-Adha Holiday (estimated)", + "1958-07-18": "Islamic New Year (estimated)", + "1958-09-26": "Prophet's Birthday (estimated)", + "1959-01-01": "New Year's Day", + "1959-02-06": "Isra and Miraj (estimated)", + "1959-02-25": "National Day", + "1959-02-26": "Liberation Day", + "1959-04-10": "Eid al-Fitr (estimated)", + "1959-04-11": "Eid al-Fitr Holiday (estimated)", + "1959-04-12": "Eid al-Fitr Holiday (estimated)", + "1959-06-16": "Arafat Day (estimated)", + "1959-06-17": "Eid al-Adha (estimated)", + "1959-06-18": "Eid al-Adha Holiday (estimated)", + "1959-06-19": "Eid al-Adha Holiday (estimated)", + "1959-07-07": "Islamic New Year (estimated)", + "1959-09-15": "Prophet's Birthday (estimated)", + "1960-01-01": "New Year's Day", + "1960-01-26": "Isra and Miraj (estimated)", + "1960-02-25": "National Day", + "1960-02-26": "Liberation Day", + "1960-03-28": "Eid al-Fitr (estimated)", + "1960-03-29": "Eid al-Fitr Holiday (estimated)", + "1960-03-30": "Eid al-Fitr Holiday (estimated)", + "1960-06-03": "Arafat Day (estimated)", + "1960-06-04": "Eid al-Adha (estimated)", + "1960-06-05": "Eid al-Adha Holiday (estimated)", + "1960-06-06": "Eid al-Adha Holiday (estimated)", + "1960-06-25": "Islamic New Year (estimated)", + "1960-09-03": "Prophet's Birthday (estimated)", + "1961-01-01": "New Year's Day", + "1961-01-14": "Isra and Miraj (estimated)", + "1961-02-25": "National Day", + "1961-02-26": "Liberation Day", + "1961-03-18": "Eid al-Fitr (estimated)", + "1961-03-19": "Eid al-Fitr Holiday (estimated)", + "1961-03-20": "Eid al-Fitr Holiday (estimated)", + "1961-05-24": "Arafat Day (estimated)", + "1961-05-25": "Eid al-Adha (estimated)", + "1961-05-26": "Eid al-Adha Holiday (estimated)", + "1961-05-27": "Eid al-Adha Holiday (estimated)", + "1961-06-14": "Islamic New Year (estimated)", + "1961-08-23": "Prophet's Birthday (estimated)", + "1962-01-01": "New Year's Day", + "1962-01-04": "Isra and Miraj (estimated)", + "1962-02-25": "National Day", + "1962-02-26": "Liberation Day", + "1962-03-07": "Eid al-Fitr (estimated)", + "1962-03-08": "Eid al-Fitr Holiday (estimated)", + "1962-03-09": "Eid al-Fitr Holiday (estimated)", + "1962-05-13": "Arafat Day (estimated)", + "1962-05-14": "Eid al-Adha (estimated)", + "1962-05-15": "Eid al-Adha Holiday (estimated)", + "1962-05-16": "Eid al-Adha Holiday (estimated)", + "1962-06-03": "Islamic New Year (estimated)", + "1962-08-12": "Prophet's Birthday (estimated)", + "1962-12-24": "Isra and Miraj (estimated)", + "1963-01-01": "New Year's Day", + "1963-02-24": "Eid al-Fitr (estimated)", + "1963-02-25": "Eid al-Fitr Holiday (estimated); National Day", + "1963-02-26": "Eid al-Fitr Holiday (estimated); Liberation Day", + "1963-05-02": "Arafat Day (estimated)", + "1963-05-03": "Eid al-Adha (estimated)", + "1963-05-04": "Eid al-Adha Holiday (estimated)", + "1963-05-05": "Eid al-Adha Holiday (estimated)", + "1963-05-24": "Islamic New Year (estimated)", + "1963-08-02": "Prophet's Birthday (estimated)", + "1963-12-13": "Isra and Miraj (estimated)", + "1964-01-01": "New Year's Day", + "1964-02-14": "Eid al-Fitr (estimated)", + "1964-02-15": "Eid al-Fitr Holiday (estimated)", + "1964-02-16": "Eid al-Fitr Holiday (estimated)", + "1964-02-25": "National Day", + "1964-02-26": "Liberation Day", + "1964-04-21": "Arafat Day (estimated)", + "1964-04-22": "Eid al-Adha (estimated)", + "1964-04-23": "Eid al-Adha Holiday (estimated)", + "1964-04-24": "Eid al-Adha Holiday (estimated)", + "1964-05-12": "Islamic New Year (estimated)", + "1964-07-21": "Prophet's Birthday (estimated)", + "1964-12-01": "Isra and Miraj (estimated)", + "1965-01-01": "New Year's Day", + "1965-02-02": "Eid al-Fitr (estimated)", + "1965-02-03": "Eid al-Fitr Holiday (estimated)", + "1965-02-04": "Eid al-Fitr Holiday (estimated)", + "1965-02-25": "National Day", + "1965-02-26": "Liberation Day", + "1965-04-10": "Arafat Day (estimated)", + "1965-04-11": "Eid al-Adha (estimated)", + "1965-04-12": "Eid al-Adha Holiday (estimated)", + "1965-04-13": "Eid al-Adha Holiday (estimated)", + "1965-05-01": "Islamic New Year (estimated)", + "1965-07-10": "Prophet's Birthday (estimated)", + "1965-11-20": "Isra and Miraj (estimated)", + "1966-01-01": "New Year's Day", + "1966-01-22": "Eid al-Fitr (estimated)", + "1966-01-23": "Eid al-Fitr Holiday (estimated)", + "1966-01-24": "Eid al-Fitr Holiday (estimated)", + "1966-02-25": "National Day", + "1966-02-26": "Liberation Day", + "1966-03-31": "Arafat Day (estimated)", + "1966-04-01": "Eid al-Adha (estimated)", + "1966-04-02": "Eid al-Adha Holiday (estimated)", + "1966-04-03": "Eid al-Adha Holiday (estimated)", + "1966-04-21": "Islamic New Year (estimated)", + "1966-07-01": "Prophet's Birthday (estimated)", + "1966-11-10": "Isra and Miraj (estimated)", + "1967-01-01": "New Year's Day", + "1967-01-12": "Eid al-Fitr (estimated)", + "1967-01-13": "Eid al-Fitr Holiday (estimated)", + "1967-01-14": "Eid al-Fitr Holiday (estimated)", + "1967-02-25": "National Day", + "1967-02-26": "Liberation Day", + "1967-03-20": "Arafat Day (estimated)", + "1967-03-21": "Eid al-Adha (estimated)", + "1967-03-22": "Eid al-Adha Holiday (estimated)", + "1967-03-23": "Eid al-Adha Holiday (estimated)", + "1967-04-11": "Islamic New Year (estimated)", + "1967-06-19": "Prophet's Birthday (estimated)", + "1967-10-30": "Isra and Miraj (estimated)", + "1968-01-01": "Eid al-Fitr (estimated); New Year's Day", + "1968-01-02": "Eid al-Fitr Holiday (estimated)", + "1968-01-03": "Eid al-Fitr Holiday (estimated)", + "1968-02-25": "National Day", + "1968-02-26": "Liberation Day", + "1968-03-08": "Arafat Day (estimated)", + "1968-03-09": "Eid al-Adha (estimated)", + "1968-03-10": "Eid al-Adha Holiday (estimated)", + "1968-03-11": "Eid al-Adha Holiday (estimated)", + "1968-03-30": "Islamic New Year (estimated)", + "1968-06-08": "Prophet's Birthday (estimated)", + "1968-10-19": "Isra and Miraj (estimated)", + "1968-12-21": "Eid al-Fitr (estimated)", + "1968-12-22": "Eid al-Fitr Holiday (estimated)", + "1968-12-23": "Eid al-Fitr Holiday (estimated)", + "1969-01-01": "New Year's Day", + "1969-02-25": "National Day", + "1969-02-26": "Arafat Day (estimated); Liberation Day", + "1969-02-27": "Eid al-Adha (estimated)", + "1969-02-28": "Eid al-Adha Holiday (estimated)", + "1969-03-01": "Eid al-Adha Holiday (estimated)", + "1969-03-19": "Islamic New Year (estimated)", + "1969-05-28": "Prophet's Birthday (estimated)", + "1969-10-08": "Isra and Miraj (estimated)", + "1969-12-10": "Eid al-Fitr (estimated)", + "1969-12-11": "Eid al-Fitr Holiday (estimated)", + "1969-12-12": "Eid al-Fitr Holiday (estimated)", + "1970-01-01": "New Year's Day", + "1970-02-15": "Arafat Day (estimated)", + "1970-02-16": "Eid al-Adha (estimated)", + "1970-02-17": "Eid al-Adha Holiday (estimated)", + "1970-02-18": "Eid al-Adha Holiday (estimated)", + "1970-02-25": "National Day", + "1970-02-26": "Liberation Day", + "1970-03-09": "Islamic New Year (estimated)", + "1970-05-18": "Prophet's Birthday (estimated)", + "1970-09-28": "Isra and Miraj (estimated)", + "1970-11-30": "Eid al-Fitr (estimated)", + "1970-12-01": "Eid al-Fitr Holiday (estimated)", + "1970-12-02": "Eid al-Fitr Holiday (estimated)", + "1971-01-01": "New Year's Day", + "1971-02-05": "Arafat Day (estimated)", + "1971-02-06": "Eid al-Adha (estimated)", + "1971-02-07": "Eid al-Adha Holiday (estimated)", + "1971-02-08": "Eid al-Adha Holiday (estimated)", + "1971-02-25": "National Day", + "1971-02-26": "Islamic New Year (estimated); Liberation Day", + "1971-05-07": "Prophet's Birthday (estimated)", + "1971-09-17": "Isra and Miraj (estimated)", + "1971-11-19": "Eid al-Fitr (estimated)", + "1971-11-20": "Eid al-Fitr Holiday (estimated)", + "1971-11-21": "Eid al-Fitr Holiday (estimated)", + "1972-01-01": "New Year's Day", + "1972-01-25": "Arafat Day (estimated)", + "1972-01-26": "Eid al-Adha (estimated)", + "1972-01-27": "Eid al-Adha Holiday (estimated)", + "1972-01-28": "Eid al-Adha Holiday (estimated)", + "1972-02-16": "Islamic New Year (estimated)", + "1972-02-25": "National Day", + "1972-02-26": "Liberation Day", + "1972-04-25": "Prophet's Birthday (estimated)", + "1972-09-05": "Isra and Miraj (estimated)", + "1972-11-07": "Eid al-Fitr (estimated)", + "1972-11-08": "Eid al-Fitr Holiday (estimated)", + "1972-11-09": "Eid al-Fitr Holiday (estimated)", + "1973-01-01": "New Year's Day", + "1973-01-13": "Arafat Day (estimated)", + "1973-01-14": "Eid al-Adha (estimated)", + "1973-01-15": "Eid al-Adha Holiday (estimated)", + "1973-01-16": "Eid al-Adha Holiday (estimated)", + "1973-02-04": "Islamic New Year (estimated)", + "1973-02-25": "National Day", + "1973-02-26": "Liberation Day", + "1973-04-15": "Prophet's Birthday (estimated)", + "1973-08-25": "Isra and Miraj (estimated)", + "1973-10-27": "Eid al-Fitr (estimated)", + "1973-10-28": "Eid al-Fitr Holiday (estimated)", + "1973-10-29": "Eid al-Fitr Holiday (estimated)", + "1974-01-01": "New Year's Day", + "1974-01-02": "Arafat Day (estimated)", + "1974-01-03": "Eid al-Adha (estimated)", + "1974-01-04": "Eid al-Adha Holiday (estimated)", + "1974-01-05": "Eid al-Adha Holiday (estimated)", + "1974-01-24": "Islamic New Year (estimated)", + "1974-02-25": "National Day", + "1974-02-26": "Liberation Day", + "1974-04-04": "Prophet's Birthday (estimated)", + "1974-08-15": "Isra and Miraj (estimated)", + "1974-10-16": "Eid al-Fitr (estimated)", + "1974-10-17": "Eid al-Fitr Holiday (estimated)", + "1974-10-18": "Eid al-Fitr Holiday (estimated)", + "1974-12-23": "Arafat Day (estimated)", + "1974-12-24": "Eid al-Adha (estimated)", + "1974-12-25": "Eid al-Adha Holiday (estimated)", + "1974-12-26": "Eid al-Adha Holiday (estimated)", + "1975-01-01": "New Year's Day", + "1975-01-13": "Islamic New Year (estimated)", + "1975-02-25": "National Day", + "1975-02-26": "Liberation Day", + "1975-03-24": "Prophet's Birthday (estimated)", + "1975-08-05": "Isra and Miraj (estimated)", + "1975-10-06": "Eid al-Fitr (estimated)", + "1975-10-07": "Eid al-Fitr Holiday (estimated)", + "1975-10-08": "Eid al-Fitr Holiday (estimated)", + "1975-12-12": "Arafat Day (estimated)", + "1975-12-13": "Eid al-Adha (estimated)", + "1975-12-14": "Eid al-Adha Holiday (estimated)", + "1975-12-15": "Eid al-Adha Holiday (estimated)", + "1976-01-01": "New Year's Day", + "1976-01-02": "Islamic New Year (estimated)", + "1976-02-25": "National Day", + "1976-02-26": "Liberation Day", + "1976-03-12": "Prophet's Birthday (estimated)", + "1976-07-24": "Isra and Miraj (estimated)", + "1976-09-24": "Eid al-Fitr (estimated)", + "1976-09-25": "Eid al-Fitr Holiday (estimated)", + "1976-09-26": "Eid al-Fitr Holiday (estimated)", + "1976-11-30": "Arafat Day (estimated)", + "1976-12-01": "Eid al-Adha (estimated)", + "1976-12-02": "Eid al-Adha Holiday (estimated)", + "1976-12-03": "Eid al-Adha Holiday (estimated)", + "1976-12-22": "Islamic New Year (estimated)", + "1977-01-01": "New Year's Day", + "1977-02-25": "National Day", + "1977-02-26": "Liberation Day", + "1977-03-02": "Prophet's Birthday (estimated)", + "1977-07-13": "Isra and Miraj (estimated)", + "1977-09-14": "Eid al-Fitr (estimated)", + "1977-09-15": "Eid al-Fitr Holiday (estimated)", + "1977-09-16": "Eid al-Fitr Holiday (estimated)", + "1977-11-20": "Arafat Day (estimated)", + "1977-11-21": "Eid al-Adha (estimated)", + "1977-11-22": "Eid al-Adha Holiday (estimated)", + "1977-11-23": "Eid al-Adha Holiday (estimated)", + "1977-12-11": "Islamic New Year (estimated)", + "1978-01-01": "New Year's Day", + "1978-02-19": "Prophet's Birthday (estimated)", + "1978-02-25": "National Day", + "1978-02-26": "Liberation Day", + "1978-07-02": "Isra and Miraj (estimated)", + "1978-09-03": "Eid al-Fitr (estimated)", + "1978-09-04": "Eid al-Fitr Holiday (estimated)", + "1978-09-05": "Eid al-Fitr Holiday (estimated)", + "1978-11-09": "Arafat Day (estimated)", + "1978-11-10": "Eid al-Adha (estimated)", + "1978-11-11": "Eid al-Adha Holiday (estimated)", + "1978-11-12": "Eid al-Adha Holiday (estimated)", + "1978-12-01": "Islamic New Year (estimated)", + "1979-01-01": "New Year's Day", + "1979-02-09": "Prophet's Birthday (estimated)", + "1979-02-25": "National Day", + "1979-02-26": "Liberation Day", + "1979-06-22": "Isra and Miraj (estimated)", + "1979-08-23": "Eid al-Fitr (estimated)", + "1979-08-24": "Eid al-Fitr Holiday (estimated)", + "1979-08-25": "Eid al-Fitr Holiday (estimated)", + "1979-10-30": "Arafat Day (estimated)", + "1979-10-31": "Eid al-Adha (estimated)", + "1979-11-01": "Eid al-Adha Holiday (estimated)", + "1979-11-02": "Eid al-Adha Holiday (estimated)", + "1979-11-20": "Islamic New Year (estimated)", + "1980-01-01": "New Year's Day", + "1980-01-30": "Prophet's Birthday (estimated)", + "1980-02-25": "National Day", + "1980-02-26": "Liberation Day", + "1980-06-10": "Isra and Miraj (estimated)", + "1980-08-12": "Eid al-Fitr (estimated)", + "1980-08-13": "Eid al-Fitr Holiday (estimated)", + "1980-08-14": "Eid al-Fitr Holiday (estimated)", + "1980-10-18": "Arafat Day (estimated)", + "1980-10-19": "Eid al-Adha (estimated)", + "1980-10-20": "Eid al-Adha Holiday (estimated)", + "1980-10-21": "Eid al-Adha Holiday (estimated)", + "1980-11-09": "Islamic New Year (estimated)", + "1981-01-01": "New Year's Day", + "1981-01-18": "Prophet's Birthday (estimated)", + "1981-02-25": "National Day", + "1981-02-26": "Liberation Day", + "1981-05-31": "Isra and Miraj (estimated)", + "1981-08-01": "Eid al-Fitr (estimated)", + "1981-08-02": "Eid al-Fitr Holiday (estimated)", + "1981-08-03": "Eid al-Fitr Holiday (estimated)", + "1981-10-07": "Arafat Day (estimated)", + "1981-10-08": "Eid al-Adha (estimated)", + "1981-10-09": "Eid al-Adha Holiday (estimated)", + "1981-10-10": "Eid al-Adha Holiday (estimated)", + "1981-10-28": "Islamic New Year (estimated)", + "1982-01-01": "New Year's Day", + "1982-01-07": "Prophet's Birthday (estimated)", + "1982-02-25": "National Day", + "1982-02-26": "Liberation Day", + "1982-05-20": "Isra and Miraj (estimated)", + "1982-07-21": "Eid al-Fitr (estimated)", + "1982-07-22": "Eid al-Fitr Holiday (estimated)", + "1982-07-23": "Eid al-Fitr Holiday (estimated)", + "1982-09-26": "Arafat Day (estimated)", + "1982-09-27": "Eid al-Adha (estimated)", + "1982-09-28": "Eid al-Adha Holiday (estimated)", + "1982-09-29": "Eid al-Adha Holiday (estimated)", + "1982-10-18": "Islamic New Year (estimated)", + "1982-12-27": "Prophet's Birthday (estimated)", + "1983-01-01": "New Year's Day", + "1983-02-25": "National Day", + "1983-02-26": "Liberation Day", + "1983-05-10": "Isra and Miraj (estimated)", + "1983-07-11": "Eid al-Fitr (estimated)", + "1983-07-12": "Eid al-Fitr Holiday (estimated)", + "1983-07-13": "Eid al-Fitr Holiday (estimated)", + "1983-09-16": "Arafat Day (estimated)", + "1983-09-17": "Eid al-Adha (estimated)", + "1983-09-18": "Eid al-Adha Holiday (estimated)", + "1983-09-19": "Eid al-Adha Holiday (estimated)", + "1983-10-07": "Islamic New Year (estimated)", + "1983-12-16": "Prophet's Birthday (estimated)", + "1984-01-01": "New Year's Day", + "1984-02-25": "National Day", + "1984-02-26": "Liberation Day", + "1984-04-28": "Isra and Miraj (estimated)", + "1984-06-30": "Eid al-Fitr (estimated)", + "1984-07-01": "Eid al-Fitr Holiday (estimated)", + "1984-07-02": "Eid al-Fitr Holiday (estimated)", + "1984-09-04": "Arafat Day (estimated)", + "1984-09-05": "Eid al-Adha (estimated)", + "1984-09-06": "Eid al-Adha Holiday (estimated)", + "1984-09-07": "Eid al-Adha Holiday (estimated)", + "1984-09-26": "Islamic New Year (estimated)", + "1984-12-04": "Prophet's Birthday (estimated)", + "1985-01-01": "New Year's Day", + "1985-02-25": "National Day", + "1985-02-26": "Liberation Day", + "1985-04-17": "Isra and Miraj (estimated)", + "1985-06-19": "Eid al-Fitr (estimated)", + "1985-06-20": "Eid al-Fitr Holiday (estimated)", + "1985-06-21": "Eid al-Fitr Holiday (estimated)", + "1985-08-25": "Arafat Day (estimated)", + "1985-08-26": "Eid al-Adha (estimated)", + "1985-08-27": "Eid al-Adha Holiday (estimated)", + "1985-08-28": "Eid al-Adha Holiday (estimated)", + "1985-09-15": "Islamic New Year (estimated)", + "1985-11-24": "Prophet's Birthday (estimated)", + "1986-01-01": "New Year's Day", + "1986-02-25": "National Day", + "1986-02-26": "Liberation Day", + "1986-04-06": "Isra and Miraj (estimated)", + "1986-06-08": "Eid al-Fitr (estimated)", + "1986-06-09": "Eid al-Fitr Holiday (estimated)", + "1986-06-10": "Eid al-Fitr Holiday (estimated)", + "1986-08-14": "Arafat Day (estimated)", + "1986-08-15": "Eid al-Adha (estimated)", + "1986-08-16": "Eid al-Adha Holiday (estimated)", + "1986-08-17": "Eid al-Adha Holiday (estimated)", + "1986-09-05": "Islamic New Year (estimated)", + "1986-11-14": "Prophet's Birthday (estimated)", + "1987-01-01": "New Year's Day", + "1987-02-25": "National Day", + "1987-02-26": "Liberation Day", + "1987-03-27": "Isra and Miraj (estimated)", + "1987-05-28": "Eid al-Fitr (estimated)", + "1987-05-29": "Eid al-Fitr Holiday (estimated)", + "1987-05-30": "Eid al-Fitr Holiday (estimated)", + "1987-08-03": "Arafat Day (estimated)", + "1987-08-04": "Eid al-Adha (estimated)", + "1987-08-05": "Eid al-Adha Holiday (estimated)", + "1987-08-06": "Eid al-Adha Holiday (estimated)", + "1987-08-25": "Islamic New Year (estimated)", + "1987-11-03": "Prophet's Birthday (estimated)", + "1988-01-01": "New Year's Day", + "1988-02-25": "National Day", + "1988-02-26": "Liberation Day", + "1988-03-15": "Isra and Miraj (estimated)", + "1988-05-16": "Eid al-Fitr (estimated)", + "1988-05-17": "Eid al-Fitr Holiday (estimated)", + "1988-05-18": "Eid al-Fitr Holiday (estimated)", + "1988-07-22": "Arafat Day (estimated)", + "1988-07-23": "Eid al-Adha (estimated)", + "1988-07-24": "Eid al-Adha Holiday (estimated)", + "1988-07-25": "Eid al-Adha Holiday (estimated)", + "1988-08-13": "Islamic New Year (estimated)", + "1988-10-22": "Prophet's Birthday (estimated)", + "1989-01-01": "New Year's Day", + "1989-02-25": "National Day", + "1989-02-26": "Liberation Day", + "1989-03-05": "Isra and Miraj (estimated)", + "1989-05-06": "Eid al-Fitr (estimated)", + "1989-05-07": "Eid al-Fitr Holiday (estimated)", + "1989-05-08": "Eid al-Fitr Holiday (estimated)", + "1989-07-12": "Arafat Day (estimated)", + "1989-07-13": "Eid al-Adha (estimated)", + "1989-07-14": "Eid al-Adha Holiday (estimated)", + "1989-07-15": "Eid al-Adha Holiday (estimated)", + "1989-08-02": "Islamic New Year (estimated)", + "1989-10-11": "Prophet's Birthday (estimated)", + "1990-01-01": "New Year's Day", + "1990-02-22": "Isra and Miraj (estimated)", + "1990-02-25": "National Day", + "1990-02-26": "Liberation Day", + "1990-04-26": "Eid al-Fitr (estimated)", + "1990-04-27": "Eid al-Fitr Holiday (estimated)", + "1990-04-28": "Eid al-Fitr Holiday (estimated)", + "1990-07-01": "Arafat Day (estimated)", + "1990-07-02": "Eid al-Adha (estimated)", + "1990-07-03": "Eid al-Adha Holiday (estimated)", + "1990-07-04": "Eid al-Adha Holiday (estimated)", + "1990-07-23": "Islamic New Year (estimated)", + "1990-10-01": "Prophet's Birthday (estimated)", + "1991-01-01": "New Year's Day", + "1991-02-11": "Isra and Miraj (estimated)", + "1991-02-25": "National Day", + "1991-02-26": "Liberation Day", + "1991-04-15": "Eid al-Fitr (estimated)", + "1991-04-16": "Eid al-Fitr Holiday (estimated)", + "1991-04-17": "Eid al-Fitr Holiday (estimated)", + "1991-06-21": "Arafat Day (estimated)", + "1991-06-22": "Eid al-Adha (estimated)", + "1991-06-23": "Eid al-Adha Holiday (estimated)", + "1991-06-24": "Eid al-Adha Holiday (estimated)", + "1991-07-12": "Islamic New Year (estimated)", + "1991-09-20": "Prophet's Birthday (estimated)", + "1992-01-01": "New Year's Day", + "1992-01-31": "Isra and Miraj (estimated)", + "1992-02-25": "National Day", + "1992-02-26": "Liberation Day", + "1992-04-04": "Eid al-Fitr (estimated)", + "1992-04-05": "Eid al-Fitr Holiday (estimated)", + "1992-04-06": "Eid al-Fitr Holiday (estimated)", + "1992-06-10": "Arafat Day (estimated)", + "1992-06-11": "Eid al-Adha (estimated)", + "1992-06-12": "Eid al-Adha Holiday (estimated)", + "1992-06-13": "Eid al-Adha Holiday (estimated)", + "1992-07-01": "Islamic New Year (estimated)", + "1992-09-09": "Prophet's Birthday (estimated)", + "1993-01-01": "New Year's Day", + "1993-01-20": "Isra and Miraj (estimated)", + "1993-02-25": "National Day", + "1993-02-26": "Liberation Day", + "1993-03-24": "Eid al-Fitr (estimated)", + "1993-03-25": "Eid al-Fitr Holiday (estimated)", + "1993-03-26": "Eid al-Fitr Holiday (estimated)", + "1993-05-30": "Arafat Day (estimated)", + "1993-05-31": "Eid al-Adha (estimated)", + "1993-06-01": "Eid al-Adha Holiday (estimated)", + "1993-06-02": "Eid al-Adha Holiday (estimated)", + "1993-06-21": "Islamic New Year (estimated)", + "1993-08-29": "Prophet's Birthday (estimated)", + "1994-01-01": "New Year's Day", + "1994-01-09": "Isra and Miraj (estimated)", + "1994-02-25": "National Day", + "1994-02-26": "Liberation Day", + "1994-03-13": "Eid al-Fitr (estimated)", + "1994-03-14": "Eid al-Fitr Holiday (estimated)", + "1994-03-15": "Eid al-Fitr Holiday (estimated)", + "1994-05-19": "Arafat Day (estimated)", + "1994-05-20": "Eid al-Adha (estimated)", + "1994-05-21": "Eid al-Adha Holiday (estimated)", + "1994-05-22": "Eid al-Adha Holiday (estimated)", + "1994-06-10": "Islamic New Year (estimated)", + "1994-08-19": "Prophet's Birthday (estimated)", + "1994-12-29": "Isra and Miraj (estimated)", + "1995-01-01": "New Year's Day", + "1995-02-25": "National Day", + "1995-02-26": "Liberation Day", + "1995-03-02": "Eid al-Fitr (estimated)", + "1995-03-03": "Eid al-Fitr Holiday (estimated)", + "1995-03-04": "Eid al-Fitr Holiday (estimated)", + "1995-05-08": "Arafat Day (estimated)", + "1995-05-09": "Eid al-Adha (estimated)", + "1995-05-10": "Eid al-Adha Holiday (estimated)", + "1995-05-11": "Eid al-Adha Holiday (estimated)", + "1995-05-30": "Islamic New Year (estimated)", + "1995-08-08": "Prophet's Birthday (estimated)", + "1995-12-19": "Isra and Miraj (estimated)", + "1996-01-01": "New Year's Day", + "1996-02-19": "Eid al-Fitr (estimated)", + "1996-02-20": "Eid al-Fitr Holiday (estimated)", + "1996-02-21": "Eid al-Fitr Holiday (estimated)", + "1996-02-25": "National Day", + "1996-02-26": "Liberation Day", + "1996-04-26": "Arafat Day (estimated)", + "1996-04-27": "Eid al-Adha (estimated)", + "1996-04-28": "Eid al-Adha Holiday (estimated)", + "1996-04-29": "Eid al-Adha Holiday (estimated)", + "1996-05-18": "Islamic New Year (estimated)", + "1996-07-27": "Prophet's Birthday (estimated)", + "1996-12-08": "Isra and Miraj (estimated)", + "1997-01-01": "New Year's Day", + "1997-02-08": "Eid al-Fitr (estimated)", + "1997-02-09": "Eid al-Fitr Holiday (estimated)", + "1997-02-10": "Eid al-Fitr Holiday (estimated)", + "1997-02-25": "National Day", + "1997-02-26": "Liberation Day", + "1997-04-16": "Arafat Day (estimated)", + "1997-04-17": "Eid al-Adha (estimated)", + "1997-04-18": "Eid al-Adha Holiday (estimated)", + "1997-04-19": "Eid al-Adha Holiday (estimated)", + "1997-05-07": "Islamic New Year (estimated)", + "1997-07-16": "Prophet's Birthday (estimated)", + "1997-11-27": "Isra and Miraj (estimated)", + "1998-01-01": "New Year's Day", + "1998-01-29": "Eid al-Fitr (estimated)", + "1998-01-30": "Eid al-Fitr Holiday (estimated)", + "1998-01-31": "Eid al-Fitr Holiday (estimated)", + "1998-02-25": "National Day", + "1998-02-26": "Liberation Day", + "1998-04-06": "Arafat Day (estimated)", + "1998-04-07": "Eid al-Adha (estimated)", + "1998-04-08": "Eid al-Adha Holiday (estimated)", + "1998-04-09": "Eid al-Adha Holiday (estimated)", + "1998-04-27": "Islamic New Year (estimated)", + "1998-07-06": "Prophet's Birthday (estimated)", + "1998-11-16": "Isra and Miraj (estimated)", + "1999-01-01": "New Year's Day", + "1999-01-18": "Eid al-Fitr (estimated)", + "1999-01-19": "Eid al-Fitr Holiday (estimated)", + "1999-01-20": "Eid al-Fitr Holiday (estimated)", + "1999-02-25": "National Day", + "1999-02-26": "Liberation Day", + "1999-03-26": "Arafat Day (estimated)", + "1999-03-27": "Eid al-Adha (estimated)", + "1999-03-28": "Eid al-Adha Holiday (estimated)", + "1999-03-29": "Eid al-Adha Holiday (estimated)", + "1999-04-17": "Islamic New Year (estimated)", + "1999-06-26": "Prophet's Birthday (estimated)", + "1999-11-05": "Isra and Miraj (estimated)", + "2000-01-01": "New Year's Day", + "2000-01-08": "Eid al-Fitr (estimated)", + "2000-01-09": "Eid al-Fitr Holiday (estimated)", + "2000-01-10": "Eid al-Fitr Holiday (estimated)", + "2000-02-25": "National Day", + "2000-02-26": "Liberation Day", + "2000-03-15": "Arafat Day (estimated)", + "2000-03-16": "Eid al-Adha (estimated)", + "2000-03-17": "Eid al-Adha Holiday (estimated)", + "2000-03-18": "Eid al-Adha Holiday (estimated)", + "2000-04-06": "Islamic New Year (estimated)", + "2000-06-14": "Prophet's Birthday (estimated)", + "2000-10-24": "Isra and Miraj (estimated)", + "2000-12-27": "Eid al-Fitr (estimated)", + "2000-12-28": "Eid al-Fitr Holiday (estimated)", + "2000-12-29": "Eid al-Fitr Holiday (estimated)", + "2001-01-01": "New Year's Day", + "2001-02-25": "National Day", + "2001-02-26": "Liberation Day", + "2001-03-04": "Arafat Day (estimated)", + "2001-03-05": "Eid al-Adha (estimated)", + "2001-03-06": "Eid al-Adha Holiday (estimated)", + "2001-03-07": "Eid al-Adha Holiday (estimated)", + "2001-03-26": "Islamic New Year (estimated)", + "2001-06-04": "Prophet's Birthday (estimated)", + "2001-10-14": "Isra and Miraj (estimated)", + "2001-12-16": "Eid al-Fitr (estimated)", + "2001-12-17": "Eid al-Fitr Holiday (estimated)", + "2001-12-18": "Eid al-Fitr Holiday (estimated)", + "2002-01-01": "New Year's Day", + "2002-02-21": "Arafat Day (estimated)", + "2002-02-22": "Eid al-Adha (estimated)", + "2002-02-23": "Eid al-Adha Holiday (estimated)", + "2002-02-24": "Eid al-Adha Holiday (estimated)", + "2002-02-25": "National Day", + "2002-02-26": "Liberation Day", + "2002-03-15": "Islamic New Year (estimated)", + "2002-05-24": "Prophet's Birthday (estimated)", + "2002-10-04": "Isra and Miraj (estimated)", + "2002-12-05": "Eid al-Fitr (estimated)", + "2002-12-06": "Eid al-Fitr Holiday (estimated)", + "2002-12-07": "Eid al-Fitr Holiday (estimated)", + "2003-01-01": "New Year's Day", + "2003-02-10": "Arafat Day (estimated)", + "2003-02-11": "Eid al-Adha (estimated)", + "2003-02-12": "Eid al-Adha Holiday (estimated)", + "2003-02-13": "Eid al-Adha Holiday (estimated)", + "2003-02-25": "National Day", + "2003-02-26": "Liberation Day", + "2003-03-04": "Islamic New Year (estimated)", + "2003-05-13": "Prophet's Birthday (estimated)", + "2003-09-24": "Isra and Miraj (estimated)", + "2003-11-25": "Eid al-Fitr (estimated)", + "2003-11-26": "Eid al-Fitr Holiday (estimated)", + "2003-11-27": "Eid al-Fitr Holiday (estimated)", + "2004-01-01": "New Year's Day", + "2004-01-31": "Arafat Day (estimated)", + "2004-02-01": "Eid al-Adha (estimated)", + "2004-02-02": "Eid al-Adha Holiday (estimated)", + "2004-02-03": "Eid al-Adha Holiday (estimated)", + "2004-02-21": "Islamic New Year (estimated)", + "2004-02-25": "National Day", + "2004-02-26": "Liberation Day", + "2004-05-01": "Prophet's Birthday (estimated)", + "2004-09-12": "Isra and Miraj (estimated)", + "2004-11-14": "Eid al-Fitr (estimated)", + "2004-11-15": "Eid al-Fitr Holiday (estimated)", + "2004-11-16": "Eid al-Fitr Holiday (estimated)", + "2005-01-01": "New Year's Day", + "2005-01-20": "Arafat Day (estimated)", + "2005-01-21": "Eid al-Adha (estimated)", + "2005-01-22": "Eid al-Adha Holiday (estimated)", + "2005-01-23": "Eid al-Adha Holiday (estimated)", + "2005-02-10": "Islamic New Year (estimated)", + "2005-02-25": "National Day", + "2005-02-26": "Liberation Day", + "2005-04-21": "Prophet's Birthday (estimated)", + "2005-09-01": "Isra and Miraj (estimated)", + "2005-11-03": "Eid al-Fitr (estimated)", + "2005-11-04": "Eid al-Fitr Holiday (estimated)", + "2005-11-05": "Eid al-Fitr Holiday (estimated)", + "2006-01-01": "New Year's Day", + "2006-01-09": "Arafat Day (estimated)", + "2006-01-10": "Eid al-Adha (estimated)", + "2006-01-11": "Eid al-Adha Holiday (estimated)", + "2006-01-12": "Eid al-Adha Holiday (estimated)", + "2006-01-31": "Islamic New Year (estimated)", + "2006-02-25": "National Day", + "2006-02-26": "Liberation Day", + "2006-04-10": "Prophet's Birthday (estimated)", + "2006-08-21": "Isra and Miraj (estimated)", + "2006-10-23": "Eid al-Fitr (estimated)", + "2006-10-24": "Eid al-Fitr Holiday (estimated)", + "2006-10-25": "Eid al-Fitr Holiday (estimated)", + "2006-12-30": "Arafat Day (estimated)", + "2006-12-31": "Eid al-Adha (estimated)", + "2007-01-01": "Eid al-Adha Holiday (estimated); New Year's Day", + "2007-01-02": "Eid al-Adha Holiday (estimated)", + "2007-01-20": "Islamic New Year (estimated)", + "2007-02-25": "National Day", + "2007-02-26": "Liberation Day", + "2007-03-31": "Prophet's Birthday (estimated)", + "2007-08-10": "Isra and Miraj (estimated)", + "2007-10-13": "Eid al-Fitr (estimated)", + "2007-10-14": "Eid al-Fitr Holiday (estimated)", + "2007-10-15": "Eid al-Fitr Holiday (estimated)", + "2007-12-19": "Arafat Day (estimated)", + "2007-12-20": "Eid al-Adha (estimated)", + "2007-12-21": "Eid al-Adha Holiday (estimated)", + "2007-12-22": "Eid al-Adha Holiday (estimated)", + "2008-01-01": "New Year's Day", + "2008-01-10": "Islamic New Year (estimated)", + "2008-02-25": "National Day", + "2008-02-26": "Liberation Day", + "2008-03-20": "Prophet's Birthday (estimated)", + "2008-07-30": "Isra and Miraj (estimated)", + "2008-10-01": "Eid al-Fitr (estimated)", + "2008-10-02": "Eid al-Fitr Holiday (estimated)", + "2008-10-03": "Eid al-Fitr Holiday (estimated)", + "2008-12-07": "Arafat Day (estimated)", + "2008-12-08": "Eid al-Adha (estimated)", + "2008-12-09": "Eid al-Adha Holiday (estimated)", + "2008-12-10": "Eid al-Adha Holiday (estimated)", + "2008-12-29": "Islamic New Year (estimated)", + "2009-01-01": "New Year's Day", + "2009-02-25": "National Day", + "2009-02-26": "Liberation Day", + "2009-03-09": "Prophet's Birthday (estimated)", + "2009-07-20": "Isra and Miraj (estimated)", + "2009-09-20": "Eid al-Fitr (estimated)", + "2009-09-21": "Eid al-Fitr Holiday (estimated)", + "2009-09-22": "Eid al-Fitr Holiday (estimated)", + "2009-11-26": "Arafat Day (estimated)", + "2009-11-27": "Eid al-Adha (estimated)", + "2009-11-28": "Eid al-Adha Holiday (estimated)", + "2009-11-29": "Eid al-Adha Holiday (estimated)", + "2009-12-18": "Islamic New Year (estimated)", + "2010-01-01": "New Year's Day", + "2010-02-25": "National Day", + "2010-02-26": "Liberation Day; Prophet's Birthday (estimated)", + "2010-07-09": "Isra and Miraj (estimated)", + "2010-09-10": "Eid al-Fitr (estimated)", + "2010-09-11": "Eid al-Fitr Holiday (estimated)", + "2010-09-12": "Eid al-Fitr Holiday (estimated)", + "2010-11-15": "Arafat Day (estimated)", + "2010-11-16": "Eid al-Adha (estimated)", + "2010-11-17": "Eid al-Adha Holiday (estimated)", + "2010-11-18": "Eid al-Adha Holiday (estimated)", + "2010-12-07": "Islamic New Year (estimated)", + "2011-01-01": "New Year's Day", + "2011-02-15": "Prophet's Birthday (estimated)", + "2011-02-25": "National Day", + "2011-02-26": "Liberation Day", + "2011-06-29": "Isra and Miraj (estimated)", + "2011-08-30": "Eid al-Fitr (estimated)", + "2011-08-31": "Eid al-Fitr Holiday (estimated)", + "2011-09-01": "Eid al-Fitr Holiday (estimated)", + "2011-11-05": "Arafat Day (estimated)", + "2011-11-06": "Eid al-Adha (estimated)", + "2011-11-07": "Eid al-Adha Holiday (estimated)", + "2011-11-08": "Eid al-Adha Holiday (estimated)", + "2011-11-26": "Islamic New Year (estimated)", + "2012-01-01": "New Year's Day", + "2012-02-04": "Prophet's Birthday (estimated)", + "2012-02-25": "National Day", + "2012-02-26": "Liberation Day", + "2012-06-17": "Isra and Miraj (estimated)", + "2012-08-19": "Eid al-Fitr (estimated)", + "2012-08-20": "Eid al-Fitr Holiday (estimated)", + "2012-08-21": "Eid al-Fitr Holiday (estimated)", + "2012-10-25": "Arafat Day (estimated)", + "2012-10-26": "Eid al-Adha (estimated)", + "2012-10-27": "Eid al-Adha Holiday (estimated)", + "2012-10-28": "Eid al-Adha Holiday (estimated)", + "2012-11-15": "Islamic New Year (estimated)", + "2013-01-01": "New Year's Day", + "2013-01-24": "Prophet's Birthday (estimated)", + "2013-02-25": "National Day", + "2013-02-26": "Liberation Day", + "2013-06-06": "Isra and Miraj (estimated)", + "2013-08-08": "Eid al-Fitr (estimated)", + "2013-08-09": "Eid al-Fitr Holiday (estimated)", + "2013-08-10": "Eid al-Fitr Holiday (estimated)", + "2013-10-14": "Arafat Day (estimated)", + "2013-10-15": "Eid al-Adha (estimated)", + "2013-10-16": "Eid al-Adha Holiday (estimated)", + "2013-10-17": "Eid al-Adha Holiday (estimated)", + "2013-11-04": "Islamic New Year (estimated)", + "2014-01-01": "New Year's Day", + "2014-01-13": "Prophet's Birthday (estimated)", + "2014-02-25": "National Day", + "2014-02-26": "Liberation Day", + "2014-05-26": "Isra and Miraj (estimated)", + "2014-07-28": "Eid al-Fitr (estimated)", + "2014-07-29": "Eid al-Fitr Holiday (estimated)", + "2014-07-30": "Eid al-Fitr Holiday (estimated)", + "2014-10-03": "Arafat Day (estimated)", + "2014-10-04": "Eid al-Adha (estimated)", + "2014-10-05": "Eid al-Adha Holiday (estimated)", + "2014-10-06": "Eid al-Adha Holiday (estimated)", + "2014-10-25": "Islamic New Year (estimated)", + "2015-01-01": "New Year's Day", + "2015-01-03": "Prophet's Birthday (estimated)", + "2015-02-25": "National Day", + "2015-02-26": "Liberation Day", + "2015-05-16": "Isra and Miraj (estimated)", + "2015-07-17": "Eid al-Fitr (estimated)", + "2015-07-18": "Eid al-Fitr Holiday (estimated)", + "2015-07-19": "Eid al-Fitr Holiday (estimated)", + "2015-09-22": "Arafat Day (estimated)", + "2015-09-23": "Eid al-Adha (estimated)", + "2015-09-24": "Eid al-Adha Holiday (estimated)", + "2015-09-25": "Eid al-Adha Holiday (estimated)", + "2015-10-14": "Islamic New Year (estimated)", + "2015-12-23": "Prophet's Birthday (estimated)", + "2016-01-01": "New Year's Day", + "2016-02-25": "National Day", + "2016-02-26": "Liberation Day", + "2016-05-04": "Isra and Miraj (estimated)", + "2016-07-06": "Eid al-Fitr (estimated)", + "2016-07-07": "Eid al-Fitr Holiday (estimated)", + "2016-07-08": "Eid al-Fitr Holiday (estimated)", + "2016-09-10": "Arafat Day (estimated)", + "2016-09-11": "Eid al-Adha (estimated)", + "2016-09-12": "Eid al-Adha Holiday (estimated)", + "2016-09-13": "Eid al-Adha Holiday (estimated)", + "2016-10-02": "Islamic New Year (estimated)", + "2016-12-11": "Prophet's Birthday (estimated)", + "2017-01-01": "New Year's Day", + "2017-02-25": "National Day", + "2017-02-26": "Liberation Day", + "2017-04-24": "Isra and Miraj (estimated)", + "2017-06-25": "Eid al-Fitr (estimated)", + "2017-06-26": "Eid al-Fitr Holiday (estimated)", + "2017-06-27": "Eid al-Fitr Holiday (estimated)", + "2017-08-31": "Arafat Day (estimated)", + "2017-09-01": "Eid al-Adha (estimated)", + "2017-09-02": "Eid al-Adha Holiday (estimated)", + "2017-09-03": "Eid al-Adha Holiday (estimated)", + "2017-09-21": "Islamic New Year (estimated)", + "2017-11-30": "Prophet's Birthday (estimated)", + "2018-01-01": "New Year's Day", + "2018-02-25": "National Day", + "2018-02-26": "Liberation Day", + "2018-04-13": "Isra and Miraj (estimated)", + "2018-06-15": "Eid al-Fitr (estimated)", + "2018-06-16": "Eid al-Fitr Holiday (estimated)", + "2018-06-17": "Eid al-Fitr Holiday (estimated)", + "2018-08-20": "Arafat Day (estimated)", + "2018-08-21": "Eid al-Adha (estimated)", + "2018-08-22": "Eid al-Adha Holiday (estimated)", + "2018-08-23": "Eid al-Adha Holiday (estimated)", + "2018-09-11": "Islamic New Year (estimated)", + "2018-11-20": "Prophet's Birthday (estimated)", + "2019-01-01": "New Year's Day", + "2019-02-25": "National Day", + "2019-02-26": "Liberation Day", + "2019-04-03": "Isra and Miraj (estimated)", + "2019-06-04": "Eid al-Fitr (estimated)", + "2019-06-05": "Eid al-Fitr Holiday (estimated)", + "2019-06-06": "Eid al-Fitr Holiday (estimated)", + "2019-08-10": "Arafat Day (estimated)", + "2019-08-11": "Eid al-Adha (estimated)", + "2019-08-12": "Eid al-Adha Holiday (estimated)", + "2019-08-13": "Eid al-Adha Holiday (estimated)", + "2019-08-31": "Islamic New Year (estimated)", + "2019-11-09": "Prophet's Birthday (estimated)", + "2020-01-01": "New Year's Day", + "2020-02-25": "National Day", + "2020-02-26": "Liberation Day", + "2020-03-22": "Isra and Miraj (estimated)", + "2020-05-24": "Eid al-Fitr (estimated)", + "2020-05-25": "Eid al-Fitr Holiday (estimated)", + "2020-05-26": "Eid al-Fitr Holiday (estimated)", + "2020-07-30": "Arafat Day (estimated)", + "2020-07-31": "Eid al-Adha (estimated)", + "2020-08-01": "Eid al-Adha Holiday (estimated)", + "2020-08-02": "Eid al-Adha Holiday (estimated)", + "2020-08-20": "Islamic New Year (estimated)", + "2020-10-29": "Prophet's Birthday (estimated)", + "2021-01-01": "New Year's Day", + "2021-02-25": "National Day", + "2021-02-26": "Liberation Day", + "2021-03-11": "Isra and Miraj (estimated)", + "2021-05-13": "Eid al-Fitr (estimated)", + "2021-05-14": "Eid al-Fitr Holiday (estimated)", + "2021-05-15": "Eid al-Fitr Holiday (estimated)", + "2021-07-19": "Arafat Day (estimated)", + "2021-07-20": "Eid al-Adha (estimated)", + "2021-07-21": "Eid al-Adha Holiday (estimated)", + "2021-07-22": "Eid al-Adha Holiday (estimated)", + "2021-08-09": "Islamic New Year (estimated)", + "2021-10-18": "Prophet's Birthday (estimated)", + "2022-01-01": "New Year's Day", + "2022-02-25": "National Day", + "2022-02-26": "Liberation Day", + "2022-02-28": "Isra and Miraj (estimated)", + "2022-05-02": "Eid al-Fitr (estimated)", + "2022-05-03": "Eid al-Fitr Holiday (estimated)", + "2022-05-04": "Eid al-Fitr Holiday (estimated)", + "2022-07-08": "Arafat Day (estimated)", + "2022-07-09": "Eid al-Adha (estimated)", + "2022-07-10": "Eid al-Adha Holiday (estimated)", + "2022-07-11": "Eid al-Adha Holiday (estimated)", + "2022-07-30": "Islamic New Year (estimated)", + "2022-10-08": "Prophet's Birthday (estimated)", + "2023-01-01": "New Year's Day", + "2023-02-18": "Isra and Miraj (estimated)", + "2023-02-25": "National Day", + "2023-02-26": "Liberation Day", + "2023-04-21": "Eid al-Fitr (estimated)", + "2023-04-22": "Eid al-Fitr Holiday (estimated)", + "2023-04-23": "Eid al-Fitr Holiday (estimated)", + "2023-06-27": "Arafat Day (estimated)", + "2023-06-28": "Eid al-Adha (estimated)", + "2023-06-29": "Eid al-Adha Holiday (estimated)", + "2023-06-30": "Eid al-Adha Holiday (estimated)", + "2023-07-19": "Islamic New Year (estimated)", + "2023-09-27": "Prophet's Birthday (estimated)", + "2024-01-01": "New Year's Day", + "2024-02-08": "Isra and Miraj (estimated)", + "2024-02-25": "National Day", + "2024-02-26": "Liberation Day", + "2024-04-10": "Eid al-Fitr (estimated)", + "2024-04-11": "Eid al-Fitr Holiday (estimated)", + "2024-04-12": "Eid al-Fitr Holiday (estimated)", + "2024-06-15": "Arafat Day (estimated)", + "2024-06-16": "Eid al-Adha (estimated)", + "2024-06-17": "Eid al-Adha Holiday (estimated)", + "2024-06-18": "Eid al-Adha Holiday (estimated)", + "2024-07-07": "Islamic New Year (estimated)", + "2024-09-15": "Prophet's Birthday (estimated)", + "2025-01-01": "New Year's Day", + "2025-01-27": "Isra and Miraj (estimated)", + "2025-02-25": "National Day", + "2025-02-26": "Liberation Day", + "2025-03-30": "Eid al-Fitr (estimated)", + "2025-03-31": "Eid al-Fitr Holiday (estimated)", + "2025-04-01": "Eid al-Fitr Holiday (estimated)", + "2025-06-05": "Arafat Day (estimated)", + "2025-06-06": "Eid al-Adha (estimated)", + "2025-06-07": "Eid al-Adha Holiday (estimated)", + "2025-06-08": "Eid al-Adha Holiday (estimated)", + "2025-06-26": "Islamic New Year (estimated)", + "2025-09-04": "Prophet's Birthday (estimated)", + "2026-01-01": "New Year's Day", + "2026-01-16": "Isra and Miraj (estimated)", + "2026-02-25": "National Day", + "2026-02-26": "Liberation Day", + "2026-03-20": "Eid al-Fitr (estimated)", + "2026-03-21": "Eid al-Fitr Holiday (estimated)", + "2026-03-22": "Eid al-Fitr Holiday (estimated)", + "2026-05-26": "Arafat Day (estimated)", + "2026-05-27": "Eid al-Adha (estimated)", + "2026-05-28": "Eid al-Adha Holiday (estimated)", + "2026-05-29": "Eid al-Adha Holiday (estimated)", + "2026-06-16": "Islamic New Year (estimated)", + "2026-08-25": "Prophet's Birthday (estimated)", + "2027-01-01": "New Year's Day", + "2027-01-05": "Isra and Miraj (estimated)", + "2027-02-25": "National Day", + "2027-02-26": "Liberation Day", + "2027-03-09": "Eid al-Fitr (estimated)", + "2027-03-10": "Eid al-Fitr Holiday (estimated)", + "2027-03-11": "Eid al-Fitr Holiday (estimated)", + "2027-05-15": "Arafat Day (estimated)", + "2027-05-16": "Eid al-Adha (estimated)", + "2027-05-17": "Eid al-Adha Holiday (estimated)", + "2027-05-18": "Eid al-Adha Holiday (estimated)", + "2027-06-06": "Islamic New Year (estimated)", + "2027-08-14": "Prophet's Birthday (estimated)", + "2027-12-25": "Isra and Miraj (estimated)", + "2028-01-01": "New Year's Day", + "2028-02-25": "National Day", + "2028-02-26": "Eid al-Fitr (estimated); Liberation Day", + "2028-02-27": "Eid al-Fitr Holiday (estimated)", + "2028-02-28": "Eid al-Fitr Holiday (estimated)", + "2028-05-04": "Arafat Day (estimated)", + "2028-05-05": "Eid al-Adha (estimated)", + "2028-05-06": "Eid al-Adha Holiday (estimated)", + "2028-05-07": "Eid al-Adha Holiday (estimated)", + "2028-05-25": "Islamic New Year (estimated)", + "2028-08-03": "Prophet's Birthday (estimated)", + "2028-12-14": "Isra and Miraj (estimated)", + "2029-01-01": "New Year's Day", + "2029-02-14": "Eid al-Fitr (estimated)", + "2029-02-15": "Eid al-Fitr Holiday (estimated)", + "2029-02-16": "Eid al-Fitr Holiday (estimated)", + "2029-02-25": "National Day", + "2029-02-26": "Liberation Day", + "2029-04-23": "Arafat Day (estimated)", + "2029-04-24": "Eid al-Adha (estimated)", + "2029-04-25": "Eid al-Adha Holiday (estimated)", + "2029-04-26": "Eid al-Adha Holiday (estimated)", + "2029-05-14": "Islamic New Year (estimated)", + "2029-07-24": "Prophet's Birthday (estimated)", + "2029-12-03": "Isra and Miraj (estimated)", + "2030-01-01": "New Year's Day", + "2030-02-04": "Eid al-Fitr (estimated)", + "2030-02-05": "Eid al-Fitr Holiday (estimated)", + "2030-02-06": "Eid al-Fitr Holiday (estimated)", + "2030-02-25": "National Day", + "2030-02-26": "Liberation Day", + "2030-04-12": "Arafat Day (estimated)", + "2030-04-13": "Eid al-Adha (estimated)", + "2030-04-14": "Eid al-Adha Holiday (estimated)", + "2030-04-15": "Eid al-Adha Holiday (estimated)", + "2030-05-03": "Islamic New Year (estimated)", + "2030-07-13": "Prophet's Birthday (estimated)", + "2030-11-23": "Isra and Miraj (estimated)", + "2031-01-01": "New Year's Day", + "2031-01-24": "Eid al-Fitr (estimated)", + "2031-01-25": "Eid al-Fitr Holiday (estimated)", + "2031-01-26": "Eid al-Fitr Holiday (estimated)", + "2031-02-25": "National Day", + "2031-02-26": "Liberation Day", + "2031-04-01": "Arafat Day (estimated)", + "2031-04-02": "Eid al-Adha (estimated)", + "2031-04-03": "Eid al-Adha Holiday (estimated)", + "2031-04-04": "Eid al-Adha Holiday (estimated)", + "2031-04-23": "Islamic New Year (estimated)", + "2031-07-02": "Prophet's Birthday (estimated)", + "2031-11-12": "Isra and Miraj (estimated)", + "2032-01-01": "New Year's Day", + "2032-01-14": "Eid al-Fitr (estimated)", + "2032-01-15": "Eid al-Fitr Holiday (estimated)", + "2032-01-16": "Eid al-Fitr Holiday (estimated)", + "2032-02-25": "National Day", + "2032-02-26": "Liberation Day", + "2032-03-21": "Arafat Day (estimated)", + "2032-03-22": "Eid al-Adha (estimated)", + "2032-03-23": "Eid al-Adha Holiday (estimated)", + "2032-03-24": "Eid al-Adha Holiday (estimated)", + "2032-04-11": "Islamic New Year (estimated)", + "2032-06-20": "Prophet's Birthday (estimated)", + "2032-11-01": "Isra and Miraj (estimated)", + "2033-01-01": "New Year's Day", + "2033-01-02": "Eid al-Fitr (estimated)", + "2033-01-03": "Eid al-Fitr Holiday (estimated)", + "2033-01-04": "Eid al-Fitr Holiday (estimated)", + "2033-02-25": "National Day", + "2033-02-26": "Liberation Day", + "2033-03-10": "Arafat Day (estimated)", + "2033-03-11": "Eid al-Adha (estimated)", + "2033-03-12": "Eid al-Adha Holiday (estimated)", + "2033-03-13": "Eid al-Adha Holiday (estimated)", + "2033-04-01": "Islamic New Year (estimated)", + "2033-06-09": "Prophet's Birthday (estimated)", + "2033-10-21": "Isra and Miraj (estimated)", + "2033-12-23": "Eid al-Fitr (estimated)", + "2033-12-24": "Eid al-Fitr Holiday (estimated)", + "2033-12-25": "Eid al-Fitr Holiday (estimated)", + "2034-01-01": "New Year's Day", + "2034-02-25": "National Day", + "2034-02-26": "Liberation Day", + "2034-02-28": "Arafat Day (estimated)", + "2034-03-01": "Eid al-Adha (estimated)", + "2034-03-02": "Eid al-Adha Holiday (estimated)", + "2034-03-03": "Eid al-Adha Holiday (estimated)", + "2034-03-21": "Islamic New Year (estimated)", + "2034-05-30": "Prophet's Birthday (estimated)", + "2034-10-10": "Isra and Miraj (estimated)", + "2034-12-12": "Eid al-Fitr (estimated)", + "2034-12-13": "Eid al-Fitr Holiday (estimated)", + "2034-12-14": "Eid al-Fitr Holiday (estimated)", + "2035-01-01": "New Year's Day", + "2035-02-17": "Arafat Day (estimated)", + "2035-02-18": "Eid al-Adha (estimated)", + "2035-02-19": "Eid al-Adha Holiday (estimated)", + "2035-02-20": "Eid al-Adha Holiday (estimated)", + "2035-02-25": "National Day", + "2035-02-26": "Liberation Day", + "2035-03-11": "Islamic New Year (estimated)", + "2035-05-20": "Prophet's Birthday (estimated)", + "2035-09-29": "Isra and Miraj (estimated)", + "2035-12-01": "Eid al-Fitr (estimated)", + "2035-12-02": "Eid al-Fitr Holiday (estimated)", + "2035-12-03": "Eid al-Fitr Holiday (estimated)", + "2036-01-01": "New Year's Day", + "2036-02-06": "Arafat Day (estimated)", + "2036-02-07": "Eid al-Adha (estimated)", + "2036-02-08": "Eid al-Adha Holiday (estimated)", + "2036-02-09": "Eid al-Adha Holiday (estimated)", + "2036-02-25": "National Day", + "2036-02-26": "Liberation Day", + "2036-02-28": "Islamic New Year (estimated)", + "2036-05-08": "Prophet's Birthday (estimated)", + "2036-09-18": "Isra and Miraj (estimated)", + "2036-11-19": "Eid al-Fitr (estimated)", + "2036-11-20": "Eid al-Fitr Holiday (estimated)", + "2036-11-21": "Eid al-Fitr Holiday (estimated)", + "2037-01-01": "New Year's Day", + "2037-01-25": "Arafat Day (estimated)", + "2037-01-26": "Eid al-Adha (estimated)", + "2037-01-27": "Eid al-Adha Holiday (estimated)", + "2037-01-28": "Eid al-Adha Holiday (estimated)", + "2037-02-16": "Islamic New Year (estimated)", + "2037-02-25": "National Day", + "2037-02-26": "Liberation Day", + "2037-04-28": "Prophet's Birthday (estimated)", + "2037-09-07": "Isra and Miraj (estimated)", + "2037-11-08": "Eid al-Fitr (estimated)", + "2037-11-09": "Eid al-Fitr Holiday (estimated)", + "2037-11-10": "Eid al-Fitr Holiday (estimated)", + "2038-01-01": "New Year's Day", + "2038-01-15": "Arafat Day (estimated)", + "2038-01-16": "Eid al-Adha (estimated)", + "2038-01-17": "Eid al-Adha Holiday (estimated)", + "2038-01-18": "Eid al-Adha Holiday (estimated)", + "2038-02-05": "Islamic New Year (estimated)", + "2038-02-25": "National Day", + "2038-02-26": "Liberation Day", + "2038-04-17": "Prophet's Birthday (estimated)", + "2038-08-28": "Isra and Miraj (estimated)", + "2038-10-29": "Eid al-Fitr (estimated)", + "2038-10-30": "Eid al-Fitr Holiday (estimated)", + "2038-10-31": "Eid al-Fitr Holiday (estimated)", + "2039-01-01": "New Year's Day", + "2039-01-04": "Arafat Day (estimated)", + "2039-01-05": "Eid al-Adha (estimated)", + "2039-01-06": "Eid al-Adha Holiday (estimated)", + "2039-01-07": "Eid al-Adha Holiday (estimated)", + "2039-01-26": "Islamic New Year (estimated)", + "2039-02-25": "National Day", + "2039-02-26": "Liberation Day", + "2039-04-06": "Prophet's Birthday (estimated)", + "2039-08-17": "Isra and Miraj (estimated)", + "2039-10-19": "Eid al-Fitr (estimated)", + "2039-10-20": "Eid al-Fitr Holiday (estimated)", + "2039-10-21": "Eid al-Fitr Holiday (estimated)", + "2039-12-25": "Arafat Day (estimated)", + "2039-12-26": "Eid al-Adha (estimated)", + "2039-12-27": "Eid al-Adha Holiday (estimated)", + "2039-12-28": "Eid al-Adha Holiday (estimated)", + "2040-01-01": "New Year's Day", + "2040-01-15": "Islamic New Year (estimated)", + "2040-02-25": "National Day", + "2040-02-26": "Liberation Day", + "2040-03-25": "Prophet's Birthday (estimated)", + "2040-08-05": "Isra and Miraj (estimated)", + "2040-10-07": "Eid al-Fitr (estimated)", + "2040-10-08": "Eid al-Fitr Holiday (estimated)", + "2040-10-09": "Eid al-Fitr Holiday (estimated)", + "2040-12-13": "Arafat Day (estimated)", + "2040-12-14": "Eid al-Adha (estimated)", + "2040-12-15": "Eid al-Adha Holiday (estimated)", + "2040-12-16": "Eid al-Adha Holiday (estimated)", + "2041-01-01": "New Year's Day", + "2041-01-04": "Islamic New Year (estimated)", + "2041-02-25": "National Day", + "2041-02-26": "Liberation Day", + "2041-03-15": "Prophet's Birthday (estimated)", + "2041-07-25": "Isra and Miraj (estimated)", + "2041-09-26": "Eid al-Fitr (estimated)", + "2041-09-27": "Eid al-Fitr Holiday (estimated)", + "2041-09-28": "Eid al-Fitr Holiday (estimated)", + "2041-12-03": "Arafat Day (estimated)", + "2041-12-04": "Eid al-Adha (estimated)", + "2041-12-05": "Eid al-Adha Holiday (estimated)", + "2041-12-06": "Eid al-Adha Holiday (estimated)", + "2041-12-24": "Islamic New Year (estimated)", + "2042-01-01": "New Year's Day", + "2042-02-25": "National Day", + "2042-02-26": "Liberation Day", + "2042-03-04": "Prophet's Birthday (estimated)", + "2042-07-15": "Isra and Miraj (estimated)", + "2042-09-15": "Eid al-Fitr (estimated)", + "2042-09-16": "Eid al-Fitr Holiday (estimated)", + "2042-09-17": "Eid al-Fitr Holiday (estimated)", + "2042-11-22": "Arafat Day (estimated)", + "2042-11-23": "Eid al-Adha (estimated)", + "2042-11-24": "Eid al-Adha Holiday (estimated)", + "2042-11-25": "Eid al-Adha Holiday (estimated)", + "2042-12-14": "Islamic New Year (estimated)", + "2043-01-01": "New Year's Day", + "2043-02-22": "Prophet's Birthday (estimated)", + "2043-02-25": "National Day", + "2043-02-26": "Liberation Day", + "2043-07-04": "Isra and Miraj (estimated)", + "2043-09-04": "Eid al-Fitr (estimated)", + "2043-09-05": "Eid al-Fitr Holiday (estimated)", + "2043-09-06": "Eid al-Fitr Holiday (estimated)", + "2043-11-11": "Arafat Day (estimated)", + "2043-11-12": "Eid al-Adha (estimated)", + "2043-11-13": "Eid al-Adha Holiday (estimated)", + "2043-11-14": "Eid al-Adha Holiday (estimated)", + "2043-12-03": "Islamic New Year (estimated)", + "2044-01-01": "New Year's Day", + "2044-02-11": "Prophet's Birthday (estimated)", + "2044-02-25": "National Day", + "2044-02-26": "Liberation Day", + "2044-06-23": "Isra and Miraj (estimated)", + "2044-08-24": "Eid al-Fitr (estimated)", + "2044-08-25": "Eid al-Fitr Holiday (estimated)", + "2044-08-26": "Eid al-Fitr Holiday (estimated)", + "2044-10-30": "Arafat Day (estimated)", + "2044-10-31": "Eid al-Adha (estimated)", + "2044-11-01": "Eid al-Adha Holiday (estimated)", + "2044-11-02": "Eid al-Adha Holiday (estimated)", + "2044-11-21": "Islamic New Year (estimated)", + "2045-01-01": "New Year's Day", + "2045-01-30": "Prophet's Birthday (estimated)", + "2045-02-25": "National Day", + "2045-02-26": "Liberation Day", + "2045-06-13": "Isra and Miraj (estimated)", + "2045-08-14": "Eid al-Fitr (estimated)", + "2045-08-15": "Eid al-Fitr Holiday (estimated)", + "2045-08-16": "Eid al-Fitr Holiday (estimated)", + "2045-10-20": "Arafat Day (estimated)", + "2045-10-21": "Eid al-Adha (estimated)", + "2045-10-22": "Eid al-Adha Holiday (estimated)", + "2045-10-23": "Eid al-Adha Holiday (estimated)", + "2045-11-10": "Islamic New Year (estimated)", + "2046-01-01": "New Year's Day", + "2046-01-19": "Prophet's Birthday (estimated)", + "2046-02-25": "National Day", + "2046-02-26": "Liberation Day", + "2046-06-02": "Isra and Miraj (estimated)", + "2046-08-03": "Eid al-Fitr (estimated)", + "2046-08-04": "Eid al-Fitr Holiday (estimated)", + "2046-08-05": "Eid al-Fitr Holiday (estimated)", + "2046-10-09": "Arafat Day (estimated)", + "2046-10-10": "Eid al-Adha (estimated)", + "2046-10-11": "Eid al-Adha Holiday (estimated)", + "2046-10-12": "Eid al-Adha Holiday (estimated)", + "2046-10-31": "Islamic New Year (estimated)", + "2047-01-01": "New Year's Day", + "2047-01-08": "Prophet's Birthday (estimated)", + "2047-02-25": "National Day", + "2047-02-26": "Liberation Day", + "2047-05-22": "Isra and Miraj (estimated)", + "2047-07-24": "Eid al-Fitr (estimated)", + "2047-07-25": "Eid al-Fitr Holiday (estimated)", + "2047-07-26": "Eid al-Fitr Holiday (estimated)", + "2047-09-29": "Arafat Day (estimated)", + "2047-09-30": "Eid al-Adha (estimated)", + "2047-10-01": "Eid al-Adha Holiday (estimated)", + "2047-10-02": "Eid al-Adha Holiday (estimated)", + "2047-10-20": "Islamic New Year (estimated)", + "2047-12-29": "Prophet's Birthday (estimated)", + "2048-01-01": "New Year's Day", + "2048-02-25": "National Day", + "2048-02-26": "Liberation Day", + "2048-05-10": "Isra and Miraj (estimated)", + "2048-07-12": "Eid al-Fitr (estimated)", + "2048-07-13": "Eid al-Fitr Holiday (estimated)", + "2048-07-14": "Eid al-Fitr Holiday (estimated)", + "2048-09-18": "Arafat Day (estimated)", + "2048-09-19": "Eid al-Adha (estimated)", + "2048-09-20": "Eid al-Adha Holiday (estimated)", + "2048-09-21": "Eid al-Adha Holiday (estimated)", + "2048-10-09": "Islamic New Year (estimated)", + "2048-12-18": "Prophet's Birthday (estimated)", + "2049-01-01": "New Year's Day", + "2049-02-25": "National Day", + "2049-02-26": "Liberation Day", + "2049-04-29": "Isra and Miraj (estimated)", + "2049-07-01": "Eid al-Fitr (estimated)", + "2049-07-02": "Eid al-Fitr Holiday (estimated)", + "2049-07-03": "Eid al-Fitr Holiday (estimated)", + "2049-09-07": "Arafat Day (estimated)", + "2049-09-08": "Eid al-Adha (estimated)", + "2049-09-09": "Eid al-Adha Holiday (estimated)", + "2049-09-10": "Eid al-Adha Holiday (estimated)", + "2049-09-28": "Islamic New Year (estimated)", + "2049-12-07": "Prophet's Birthday (estimated)", + "2050-01-01": "New Year's Day", + "2050-02-25": "National Day", + "2050-02-26": "Liberation Day", + "2050-04-19": "Isra and Miraj (estimated)", + "2050-06-20": "Eid al-Fitr (estimated)", + "2050-06-21": "Eid al-Fitr Holiday (estimated)", + "2050-06-22": "Eid al-Fitr Holiday (estimated)", + "2050-08-27": "Arafat Day (estimated)", + "2050-08-28": "Eid al-Adha (estimated)", + "2050-08-29": "Eid al-Adha Holiday (estimated)", + "2050-08-30": "Eid al-Adha Holiday (estimated)", + "2050-09-17": "Islamic New Year (estimated)", + "2050-11-26": "Prophet's Birthday (estimated)" +} diff --git a/tests/countries/test_kuwait.py b/tests/countries/test_kuwait.py new file mode 100644 index 000000000..00a50add5 --- /dev/null +++ b/tests/countries/test_kuwait.py @@ -0,0 +1,77 @@ +# python-holidays +# --------------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/dr-prodigy/python-holidays +# License: MIT (see LICENSE file) + +from unittest import TestCase + +from holidays.countries.kuwait import Kuwait, KW, KWT +from tests.common import CommonCountryTests + + +class TestKuwait(CommonCountryTests, TestCase): + @classmethod + def setUpClass(cls): + super().setUpClass(Kuwait) + + def test_country_aliases(self): + self.assertAliases(Kuwait, KW, KWT) + + def test_2022(self): + self.assertHolidays( + Kuwait(years=2022), + ("2022-01-01", "رأس السنة الميلادية"), + ("2022-02-25", "اليوم الوطني"), + ("2022-02-26", "يوم التحرير"), + ("2022-02-28", "(تقدير) ليلة المعراج"), + ("2022-05-02", "(تقدير) عيد الفطر"), + ("2022-05-03", "(تقدير) عطلة عيد الفطر"), + ("2022-05-04", "(تقدير) عطلة عيد الفطر"), + ("2022-07-08", "(تقدير) يوم عرفة"), + ("2022-07-09", "(تقدير) عيد الأضحى"), + ("2022-07-10", "(تقدير) عطلة عيد الأضحى"), + ("2022-07-11", "(تقدير) عطلة عيد الأضحى"), + ("2022-07-30", "(تقدير) رأس السنة الهجرية"), + ("2022-10-08", "(تقدير) عيد المولد النبوي"), + ) + + def test_l10n_default(self): + self.assertLocalizedHolidays( + ("2023-01-01", "رأس السنة الميلادية"), + ("2023-02-18", "(تقدير) ليلة المعراج"), + ("2023-02-25", "اليوم الوطني"), + ("2023-02-26", "يوم التحرير"), + ("2023-04-21", "(تقدير) عيد الفطر"), + ("2023-04-22", "(تقدير) عطلة عيد الفطر"), + ("2023-04-23", "(تقدير) عطلة عيد الفطر"), + ("2023-06-27", "(تقدير) يوم عرفة"), + ("2023-06-28", "(تقدير) عيد الأضحى"), + ("2023-06-29", "(تقدير) عطلة عيد الأضحى"), + ("2023-06-30", "(تقدير) عطلة عيد الأضحى"), + ("2023-07-19", "(تقدير) رأس السنة الهجرية"), + ("2023-09-27", "(تقدير) عيد المولد النبوي"), + ) + + def test_l10n_en_us(self): + self.assertLocalizedHolidays( + "en_US", + ("2023-01-01", "New Year's Day"), + ("2023-02-18", "Isra and Miraj (estimated)"), + ("2023-02-25", "National Day"), + ("2023-02-26", "Liberation Day"), + ("2023-04-21", "Eid al-Fitr (estimated)"), + ("2023-04-22", "Eid al-Fitr Holiday (estimated)"), + ("2023-04-23", "Eid al-Fitr Holiday (estimated)"), + ("2023-06-27", "Arafat Day (estimated)"), + ("2023-06-28", "Eid al-Adha (estimated)"), + ("2023-06-29", "Eid al-Adha Holiday (estimated)"), + ("2023-06-30", "Eid al-Adha Holiday (estimated)"), + ("2023-07-19", "Islamic New Year (estimated)"), + ("2023-09-27", "Prophet's Birthday (estimated)"), + ) From f7703876fbd5704de9662b87722187af7fab23a2 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Wed, 6 Mar 2024 09:19:45 -0800 Subject: [PATCH 03/14] Fix SonarCloud security hotspots (#1718) --- scripts/generate_release_notes.py | 19 +++++++++---------- tests/test_docs.py | 4 ++-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/scripts/generate_release_notes.py b/scripts/generate_release_notes.py index cfcf08139..c5b2b78eb 100755 --- a/scripts/generate_release_notes.py +++ b/scripts/generate_release_notes.py @@ -114,22 +114,20 @@ def is_ready(self): @property def sorted_pull_requests(self): def custom_order(pr): - pr = re.findall(r"^(.*) \(#\d+ .*\)$", pr)[0] - - if re.findall(r"^(Introduce|Refactor)", pr) or re.findall(r"Add .* support", pr): + if re.findall(r"^(Introduce|Refactor)", pr[0]) or re.findall(r"Add .* support", pr[0]): weight = 10 - elif re.findall(r"^Add .* holidays$", pr): + elif re.findall(r"^Add .* holidays$", pr[0]): weight = 20 - elif re.findall(r"(^Localize|localization$)", pr): + elif re.findall(r"(^Localize)|(localization$)", pr[0]): weight = 30 - elif re.findall(r"^Fix", pr): + elif re.findall(r"^Fix", pr[0]): weight = 40 - elif re.findall(r"^(Change|Improve|Optimize|Update|Upgrade)", pr): + elif re.findall(r"^(Change|Improve|Optimize|Update|Upgrade)", pr[0]): weight = 50 else: weight = 100 - return (weight, pr) + return weight, pr return sorted(self.pull_requests.values(), key=custom_order) @@ -158,7 +156,8 @@ def add_pull_request(self, pull_request): contributors.remove(author) contributors = (f"@{c}" for c in [author] + sorted(contributors, key=str.lower)) self.pull_requests[pull_request.number] = ( - f"{pull_request.title} (#{pull_request.number} by " f"{', '.join(contributors)})" + pull_request.title, + f"#{pull_request.number} by {', '.join(contributors)}", ) def generate_release_notes(self): @@ -246,7 +245,7 @@ def print_release_notes(self): year=today.year, ) ) - print("\n".join((f"- {pr}" for pr in self.sorted_pull_requests))) + print("\n".join((f"- {pr[0]} ({pr[1]})" for pr in self.sorted_pull_requests))) else: print(f"No changes since {self.latest_tag_name} release.") diff --git a/tests/test_docs.py b/tests/test_docs.py index bc794bcc0..a3e5e34bf 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -47,9 +47,9 @@ def test_supported_countries_table(self): country_subdivisions_aliases = {} country_supported_languages = {} country_supported_categories = {} - subdivision_group_re = re.compile(".*: (.*)") + subdivision_group_re = re.compile("\w+: ([\s\w,*()]+)") subdivision_and_aliases_re = re.compile(r",(?![^()]*\))") - subdivision_aliases_re = re.compile(r"(.*)\s\((.*?)\)") + subdivision_aliases_re = re.compile(r"(.*?)\s\((.*?)\)") table_content = [ line.strip() From d7a617d827926d976e17e2dc9cb7804560e97c04 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:53:03 -0800 Subject: [PATCH 04/14] Update pre-commit hooks (#1719) Co-authored-by: arkid15r <2201626+arkid15r@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ff11610ad..0f9987584 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - rst - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.3.0 + rev: v0.3.1 hooks: - id: ruff - id: ruff-format From 2c6c672228a558030b4d32de642055ca48052e32 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Fri, 8 Mar 2024 09:44:36 -0800 Subject: [PATCH 05/14] Fix SonarCloud security hotspots (attempt #2) (#1720) --- tests/test_docs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_docs.py b/tests/test_docs.py index a3e5e34bf..5e63594e8 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -47,9 +47,9 @@ def test_supported_countries_table(self): country_subdivisions_aliases = {} country_supported_languages = {} country_supported_categories = {} - subdivision_group_re = re.compile("\w+: ([\s\w,*()]+)") + subdivision_group_re = re.compile(r"\w+: ([^:]+)") subdivision_and_aliases_re = re.compile(r",(?![^()]*\))") - subdivision_aliases_re = re.compile(r"(.*?)\s\((.*?)\)") + subdivision_aliases_re = re.compile(r"(.*?)\s\(([^()]*)\)") table_content = [ line.strip() From 62b70deb061276aae090a9db18739c0ef434ffc6 Mon Sep 17 00:00:00 2001 From: ~Jhellico Date: Sat, 9 Mar 2024 19:12:15 +0200 Subject: [PATCH 06/14] Update Mexico holidays (#1722) --- holidays/countries/mexico.py | 15 ++++++++++----- snapshots/countries/MX_COMMON.json | 10 +++++----- tests/countries/test_mexico.py | 3 ++- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/holidays/countries/mexico.py b/holidays/countries/mexico.py index 82519d62e..09cf32b1b 100644 --- a/holidays/countries/mexico.py +++ b/holidays/countries/mexico.py @@ -18,10 +18,11 @@ class Mexico(HolidayBase, ChristianHolidays, InternationalHolidays): """ References: - - https://en.wikipedia.org/wiki/Public_holidays_in_Mexico - - https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_festivos_en_M%C3%A9xico - - https://www.gob.mx/cms/uploads/attachment/file/156203/1044_Ley_Federal_del_Trabajo.pdf - - http://www.diputados.gob.mx/LeyesBiblio/ref/lft/LFT_orig_01abr70_ima.pdf + - https://en.wikipedia.org/wiki/Public_holidays_in_Mexico + - https://es.wikipedia.org/wiki/Anexo:D%C3%ADas_festivos_en_M%C3%A9xico + - https://www.gob.mx/cms/uploads/attachment/file/156203/1044_Ley_Federal_del_Trabajo.pdf + - http://www.diputados.gob.mx/LeyesBiblio/ref/lft/LFT_orig_01abr70_ima.pdf + - https://www.gob.mx/profedet/es/articulos/sabes-cuales-son-los-dias-de-descanso-obligatorio-para-este-2024 # noqa: E501 """ country = "MX" @@ -72,7 +73,11 @@ def _populate_public_holidays(self): if self._year >= 1970 and (self._year - 1970) % 6 == 0: # Change of Federal Government. - self._add_holiday_dec_1(tr("Transmisión del Poder Ejecutivo Federal")) + name = tr("Transmisión del Poder Ejecutivo Federal") + if self._year >= 2024: + self._add_holiday_oct_1(name) + else: + self._add_holiday_dec_1(name) # Christmas Day. self._add_christmas_day(tr("Navidad")) diff --git a/snapshots/countries/MX_COMMON.json b/snapshots/countries/MX_COMMON.json index 19a021b13..a8986f100 100644 --- a/snapshots/countries/MX_COMMON.json +++ b/snapshots/countries/MX_COMMON.json @@ -531,8 +531,8 @@ "2024-03-18": "Benito Ju\u00e1rez's birthday", "2024-05-01": "Labor Day", "2024-09-16": "Independence Day", + "2024-10-01": "Change of Federal Government", "2024-11-18": "Revolution Day", - "2024-12-01": "Change of Federal Government", "2024-12-25": "Christmas Day", "2025-01-01": "New Year's Day", "2025-02-03": "Constitution Day", @@ -574,8 +574,8 @@ "2030-03-18": "Benito Ju\u00e1rez's birthday", "2030-05-01": "Labor Day", "2030-09-16": "Independence Day", + "2030-10-01": "Change of Federal Government", "2030-11-18": "Revolution Day", - "2030-12-01": "Change of Federal Government", "2030-12-25": "Christmas Day", "2031-01-01": "New Year's Day", "2031-02-03": "Constitution Day", @@ -617,8 +617,8 @@ "2036-03-17": "Benito Ju\u00e1rez's birthday", "2036-05-01": "Labor Day", "2036-09-16": "Independence Day", + "2036-10-01": "Change of Federal Government", "2036-11-17": "Revolution Day", - "2036-12-01": "Change of Federal Government", "2036-12-25": "Christmas Day", "2037-01-01": "New Year's Day", "2037-02-02": "Constitution Day", @@ -660,8 +660,8 @@ "2042-03-17": "Benito Ju\u00e1rez's birthday", "2042-05-01": "Labor Day", "2042-09-16": "Independence Day", + "2042-10-01": "Change of Federal Government", "2042-11-17": "Revolution Day", - "2042-12-01": "Change of Federal Government", "2042-12-25": "Christmas Day", "2043-01-01": "New Year's Day", "2043-02-02": "Constitution Day", @@ -703,8 +703,8 @@ "2048-03-16": "Benito Ju\u00e1rez's birthday", "2048-05-01": "Labor Day", "2048-09-16": "Independence Day", + "2048-10-01": "Change of Federal Government", "2048-11-16": "Revolution Day", - "2048-12-01": "Change of Federal Government", "2048-12-25": "Christmas Day", "2049-01-01": "New Year's Day", "2049-02-01": "Constitution Day", diff --git a/tests/countries/test_mexico.py b/tests/countries/test_mexico.py index 3a33e8026..32ec93114 100644 --- a/tests/countries/test_mexico.py +++ b/tests/countries/test_mexico.py @@ -119,7 +119,7 @@ def test_change_of_government(self): "2006-12-01", "2012-12-01", "2018-12-01", - "2024-12-01", + "2024-10-01", ) self.assertNoHoliday( f"{year}-12-01" for year in range(1970, 2050) if (year - 1970) % 6 > 0 @@ -129,6 +129,7 @@ def test_change_of_government(self): self.assertNoHolidayName( name, (year for year in range(1970, 2050) if (year - 1970) % 6 > 0) ) + self.assertNoHoliday("2024-12-01") def test_christmas_day(self): self.assertHoliday(f"{year}-12-25" for year in range(1900, 2050)) From 502def2db6acbf1ec623601976b0803f55487ff8 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Sat, 9 Mar 2024 11:49:01 -0800 Subject: [PATCH 07/14] Add Python 3.12 support (#1721) Co-authored-by: ~Jhellico --- .github/workflows/ci-cd.yml | 5 ++--- .github/workflows/pre-commit-autoupdate.yml | 2 +- .readthedocs.yaml | 2 +- requirements/dev.txt | 4 +--- scripts/l10n/generate_po_files.py | 2 +- tests/common.py | 2 +- tox.ini | 2 +- 7 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 469850e0e..108300825 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -23,8 +23,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5.0.0 with: - python-version: '3.11' - + python-version: '3.12' - name: Run pre-commit uses: pre-commit/action@v3.0.1 @@ -89,7 +88,7 @@ jobs: with: cache: pip cache-dependency-path: requirements/runtime.txt - python-version: '3.11' + python-version: '3.12' - name: Install dependencies run: | diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml index 0b24470ad..45d50e01c 100644 --- a/.github/workflows/pre-commit-autoupdate.yml +++ b/.github/workflows/pre-commit-autoupdate.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-python@v5.0.0 with: - python-version: '3.11' + python-version: '3.12' - uses: browniebroke/pre-commit-autoupdate-action@v1.0.0 diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 5b45556c8..a425c0fea 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -6,7 +6,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: '3.11' + python: '3.12' python: install: diff --git a/requirements/dev.txt b/requirements/dev.txt index 7af095b2f..9b7fe77f0 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,8 +4,7 @@ ruff tox # Localization. -chameleon -lingua +lingva # Holidays pre-calculation. convertdate @@ -14,5 +13,4 @@ hijridate # Deployment. build gitpython -pip>=19.2.3 pygithub diff --git a/scripts/l10n/generate_po_files.py b/scripts/l10n/generate_po_files.py index d5273fbe2..e2fc99ee2 100755 --- a/scripts/l10n/generate_po_files.py +++ b/scripts/l10n/generate_po_files.py @@ -16,7 +16,7 @@ import sys from pathlib import Path -from lingua.extract import main as create_pot_file +from lingva.extract import main as create_pot_file from polib import pofile diff --git a/tests/common.py b/tests/common.py index e39e1d474..353f11361 100644 --- a/tests/common.py +++ b/tests/common.py @@ -20,7 +20,7 @@ from holidays import HolidayBase from holidays.calendars.gregorian import SUN -PYTHON_LATEST_SUPPORTED_VERSION = (3, 11) +PYTHON_LATEST_SUPPORTED_VERSION = (3, 12) PYTHON_VERSION = (sys.version_info.major, sys.version_info.minor) diff --git a/tox.ini b/tox.ini index c5364d4f5..eb3a417ab 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,7 @@ commands = pytest [testenv:docs] -base_python = python3.11 +base_python = python3.12 deps = -r{toxinidir}/requirements/docs.txt -r{toxinidir}/requirements/tests.txt From d894c42713461bd070a163fbf9eea21446b7de23 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Sat, 9 Mar 2024 13:29:06 -0800 Subject: [PATCH 08/14] Fix SonarCloud security hotspots (attempt #3) (#1723) --- tests/test_docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_docs.py b/tests/test_docs.py index 5e63594e8..4d1c9c5c0 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -47,7 +47,7 @@ def test_supported_countries_table(self): country_subdivisions_aliases = {} country_supported_languages = {} country_supported_categories = {} - subdivision_group_re = re.compile(r"\w+: ([^:]+)") + subdivision_group_re = re.compile(r"\w+:\s*([^\n:]+)") subdivision_and_aliases_re = re.compile(r",(?![^()]*\))") subdivision_aliases_re = re.compile(r"(.*?)\s\(([^()]*)\)") From 00482f669fabc10083319d658237ae109a689f35 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 08:39:12 -0700 Subject: [PATCH 09/14] Update pre-commit hooks (#1724) Co-authored-by: arkid15r <2201626+arkid15r@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0f9987584..f2925dbd8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - rst - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.3.1 + rev: v0.3.2 hooks: - id: ruff - id: ruff-format @@ -33,7 +33,7 @@ repos: - sphinx - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.8.0 + rev: v1.9.0 hooks: - id: mypy additional_dependencies: [types-all] From 668ee0862ebb1202628e820c5c7eec9bb74109d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 07:57:57 -0700 Subject: [PATCH 10/14] Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2 (#1729) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pre-commit-autoupdate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml index 45d50e01c..126069f7c 100644 --- a/.github/workflows/pre-commit-autoupdate.yml +++ b/.github/workflows/pre-commit-autoupdate.yml @@ -22,7 +22,7 @@ jobs: - uses: browniebroke/pre-commit-autoupdate-action@v1.0.0 - - uses: peter-evans/create-pull-request@v6.0.1 + - uses: peter-evans/create-pull-request@v6.0.2 with: base: dev body: Update pre-commit hooks to their latest versions. From adc356663f07013da27abccb5095fc1d835ab636 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 17:47:45 -0700 Subject: [PATCH 11/14] Update pre-commit hooks (#1730) Co-authored-by: arkid15r <2201626+arkid15r@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f2925dbd8..62ce71459 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - rst - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.3.2 + rev: v0.3.3 hooks: - id: ruff - id: ruff-format From 6ebb447a845a35a7d0e3ae003ed6b614adb34bad Mon Sep 17 00:00:00 2001 From: ~Jhellico Date: Mon, 18 Mar 2024 17:45:48 +0200 Subject: [PATCH 12/14] Update pre-commit config (#1732) Co-authored-by: Arkadii Yakovets --- .pre-commit-config.yaml | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 62ce71459..af1e5cb3f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,35 +24,38 @@ repos: - id: ruff - id: ruff-format - - repo: https://github.com/myint/rstcheck - rev: v6.2.0 + - repo: https://github.com/pycqa/isort + rev: 5.13.2 hooks: - - id: rstcheck - additional_dependencies: - - rstcheck - - sphinx + - id: isort + exclude: ^(docs) - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.9.0 hooks: - id: mypy - additional_dependencies: [types-all] + additional_dependencies: + - types-docutils + - types-polib + - types-python-dateutil args: - --ignore-missing-imports - --implicit-optional - --show-error-codes + - repo: https://github.com/myint/rstcheck + rev: v6.2.0 + hooks: + - id: rstcheck + additional_dependencies: + - rstcheck + - sphinx + - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: - id: rst-backticks - - repo: https://github.com/pycqa/isort - rev: 5.13.2 - hooks: - - id: isort - exclude: ^(docs) - - repo: https://github.com/tox-dev/tox-ini-fmt rev: '1.3.1' hooks: From 0531e430475d1ad32c7e194480ec5fd8759c974a Mon Sep 17 00:00:00 2001 From: Panpakorn Siripanich <19505219+PPsyrius@users.noreply.github.com> Date: Mon, 18 Mar 2024 23:31:46 +0700 Subject: [PATCH 13/14] Add Seychelles holidays (#1728) Co-authored-by: ~Jhellico --- README.rst | 7 +- holidays/countries/__init__.py | 1 + holidays/countries/seychelles.py | 174 +++++ holidays/locale/en_SC/LC_MESSAGES/SC.po | 106 +++ holidays/locale/en_US/LC_MESSAGES/SC.po | 106 +++ holidays/registry.py | 1 + snapshots/countries/SC_COMMON.json | 824 ++++++++++++++++++++++++ tests/countries/test_seychelles.py | 180 ++++++ 8 files changed, 1398 insertions(+), 1 deletion(-) create mode 100644 holidays/countries/seychelles.py create mode 100644 holidays/locale/en_SC/LC_MESSAGES/SC.po create mode 100644 holidays/locale/en_US/LC_MESSAGES/SC.po create mode 100644 snapshots/countries/SC_COMMON.json create mode 100644 tests/countries/test_seychelles.py diff --git a/README.rst b/README.rst index b53e6aa11..c1744c9b0 100644 --- a/README.rst +++ b/README.rst @@ -142,7 +142,7 @@ Available Countries .. _ISO 639-1 code: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes .. _ISO 639-2 code: https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes -We currently support 144 country codes. The standard way to refer to a country +We currently support 145 country codes. The standard way to refer to a country is by using its `ISO 3166-1 alpha-2 code`_, the same used for domain names, and for a subdivision its `ISO 3166-2 code`_. Some countries have common or foreign names or abbreviations as aliases for their subdivisions. These are defined in @@ -751,6 +751,11 @@ All other default values are highlighted with bold: - - en_US, **sr** - + * - Seychelles + - SC + - + - **en_SC**, en_US + - * - Singapore - SG - diff --git a/holidays/countries/__init__.py b/holidays/countries/__init__.py index 9235ff51f..c13008558 100644 --- a/holidays/countries/__init__.py +++ b/holidays/countries/__init__.py @@ -126,6 +126,7 @@ from .san_marino import SanMarino, SM, SMR from .saudi_arabia import SaudiArabia, SA, SAU from .serbia import Serbia, RS, SRB +from .seychelles import Seychelles, SC, SYC from .singapore import Singapore, SG, SGP from .slovakia import Slovakia, SK, SVK from .slovenia import Slovenia, SI, SVN diff --git a/holidays/countries/seychelles.py b/holidays/countries/seychelles.py new file mode 100644 index 000000000..daf9ad745 --- /dev/null +++ b/holidays/countries/seychelles.py @@ -0,0 +1,174 @@ +# python-holidays +# --------------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/dr-prodigy/python-holidays +# License: MIT (see LICENSE file) + +from gettext import gettext as tr + +from holidays.calendars.gregorian import JAN, MAR, MAY, SEP, OCT, DEC +from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays +from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON + + +class Seychelles(ObservedHolidayBase, ChristianHolidays, InternationalHolidays): + """ + https://www.psb.gov.sc/public-holidays + https://www.cbs.sc/PublicHolidays.html + + [Act 19 of 1976, 1994 Amendment] + Oldest Seychelles Holidays Law available online in full. + https://seylii.org/akn/sc/act/1976/19/eng@2012-06-30 + [Act 11 of 2014] + Holidays names changed. + https://seylii.org/akn/sc/act/2014/11/eng@2014-08-04 + [Act 3 of 2017] + Added Easter Monday, repealing Liberation Day. + https://seylii.org/akn/sc/act/2017/3/eng@2017-04-12 + + Where any public holiday, except Sunday, falls on a Sunday the next following day, + not being itself a public holiday, shall be a public holiday. + """ + + country = "SC" + default_language = "en_SC" + # %s (observed). + observed_label = tr("%s (observed)") + supported_languages = ("en_SC", "en_US") + + def __init__(self, *args, **kwargs): + ChristianHolidays.__init__(self) + InternationalHolidays.__init__(self) + StaticHolidays.__init__(self, SeychellesStaticHolidays) + kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON) + super().__init__(*args, **kwargs) + + def _populate_public_holidays(self): + # Earliest source is the 1994 amendment of Seychelles Public Holidays Act. + if self._year <= 1993: + return None + + # New Year's Day. + self._add_new_years_day(tr("New Year's Day")) + + # New Year Holiday. + self._add_observed(self._add_new_years_day_two(tr("New Year Holiday"))) + + # Good Friday. + self._add_good_friday(tr("Good Friday")) + + # Easter Saturday. + self._add_holy_saturday(tr("Easter Saturday")) + + if self._year >= 2017: + # Easter Monday. + self._add_easter_monday(tr("Easter Monday")) + + # Labour Day. + self._add_observed(self._add_labor_day(tr("Labour Day"))) + + # The Fete Dieu. + self._add_corpus_christi_day(tr("The Fete Dieu")) + + if self._year <= 2016: + # Liberation Day. + self._add_observed(self._add_holiday_jun_5(tr("Liberation Day"))) + + self._add_observed( + self._add_holiday_jun_18( + # National Day. + tr("National Day") + if self._year <= 2014 + # Constitution Day. + else tr("Constitution Day") + ) + ) + + self._add_observed( + self._add_holiday_jun_29( + # Independence Day. + tr("Independence Day") + if self._year <= 2014 + # Independence (National) Day. + else tr("Independence (National) Day") + ) + ) + + # Assumption Day. + self._add_observed(self._add_assumption_of_mary_day(tr("Assumption Day"))) + + # All Saints Day. + self._add_observed(self._add_all_saints_day(tr("All Saints Day"))) + + self._add_observed( + # The Feast of the Immaculate Conception. + self._add_immaculate_conception_day(tr("The Feast of the Immaculate Conception")) + ) + + # Christmas Day. + self._add_observed(self._add_christmas_day(tr("Christmas Day"))) + + +class SC(Seychelles): + pass + + +class SYC(Seychelles): + pass + + +class SeychellesStaticHolidays: + """ + Sources: + - https://seylii.org/akn/sc/act/si/2015/58/eng@2015-12-01 + - https://seylii.org/akn/sc/act/si/2015/59/eng@2015-12-11 + - https://seylii.org/akn/sc/act/si/2016/58/eng@2016-09-06 + - https://seylii.org/akn/sc/act/si/2019/10/eng@2019-03-05 + - https://seylii.org/akn/sc/act/si/2019/61/eng@2019-10-18 + - https://seylii.org/akn/sc/act/si/2020/134/eng@2020-09-17 + - https://seylii.org/akn/sc/act/si/2020/154/eng@2020-10-26 + - https://www.statehouse.gov.sc/news/1765/public-holiday-october-1 + - https://www.egov.sc/PressRoom/DisplayPressRelease.aspx?PRLID=196 + - https://www.nation.sc/archive/216478/saturday-may-12-2007-public-holiday + + All Election Dates usually proceed from the Outer Islands first, then the Inner Islands, and + the main capital, Mahé, on the last day. The current implementation only uses the last day, + as officially decreed in 2007, 2011, 2015, and 2020. + """ + + # Bridge Public Holiday. + bridge_public_holiday = tr("Bridge Public Holiday") + + # Presidential Election Day. + presidential_election_day = tr("Presidential Election Day") + + # Parliamentary Election Day. + parliamentary_election_day = tr("Parliamentary Election Day") + + # General Election Day. + general_election_day = tr("General Election Day") + + special_public_holidays = { + 2007: (MAY, 12, presidential_election_day), + 2011: ( + (MAY, 21, presidential_election_day), + (OCT, 1, parliamentary_election_day), + ), + 2015: ( + (DEC, 5, presidential_election_day), + (DEC, 18, presidential_election_day), + ), + 2016: (SEP, 10, parliamentary_election_day), + # Funeral of the Former President France Albert René. + 2019: (MAR, 7, tr("Funeral of the Former President France Albert René")), + 2020: ( + (JAN, 3, bridge_public_holiday), + (OCT, 24, general_election_day), + (OCT, 26, bridge_public_holiday), + ), + } diff --git a/holidays/locale/en_SC/LC_MESSAGES/SC.po b/holidays/locale/en_SC/LC_MESSAGES/SC.po new file mode 100644 index 000000000..34e2b92b2 --- /dev/null +++ b/holidays/locale/en_SC/LC_MESSAGES/SC.po @@ -0,0 +1,106 @@ +# Seychelles holidays. +# Authors: PPsyrius , (c) 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Python Holidays 0.45\n" +"POT-Creation-Date: 2024-03-01 11:00+0700\n" +"PO-Revision-Date: 2024-03-05 16:34+0700\n" +"Last-Translator: PPsyrius \n" +"Language-Team: Python Holidays localization team\n" +"Language: en_SC\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Generated-By: Lingua 4.15.0\n" +"X-Generator: Poedit 3.4.2\n" + +#. %s (observed). +#, c-format +msgid "%s (observed)" +msgstr "" + +#. New Year's Day. +msgid "New Year's Day" +msgstr "" + +#. New Year Holiday. +msgid "New Year Holiday" +msgstr "" + +#. Good Friday. +msgid "Good Friday" +msgstr "" + +#. Easter Saturday. +msgid "Easter Saturday" +msgstr "" + +#. Easter Monday. +msgid "Easter Monday" +msgstr "" + +#. Labour Day. +msgid "Labour Day" +msgstr "" + +#. The Fete Dieu. +msgid "The Fete Dieu" +msgstr "" + +#. Liberation Day. +msgid "Liberation Day" +msgstr "" + +#. National Day. +msgid "National Day" +msgstr "" + +#. Constitution Day. +msgid "Constitution Day" +msgstr "" + +#. Independence Day. +msgid "Independence Day" +msgstr "" + +#. Independence (National) Day. +msgid "Independence (National) Day" +msgstr "" + +#. Assumption Day. +msgid "Assumption Day" +msgstr "" + +#. All Saints Day. +msgid "All Saints Day" +msgstr "" + +#. The Feast of the Immaculate Conception. +msgid "The Feast of the Immaculate Conception" +msgstr "" + +#. Christmas Day. +msgid "Christmas Day" +msgstr "" + +#. Bridge Public Holiday. +msgid "Bridge Public Holiday" +msgstr "" + +#. Presidential Election Day. +msgid "Presidential Election Day" +msgstr "" + +#. Parliamentary Election Day. +msgid "Parliamentary Election Day" +msgstr "" + +#. General Election Day. +msgid "General Election Day" +msgstr "" + +#. Funeral of the Former President France Albert René. +msgid "Funeral of the Former President France Albert René" +msgstr "" diff --git a/holidays/locale/en_US/LC_MESSAGES/SC.po b/holidays/locale/en_US/LC_MESSAGES/SC.po new file mode 100644 index 000000000..9e7ad7f15 --- /dev/null +++ b/holidays/locale/en_US/LC_MESSAGES/SC.po @@ -0,0 +1,106 @@ +# Seychelles holidays en_US localization. +# Authors: PPsyrius , (c) 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: Python Holidays 0.45\n" +"POT-Creation-Date: 2024-03-01 11:00+0700\n" +"PO-Revision-Date: 2024-03-05 16:34+0700\n" +"Last-Translator: PPsyrius \n" +"Language-Team: Python Holidays localization team\n" +"Language: en_US\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Generated-By: Lingua 4.15.0\n" +"X-Generator: Poedit 3.4.2\n" + +#. %s (observed). +#, c-format +msgid "%s (observed)" +msgstr "%s (observed)" + +#. New Year's Day. +msgid "New Year's Day" +msgstr "New Year's Day" + +#. New Year Holiday. +msgid "New Year Holiday" +msgstr "New Year Holiday" + +#. Good Friday. +msgid "Good Friday" +msgstr "Good Friday" + +#. Easter Saturday. +msgid "Easter Saturday" +msgstr "Easter Saturday" + +#. Easter Monday. +msgid "Easter Monday" +msgstr "Easter Monday" + +#. Labour Day. +msgid "Labour Day" +msgstr "Labor Day" + +#. The Fete Dieu. +msgid "The Fete Dieu" +msgstr "Corpus Christi" + +#. Liberation Day. +msgid "Liberation Day" +msgstr "Liberation Day" + +#. National Day. +msgid "National Day" +msgstr "National Day" + +#. Constitution Day. +msgid "Constitution Day" +msgstr "Constitution Day" + +#. Independence Day. +msgid "Independence Day" +msgstr "Independence Day" + +#. Independence (National) Day. +msgid "Independence (National) Day" +msgstr "Independence (National) Day" + +#. Assumption Day. +msgid "Assumption Day" +msgstr "Assumption Day" + +#. All Saints Day. +msgid "All Saints Day" +msgstr "All Saints Day" + +#. The Feast of the Immaculate Conception. +msgid "The Feast of the Immaculate Conception" +msgstr "Immaculate Conception" + +#. Christmas Day. +msgid "Christmas Day" +msgstr "Christmas Day" + +#. Bridge Public Holiday. +msgid "Bridge Public Holiday" +msgstr "Bridge Public Holiday" + +#. Presidential Election Day. +msgid "Presidential Election Day" +msgstr "Presidential Election Day" + +#. Parliamentary Election Day. +msgid "Parliamentary Election Day" +msgstr "Parliamentary Election Day" + +#. General Election Day. +msgid "General Election Day" +msgstr "General Election Day" + +#. Funeral of the Former President France Albert René. +msgid "Funeral of the Former President France Albert René" +msgstr "Funeral of the Former President France Albert René" diff --git a/holidays/registry.py b/holidays/registry.py index c609cbae9..a2f2ad09c 100644 --- a/holidays/registry.py +++ b/holidays/registry.py @@ -132,6 +132,7 @@ "san_marino": ("SanMarino", "SM", "SMR"), "saudi_arabia": ("SaudiArabia", "SA", "SAU"), "serbia": ("Serbia", "RS", "SRB"), + "seychelles": ("Seychelles", "SC", "SYC"), "singapore": ("Singapore", "SG", "SGP"), "slovakia": ("Slovakia", "SK", "SVK"), "slovenia": ("Slovenia", "SI", "SVN"), diff --git a/snapshots/countries/SC_COMMON.json b/snapshots/countries/SC_COMMON.json new file mode 100644 index 000000000..da7763e58 --- /dev/null +++ b/snapshots/countries/SC_COMMON.json @@ -0,0 +1,824 @@ +{ + "1994-01-01": "New Year's Day", + "1994-01-02": "New Year Holiday", + "1994-01-03": "New Year Holiday (observed)", + "1994-04-01": "Good Friday", + "1994-04-02": "Easter Saturday", + "1994-05-01": "Labor Day", + "1994-05-02": "Labor Day (observed)", + "1994-06-02": "Corpus Christi", + "1994-06-05": "Liberation Day", + "1994-06-06": "Liberation Day (observed)", + "1994-06-18": "National Day", + "1994-06-29": "Independence Day", + "1994-08-15": "Assumption Day", + "1994-11-01": "All Saints Day", + "1994-12-08": "Immaculate Conception", + "1994-12-25": "Christmas Day", + "1994-12-26": "Christmas Day (observed)", + "1995-01-01": "New Year's Day", + "1995-01-02": "New Year Holiday", + "1995-04-14": "Good Friday", + "1995-04-15": "Easter Saturday", + "1995-05-01": "Labor Day", + "1995-06-05": "Liberation Day", + "1995-06-15": "Corpus Christi", + "1995-06-18": "National Day", + "1995-06-19": "National Day (observed)", + "1995-06-29": "Independence Day", + "1995-08-15": "Assumption Day", + "1995-11-01": "All Saints Day", + "1995-12-08": "Immaculate Conception", + "1995-12-25": "Christmas Day", + "1996-01-01": "New Year's Day", + "1996-01-02": "New Year Holiday", + "1996-04-05": "Good Friday", + "1996-04-06": "Easter Saturday", + "1996-05-01": "Labor Day", + "1996-06-05": "Liberation Day", + "1996-06-06": "Corpus Christi", + "1996-06-18": "National Day", + "1996-06-29": "Independence Day", + "1996-08-15": "Assumption Day", + "1996-11-01": "All Saints Day", + "1996-12-08": "Immaculate Conception", + "1996-12-09": "Immaculate Conception (observed)", + "1996-12-25": "Christmas Day", + "1997-01-01": "New Year's Day", + "1997-01-02": "New Year Holiday", + "1997-03-28": "Good Friday", + "1997-03-29": "Easter Saturday", + "1997-05-01": "Labor Day", + "1997-05-29": "Corpus Christi", + "1997-06-05": "Liberation Day", + "1997-06-18": "National Day", + "1997-06-29": "Independence Day", + "1997-06-30": "Independence Day (observed)", + "1997-08-15": "Assumption Day", + "1997-11-01": "All Saints Day", + "1997-12-08": "Immaculate Conception", + "1997-12-25": "Christmas Day", + "1998-01-01": "New Year's Day", + "1998-01-02": "New Year Holiday", + "1998-04-10": "Good Friday", + "1998-04-11": "Easter Saturday", + "1998-05-01": "Labor Day", + "1998-06-05": "Liberation Day", + "1998-06-11": "Corpus Christi", + "1998-06-18": "National Day", + "1998-06-29": "Independence Day", + "1998-08-15": "Assumption Day", + "1998-11-01": "All Saints Day", + "1998-11-02": "All Saints Day (observed)", + "1998-12-08": "Immaculate Conception", + "1998-12-25": "Christmas Day", + "1999-01-01": "New Year's Day", + "1999-01-02": "New Year Holiday", + "1999-04-02": "Good Friday", + "1999-04-03": "Easter Saturday", + "1999-05-01": "Labor Day", + "1999-06-03": "Corpus Christi", + "1999-06-05": "Liberation Day", + "1999-06-18": "National Day", + "1999-06-29": "Independence Day", + "1999-08-15": "Assumption Day", + "1999-08-16": "Assumption Day (observed)", + "1999-11-01": "All Saints Day", + "1999-12-08": "Immaculate Conception", + "1999-12-25": "Christmas Day", + "2000-01-01": "New Year's Day", + "2000-01-02": "New Year Holiday", + "2000-01-03": "New Year Holiday (observed)", + "2000-04-21": "Good Friday", + "2000-04-22": "Easter Saturday", + "2000-05-01": "Labor Day", + "2000-06-05": "Liberation Day", + "2000-06-18": "National Day", + "2000-06-19": "National Day (observed)", + "2000-06-22": "Corpus Christi", + "2000-06-29": "Independence Day", + "2000-08-15": "Assumption Day", + "2000-11-01": "All Saints Day", + "2000-12-08": "Immaculate Conception", + "2000-12-25": "Christmas Day", + "2001-01-01": "New Year's Day", + "2001-01-02": "New Year Holiday", + "2001-04-13": "Good Friday", + "2001-04-14": "Easter Saturday", + "2001-05-01": "Labor Day", + "2001-06-05": "Liberation Day", + "2001-06-14": "Corpus Christi", + "2001-06-18": "National Day", + "2001-06-29": "Independence Day", + "2001-08-15": "Assumption Day", + "2001-11-01": "All Saints Day", + "2001-12-08": "Immaculate Conception", + "2001-12-25": "Christmas Day", + "2002-01-01": "New Year's Day", + "2002-01-02": "New Year Holiday", + "2002-03-29": "Good Friday", + "2002-03-30": "Easter Saturday", + "2002-05-01": "Labor Day", + "2002-05-30": "Corpus Christi", + "2002-06-05": "Liberation Day", + "2002-06-18": "National Day", + "2002-06-29": "Independence Day", + "2002-08-15": "Assumption Day", + "2002-11-01": "All Saints Day", + "2002-12-08": "Immaculate Conception", + "2002-12-09": "Immaculate Conception (observed)", + "2002-12-25": "Christmas Day", + "2003-01-01": "New Year's Day", + "2003-01-02": "New Year Holiday", + "2003-04-18": "Good Friday", + "2003-04-19": "Easter Saturday", + "2003-05-01": "Labor Day", + "2003-06-05": "Liberation Day", + "2003-06-18": "National Day", + "2003-06-19": "Corpus Christi", + "2003-06-29": "Independence Day", + "2003-06-30": "Independence Day (observed)", + "2003-08-15": "Assumption Day", + "2003-11-01": "All Saints Day", + "2003-12-08": "Immaculate Conception", + "2003-12-25": "Christmas Day", + "2004-01-01": "New Year's Day", + "2004-01-02": "New Year Holiday", + "2004-04-09": "Good Friday", + "2004-04-10": "Easter Saturday", + "2004-05-01": "Labor Day", + "2004-06-05": "Liberation Day", + "2004-06-10": "Corpus Christi", + "2004-06-18": "National Day", + "2004-06-29": "Independence Day", + "2004-08-15": "Assumption Day", + "2004-08-16": "Assumption Day (observed)", + "2004-11-01": "All Saints Day", + "2004-12-08": "Immaculate Conception", + "2004-12-25": "Christmas Day", + "2005-01-01": "New Year's Day", + "2005-01-02": "New Year Holiday", + "2005-01-03": "New Year Holiday (observed)", + "2005-03-25": "Good Friday", + "2005-03-26": "Easter Saturday", + "2005-05-01": "Labor Day", + "2005-05-02": "Labor Day (observed)", + "2005-05-26": "Corpus Christi", + "2005-06-05": "Liberation Day", + "2005-06-06": "Liberation Day (observed)", + "2005-06-18": "National Day", + "2005-06-29": "Independence Day", + "2005-08-15": "Assumption Day", + "2005-11-01": "All Saints Day", + "2005-12-08": "Immaculate Conception", + "2005-12-25": "Christmas Day", + "2005-12-26": "Christmas Day (observed)", + "2006-01-01": "New Year's Day", + "2006-01-02": "New Year Holiday", + "2006-04-14": "Good Friday", + "2006-04-15": "Easter Saturday", + "2006-05-01": "Labor Day", + "2006-06-05": "Liberation Day", + "2006-06-15": "Corpus Christi", + "2006-06-18": "National Day", + "2006-06-19": "National Day (observed)", + "2006-06-29": "Independence Day", + "2006-08-15": "Assumption Day", + "2006-11-01": "All Saints Day", + "2006-12-08": "Immaculate Conception", + "2006-12-25": "Christmas Day", + "2007-01-01": "New Year's Day", + "2007-01-02": "New Year Holiday", + "2007-04-06": "Good Friday", + "2007-04-07": "Easter Saturday", + "2007-05-01": "Labor Day", + "2007-05-12": "Presidential Election Day", + "2007-06-05": "Liberation Day", + "2007-06-07": "Corpus Christi", + "2007-06-18": "National Day", + "2007-06-29": "Independence Day", + "2007-08-15": "Assumption Day", + "2007-11-01": "All Saints Day", + "2007-12-08": "Immaculate Conception", + "2007-12-25": "Christmas Day", + "2008-01-01": "New Year's Day", + "2008-01-02": "New Year Holiday", + "2008-03-21": "Good Friday", + "2008-03-22": "Easter Saturday", + "2008-05-01": "Labor Day", + "2008-05-22": "Corpus Christi", + "2008-06-05": "Liberation Day", + "2008-06-18": "National Day", + "2008-06-29": "Independence Day", + "2008-06-30": "Independence Day (observed)", + "2008-08-15": "Assumption Day", + "2008-11-01": "All Saints Day", + "2008-12-08": "Immaculate Conception", + "2008-12-25": "Christmas Day", + "2009-01-01": "New Year's Day", + "2009-01-02": "New Year Holiday", + "2009-04-10": "Good Friday", + "2009-04-11": "Easter Saturday", + "2009-05-01": "Labor Day", + "2009-06-05": "Liberation Day", + "2009-06-11": "Corpus Christi", + "2009-06-18": "National Day", + "2009-06-29": "Independence Day", + "2009-08-15": "Assumption Day", + "2009-11-01": "All Saints Day", + "2009-11-02": "All Saints Day (observed)", + "2009-12-08": "Immaculate Conception", + "2009-12-25": "Christmas Day", + "2010-01-01": "New Year's Day", + "2010-01-02": "New Year Holiday", + "2010-04-02": "Good Friday", + "2010-04-03": "Easter Saturday", + "2010-05-01": "Labor Day", + "2010-06-03": "Corpus Christi", + "2010-06-05": "Liberation Day", + "2010-06-18": "National Day", + "2010-06-29": "Independence Day", + "2010-08-15": "Assumption Day", + "2010-08-16": "Assumption Day (observed)", + "2010-11-01": "All Saints Day", + "2010-12-08": "Immaculate Conception", + "2010-12-25": "Christmas Day", + "2011-01-01": "New Year's Day", + "2011-01-02": "New Year Holiday", + "2011-01-03": "New Year Holiday (observed)", + "2011-04-22": "Good Friday", + "2011-04-23": "Easter Saturday", + "2011-05-01": "Labor Day", + "2011-05-02": "Labor Day (observed)", + "2011-05-21": "Presidential Election Day", + "2011-06-05": "Liberation Day", + "2011-06-06": "Liberation Day (observed)", + "2011-06-18": "National Day", + "2011-06-23": "Corpus Christi", + "2011-06-29": "Independence Day", + "2011-08-15": "Assumption Day", + "2011-10-01": "Parliamentary Election Day", + "2011-11-01": "All Saints Day", + "2011-12-08": "Immaculate Conception", + "2011-12-25": "Christmas Day", + "2011-12-26": "Christmas Day (observed)", + "2012-01-01": "New Year's Day", + "2012-01-02": "New Year Holiday", + "2012-04-06": "Good Friday", + "2012-04-07": "Easter Saturday", + "2012-05-01": "Labor Day", + "2012-06-05": "Liberation Day", + "2012-06-07": "Corpus Christi", + "2012-06-18": "National Day", + "2012-06-29": "Independence Day", + "2012-08-15": "Assumption Day", + "2012-11-01": "All Saints Day", + "2012-12-08": "Immaculate Conception", + "2012-12-25": "Christmas Day", + "2013-01-01": "New Year's Day", + "2013-01-02": "New Year Holiday", + "2013-03-29": "Good Friday", + "2013-03-30": "Easter Saturday", + "2013-05-01": "Labor Day", + "2013-05-30": "Corpus Christi", + "2013-06-05": "Liberation Day", + "2013-06-18": "National Day", + "2013-06-29": "Independence Day", + "2013-08-15": "Assumption Day", + "2013-11-01": "All Saints Day", + "2013-12-08": "Immaculate Conception", + "2013-12-09": "Immaculate Conception (observed)", + "2013-12-25": "Christmas Day", + "2014-01-01": "New Year's Day", + "2014-01-02": "New Year Holiday", + "2014-04-18": "Good Friday", + "2014-04-19": "Easter Saturday", + "2014-05-01": "Labor Day", + "2014-06-05": "Liberation Day", + "2014-06-18": "National Day", + "2014-06-19": "Corpus Christi", + "2014-06-29": "Independence Day", + "2014-06-30": "Independence Day (observed)", + "2014-08-15": "Assumption Day", + "2014-11-01": "All Saints Day", + "2014-12-08": "Immaculate Conception", + "2014-12-25": "Christmas Day", + "2015-01-01": "New Year's Day", + "2015-01-02": "New Year Holiday", + "2015-04-03": "Good Friday", + "2015-04-04": "Easter Saturday", + "2015-05-01": "Labor Day", + "2015-06-04": "Corpus Christi", + "2015-06-05": "Liberation Day", + "2015-06-18": "Constitution Day", + "2015-06-29": "Independence (National) Day", + "2015-08-15": "Assumption Day", + "2015-11-01": "All Saints Day", + "2015-11-02": "All Saints Day (observed)", + "2015-12-05": "Presidential Election Day", + "2015-12-08": "Immaculate Conception", + "2015-12-18": "Presidential Election Day", + "2015-12-25": "Christmas Day", + "2016-01-01": "New Year's Day", + "2016-01-02": "New Year Holiday", + "2016-03-25": "Good Friday", + "2016-03-26": "Easter Saturday", + "2016-05-01": "Labor Day", + "2016-05-02": "Labor Day (observed)", + "2016-05-26": "Corpus Christi", + "2016-06-05": "Liberation Day", + "2016-06-06": "Liberation Day (observed)", + "2016-06-18": "Constitution Day", + "2016-06-29": "Independence (National) Day", + "2016-08-15": "Assumption Day", + "2016-09-10": "Parliamentary Election Day", + "2016-11-01": "All Saints Day", + "2016-12-08": "Immaculate Conception", + "2016-12-25": "Christmas Day", + "2016-12-26": "Christmas Day (observed)", + "2017-01-01": "New Year's Day", + "2017-01-02": "New Year Holiday", + "2017-04-14": "Good Friday", + "2017-04-15": "Easter Saturday", + "2017-04-17": "Easter Monday", + "2017-05-01": "Labor Day", + "2017-06-15": "Corpus Christi", + "2017-06-18": "Constitution Day", + "2017-06-19": "Constitution Day (observed)", + "2017-06-29": "Independence (National) Day", + "2017-08-15": "Assumption Day", + "2017-11-01": "All Saints Day", + "2017-12-08": "Immaculate Conception", + "2017-12-25": "Christmas Day", + "2018-01-01": "New Year's Day", + "2018-01-02": "New Year Holiday", + "2018-03-30": "Good Friday", + "2018-03-31": "Easter Saturday", + "2018-04-02": "Easter Monday", + "2018-05-01": "Labor Day", + "2018-05-31": "Corpus Christi", + "2018-06-18": "Constitution Day", + "2018-06-29": "Independence (National) Day", + "2018-08-15": "Assumption Day", + "2018-11-01": "All Saints Day", + "2018-12-08": "Immaculate Conception", + "2018-12-25": "Christmas Day", + "2019-01-01": "New Year's Day", + "2019-01-02": "New Year Holiday", + "2019-03-07": "Funeral of the Former President France Albert Ren\u00e9", + "2019-04-19": "Good Friday", + "2019-04-20": "Easter Saturday", + "2019-04-22": "Easter Monday", + "2019-05-01": "Labor Day", + "2019-06-18": "Constitution Day", + "2019-06-20": "Corpus Christi", + "2019-06-29": "Independence (National) Day", + "2019-08-15": "Assumption Day", + "2019-11-01": "All Saints Day", + "2019-12-08": "Immaculate Conception", + "2019-12-09": "Immaculate Conception (observed)", + "2019-12-25": "Christmas Day", + "2020-01-01": "New Year's Day", + "2020-01-02": "New Year Holiday", + "2020-01-03": "Bridge Public Holiday", + "2020-04-10": "Good Friday", + "2020-04-11": "Easter Saturday", + "2020-04-13": "Easter Monday", + "2020-05-01": "Labor Day", + "2020-06-11": "Corpus Christi", + "2020-06-18": "Constitution Day", + "2020-06-29": "Independence (National) Day", + "2020-08-15": "Assumption Day", + "2020-10-24": "General Election Day", + "2020-10-26": "Bridge Public Holiday", + "2020-11-01": "All Saints Day", + "2020-11-02": "All Saints Day (observed)", + "2020-12-08": "Immaculate Conception", + "2020-12-25": "Christmas Day", + "2021-01-01": "New Year's Day", + "2021-01-02": "New Year Holiday", + "2021-04-02": "Good Friday", + "2021-04-03": "Easter Saturday", + "2021-04-05": "Easter Monday", + "2021-05-01": "Labor Day", + "2021-06-03": "Corpus Christi", + "2021-06-18": "Constitution Day", + "2021-06-29": "Independence (National) Day", + "2021-08-15": "Assumption Day", + "2021-08-16": "Assumption Day (observed)", + "2021-11-01": "All Saints Day", + "2021-12-08": "Immaculate Conception", + "2021-12-25": "Christmas Day", + "2022-01-01": "New Year's Day", + "2022-01-02": "New Year Holiday", + "2022-01-03": "New Year Holiday (observed)", + "2022-04-15": "Good Friday", + "2022-04-16": "Easter Saturday", + "2022-04-18": "Easter Monday", + "2022-05-01": "Labor Day", + "2022-05-02": "Labor Day (observed)", + "2022-06-16": "Corpus Christi", + "2022-06-18": "Constitution Day", + "2022-06-29": "Independence (National) Day", + "2022-08-15": "Assumption Day", + "2022-11-01": "All Saints Day", + "2022-12-08": "Immaculate Conception", + "2022-12-25": "Christmas Day", + "2022-12-26": "Christmas Day (observed)", + "2023-01-01": "New Year's Day", + "2023-01-02": "New Year Holiday", + "2023-04-07": "Good Friday", + "2023-04-08": "Easter Saturday", + "2023-04-10": "Easter Monday", + "2023-05-01": "Labor Day", + "2023-06-08": "Corpus Christi", + "2023-06-18": "Constitution Day", + "2023-06-19": "Constitution Day (observed)", + "2023-06-29": "Independence (National) Day", + "2023-08-15": "Assumption Day", + "2023-11-01": "All Saints Day", + "2023-12-08": "Immaculate Conception", + "2023-12-25": "Christmas Day", + "2024-01-01": "New Year's Day", + "2024-01-02": "New Year Holiday", + "2024-03-29": "Good Friday", + "2024-03-30": "Easter Saturday", + "2024-04-01": "Easter Monday", + "2024-05-01": "Labor Day", + "2024-05-30": "Corpus Christi", + "2024-06-18": "Constitution Day", + "2024-06-29": "Independence (National) Day", + "2024-08-15": "Assumption Day", + "2024-11-01": "All Saints Day", + "2024-12-08": "Immaculate Conception", + "2024-12-09": "Immaculate Conception (observed)", + "2024-12-25": "Christmas Day", + "2025-01-01": "New Year's Day", + "2025-01-02": "New Year Holiday", + "2025-04-18": "Good Friday", + "2025-04-19": "Easter Saturday", + "2025-04-21": "Easter Monday", + "2025-05-01": "Labor Day", + "2025-06-18": "Constitution Day", + "2025-06-19": "Corpus Christi", + "2025-06-29": "Independence (National) Day", + "2025-06-30": "Independence (National) Day (observed)", + "2025-08-15": "Assumption Day", + "2025-11-01": "All Saints Day", + "2025-12-08": "Immaculate Conception", + "2025-12-25": "Christmas Day", + "2026-01-01": "New Year's Day", + "2026-01-02": "New Year Holiday", + "2026-04-03": "Good Friday", + "2026-04-04": "Easter Saturday", + "2026-04-06": "Easter Monday", + "2026-05-01": "Labor Day", + "2026-06-04": "Corpus Christi", + "2026-06-18": "Constitution Day", + "2026-06-29": "Independence (National) Day", + "2026-08-15": "Assumption Day", + "2026-11-01": "All Saints Day", + "2026-11-02": "All Saints Day (observed)", + "2026-12-08": "Immaculate Conception", + "2026-12-25": "Christmas Day", + "2027-01-01": "New Year's Day", + "2027-01-02": "New Year Holiday", + "2027-03-26": "Good Friday", + "2027-03-27": "Easter Saturday", + "2027-03-29": "Easter Monday", + "2027-05-01": "Labor Day", + "2027-05-27": "Corpus Christi", + "2027-06-18": "Constitution Day", + "2027-06-29": "Independence (National) Day", + "2027-08-15": "Assumption Day", + "2027-08-16": "Assumption Day (observed)", + "2027-11-01": "All Saints Day", + "2027-12-08": "Immaculate Conception", + "2027-12-25": "Christmas Day", + "2028-01-01": "New Year's Day", + "2028-01-02": "New Year Holiday", + "2028-01-03": "New Year Holiday (observed)", + "2028-04-14": "Good Friday", + "2028-04-15": "Easter Saturday", + "2028-04-17": "Easter Monday", + "2028-05-01": "Labor Day", + "2028-06-15": "Corpus Christi", + "2028-06-18": "Constitution Day", + "2028-06-19": "Constitution Day (observed)", + "2028-06-29": "Independence (National) Day", + "2028-08-15": "Assumption Day", + "2028-11-01": "All Saints Day", + "2028-12-08": "Immaculate Conception", + "2028-12-25": "Christmas Day", + "2029-01-01": "New Year's Day", + "2029-01-02": "New Year Holiday", + "2029-03-30": "Good Friday", + "2029-03-31": "Easter Saturday", + "2029-04-02": "Easter Monday", + "2029-05-01": "Labor Day", + "2029-05-31": "Corpus Christi", + "2029-06-18": "Constitution Day", + "2029-06-29": "Independence (National) Day", + "2029-08-15": "Assumption Day", + "2029-11-01": "All Saints Day", + "2029-12-08": "Immaculate Conception", + "2029-12-25": "Christmas Day", + "2030-01-01": "New Year's Day", + "2030-01-02": "New Year Holiday", + "2030-04-19": "Good Friday", + "2030-04-20": "Easter Saturday", + "2030-04-22": "Easter Monday", + "2030-05-01": "Labor Day", + "2030-06-18": "Constitution Day", + "2030-06-20": "Corpus Christi", + "2030-06-29": "Independence (National) Day", + "2030-08-15": "Assumption Day", + "2030-11-01": "All Saints Day", + "2030-12-08": "Immaculate Conception", + "2030-12-09": "Immaculate Conception (observed)", + "2030-12-25": "Christmas Day", + "2031-01-01": "New Year's Day", + "2031-01-02": "New Year Holiday", + "2031-04-11": "Good Friday", + "2031-04-12": "Easter Saturday", + "2031-04-14": "Easter Monday", + "2031-05-01": "Labor Day", + "2031-06-12": "Corpus Christi", + "2031-06-18": "Constitution Day", + "2031-06-29": "Independence (National) Day", + "2031-06-30": "Independence (National) Day (observed)", + "2031-08-15": "Assumption Day", + "2031-11-01": "All Saints Day", + "2031-12-08": "Immaculate Conception", + "2031-12-25": "Christmas Day", + "2032-01-01": "New Year's Day", + "2032-01-02": "New Year Holiday", + "2032-03-26": "Good Friday", + "2032-03-27": "Easter Saturday", + "2032-03-29": "Easter Monday", + "2032-05-01": "Labor Day", + "2032-05-27": "Corpus Christi", + "2032-06-18": "Constitution Day", + "2032-06-29": "Independence (National) Day", + "2032-08-15": "Assumption Day", + "2032-08-16": "Assumption Day (observed)", + "2032-11-01": "All Saints Day", + "2032-12-08": "Immaculate Conception", + "2032-12-25": "Christmas Day", + "2033-01-01": "New Year's Day", + "2033-01-02": "New Year Holiday", + "2033-01-03": "New Year Holiday (observed)", + "2033-04-15": "Good Friday", + "2033-04-16": "Easter Saturday", + "2033-04-18": "Easter Monday", + "2033-05-01": "Labor Day", + "2033-05-02": "Labor Day (observed)", + "2033-06-16": "Corpus Christi", + "2033-06-18": "Constitution Day", + "2033-06-29": "Independence (National) Day", + "2033-08-15": "Assumption Day", + "2033-11-01": "All Saints Day", + "2033-12-08": "Immaculate Conception", + "2033-12-25": "Christmas Day", + "2033-12-26": "Christmas Day (observed)", + "2034-01-01": "New Year's Day", + "2034-01-02": "New Year Holiday", + "2034-04-07": "Good Friday", + "2034-04-08": "Easter Saturday", + "2034-04-10": "Easter Monday", + "2034-05-01": "Labor Day", + "2034-06-08": "Corpus Christi", + "2034-06-18": "Constitution Day", + "2034-06-19": "Constitution Day (observed)", + "2034-06-29": "Independence (National) Day", + "2034-08-15": "Assumption Day", + "2034-11-01": "All Saints Day", + "2034-12-08": "Immaculate Conception", + "2034-12-25": "Christmas Day", + "2035-01-01": "New Year's Day", + "2035-01-02": "New Year Holiday", + "2035-03-23": "Good Friday", + "2035-03-24": "Easter Saturday", + "2035-03-26": "Easter Monday", + "2035-05-01": "Labor Day", + "2035-05-24": "Corpus Christi", + "2035-06-18": "Constitution Day", + "2035-06-29": "Independence (National) Day", + "2035-08-15": "Assumption Day", + "2035-11-01": "All Saints Day", + "2035-12-08": "Immaculate Conception", + "2035-12-25": "Christmas Day", + "2036-01-01": "New Year's Day", + "2036-01-02": "New Year Holiday", + "2036-04-11": "Good Friday", + "2036-04-12": "Easter Saturday", + "2036-04-14": "Easter Monday", + "2036-05-01": "Labor Day", + "2036-06-12": "Corpus Christi", + "2036-06-18": "Constitution Day", + "2036-06-29": "Independence (National) Day", + "2036-06-30": "Independence (National) Day (observed)", + "2036-08-15": "Assumption Day", + "2036-11-01": "All Saints Day", + "2036-12-08": "Immaculate Conception", + "2036-12-25": "Christmas Day", + "2037-01-01": "New Year's Day", + "2037-01-02": "New Year Holiday", + "2037-04-03": "Good Friday", + "2037-04-04": "Easter Saturday", + "2037-04-06": "Easter Monday", + "2037-05-01": "Labor Day", + "2037-06-04": "Corpus Christi", + "2037-06-18": "Constitution Day", + "2037-06-29": "Independence (National) Day", + "2037-08-15": "Assumption Day", + "2037-11-01": "All Saints Day", + "2037-11-02": "All Saints Day (observed)", + "2037-12-08": "Immaculate Conception", + "2037-12-25": "Christmas Day", + "2038-01-01": "New Year's Day", + "2038-01-02": "New Year Holiday", + "2038-04-23": "Good Friday", + "2038-04-24": "Easter Saturday", + "2038-04-26": "Easter Monday", + "2038-05-01": "Labor Day", + "2038-06-18": "Constitution Day", + "2038-06-24": "Corpus Christi", + "2038-06-29": "Independence (National) Day", + "2038-08-15": "Assumption Day", + "2038-08-16": "Assumption Day (observed)", + "2038-11-01": "All Saints Day", + "2038-12-08": "Immaculate Conception", + "2038-12-25": "Christmas Day", + "2039-01-01": "New Year's Day", + "2039-01-02": "New Year Holiday", + "2039-01-03": "New Year Holiday (observed)", + "2039-04-08": "Good Friday", + "2039-04-09": "Easter Saturday", + "2039-04-11": "Easter Monday", + "2039-05-01": "Labor Day", + "2039-05-02": "Labor Day (observed)", + "2039-06-09": "Corpus Christi", + "2039-06-18": "Constitution Day", + "2039-06-29": "Independence (National) Day", + "2039-08-15": "Assumption Day", + "2039-11-01": "All Saints Day", + "2039-12-08": "Immaculate Conception", + "2039-12-25": "Christmas Day", + "2039-12-26": "Christmas Day (observed)", + "2040-01-01": "New Year's Day", + "2040-01-02": "New Year Holiday", + "2040-03-30": "Good Friday", + "2040-03-31": "Easter Saturday", + "2040-04-02": "Easter Monday", + "2040-05-01": "Labor Day", + "2040-05-31": "Corpus Christi", + "2040-06-18": "Constitution Day", + "2040-06-29": "Independence (National) Day", + "2040-08-15": "Assumption Day", + "2040-11-01": "All Saints Day", + "2040-12-08": "Immaculate Conception", + "2040-12-25": "Christmas Day", + "2041-01-01": "New Year's Day", + "2041-01-02": "New Year Holiday", + "2041-04-19": "Good Friday", + "2041-04-20": "Easter Saturday", + "2041-04-22": "Easter Monday", + "2041-05-01": "Labor Day", + "2041-06-18": "Constitution Day", + "2041-06-20": "Corpus Christi", + "2041-06-29": "Independence (National) Day", + "2041-08-15": "Assumption Day", + "2041-11-01": "All Saints Day", + "2041-12-08": "Immaculate Conception", + "2041-12-09": "Immaculate Conception (observed)", + "2041-12-25": "Christmas Day", + "2042-01-01": "New Year's Day", + "2042-01-02": "New Year Holiday", + "2042-04-04": "Good Friday", + "2042-04-05": "Easter Saturday", + "2042-04-07": "Easter Monday", + "2042-05-01": "Labor Day", + "2042-06-05": "Corpus Christi", + "2042-06-18": "Constitution Day", + "2042-06-29": "Independence (National) Day", + "2042-06-30": "Independence (National) Day (observed)", + "2042-08-15": "Assumption Day", + "2042-11-01": "All Saints Day", + "2042-12-08": "Immaculate Conception", + "2042-12-25": "Christmas Day", + "2043-01-01": "New Year's Day", + "2043-01-02": "New Year Holiday", + "2043-03-27": "Good Friday", + "2043-03-28": "Easter Saturday", + "2043-03-30": "Easter Monday", + "2043-05-01": "Labor Day", + "2043-05-28": "Corpus Christi", + "2043-06-18": "Constitution Day", + "2043-06-29": "Independence (National) Day", + "2043-08-15": "Assumption Day", + "2043-11-01": "All Saints Day", + "2043-11-02": "All Saints Day (observed)", + "2043-12-08": "Immaculate Conception", + "2043-12-25": "Christmas Day", + "2044-01-01": "New Year's Day", + "2044-01-02": "New Year Holiday", + "2044-04-15": "Good Friday", + "2044-04-16": "Easter Saturday", + "2044-04-18": "Easter Monday", + "2044-05-01": "Labor Day", + "2044-05-02": "Labor Day (observed)", + "2044-06-16": "Corpus Christi", + "2044-06-18": "Constitution Day", + "2044-06-29": "Independence (National) Day", + "2044-08-15": "Assumption Day", + "2044-11-01": "All Saints Day", + "2044-12-08": "Immaculate Conception", + "2044-12-25": "Christmas Day", + "2044-12-26": "Christmas Day (observed)", + "2045-01-01": "New Year's Day", + "2045-01-02": "New Year Holiday", + "2045-04-07": "Good Friday", + "2045-04-08": "Easter Saturday", + "2045-04-10": "Easter Monday", + "2045-05-01": "Labor Day", + "2045-06-08": "Corpus Christi", + "2045-06-18": "Constitution Day", + "2045-06-19": "Constitution Day (observed)", + "2045-06-29": "Independence (National) Day", + "2045-08-15": "Assumption Day", + "2045-11-01": "All Saints Day", + "2045-12-08": "Immaculate Conception", + "2045-12-25": "Christmas Day", + "2046-01-01": "New Year's Day", + "2046-01-02": "New Year Holiday", + "2046-03-23": "Good Friday", + "2046-03-24": "Easter Saturday", + "2046-03-26": "Easter Monday", + "2046-05-01": "Labor Day", + "2046-05-24": "Corpus Christi", + "2046-06-18": "Constitution Day", + "2046-06-29": "Independence (National) Day", + "2046-08-15": "Assumption Day", + "2046-11-01": "All Saints Day", + "2046-12-08": "Immaculate Conception", + "2046-12-25": "Christmas Day", + "2047-01-01": "New Year's Day", + "2047-01-02": "New Year Holiday", + "2047-04-12": "Good Friday", + "2047-04-13": "Easter Saturday", + "2047-04-15": "Easter Monday", + "2047-05-01": "Labor Day", + "2047-06-13": "Corpus Christi", + "2047-06-18": "Constitution Day", + "2047-06-29": "Independence (National) Day", + "2047-08-15": "Assumption Day", + "2047-11-01": "All Saints Day", + "2047-12-08": "Immaculate Conception", + "2047-12-09": "Immaculate Conception (observed)", + "2047-12-25": "Christmas Day", + "2048-01-01": "New Year's Day", + "2048-01-02": "New Year Holiday", + "2048-04-03": "Good Friday", + "2048-04-04": "Easter Saturday", + "2048-04-06": "Easter Monday", + "2048-05-01": "Labor Day", + "2048-06-04": "Corpus Christi", + "2048-06-18": "Constitution Day", + "2048-06-29": "Independence (National) Day", + "2048-08-15": "Assumption Day", + "2048-11-01": "All Saints Day", + "2048-11-02": "All Saints Day (observed)", + "2048-12-08": "Immaculate Conception", + "2048-12-25": "Christmas Day", + "2049-01-01": "New Year's Day", + "2049-01-02": "New Year Holiday", + "2049-04-16": "Good Friday", + "2049-04-17": "Easter Saturday", + "2049-04-19": "Easter Monday", + "2049-05-01": "Labor Day", + "2049-06-17": "Corpus Christi", + "2049-06-18": "Constitution Day", + "2049-06-29": "Independence (National) Day", + "2049-08-15": "Assumption Day", + "2049-08-16": "Assumption Day (observed)", + "2049-11-01": "All Saints Day", + "2049-12-08": "Immaculate Conception", + "2049-12-25": "Christmas Day", + "2050-01-01": "New Year's Day", + "2050-01-02": "New Year Holiday", + "2050-01-03": "New Year Holiday (observed)", + "2050-04-08": "Good Friday", + "2050-04-09": "Easter Saturday", + "2050-04-11": "Easter Monday", + "2050-05-01": "Labor Day", + "2050-05-02": "Labor Day (observed)", + "2050-06-09": "Corpus Christi", + "2050-06-18": "Constitution Day", + "2050-06-29": "Independence (National) Day", + "2050-08-15": "Assumption Day", + "2050-11-01": "All Saints Day", + "2050-12-08": "Immaculate Conception", + "2050-12-25": "Christmas Day", + "2050-12-26": "Christmas Day (observed)" +} diff --git a/tests/countries/test_seychelles.py b/tests/countries/test_seychelles.py new file mode 100644 index 000000000..dca3c2e1f --- /dev/null +++ b/tests/countries/test_seychelles.py @@ -0,0 +1,180 @@ +# python-holidays +# --------------- +# A fast, efficient Python library for generating country, province and state +# specific sets of holidays on the fly. It aims to make determining whether a +# specific date is a holiday as fast and flexible as possible. +# +# Authors: dr-prodigy (c) 2017-2023 +# ryanss (c) 2014-2017 +# Website: https://github.com/dr-prodigy/python-holidays +# License: MIT (see LICENSE file) + +from unittest import TestCase + +from holidays.countries.seychelles import Seychelles, SC, SYC +from tests.common import CommonCountryTests + + +class TestSeychelles(CommonCountryTests, TestCase): + @classmethod + def setUpClass(cls): + super().setUpClass(Seychelles) + + def test_country_aliases(self): + self.assertAliases(Seychelles, SC, SYC) + + def test_no_holidays(self): + self.assertNoHolidays(Seychelles(years=1993)) + + def test_special_holidays(self): + # Election Dates have its own separate checklists. + self.assertHoliday( + "2007-05-12", + "2011-05-21", + "2011-10-01", + "2015-12-05", + "2015-12-18", + "2016-09-10", + "2019-03-07", + "2020-01-03", + "2020-10-24", + "2020-10-26", + ) + + def test_2009(self): + # https://web.archive.org/web/20091208104016/https://www.cbs.sc/PublicHolidays.html + self.assertHolidays( + Seychelles(years=2009), + ("2009-01-01", "New Year's Day"), + ("2009-01-02", "New Year Holiday"), + ("2009-04-10", "Good Friday"), + ("2009-04-11", "Easter Saturday"), + ("2009-05-01", "Labour Day"), + ("2009-06-05", "Liberation Day"), + ("2009-06-11", "The Fete Dieu"), + ("2009-06-18", "National Day"), + ("2009-06-29", "Independence Day"), + ("2009-08-15", "Assumption Day"), + ("2009-11-01", "All Saints Day"), + ("2009-11-02", "All Saints Day (observed)"), + ("2009-12-08", "The Feast of the Immaculate Conception"), + ("2009-12-25", "Christmas Day"), + ) + + def test_2012(self): + # https://web.archive.org/web/20121023221205/https://www.cbs.sc/PublicHolidays.html + self.assertHolidays( + Seychelles(years=2012), + ("2012-01-01", "New Year's Day"), + ("2012-01-02", "New Year Holiday"), + ("2012-04-06", "Good Friday"), + ("2012-04-07", "Easter Saturday"), + ("2012-05-01", "Labour Day"), + ("2012-06-05", "Liberation Day"), + ("2012-06-07", "The Fete Dieu"), + ("2012-06-18", "National Day"), + ("2012-06-29", "Independence Day"), + ("2012-08-15", "Assumption Day"), + ("2012-11-01", "All Saints Day"), + ("2012-12-08", "The Feast of the Immaculate Conception"), + ("2012-12-25", "Christmas Day"), + ) + + def test_2019(self): + # https://web.archive.org/web/20191029202210/http://cbs.sc/PublicHolidays.html + self.assertHolidays( + Seychelles(years=2019), + ("2019-01-01", "New Year's Day"), + ("2019-01-02", "New Year Holiday"), + ("2019-03-07", "Funeral of the Former President France Albert René"), + ("2019-04-19", "Good Friday"), + ("2019-04-20", "Easter Saturday"), + ("2019-04-22", "Easter Monday"), + ("2019-05-01", "Labour Day"), + ("2019-06-20", "The Fete Dieu"), + ("2019-06-18", "Constitution Day"), + ("2019-06-29", "Independence (National) Day"), + ("2019-08-15", "Assumption Day"), + ("2019-11-01", "All Saints Day"), + ("2019-12-08", "The Feast of the Immaculate Conception"), + ("2019-12-09", "The Feast of the Immaculate Conception (observed)"), + ("2019-12-25", "Christmas Day"), + ) + + def test_2021(self): + # https://web.archive.org/web/20211206090711/https://www.cbs.sc/PublicHolidays.html + self.assertHolidays( + Seychelles(years=2021), + ("2021-01-01", "New Year's Day"), + ("2021-01-02", "New Year Holiday"), + ("2021-04-02", "Good Friday"), + ("2021-04-03", "Easter Saturday"), + ("2021-04-05", "Easter Monday"), + ("2021-05-01", "Labour Day"), + ("2021-06-03", "The Fete Dieu"), + ("2021-06-18", "Constitution Day"), + ("2021-06-29", "Independence (National) Day"), + ("2021-08-15", "Assumption Day"), + ("2021-08-16", "Assumption Day (observed)"), + ("2021-11-01", "All Saints Day"), + ("2021-12-08", "The Feast of the Immaculate Conception"), + ("2021-12-25", "Christmas Day"), + ) + + def test_2023(self): + # https://web.archive.org/web/20230318041823/https://www.cbs.sc/PublicHolidays.html + self.assertHolidays( + Seychelles(years=2023), + ("2023-01-01", "New Year's Day"), + ("2023-01-02", "New Year Holiday"), + ("2023-04-07", "Good Friday"), + ("2023-04-08", "Easter Saturday"), + ("2023-04-10", "Easter Monday"), + ("2023-05-01", "Labour Day"), + ("2023-06-08", "The Fete Dieu"), + ("2023-06-18", "Constitution Day"), + ("2023-06-19", "Constitution Day (observed)"), + ("2023-06-29", "Independence (National) Day"), + ("2023-08-15", "Assumption Day"), + ("2023-11-01", "All Saints Day"), + ("2023-12-08", "The Feast of the Immaculate Conception"), + ("2023-12-25", "Christmas Day"), + ) + + def test_l10n_default(self): + # https://www.psb.gov.sc/public-holidays + self.assertLocalizedHolidays( + ("2024-01-01", "New Year's Day"), + ("2024-01-02", "New Year Holiday"), + ("2024-03-29", "Good Friday"), + ("2024-03-30", "Easter Saturday"), + ("2024-04-01", "Easter Monday"), + ("2024-05-01", "Labour Day"), + ("2024-05-30", "The Fete Dieu"), + ("2024-06-18", "Constitution Day"), + ("2024-06-29", "Independence (National) Day"), + ("2024-08-15", "Assumption Day"), + ("2024-11-01", "All Saints Day"), + ("2024-12-08", "The Feast of the Immaculate Conception"), + ("2024-12-09", "The Feast of the Immaculate Conception (observed)"), + ("2024-12-25", "Christmas Day"), + ) + + def test_l10n_en_us(self): + self.assertLocalizedHolidays( + "en_US", + ("2024-01-01", "New Year's Day"), + ("2024-01-02", "New Year Holiday"), + ("2024-03-29", "Good Friday"), + ("2024-03-30", "Easter Saturday"), + ("2024-04-01", "Easter Monday"), + ("2024-05-01", "Labor Day"), + ("2024-05-30", "Corpus Christi"), + ("2024-06-18", "Constitution Day"), + ("2024-06-29", "Independence (National) Day"), + ("2024-08-15", "Assumption Day"), + ("2024-11-01", "All Saints Day"), + ("2024-12-08", "Immaculate Conception"), + ("2024-12-09", "Immaculate Conception (observed)"), + ("2024-12-25", "Christmas Day"), + ) From b91f00a09d24d927e409d0ccff2178e8ca274d07 Mon Sep 17 00:00:00 2001 From: Arkadii Yakovets Date: Mon, 18 Mar 2024 09:38:03 -0700 Subject: [PATCH 14/14] Finalize v0.45 --- CHANGES | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGES b/CHANGES index e49a1e18c..a8e16faa0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,17 @@ +Version 0.45 +============ + +Released March 18, 2024 + +- Add Python 3.12 support (#1721 by @arkid15r) +- Add Kuwait holidays (#1707 by @arkid15r) +- Add Seychelles holidays (#1728 by @PPsyrius) +- Fix SonarCloud security hotspots (#1718 by @arkid15r) +- Fix SonarCloud security hotspots (attempt #2) (#1720 by @arkid15r) +- Fix SonarCloud security hotspots (attempt #3) (#1723 by @arkid15r) +- Update Mexico holidays (#1722 by @KJhellico) +- Update pre-commit config (#1732 by @KJhellico) + Version 0.44 ============