U e5dŽã@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 |||ƒW5t  ¡XdS)NrÚreadline)Ú configparserÚ isinstanceZRawConfigParserZ ConfigParserÚhasattrZ read_fileÚreadÚ_create_formattersÚloggingÚ _acquireLockÚ _releaseLockÚ_clearExistingHandlersÚ_install_handlersÚ_install_loggers)ZfnameÚdefaultsÚdisable_existing_loggersrÚcpÚ formattersÚhandlers©rú&/usr/lib64/python3.8/logging/config.pyÚ fileConfig3s       rc Csl| d¡}| d¡}t|ƒ}|D]F}|d|}zt||ƒ}Wq tk rdt|ƒt||ƒ}Yq Xq |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") rZflistrZformZsectnameZfsZdfsZstlÚcÚ class_nameÚfrrrr fs$    r c Cs^|dd}t|ƒsiS| d¡}t|ƒ}i}g}|D]}|d|}|d}| dd¡}zt|ttƒƒ}Wn ttfk rŽt |ƒ}YnX| dd ¡} t| ttƒƒ} | d d ¡} t| ttƒƒ} || | Ž} d |krè|d } |   | ¡t|ƒrþ|   ||¡t |tj jƒr2| d d¡} t| ƒr2| | | f¡| ||<q6|D]\} }|  ||¡q@|S)Nrr(r)z handler_%sr0Ú formatterÚÚargsú()Úkwargsz{}ÚlevelÚtarget)r1rr'r2ÚevalÚvarsr rÚ NameErrorr"ÚsetLevelÚ setFormatterÚ issubclassrÚ MemoryHandlerÚappendZ setTarget)rrÚhlistrZfixupsÚhandÚsectionÚklassÚfmtr9r;Úhr<r=Útrrrr|sB             rcCsTtj}|D]D}|jj|}||krHt|tjƒsN| tj¡g|_d|_ q ||_ q dS)NT) r ÚrootÚmanagerÚ loggerDictrZ PlaceHolderrAZNOTSETrÚ propagateÚdisabled)ÚexistingÚ child_loggersÚdisable_existingrMÚlogÚloggerrrrÚ_handle_existing_loggers¡s    rWcCs |dd}| d¡}tt|ƒƒ}| d¡|d}tj}|}d|krX|d}| |¡|jdd…D]}| |¡qf|d} t | ƒr°|  d¡} t| ƒ} | D]} |  || ¡qœt|j j   ¡ƒ} |  ¡g} |D](}|d|}|d } |jd d d }t | ¡}| | krv|  | ¡d }| d }t |ƒ}t | ƒ}||krl| |d|…|kr`|  | |¡|d 7}q2|  | ¡d|kr’|d}| |¡|jdd…D]}| |¡q ||_d|_|d} t | ƒrÐ|  d¡} t| ƒ} | D]} |  || ¡qäqÐt| | |ƒdS)NÚloggersr(r)rMZ logger_rootr<rz logger_%sÚqualnamerPé)r,rr)rÚlistr'Úremover rMrArÚ removeHandlerr1Ú addHandlerrNrOr(ÚsortZgetintÚ getLoggerÚindexrErPrQrW)rrrTZllistrHrMrUr<rKrFrGrRrSZqnrPrVÚiÚprefixedÚpflenÚ num_existingrrrr·sd                  rcCs.tj ¡t tjdd…¡tjdd…=dSr#)r Ú _handlersÚclearZshutdownZ _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  rmc@seZdZddd„Zdd„ZdS)ÚConvertingMixinTcCsB|j |¡}||k r>|r |||<t|ƒtttfkr>||_||_|Sr#)Ú configuratorÚconvertÚtypeÚConvertingDictÚConvertingListÚConvertingTupleÚparentÚkey)ÚselfrvÚvalueÚreplaceÚresultrrrÚconvert_with_key"s  ÿz ConvertingMixin.convert_with_keycCs0|j |¡}||k r,t|ƒtttfkr,||_|Sr#)rorprqrrrsrtru)rwrxrzrrrrp.s  ÿzConvertingMixin.convertN)T)Ú__name__Ú __module__Ú __qualname__r{rprrrrrns rnc@s(eZdZdd„Zddd„Zd dd„ZdS) rrcCst ||¡}| ||¡Sr#)ÚdictÚ __getitem__r{©rwrvrxrrrr€Cs zConvertingDict.__getitem__NcCst |||¡}| ||¡Sr#)rr2r{©rwrvÚdefaultrxrrrr2GszConvertingDict.getcCst |||¡}|j||ddS©NF)ry)rrr{r‚rrrrKszConvertingDict.pop)N)N)r|r}r~r€r2rrrrrrr@s rrc@seZdZdd„Zddd„ZdS)rscCst ||¡}| ||¡Sr#)r[r€r{rrrrr€Qs zConvertingList.__getitem__éÿÿÿÿcCst ||¡}| |¡Sr#)r[rrp)rwÚidxrxrrrrUs zConvertingList.popN)r…)r|r}r~r€rrrrrrsOsrsc@seZdZdd„ZdS)rtcCst ||¡}|j||ddSr„)Útupler€r{rrrrr€[s zConvertingTuple.__getitem__N)r|r}r~r€rrrrrtYsrtc@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)ZextZcfgcCst|ƒ|_||j_dSr#)rrÚconfigro)rwr‹rrrÚ__init__ts zBaseConfigurator.__init__c CsÂ| d¡}| d¡}z^| |¡}|D]H}|d|7}zt||ƒ}Wq$tk rj| |¡t||ƒ}Yq$Xq$|WStk r¼t ¡dd…\}}td||fƒ}|||_ |_ |‚YnXdS)NrrrZzCannot resolve %r: %s) rrÚimporterrrÚ ImportErrorÚsysÚexc_inforjÚ __cause__Ú __traceback__) rwrkrrr ZfragÚeÚtbÚvrrrÚresolvexs"     zBaseConfigurator.resolvecCs | |¡Sr#)r–©rwrxrrrr‰szBaseConfigurator.ext_convertcCsþ|}|j |¡}|dkr&td|ƒ‚nÔ|| ¡d…}|j| ¡d}|rú|j |¡}|rn|| ¡d}nd|j |¡}|rÒ| ¡d}|j |¡s ||}n2zt |ƒ}||}Wnt k rÐ||}YnX|rè|| ¡d…}qHtd||fƒ‚qH|S)NzUnable to convert %rrzUnable to convert %r at %r) Ú WORD_PATTERNrirjÚendr‹ÚgroupsÚ DOT_PATTERNÚ INDEX_PATTERNÚ DIGIT_PATTERNÚintÚ TypeError)rwrxÚrestrlÚ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)rrrrrorsr[rtr‡rr%ÚCONVERT_PATTERNriÚ groupdictÚvalue_convertersr2r)rwrxrlr¡r£Z converterr¤rrrrpµs0 ÿÿ   zBaseConfigurator.convertcsjˆ d¡}t|ƒs| |¡}ˆ dd¡}‡fdd„ˆDƒ}|f|Ž}|rf| ¡D]\}}t|||ƒqP|S)Nr:rcsi|]}t|ƒr|ˆ|“qSr©rm©Ú.0Úk©r‹rrÚ Øsz5BaseConfigurator.configure_custom..)rÚcallabler–ÚitemsÚsetattr)rwr‹r4Úpropsr;rzrrxrr¬rÚconfigure_customÑs    z!BaseConfigurator.configure_customcCst|tƒrt|ƒ}|Sr#)rr[r‡r—rrrÚas_tupleßs zBaseConfigurator.as_tupleN)r|r}r~ÚreÚcompiler¥r˜r›rœrr§Ú staticmethodrrrŒr–r‰rŠrpr²r³rrrrrˆ`s      þ"rˆc@sZeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zddd„Z ddd„Z ddd„Z dS)ÚDictConfiguratorc CsÊ|j}d|krtdƒ‚|ddkr2td|dƒ‚| dd¡}i}t ¡zn|r | d|¡}|D]„}|tjkr€td|ƒ‚qdz6tj|}||}| d d¡}|r´| t  |¡¡Wqdt k ræ} ztd |ƒ| ‚W5d} ~ XYqdXqd| d |¡} | D]N}z|  || |d ¡Wqút k rF} ztd |ƒ| ‚W5d} ~ XYqúXqú| dd¡} | r¸z|  | d ¡Wn.t k rš} ztdƒ| ‚W5d} ~ XYnXn| dd ¡} t ƒ| d|¡} | D]P}z| | |¡| |<Wn2t k r} ztd|ƒ| ‚W5d} ~ XYnXqÂ| d|¡}|D]P}z| ||¡||<Wn2t k rp} ztd|ƒ| ‚W5d} ~ XYnXq$| d|¡}g}t|ƒD]v}z | ||¡}||_|||<WnNt k r} z.dt| jƒkrâ| |¡ntd |ƒ| ‚W5d} ~ XYnXqŽ|D]Z}z | ||¡}||_|||<Wn2t k r`} ztd |ƒ| ‚W5d} ~ XYnXq tj} t| jj ¡ƒ}| ¡g}| d |¡} | D]Â}||kr| |¡d}|d}t|ƒ}t|ƒ}||kr||d|…|krú| ||¡|d7}qÌ| |¡z|  || |¡Wn2t k rV} ztd |ƒ| ‚W5d} ~ XYnXq˜t||| ƒ| dd¡} | r¸z|  | ¡Wn.t k r¶} ztdƒ| ‚W5d} ~ XYnXW5t ¡XdS)NÚversionz$dictionary doesn't specify a versionrZzUnsupported version: %sÚ incrementalFrzNo handler found with name %rr<zUnable to configure handler %rrXTzUnable to configure logger %rrMzUnable to configure root loggerrrz Unable to configure formatter %rÚfilterszUnable to configure filter %rútarget not configured yetr) r‹rjrr r r r2rfrAÚ _checkLevelÚ ExceptionÚconfigure_loggerÚconfigure_rootr Úconfigure_formatterÚconfigure_filterÚsortedÚconfigure_handlerrr%r‘rErMr[rNrOr(r_rar1r\rW)rwr‹r¹Z EMPTY_DICTrrÚhandlerZhandler_configr<r“rXrMrTrrºZdeferredrRrSrbrcrdrerrrÚ configureës    ÿ  ÿÿ ÿÿ ÿ  ÿ ÿÿ ÿÿ    ÿÿ ÿÿ      ÿÿÿ ÿzDictConfigurator.configurec Csâd|krr|d}z| |¡}WqÞtk rn}z2dt|ƒkr>‚| d¡|d<||d<| |¡}W5d}~XYqÞXnl| dd¡}| dd¡}| dd¡}| dd¡}|s®tj} nt|ƒ} d |krÒ| ||||d ƒ}n | |||ƒ}|S) Nr:z'format'r*rJr-r.r/r0Zvalidate)r²rŸr%rr2r r3r") rwr‹ÚfactoryrzÚterJZdfmtr.Úcnamer4rrrrÀ‰s*      z$DictConfigurator.configure_formattercCs.d|kr| |¡}n| dd¡}t |¡}|S)Nr:rr8)r²r2r ZFilter)rwr‹rzrrrrrÁ­s    z!DictConfigurator.configure_filterc CsX|D]N}z| |jd|¡Wqtk rP}ztd|ƒ|‚W5d}~XYqXqdS)NrºzUnable to add filter %r)Z addFilterr‹r½rj)rwZfiltererrºr6r“rrrÚ add_filters¶s zDictConfigurator.add_filtersc s„tˆƒ}ˆ dd¡}|r\z|jd|}Wn0tk rZ}ztd|ƒ|‚W5d}~XYnXˆ dd¡}ˆ dd¡}dˆkr ˆ d¡}t|ƒs˜| |¡}|}nˆ d¡} | | ¡} t| tj j ƒrFdˆkrFz>|jd ˆd} t | tj ƒsˆ  |¡td ƒ‚| ˆd<Wn6tk rB}ztd ˆdƒ|‚W5d}~XYnXnZt| tj jƒrtd ˆkrt| ˆd ¡ˆd <n,t| tj jƒr d ˆkr | ˆd ¡ˆd <| }ˆ dd¡} ‡fdd„ˆDƒ} z|f| Ž}WnLtk r}z,dt|ƒkrô‚|  d¡| d<|f| Ž}W5d}~XYnX|r.| |¡|dk rH| t |¡¡|rZ| ||¡| r€|  ¡D]\}}t|||ƒqh|S)Nr7rzUnable to set formatter %rr<rºr:r0r=rr»zUnable to set target handler %rZmailhostZaddressrcsi|]}t|ƒr|ˆ|“qSrr¨r©r¬rrr­æsz6DictConfigurator.configure_handler..z'stream'ÚstreamZstrm)rrr‹r½rjr®r–rCr rrDrZHandlerÚupdaterŸZ SMTPHandlerr³Z SysLogHandlerr%rBrAr¼rÉr¯r°)rwr‹Z config_copyr7r“r<rºr4rÆrÈrIZthr±r;rzrÇrrxrr¬rrþs~ ÿÿ      ÿ  ÿÿÿÿ    z"DictConfigurator.configure_handlerc CsX|D]N}z| |jd|¡Wqtk rP}ztd|ƒ|‚W5d}~XYqXqdS)NrzUnable to add handler %r)r^r‹r½rj)rwrVrrKr“rrrÚ add_handlersýs zDictConfigurator.add_handlersFcCs‚| dd¡}|dk r$| t |¡¡|s~|jdd…D]}| |¡q6| dd¡}|rb| ||¡| dd¡}|r~| ||¡dS)Nr<rrº)r2rAr r¼rr]rÌrÉ)rwrVr‹r¹r<rKrrºrrrÚcommon_logger_configs     z%DictConfigurator.common_logger_configcCs6t |¡}| |||¡| dd¡}|dk r2||_dS)NrP)r r`rÍr2rP)rwrr‹r¹rVrPrrrr¾s   z!DictConfigurator.configure_loggercCst ¡}| |||¡dSr#)r r`rÍ)rwr‹r¹rMrrrr¿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 SsDz |j}| d¡}t|ƒdkr t d|¡d}|j |¡}t|ƒ|krb|| |t|ƒ¡}q>|jjdk rz|j |¡}|dk rô| d¡}zddl}|  |¡}t |ƒWnHt k ròt   |¡}z t|ƒWnt k rìt ¡YnXYnX|jjr |jj ¡Wn2tk r>}z|jtkr.‚W5d}~XYnXdS)Néz>Lrzutf-8)Z connectionZrecvr1ÚstructZunpackÚserverÚverifyÚdecodeÚjsonÚloadsrÏr½ÚioÚStringIOrÚ tracebackÚ print_excÚreadyÚsetÚOSErrorÚerrnoÚ RESET_ERROR)rwZconnÚchunkZslenrÕr¡Úfiler“rrrÚhandleFs6            z*listen..ConfigStreamHandler.handleN)r|r}r~rârrrrÚConfigStreamHandler?srãc@s,eZdZdZdedddfdd„Zdd„ZdS)z$listen..ConfigSocketReceiverrZZ localhostNcSs>t |||f|¡t ¡d|_t ¡d|_||_||_dS)NrrZ) rrŒr r Úabortr ÚtimeoutrÛrÓ)rwZhostÚportrÄrÛrÓrrrrŒtsz-listen..ConfigSocketReceiver.__init__cSs`ddl}d}|sT| |j ¡ggg|j¡\}}}|r<| ¡t ¡|j}t ¡q |  ¡dS)Nr) ÚselectZsocketÚfilenoråZhandle_requestr r rär Z server_close)rwrçräZrdZwrZexrrrÚserve_until_stopped~sþ  z8listen..ConfigSocketReceiver.serve_until_stopped)r|r}r~Zallow_reuse_addressÚDEFAULT_LOGGING_CONFIG_PORTrŒrérrrrÚConfigSocketReceivermsÿ rëcs&eZdZ‡‡fdd„Zdd„Z‡ZS)zlisten..Servercs4tˆ|ƒ ¡||_||_||_||_t ¡|_dSr#) ÚsuperrŒÚrcvrÚhdlrrærÓÚ threadingZEventrÛ)rwrí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ÓrrZ) rírærîrÛrÓZserver_addressrÜr r Ú _listenerr ré)rwrÒrrrÚrun–s þ   zlisten..Server.run)r|r}r~rŒróÚ __classcell__r©rð)rñrrðŒsrð)rrrïZThread)rærÓrãrërrõrÚlisten+s.röcCs*t ¡ztrdt_daW5t ¡XdS)NrZ)r r r ròrärrrrÚ stopListening¥s r÷)NT)*rÞr×r Zlogging.handlersr´rÑrrïrÙZ socketserverrrrêZ ECONNRESETrßròrr"r'r rrWrr rµÚIrhrmÚobjectrnrrrr[rsr‡rtrˆr·rÎrÏrör÷rrrrÚsF "%W! Az