
    ih+                         d dl m Z d dlmZmZ d dlmZmZ d dlm	Z	  G d de	ee      Z
 G d de
      Z G d	 d
e
      Zy)    )gettext)
GOVERNMENTPUBLIC)ChristianHolidaysInternationalHolidays)HolidayBasec                        e Zd ZdZdZdZdZdZdddd	d
dddZe	e
fZdZd fdZddZd Zd Zd Zd Zd Zd Zd Zd Z xZS )AndorrauB  Andorra holidays.

    References:
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Andorra>
        * [Andorra's Constitution](https://web.archive.org/web/20250506145838/https://www.bopa.ad/Legislacio/Detall?doc=7586)
        * [Government holidays source](https://web.archive.org/web/20241005040546/https://seu.consellgeneral.ad/calendariPublic/show)
        * [2025](https://web.archive.org/web/20250506142149/https://www.bopa.ad/Documents/Detall?doc=GD_2024_10_24_14_36_16)

    Subdivisions holidays:
        * Canillo:
            * [2020](https://web.archive.org/web/20250506143618/https://www.bopa.ad/Documents/Detall?doc=QCH20191209_09_01_14)
            * [2021](https://web.archive.org/web/20250506143707/https://www.bopa.ad/Documents/Detall?doc=QCH20201130_11_52_35)
            * [2022](https://web.archive.org/web/20250506143404/https://www.bopa.ad/Documents/Detall?doc=QCD20211126_12_16_57)
            * [2023](https://web.archive.org/web/20250506143725/https://www.bopa.ad/Documents/Detall?doc=QCH20221010_11_26_39)
            * [2024](https://web.archive.org/web/20250506143740/https://www.bopa.ad/Documents/Detall?doc=QCH_2023_12_06_16_16_52)
            * [2025](https://web.archive.org/web/20250506144017/https://www.bopa.ad/Documents/Detall?doc=QCH_2024_10_10_11_42_15)
        * Encamp:
            * [2024](https://web.archive.org/web/20241201165207/https://www.bopa.ad/Documents/Detall?doc=QEH_2023_12_15_13_03_32)
            * [2025](https://web.archive.org/web/20241212121414/https://www.bopa.ad/Documents/Detall?doc=QEH_2024_11_27_10_29_49)
        * La Massana:
            * [2020](https://web.archive.org/web/20250506144157/https://www.bopa.ad/Documents/Detall?doc=QMH20191209_09_08_10)
            * [2021](https://web.archive.org/web/20250506144241/https://www.bopa.ad/Documents/Detall?doc=QMH20201218_11_52_59)
            * [2022](https://web.archive.org/web/20250506144526/https://www.bopa.ad/Documents/Detall?doc=QMH20211116_12_23_19)
            * [2023](https://web.archive.org/web/20250506144455/https://www.bopa.ad/Documents/Detall?doc=QMH20221216_12_41_13)
            * [2024](https://web.archive.org/web/20250506144500/https://www.bopa.ad/Documents/Detall?doc=QMH_2023_12_11_10_54_27)
            * [2025](https://web.archive.org/web/20250506144645/https://www.bopa.ad/Documents/Detall?doc=QMH_2024_11_19_09_10_48)
        * Ordino:
            * [2020](https://web.archive.org/web/20250506144555/https://www.bopa.ad/Documents/Detall?doc=QOH20191127_11_43_45)
            * [2021](https://web.archive.org/web/20250506144713/https://www.bopa.ad/Documents/Detall?doc=QOH20201229_12_24_42)
            * [2022](https://web.archive.org/web/20250506144715/https://www.bopa.ad/Documents/Detall?doc=QOH20211125_15_57_33)
            * [2023](https://web.archive.org/web/20250506144738/https://www.bopa.ad/Documents/Detall?doc=QOH20221228_10_02_52)
            * [2024](https://web.archive.org/web/20250506144729/https://www.bopa.ad/Documents/Detall?doc=QOH_2023_12_28_09_52_56)
            * [2025](https://web.archive.org/web/20250506144815/https://www.bopa.ad/Documents/Detall?doc=QOH_2024_11_28_13_42_34)
        * Sant Julià de Lòria:
            * [2020](https://web.archive.org/web/20250506144715/https://www.bopa.ad/Documents/Detall?doc=QSH20191122_11_45_30)
            * [2021](https://web.archive.org/web/20250506144827/https://www.bopa.ad/Documents/Detall?doc=QSH20201223_14_47_40)
            * [2022](https://web.archive.org/web/20250506144843/https://www.bopa.ad/Documents/Detall?doc=QSH20211217_08_48_18)
            * [2023](https://web.archive.org/web/20250506144859/https://www.bopa.ad/Documents/Detall?doc=QSH20221216_10_26_20)
            * [2024](https://web.archive.org/web/20250506145411/https://www.bopa.ad/Documents/Detall?doc=QSH_2023_12_07_11_20_16)
            * [2025](https://web.archive.org/web/20250506145311/https://www.bopa.ad/Documents/Detall?doc=QSH_2024_12_17_17_06_23)
        * Andorra la Vella:
            * [2020](https://web.archive.org/web/20250506142322/https://www.bopa.ad/Documents/Detall?doc=QAH20191128_08_58_08)
            * [2021](https://web.archive.org/web/20250506142457/https://www.bopa.ad/Documents/Detall?doc=QAH20201210_11_13_19)
            * [2022](https://web.archive.org/web/20250506142545/https://www.bopa.ad/Documents/Detall?doc=QAH20211111_16_06_47)
            * [2023](https://web.archive.org/web/20250506142748/https://www.bopa.ad/Documents/Detall?doc=QAH20221117_10_31_45)
            * [2024](https://web.archive.org/web/20250506142903/https://www.bopa.ad/Documents/Detall?doc=QAH_2023_11_17_12_40_42)
            * [2025](https://web.archive.org/web/20250506143036/https://www.bopa.ad/Documents/Detall?doc=QAH_2024_11_21_09_44_47)
        * Escaldes-Engordany:
            * [Parish foundation](https://web.archive.org/web/20130409081302/http://www.andorra.ad/ca-ES/Andorra/Pagines/comu_escaldes.aspx)
            * [2020](https://web.archive.org/web/20250506145337/https://www.bopa.ad/Documents/Detall?doc=QXH20200113_11_32_08)
            * [2021](https://web.archive.org/web/20250506145439/https://www.bopa.ad/Documents/Detall?doc=QXH20210127_13_33_13)
            * [2022](https://web.archive.org/web/20250506145442/https://www.bopa.ad/Documents/Detall?doc=QXH20220103_09_55_00)
            * [2023](https://web.archive.org/web/20250506145436/https://www.bopa.ad/Documents/Detall?doc=QXH20230102_11_21_25)
            * [2024](https://web.archive.org/web/20250506145940/https://www.bopa.ad/Documents/Detall?doc=QXH_2024_01_05_14_43_32)
            * [2025](https://web.archive.org/web/20250506145955/https://www.bopa.ad/Documents/Detall?doc=QXH_2024_12_23_11_47_04)
    ADcai  )02030405060708r   r   r   r   r   r   r   )CanilloEncampz
La MassanaOrdinou   Sant Julià de LòriazAndorra la VellazEscaldes-Engordany)r   en_USukc                 x    t        j                  |        t        j                  |        t        |   |i | y N)r   __init__r   super)selfargskwargs	__class__s      Z/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/andorra.pyr   zAndorra.__init__g   s1    ""4(&&t,$)&)    c                    | j                  t        d             | j                  t        d             | j                  t        d             | 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                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             y )Nz	Cap d'AnyReisCarnavali  u   Dia de la ConstituciózDivendres SantzDilluns de PasquazFesta del treballzDilluns de Pentecostau
   AssumpciózNostra Senyora de Meritxellz
Tots Santsu   Immaculada ConcepcióNadalzSant Esteve)_add_new_years_daytr_add_epiphany_day_add_carnival_monday_year_add_holiday_mar_14_add_good_friday_add_easter_monday_add_labor_day_add_whit_monday_add_assumption_of_mary_day_add_holiday_sep_8_add_all_saints_day_add_immaculate_conception_day_add_christmas_day_add_christmas_day_twor   s    r!   _populate_public_holidaysz!Andorra._populate_public_holidaysl   s3   ;0 	r&z* 	!!"Z.1::$$R(@%AB 	b!123 	#6 78 	B234 	b!89: 	((L)9: 	#@ AB 	  L!12 	++B/F,GH 	7, 	##B}$56r"   c                 8    | j                  t        d             y )NzSant Roc)_add_holiday_aug_16r(   r7   s    r!   #_populate_subdiv_02_public_holidaysz+Andorra._populate_subdiv_02_public_holidays   s      J0r"   c                      y r    r7   s    r!   #_populate_subdiv_03_public_holidaysz+Andorra._populate_subdiv_03_public_holidays   s    r"   c                 8    | j                  t        d             y )NzSant Antoni)_add_holiday_jan_17r(   r7   s    r!   #_populate_subdiv_04_public_holidaysz+Andorra._populate_subdiv_04_public_holidays   s      M!23r"   c                 8    | j                  t        d             y )Nz	Sant Pere)_add_saints_peter_and_paul_dayr(   r7   s    r!   #_populate_subdiv_05_public_holidaysz+Andorra._populate_subdiv_05_public_holidays   s    ++B{O<r"   c                     | j                  t        d             | j                  t        d             t        d      }| j                  |       | j	                  |       y )Nu   Sant Juliàu   Diada de Canòlichu$   Festa Major de Sant Julià de Lòria)_add_holiday_jan_7r(   _add_holiday_last_sat_of_may(_add_holiday_2_days_past_last_sat_of_jul(_add_holiday_3_days_past_last_sat_of_julr   names     r!   #_populate_subdiv_06_public_holidaysz+Andorra._populate_subdiv_06_public_holidays   sT    = 12 	))"-A*BC 8955d;55d;r"   c                     t        d      }| j                  |       | j                  |       | j                  |       y )NzFesta Major d'Andorra la Vella)r(   _add_holiday_1st_sat_of_aug&_add_holiday_1_day_past_1st_sat_of_aug'_add_holiday_2_days_past_1st_sat_of_augrJ   s     r!   #_populate_subdiv_07_public_holidaysz+Andorra._populate_subdiv_07_public_holidays   s7    23((.33D944T:r"   c                 ,   | j                   dk  ry | j                  t        d             t        d      }| j                   dk\  r| j                  |       n| j	                  |       t        d      }| j                  |       | j                  |       y )Ni  zSant Miquel d'Engolastersu%   Diada de la creació de la parròquiai  z Festa Major d'Escaldes-Engordany)r+   _add_holiday_may_7r(    _add_holiday_1st_sun_from_jun_14_add_holiday_jun_14_add_holiday_jul_25_add_holiday_jul_26rJ   s     r!   #_populate_subdiv_08_public_holidaysz+Andorra._populate_subdiv_08_public_holidays   s    :: 	#> ?@ 9:::11$7$$T* 45  &  &r"   c                 >   | j                  d      }| j                  || j                  d      z         | j                  || j                  d      z         | j                  || j                  d      z         | j	                  || j                  d      z         y )Nz%s (a partir de les 13h)u   Vigília de ReiszDijous Santu   Vigília de Nadalu   Vigília de Cap d'Any)r(   _add_holiday_jan_5_add_holy_thursday_add_christmas_eve_add_new_years_eve)r   begin_time_labels     r!   _populate_government_holidaysz%Andorra._populate_government_holidays   s    77#=> 	 0477;M3N NO 	 0477=3I IJ 	 0477;N3O OP 	 0477;R3S STr"   )returnN)__name__
__module____qualname____doc__countrydefault_language
start_yearsubdivisionssubdivisions_aliasesr   r   supported_categoriessupported_languagesr   r8   r;   r>   rA   rD   rL   rQ   rX   r_   __classcell__)r    s   @r!   r
   r
      s    7r GJL !% " '//*
*7X14=
<;'(Ur"   r
   c                       e Zd Zy)r   Nra   rb   rc   r=   r"   r!   r   r          r"   r   c                       e Zd Zy)ANDNrn   r=   r"   r!   rq   rq      ro   r"   rq   N)r   r(   holidays.constantsr   r   holidays.groupsr   r   holidays.holiday_baser   r
   r   rq   r=   r"   r!   <module>ru      sB    " 1 D -IUk,.C IUX	 		' 	r"   