diff --git a/holidays/calendars/sinhala.py b/holidays/calendars/sinhala.py index 2831acaf7..f4ac119d5 100644 --- a/holidays/calendars/sinhala.py +++ b/holidays/calendars/sinhala.py @@ -18,18 +18,18 @@ from holidays.calendars.gregorian import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC from holidays.helpers import _normalize_tuple -DURUTHU_POYA = "DURUTHU_POYA" -NAWAM_POYA = "NAWAM_POYA" -MEDIN_POYA = "MEDIN_POYA" BAK_POYA = "BAK_POYA" -VESAK_POYA = "VESAK_POYA" -POSON_POYA = "POSON_POYA" -ESALA_POYA = "ESALA_POYA" -NIKINI_POYA = "NIKINI_POYA" BINARA_POYA = "BINARA_POYA" -VAP_POYA = "VAP_POYA" +DURUTHU_POYA = "DURUTHU_POYA" +ESALA_POYA = "ESALA_POYA" IL_POYA = "IL_POYA" +MEDIN_POYA = "MEDIN_POYA" +NAWAM_POYA = "NAWAM_POYA" +NIKINI_POYA = "NIKINI_POYA" +POSON_POYA = "POSON_POYA" UNDUVAP_POYA = "UNDUVAP_POYA" +VAP_POYA = "VAP_POYA" +VESAK_POYA = "VESAK_POYA" class _SinhalaLunar: @@ -49,6 +49,58 @@ class _SinhalaLunar: START_YEAR = 2003 END_YEAR = 2025 + BAK_POYA_DATES = { + 2003: (APR, 16), + 2004: (APR, 5), + 2005: (APR, 23), + 2006: (APR, 13), + 2007: (APR, 2), + 2008: (APR, 19), + 2009: (APR, 9), + 2010: (MAR, 29), + 2011: (APR, 17), + 2012: (APR, 6), + 2013: (APR, 25), + 2014: (APR, 14), + 2015: (APR, 3), + 2016: (APR, 21), + 2017: (APR, 10), + 2018: (MAR, 31), + 2019: (APR, 19), + 2020: (APR, 7), + 2021: (APR, 26), + 2022: (APR, 16), + 2023: (APR, 5), + 2024: (APR, 23), + 2025: (APR, 12), + } + + BINARA_POYA_DATES = { + 2003: (SEP, 10), + 2004: (SEP, 28), + 2005: (SEP, 17), + 2006: (SEP, 7), + 2007: (SEP, 26), + 2008: (SEP, 14), + 2009: (SEP, 4), + 2010: (SEP, 22), + 2011: (SEP, 11), + 2012: (SEP, 29), + 2013: (SEP, 19), + 2014: (SEP, 8), + 2015: (SEP, 27), + 2016: (SEP, 16), + 2017: (SEP, 5), + 2018: (SEP, 24), + 2019: (SEP, 13), + 2020: (SEP, 1), + 2021: (SEP, 20), + 2022: (SEP, 10), + 2023: (SEP, 29), + 2024: (SEP, 17), + 2025: (SEP, 7), + } + DURUTHU_POYA_DATES = { 2003: (JAN, 17), 2004: (JAN, 7), @@ -74,30 +126,56 @@ class _SinhalaLunar: 2025: (JAN, 13), } - NAWAM_POYA_DATES = { - 2003: (FEB, 16), - 2004: (FEB, 5), - 2005: (FEB, 23), - 2006: (FEB, 12), - 2007: (FEB, 1), - 2008: (FEB, 20), - 2009: (FEB, 9), - 2010: (JAN, 29), - 2011: (FEB, 17), - 2012: (FEB, 7), - 2013: (FEB, 25), - 2014: (FEB, 14), - 2015: (FEB, 3), - 2016: (FEB, 22), - 2017: (FEB, 10), - 2018: (JAN, 31), - 2019: (FEB, 19), - 2020: (FEB, 8), - 2021: (FEB, 26), - 2022: (FEB, 16), - 2023: (FEB, 5), - 2024: (FEB, 23), - 2025: (FEB, 12), + ESALA_POYA_DATES = { + 2003: (JUL, 13), + 2004: (JUL, 2), + 2005: (JUL, 21), + 2006: (JUL, 10), + 2007: (JUL, 29), + 2008: (JUL, 17), + 2009: (JUL, 6), + 2010: (JUL, 25), + 2011: (JUL, 14), + 2012: (JUL, 3), + 2013: (JUL, 22), + 2014: (JUL, 12), + 2015: (JUL, 31), + 2016: (JUL, 19), + 2017: (JUL, 8), + 2018: (JUL, 27), + 2019: (JUL, 16), + 2020: (JUL, 4), + 2021: (JUL, 23), + 2022: (JUL, 13), + 2023: (AUG, 1), + 2024: (JUL, 20), + 2025: (JUL, 10), + } + + IL_POYA_DATES = { + 2003: (NOV, 8), + 2004: (NOV, 26), + 2005: (NOV, 15), + 2006: (NOV, 5), + 2007: (NOV, 24), + 2008: (NOV, 12), + 2009: (NOV, 2), + 2010: (NOV, 21), + 2011: (NOV, 10), + 2012: (NOV, 27), + 2013: (NOV, 17), + 2014: (NOV, 6), + 2015: (NOV, 25), + 2016: (NOV, 14), + 2017: (NOV, 3), + 2018: (NOV, 22), + 2019: (NOV, 12), + 2020: (NOV, 29), + 2021: (NOV, 18), + 2022: (NOV, 7), + 2023: (NOV, 26), + 2024: (NOV, 15), + 2025: (NOV, 5), } MEDIN_POYA_DATES = { @@ -126,56 +204,56 @@ class _SinhalaLunar: 2025: (MAR, 13), } - BAK_POYA_DATES = { - 2003: (APR, 16), - 2004: (APR, 5), - 2005: (APR, 23), - 2006: (APR, 13), - 2007: (APR, 2), - 2008: (APR, 19), - 2009: (APR, 9), - 2010: (MAR, 29), - 2011: (APR, 17), - 2012: (APR, 6), - 2013: (APR, 25), - 2014: (APR, 14), - 2015: (APR, 3), - 2016: (APR, 21), - 2017: (APR, 10), - 2018: (MAR, 31), - 2019: (APR, 19), - 2020: (APR, 7), - 2021: (APR, 26), - 2022: (APR, 16), - 2023: (APR, 5), - 2024: (APR, 23), - 2025: (APR, 12), + NAWAM_POYA_DATES = { + 2003: (FEB, 16), + 2004: (FEB, 5), + 2005: (FEB, 23), + 2006: (FEB, 12), + 2007: (FEB, 1), + 2008: (FEB, 20), + 2009: (FEB, 9), + 2010: (JAN, 29), + 2011: (FEB, 17), + 2012: (FEB, 7), + 2013: (FEB, 25), + 2014: (FEB, 14), + 2015: (FEB, 3), + 2016: (FEB, 22), + 2017: (FEB, 10), + 2018: (JAN, 31), + 2019: (FEB, 19), + 2020: (FEB, 8), + 2021: (FEB, 26), + 2022: (FEB, 16), + 2023: (FEB, 5), + 2024: (FEB, 23), + 2025: (FEB, 12), } - VESAK_POYA_DATES = { - 2003: (MAY, 15), - 2004: (MAY, 4), - 2005: (MAY, 23), - 2006: (MAY, 12), - 2007: (MAY, 1), - 2008: (MAY, 19), - 2009: (MAY, 8), - 2010: (MAY, 27), - 2011: (MAY, 17), - 2012: (MAY, 5), - 2013: (MAY, 24), - 2014: (MAY, 14), - 2015: (MAY, 3), - 2016: (MAY, 21), - 2017: (MAY, 10), - 2018: (APR, 29), - 2019: (MAY, 18), - 2020: (MAY, 7), - 2021: (MAY, 26), - 2022: (MAY, 15), - 2023: (MAY, 5), - 2024: (MAY, 23), - 2025: (MAY, 12), + NIKINI_POYA_DATES = { + 2003: (AUG, 11), + 2004: (AUG, 29), + 2005: (AUG, 19), + 2006: (AUG, 9), + 2007: (AUG, 28), + 2008: (AUG, 16), + 2009: (AUG, 5), + 2010: (AUG, 24), + 2011: (AUG, 13), + 2012: (AUG, 1), + 2013: (AUG, 20), + 2014: (AUG, 10), + 2015: (AUG, 29), + 2016: (AUG, 17), + 2017: (AUG, 7), + 2018: (AUG, 25), + 2019: (AUG, 14), + 2020: (AUG, 3), + 2021: (AUG, 22), + 2022: (AUG, 11), + 2023: (AUG, 30), + 2024: (AUG, 19), + 2025: (AUG, 8), } POSON_POYA_DATES = { @@ -204,82 +282,30 @@ class _SinhalaLunar: 2025: (JUN, 10), } - ESALA_POYA_DATES = { - 2003: (JUL, 13), - 2004: (JUL, 2), - 2005: (JUL, 21), - 2006: (JUL, 10), - 2007: (JUL, 29), - 2008: (JUL, 17), - 2009: (JUL, 6), - 2010: (JUL, 25), - 2011: (JUL, 14), - 2012: (JUL, 3), - 2013: (JUL, 22), - 2014: (JUL, 12), - 2015: (JUL, 31), - 2016: (JUL, 19), - 2017: (JUL, 8), - 2018: (JUL, 27), - 2019: (JUL, 16), - 2020: (JUL, 4), - 2021: (JUL, 23), - 2022: (JUL, 13), - 2023: (AUG, 1), - 2024: (JUL, 20), - 2025: (JUL, 10), - } - - NIKINI_POYA_DATES = { - 2003: (AUG, 11), - 2004: (AUG, 29), - 2005: (AUG, 19), - 2006: (AUG, 9), - 2007: (AUG, 28), - 2008: (AUG, 16), - 2009: (AUG, 5), - 2010: (AUG, 24), - 2011: (AUG, 13), - 2012: (AUG, 1), - 2013: (AUG, 20), - 2014: (AUG, 10), - 2015: (AUG, 29), - 2016: (AUG, 17), - 2017: (AUG, 7), - 2018: (AUG, 25), - 2019: (AUG, 14), - 2020: (AUG, 3), - 2021: (AUG, 22), - 2022: (AUG, 11), - 2023: (AUG, 30), - 2024: (AUG, 19), - 2025: (AUG, 8), - } - - BINARA_POYA_DATES = { - 2003: (SEP, 10), - 2004: (SEP, 28), - 2005: (SEP, 17), - 2006: (SEP, 7), - 2007: (SEP, 26), - 2008: (SEP, 14), - 2009: (SEP, 4), - 2010: (SEP, 22), - 2011: (SEP, 11), - 2012: (SEP, 29), - 2013: (SEP, 19), - 2014: (SEP, 8), - 2015: (SEP, 27), - 2016: (SEP, 16), - 2017: (SEP, 5), - 2018: (SEP, 24), - 2019: (SEP, 13), - 2020: (SEP, 1), - 2021: (SEP, 20), - 2022: (SEP, 10), - 2023: (SEP, 29), - 2024: (SEP, 17), - 2025: (SEP, 7), + UNDUVAP_POYA_DATES = { + 2003: (DEC, 8), + 2004: (DEC, 26), + 2005: (DEC, 15), + 2006: (DEC, 4), + 2007: (DEC, 23), + 2008: (DEC, 12), + 2009: (DEC, 1), + 2010: (DEC, 20), + 2011: (DEC, 10), + 2012: (DEC, 27), + 2013: (DEC, 16), + 2014: (DEC, 6), + 2015: (DEC, 24), + 2016: (DEC, 13), + 2017: (DEC, 3), + 2018: (DEC, 22), + 2019: (DEC, 11), + 2020: (DEC, 29), + 2021: (DEC, 18), + 2022: (DEC, 7), + 2023: (DEC, 26), + 2024: (DEC, 14), + 2025: (DEC, 4), } VAP_POYA_DATES = { @@ -308,56 +334,30 @@ class _SinhalaLunar: 2025: (OCT, 6), } - IL_POYA_DATES = { - 2003: (NOV, 8), - 2004: (NOV, 26), - 2005: (NOV, 15), - 2006: (NOV, 5), - 2007: (NOV, 24), - 2008: (NOV, 12), - 2009: (NOV, 2), - 2010: (NOV, 21), - 2011: (NOV, 10), - 2012: (NOV, 27), - 2013: (NOV, 17), - 2014: (NOV, 6), - 2015: (NOV, 25), - 2016: (NOV, 14), - 2017: (NOV, 3), - 2018: (NOV, 22), - 2019: (NOV, 12), - 2020: (NOV, 29), - 2021: (NOV, 18), - 2022: (NOV, 7), - 2023: (NOV, 26), - 2024: (NOV, 15), - 2025: (NOV, 5), - } - - UNDUVAP_POYA_DATES = { - 2003: (DEC, 8), - 2004: (DEC, 26), - 2005: (DEC, 15), - 2006: (DEC, 4), - 2007: (DEC, 23), - 2008: (DEC, 12), - 2009: (DEC, 1), - 2010: (DEC, 20), - 2011: (DEC, 10), - 2012: (DEC, 27), - 2013: (DEC, 16), - 2014: (DEC, 6), - 2015: (DEC, 24), - 2016: (DEC, 13), - 2017: (DEC, 3), - 2018: (DEC, 22), - 2019: (DEC, 11), - 2020: (DEC, 29), - 2021: (DEC, 18), - 2022: (DEC, 7), - 2023: (DEC, 26), - 2024: (DEC, 14), - 2025: (DEC, 4), + VESAK_POYA_DATES = { + 2003: (MAY, 15), + 2004: (MAY, 4), + 2005: (MAY, 23), + 2006: (MAY, 12), + 2007: (MAY, 1), + 2008: (MAY, 19), + 2009: (MAY, 8), + 2010: (MAY, 27), + 2011: (MAY, 17), + 2012: (MAY, 5), + 2013: (MAY, 24), + 2014: (MAY, 14), + 2015: (MAY, 3), + 2016: (MAY, 21), + 2017: (MAY, 10), + 2018: (APR, 29), + 2019: (MAY, 18), + 2020: (MAY, 7), + 2021: (MAY, 26), + 2022: (MAY, 15), + 2023: (MAY, 5), + 2024: (MAY, 23), + 2025: (MAY, 12), } def _get_holiday(self, holiday: str, year: int) -> tuple[Optional[date], bool]: @@ -373,41 +373,41 @@ def _get_holiday_set(self, holiday: str, year: int) -> Iterable[tuple[date, bool for dt in _normalize_tuple(exact_dates.get(year, estimated_dates.get(year, ()))): yield date(year, *dt), year not in exact_dates + def bak_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(BAK_POYA, year) + + def binara_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(BINARA_POYA, year) + def duruthu_poya_date(self, year: int) -> Iterable[tuple[date, bool]]: return self._get_holiday_set(DURUTHU_POYA, year) - def nawam_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(NAWAM_POYA, year) + def esala_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(ESALA_POYA, year) + + def il_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(IL_POYA, year) def medin_poya_date(self, year: int) -> tuple[Optional[date], bool]: return self._get_holiday(MEDIN_POYA, year) - def bak_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(BAK_POYA, year) + def nawam_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(NAWAM_POYA, year) - def vesak_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(VESAK_POYA, year) + def nikini_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(NIKINI_POYA, year) def poson_poya_date(self, year: int) -> tuple[Optional[date], bool]: return self._get_holiday(POSON_POYA, year) - def esala_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(ESALA_POYA, year) - - def nikini_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(NIKINI_POYA, year) - - def binara_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(BINARA_POYA, year) + def unduvap_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(UNDUVAP_POYA, year) def vap_poya_date(self, year: int) -> tuple[Optional[date], bool]: return self._get_holiday(VAP_POYA, year) - def il_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(IL_POYA, year) - - def unduvap_poya_date(self, year: int) -> tuple[Optional[date], bool]: - return self._get_holiday(UNDUVAP_POYA, year) + def vesak_poya_date(self, year: int) -> tuple[Optional[date], bool]: + return self._get_holiday(VESAK_POYA, year) class _CustomSinhalaHolidays(_CustomCalendar, _SinhalaLunar): diff --git a/holidays/countries/sri_lanka.py b/holidays/countries/sri_lanka.py index a8dd7f38f..a3ba0f387 100644 --- a/holidays/countries/sri_lanka.py +++ b/holidays/countries/sri_lanka.py @@ -175,7 +175,7 @@ def _populate_public_holidays(self): # Maha Sivarathri Day. self._add_holiday(tr("මහ සිවරාත්රි දිනය"), maha_sivarathri_date) - # Deepavali was considered a workday in 2003. + # Deepavali was a working day in 2003. if self._year >= 2004: # Deepavali Festival Day. self._add_diwali(tr("දීපවාලි උත්සව දිනය")) @@ -231,7 +231,7 @@ def _populate_public_holidays(self): # Unduvap Full Moon Poya Day. self._add_unduvap_poya(tr("උඳුවප් පුර පසළොස්වක පෝය දිනය")) - # Muslim Holidays. + # Islamic Holidays. # Eid al-Fitr. self._add_eid_al_fitr_day(tr("ඊදුල් ෆීතර්")) @@ -385,23 +385,20 @@ class SriLankaStaticHolidays: - https://web.archive.org/web/20241120204015/https://documents.gov.lk/en/calendar.php """ - # Adhi Vesak Full Mon Poya Day. - adhi_vesak_poya_name = tr("අධි වෙසක් පුර පසළොස්වක පෝය දිනය") - - # Adhi Poson Full Moon Poya Day. - adhi_poson_poya_name = tr("අධි පොසොන් පුර පසළොස්වක පෝය දිනය") + # Adhi Binara Full Moon Poya Day. + adhi_binara_poya_name = tr("අධි බිනර පුර පසළොස්වක පෝය දිනය") # Adhi Esala Full Moon Poya Day. adhi_esala_poya_name = tr("අධි ඇසල පුර පසළොස්වක පෝය දිනය") - # Adhi Binara Full Moon Poya Day. - adhi_binara_poya_name = tr("අධි බිනර පුර පසළොස්වක පෝය දිනය") + # Adhi Poson Full Moon Poya Day. + adhi_poson_poya_name = tr("අධි පොසොන් පුර පසළොස්වක පෝය දිනය") # Adhi Vap Full Moon Poya Day. adhi_vap_poya_name = tr("අධි වප් පුර පසළොස්වක පෝය දිනය") - # Special Bank Holiday. - special_bank_holiday_name = tr("විශේෂ බැංකු නිවාඩු දිනය") + # Adhi Vesak Full Mon Poya Day. + adhi_vesak_poya_name = tr("අධි වෙසක් පුර පසළොස්වක පෝය දිනය") # Half-Day Special Bank Holiday. half_day_special_bank_holiday_name = tr("දින භාගයක විශේෂ බැංකු නිවාඩු දිනය") @@ -409,41 +406,12 @@ class SriLankaStaticHolidays: # Public Sector Holiday. public_sector_holiday_name = tr("රාජ්ය අංශයේ නිවාඩු දිනය") + # Special Bank Holiday. + special_bank_holiday_name = tr("විශේෂ බැංකු නිවාඩු දිනය") + # Special Public Holiday. special_public_holiday_name = tr("විශේෂ රජයේ නිවාඩු දිනය") - special_public_holidays = { - 2004: (JUL, 31, adhi_esala_poya_name), - 2007: (MAY, 31, adhi_poson_poya_name), - 2010: (APR, 28, adhi_vesak_poya_name), - # 2011, MAY 2 confirmed as not getting upgrade to Special Public Holiday. - 2012: ( - (MAY, 7, special_public_holiday_name), - (AUG, 31, adhi_binara_poya_name), - ), - 2013: (APR, 15, special_public_holiday_name), - 2015: (JUL, 1, adhi_esala_poya_name), - 2016: (APR, 15, special_public_holiday_name), - 2018: (MAY, 29, adhi_poson_poya_name), - 2019: (MAY, 20, special_public_holiday_name), - 2020: ( - (MAR, 16, special_public_holiday_name), - (MAR, 17, special_public_holiday_name), - (MAR, 18, special_public_holiday_name), - (MAR, 19, special_public_holiday_name), - (OCT, 1, adhi_vap_poya_name), - ), - 2022: ( - (APR, 11, special_public_holiday_name), - (APR, 12, special_public_holiday_name), - (MAY, 2, special_public_holiday_name), - ), - 2023: (JUL, 3, adhi_esala_poya_name), - 2024: ( - (APR, 15, special_public_holiday_name), - (SEP, 29, special_public_holiday_name), - ), - } special_bank_holidays = { 2005: ( (MAY, 2, special_bank_holiday_name), @@ -493,6 +461,7 @@ class SriLankaStaticHolidays: 2023: (JAN, 16, special_bank_holiday_name), 2025: (APR, 15, special_bank_holiday_name), } + special_government_holidays = { 2020: (JUN, 4, public_sector_holiday_name), 2022: ( @@ -507,5 +476,40 @@ class SriLankaStaticHolidays: (JUL, 29, public_sector_holiday_name), ), } - # Deepavali Festival Day. - special_workday_holidays = {2003: (OCT, 24, tr("දීපවාලි උත්සව දිනය"))} + + special_public_holidays = { + 2004: (JUL, 31, adhi_esala_poya_name), + 2007: (MAY, 31, adhi_poson_poya_name), + 2010: (APR, 28, adhi_vesak_poya_name), + # 2011, MAY 2 confirmed as not getting upgrade to Special Public Holiday. + 2012: ( + (MAY, 7, special_public_holiday_name), + (AUG, 31, adhi_binara_poya_name), + ), + 2013: (APR, 15, special_public_holiday_name), + 2015: (JUL, 1, adhi_esala_poya_name), + 2016: (APR, 15, special_public_holiday_name), + 2018: (MAY, 29, adhi_poson_poya_name), + 2019: (MAY, 20, special_public_holiday_name), + 2020: ( + (MAR, 16, special_public_holiday_name), + (MAR, 17, special_public_holiday_name), + (MAR, 18, special_public_holiday_name), + (MAR, 19, special_public_holiday_name), + (OCT, 1, adhi_vap_poya_name), + ), + 2022: ( + (APR, 11, special_public_holiday_name), + (APR, 12, special_public_holiday_name), + (MAY, 2, special_public_holiday_name), + ), + 2023: (JUL, 3, adhi_esala_poya_name), + 2024: ( + (APR, 15, special_public_holiday_name), + (SEP, 29, special_public_holiday_name), + ), + } + + special_workday_holidays = { + 2003: (OCT, 24, tr("දීපවාලි උත්සව දිනය")), # Deepavali Festival Day. + } diff --git a/holidays/groups/sinhala.py b/holidays/groups/sinhala.py index 7982d1b84..6a3abafb0 100644 --- a/holidays/groups/sinhala.py +++ b/holidays/groups/sinhala.py @@ -22,7 +22,7 @@ class SinhalaCalendarHolidays(EasternCalendarHolidays): """ Sinhala holidays. - Their Buddhist Uposatha day calculation method is different from Thai LuniSolar + Sinhala Buddhist Uposatha day calculation method is different from Thai LuniSolar and Buddhist (Mahayana) used in East Asia. Due to the fact that Poya (Uposatha) days are calculated astronomically @@ -50,93 +50,93 @@ def _add_sinhala_calendar_holiday( ) def _add_sinhala_calendar_holiday_set( - self, name: str, dates: Iterable[tuple[date, bool]], days_delta: int = 0 + self, name: str, dts_estimated: Iterable[tuple[date, bool]], days_delta: int = 0 ) -> set[date]: """ - Add Sinhala calendar holiday. + Add Sinhala calendar holidays. Adds customizable estimation label to holiday name if holiday date is an estimation. """ added_dates = set() - for dts in dates: + for dt_estimated in dts_estimated: if dt := self._add_eastern_calendar_holiday( - name, dts, self._sinhala_calendar_show_estimated, days_delta=days_delta + name, dt_estimated, self._sinhala_calendar_show_estimated, days_delta=days_delta ): added_dates.add(dt) return added_dates - def _add_duruthu_poya(self, name) -> set[date]: + def _add_bak_poya(self, name) -> Optional[date]: """ - Add Duruthu Poya (first full moon day of the 2nd lunar month). + Add Bak Poya (first full moon day of the 5th lunar month). - https://us.lakpura.com/pages/duruthu-poya + https://us.lakpura.com/pages/bak-poya """ - return self._add_sinhala_calendar_holiday_set( - name, self._sinhala_calendar.duruthu_poya_date(self._year) + return self._add_sinhala_calendar_holiday( + name, self._sinhala_calendar.bak_poya_date(self._year) ) - def _add_nawam_poya(self, name) -> Optional[date]: + def _add_binara_poya(self, name) -> Optional[date]: """ - Add Nawam Poya (first full moon day of the 3rd lunar month). + Add Binara Poya (first full moon day of the 10th lunar month). - Also known as "Navam Poya" and "Magha Puja". - https://us.lakpura.com/pages/navam-poya + https://us.lakpura.com/pages/binara-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.nawam_poya_date(self._year) + name, self._sinhala_calendar.binara_poya_date(self._year) ) - def _add_medin_poya(self, name) -> Optional[date]: + def _add_duruthu_poya(self, name) -> set[date]: """ - Add Medin Poya (first full moon day of the 4th lunar month). + Add Duruthu Poya (first full moon day of the 2nd lunar month). - https://us.lakpura.com/pages/medin-poya + https://us.lakpura.com/pages/duruthu-poya """ - return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.medin_poya_date(self._year) + return self._add_sinhala_calendar_holiday_set( + name, self._sinhala_calendar.duruthu_poya_date(self._year) ) - def _add_bak_poya(self, name) -> Optional[date]: + def _add_esala_poya(self, name) -> Optional[date]: """ - Add Bak Poya (first full moon day of the 5th lunar month). + Add Esala Poya (first full moon day of the 8th lunar month). - https://us.lakpura.com/pages/bak-poya + https://us.lakpura.com/pages/esala-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.bak_poya_date(self._year) + name, self._sinhala_calendar.esala_poya_date(self._year) ) - def _add_vesak_poya(self, name) -> Optional[date]: + def _add_il_poya(self, name) -> Optional[date]: """ - Add Vesak Poya (first full moon day of the 6th lunar month). + Add Il Poya (first full moon day of the 12th lunar month). - Also known as "Wesak Poya". - https://us.lakpura.com/pages/vesak + Also known as "Ill Poya" + https://us.lakpura.com/pages/il-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.vesak_poya_date(self._year) + name, self._sinhala_calendar.il_poya_date(self._year) ) - def _add_poson_poya(self, name) -> Optional[date]: + def _add_medin_poya(self, name) -> Optional[date]: """ - Add Poson Poya (first full moon day of the 7th lunar month). + Add Medin Poya (first full moon day of the 4th lunar month). - https://us.lakpura.com/pages/poson + https://us.lakpura.com/pages/medin-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.poson_poya_date(self._year) + name, self._sinhala_calendar.medin_poya_date(self._year) ) - def _add_esala_poya(self, name) -> Optional[date]: + def _add_nawam_poya(self, name) -> Optional[date]: """ - Add Esala Poya (first full moon day of the 8th lunar month). + Add Nawam Poya (first full moon day of the 3rd lunar month). - https://us.lakpura.com/pages/esala-poya + Also known as "Navam Poya" and "Magha Puja". + https://us.lakpura.com/pages/navam-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.esala_poya_date(self._year) + name, self._sinhala_calendar.nawam_poya_date(self._year) ) def _add_nikini_poya(self, name) -> Optional[date]: @@ -149,44 +149,44 @@ def _add_nikini_poya(self, name) -> Optional[date]: name, self._sinhala_calendar.nikini_poya_date(self._year) ) - def _add_binara_poya(self, name) -> Optional[date]: + def _add_poson_poya(self, name) -> Optional[date]: """ - Add Binara Poya (first full moon day of the 10th lunar month). + Add Poson Poya (first full moon day of the 7th lunar month). - https://us.lakpura.com/pages/binara-poya + https://us.lakpura.com/pages/poson """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.binara_poya_date(self._year) + name, self._sinhala_calendar.poson_poya_date(self._year) ) - def _add_vap_poya(self, name) -> Optional[date]: + def _add_unduvap_poya(self, name) -> Optional[date]: """ - Add Vap Poya (first full moon day of the 11th lunar month). + Add Unduvap Poya (first full moon day of the 1st lunar month). - https://us.lakpura.com/pages/vap-poya + Also known as "Undawap Poya". + https://us.lakpura.com/pages/unduvap-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.vap_poya_date(self._year) + name, self._sinhala_calendar.unduvap_poya_date(self._year) ) - def _add_il_poya(self, name) -> Optional[date]: + def _add_vap_poya(self, name) -> Optional[date]: """ - Add Il Poya (first full moon day of the 12th lunar month). + Add Vap Poya (first full moon day of the 11th lunar month). - Also known as "Ill Poya" - https://us.lakpura.com/pages/il-poya + https://us.lakpura.com/pages/vap-poya """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.il_poya_date(self._year) + name, self._sinhala_calendar.vap_poya_date(self._year) ) - def _add_unduvap_poya(self, name) -> Optional[date]: + def _add_vesak_poya(self, name) -> Optional[date]: """ - Add Unduvap Poya (first full moon day of the 1st lunar month). + Add Vesak Poya (first full moon day of the 6th lunar month). - Also known as "Undawap Poya". - https://us.lakpura.com/pages/unduvap-poya + Also known as "Wesak Poya". + https://us.lakpura.com/pages/vesak """ return self._add_sinhala_calendar_holiday( - name, self._sinhala_calendar.unduvap_poya_date(self._year) + name, self._sinhala_calendar.vesak_poya_date(self._year) )