
    !g%                     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                   B     e Zd ZdZdZ ed      ZdZ fdZddZ	 xZ
S )	SingaporeSGen_SGz%s (observed))r    en_USthc                    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)u  
        A subclass of :py:class:`HolidayBase` representing public holidays in
        Singapore.

        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

        Sources:

        - `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>`__

        References:

        - `Wikipedia
          <https://en.wikipedia.org/wiki/Public_holidays_in_Singapore>`__

        Country created and maintained by: `Mike Borsetti
        <https://github.com/mborsetti>`__

        See parameters and usage in :py:class:`HolidayBase`.
        T)clsshow_estimated)r$   observed_ruleobserved_sincei  N)r   __init__SingaporeBuddhistHolidaysr   SingaporeChineseHolidaysr   r   SingaporeHinduHolidaysr   r   SingaporeIslamicHolidaysr   SingaporeStaticHolidays
setdefaultr   super)selfargskwargs	__class__s      Y/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/countries/singapore.pyr(   zSingapore.__init__2   s    D 	!))$4M^bc((3K\`a""4(&&t1GH&&t,  +CD*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)r0   dts_observednames      r4   _populate_public_holidaysz#Singapore._populate_public_holidaysc   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 r5   )returnN)__name__
__module____qualname__countrydefault_languager<   observed_labelsupported_languagesr(   rQ   __classcell__)r3   s   @r4   r   r   "   s+     G(N2/*b22r5   r   c                       e Zd Zy)r   NrS   rT   rU    r5   r4   r   r          r5   r   c                       e Zd Zy)SGPNr\   r]   r5   r4   r`   r`      r^   r5   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)                                             	                                        
      i  i    i  i    i  i  N)rS   rT   rU   r   r   VESAK_DATESr]   r5   r4   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Kr5   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*   rb   r{   rd   rm   rf   r   rh   rk   rj   rs   rl      rn   rq   rp   rc   rr   re   rt      rv      rx      rz   r   r|   ro   r~   r      r   ru      ry      r   r   N)rS   rT   rU   r   r	   LUNAR_NEW_YEAR_DATESr]   r5   r4   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r5   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+   rb   r   rd   r   rf   r   rh      rj   r   rl   r   rn   r   rp      rr   rg   rt   ry   rv   re   rx   r}   rz   ri   r|   rk   r~   r   r   r   r            r{   rm   ro      r   N)rS   rT   rU   r   r   DIWALI_DATESr]   r5   r4   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Lr5   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,   rb   r   rd   r   rf   rm   rh   r   rj   r   rl   r   ro   rn   r   rp   r   rr   r   rt   rw   rv   rx   re   rz   rg   r|   ry   r~   r{   r   r   rk   r   r   rc   r   r   r   r   r   r}   r   rq   ru   N)rS   rT   rU   r
   r	   r   r   r   r   r   r   r   r   EID_AL_ADHA_DATESr   r   EID_AL_FITR_DATESr]   r5   r4   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r5   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d
Zded ed      fiZy)r-   z
    References
     - https://www.mom.gov.sg/newsroom/press-releases/2015/sg50-public-holiday-on-7-august-2015
     - https://www.straitstimes.com/singapore/politics/singapore-presidential-election-2023-polling-day-on-sept-1-nomination-day-on-aug-22
    zPolling Dayr   r   rc   zSG50 Public Holidayr   r   r   )rb   rl   rv   r~   r   r   rn   ri   r7   N)rS   rT   rU   __doc__r<   polling_day_namer   r   r   r   r   special_public_holidaysr    special_public_holidays_observedr]   r5   r4   r-   r-   7  s     -( A'(A'(A'( !R-./"&'

 B()A'( 	sAr*+,($r5   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   r`   r)   r*   r+   r,   r-   r]   r5   r4   <module>r      s    "  d c c c   Ts2s2l	 		) 	 7 <5 <1 >95 9x r5   