
    x7#h&                     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                   N     e Zd ZdZdZdZ ed      ZdZd	de	f fdZ
d
dZ xZS )	Singaporeu  Singapore holidays.

    References:
        * [Wikipedia](https://en.wikipedia.org/wiki/Public_holidays_in_Singapore)
        * [Holidays Act](https://sso.agc.gov.sg/Act/HA1998) (Act 24 of
            1968—Holidays (Amendment) Act 1968)
        * [Ministry of Manpower](https://www.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
    SGen_SGz%s (observed))r    en_USthislamic_show_estimatedc                    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_getwork_v1/lib/python3.12/site-packages/holidays/countries/singapore.pyr)   zSingapore.__init__E   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   )T)returnN)__name__
__module____qualname____doc__countrydefault_languager=   observed_labelsupported_languagesboolr)   rR   __classcell__)r4   s   @r5   r   r   "   s6    & G(N2*t *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)SGPNr_   r`   r6   r5   rc   rc      ra   r6   rc   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d$Zy%)&r*                                             	                                        
      i  i    i  i    i    N)rT   rU   rV   r   r   VESAK_DATESr`   r6   r5   r*   r*      sT   sAhsBi 	sBi 	sAh	
 	sBi 	sBi 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh  	sBi!" 	sBi#$ BiBiAhBiBiAhBiBi3Kr6   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d&Zy')(r+   re   r~   rg   rp   ri   r   rk   rn   rm   rv   ro      rq   rt   rs   rf   ru   rh   rw      ry      r{      r}   r   r   rr   r   r      r   rx      r|      r   r   N)rT   rU   rV   r   r	   LUNAR_NEW_YEAR_DATESr`   r6   r5   r+   r+      sU   sBisBi 	sAh 	sBi	
 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sBi 	sBi  	sAh!" 	sBi#$ BiAhBiBiAhBiBiBi3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d)Zy*)+r,   re   r   rg   r   ri   r   rk      rm   r   ro   r   rq   r   rs      ru   rj   rw   r|   ry   rh   r{   r   r}   rl   r   rn   r   r   r   r   r            r~   rp   rr      r   N)rT   rU   rV   r   r   DIWALI_DATESr`   r6   r5   r,   r,      sT   sBisAh 	sBi 	sBi	
 	sAh 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi  	sBi!" 	sBi#$ AhBiBiAhBiBiBiBi3Lr6   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edf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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d%Zy.)/r-   re   r   rg   r   ri   rp   rk   r   rm   r   ro   r   rr   rq   r   rs   r   ru   r   rw   rz   ry   r{   rh   r}   rj   r   r|   r   r~   r   r   rn   r   r   rf   r   r   r   r   r   r   r   rt   rx   N)rT   rU   rV   r
   r	   r   r   r   r   r   r   r   r   EID_AL_ADHA_DATESr   r   EID_AL_FITR_DATESr`   r6   r5   r-   r-      s   sAhsBi 	sBi 	sAh	
 	sBi 	Ry3)$ 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sAh 	sBi  	sBi!" 	sAh#$ BiBiBiBiBiBiBiAh3:sBisAh 	sBi 	sBi	
 	sAh 	sBi 	sBi 	sAh 	sBi 	sBi 	sBi 	sBi 	sAh 	sBi 	sBi  	sAh!" 	sBi#$ BiAhBiBiAhBiBiBi3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://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015>
        * <https://www.mom.gov.sg/newsroom/press-releases/2020/0624-public-holiday-on-polling-day---10-july-2020>
        * <https://www.mom.gov.sg/newsroom/press-releases/2023/0822-public-holiday-on-polling-day---1-sep-2023>
        * <https://www.mom.gov.sg/newsroom/press-releases/2025/0415-public-holiday-on-polling-day_3-may-2025>
    zPolling Dayr   r   rf   zSG50 Public Holidayr   r   r   )re   ro   ry   r   r   r   r   rq   rl   r8   N)rT   rU   rV   rW   r=   polling_day_namer   r   r   r   r   special_public_holidaysr    special_public_holidays_observedr`   r6   r5   r.   r.   1  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   rc   r*   r+   r,   r-   r.   r`   r6   r5   <module>r      s    "  d c c c   Tm2m2`	 		) 	 7 <5 <1 >95 9x r6   