
    !g.                        U d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
 eeeedf   f   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(i d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJi dKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdli dmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddi ddddddddddddddddddddddddddddddddddi ddddddddddddddddddddēddƓddȓddʓdd̓ddΓddГddғi ddԓdd֓ddؓddړddܓddޓddddddddddddddddddddddi dddddddddddd ddddddddd	d
dddddddddddd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/d0d1d2d3d4d5d6d7d8d9d:d;d<d=Zeed><   d?d@dAdBdCZeedD<    e       Z G dE dF      Zy(G      N)Iterable)RLock)AnyOptionalUnion)HolidayBase.afghanistan)AfghanistanAFAFGalbania)AlbaniaALALBalgeria)AlgeriaDZDZAamerican_samoa)AmericanSamoaASASM
HolidaysASandorra)AndorraADANDangola)AngolaAOAGO	argentina)	ArgentinaARARGarmenia)ArmeniaAMARMaruba)ArubaAWABW	australia)	AustraliaAUAUSaustria)AustriaATAUT
azerbaijan)
AzerbaijanAZAZEbahamas)BahamasBSBHSbahrain)BahrainBHBAH
bangladesh)
BangladeshBDBGDbarbados)BarbadosBBBRBbelarus)BelarusBYBLRbelgium)BelgiumBEBELbelize)BelizeBZBLZbolivia)BoliviaBOBOLbosnia_and_herzegovina)BosniaAndHerzegovinaBABIHbotswana)BotswanaBWBWAbrazil)BrazilBRBRAbrunei)BruneiBNBRNbulgaria)BulgariaBGBLGburkina_faso)BurkinaFasoBFBFAburundi)BurundiBIBDIcambodia)CambodiaKHKHMcameroon)CameroonCMCMRcanada)CanadaCACANchad)ChadTDTCDchile)ChileCLCHLchina)ChinaCNCHNcolombia)ColombiaCOCOLcongo)CongoCGCOG
costa_rica)	CostaRicaCRCRIcroatia)CroatiaHRHRVcuba)CubaCUCUBcuracao)CuracaoCWCUWcyprus)CyprusCYCYPczechia)CzechiaCZCZEdenmark)DenmarkDKDNKdjibouti)DjiboutiDJDJIdominica)DominicaDMDMAdominican_republic)DominicanRepublicDODOMecuador)EcuadorECECUegypt)EgyptEGEGYjordan)JordanJOJORel_salvador)
ElSalvadorSVSLVestonia)EstoniaEEESTeswatini)EswatiniSZSZW	Swazilandethiopia)EthiopiaETETHfinland)FinlandFIFINfrance)FranceFRFRAgabon)GabonGAGABgeorgia)GeorgiaGEGEOgermany)GermanyDEDEUghana)GhanaGHGHAgreece)GreeceGRGRC	greenland)	GreenlandGLGRLguam)GuamGUGUM
HolidaysGU	guatemala)	GuatemalaGTGUAguernsey)GuernseyGGGGYhaiti)HaitiHTHTIhonduras)HondurasHNHNDhongkong)HongKongHKHKGhungary)HungaryHUHUNiceland)IcelandISISLindia)IndiaININD	indonesia)	IndonesiaIDIDNiran)IranIRIRNireland)IrelandIEIRLisle_of_man)	IsleOfManIMIMNisrael)IsraelILISRitaly)ItalyITITAjamaica)JamaicaJMJAMjapan)JapanJPJPNjersey)JerseyJEJEY
kazakhstan)
KazakhstanKZKAZkenya)KenyaKEKENkuwait)KuwaitKWKWT
kyrgyzstan)
KyrgyzstanKGKGZlaos)LaosLALAOlatvia)LatviaLVLVAlesotho)LesothoLSLSOliechtenstein)LiechtensteinLILIE	lithuania)	LithuaniaLTLTU
luxembourg)
LuxembourgLULUX
madagascar)
MadagascarMGMDGmalawi)MalawiMWMWImalaysia)MalaysiaMYMYSmaldives)MaldivesMVMDVmalta)MaltaMTMLTmarshall_islands)MarshallIslandsMHMHL
HolidaysMH
mauritania)
MauritaniaMRMRTmexico)MexicoMXMEXmoldova)MoldovaMDMDAmonaco)MonacoMCMCO
montenegro)
MontenegroMEMNEmorocco)MoroccoMAMOR
mozambique)
MozambiqueMZMOZnamibia)NamibiaNANAMnetherlands)NetherlandsNLNLDnew_zealand)
NewZealandNZNZL	nicaragua)	NicaraguaNINICnigeria)NigeriaNGNGAnorth_macedonia)NorthMacedoniaMKMKDnorthern_mariana_islands)NorthernMarianaIslandsMPMNP
HolidaysMPnorway)NorwayNONORpakistan)PakistanPKPAKpalau)PalauPWPLWpanama)PanamaPAPANpapua_new_guinea)PapuaNewGuineaPGPNGparaguay)ParaguayPYPRYperu)PeruPEPERphilippines)PhilippinesPHPHLpoland)PolandPLPOLportugal)PortugalPTPRTpuerto_rico)
PuertoRicoPRPRI
HolidaysPRromania)RomaniaROROUrussia)RussiaRURUSsaint_kitts_and_nevis)SaintKittsAndNevisKNKNAsamoa)SamoaWSWSM
san_marino)	SanMarinoSMSMRsaudi_arabia)SaudiArabiaSASAUserbia)SerbiaRSSRB
seychelles)
SeychellesSCSYC	singapore)	SingaporeSGSGPslovakia)SlovakiaSKSVKslovenia)SloveniaSISVNsouth_africa)SouthAfricaZAZAFsouth_korea)
SouthKoreaKRKORKoreaspain)SpainESESP	sri_lanka)SriLankaLKLKAsweden)SwedenSESWEswitzerland)SwitzerlandCHCHEtaiwan)TaiwanTWTWNtanzania)TanzaniaTZTZAthailand)ThailandTHTHAtimor_leste)
TimorLesteTLTLStonga)TongaTOTONtunisia)TunisiaTNTUNturkey)TurkeyTRTURukraine)UkraineUAUKRunited_arab_emirates)UnitedArabEmiratesAEAREunited_kingdom)UnitedKingdomGBGBRUK$united_states_minor_outlying_islands) UnitedStatesMinorOutlyingIslandsUMUMI
HolidaysUMunited_states_virgin_islands)UnitedStatesVirginIslandsVIVIR
HolidaysVIunited_states)UnitedStatesUSUSAuruguay)UruguayUYURY
uzbekistan)
UzbekistanUZUZBvanuatu)VanuatuVUVTUvatican_city)VaticanCityVAVAT)	VenezuelaVEVEN)VietnamVNVNM)ZambiaZMZMB)ZimbabweZWZWE)	venezuelavietnamzambiazimbabwe	COUNTRIES)EuropeanCentralBankXECBECBTAR)ICEFuturesEuropeIFEU)NewYorkStockExchangeXNYSNYSE)BrasilBolsaBalcaoBVMFB3)european_central_bankice_futures_europeny_stock_exchangebrasil_bolsa_balcao	FINANCIALc                       e Zd ZdZdZdeddf fdZdefdZdede	e
   fd	Zdefd
