a 8êdgŽã@sJddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z dZ ej Zdad*dd„Zdd„Zd d „Zd d „Zd d„Zdd„Zdd„Zdd„Ze dej¡Zdd„ZGdd„deƒZGdd„deeƒZGdd„de eƒZ!Gdd„de"eƒZ#Gd d!„d!eƒZ$Gd"d#„d#e$ƒZ%e%Z&d$d%„Z'e dfd&d'„Z(d(d)„Z)dS)+éN)ÚThreadingTCPServerÚStreamRequestHandleriF#TcCsŒddl}t||jƒr|}n*| |¡}t|dƒr:| |¡n | |¡t|ƒ}t  ¡z(t ƒt ||ƒ}t |||ƒWt  ¡n t  ¡0dS)NrÚreadline)Ú configparserÚ isinstanceZRawConfigParserÚ ConfigParserÚhasattrZ read_fileÚreadÚ_create_formattersÚloggingÚ _acquireLockÚ_clearExistingHandlersÚ_install_handlersÚ_install_loggersÚ _releaseLock)ZfnameÚdefaultsÚdisable_existing_loggersrÚcpÚ formattersÚhandlers©rú*/usr/local/lib/python3.9/logging/config.pyÚ fileConfig3s       rc Csj| d¡}| d¡}t|ƒ}|D]D}|d|}zt||ƒ}Wq tybt|ƒt||ƒ}Yq 0q |S)NÚ.r)ÚsplitÚpopÚ __import__ÚgetattrÚAttributeError)ÚnameÚusedÚfoundÚnrrrÚ_resolveUs    r#cCs ttj|ƒS©N)ÚmapÚstrÚstrip)ZalistrrrÚ _strip_spacescsr(c Cs®|dd}t|ƒsiS| d¡}t|ƒ}i}|D]v}d|}|j|dddd}|j|dddd}|j|d dd d}tj}|| d ¡} | r”t| ƒ}||||ƒ} | ||<q2|S) NrÚkeysú,z formatter_%sÚformatT)ÚrawÚfallbackÚdatefmtÚstyleú%Úclass)Úlenrr(Úgetr Ú Formatterr#) rÚflistrZformZsectnameÚfsÚdfsZstlÚcÚ class_nameÚfrrrr fs$    r c Csh|dd}t|ƒsiS| d¡}t|ƒ}i}g}|D] }|d|}|d}| dd¡}zt|ttƒƒ}WnttfyŒt |ƒ}Yn0| dd ¡} t| ttƒƒ} | d d ¡} t| ttƒƒ} || i| ¤Ž} || _ d |vrð|d } |   | ¡t|ƒr|   ||¡t |tjjƒr<| d d¡} t| ƒr<| | | f¡| ||<q6|D]\} }|  ||¡qJ|S)Nrr)r*z handler_%sr1Ú formatterÚÚargsú()Úkwargsz{}ÚlevelÚtarget)r2rr(r3ÚevalÚvarsr rÚ NameErrorr#rÚsetLevelÚ setFormatterÚ issubclassrÚ MemoryHandlerÚappendZ setTarget)rrÚhlistrZfixupsÚhandÚsectionÚklassÚfmtr=r?Úhr@rAÚtrrrr|sD             rcCsTtj}|D]D}|jj|}||vrHt|tjƒsN| tj¡g|_d|_ q ||_ q dS)NT) r ÚrootÚmanagerÚ loggerDictrÚ PlaceHolderrEÚNOTSETrÚ propagateÚdisabled)ÚexistingÚ child_loggersÚdisable_existingrQÚlogÚloggerrrrÚ_handle_existing_loggers¢s    r]cCs |dd}| d¡}tt|ƒƒ}| d¡|d}tj}|}d|vrX|d}| |¡|jdd…D]}| |¡qf|d} t | ƒr°|  d¡} t| ƒ} | D]} |  || ¡qœt|j j   ¡ƒ} |  ¡g} |D](}|d|}|d } |jd d d }t | ¡}| | vrv|  | ¡d }| d }t |ƒ}t | ƒ}||krl| |d|…|kr`|  | |¡|d 7}q2|  | ¡d|vr’|d}| |¡|jdd…D]}| |¡q ||_d|_|d} t | ƒrÐ|  d¡} t| ƒ} | D]} |  || ¡qäqÐt| | |ƒdS)NÚloggersr)r*rQZ logger_rootr@rz logger_%sÚqualnamerVé)r-rr)rÚlistr(Úremover rQrErÚ removeHandlerr2Ú addHandlerrRrSr)ÚsortZgetintÚ getLoggerÚindexrIrVrWr])rrrZZllistrLrQr[r@rOrJrKrXrYZqnrVr\ÚiÚprefixedÚpflenÚ num_existingrrrr¸sd                  rcCs.tj ¡t tjdd…¡tjdd…=dSr$)r Ú _handlersÚclearÚshutdownÚ _handlerListrrrrr s r z^[a-z_][a-z0-9_]*$cCst |¡}|std|ƒ‚dS)Nz!Not a valid Python identifier: %rT)Ú IDENTIFIERÚmatchÚ ValueError)ÚsÚmrrrÚ valid_idents  ruc@seZdZddd„Zdd„ZdS)ÚConvertingMixinTcCsB|j |¡}||ur>|r |||<t|ƒtttfvr>||_||_|Sr$)Ú configuratorÚconvertÚtypeÚConvertingDictÚConvertingListÚConvertingTupleÚparentÚkey)Úselfr~ÚvalueÚreplaceÚresultrrrÚconvert_with_key#s  ÿz ConvertingMixin.convert_with_keycCs0|j |¡}||ur,t|ƒtttfvr,||_|Sr$)rwrxryrzr{r|r})rr€r‚rrrrx/s  ÿzConvertingMixin.convertN)T)Ú__name__Ú __module__Ú __qualname__rƒrxrrrrrv s rvc@s(eZdZdd„Zddd„Zd dd„ZdS) rzcCst ||¡}| ||¡Sr$)ÚdictÚ __getitem__rƒ©rr~r€rrrrˆDs zConvertingDict.__getitem__NcCst |||¡}| ||¡Sr$)r‡r3rƒ©rr~Údefaultr€rrrr3HszConvertingDict.getcCst |||¡}|j||ddS©NF)r)r‡rrƒrŠrrrrLszConvertingDict.pop)N)N)r„r…r†rˆr3rrrrrrzAs rzc@seZdZdd„Zddd„ZdS)r{cCst ||¡}| ||¡Sr$)rarˆrƒr‰rrrrˆRs zConvertingList.__getitem__éÿÿÿÿcCst ||¡}| |¡Sr$)rarrx)rÚidxr€rrrrVs zConvertingList.popN)r)r„r…r†rˆrrrrrr{Psr{c@seZdZdd„ZdS)r|cCst ||¡}|j||ddSrŒ)Útuplerˆrƒr‰rrrrˆ\s zConvertingTuple.__getitem__N)r„r…r†rˆrrrrr|Zsr|c@sˆeZdZe d¡Ze d¡Ze d¡Ze d¡Ze d¡Z dddœZ e e ƒZ d d „Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„ZdS)ÚBaseConfiguratorz%^(?P[a-z]+)://(?P.*)$z ^\s*(\w+)\s*z^\.\s*(\w+)\s*z^\[\s*(\w+)\s*\]\s*z^\d+$Ú ext_convertÚ cfg_convert)ÚextZcfgcCst|ƒ|_||j_dSr$)rzÚconfigrw)rr”rrrÚ__init__us zBaseConfigurator.__init__c Cs¾| d¡}| d¡}z\| |¡}|D]F}|d|7}zt||ƒ}Wq$tyh| |¡t||ƒ}Yq$0q$|WSty¸t ¡dd…\}}td||fƒ}|||_ |_ |‚Yn0dS)Nrrr`zCannot resolve %r: %s) rrÚimporterrrÚ ImportErrorÚsysÚexc_inforrÚ __cause__Ú __traceback__) rrsrr r!ÚfragÚeÚtbÚvrrrÚresolveys"       zBaseConfigurator.resolvecCs | |¡Sr$)r ©rr€rrrr‘szBaseConfigurator.ext_convertcCsü|}|j |¡}|dur&td|ƒ‚nÒ|| ¡d…}|j| ¡d}|rø|j |¡}|rn|| ¡d}nb|j |¡}|rÐ| ¡d}|j |¡s ||}n0zt |ƒ}||}Wnt yÎ||}Yn0|ræ|| ¡d…}qHtd||fƒ‚qH|S)NzUnable to convert %rrzUnable to convert %r at %r) Ú WORD_PATTERNrqrrÚendr”ÚgroupsÚ DOT_PATTERNÚ INDEX_PATTERNÚ DIGIT_PATTERNÚintÚ TypeError)rr€ÚrestrtÚdrŽr"rrrr’”s4        ÿzBaseConfigurator.cfg_convertcCsÐt|tƒs$t|tƒr$t|ƒ}||_n¨t|tƒsHt|tƒrHt|ƒ}||_n„t|tƒsvt|tƒrvt|dƒsvt|ƒ}||_nVt|t ƒrÌ|j   |¡}|rÌ|  ¡}|d}|j  |d¡}|rÌ|d}t||ƒ}||ƒ}|S)NÚ_fieldsÚprefixÚsuffix)rrzr‡rwr{rar|rrr&ÚCONVERT_PATTERNrqÚ groupdictÚvalue_convertersr3r)rr€rtr«r­Ú converterr®rrrrx¶s0 ÿÿ   zBaseConfigurator.convertcsnˆ d¡}t|ƒs| |¡}ˆ dd¡}‡fdd„ˆDƒ}|fi|¤Ž}|rj| ¡D]\}}t|||ƒqT|S)Nr>rcsi|]}t|ƒr|ˆ|“qSr©ru©Ú.0Úk©r”rrÚ Ùóz5BaseConfigurator.configure_custom..)rÚcallabler ÚitemsÚsetattr)rr”r8Úpropsr?r‚rr€rr·rÚconfigure_customÒs   z!BaseConfigurator.configure_customcCst|tƒrt|ƒ}|Sr$)rrarr¡rrrÚas_tupleàs zBaseConfigurator.as_tupleN)r„r…r†ÚreÚcompiler¯r¢r¥r¦r§r±Ú staticmethodrr–r•r r‘r’rxr¾r¿rrrrras      þ"rc@sZeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zddd„Z ddd„Z ddd„Z dS)ÚDictConfiguratorc Csä|j}d|vrtdƒ‚|ddkr2td|dƒ‚| dd¡}i}t ¡zˆ|r¦| d|¡}|D]†}|tjvr€td|ƒ‚qdz6tj|}||}| d d¡}|r´| t |¡¡Wqdt yè} ztd |ƒ| ‚WYd} ~ qdd} ~ 00qd| d |¡} | D]P}z|  || |d ¡Wqüt yJ} ztd |ƒ| ‚WYd} ~ qüd} ~ 00qü| dd¡} | rÊz|  | d ¡Wn0t y } ztdƒ| ‚WYd} ~ n d} ~ 00n$| dd ¡} t ƒ| d|¡} | D]R}z|  | |¡| |<Wn4t y} ztd|ƒ| ‚WYd} ~ n d} ~ 00qÈ| d|¡}|D]R}z| ||¡||<Wn4t yz} ztd|ƒ| ‚WYd} ~ n d} ~ 00q,| d|¡}g}t|ƒD]x}z | ||¡}||_|||<WnPt y } z6dt| jƒvrê| |¡ntd |ƒ| ‚WYd} ~ n d} ~ 00q˜|D]\}z | ||¡}||_|||<Wn4t yn} ztd |ƒ| ‚WYd} ~ n d} ~ 00qtj} t| jj ¡ƒ}| ¡g}| d |¡} | D]Ä}||vr| |¡d}|d}t|ƒ}t|ƒ}||kr||d|…|kr| ||¡|d7}qÚ| |¡z|  || |¡Wn4t yf} ztd |ƒ| ‚WYd} ~ n d} ~ 00q¦t||| ƒ| dd¡} | rÊz|  | ¡Wn0t yÈ} ztdƒ| ‚WYd} ~ n d} ~ 00Wt ¡n t ¡0dS)NÚversionz$dictionary doesn't specify a versionr`zUnsupported version: %sÚ incrementalFrzNo handler found with name %rr@zUnable to configure handler %rr^TzUnable to configure logger %rrQzUnable to configure root loggerrrz Unable to configure formatter %rÚfilterszUnable to configure filter %rútarget not configured yetr) r”rrrr r r3rlrEÚ _checkLevelÚ ExceptionÚconfigure_loggerÚconfigure_rootr Úconfigure_formatterÚconfigure_filterÚsortedÚconfigure_handlerrr&ršrIrQrarRrSr)rergr2rbr]r)rr”rÅÚ EMPTY_DICTrrÚhandlerZhandler_configr@rr^rQrZrrÆZdeferredrXrYrhrirjrkrrrÚ configureìs    ÿ  ÿÿ ÿÿ ÿ  ÿ ÿÿ ÿÿ    ÿÿ ÿÿ      ÿÿÿ ÿzDictConfigurator.configurec Csäd|vrt|d}z| |¡}Wqàtyp}z:dt|ƒvr<‚| d¡|d<||d<| |¡}WYd}~qàd}~00nl| dd¡}| dd¡}| dd¡}| dd¡}|s°tj} nt|ƒ} d |vrÔ| ||||d ƒ}n | |||ƒ}|S) Nr>z'format'r+rNr.r/r0r1Úvalidate)r¾r©r&rr3r r4r#) rr”Úfactoryr‚ÚterNZdfmtr/Úcnamer8rrrrÌŠs* "     z$DictConfigurator.configure_formattercCs.d|vr| |¡}n| dd¡}t |¡}|S)Nr>rr<)r¾r3r ÚFilter)rr”r‚rrrrrÍ®s    z!DictConfigurator.configure_filterc CsZ|D]P}z| |jd|¡WqtyR}ztd|ƒ|‚WYd}~qd}~00qdS)NrÆzUnable to add filter %r)Ú addFilterr”rÉrr)rZfiltererrÆr:rrrrÚ add_filters·s zDictConfigurator.add_filtersc s’tˆƒ}ˆ dd¡}|r^z|jd|}Wn2ty\}ztd|ƒ|‚WYd}~n d}~00ˆ dd¡}ˆ dd¡}dˆvr¢ˆ d¡}t|ƒsš| |¡}|}nˆ d¡} | | ¡} t| tj j ƒrJdˆvrJz>|jd ˆd} t | tj ƒsˆ  |¡td ƒ‚| ˆd<Wn8tyF}ztd ˆdƒ|‚WYd}~n d}~00nZt| tj jƒrxd ˆvrx| ˆd ¡ˆd <n,t| tj jƒr¤d ˆvr¤| ˆd ¡ˆd <| }ˆ dd¡} ‡fdd„ˆDƒ} z|fi| ¤Ž}WnRty*}z8dt|ƒvrú‚|  d¡| d<|fi| ¤Ž}WYd}~n d}~00|r<| |¡|durV| t |¡¡|rh| ||¡| rŽ|  ¡D]\}}t|||ƒqv|S)Nr;rzUnable to set formatter %rr@rÆr>r1rArrÇzUnable to set target handler %rZmailhostÚaddressrcsi|]}t|ƒr|ˆ|“qSrr³r´r·rrr¸çr¹z6DictConfigurator.configure_handler..z'stream'ÚstreamZstrm)r‡rr”rÉrrrºr rGr rrHrÚHandlerÚupdater©Z SMTPHandlerr¿Z SysLogHandlerr&rFrErÈrÙr»r¼)rr”Z config_copyr;rr@rÆr8rÔrÖrMÚthr½r?r‚rÕrr€rr·rrÏ¿s~ ÿÿ      ÿ  ÿÿÿÿ $   z"DictConfigurator.configure_handlerc CsZ|D]P}z| |jd|¡WqtyR}ztd|ƒ|‚WYd}~qd}~00qdS)NrzUnable to add handler %r)rdr”rÉrr)rr\rrOrrrrÚ add_handlersþs zDictConfigurator.add_handlersFcCs‚| dd¡}|dur$| t |¡¡|s~|jdd…D]}| |¡q6| dd¡}|rb| ||¡| dd¡}|r~| ||¡dS)Nr@rrÆ)r3rEr rÈrrcrßrÙ)rr\r”rÅr@rOrrÆrrrÚcommon_logger_configs     z%DictConfigurator.common_logger_configcCs6t |¡}| |||¡| dd¡}|dur2||_dS)NrV)r rfràr3rV)rrr”rÅr\rVrrrrÊs   z!DictConfigurator.configure_loggercCst ¡}| |||¡dSr$)r rfrà)rr”rÅrQrrrrË szDictConfigurator.configure_rootN)F)F)F) r„r…r†rÒrÌrÍrÙrÏrßràrÊrËrrrrrÃæs$ ?  rÃcCst|ƒ ¡dSr$)ÚdictConfigClassrÒr·rrrÚ dictConfig'srâcsDGdd„dtƒ}Gdd„dtƒ}G‡fdd„dtjƒ‰ˆ||||ƒS)Nc@seZdZdd„ZdS)z#listen..ConfigStreamHandlerc SsBz|j}| d¡}t|ƒdkrt d|¡d}|j |¡}t|ƒ|krb|| |t|ƒ¡}q>|jjdurz|j |¡}|durð| d¡}zddl}|  |¡}t |ƒWnDt yît   |¡}z t|ƒWnt yèt ¡Yn0Yn0|jjr|jj ¡Wn4ty<}z|jtkr(‚WYd}~n d}~00dS)Néz>Lrzutf-8)Ú connectionÚrecvr2ÚstructÚunpackÚserverÚverifyÚdecodeÚjsonÚloadsrârÉÚioÚStringIOrÚ tracebackÚ print_excÚreadyÚsetÚOSErrorÚerrnoÚ RESET_ERROR)rÚconnÚchunkZslenrër«ÚfilerrrrÚhandleGs6              z*listen..ConfigStreamHandler.handleN)r„r…r†rùrrrrÚConfigStreamHandler@srúc@s,eZdZdZdedddfdd„Zdd„ZdS)z$listen..ConfigSocketReceiverr`Ú localhostNcSs>t |||f|¡t ¡d|_t ¡d|_||_||_dS)Nrr`) rr•r r ÚabortrÚtimeoutrñré)rÚhostÚportrÑrñrérrrr•usz-listen..ConfigSocketReceiver.__init__cSs`ddl}d}|sT| |j ¡ggg|j¡\}}}|r<| ¡t ¡|j}t ¡q |  ¡dS)Nr) ÚselectÚsocketÚfilenorýZhandle_requestr r rürZ server_close)rrrüZrdÚwrÚexrrrÚserve_until_stoppedsþ  z8listen..ConfigSocketReceiver.serve_until_stopped)r„r…r†Zallow_reuse_addressÚDEFAULT_LOGGING_CONFIG_PORTr•rrrrrÚConfigSocketReceiverns ÿ rcs&eZdZ‡‡fdd„Zdd„Z‡ZS)zlisten..Servercs4tˆ|ƒ ¡||_||_||_||_t ¡|_dSr$) Úsuperr•ÚrcvrÚhdlrrÿréÚ threadingÚEventrñ)rr r rÿré)ÚServerÚ __class__rrr•s zlisten..Server.__init__cSsZ|j|j|j|j|jd}|jdkr0|jd|_|j ¡t ¡|a t  ¡|  ¡dS)N)rÿrÑrñrérr`) r rÿr rñréZserver_addressròr r Ú _listenerrr)rrèrrrÚrun—s þ   zlisten..Server.run)r„r…r†r•rÚ __classcell__r©r )rrr sr )rrr ÚThread)rÿrérúrrrrÚlisten,s.rcCs2t ¡ztrdt_daWt ¡n t ¡0dS)Nr`)r r rrürrrrrÚ stopListening¦s r)NT)*rôrír Zlogging.handlersrÀrær˜r rïÚ socketserverrrrZ ECONNRESETrõrrr#r(r rr]rr rÁÚIrpruÚobjectrvr‡rzrar{rr|rrÃrárârrrrrrÚsF "&W! Az