
    !g?                         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
 d dlmZmZ d dlmZmZmZmZ  G d deee      Z G d d	e      Z G d
 de      Zy)    )gettext)APRTHU
_timedelta_get_nth_weekday_of_month)HALF_DAYOPTIONALPUBLIC)ChristianHolidaysInternationalHolidays)ObservedHolidayBaseMON_ONLYTUE_TO_NONESAT_TO_NONEc                   $    e Zd ZdZdZdZdZeee	fZ
dZdZ fdZd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d  Z&d! Z'd" Z(d# Z)d$ Z*d% Z+d& Z,d' Z-d( Z.d) Z/d* Z0d+ Z1d, Z2d- Z3 xZ4S ).Switzerlanda  
    References:
        - https://www.bj.admin.ch/dam/bj/de/data/publiservice/service/zivilprozessrecht/kant-feiertage.pdf
        - https://de.wikipedia.org/wiki/Feiertage_in_der_Schweiz
        - https://en.wikipedia.org/wiki/Public_holidays_in_Switzerland
    CHde)AGAIARBLBSBEFRGEGLGRJULUNENWOWSGSHSZSOTGTIURVDVSZGZH)r   en_USfrituki	  c                 x    t        j                  |        t        j                  |        t        |   |i | y )N)r   __init__r   super)selfargskwargs	__class__s      [/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/countries/switzerland.pyr4   zSwitzerland.__init__?   s1    ""4(&&t,$)&)    c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y )NNeujahrstagAuffahrtNationalfeiertagWeihnachten)_add_new_years_daytr_add_ascension_thursday_add_holiday_aug_1_add_christmas_dayr6   s    r:   _populate_public_holidaysz%Switzerland._populate_public_holidaysD   sT    = 12 	$$R
^4 	#5 67 	= 12r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  t        d
             y )NBerchtoldstag
KarfreitagOstermontagTag der ArbeitPfingstmontagFronleichnam   Mariä HimmelfahrtAllerheiligen   Mariä EmpfängnisStephanstag)_add_new_years_day_tworB   _add_good_friday_add_easter_monday_add_labor_day_add_whit_monday_add_corpus_christi_day_add_assumption_of_mary_day_add_all_saints_day_add_immaculate_conception_day_add_christmas_day_tworF   s    r:   #_populate_subdiv_ag_public_holidaysz/Switzerland._populate_subdiv_ag_public_holidaysQ   s    ##B$78 	b./ 	= 12 	B/01 	b12 	$$R%78 	((,@)AB 	  O!45 	++B/C,DE 	##B}$56r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  | j                  t        d            t        t        z          y )NrJ   rK   rM   rR   rule)rT   rB   rU   rW   _add_observedr\   r   r   rF   s    r:   #_populate_subdiv_ar_public_holidaysz/Switzerland._populate_subdiv_ar_public_holidaysp   sh    b./= 12b12''=(9:{AZ 	 	
r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  | j                  t        d            t        t        z   	       y )
NrJ   rK   rM   rN   rO   rP   rQ   rR   r_   )rT   rB   rU   rW   rX   rY   rZ   r[   ra   r\   r   r   rF   s    r:   #_populate_subdiv_ai_public_holidaysz/Switzerland._populate_subdiv_ai_public_holidays{   s    b./= 12b12$$R%78((,@)AB  O!45++B/C,DE''=(9:{AZ 	 	
r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y NrJ   rK   rL   rM   rR   rT   rB   rU   rV   rW   r\   rF   s    r:   #_populate_subdiv_bl_public_holidaysz/Switzerland._populate_subdiv_bl_public_holidays   b    b./= 12B/01b12##B}$56r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y rf   rg   rF   s    r:   #_populate_subdiv_bs_public_holidaysz/Switzerland._populate_subdiv_bs_public_holidays   ri   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )NrI   rJ   rK   rM   rR   )rS   rB   rT   rU   rW   r\   rF   s    r:   #_populate_subdiv_be_public_holidaysz/Switzerland._populate_subdiv_be_public_holidays   sa    ##B$78b./= 12b12##B}$56r;   c                 8    | j                  t        d             y NrJ   rT   rB   rF   s    r:   #_populate_subdiv_fr_public_holidaysz/Switzerland._populate_subdiv_fr_public_holidays       b./r;   c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y NrI   rK   rM   rR   rS   rB   rU   rW   r\   rF   s    r:   %_populate_subdiv_fr_optional_holidaysz1Switzerland._populate_subdiv_fr_optional_holidays   N    ##B$78= 12b12##B}$56r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )NrJ   rK   rM   zGenfer BettagzWiederherstellung der Republik)rT   rB   rU   rW   '_add_holiday_4_days_past_1st_sun_of_sep_add_holiday_dec_31rF   s    r:   #_populate_subdiv_ge_public_holidaysz/Switzerland._populate_subdiv_ge_public_holidays   sf    b./= 12b12 	44R5HI 	  $D!EFr;   c                    | j                   dk\  r`t        dt        t        | j                         }| j	                  t        d      |t        | j                  d      k(  rt        |d      n|       | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  t        d
             y )Ni+     u   Näfelser Fahrt   rJ   rK   rM   rP   rR   )_yearr   r   r   _add_holidayrB   r   _easter_sundayrT   rU   rW   rZ   r\   )r6   dts     r:   #_populate_subdiv_gl_public_holidaysz/Switzerland._populate_subdiv_gl_public_holidays   s    ::*1c3

