
    ih*                         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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e	e
f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"d= Z# xZ$S )?Germanyua  Germany holidays.

    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.

    References:
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Germany>
        * [Bavaria's Feiertagsgesetz](https://web.archive.org/web/20250724092008/https://www.gesetze-bayern.de/Content/Document/BayFTG-1)
    DEdei  )BBBEBWBYHBHEHHMVNINWRPSHSLSNSTTHAugsburg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    )r   en_USthuk)BYPc                     t        j                  |        t        j                  |        t        j                  | t               t        |   |i | y )N)r	   __init__r
   r   GermanyStaticHolidayssuper)selfargskwargs	__class__s      Z/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/germany.pyr0   zGermany.__init__V   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r3   s    r7   _populate_public_holidaysz!Germany._populate_public_holidays\   s	   ::##ByM2 !!"\"23 ##B}$56 < 01 ((,A)BC !!"_"56 	#> ?@::33B7I4JK 	#9 :; 	##B'>$?@;;%446  r8   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y )Nr:   OstersonntagPfingstsonntagReformationstag)r@   _add_easter_sundayrB   _add_whit_sunday_add_holiday_oct_31rN   s    r7   #_populate_subdiv_bb_public_holidaysz+Germany._populate_subdiv_bb_public_holidays   sM    ::##B~$67 !!"%5"67 	  $5!67r8   c                 X    | j                   dk\  r| j                  t        d             y y )N  Internationaler Frauentag)r@   _add_womens_dayrB   rN   s    r7   #_populate_subdiv_be_public_holidaysz+Germany._populate_subdiv_be_public_holidays   s'    ::  $?!@A r8   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y Nr:      Heilige Drei KönigeFronleichnamAllerheiligenr@   _add_epiphany_dayrB   _add_corpus_christi_day_add_all_saints_dayrN   s    r7   #_populate_subdiv_bw_public_holidaysz+Germany._populate_subdiv_bw_public_holidays   L    ::""2&<#=> ((N);< 	  O!45r8   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y r^   rb   rN   s    r7   rM   z+Germany._populate_subdiv_by_public_holidays   rg   r8   c                 X    | j                   dk\  r| j                  t        d             y y )Nr:      Mariä Himmelfahrt)r@   _add_assumption_of_mary_dayrB   rN   s    r7   %_populate_subdiv_by_catholic_holidaysz-Germany._populate_subdiv_by_catholic_holidays   s'    ::,,R0D-EF r8   c                 X    | j                   dk\  r| j                  t        d             y y Ni  rS   r@   rV   rB   rN   s    r7   #_populate_subdiv_hb_public_holidaysz+Germany._populate_subdiv_hb_public_holidays   '    ::$$R(9%:; r8   c                 X    | j                   dk\  r| j                  t        d             y y Nr:   r`   r@   rd   rB   rN   s    r7   #_populate_subdiv_he_public_holidaysz+Germany._populate_subdiv_he_public_holidays   &    ::((N);< r8   c                 X    | j                   dk\  r| j                  t        d             y y rn   ro   rN   s    r7   #_populate_subdiv_hh_public_holidaysz+Germany._populate_subdiv_hh_public_holidays   rq   r8   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )Ni  rZ   rS   )r@   r[   rB   rV   rN   s    r7   #_populate_subdiv_mv_public_holidaysz+Germany._populate_subdiv_mv_public_holidays   s8    ::  $?!@A 	  $5!67r8   c                 X    | j                   dk\  r| j                  t        d             y y rn   ro   rN   s    r7   #_populate_subdiv_ni_public_holidaysz+Germany._populate_subdiv_ni_public_holidays   rq   r8   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y Nr:   r`   ra   r@   rd   rB   re   rN   s    r7   #_populate_subdiv_nw_public_holidaysz+Germany._populate_subdiv_nw_public_holidays   6    ::((N);< 	  O!45r8   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y r~   r   rN   s    r7   #_populate_subdiv_rp_public_holidaysz+Germany._populate_subdiv_rp_public_holidays   r   r8   c                 X    | j                   dk\  r| j                  t        d             y y rn   ro   rN   s    r7   #_populate_subdiv_sh_public_holidaysz+Germany._populate_subdiv_sh_public_holidays   rq   r8   c                     | j                   dk\  r4| j                  t        d             | j                  t        d             | j	                  t        d             y )Nr:   r`   rj   ra   )r@   rd   rB   rk   re   rN   s    r7   #_populate_subdiv_sl_public_holidaysz+Germany._populate_subdiv_sl_public_holidays   sL    ::((N);< ,,R0D-EF 	  O!45r8   c                     | j                  t        d             | j                  dk\  r| j                  t        d             y y )NrS   i  r?   )rV   rB   r@   rI   rN   s    r7   #_populate_subdiv_sn_public_holidaysz+Germany._populate_subdiv_sn_public_holidays   s;      $5!67::33B7I4JK r8   c                 X    | j                   dk\  r| j                  t        d             y y rs   rt   rN   s    r7   %_populate_subdiv_sn_catholic_holidaysz-Germany._populate_subdiv_sn_catholic_holidays   rv   r8   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )Nr:   r_   rS   )r@   rc   rB   rV   rN   s    r7   #_populate_subdiv_st_public_holidaysz+Germany._populate_subdiv_st_public_holidays   s8    ::""2&<#=> 	  $5!67r8   c                     | j                   dk\  r| j                  t        d             | j                  t        d             y )NrY   WeltkindertagrS   )r@   _add_holiday_sep_20rB   rV   rN   s    r7   #_populate_subdiv_th_public_holidaysz+Germany._populate_subdiv_th_public_holidays   s7    ::$$R%89 	  $5!67r8   c                 X    | j                   dk\  r| j                  t        d             y y rs   rt   rN   s    r7   %_populate_subdiv_th_catholic_holidaysz-Germany._populate_subdiv_th_catholic_holidays  rv   r8   c                 x    | j                          | j                  dk\  r| j                  t        d             y y )Nr:   zAugsburger Hohes Friedensfest)rM   r@   _add_holiday_aug_8rB   rN   s    r7   )_populate_subdiv_augsburg_public_holidaysz1Germany._populate_subdiv_augsburg_public_holidays	  s3    002::##B'F$GH r8   )returnN)%__name__
