
    ih#                     P   d dl m Z d dlmZmZmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ  G d deeeeeeee
      Z G d d	e      Z  G d
 de      Z! G d de      Z" G d de      Z# G d de      Z$ G d de      Z% G d d      Z&y)    )gettext)_CustomBuddhistHolidays_CustomChineseHolidays_CustomIslamicHolidays_CustomHinduHolidays)JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC)BuddhistCalendarHolidaysChineseCalendarHolidaysChristianHolidaysHinduCalendarHolidaysInternationalHolidaysIslamicHolidaysStaticHolidays)ObservedHolidayBaseSUN_TO_NEXT_WORKDAYc                   r     e Zd ZdZdZ ed      ZdZ ed      Z ed      Z	dZ
dd	d
ef fdZddZ xZS )	Singaporea  Singapore holidays.

    References:
        * [Wikipedia](https://en.wikipedia.org/wiki/Public_holidays_in_Singapore)
        * [Holidays Act 1998](https://web.archive.org/web/20250405061431/https://sso.agc.gov.sg/Act/HA1998)
        * [Ministry of Manpower](https://web.archive.org/web/20250616105633/https://mom.gov.sg/employment-practices/public-holidays)

    Limitations:
        * Prior to 1969: holidays are estimated.
        * Prior to 2000: holidays may not be accurate.
        * 2024 and later: the following four moving date holidays (whose exact
            date is announced yearly) are estimated, and so denoted:
            * Hari Raya Puasa
            * Hari Raya Haji
            * Vesak Day
            * Deepavali
    SGz%s (estimated)en_SGz%s (observed, estimated)z%s (observed))r    en_USthT)islamic_show_estimatedr#   c                   t        j                  | t        d       t        j                  | t        d       t        j                  |        t        j                  | t               t        j                  |        t        j                  | t        |       t        j                  | t               |j                  dt               |j                  dd       t        |   |i | y)z
        Args:
            islamic_show_estimated:
                Whether to add "estimated" label to Islamic holidays name
                if holiday date is estimated.
        T)clsshow_estimated)r%   observed_ruleobserved_sincei  N)r   __init__SingaporeBuddhistHolidaysr   SingaporeChineseHolidaysr   r   SingaporeHinduHolidaysr   r   SingaporeIslamicHolidaysr   SingaporeStaticHolidays
setdefaultr   super)selfr#   argskwargs	__class__s       \/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/singapore.pyr)   zSingapore.__init__H   s     	!))$4M^bc((3K\`a""4(&&t1GH&&t,  .?U	
 	*AB
 	/+>?*D1$)&)    c                    t               }|j                  | j                  t        d                   t        d      }|j                  | j	                  |             |j                  | j                  |             |j                  | j                  t        d                   | j                  dk  r| j                  t        d             |j                  | j                  t        d                   | j                  t        d             | j                  dk  r4| j                  t        d             | j                  t        d	             |j                  | j                  t        d
                   |j                  | j                  t        d                   |j                  | j!                  t        d                   |j                  | j#                  t        d                   |j                  | j%                  t        d                   | j                  dk  r| j'                  t        d             | j(                  r| j+                  |       y y )NzNew Year's DayzChinese New YearzHari Raya Puasai  zSecond Day of Hari Raya PuasaHari Raya HajizGood FridayzHoly SaturdayzEaster Mondayz
