B ¶þgýÄN‘Šã@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 |||ƒWdt  ¡XdS)NrÚreadline)Ú configparserÚ isinstanceZRawConfigParserZ ConfigParserÚhasattrZ read_fileÚreadÚ_create_formattersÚloggingÚ _acquireLockÚ_clearExistingHandlersÚ_install_handlersÚ_install_loggersÚ _releaseLock)ZfnameÚdefaultsÚdisable_existing_loggersrÚcpÚ formattersÚhandlers©rú1/opt/alt/python37/lib/python3.7/logging/config.pyÚ fileConfig3s       rc Csp| d¡}| d¡}t|ƒ}xN|D]F}|d|}yt||ƒ}Wq"tk rft|ƒt||ƒ}Yq"Xq"W|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}x~|D]v}d|}|j|dddd}|j|dddd}|j|d dd d}tj}|| d ¡} | r–t| ƒ}||||ƒ} | ||<q4W|S) NrÚkeysú,z formatter_%sÚformatT)ÚrawÚfallbackÚdatefmtÚstyleú%Úclass)Úlenrr&Úgetr Ú Formatterr") rÚflistrZformZsectnameZfsZdfsZstlÚcÚ class_nameÚfrrrr fs$     r c Csj|dd}t|ƒsiS| d¡}t|ƒ}i}g}x|D]}|d|}|d}| dd¡}yt|ttƒƒ}Wn ttfk r’t |ƒ}YnX| dd ¡} t| ttƒƒ} | d d ¡} t| ttƒƒ} || | Ž} d |krì|d } |   | ¡t|ƒr|   ||¡t |tj jƒr8| d d¡} t| ƒr8| | | f¡| ||<q:Wx |D]\} }|  ||¡qJW|S)Nrr'r(z handler_%sr/Ú formatterÚÚargsz()Úkwargsz{}ÚlevelÚtarget)r0rr&r1ÚevalÚvarsr rÚ NameErrorr"ÚsetLevelÚ setFormatterÚ issubclassrÚ MemoryHandlerÚappendZ setTarget)rrÚhlistrZfixupsÚhandÚsectionÚklassÚfmtr9r:Úhr;r<Útrrrr |sB            r cCsXtj}xL|D]D}|jj|}||krJt|tjƒsP| tj¡g|_d|_ q ||_ q WdS)NT) r ÚrootÚmanagerÚ loggerDictrZ PlaceHolderr@ZNOTSETrÚ propagateÚdisabled)ÚexistingÚ child_loggersÚdisable_existingrLÚlogÚloggerrrrÚ_handle_existing_loggers¡s     rVcCs&|dd}| d¡}tt|ƒƒ}| d¡|d}tj}|}d|krX|d}| |¡x |jdd…D]}| |¡qhW|d} t | ƒr¸|  d¡} t| ƒ} x| D]} |  || ¡q¢Wt|j j   ¡ƒ} |  ¡g} x>|D]4}|d|}|d } |jd d d }t | ¡}| | kr†|  | ¡d }| d }t |ƒ}t | ƒ}x<||krz| |d|…|krn|  | |¡|d 7}q@W|  | ¡d|kr¢|d}| |¡x"|jdd…D]}| |¡q²W||_d|_|d} t | ƒrÜ|  d¡} t| ƒ} x| D]} |  || ¡qúWqÜWt| | |ƒdS)NÚloggersr'r(rLZ logger_rootr;rz logger_%sÚqualnamerOé)r+rr)rÚlistr&Úremover rLr@rÚ removeHandlerr0Ú addHandlerrMrNr'ÚsortZgetintÚ getLoggerÚindexrDrOrPrV)rrrSZllistrGrLrTr;rJrErFrQrRZqnrOrUÚiÚprefixedÚpflenÚ num_existingrrrr·sd                 rcCs.tj ¡t tjdd…¡tjdd…=dS)N)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  rlc@seZdZddd„Zdd„ZdS)ÚConvertingMixinTcCsB|j |¡}||k r>|r |||<t|ƒtttfkr>||_||_|S)N)Ú configuratorÚconvertÚtypeÚConvertingDictÚConvertingListÚConvertingTupleÚparentÚkey)ÚselfruÚvalueÚreplaceÚresultrrrÚconvert_with_key"s  z ConvertingMixin.convert_with_keycCs0|j |¡}||k r,t|ƒtttfkr,||_|S)N)rnrorprqrrrsrt)rvrwryrrrro.s   zConvertingMixin.convertN)T)Ú__name__Ú __module__Ú __qualname__rzrorrrrrms rmc@s(eZdZdd„Zddd„Zd dd„ZdS) rqcCst ||¡}| ||¡S)N)ÚdictÚ __getitem__rz)rvrurwrrrrCs zConvertingDict.__getitem__NcCst |||¡}| ||¡S)N)r~r1rz)rvruÚdefaultrwrrrr1GszConvertingDict.getcCst |||¡}|j||ddS)NF)rx)r~rrz)rvrur€rwrrrrKszConvertingDict.pop)N)N)r{r|r}rr1rrrrrrq@s rqc@seZdZdd„Zddd„ZdS)rrcCst ||¡}| ||¡S)N)rZrrz)rvrurwrrrrQs zConvertingList.__getitem__éÿÿÿÿcCst ||¡}| |¡S)N)rZrro)rvÚidxrwrrrrUs zConvertingList.popN)r)r{r|r}rrrrrrrrOsrrc@seZdZdd„ZdS)rscCst ||¡}|j||ddS)NF)rx)Útuplerrz)rvrurwrrrr[s zConvertingTuple.__getitem__N)r{r|r}rrrrrrsYsrsc@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_dS)N)rqÚconfigrn)rvr‡rrrÚ__init__ts zBaseConfigurator.__init__c CsÄ| d¡}| d¡}y`| |¡}xP|D]H}|d|7}yt||ƒ}Wq&tk rl| |¡t||ƒ}Yq&Xq&W|Stk r¾t ¡dd…\}}td||fƒ}|||_ |_ |‚YnXdS)NrrrYzCannot resolve %r: %s) rrÚimporterrrÚ ImportErrorÚsysÚexc_inforiÚ __cause__Ú __traceback__) rvrjrrr ZfragÚeÚtbÚvrrrÚresolvexs"      zBaseConfigurator.resolvecCs | |¡S)N)r’)rvrwrrrr…szBaseConfigurator.ext_convertcCs|}|j |¡}|dkr&td|ƒ‚nØ|| ¡d…}|j| ¡d}x´|rü|j |¡}|rp|| ¡d}nd|j |¡}|rÔ| ¡d}|j |¡s¢||}n2yt |ƒ}||}Wnt k rÒ||}YnX|rê|| ¡d…}qJtd||fƒ‚qJW|S)NzUnable to convert %rrzUnable to convert %r at %r) Ú WORD_PATTERNrhriÚendr‡ÚgroupsÚ DOT_PATTERNÚ INDEX_PATTERNÚ DIGIT_PATTERNÚintÚ TypeError)rvrwÚrestrkÚdr‚r!rrrr†“s2       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)rrqr~rnrrrZrsrƒrr$ÚCONVERT_PATTERNrhÚ groupdictÚvalue_convertersr1r)rvrwrkrœržZ converterrŸrrrroµs*    zBaseConfigurator.convertcsnˆ d¡}t|ƒs| |¡}ˆ dd¡}‡fdd„ˆDƒ}|f|Ž}|rjx | ¡D]\}}t|||ƒqRW|S)Nz()rcsi|]}t|ƒrˆ||“qSr)rl)Ú.0Úk)r‡rrú Øsz5BaseConfigurator.configure_custom..)rÚcallabler’ÚitemsÚsetattr)rvr‡r4Úpropsr:ryrrwr)r‡rÚconfigure_customÑs    z!BaseConfigurator.configure_customcCst|tƒrt|ƒ}|S)N)rrZrƒ)rvrwrrrÚas_tupleßs zBaseConfigurator.as_tupleN)r{r|r}ÚreÚcompiler r“r–r—r˜r¢Ú staticmethodrr‰rˆr’r…r†rorª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 ¡z|rª| d|¡}xŒ|D]„}|tjkr‚td|ƒ‚qfy6tj|}||}| d d¡}|r¶| t |¡¡Wqft k rè} ztd |ƒ| ‚Wdd} ~ XYqfXqfW| d |¡} xX| D]P}y|  || |d ¡Wn2t k rL} ztd |ƒ| ‚Wdd} ~ XYnXqW| dd¡} | rÚy|  | d ¡Wn.t k r¤} ztdƒ| ‚Wdd} ~ XYnXn0| dd ¡} t ƒ| d|¡} xX| D]P}y|  | |¡| |<Wn2t k r} ztd|ƒ| ‚Wdd} ~ XYnXqÎW| d|¡}xX|D]P}y| ||¡||<Wn2t k r€} ztd|ƒ| ‚Wdd} ~ XYnXq4W| d|¡}g}x‚t|ƒD]v}y | ||¡}||_|||<WnNt k r} z.dt| jƒkrö| |¡ntd |ƒ| ‚Wdd} ~ XYnXq¢Wxb|D]Z}y | ||¡}||_|||<Wn2t k rx} ztd |ƒ| ‚Wdd} ~ XYnXq"Wtj} t| jj ¡ƒ}| ¡g}| d |¡} xÎ| D]Æ}||kr0| |¡d}|d}t|ƒ}t|ƒ}x<||kr$||d|…|kr| ||¡|d7}qêW| |¡y|  || |¡Wn2t k rv} ztd |ƒ| ‚Wdd} ~ XYnXq´Wt||| ƒ| dd¡} | rÚy|  | ¡Wn.t k rØ} ztdƒ| ‚Wdd} ~ XYnXWdt ¡XdS)NÚversionz$dictionary doesn't specify a versionrYzUnsupported version: %sÚ incrementalFrzNo handler found with name %rr;zUnable to configure handler %rrWTzUnable to configure logger %rrLzUnable to configure root loggerrrz Unable to configure formatter %rÚfilterszUnable to configure filter %rztarget not configured yetr) r‡rirr r r1rer@Ú _checkLevelÚ ExceptionÚconfigure_loggerÚconfigure_rootr Úconfigure_formatterÚconfigure_filterÚsortedÚconfigure_handlerrr$rrDrLrZrMrNr'r^r`r0r[rVr)rvr‡r±Z EMPTY_DICTrrÚhandlerZhandler_configr;rrWrLrSrr²ZdeferredrQrRrarbrcrdrrrÚ configureësÔ           "    "  "   "  "      " zDictConfigurator.configurec CsÆd|krr|d}y| |¡}WqÂtk rn}z2dt|ƒkr>‚| d¡|d<||d<| |¡}Wdd}~XYqÂXnP| dd¡}| dd¡}| dd¡}| dd¡}|s®tj} nt|ƒ} | |||ƒ}|S) Nz()z'format'r)rIr,r-r.r/)rªršr$rr1r r2r") rvr‡ÚfactoryryÚterIZdfmtr-Úcnamer4rrrr·‰s&      z$DictConfigurator.configure_formattercCs.d|kr| |¡}n| dd¡}t |¡}|S)Nz()rr8)rªr1r ZFilter)rvr‡ryrrrrr¸¥s    z!DictConfigurator.configure_filterc Cs\xV|D]N}y| |jd|¡Wqtk rR}ztd|ƒ|‚Wdd}~XYqXqWdS)Nr²zUnable to add filter %r)Z addFilterr‡r´ri)rvZfiltererr²r6rrrrÚ add_filters®s  zDictConfigurator.add_filtersc sˆtˆƒ}ˆ dd¡}|r\y|jd|}Wn0tk rZ}ztd|ƒ|‚Wdd}~XYnXˆ dd¡}ˆ dd¡}dˆkr ˆ d¡}t|ƒs˜| |¡}|}nˆ d¡} | | ¡} t| tj j ƒrFdˆkrFy>|jd ˆd} t | tj ƒsˆ  |¡td ƒ‚| ˆd<Wn6tk rB}ztd ˆdƒ|‚Wdd}~XYnXnZt| tj jƒrtd ˆkrt| ˆd ¡ˆd <n,t| tj jƒr d ˆkr | ˆd ¡ˆd <| }ˆ dd¡} ‡fdd„ˆDƒ} y|f| Ž}WnLtk r}z,dt|ƒkrô‚|  d¡| d<|f| Ž}Wdd}~XYnX|r.| |¡|dk rH| t |¡¡|rZ| ||¡| r„x"|  ¡D]\}}t|||ƒqjW|S)Nr7rzUnable to set formatter %rr;r²z()r/r<rztarget not configured yetzUnable to set target handler %rZmailhostZaddressrcsi|]}t|ƒrˆ||“qSr)rl)r£r¤)r‡rrr¥Þsz6DictConfigurator.configure_handler..z'stream'ÚstreamZstrm)r~rr‡r´rir¦r’rBr rrCrZHandlerÚupdateršZ SMTPHandlerr«Z SysLogHandlerr$rAr@r³rÀr§r¨)rvr‡Z config_copyr7rr;r²r4r½r¿rHÚthr©r:ryr¾rrwr)r‡rrº¶sl          "      z"DictConfigurator.configure_handlerc Cs\xV|D]N}y| |jd|¡Wqtk rR}ztd|ƒ|‚Wdd}~XYqXqWdS)NrzUnable to add handler %r)r]r‡r´ri)rvrUrrJrrrrÚ add_handlersõs  zDictConfigurator.add_handlersFcCs†| dd¡}|dk r$| t |¡¡|s‚x |jdd…D]}| |¡q8W| dd¡}|rf| ||¡| dd¡}|r‚| ||¡dS)Nr;rr²)r1r@r r³rr\rÄrÀ)rvrUr‡r±r;rJrr²rrrÚcommon_logger_configýs    z%DictConfigurator.common_logger_configcCs6t |¡}| |||¡| dd¡}|dk r2||_dS)NrO)r r_rÅr1rO)rvrr‡r±rUrOrrrrµs   z!DictConfigurator.configure_loggercCst ¡}| |||¡dS)N)r r_rÅ)rvr‡r±rLrrrr¶szDictConfigurator.configure_rootN)F)F)F) r{r|r}r¼r·r¸rÀrºrÄrÅrµr¶rrrrr¯ås ?  r¯cCst|ƒ ¡dS)N)ÚdictConfigClassr¼)r‡rrrÚ dictConfigsrÇcsDGdd„dtƒ}Gdd„dtƒ}G‡fdd„dtjƒ‰ˆ||||ƒS)Nc@seZdZdd„ZdS)z#listen..ConfigStreamHandlerc SsHy|j}| d¡}t|ƒdkrt d|¡d}|j |¡}x&t|ƒ|krd|| |t|ƒ¡}q@W|jjdk r~|j |¡}|dk rø| d¡}yddl}|  |¡}t |ƒWnHt k röt   |¡}y t|ƒWnt k rðt ¡YnXYnX|jjr|jj ¡Wn2tk rB}z|jtkr2‚Wdd}~XYnXdS)Néz>Lrzutf-8)Z connectionZrecvr0ÚstructÚunpackÚserverÚverifyÚdecodeÚjsonÚloadsrÇr´ÚioÚStringIOrÚ tracebackÚ print_excÚreadyÚsetÚOSErrorÚerrnoÚ RESET_ERROR)rvZconnÚchunkZslenrÎrœÚfilerrrrÚhandle>s6           z*listen..ConfigStreamHandler.handleN)r{r|r}rÛrrrrÚConfigStreamHandler7srÜc@s,eZdZdZdedddfdd„Zdd„ZdS)z$listen..ConfigSocketReceiverrYZ localhostNcSs>t |||f|¡t ¡d|_t ¡d|_||_||_dS)NrrY) rrˆr r ÚabortrÚtimeoutrÔrÌ)rvZhostÚportr»rÔrÌrrrrˆlsz-listen..ConfigSocketReceiver.__init__cSsdddl}d}xJ|sV| |j ¡ggg|j¡\}}}|r>| ¡t ¡|j}t ¡qW|  ¡dS)Nr) ÚselectZsocketÚfilenorÞZhandle_requestr r rÝrZ server_close)rvràrÝZrdZwrZexrrrÚserve_until_stoppedvs z8listen..ConfigSocketReceiver.serve_until_stopped)r{r|r}Zallow_reuse_addressÚDEFAULT_LOGGING_CONFIG_PORTrˆrârrrrÚConfigSocketReceiveres räcs&eZdZ‡‡fdd„Zdd„Z‡ZS)zlisten..Servercs4tˆ|ƒ ¡||_||_||_||_t ¡|_dS)N) ÚsuperrˆÚrcvrÚhdlrrßrÌÚ threadingZEventrÔ)rvræ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ÌrrY) rærßrçrÔrÌZserver_addressrÕr r Ú _listenerrrâ)rvrËrrrÚrunŽs     zlisten..Server.run)r{r|r}rˆrìÚ __classcell__r)ré)rêrré„sré)rrrèZThread)rßrÌrÜrär)rérÚlisten#s.rîcCs*t ¡ztrdt_daWdt ¡XdS)NrY)r r rërÝrrrrrÚ stopListenings rï)NT)*r×rÐr Zlogging.handlersr¬rÉr‹rèrÒZ socketserverrrrãZ ECONNRESETrØrërr"r&r r rVrr r­ÚIrgrlÚobjectrmr~rqrZrrrƒrsr„r¯rÆrÇrîrïrrrrÚsF "%W! 9z