Zde	e   fdZe	 ddedeeee   f   dedee   fd       Zeddedee   fd       Zeddedee   fd       Zedededdfd       Z xZS )EntityLoaderz4Country and financial holidays entities lazy loader.)entityentity_namemodule_namepathreturnNc                     |rt        d      |j                  d      }d| _        |d   | _        dj	                  |dd       | _        t        |   |i | y)zSet up a lazy loader.zThis is a holidays entity loader class. For entity inheritance purposes please import a class you want to derive from directly: e.g., `from holidays.countries import Entity` or `from holidays.financial import Entity`..Nr   )	TypeErrorsplitr  r  joinr  super__init__)selfr  argskwargsentity_path	__class__s        N/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/holidays/registry.pyr  zEntityLoader.__init__   sd    ;  jjo&r?88K"$56$)&)    c                 2    | j                         } ||i |S )z.Create a new instance of a lazy-loaded entity.)
get_entity)r  r  r  clss       r  __call__zEntityLoader.__call__   s    ooD#F##r  namec                 :    | j                         }t        ||      S )z)Return attribute of a lazy-loaded entity.)r  getattr)r  r  r  s      r  __getattr__zEntityLoader.__getattr__   s    oosD!!r  c                 ^    d| j                          d| j                   d| j                   dS )z0Return lazy loader object string representation.zA lazy loader for z". For inheritance please use the 'r  z' class directly.)r  r  r  r  s    r  __str__zEntityLoader.__str__   s?     !!2 3 4(()4+;+;*<<MO	
r  c                    | j                   St        5  t        t        j                  | j
                        | j                        | _         ddd       | j                   S | j                   S # 1 sw Y   | j                   S xY w)zReturn lazy-loaded entity.N)r  IMPORT_LOCKr  	importlibimport_moduler  r  r  s    r  r  zEntityLoader.get_entity   sk    ;;  c%i&=&=d>N>N&OQUQaQabc {{t{{c {{s   9A,,B 	containerentity_lengthinclude_aliasesc              #      K   t        |t              r|hn
