
    x7#h&                         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)OPTIONALPUBLIC)ChristianHolidaysInternationalHolidays)HolidayBasec                   H    e Zd ZdZdZdZeefZdZ	dZ
i dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+Zd,Zd-ZdF fd.Zd/ Zd0 Z fd1Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ Z dA Z!dB Z"dC Z#dD Z$dE Z% xZ&S )GPortugalu  Portugal holidays.

    References:
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Portugal>
        * [Labour Day](https://www.e-konomista.pt/dia-do-trabalhador/)
        * Portugal Day - Decreto 17.171
        * Restoration of Independence Day - Gazeta de Lisboa, 8 de Dezembro
            de 1823 (n.º 290), pp. 1789 e 1790
        * Azores:
            * <https://files.dre.pt/1s/1980/08/19200/23052305.pdf>
        * Madeira:
            * <https://files.dre.pt/1s/1979/11/25900/28782878.pdf>
            * <https://files.dre.pt/1s/1989/02/02800/04360436.pdf>
            * <https://files.dre.pt/1s/2002/11/258a00/71837183.pdf>
    PTpt_PTi	  )0102030405060708091011121314151617182030Aveiror   Bejar   Bragar   u	   Bragançar   zCastelo Brancor   Coimbrar   u   Évorar   Faror   Guardar   Leiriar   Lisboar   
Portalegrer   Portor   u	   Santarémr   u   Setúbalr   zViana do Castelor   z	Vila Realr   r   r   r    )Viseuu   Região Autónoma dos Açoresu   Região Autónoma da Madeira)en_USr   uk)Extc                 x    t        j                  |        t        j                  |        t        |   |i | y )N)r   __init__r   super)selfargskwargs	__class__s      [/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/portugal.pyr0   zPortugal.__init__X   s1    ""4(&&t,$)&)    c                    | j                  t        d             | j                  t        d             | j                  t        d             | j                  dk  s| j                  dk\  r| j                  t        d             | j                  dk\  r| j                  t        d             | j                  t        d	             | j                  d
k\  r| j                  t        d             | j                  dk\  r4| j                  t        d             | j                  t        d             | j                  dk\  rwd| j                  cxk  rdk  rn n| j                  t        d             nD| j                  dk\  r| j                  t        d             n| j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             y )NzAno NovozSexta-feira Santau   Páscoai  i  zCorpo de Deusiv  u   Implantação da RepúblicazDia de Todos os Santosi  u   Restauração da Independênciai  zDia da LiberdadezDia do Trabalhadorw  i  i  u&   Dia de Camões, de Portugal e da Raçai  u9   Dia de Portugal, de Camões e das Comunidades PortuguesaszDia de Portugalu   Assunção de Nossa Senhorau   Imaculada ConceiçãozDia de Natal)_add_new_years_daytr_add_good_friday_add_easter_sunday_year_add_corpus_christi_day_add_holiday_oct_5_add_all_saints_day_add_holiday_dec_1_add_holiday_apr_25_add_labor_day_add_holiday_jun_10_add_assumption_of_mary_day_add_immaculate_conception_day_add_christmas_dayr2   s    r6   _populate_public_holidaysz"Portugal._populate_public_holidays]   s   :/ 	b!456 	9. ::t!3((O)<=zzT!''+H(IJ $$R(@%ABzzT!''+L(MN::$$R(:%;< #7 89::tzz)T)((,T)UVt#((RS ((,=)>? 	((,I)JK 	++B/F,GH 	> 23r7   c                    | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             y)z
        Adds extended days that most people have as a bonus from their
        companies:

        - Carnival
        - the day before and after xmas
        - the day before the new year
        - Lisbon's city holiday
        Carnaval   Dia de Santo Antóniou   Véspera de Natalz26 de Dezembrou   Véspera de Ano NovoN)_add_carnival_tuesdayr;   _add_holiday_jun_13_add_christmas_eve_add_christmas_day_two_add_new_years_everI   s    r6   _populate_optional_holidaysz$Portugal._populate_optional_holidays   sn      	""2j>2 	  $;!<= 	#6 78 	##B'7$89 	#9 :;r7   c                     | j                   dk\  rt        | 	          | j                  dk(  r| j	                          y y )Nr9   r.   )r>   r1   _populate_subdiv_holidayssubdivrS   )r2   r5   s    r6   rU   z"Portugal._populate_subdiv_holidays   s7    ::G-/;;%,,.  r7   c                 8    | j                  t        d             y )NzDia de Santa Joana)_add_holiday_may_12r;   rI   s    r6   #_populate_subdiv_01_public_holidaysz,Portugal._populate_subdiv_01_public_holidays         $8!9:r7   c                 8    | j                  t        d             y )Nu   Quinta-feira da Ascensão)_add_ascension_thursdayr;   rI   s    r6   #_populate_subdiv_02_public_holidaysz,Portugal._populate_subdiv_02_public_holidays   s    $$R(C%DEr7   c                 8    | j                  t        d             y Nu   Dia de São João_add_saint_johns_dayr;   rI   s    r6   #_populate_subdiv_03_public_holidaysz,Portugal._populate_subdiv_03_public_holidays   s    !!"%8"9:r7   c                 8    | j                  t        d             y )Nu    Dia de Nossa Senhora das Graças)_add_holiday_aug_22r;   rI   s    r6   #_populate_subdiv_04_public_holidaysz,Portugal._populate_subdiv_04_public_holidays   s      $F!GHr7   c                 8    | j                  t        d             y )Nu!   Dia de Nossa Senhora de Mércoles) _add_holiday_16_days_past_easterr;   rI   s    r6   #_populate_subdiv_05_public_holidaysz,Portugal._populate_subdiv_05_public_holidays   s    --b1T.UVr7   c                 8    | j                  t        d             y )NzDia de Santa Isabel)_add_holiday_jul_4r;   rI   s    r6   #_populate_subdiv_06_public_holidaysz,Portugal._populate_subdiv_06_public_holidays   s    #8 9:r7   c                 8    | j                  t        d             y )Nu   Dia de São Pedro)_add_saints_peter_and_paul_dayr;   rI   s    r6   #_populate_subdiv_07_public_holidaysz,Portugal._populate_subdiv_07_public_holidays   s    ++B/B,CDr7   c                 8    | j                  t        d             y )Nu   Dia do Município de Faro)_add_holiday_sep_7r;   rI   s    r6   #_populate_subdiv_08_public_holidaysz,Portugal._populate_subdiv_08_public_holidays   s    #> ?@r7   c                 8    | j                  t        d             y )Nu   Dia do Município da Guarda)_add_holiday_nov_27r;   rI   s    r6   #_populate_subdiv_09_public_holidaysz,Portugal._populate_subdiv_09_public_holidays         $A!BCr7   c                 8    | j                  t        d             y )Nu   Dia do Município de Leiria)_add_holiday_may_22r;   rI   s    r6   #_populate_subdiv_10_public_holidaysz,Portugal._populate_subdiv_10_public_holidays   ru   r7   c                 8    | j                  t        d             y NrM   rO   r;   rI   s    r6   #_populate_subdiv_11_public_holidaysz,Portugal._populate_subdiv_11_public_holidays         $;!<=r7   c                 8    | j                  t        d             y )Nu   Dia do Município de Portalegre)_add_holiday_may_23r;   rI   s    r6   #_populate_subdiv_12_public_holidaysz,Portugal._populate_subdiv_12_public_holidays   s      $E!FGr7   c                 8    | j                  t        d             y r_   r`   rI   s    r6   #_populate_subdiv_13_public_holidaysz,Portugal._populate_subdiv_13_public_holidays   s    !!"%8"9:r7   c                 8    | j                  t        d             y )Nu   Dia de São José)_add_saint_josephs_dayr;   rI   s    r6   #_populate_subdiv_14_public_holidaysz,Portugal._populate_subdiv_14_public_holidays   s    ##B':$;<r7   c                 8    | j                  t        d             y )NzDia de Bocage)_add_holiday_sep_15r;   rI   s    r6   #_populate_subdiv_15_public_holidaysz,Portugal._populate_subdiv_15_public_holidays   s      O!45r7   c                 8    | j                  t        d             y )NzDia de Nossa Senhora da Agonia)_add_holiday_aug_20r;   rI   s    r6   #_populate_subdiv_16_public_holidaysz,Portugal._populate_subdiv_16_public_holidays   s      $D!EFr7   c                 8    | j                  t        d             y rz   r{   rI   s    r6   #_populate_subdiv_17_public_holidaysz,Portugal._populate_subdiv_17_public_holidays   r}   r7   c                 8    | j                  t        d             y )Nu   Dia de São Mateus)_add_holiday_sep_21r;   rI   s    r6   #_populate_subdiv_18_public_holidaysz,Portugal._populate_subdiv_18_public_holidays   rZ   r7   c                 X    | j                   dk\  r| j                  t        d             y y )Ni  u$   Dia da Região Autónoma dos Açores)r>   _add_whit_mondayr;   rI   s    r6   #_populate_subdiv_20_public_holidaysz,Portugal._populate_subdiv_20_public_holidays  s'    ::!!"%K"LM r7   c                     | j                   dk\  r4| j                  | j                   dk\  rt        d      n