__module____qualname____doc__countrydefault_language
start_yearsubdivisionssubdivisions_aliasesr   r   supported_categoriessupported_languages_deprecated_subdivisionsr0   rO   rW   r\   rf   rM   rl   rp   ru   rx   rz   r|   r   r   r   r   r   r   r   r   r   r   __classcell__)r6   s   @r7   r   r      sq   $ GJL*t$ 	d 	$	
 	$ 	$ 	4 	!$ 	 	t 	4 	d 	D 	4 	$  	d!$ %f-5'*"7H	8B
	6	6G
<
=
<
8<
66<
	6L=
88=
Ir8   r   c                       e Zd Zy)r   Nr   r   r    r8   r7   r   r         r8   r   c                       e Zd Zy)DEUNr   r   r8   r7   r   r     r   r8   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)r1   a  Germany special holidays.

    References:
        * <https://web.archive.org/web/20241127055605/https://www.stuttgarter-zeitung.de/inhalt.reformationstag-2017-einmalig-bundesweiter-feiertag.b7e189b3-a33d-41a3-a0f4-141cd13df54e.html>
        * <https://web.archive.org/web/20250415233518/https://www.bbc.com/news/world-europe-52574748>
        * <https://web.archive.org/web/20241219151307/https://gesetze.berlin.de/bsbe/document/jlr-FeiertGBEV8P1>
    i     rS      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   rB   special_public_holidaysr   r   special_be_public_holidaysr   r8   r7   r1   r1     sw     	sB,-.  F	
  F	
 BKLM-"r8   r1   N)r   rB   holidays.calendars.gregorianr   r   r   holidays.constantsr   r   holidays.groupsr	   r
   r   holidays.holiday_baser   r   r   r   r1   r   r8   r7   <module>r      sW    " 6 6 / T T -yIk,.C^ yIx	 		' 	% %r8   