
    !gO                         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 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      Zy)    )date)gettext)JANFEB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                   z     e Zd ZdZdZdZ ed      Z ed      Z ed      Z	dZ
 fdZd	ee   d
dfdZd Z xZS )SaudiArabiaae  
    There are only 4 official national holidays in Saudi:
        - https://laboreducation.hrsd.gov.sa/en/gallery/274
        - https://laboreducation.hrsd.gov.sa/en/labor-education/322
        - https://english.alarabiya.net/News/gulf/2022/01/27/Saudi-Arabia-to-commemorate-Founding-Day-on-Feb-22-annually-Royal-order

    The national day and the founding day holidays are based on the
    Georgian calendar while the other two holidays are based on the
    Islamic Calendar, and they are estimates as they announced each
    year and based on moon sightings; they are:
    - Eid al-Fitr
    - Eid al-Adha
    SAaru   (تقدير) %su   (ملاحظة) %su   (تقدير ملاحظة) %s)r   en_USc                     t        j                  |        t        j                  | t               |j	                  dt
        t        z          t        |   |i | y )Nobserved_rule)r   __init__r   SaudiArabiaStaticHolidays
setdefaultr   r   super)selfargskwargs	__class__s      \/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/countries/saudi_arabia.pyr   zSaudiArabia.__init__6   sI      &&?@/?_+LM$)&)    dtsreturnNc                     | j                   sy | j                  dk  rt        nt        }|D ]4  }t	        d      D ]$  }| j                  t        ||       | |   |       & 6 y )N     )namerule)observed_yearr   r   range_add_observedr   )r!   r'   r   dtis        r%   _add_islamic_observedz!SaudiArabia._add_islamic_observed<   sh    }}37::3E/Kb 	ZB1X Z"":b1"#5DH="YZ	Zr&   c                    | j                   dk  rt        t        z   nt        t        z   | _        | j                   dk  rt        t        hnt        t        h| _	        t        d      }| j                  |       | j                  |       | j                  |       | j                  | j                  |             | j!                  t        d             t        d      }| j#                  |       | j%                  |       | j                  | j'                  |             | j                   dk\  rIt)        | j                   t*        d      }|| vr*| j-                  | j/                  t        d      |             | j                   dk\  rKt)        | j                   t0        d	      }|| vr+| j-                  | j/                  t        d
      |             y y y )Nr*      عطلة عيد الفطرu   يوم عرفةu   عطلة عيد الأضحىi     u   اليوم الوطني     u   يوم التأسيسي)r/   r   r   r   r   _observed_ruler	   r
   r   weekendtr_add_eid_al_fitr_day_add_eid_al_fitr_day_two_add_eid_al_fitr_day_threer4   _add_eid_al_fitr_day_four_add_arafah_day_add_eid_al_adha_day_add_eid_al_adha_day_two_add_eid_al_adha_day_threer   r   r1   _add_holidayr   )r!   eid_al_fitr_namer,   r2   s       r%   _populate_public_holidaysz%SaudiArabia._populate_public_holidaysE   s    zzT! o- ?2 	
 &*ZZ4%7Szc3Z :;!!"23%%&67''(89""4#A#ABR#ST 	R 12301!!$'%%d+""4#B#B4#HI ::djj#r*B~""4#4#4R8Q5RTV#WX ::djj#r*B~""4#4#4R8Q5RTV#WX  r&   )__name__
__module____qualname____doc__countrydefault_languager<   estimated_labelobserved_labelobserved_estimated_labelsupported_languagesr   setr   r4   rG   __classcell__)r$   s   @r%   r   r      sb     G*+O+,N!"@A)*ZT Zt Z(Yr&   r   c                       e Zd Zy)r   NrH   rI   rJ    r&   r%   r   r   p       r&   r   c                       e Zd Zy)SAUNrU   rV   r&   r%   rY   rY   t   rW   r&   rY   c                   @    e Zd Zded ed      fiZded ed      fiZy)r   r8   r7   u   يوم وطنيi     r6   N)rH   rI   rJ   r   r<   special_public_holidaysr    special_public_holidays_observedrV   r&   r%   r   r   x   s:     	sB,-. 	sAr678($r&   r   N)datetimer   r   r<   holidays.calendars.gregorianr   r   r   r   r	   r
   r   r   holidays.groupsr   r   holidays.observed_holiday_baser   r   r   r   r   r   r   r   r   rY   r   rV   r&   r%   <module>rb      s`     ! V V V ;  PY% PYf	 		+ 		 	r&   