t        d             | j                   dk\  r| j                  t        d             y y )Ni  i  uA   Dia da Região Autónoma da Madeira e das Comunidades Madeirensesu#   Dia da Região Autónoma da Madeirai  zPrimeira Oitava)r>   _add_holiday_jul_1r;   rQ   rI   s    r6   #_populate_subdiv_30_public_holidaysz,Portugal._populate_subdiv_30_public_holidays  sg    ::## ::% VW => ::''+<(=> r7   )returnN)'__name__
__module____qualname____doc__countrydefault_languager   r   supported_categories
start_yearsubdivisionssubdivisions_aliasessupported_languages_deprecated_subdivisionsr0   rJ   rS   rU   rY   r]   rb   re   rh   rk   rn   rq   rt   rx   r|   r   r   r   r   r   r   r   r   r   __classcell__)r5   s   @r6   r
   r
      s     G$f-JL,$ 	 	T	
 	$ 	4 	$ 	 	$ 	$ 	$ 	d 	 	T 	D  	D!" 	T#$ )-(,), 3'*
84t<</;F;IW;EADD>H;=6G>;N
?r7   r
   c                       e Zd Zy)r   Nr   r   r    r7   r6   r   r         r7   r   c                       e Zd Zy)PRTNr   r   r7   r6   r   r     r   r7   r   N)r   r;   holidays.constantsr   r   holidays.groupsr   r   holidays.holiday_baser   r
   r   r   r   r7   r6   <module>r      s@    " / D -~?{-/D ~?B	 		( 	r7   