
    ih!                         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 d dlmZmZ d dlmZmZmZ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 G d de      Z G d d      Zy)    )date)gettext)_CustomIslamicHolidays)JUNSEPNOVTHUFRISAT
_timedelta)IslamicHolidaysStaticHolidays)ObservedHolidayBaseTHU_TO_PREV_WEDFRI_TO_PREV_THUFRI_TO_NEXT_SATSAT_TO_NEXT_SUNTHU_FRI_TO_NEXT_WORKDAYFRI_SAT_TO_NEXT_WORKDAYc                        e Zd ZdZdZdZ ed      Z ed      Z ed      Z	dZ
eehZdd	d
ef fdZdeddfdZdedee   fdZd Z xZS )SaudiArabiau  Saudi Arabia holidays.

    References:
        * <https://ar.wikipedia.org/wiki/قائمة_العطل_الرسمية_في_السعودية>
        * <https://web.archive.org/web/20240610223551/http://laboreducation.hrsd.gov.sa/en/labor-education/322>
        * <https://web.archive.org/web/20250329052253/https://english.alarabiya.net/News/gulf/2022/01/27/Saudi-Arabia-to-commemorate-Founding-Day-on-Feb-22-annually-Royal-order>
        * [2015 (1436 AH) Dhu al-Hijjah begin on September 15](https://web.archive.org/web/20250430191246/https://qna.org.qa/en/news/news-details?id=saudi-arabia-eid-aladha-to-start-on-september-24&date=14/09/2015)
    SAaru   %s (المقدرة)u   %s (ملاحظة)u"   %s (المقدرة، ملاحظة))r   en_USF)islamic_show_estimatedr   c                    t        j                  | t        |       t        j                  | t               |j                  dt        t        z          t        |   |i | y)a  Saudi Arabia has traditionally used the Umm al-Qura calendar
            for administrative purposes.

        Args:
            islamic_show_estimated:
                Whether to add "estimated" label to Islamic holidays name
                if holiday date is estimated.
        )clsshow_estimatedobserved_ruleN)	r   __init__SaudiArabiaIslamicHolidaysr   SaudiArabiaStaticHolidays
setdefaultr   r   super)selfr   argskwargs	__class__s       _/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/saudi_arabia.pyr    zSaudiArabia.__init__3   sV     	  0AW	
 	&?@/?_+LM$)&)    dtreturnNc                     | j                   sy | j                  dk  rt        nt        }t	        d      D ]$  }| j                  t        ||       | |   |       & y )N     )namerule)observed_yearr   r   range_add_observedr   )r%   r+   r   is       r)   _add_islamic_observedz!SaudiArabia._add_islamic_observedC   sP    }}37::3E/KbqAz"qb1R}U r*   c                 Z    |t        dt        d      k\  rt        t        hS t        t        hS )Ni     )r   r   r
   r   r	   )r%   r+   s     r)   _get_weekendzSaudiArabia._get_weekendK   s%    4c2#66SzFS#JFr*   c           
         | j                   dk  rt        t        z   nt        t        z   | _        t        d      }| j                  |      }| j                  |       | j                  |       |D ]  }| j                  j                  |      r8| j                  |t        |d             | j                  t        |d             V| j                  | j                  |t        |d                    | j                  t        d             t        d      }| j!                  |       | j#                  |       | j%                  |      D ]  }| j                  |        | j                   dk\  r)| j'                  | j)                  t        d	                   | j                   d
k\  r*| j'                  | j+                  t        d                   y y )Nr.   u   عطلة عيد الفطر      u   يوم عرفةu   عطلة عيد الأضحى  u   يوم التأسيسيi  u   اليوم الوطني)r3   r   r   r   r   _observed_ruletr_add_eid_al_fitr_day_add_eid_al_fitr_day_two_add_eid_al_fitr_day_three_islamic_calendar_is_long_ramadan_add_holidayr   r7   _add_arafah_day_add_eid_al_adha_day_add_eid_al_adha_day_two_add_eid_al_adha_day_threer5   _add_holiday_feb_22_add_holiday_sep_23)r%   eid_al_fitr_nameeid_al_fitr_datesr+   r0   s        r)   _populate_public_holidaysz%SaudiArabia._populate_public_holidaysO   s    zzT! o- ?2 	 :; 556FG%%&67''(89#B%%66r:!!"2Jr24FG**:b"+=> **4+<+<=MzZ\^`Oa+bc $ 	R 123 01!!$'%%d+11$7B&&r* 8 ::t77;T8UVW::t77;T8UVW r*   )__name__
__module____qualname____doc__countrydefault_languagerA   estimated_labelobserved_labelobserved_estimated_labelsupported_languagesr
   r   weekendboolr    r   r7   setintr:   rP   __classcell__)r(   s   @r)   r   r      s     G./O+,N!"FG)CjG=B *d * V V VGt GC G&Xr*   r   c                       e Zd Zy)r   NrQ   rR   rS    r*   r)   r   r   x       r*   r   c                       e Zd Zy)SAUNra   rb   r*   r)   re   re   |   rc   r*   re   c                        e Zd ZdZdedfiZdZy)r!   )i  i  i     N)rQ   rR   rS   !EID_AL_ADHA_DATES_CONFIRMED_YEARSr   EID_AL_ADHA_DATES!EID_AL_FITR_DATES_CONFIRMED_YEARSrb   r*   r)   r!   r!      s!    (4%sBi )5%r*   r!   c                   &    e Zd Zded ed      fiZy)r"   r?      u   يوم وطنيN)rQ   rR   rS   r   rA   special_public_holidaysrb   r*   r)   r"   r"      s     	sB,-.r*   r"   N)datetimer   r   rA   holidays.calendarsr   holidays.calendars.gregorianr   r   r   r	   r
   r   r   holidays.groupsr   r   holidays.observed_holiday_baser   r   r   r   r   r   r   r   r   re   r!   r"   rb   r*   r)   <module>rs      sp     ! 5 Q Q Q ;  WX% WXt	 		+ 	5!7 5 r*   