
    !g#                         d dl 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 d dlmZ  G d dee
ee      Z G d d	e      Z G d
 de      Z G d d      Zy)    )gettext)MAYJUNOCT)CATHOLICPUBLIC)ChristianHolidaysInternationalHolidaysStaticHolidays)HolidayBasec                        e Zd ZdZdZdZeefZdZ	dZ
i dddd	d
dddddddddddddddddddddd d!d"d#d$d%Zd&Zd'Zd= fd(Zd) Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Z d; Z!d< Z" xZ#S )>Germanyu  Official holidays for Germany in its current form.

    This class doesn't return any holidays before 1990-10-03.

    Before that date the current Germany was separated into the "German
    Democratic Republic" and the "Federal Republic of Germany" which both had
    somewhat different holidays. Since this class is called "Germany" it
    doesn't really make sense to include the days from the two former
    countries.

    "Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
    in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
    in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
    DEde)r   en_USthuk)BBBEBWBYHBHEHHMVNINWRPSHSLSNSTTHBrandenburgr   Berlinr   u   Baden-Württembergr   Bayernr   Bremenr   Hessenr   Hamburgr   zMecklenburg-Vorpommernr   Niedersachsenr   zNordrhein-Westfalenr   zRheinland-Pfalzr   zSchleswig-Holsteinr   Saarlandr    Sachsenr!   zSachsen-Anhaltr"   u
   Thüringenr#   )BYPi  c                     t        j                  |        t        j                  |        t        j                  | t               t        |   |i | y )N)r	   __init__r
   r   GermanyStaticHolidayssuper)selfargskwargs	__class__s      W/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/countries/germany.pyr/   zGermany.__init__Q   sB    ""4(&&t,&;<$)&)    c                    | j                   dk\  r| j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                   d	k  r| j                  t        d
             | j                  t        d             | j                  t        d             | j                  dk(  r| j                          y y )N  Neujahr