CB$%&(Jt7J7JB,O&O
2r"UW 	b./= 12b12  O!45##B}$56r;   c                 8    | j                  t        d             y NrI   rS   rB   rF   s    r:   %_populate_subdiv_gl_optional_holidaysz1Switzerland._populate_subdiv_gl_optional_holidays       ##B$78r;   c                     | j                  t        d             | j                  t        d             | j                  t        d             y )NrK   rM   rR   )rU   rB   rW   r\   rF   s    r:   #_populate_subdiv_gr_public_holidaysz/Switzerland._populate_subdiv_gr_public_holidays   s;    = 12b12##B}$56r;   c                 8    | j                  t        d             y ro   rp   rF   s    r:   %_populate_subdiv_gr_optional_holidaysz1Switzerland._populate_subdiv_gr_optional_holidays   rr   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             y )
NrI   rJ   rK   rL   rM   rN   u   Fest der UnabhängigkeitrO   rP   )
rS   rB   rT   rU   rV   rW   rX   _add_holiday_jun_23rY   rZ   rF   s    r:   #_populate_subdiv_ju_public_holidaysz/Switzerland._populate_subdiv_ju_public_holidays   s    ##B$78b./= 12B/01b12$$R%78 	  $>!?@((,@)AB  O!45r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             y )
NrI   rJ   rK   rM   rN   rO   rP   rQ   rR   )
rS   rB   rT   rU   rW   rX   rY   rZ   r[   r\   rF   s    r:   #_populate_subdiv_lu_public_holidaysz/Switzerland._populate_subdiv_lu_public_holidays   s    ##B$78b./= 12b12$$R%78((,@)AB  O!45++B/C,DE##B}$56r;   c                    | j                  | j                  t        d            t               | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  | j                  t        d            t               y )NrI   r_   z$Jahrestag der Ausrufung der RepublikrJ   rL   rN   rR   )	ra   rS   rB   r   _add_holiday_mar_1rT   rV   rX   r\   rF   s    r:   #_populate_subdiv_ne_public_holidaysz/Switzerland._populate_subdiv_ne_public_holidays  s    ''?(;< 	 	
 	#I JKb./B/01$$R%78466r-7HIPXYr;   c                 <   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             y )N	JosefstagrJ   rN   rO   rP   rQ   )_add_saint_josephs_dayrB   rT   rX   rY   rZ   r[   rF   s    r:   #_populate_subdiv_nw_public_holidaysz/Switzerland._populate_subdiv_nw_public_holidays!  su    ##B{O4b./$$R%78((,@)AB  O!45++B/C,DEr;   c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y rt   ru   rF   s    r:   %_populate_subdiv_nw_optional_holidaysz1Switzerland._populate_subdiv_nw_optional_holidays/  rw   r;   c                 <   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             y )NrJ   rN   rO   zBruder KlausrP   rQ   )rT   rB   rX   rY   _add_holiday_sep_25rZ   r[   rF   s    r:   #_populate_subdiv_ow_public_holidaysz/Switzerland._populate_subdiv_ow_public_holidays8  sx    b./$$R%78((,@)AB 	  N!34  O!45++B/C,DEr;   c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y rt   ru   rF   s    r:   %_populate_subdiv_ow_optional_holidaysz1Switzerland._populate_subdiv_ow_optional_holidaysF  rw   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )NrJ   rK   rM   rP   rR   )rT   rB   rU   rW   rZ   r\   rF   s    r:   #_populate_subdiv_sg_public_holidaysz/Switzerland._populate_subdiv_sg_public_holidaysO  sa    b./= 12b12  O!45##B}$56r;   c                 8    | j                  t        d             y r   r   rF   s    r:   %_populate_subdiv_sg_optional_holidaysz1Switzerland._populate_subdiv_sg_optional_holidaysZ  r   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y rf   rg   rF   s    r:   #_populate_subdiv_sh_public_holidaysz/Switzerland._populate_subdiv_sh_public_holidays]  ri   r;   c                 8    | j                  t        d             y r   r   rF   s    r:   %_populate_subdiv_sh_optional_holidaysz1Switzerland._populate_subdiv_sh_optional_holidaysh  r   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  t        d
             y )N   Heilige Drei Königer   rJ   rK   rM   rN   rO   rP   rQ   rR   )_add_epiphany_dayrB   r   rT   rU   rW   rX   rY   rZ   r[   r\   rF   s    r:   #_populate_subdiv_sz_public_holidaysz/Switzerland._populate_subdiv_sz_public_holidaysk  s    r"89:##B{O4b./= 12b12$$R%78((,@)AB  O!45++B/C,DE##B}$56r;   c                 8    | j                  t        d             y ro   rp   rF   s    r:   #_populate_subdiv_so_public_holidaysz/Switzerland._populate_subdiv_so_public_holidays  rr   r;   c                 8    | j                  t        d             y )NrL   )rV   rB   rF   s    r:   %_populate_subdiv_so_half_day_holidaysz1Switzerland._populate_subdiv_so_half_day_holidays  s    B/01r;   c                 8    | j                  t        d             y r   r   rF   s    r:   %_populate_subdiv_so_optional_holidaysz1Switzerland._populate_subdiv_so_optional_holidays  r   r;   c                 <   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             y )NrI   rL   rJ   rK   rM   rR   )rS   rB   rV   rT   rU   rW   r\   rF   s    r:   #_populate_subdiv_tg_public_holidaysz/Switzerland._populate_subdiv_tg_public_holidays  su    ##B$78B/01b./= 12b12##B}$56r;   c                 @   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  t        d
             | j                  t        d             y )Nr   r   rK   rL   rM   rN   zPeter und PaulrO   rP   rQ   rR   )r   rB   r   rU   rV   rW   rX   _add_saints_peter_and_paul_dayrY   rZ   r[   r\   rF   s    r:   #_populate_subdiv_ti_public_holidaysz/Switzerland._populate_subdiv_ti_public_holidays  s    r"89:##B{O4= 12B/01b12$$R%78 	++B/?,@A((,@)AB  O!45++B/C,DE##B}$56r;   c                 D   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                  | j                  t        d
            t        t        z          y )Nr   r   rJ   rK   rM   rN   rO   rP   rQ   rR   r_   )r   rB   r   rT   rU   rW   rX   rY   rZ   r[   ra   r\   r   r   rF   s    r:   #_populate_subdiv_ur_public_holidaysz/Switzerland._populate_subdiv_ur_public_holidays  s    r"89:##B{O4b./= 12b12$$R%78((,@)AB  O!45++B/C,DE''=(9:{AZ 	 	
r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )NrI   rJ   rK   rM   Bettagsmontag)rS   rB   rT   rU   rW   &_add_holiday_1_day_past_3rd_sun_of_seprF   s    r:   #_populate_subdiv_vd_public_holidaysz/Switzerland._populate_subdiv_vd_public_holidays  sc    ##B$78b./= 12b12 	33B4GHr;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )Nr   rN   rO   rP   rQ   )r   rB   rX   rY   rZ   r[   rF   s    r:   #_populate_subdiv_vs_public_holidaysz/Switzerland._populate_subdiv_vs_public_holidays  sb    ##B{O4$$R%78((,@)AB  O!45++B/C,DEr;   c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y rt   ru   rF   s    r:   %_populate_subdiv_vs_optional_holidaysz1Switzerland._populate_subdiv_vs_optional_holidays  rw   r;   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y )NrJ   rN   rO   rP   rQ   )rT   rB   rX   rY   rZ   r[   rF   s    r:   #_populate_subdiv_zg_public_holidaysz/Switzerland._populate_subdiv_zg_public_holidays  sc    b./$$R%78((,@)AB  O!45++B/C,DEr;   c                     | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             y rt   ru   rF   s    r:   %_populate_subdiv_zg_optional_holidaysz1Switzerland._populate_subdiv_zg_optional_holidays  rw   r;   c                 <   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             y )NrI   rJ   rK   rL   rM   rR   )rS   rB   rT   rU   rV   rW   r\   rF   s    r:   #_populate_subdiv_zh_public_holidaysz/Switzerland._populate_subdiv_zh_public_holidays  su    ##B$78b./= 12B/01b12##B}$56r;   )5__name__
__module____qualname____doc__countrydefault_languagesubdivisionsr   r	   r
   supported_categoriessupported_languages
start_yearr4   rG   r]   rb   rd   rh   rk   rm   rq   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r9   s   @r:   r   r      s     GL8 %h7;J*
37>	

&	7	7	707G7(9706(7&Z"F7F7	79	797,029770
.
I	F7	F77r;   r   c                       e Zd Zy)r   Nr   r   r    r;   r:   r   r         r;   r   c                       e Zd Zy)CHENr   r   r;   r:   r   r     r   r;   r   N)r   rB   holidays.calendars.gregorianr   r   r   r   holidays.constantsr   r	   r
   holidays.groupsr   r   holidays.observed_holiday_baser   r   r   r   r   r   r   r   r;   r:   <module>r      sM    " X X 9 9 D b bp7%'8:O p7f	 		+ 	r;   