3 Õì2aÐŒã @spddlZddlZddlZddlZddlZddlZddlZddlZyddlZ ddl Z Wne k rldZ YnXddl m Z mZdZejZdad*dd„Zdd„Zd d „Zd d „Zd d„Zdd„Zdd„Zdd„ZejdejƒZdd„ZGdd„deƒZ Gdd„de!e ƒZ"Gdd„de#e ƒZ$Gdd„de%e ƒZ&Gd d!„d!eƒZ'Gd"d#„d#e'ƒZ(e(Z)d$d%„Z*edfd&d'„Z+d(d)„Z,dS)+éN)ÚThreadingTCPServerÚStreamRequestHandleriF#Tc Cs„ddl}t||jƒr|}n*|j|ƒ}t|dƒr:|j|ƒn |j|ƒt|ƒ}tj ƒz t ƒt ||ƒ}t |||ƒWdtj ƒ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ú+/opt/alt/python36/lib64/python3.6/config.pyÚ fileConfig8s       rc Csp|jdƒ}|jdƒ}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Ú_resolveZs    r"cCstdd„|ƒS)NcSs|jƒS)N)Ústrip)ÚxrrrÚisz_strip_spaces..)Úmap)ZalistrrrÚ _strip_spaceshsr'c Cs²|dd}t|ƒsiS|jdƒ}t|ƒ}i}x~|D]v}d|}|j|dddd�}|j|dddd�}|j|d dd d�}tj}||jd ƒ} | r–t| ƒ}||||ƒ} | ||<q4W|S) NrÚkeysú,z formatter_%sÚformatT)ÚrawÚfallbackÚdatefmtÚstyleú%Úclass)Úlenrr'Úgetr Ú Formatterr") rÚflistrZformZsectnameZfsZdfsZstlÚcÚ class_nameÚfrrrr ks$     r c CsD|dd}t|ƒsiS|jdƒ}t|ƒ}i}g}xê|D]â}|d|}|d}|jddƒ}yt|ttƒƒ}Wn ttfk rŽt |ƒ}YnX|d} t| ttƒƒ} || Ž} d |krÈ|d } | j | ƒt|ƒrÞ| j ||ƒt |tj jƒ�r|jd dƒ} t| ƒ�r|j| | fƒ| ||<q8Wx |D]\} } | j|| ƒ�q$W|S) Nrr(r)z handler_%sr0Ú formatterÚÚargsÚlevelÚtarget)r1rr'r2ÚevalÚvarsr rÚ NameErrorr"ÚsetLevelÚ setFormatterÚ issubclassrÚ MemoryHandlerÚappendZ setTarget)rrÚhlistrZfixupsÚhandÚsectionÚklassÚfmtr:Úhr;r<Útrrrr �s>         r cCsHtj}x<|D]4}|jj|}||kr:tj|_g|_d|_q ||_q WdS)NT) r ÚrootÚmanagerÚ loggerDictZNOTSETr;rÚ propagateÚdisabled)ÚexistingÚ child_loggersÚdisable_existingrLÚlogÚloggerrrrÚ_handle_existing_loggers¤s   rVcCs,|dd}|jdƒ}ttdd„|ƒƒ}|jdƒ|d}tj}|}d|kr^|d}|j|ƒx |jdd…D]}|j|ƒqnW|d } t | ƒr¾| jdƒ} t | ƒ} x| D]} |j || ƒq¨Wt|j j jƒƒ} | jƒg} �x>|D�]4}|d |}|d } |jd d d�}tj| ƒ}| | k�rŒ| j| ƒd }| d}t |ƒ}t | ƒ}x<||k�r€| |d|…|k�rt| j| |ƒ|d 7}�qFW| j| ƒd|k�r¨|d}|j|ƒx"|jdd…D]}|j|ƒ�q¸W||_d|_|d } t | ƒrâ| jdƒ} t | ƒ} x| D]} |j || ƒ�qWqâWt| | |ƒdS)NÚloggersr(r)cSs|jƒS)N)r#)r$rrrr%¿sz"_install_loggers..rLZ logger_rootr;rz logger_%sÚqualnamerOé)r,rr)rÚlistr&Úremover rLr@rÚ removeHandlerr1r'Ú addHandlerrMrNr(ÚsortZgetintÚ getLoggerÚindexrDrOrPrV)rrrSZllistrGrLrTr;rJrErFrQrRZqnrOrUÚiÚprefixedÚpflenÚ num_existingrrrr¹sd                rcCs.tjjƒtjtjdd…ƒtjdd…=dS)N)r Ú _handlersÚclearZshutdownZ _handlerListrrrrr s r z^[a-z_][a-z0-9_]*$cCstj|ƒ}|std|ƒ‚dS)Nz!Not a valid Python identifier: %rT)Ú IDENTIFIERÚmatchÚ ValueError)ÚsÚmrrrÚ valid_idents  rlc@seZdZddd„Zdd„ZdS)ÚConvertingMixinTcCsB|jj|ƒ}||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|jj|ƒ}||k r,t|ƒtttfkr,||_|S)N)rnrorprqrrrsrt)rvrwryrrrro0s   zConvertingMixin.convertN)T)Ú__name__Ú __module__Ú __qualname__rzrorrrrrm!s rmc@s(eZdZdd„Zddd„Zd dd„ZdS) rqcCstj||ƒ}|j||ƒS)N)ÚdictÚ __getitem__rz)rvrurwrrrrEs zConvertingDict.__getitem__NcCstj|||ƒ}|j||ƒS)N)r~r2rz)rvruÚdefaultrwrrrr2IszConvertingDict.getcCstj|||ƒ}|j||dd�S)NF)rx)r~rrz)rvrur€rwrrrrMszConvertingDict.pop)N)N)r{r|r}rr2rrrrrrqBs rqc@seZdZdd„Zddd„ZdS) rrcCstj||ƒ}|j||ƒS)N)rZrrz)rvrurwrrrrSs zConvertingList.__getitem__rYcCstj||ƒ}|j|ƒS)N)rZrro)rvÚidxrwrrrrWs zConvertingList.popNéÿÿÿÿ)r‚)r{r|r}rrrrrrrrQsrrc@seZdZdd„ZdS)rscCstj||ƒ}|j||dd�S)NF)rx)Útuplerrz)rvrurwrrrr]s zConvertingTuple.__getitem__N)r{r|r}rrrrrrs[srsc@sˆeZdZejdƒZejdƒZejdƒZejdƒZejdƒ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__vs zBaseConfigurator.__init__c CsÄ|jdƒ}|jdƒ}y`|j|ƒ}xP|D]H}|d|7}yt||ƒ}Wq&tk rl|j|ƒt||ƒ}Yq&Xq&W|Stk r¾tjƒdd…\}}td||fƒ}|||_ |_ |‚YnXdS)NrrrYzCannot resolve %r: %s) rrÚimporterrrÚ ImportErrorÚsysÚexc_inforiÚ __cause__Ú __traceback__) rvrjrrr ZfragÚeÚtbÚvrrrÚresolvezs"      zBaseConfigurator.resolvecCs |j|ƒS)N)r’)rvrwrrrr…‘szBaseConfigurator.ext_convertc Cs|}|jj|ƒ}|dkr&td|ƒ‚nØ||jƒd…}|j|jƒd}x´|rü|jj|ƒ}|rp||jƒd}nd|jj|ƒ}|rÔ|jƒd}|jj|ƒs¢||}n2yt |ƒ}||}Wnt k rÒ||}YnX|rê||jƒ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ƒ r&t|tƒr&t|ƒ}||_n¢t|tƒ rLt|tƒrLt|ƒ}||_n|t|tƒ rrt|tƒrrt|ƒ}||_nVt|tƒrÈ|j j |ƒ}|rÈ|j ƒ}|d}|j j |dƒ}|rÈ|d}t||ƒ}||ƒ}|S)NÚprefixÚsuffix)rrqr~rnrrrZrsrƒÚstrÚCONVERT_PATTERNrhÚ groupdictÚvalue_convertersr2r)rvrwrkrœr�Z converterržrrrro·s*     zBaseConfigurator.convertcsrˆjdƒ}t|ƒs|j|ƒ}ˆjddƒ}t‡fdd„ˆDƒƒ}|f|Ž}|rnx |jƒD]\}}t|||ƒqVW|S)Nz()rcs g|]}t|ƒr|ˆ|f‘qSr)rl)Ú.0Úk)r‡rrú Úsz5BaseConfigurator.configure_custom..)rÚcallabler’r~ÚitemsÚsetattr)rvr‡r5ÚpropsÚkwargsryrrwr)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„bs     "r„c@sZeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zddd„Z ddd„Z ddd„Z dS)ÚDictConfiguratorcCsü|j}d|krtdƒ‚|ddkr2td|dƒ‚|jddƒ}i}tjƒ�z |�r°|jd|ƒ}xŽ|D]†}|tjkr‚td|ƒ‚qfy6tj|}||}|jd dƒ}|r¶|jtj|ƒƒWqft k rê} ztd || fƒ‚WYdd} ~ XqfXqfW|jd |ƒ} xZ| D]R}y|j || |d ƒWn4t k �rP} ztd || fƒ‚WYdd} ~ XnX�qW|jddƒ} | �rêy|j | d ƒWn0t k �rª} ztd| ƒ‚WYdd} ~ XnX�n:|jdd ƒ} t ƒ|jd|ƒ} xZ| D]R}y|j | |ƒ| |<Wn4t k �r"} ztd|| fƒ‚WYdd} ~ XnX�qÔW|jd|ƒ}xZ|D]R}y|j||ƒ||<Wn4t k �rŠ} ztd|| fƒ‚WYdd} ~ XnX�q‚|jdƒ|d<||d<|j|ƒ}WYdd}~XqÂXnP|jddƒ}|jddƒ}|jddƒ}|jddƒ}|s®tj} nt|ƒ} | |||ƒ}|S) Nz()z'format'r*rIr-r.r/r0)r«ršrŸrr2r r3r") rvr‡ÚfactoryryÚterIZdfmtr.Úcnamer5rrrr¸‹s&      z$DictConfigurator.configure_formattercCs.d|kr|j|ƒ}n|jddƒ}tj|ƒ}|S)Nz()rr9)r«r2r ZFilter)rvr‡ryrrrrr¹§s    z!DictConfigurator.configure_filtercCs^xX|D]P}y|j|jd|ƒWqtk rT}ztd||fƒ‚WYdd}~XqXqWdS)Nr³zUnable to add filter %r: %s)Z addFilterr‡rµri)rvZfiltererr³r7r�rrrÚ add_filters°s  zDictConfigurator.add_filtersc/sŽtˆƒ}ˆjddƒ}|r^y|jd|}Wn2tk r\}ztd||fƒ‚WYdd}~XnXˆjddƒ}ˆjddƒ}dˆkr¢ˆjdƒ}t|ƒsš|j|ƒ}|}�nˆjdƒ} |j| ƒ} t| tj j ƒoÊdˆk�rHy>|jd ˆd} t | tj ƒ�sˆj |ƒtd ƒ‚| ˆd<Wn8tk �rD}ztd ˆd|fƒ‚WYdd}~XnXnZt| tj jƒ�rvd ˆk�rv|jˆd ƒˆd <n,t| tj jƒ�r¢d ˆk�r¢|jˆd ƒˆd <| }ˆjddƒ} t‡fdd„ˆDƒƒ} y|f| Ž}WnLtk �r"}z.dt|ƒk�rú‚| jdƒ| d<|f| Ž}WYdd}~XnX|�r4|j|ƒ|dk �rN|jtj|ƒƒ|�r`|j||ƒ| �rŠx"| jƒD]\}}t|||ƒ�qpW|S)Nr8rzUnable to set formatter %r: %sr;r³z()r0r<rztarget not configured yetz#Unable to set target handler %r: %sZmailhostZaddressrcs g|]}t|ƒr|ˆ|f‘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_copyr8r�r;r³r5r¾rÀrHÚthr©rªryr¿rrwr)r‡rr»¸sl          $      z"DictConfigurator.configure_handlercCs^xX|D]P}y|j|jd|ƒWqtk rT}ztd||fƒ‚WYdd}~XqXqWdS)NrzUnable to add handler %r: %s)r]r‡rµri)rvrUrrJr�rrrÚ add_handlers÷s  zDictConfigurator.add_handlersFcCs†|jddƒ}|dk r$|jtj|ƒƒ|s‚x |jdd…D]}|j|ƒq8W|jddƒ}|rf|j||ƒ|jddƒ}|r‚|j||ƒdS)Nr;rr³)r2r@r r´rr\rÅrÁ)rvrUr‡r²r;rJrr³rrrÚcommon_logger_configÿs    z%DictConfigurator.common_logger_configcCs6tj|ƒ}|j|||ƒ|jddƒ}|dk r2||_dS)NrO)r r_rÆr2rO)rvrr‡r²rUrOrrrr¶s   z!DictConfigurator.configure_loggercCstjƒ}|j|||ƒ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|ƒjƒdS)N)ÚdictConfigClassr½)r‡rrrÚ dictConfig srÈcsPts tdƒ‚Gdd„dtƒ}Gdd„dtƒ}G‡fdd„dtjƒ‰ˆ||||ƒS)Nz listen() needs threading to workc@seZdZdd„ZdS)z#listen..ConfigStreamHandlercSsH�y|j}|jdƒ}t|ƒdk�rtjd|ƒd}|jj|ƒ}x&t|ƒ|krd||j|t|ƒƒ}q@W|jjdk r~|jj|ƒ}|dk rø|jdƒ}yddl}|j |ƒ}t |ƒWnHt k röt j |ƒ}y t|ƒWnt k rðtjƒYnXYnX|jj�r|jjjƒWn2tk �rB}z|jtk�r2‚WYdd}~XnXdS)Néz>Lrzutf-8)Z connectionZrecvr1ÚstructÚunpackÚserverÚverifyÚdecodeÚjsonÚloadsrÈrµÚioÚStringIOrÚ tracebackÚ print_excÚreadyÚsetÚOSErrorÚerrnoÚ RESET_ERROR)rvZconnÚchunkZslenrÏrœÚfiler�rrrÚhandleBs6           z*listen..ConfigStreamHandler.handleN)r{r|r}rÜrrrrÚConfigStreamHandler;srÝc@s,eZdZdZdedddfdd„Zdd„ZdS)z$listen..ConfigSocketReceiverrYZ localhostNcSs>tj|||f|ƒtjƒd|_tjƒd|_||_||_dS)NrrY) rrˆr r ÚabortrÚtimeoutrÕrÍ)rvÚhostÚportr¼rÕrÍrrrrˆpsz-listen..ConfigSocketReceiver.__init__cSsfddl}d}xJ|sV|j|jjƒggg|jƒ\}}}|r>|jƒtjƒ|j}tjƒqW|jj ƒdS)Nr) ÚselectZsocketÚfilenorßZhandle_requestr r rÞrÚclose)rvrârÞZrdÚwrZexrrrÚserve_until_stoppedzs z8listen..ConfigSocketReceiver.serve_until_stopped)r{r|r}Zallow_reuse_addressÚDEFAULT_LOGGING_CONFIG_PORTrˆrærrrrÚConfigSocketReceiveris rècs&eZdZ‡‡fdd„Zdd„Z‡ZS)zlisten..Servercs4tˆ|ƒjƒ||_||_||_||_tjƒ|_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|_|jjƒtjƒ|a tj ƒ|j ƒ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í)ÚthreadÚNotImplementedErrorrrrìZThread)rárÍrÝrèr)rírÚlisten%s .rôc Cs*tjƒztrdt_daWdtjƒXdS)NrY)r r rïrÞrrrrrÚ stopListening¡s rõ)NT)-rØrÑr Zlogging.handlersr­rÊr‹rÓÚ_threadròrìrŠZ socketserverrrrçZ ECONNRESETrÙrïrr"r'r r rVrr r®ÚIrgrlÚobjectrmr~rqrZrrrƒrsr„r°rÇrÈrôrõrrrrÚsN   "#W! 9|