KarfreitagOstermontagz
Erster MaizChristi HimmelfahrtPfingstmontagzTag der Deutschen Einheiti     Buß- und BettagzErster WeihnachtstagzZweiter Weihnachtstagr-   )_year_add_new_years_daytr_add_good_friday_add_easter_monday_add_labor_day_add_ascension_thursday_add_whit_monday_add_holiday_oct_3"_add_holiday_1st_wed_before_nov_22_add_christmas_day_add_christmas_day_twosubdiv#_populate_subdiv_by_public_holidaysr2   s    r6   _populate_public_holidaysz!Germany._populate_public_holidaysW   s	   ::##ByM2 !!"\"23 ##B}$56 < 01 ((,A)BC !!"_"56 	#> ?@::33B7I4JK 	#9 :; 	##B'>$?@;;%446  r7   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y )Nr9   OstersonntagPfingstsonntagReformationstag)r?   _add_easter_sundayrA   _add_whit_sunday_add_holiday_oct_31rM   s    r6   #_populate_subdiv_bb_public_holidaysz+Germany._populate_subdiv_bb_public_holidays{   sM    ::##B~$67 !!"%5"67 	  $5!67r7   c                 X    | j                   dk\  r| j                  t        d             y y )N  Internationaler Frauentag)r?   _add_womens_dayrA   rM   s    r6   #_populate_subdiv_be_public_holidaysz+Germany._populate_subdiv_be_public_holidays   s'    ::  $?!@A r7   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y Nr9      Heilige Drei KönigeFronleichnamAllerheiligenr?   _add_epiphany_dayrA   _add_corpus_christi_day_add_all_saints_dayrM   s    r6   #_populate_subdiv_bw_public_holidaysz+Germany._populate_subdiv_bw_public_holidays   sL    ::""2&<#=> ((N);< 	  O!45r7   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y r]   ra   rM   s    r6   rL   z+Germany._populate_subdiv_by_public_holidays   sH    ::""2&<#=>((N);<  O!45r7   c                 X    | j                   dk\  r| j                  t        d             y y )Nr9      Mariä Himmelfahrt)r?   _add_assumption_of_mary_dayrA   rM   s    r6   %_populate_subdiv_by_catholic_holidaysz-Germany._populate_subdiv_by_catholic_holidays   s'    ::,,R0D-EF r7   c                 X    | j                   dk\  r| j                  t        d             y y Ni  rR   r?   rU   rA   rM   s    r6   #_populate_subdiv_hb_public_holidaysz+Germany._populate_subdiv_hb_public_holidays   '    ::$$R(9%:; r7   c                 X    | j                   dk\  r| j                  t        d             y y Nr9   r_   r?   rc   rA   rM   s    r6   #_populate_subdiv_he_public_holidaysz+Germany._populate_subdiv_he_public_holidays   &    ::((N);< r7   c                 X    | j                   dk\  r| j                  t        d             y y rl   rm   rM   s    r6   #_populate_subdiv_hh_public_holidaysz+Germany._populate_subdiv_hh_public_holidays   ro   r7   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )Ni  rY   rR   )r?   rZ   rA   rU   rM   s    r6   #_populate_subdiv_mv_public_holidaysz+Germany._populate_subdiv_mv_public_holidays   s6    ::  $?!@A  $5!67r7   c                 X    | j                   dk\  r| j                  t        d             y y rl   rm   rM   s    r6   #_populate_subdiv_ni_public_holidaysz+Germany._populate_subdiv_ni_public_holidays   ro   r7   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y Nr9   r_   r`   r?   rc   rA   rd   rM   s    r6   #_populate_subdiv_nw_public_holidaysz+Germany._populate_subdiv_nw_public_holidays   4    ::((N);<  O!45r7   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y r|   r}   rM   s    r6   #_populate_subdiv_rp_public_holidaysz+Germany._populate_subdiv_rp_public_holidays   r   r7   c                 X    | j                   dk\  r| j                  t        d             y y rl   rm   rM   s    r6   #_populate_subdiv_sh_public_holidaysz+Germany._populate_subdiv_sh_public_holidays   ro   r7   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y )Nr9   r_   rh   r`   )r?   rc   rA   ri   rd   rM   s    r6   #_populate_subdiv_sl_public_holidaysz+Germany._populate_subdiv_sl_public_holidays   sH    ::((N);<,,R0D-EF  O!45r7   c                     | j                  t        d             | j                  dk\  r| j                  t        d             y y )NrR   i  r>   )rU   rA   r?   rH   rM   s    r6   #_populate_subdiv_sn_public_holidaysz+Germany._populate_subdiv_sn_public_holidays   s;      $5!67::33B7I4JK r7   c                 X    | j                   dk\  r| j                  t        d             y y rq   rr   rM   s    r6   %_populate_subdiv_sn_catholic_holidaysz-Germany._populate_subdiv_sn_catholic_holidays   rt   r7   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )Nr9   r^   rR   )r?   rb   rA   rU   rM   s    r6   #_populate_subdiv_st_public_holidaysz+Germany._populate_subdiv_st_public_holidays   s6    ::""2&<#=>  $5!67r7   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )NrX   WeltkindertagrR   )r?   _add_holiday_sep_20rA   rU   rM   s    r6   #_populate_subdiv_th_public_holidaysz+Germany._populate_subdiv_th_public_holidays   s5    ::$$R%89  $5!67r7   c                 X    | j                   dk\  r| j                  t        d             y y rq   rr   rM   s    r6   %_populate_subdiv_th_catholic_holidaysz-Germany._populate_subdiv_th_catholic_holidays   rt   r7   )returnN)$__name__
__module____qualname____doc__countrydefault_languager   r   supported_categoriessupported_languagessubdivisionssubdivisions_aliases_deprecated_subdivisions
start_yearr/   rN   rV   r[   re   rL   rj   rn   rs   rv   rx   rz   r~   r   r   r   r   r   r   r   r   __classcell__)r5   s   @r6   r   r      sk    G$f-5L&t$ 	d 	$	
 	$ 	$ 	4 	!$ 	 	t 	4 	d 	D 	4 	$  	d!$  (J*"7H	8B
	66G
<=<8<66<6L=88=r7   r   c                       e Zd Zy)r   Nr   r   r    r7   r6   r   r          r7   r   c                       e Zd Zy)DEUNr   r   r7   r6   r   r      r   r7   r   c                   l    e Zd ZdZded ed      fiZed ed      fed ed      fed ed	      fd
Z	y)r0   a  
    References:
     - https://www.stuttgarter-zeitung.de/inhalt.reformationstag-2017-einmalig-bundesweiter-feiertag.b7e189b3-a33d-41a3-a0f4-141cd13df54e.html
     - https://www.bbc.com/news/world-europe-52574748
     - https://gesetze.berlin.de/bsbe/document/jlr-FeiertGBEV8P1
    i     rR      zg75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in Europazg80. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkriegs in Europa   z.75. Jahrestag des Aufstandes vom 17. Juni 1953)i  i  i  N)
r   r   r   r   r   rA   special_public_holidaysr   r   special_be_public_holidaysr   r7   r6   r0   r0      sw     	sB,-.  F	
  F	
 BKLM-"r7   r0   N)r   rA   holidays.calendars.gregorianr   r   r   holidays.constantsr   r   holidays.groupsr	   r
   r   holidays.holiday_baser   r   r   r   r0   r   r7   r6   <module>r      sU    " 6 6 / T T -S=k,.C^ S=l	 		' 	# #r7   