
    ih                         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mZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZ  G d deeee      Z G d d	e      Z G d
 de      Z G d d      Zy)    )gettext)JANAPRJUNAUGSEPOCTDEC)BANKHALF_DAYPUBLIC)ChristianHolidaysInternationalHolidaysStaticHolidays)ObservedHolidayBaseMON_TO_NEXT_TUESAT_TO_NEXT_MONSUN_TO_NEXT_MONSUN_TO_NEXT_TUESAT_SUN_TO_NEXT_MONSAT_SUN_TO_NEXT_MON_TUEALL_TO_NEXT_MONc            	            e Zd ZdZdZdZ ed      ZdZdZ	ddd	d
dddddZ
eeefZdZedefd       Zedefd       Z fdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd  Z d! Z! xZ"S )"	Australiaa
  Australia holidays.

    References:
          * <https://web.archive.org/web/20250414072303/https://www.qld.gov.au/recreation/travel/holidays>
          * [ACT Holidays Act 1958](https://web.archive.org/web/20250322061953/https://www.legislation.act.gov.au/a/1958-19/)
          * [ACT 2013-2023](https://web.archive.org/web/20240401072340/https://www.cmtedd.act.gov.au/archived-content/holidays/previous-years)
          * [NSW Banks and Bank Holidays Act 1912](https://web.archive.org/web/20241107225523/https://legislation.nsw.gov.au/view/html/repealed/current/act-1912-043)
          * [NSW Public Holidays Act 2010](https://web.archive.org/web/20250316173922/https://legislation.nsw.gov.au/view/html/inforce/current/act-2010-115)
          * [NT Public Holidays Act 1981](https://web.archive.org/web/20250315072128/https://legislation.nt.gov.au/api/sitecore/Act/PDF?id=12145)
          * [QLD Holidays Act 1983](https://web.archive.org/web/20250404230918/https://www.legislation.qld.gov.au/view/html/inforce/current/act-1983-018)
          * [QLD 2013-2028](https://web.archive.org/web/20150703042947/http://www.qld.gov.au/recreation/travel/holidays/public/)
          * [SA Holidays Act 1910](https://web.archive.org/web/20250420203417/https://www.legislation.sa.gov.au/LZ/C/A/HOLIDAYS%20ACT%201910.aspx)
          * [SA Public Holidays Act 2023](https://web.archive.org/web/20250429092113/https://www.legislation.sa.gov.au/lz?path=/C/A/Public%20Holidays%20Act%202023)
          * [SA 2023-2024](https://web.archive.org/web/20250404084235/https://www.safework.sa.gov.au/resources/public-holidays)
          * [SA 2007-2021](https://web.archive.org/web/20240610084716/https://www.safework.sa.gov.au/__data/assets/pdf_file/0007/235474/Public-Holidays-since-2007.pdf)
          * [TAS Statutory Holidays Act 2000](https://web.archive.org/web/20250423095807/https://www.legislation.tas.gov.au/view/html/inforce/current/act-2000-096)
          * [VIC Public Holidays Act 1993](https://web.archive.org/web/20250212090816/https://www.legislation.vic.gov.au/in-force/acts/public-holidays-act-1993/027)
          * [VIC Minister appointment](https://web.archive.org/web/20240328142238/https://www.gazette.vic.gov.au/gazette/Gazettes2015/GG2015S229.pdf)
          * [VIC 2018-2024](https://web.archive.org/web/20250422235530/https://business.vic.gov.au/business-information/public-holidays)
          * [WA Public and Bank Holidays Act 1972](https://web.archive.org/web/20241106220940/https://www.legislation.wa.gov.au/legislation/statutes.nsf/law_a639.html)
          * [WA 2019-2023](https://web.archive.org/web/20240805123535/https://www.commerce.wa.gov.au/labour-relations/previous-years-public-holiday-dates)
    AUen_AUz%s (observed)i	  )ACTNSWNTQLDSATASVICWAr   r   r   r    r!   r"   r#   r$   )zAustralian Capital TerritoryzNew South WaleszNorthern Territory
QueenslandzSouth AustraliaTasmaniaVictoriazWestern Australia)r   en_USthreturnc                 z    d| j                   cxk  rdk  sn | j                   dk\  rt        d      S t        d      S )z"Sovereign's birthday holiday name.n  i    zKing's BirthdayzQueen's Birthday_yeartrselfs    \/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/australia.pysovereign_birthdayzAustralia.sovereign_birthdayT   s@     tzz)T)TZZ4-?  !	

 &'	
    c                 L    | j                   dk\  rt        d      S t        d      S )zAustralia Day holiday name.  Australia DayAnniversary Dayr.   r1   s    r3   australia_dayzAustralia.australia_day_   s/     zzT! 	

 %&	
r5   c                     t        j                  |        t        j                  |        t        j                  | t               |j                  dt               t        |   |i | y )Nobserved_rule)r   __init__r   r   AustraliaStaticHolidays
setdefaultr   super)r2   argskwargs	__class__s      r3   r=   zAustralia.__init__j   sS    ""4(&&t,&=>/+>?$)&)r5   c                    | j                  t        d             | j                  t        d             d| j                  cxk  rdk  rIn nF| j                  dk\  r| j	                  | j
                         n| j                  | j
                         | j                  ry | j                  t        d             | j                  dk\  r| j                  | j                         | j                  dk\  r| j                  t        d             | j                  t        d	             | j                  t        d
             y )NzGood FridayzEaster Mondayr,   r7   x  New Year's Day  	ANZAC DayChristmas Day
Boxing Day)_add_good_fridayr0   _add_easter_mondayr/   _add_holiday_jun_3r4   _add_holiday_nov_9subdiv_add_new_years_day_add_holiday_jan_26r:   _add_anzac_day_add_christmas_day_add_christmas_day_twor1   s    r3   _populate_public_holidaysz#Australia._populate_public_holidaysq   s    b/0 	? 34 4::%%zzT!''(?(?@''(?(?@;;
 	#3 45 ::$$T%7%78::;0 	? 34 	##B|$45r5   c           	         | j                  t        d            }| j                  dk\  r| j                  |       n<| j                  dk\  r-| j	                  || j                  dk\  rt
        nt        d       | j                  dk\  rW| j                  | j                        }| j                  dk\  r-| j	                  || j                  dk\  rt
        nt        d       | j                  d	k\  rmt        d
      }| j                  dk  s| j                  dk(  r| j                  |       n2| j                  dk  r| j                  |       n| j                  |       | j                  dk\  rA| j                  t        d            }| j                  dk\  r| j	                  |t        d       | j                  t        d             | j                  dk\  r| j                  t        d             | j                  dk\  r| j!                  t        d             | j                  dk\  r| j#                  | j$                         d| j                  cxk  rdk  rfn nct&        dft(        dft(        dft&        dft&        dft&        dft&        dft&        dfd}| j+                  t        d       || j                            | j-                  t        d!             | j/                  t        d"            }| j                  d#k\  r| j                  |t0        $       nJ| j                  dk\  r;| j	                  || j                  d%k\  rt0        t2        z   nt        t2        z   d       | j5                  t        d&            }| j                  d#k\  r| j                  |t0        $       y | j                  dk\  r.| j	                  || j                  d%k\  rt
        nt        d       y y )'NrF     i    Fruleshow_observed_label`  i  iy  zCanberra Dayi    i  rG   rH   Easter Saturday  Easter Sundayi  zReconciliation Day         
                  )rb     r]       rW   r_   rc   zFamily & Community Day
Labour DayrJ   rm   rZ   i  rI   )rP   r0   r/   _add_observed_move_holidayr   r   rQ   r:   r   _add_holiday_mar_12_add_holiday_3rd_mon_of_mar_add_holiday_2nd_mon_of_marrR   _add_holy_saturday_add_easter_sunday _add_holiday_1st_mon_from_may_27_add_holiday_2nd_mon_of_junr4   r   r	   _add_holiday_add_holiday_1st_mon_of_octrT   r   r   rS   )r2   dtnamefc_datess       r3   $_populate_subdiv_act_public_holidaysz.Australia._populate_subdiv_act_public_holidays   sX    $$R(8%9:::r"ZZ4,0JJ$,>(O$)   ::))$*<*<=BzzT!""04

d0B,(- #  ::n%DzzT!TZZ4%7((.t#006006
 ::$$R_5BzzT!""2OQV"W 	#4 56::##B$78::11"5I2JK ::,,T-D-DE 4::%%BiBiAhBiBiBiBiBi	H b!9:HTZZ<PQ 	((L)9: ((L)9:::r(?@ZZ4::% .?%7$)   $$R%89::r(?@ZZ4,0JJ$,>(O$)    r5   c                 8    | j                  t        d             y )NBank Holiday)_add_holiday_1st_mon_of_augr0   r1   s    r3   "_populate_subdiv_act_bank_holidaysz,Australia._populate_subdiv_act_bank_holidays  s    ((N);<r5   c                    | j                  | j                  t        d            | j                  dk\  rt        nt
               | j                  dk\  rn| j                  | j                  dk\  rt        d      n
t        d            }| j                  dk\  r| j                  |d	       n| j                  |t
               | j                  t        d
             | j                  dk\  r| j                  t        d             | j                  dk\  r@| j                  t        d            }| j                  dk  r| j                  |t
               | j                  t        d             | j                  dk\  r| j                  | j                         d| j                  cxk  rdk  rn n| j                  t        d             | j                  | j                  t        d            | j                  dk\  rt         nt"               | j                  | j%                  t        d            | j                  dk\  rt                y t
               y )NrF   rk   ro   r\   i  r8   r9   Fr[   r^   r`   rG   rH   rb   rn   ra   rE   r   rI   rJ   )rp   rP   r0   r/   r   r   rQ   rq   ru   rv   rR   rz   rx   r4   r   rS   r   r   rT   r2   r{   s     r3   $_populate_subdiv_nsw_public_holidaysz.Australia._populate_subdiv_nsw_public_holidays  s   
 	##B'7$89(,

d(:$ 	 	
 ::)) ::% ?# )*B zzT!""25"A""2O"< 	#4 56::##B$78 ::$$R_5BzzT!""2O"< 	((L)9: ::,,T-D-DE4::%%,,R-?@ 	##B$78,0JJ$,>(O 	 	
 	''<(89,0JJ$,>( 	 	
 ET 	 	
r5   c                 X    | j                   dk\  r| j                  t        d             y y )Nrk   r   )r/   r   r0   r1   s    r3   "_populate_subdiv_nsw_bank_holidaysz,Australia._populate_subdiv_nsw_bank_holidays^  s&    ::,,R-?@ r5   c                    | j                  t        d            }| j                  dk\  r| j                  |       n"| j                  dk\  r| j	                  |d       | j                  dk\  r=| j                  | j                        }| j                  dk\  r| j	                  |d       | j                  dk\  rA| j                  t        d            }| j                  dk\  r| j	                  |t        d	       | j                  t        d
             | j                  dk\  r| j                  t        d             | j                  t        d             | j                  dk\  r| j                  | j                         | j                  t        d             | j                  t        d            }| j                  dk\  r| j                  |t         t"        z          n.| j                  dk\  r| j	                  |t         t"        z   d	       | j%                  t        d            }| j                  dk\  r| j                  |       y | j                  dk\  r| j	                  |d       y y )NrF   rc   i  Fr   r\   rG   rH   rY   r^     r`   zMay Dayra   z
Picnic DayrJ   r-   ro   i  rI   r_   )rP   r0   r/   rp   rq   rQ   r:   rR   r   ru   rv   _add_holiday_1st_mon_of_mayrx   r4   r   rT   r   r   rS   r   s     r3   #_populate_subdiv_nt_public_holidaysz-Australia._populate_subdiv_nt_public_holidaysc  s    $$R(8%9:::r"ZZ4ru= ::))$*<*<=BzzT!""25"A
 ::$$R_5BzzT!""2OQV"W 	#4 56::##B$78 	((I7 ::,,T-D-DE 	((L)9: ((L)9:::r(?/(QRZZ40?BX]   $$R%89::r"ZZ4ru=  r5   c                     | j                   dk\  rX| j                  d      }| j                  || j                  d      z         | j                  || j                  d      z         y y )Nr_   %s (from 7pm)Christmas EveNew Year's Ever/   r0   _add_christmas_eve_add_new_years_ever2   begin_time_labels     r3   %_populate_subdiv_nt_half_day_holidaysz/Australia._populate_subdiv_nt_half_day_holidays  a    ::#ww7 ##$4tww7O$OP ##$4tww?O7P$PQ r5   c                 x   | j                  t        d            }| j                  dk\  r| j                  |       n'| j                  dk\  r| j	                  |t
        d       | j                  dk\  rW| j                  | j                        }| j                  dk\  r-| j	                  || j                  dk\  rt        nt        d       | j                  dk\  rA| j                  t        d	            }| j                  dk\  r| j	                  |t
        d       | j                  t        d
             | j                  dk\  r| j                  t        d             t        d      }d| j                  cxk  rdk  rn n| j                  |       n| j                  |       | j                  dk\  rU| j                  dk  r+| j                  dk7  r| j                  | j                          n| j                  | j                          t"        dft$        dfd}t        d      }|j'                  | j                        x}r| j)                  ||       n| j+                  |       | j-                  t        d            }| j                  dk\  r| j                  |t.               n.| j                  dk\  r| j	                  |t
        t0        z   d       | j3                  t        d            }| j                  dk\  r| j                  |t.               y | j                  dk\  r| j	                  |t
        d       y y )NrF   r]     FrY   r\   i  rG   rH   r^   rc   r`   rn   rl   rW   ra      rh     i  zThe Royal Queensland ShowrJ   rk   ro   rI   )rP   r0   r/   rp   rq   r   rQ   r:   r   r   rR   ru   rv   rz   r   rx   r4   r   r	   getry    _add_holiday_1st_wed_from_aug_10rT   r   r   rS   )r2   r{   r|   
ekka_datess       r3   $_populate_subdiv_qld_public_holidaysz.Australia._populate_subdiv_qld_public_holidays  s    $$R(8%9:::r"ZZ4rUS ::))$*<*<=BzzT!""04

d0B,(- #  ::$$R_5BzzT!""2OQV"W 	#4 56::##B$78 ,4::%%,,T2,,T2 ::zzT!djjD&8001H1HI001H1HI ))


 -.

++2+dB' 11$7 ((L)9:::r(?@ZZ4?:PU   $$R%89::r(?@ZZ4rUS  r5   c                    | j                  t        d            }| j                  dk\  r| j                  |       na| j                  dk\  r0| j                  |t               | j                  |t        d       n"| j                  dk\  r| j                  |d       | j                  d	k\  r| j                  | j                        }d
| j                  cxk  rdk  sn | j                  dk\  r| j                  |d       nf| j                  dk\  r0| j                  |t               | j                  |t        d       n'| j                  dk\  r| j                  |t        d       t        d      }| j                  dk\  r| j                  |       n | j                  dk\  r| j                  |       | j                  t        d             | j                  dk\  r| j                  t        d             | j                  dk\  r@| j                  t        d            }| j                  dk  r| j                  |t               | j                  dk\  r| j                  | j                          | j#                  t        d             | j%                  t        d            }| j                  dk\  r| j                  |t&        t(        z          n| j                  dk\  r7| j                  |t*        t(        z          | j                  |t        d       nQ| j                  dk\  r | j                  |t&        t(        z   d       n"| j                  dk\  r| j                  |d       | j-                  t        d            }| j                  dk\  r| j                  |       y | j                  dk\  r0| j                  |t               | j                  |t        d       y | j                  dk\  r| j                  |d       y y )NrF   r   i  ro   FrY   r   r   r7       zAdelaide Cup Dayi    r^   r`   rG   rH   r-   ra   rn   zProclamation DayrX   rI   )rP   r0   r/   rp   r   rq   r   rQ   r:   r   rt   _add_holiday_3rd_mon_of_mayru   rv   rR   rx   r4   rz   rT   r   r   r   rS   )r2   r{   r|   s      r3   #_populate_subdiv_sa_public_holidaysz-Australia._populate_subdiv_sa_public_holidays  sj    $$R(8%9:::r"ZZ4r8rUSZZ4ru= ::))$*<*<=Btzz)T)TZZ4-?""25"At#""2O"<""2OQV"Wt#""2OQV"W $%::,,T2ZZ4,,T2 	#4 56::##B$78::$$R_5BzzT!""2O"< ::,,T-D-DE 	((L)9: ((,>)?@::r(?/(QRZZ4r/(IJrUSZZ40?BX]   ZZ4ru= $$R%89::r"ZZ4r8rUSZZ4ru=  r5   c                     | j                   dk\  rX| j                  d      }| j                  || j                  d      z         | j                  || j                  d      z         y y )Nr]   r   r   r   r   r   s     r3   %_populate_subdiv_sa_half_day_holidaysz/Australia._populate_subdiv_sa_half_day_holidays}  r   r5   c                    | j                  t        d            }| j                  dk\  r| j                  |d       | j                  dk\  r=| j	                  | j
                        }| j                  dk\  r| j                  |d       | j                  t        d             | j                  dk  r| j                  t        d             | j                  d	k\  r| j                  t        d
             | j                  dk\  r| j                  | j                         | j                  t        d            }| j                  dk\  r| j                  |t               n'| j                  dk\  r| j                  |t        d       | j                  t        d            }| j                  dk\  r| j                  |t        d       y y )NrF   i  Fr   r\   zEight Hours Dayrb   zEaster TuesdayrG   rH   ra   rI   ro   i  rY   rJ   )rP   r0   r/   rq   rQ   r:   rt   _add_easter_tuesdayrR   rx   r4   rS   rp   r   rT   r   s     r3   $_populate_subdiv_tas_public_holidaysz.Australia._populate_subdiv_tas_public_holidays  s   
 $$R(8%9:::ru= ::))$*<*<=BzzT!""25"A 	((,=)>?::$$R(8%9:::;0 ::,,T-D-DE $$R%89::r(?@ZZ4r(?UZ[ ((L)9:::r(?UZ[ r5   c                    | j                  t        d            }| j                  dk\  r| j                  |       nN| j                  dk\  r| j	                  |t
        d       n&| j                  dk\  r| j                  |t
               | j                  dk\  r=| j                  | j                        }| j                  dk\  r| j	                  |d	       | j                  t        d
             | j                  dk\  r| j                  t        d             | j                  dk\  r| j                  t        d             | j                  dk\  r| j                  t        d             | j                  dk\  r| j                  | j                         | j                  dk\  rdt        dft        dft        dfd}t        d      }|j!                  | j                        x}r| j#                  ||       n| j%                  |       | j                  dk\  r| j'                  t        d             | j)                  t        d            }| j                  dk\  r| j                  |t*               n'| j                  dk\  r| j	                  |t*        d       | j-                  t        d            }| j                  dk\  r| j                  |t*               y | j                  dk\  r| j	                  |t
        d       y y )NrF   i  i  FrY   r   ro   r\   r   rn   r   r^   r_   r`   rG   rH   ra   rW      rg      )rW   r_   r   zGrand Final DayzMelbourne Cup DayrI   i  i  rJ   )rP   r0   r/   rp   rq   r   rQ   r:   rt   ru   rv   rR   rx   r4   r	   r   r   ry   (_add_holiday_1_day_prior_last_sat_of_sep_add_holiday_1st_tue_of_novrS   r   rT   )r2   r{   grand_final_datesr|   s       r3   $_populate_subdiv_vic_public_holidaysz.Australia._populate_subdiv_vic_public_holidays  s    $$R(8%9:::r"ZZ4rUSZZ4r8 ::))$*<*<=BzzT!""25"A 	((L)9:::##B'8$9:::##B$78::;0 ::,,T-D-DE::AhBiBi	! '(D&**4::66r6!!$+==dC::,,R0C-DE $$R%89::r(?@ZZ4r(?UZ[ ((L)9:::r(?@ZZ4rUS  r5   c                 z   | j                  t        d            }| j                  dk\  r| j                  |       | j                  dk\  re| j	                  | j
                        }| j                  dk\  r| j                  |d       n'| j                  dk\  r| j                  |t        d       | j                  t        d             | j                  d	k\  r| j                  t        d
             | j                  dk\  r:| j                  t        d            }| j                  dk\  r| j                  |       | j                  dk\  r4| j                  | j                  dk\  rt        d      n
t        d             | j                  dk\  r| j                  dk\  rnt        dft        dft        dfd}|j                  | j                        x}r| j                  | j                   |       n7| j#                  | j                          n| j%                  | j                          | j'                  t        d            }| j                  dk\  r3| j                  || j                  dk\  rt(        t*        z   nt(               | j-                  t        d            }| j                  dk\  r| j                  |       y y )NrF   r   r\   r   Fr   rY   rn     r`   rG   rH   i)  r]   zWestern Australia DayzFoundation Dayra   r   ri      r   )rk   r]   r   rJ   i  i  ro   rI   )rP   r0   r/   rp   rQ   r:   rq   r   _add_holiday_1st_mon_of_marrv   rR   _add_holiday_1st_mon_of_junr	   r   r   ry   r4   _add_holiday_last_mon_of_sep_add_holiday_2nd_mon_of_octrT   r   r   rS   )r2   r{   sovereign_birthday_datess      r3   #_populate_subdiv_wa_public_holidaysz-Australia._populate_subdiv_wa_public_holidays  s`   
 $$R(8%9:::r" ::))$*<*<=BzzT!""25"At#""2OQV"W 	((L)9:::##B$78::$$R_5BzzT!""2&::,, ::% *+ () ::zzT! )(),(
 255djjAA2A%%d&=&=rB55d6M6MN001H1HI ((L)9:::::% ->,	   $$R%89::r" r5   )#__name__
__module____qualname____doc__countrydefault_languager0   observed_label
start_yearsubdivisionssubdivisions_aliasesr   r   r   supported_categoriessupported_languagespropertystrr4   r:   r=   rU   r~   r   r   r   r   r   r   r   r   r   r   r   __classcell__)rC   s   @r3   r   r      s    . G(NJ	L ). "!	 !(F32
C 
 
 
s 
 
*"6Hwr=J
XA
F>P	R_TBd>L	R2\hQTfQ#r5   r   c                       e Zd Zy)r   Nr   r   r    r5   r3   r   r   c      r5   r   c                       e Zd Zy)AUSNr   r   r5   r3   r   r   g  r   r5   r   c                       e Zd Z ed      Zded ed      fiZed ed      fed ed      fd	Zd
e	d ed      fiZ
ed ed      fed ed      fdZdedefiZy)r>   zSpecial public holidayr      z/National Day of Mourning for Queen Elizabeth II   zDeclared public holidayrj   zAdditional public holidayr   r]      zQueen's Diamond Jubileeri   rI      rF   )rb   rk   rk   rd   N)r   r   r   r0   special_public_holidayr   special_public_holidaysr   special_act_public_holidaysr   special_qld_public_holidaysr
   r   $special_qld_public_holidays_observedspecial_wa_public_holidaysr   r5   r3   r>   r>   k  s     89 	sBLMN B456B678	# 	sB456# B?+,Ar*+,	,( 	sB./"r5   r>   N)r   r0   holidays.calendars.gregorianr   r   r   r   r   r	   r
   holidays.constantsr   r   r   holidays.groupsr   r   r   holidays.observed_holiday_baser   r   r   r   r   r   r   r   r   r   r   r>   r   r5   r3   <module>r      sh    " J J J 5 5 T T	 	 	B##%68M~ B#J	 		) 	 r5   