
    x7#h                         d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ  G d dee
e      Z G d	 d
e      Z G d de      Zy)    )date)gettext)JULIAN_REVISED_CALENDAR)PUBLICSCHOOL)ChristianHolidaysInternationalHolidays)ObservedHolidayBaseSAT_SUN_TO_NEXT_WORKDAYc                   v     e Zd ZdZdZdZ ed      Zee	fZ
dZdZ fdZdee   d	ee   d
dfdZd Zd Z xZS )Bulgariaa  Bulgaria holidays.

    References:
        * <http://lex.bg/laws/ldoc/1594373121>
        * <https://www.parliament.bg/bg/24>
        * <https://kik-info.com/spravochnik/calendar/2021/>
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Bulgaria>

    Official holidays in Bulgaria in their current form. This class does not
    any return holidays before 1990, as holidays in the People's Republic of
    Bulgaria and earlier were different.

    Since 2017, it has been accepted that public holidays in Bulgaria that fall on a Saturday
    or Sunday are to be taken on the first working day after them. If there are both Saturday
    and Sunday holidays, Monday and Tuesday are rested respectively.
    The exceptions are:
    1) the Easter holidays, which are always a consecutive Friday, Saturday, and Sunday;
    2) National Awakening Day which, while an official holiday and a non-attendance day for
    schools, is still a working day.
    BGbgu   %s (почивен ден))r   en_USuki  c                     t        j                  | t               t        j                  |        |j	                  dt
               |j	                  dd       t        |   |i | y )Nobserved_ruleobserved_sincei  )r   __init__r   r	   
setdefaultr   super)selfargskwargs	__class__s      [/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/bulgaria.pyr   zBulgaria.__init__4   sV    ""4)@A&&t,/+BC*D1$)&)    dtsexcluded_namesreturnNc                     t        |      D ]A  }| j                  |      s| j                  |      D ]  }||vs| j                  ||        C y )N)sorted_is_observedget_list_add_observed)r   r   r   dtnames        r   _populate_observedzBulgaria._populate_observed;   sL    +B$$R(b)~-&&r40 * r   c                    t               }|j                  | j                  t        d                   |j                  | j	                  t        d                   | j                  t        d             | j                  t        d             t        d      }| j                  |       | j                  |       |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d	                   |j                  | j                  t        d
                   |j                  | j                  t        d                   t        d      }|j                  | j                  |             |j                  | j!                  |             | j"                  r4| j%                  || j                  d      | j                  d      h       y y )Nu   Нова годинаu[   Ден на Освобождението на България от османско игоu   Велики петъкu   Велика съботаu   Великденuk   Ден на труда и на международната работническа солидарностu[   Гергьовден, Ден на храбростта и Българската армияu   Ден на светите братя Кирил и Методий, на българската азбука, просвета и култура и на славянската книжовностu$   Ден на Съединениетоu>   Ден на Независимостта на Българияu   Бъдни вечерu#   Рождество Христово)r   )setadd_add_new_years_daytr_add_holiday_mar_3_add_good_friday_add_holy_saturday_add_easter_sunday_add_easter_monday_add_labor_day_add_holiday_may_6_add_holiday_may_24_add_holiday_sep_6_add_holiday_sep_22_add_christmas_eve_add_christmas_day_add_christmas_day_twoobservedr(   )r   dts_observedr'   s      r   _populate_public_holidaysz"Bulgaria._populate_public_holidaysC   s   u 	004K1LMN##B  (E  %F  G	
 	b!:;< 	#> ?@ $%%%  $Q  !R  S	

 	##B  (E  %F  G	

 	$$m	
 	004Z1[\] 	11"5u2vwx 	004K1LMN 78006744T:;==##dgg6Q.RTXT[T[\nTo-p $  r   c                 8    | j                  t        d             y )Nu/   Ден на народните будители)_add_holiday_nov_1r-   )r   s    r   _populate_school_holidaysz"Bulgaria._populate_school_holidays   s    #T UVr   )__name__
__module____qualname____doc__countrydefault_languager-   observed_labelr   r   supported_categoriessupported_languages
start_yearr   r*   r   strr(   r=   r@   __classcell__)r   s   @r   r   r      si    * G45N"F+/J*1c$i 1S 1d 1;zWr   r   c                       e Zd Zy)r   NrA   rB   rC    r   r   r   r          r   r   c                       e Zd Zy)BLGNrN   rO   r   r   rR   rR      rP   r   rR   N)datetimer   r   r-   !holidays.calendars.julian_revisedr   holidays.constantsr   r   holidays.groupsr   r	   holidays.observed_holiday_baser
   r   r   r   rR   rO   r   r   <module>rX      sI     ! E - D WlW"$57L lW^	 		( 	r   