Labour Dayz	Vesak DayzNational Day	DeepavalizChristmas Dayz
Boxing Day)setadd_add_new_years_daytr_add_chinese_new_years_day_add_chinese_new_years_day_twoupdate_add_eid_al_fitr_day_year_add_eid_al_fitr_day_two_add_eid_al_adha_day_add_good_friday_add_holy_saturday_add_easter_monday_add_labor_day
_add_vesak_add_holiday_aug_9_add_diwali_add_christmas_day_add_christmas_day_twoobserved_populate_observed)r1   dts_observednames      r5   _populate_public_holidaysz#Singapore._populate_public_holidays`   s   u 	004D1EFG $%88>?<<TBC 	D55b9J6KLM::))"-L*MN 	D55b9I6JKL 	b/0::##B$78 ##B$78 	,,R-=>? 	K9: 	00N1CDE 	))"[/:; 	00O1DEF::''<(89==##L1 r6   )returnN)__name__
__module____qualname____doc__countryr=   estimated_labeldefault_languageobserved_estimated_labelobserved_labelsupported_languagesboolr)   rR   __classcell__)r4   s   @r5   r   r   "   sP    $ G)*O!"<=(N2=A *d *022r6   r   c                       e Zd Zy)r   NrT   rU   rV    r6   r5   r   r          r6   r   c                       e Zd Zy)SGPNra   rb   r6   r5   re   re      rc   r6   re   c                       e Zd Zi dedfdedfdedfdedfd	ed
fdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfded fd!ed"fed#fedfedfedfedfedfed
fedfedfd$	Zy%)&r*                                             	                                        
      	      i            N)rT   rU   rV   r   r   VESAK_DATESrb   r6   r5   r*   r*      s[   sAhsBi 	sBi 	sAh	
 	sBi 	sBi 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh  	sBi!" 	sBi#$ BiBiAhBiBiAhBiBiBi5Kr6   r*   c                   "    e Zd ZdZedfedfdZy)r+   rg   r      rv   )rq   rs   N)rT   rU   rV   $LUNAR_NEW_YEAR_DATES_CONFIRMED_YEARSr   r	   LUNAR_NEW_YEAR_DATESrb   r6   r5   r+   r+      s    +7(BiBir6   r+   c                       e Zd Zi dedfdedfdedfdedfd	ed
fdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfded fd!ed"fed#fedfedfed$fed%fed&fed'fed(fedfd)	Zy*)+r,   rg      ri      rk      rm      ro   r   rq   r   rs      ru      rw   rl   ry   r~   r{   rj   r}   r   r   rn   r   rp   r   r   r   r   r            r   rr   rt      r   N)rT   rU   rV   r   r   DIWALI_DATESrb   r6   r5   r,   r,      s[   sBisAh 	sBi 	sBi	
 	sAh 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi  	sBi!" 	sBi#$ AhBiBiAhBiBiBiBiAh5Lr6   r,   c                       e Zd ZdZedfedfedfedfedfedfedfe	dfe
d	fed
fedfedfdZdZedfedfedfedfedfedfedfdZy)r-   r   r   r   rr   r|   r~   r   rp   r   r   rh   )rg   ri   rk   ry   r   r   r   r   r   r   r   r   r   rt   r   )ri   rq   r   r   r   r   r   N)rT   rU   rV   !EID_AL_ADHA_DATES_CONFIRMED_YEARSr
   r	   r   r   r   r   r   r   EID_AL_ADHA_DATES!EID_AL_FITR_DATES_CONFIRMED_YEARSr   r   r   EID_AL_FITR_DATESrb   r6   r5   r-   r-      s    (4%AhBiBiBiAhBiBiBiBiBiBiAh )5%AhBiAhAhBiBiBir6   r-   c            	           e Zd ZdZ ed      Zedefedefedefed ed      fe	deffe
defe	d	efedefd
Zded ed      fiZy)r.   a  Singapore special holidays.

    References:
        * <https://web.archive.org/web/20241015024728/https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015>
        * <https://web.archive.org/web/20240809195048/https://www.mom.gov.sg/newsroom/press-releases/2020/0624-public-holiday-on-polling-day---10-july-2020>
        * <https://web.archive.org/web/20241113193000/https://www.mom.gov.sg/newsroom/press-releases/2023/0822-public-holiday-on-polling-day---1-sep-2023>
        * <https://web.archive.org/web/20250424145037/https://www.mom.gov.sg/newsroom/press-releases/2025/0415-public-holiday-on-polling-day_3-may-2025>
    zPolling Dayr   r   rh   zSG50 Public Holidayr   r   r   )rg   rq   r{   r   r   r   r   rs   rn   r8   N)rT   rU   rV   rW   r=   polling_day_namer   r   r   r   r   special_public_holidaysr    special_public_holidays_observedrb   r6   r5   r.   r.     s     -( A'(A'(A'( !R-./"&'

 B()A'(A'(  	sAr*+,($r6   r.   N)'r   r=   holidays.calendarsr   r   r   r   holidays.calendars.gregorianr   r	   r
   r   r   r   r   r   r   r   r   r   holidays.groupsr   r   r   r   r   r   r   holidays.observed_holiday_baser   r   r   r   re   r*   r+   r,   r-   r.   rb   r6   r5   <module>r      s    "  d c c c   Tp2p2f	 		) 	 7 >5 1 @5 : r6   