t        |      }| j                         D ]  }|D ]  }t	        |      |v s| |r  ! y w)N)
isinstanceintsetvalueslen)r  r  r  entitiesr  s        r  _get_entity_codeszEntityLoader._get_entity_codes   s^      ,6mS+IsS`Oa!((* 	H" v;-/ L*	s   AAAAc                 8    t         j                  t        d|       S )zGet supported country codes.

        :param include_aliases:
            Whether to include entity aliases (e.g. UK for GB).
           )r  r  r  r  s    r  get_country_codeszEntityLoader.get_country_codes
  s     --iOLLr  c                 8    t         j                  t        d|       S )zGet supported financial codes.

        :param include_aliases:
            Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
        )      )r  r  r  r  s    r  get_financial_codesz EntityLoader.get_financial_codes  s     --iQQr  prefixscopec                     | dk(  rt         nt        }|j                         D ]7  \  }}|j                  |D ci c]  }|t	        d|  d| d|        c}       9 yc c}w )z#Load country or financial entities.	countriesz	holidays.r  N)r  r  itemsupdater  )r  r  entity_mappingmoduler  r  s         r  loadzEntityLoader.load  su     '-&; . 4 4 6 	FHLL #+ L9VHAfXQvh)OPP	s   A
)T)__name__
__module____qualname____doc__	__slots__strr  r   r  r   r   r  r  r  staticmethodRegistryDictr   r  r   boolr  r  r  dictr  __classcell__)r  s   @r  r  r     s*   >8I*S *d *&$; $
" " "

 
H[1   !%S(3-/0  
#	  M4 M8C= M M RT RXc] R R 	S 	 	$ 	 	r  r  )r  collections.abcr   	threadingr   typingr   r   r   holidays.holiday_baser   r  r  tupler  r  __annotations__r  r  r   r  r  <module>r     s	    $  ' ' -CsCx()c/c'c 'c B	c
 'c %c +c 'c #c +c 'c -c 'c 'c -c  )!c" '#c$ '%c& %'c( ')c* C+c, )-c. %/c0 %1c2 )3c4 05c6 '7c8 )9c: );c< %=c> !?c@ #AcB #CcD )EcF #GcH ,IcJ 'KcL !McN 'OcP %QcR 'ScT 'UcV )WcX )YcZ <[c\ ']c^ #_c` %acb .ccd 'ecf 6gch )icj 'kcl %mcn #ocp 'qcr 'sct #ucv %wcx +ycz /{c| +}c~ )c@ #AcB )CcD )EcF 'GcH 'IcJ #KcL +McN !OcP 'QcR -ScT %UcV #WcX 'YcZ #[c\ %]c^ -_c` #acb %ccd -ecf !gch %icj 'kcl 3mcn +ocp -qcr -sct %ucv )wcx )ycz #{c| F}c~ -c@ %AcB 'CcD %EcF -GcH 'IcJ -KcL 'McN /OcP .QcR +ScT 'UcV 6WcX  UYcZ %[c\ )]c^ #_c` %acb 7ccd )ecf !gch /icj %kcl )mcn <ocp 'qcr %sct @ucv #wcx ,ycz 0{c| %}c~ -c@ +AcB )CcD )EcF 0GcH 7IcJ #KcL *McN %OcP /QcR %ScT )UcV )WcX .YcZ #[c\ ']c^ %_c` 'acb ?ccd :ecf + -gcr #$\sct 2ucv 'wcx -ycz '{c| 0}c~ ,'%)Ec	< cL K6A>		<  g^ ^r  