
    x7#h                         d dl mZ d dlmZ d dl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 d dl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e      Zy)    )isleap)gettext)_CustomIslamicHolidays)
JANMARAPRMAYJUNJULAUGSEPOCTNOV)JULIAN_CALENDAR)PUBLICWORKDAY)ChristianHolidaysInternationalHolidaysIslamicHolidays)HolidayBasec                   n     e Zd ZdZdZdZ ed      ZdZe	e
fZdZdefdZdd	ef fd
Z fdZd Z xZS )Ethiopiaa@  Ethiopia holidays.

    References:
        * [Proclamation No. 29/1996](https://www.lawethiopia.com/images/federal_proclamation/proclamations_by_number/29.pdf)
        * [Proclamation No. 1334/2024](https://lawethiopiacomment.wordpress.com/wp-content/uploads/2024/08/public-holiday-stamped.pdf)
        * <https://www.edarabia.com/ethiopia/public-holidays/>
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Ethiopia>
        * <https://en.wikipedia.org/wiki/Nations,_Nationalities_and_Peoples%27_Day>
        * <https://www.timeanddate.com/holidays/ethiopia/>
    ETamu   %s (ግምት)i  )r   aren_ETen_USreturnc                 2    t        | j                  dz         S )a  Determine if the Ethiopian calendar year is a leap year.

        Ethiopian leap years generally align with Gregorian leap years until
        February 2100. However, the Ethiopian calendar starts earlier (on September 11),
        which affects holidays between September 11 and January 1.

        To account for this shift, the method checks whether next year is a leap year
        in the Gregorian calendar.

        Returns:
            `True` if the Ethiopian year is a leap year, `False` otherwise.
           )r   _yearselfs    [/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/ethiopia.py_is_leap_yearzEthiopia._is_leap_year-   s     djj1n%%    islamic_show_estimatedc                     t        j                  | t               t        j                  |        t	        j                  | t
        |       t        |   |i | y)z
        Args:
            islamic_show_estimated:
                Whether to add "estimated" label to Islamic holidays name
                if holiday date is estimated.
        )clsshow_estimatedN)r   __init__r   r   r   EthiopiaIslamicHolidayssuper)r#   r'   argskwargs	__class__s       r$   r+   zEthiopia.__init__=   sN     	""49&&t,  ->T	
 	$)&)r&   c                 (   | j                  t        d             | j                  t        d      t        t        |          rdnd       | j                  dk\  r| 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      t        | j                         rdnd       | j                  t        d      t        | j                         rdnd       | j                  dk  rL| j                  t        d      t        | j                         rdnd       | j                  t        d             | j                  t        d             | j!                  t        d             | j#                  t        d             y )Nu*   የገና ወይም የልደት በዓልu   የጥምቀት በዓል      i  u   የአድዋ ድል በዓልu   የስቅለት በዓልu$   የትንሳኤ(ፋሲካ) በዓልu>   የዓለም የሠራተኞች (የላብአደሮች) ቀንu/   የአርበኞች (የድል) ቀን በዓልi  u#   ደርግ የወደቀበት ቀንu8   የዘመን መለወጫ (እንቁጣጣሽ) በዓል      u   የመስቀል በዓል      i  u   የአብዮት ቀን   u#   የጥቅምት አብዮት ቀንu   የኢድ አልፈጥርu%   የኢድ አልአድሃ (አረፋ)u   የመውሊድ በዓል)_add_christmas_daytr_add_holidayr   r-   r%   r!   _add_holiday_mar_2_add_good_friday_add_easter_sunday_add_labor_day_add_holiday_may_5_add_holiday_may_28r   _add_holiday_nov_7_add_eid_al_fitr_day_add_eid_al_adha_day_add_mawlid_day)r#   r0   s    r$   _populate_public_holidaysz"Ethiopia._populate_public_holidaysK   s   #O PQ 	"893egF[F]cef::##B'F$GH 	b!<=> 	#I JK 	B_`a 	#T UV::$$R(M%NO 	"WXZ]eiewewey_a  @B  	C 	"893dFXFXFZ`bc::b!9:CtGYGYG[acd ##B'L$MN 	!!"%@"AB 	!!"%L"MN 	R ;<=r&   c                     | j                  t        d             | j                  dk\  r| j                  t        d             y y )Nu   የሰማዕታት ቀንi  u&   የብሔር ብሔረሰቦች ቀን)_add_holiday_feb_20r:   r!   _add_holiday_dec_9r"   s    r$   _populate_workday_holidaysz#Ethiopia._populate_workday_holidays|   s;      $?!@A::##B'O$PQ r&   )T)__name__
__module____qualname____doc__countrydefault_languager:   estimated_label
start_yearr   r   supported_categoriessupported_languagesboolr%   r+   rF   rJ   __classcell__)r0   s   @r$   r   r      sZ    	 G)*OJ"G,8&t & *t */>bRr&   r   c                       e Zd Zy)r   NrK   rL   rM    r&   r$   r   r          r&   r   c                       e Zd Zy)ETHNrX   rY   r&   r$   r\   r\      rZ   r&   r\   c            	           e Zd ZedfedfedfedfedfedfedfdZ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
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,      r5      r2   	   r6      )                       r8         
      )rb   rc   rd   re   rf   rg   rh   i           r7   N)rK   rL   rM   r   r   r
   EID_AL_ADHA_DATESr	   r   r   EID_AL_FITR_DATESr   r   r   MAWLID_DATESrY   r&   r$   r,   r,      s    BiBiBiBiAhBiBi BiAhBiBiAhBiBiBi	 BiBiBiBiAhBiBiLr&   r,   N) calendarr   r   r:   holidays.calendarsr   holidays.calendars.gregorianr   r   r   r	   r
   r   r   r   r   r   holidays.calendars.julianr   holidays.constantsr   r   holidays.groupsr   r   r   holidays.holiday_baser   r   r   r\   r,   rY   r&   r$   <module>r}      sf     ! 5 Y Y Y 5 . U U -jR{-/Do jRZ	 		( 	4 r&   