a DOg@sJddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z m Z dZ ej Zdad*ddZddZd d Zd d Zd dZddZddZddZedejZddZGdddeZGdddeeZGddde eZ!Gddde"eZ#Gd d!d!eZ$Gd"d#d#e$Z%e%Z&d$d%Z'e dfd&d'Z(d(d)Z)dS)+N)ThreadingTCPServerStreamRequestHandleriF#TcCsddl}t||jr|}n*||}t|dr:||n ||t|}t z(t t ||}t |||Wt n t 0dS)Nrreadline) configparser isinstanceZRawConfigParser ConfigParserhasattrZ read_fileread_create_formatterslogging _acquireLock_clearExistingHandlers_install_handlers_install_loggers _releaseLock)fnamedefaultsdisable_existing_loggersrcp formattershandlersr&/usr/lib64/python3.9/logging/config.py fileConfig3s       rc Csj|d}|d}t|}|D]D}|d|}zt||}Wq tybt|t||}Yq 0q |S)N.r)splitpop __import__getattrAttributeError)nameusedfoundnrrr_resolveUs    r$cCs ttj|SN)mapstrstrip)Zalistrrr _strip_spacescsr)c Cs|dd}t|siS|d}t|}i}|D]v}d|}|j|dddd}|j|dddd}|j|d dd d}tj}||d } | rt| }||||} | ||<q2|S) Nrkeys,z formatter_%sformatT)rawfallbackdatefmtstyle%class)lenrr)getr Formatterr$) rflistrZformZsectnamefsdfsZstlc class_namefrrrr fs$    r c Csh|dd}t|siS|d}t|}i}g}|D] }|d|}|d}|dd}zt|tt}Wnttfyt |}Yn0|dd } t| tt} |d d } t| tt} || i| } || _ d |vr|d } | | t|r| ||t |tjjr<|d d} t| r<|| | f| ||<q6|D]\} }| ||qJ|S)Nrr*r+z handler_%sr2 formatterargs()kwargsz{}leveltarget)r3rr)r4evalvarsr r NameErrorr$r setLevel setFormatter issubclassr MemoryHandlerappendZ setTarget)rrhlistrZfixupshandsectionklassfmtr>r@hrArBtrrrr|sD             rcCsTtj}|D]D}|jj|}||vrHt|tjsN|tjg|_d|_ q ||_ q dS)NT) r rootmanager loggerDictr PlaceHolderrFNOTSETr propagatedisabled)existing child_loggersdisable_existingrRlogloggerrrr_handle_existing_loggerss    r^cCs |dd}|d}tt|}|d|d}tj}|}d|vrX|d}|||jddD]}||qf|d} t | r| d} t| } | D]} | || qt|j j } | g} |D](}|d|}|d } |jd d d }t| }| | vrv| | d }| d }t |}t | }||krl| |d||kr`| | ||d 7}q2| | d|vr|d}|||jddD]}||q||_d|_|d} t | r| d} t| } | D]} | || qqt| | |dS)Nloggersr*r+rRZ logger_rootrArz logger_%squalnamerW)r.rr)rlistr)remover rRrFr removeHandlerr3 addHandlerrSrTr*sortZgetint getLoggerindexrJrWrXr^)rrr[ZllistrMrRr\rArPrKrLrYrZZqnrWr]iprefixedpflen num_existingrrrrsd                  rcCs.tjttjddtjdd=dSr%)r _handlersclearshutdown _handlerListrrrrr s r z^[a-z_][a-z0-9_]*$cCst|}|std|dS)Nz!Not a valid Python identifier: %rT) IDENTIFIERmatch ValueError)smrrr valid_idents  rvc@seZdZdddZddZdS)ConvertingMixinTcCsB|j|}||ur>|r |||<t|tttfvr>||_||_|Sr%) configuratorconverttypeConvertingDictConvertingListConvertingTupleparentkey)selfrvaluereplaceresultrrrconvert_with_key#s  z ConvertingMixin.convert_with_keycCs0|j|}||ur,t|tttfvr,||_|Sr%)rxryrzr{r|r}r~)rrrrrrry/s  zConvertingMixin.convertN)T)__name__ __module__ __qualname__rryrrrrrw s rwc@s(eZdZddZdddZd ddZdS) r{cCst||}|||Sr%)dict __getitem__rrrrrrrrDs zConvertingDict.__getitem__NcCst|||}|||Sr%)rr4rrrdefaultrrrrr4HszConvertingDict.getcCst|||}|j||ddSNF)r)rrrrrrrrLszConvertingDict.pop)N)N)rrrrr4rrrrrr{As r{c@seZdZddZdddZdS)r|cCst||}|||Sr%)rbrrrrrrrRs zConvertingList.__getitem__cCst||}||Sr%)rbrry)ridxrrrrrVs zConvertingList.popN)r)rrrrrrrrrr|Psr|c@seZdZddZdS)r}cCst||}|j||ddSr)tuplerrrrrrr\s zConvertingTuple.__getitem__N)rrrrrrrrr}Zsr}c@seZdZedZedZedZedZedZ dddZ e e Z d d Zd d Zd dZddZddZddZddZdS)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%)r{configrx)rrrrr__init__us zBaseConfigurator.__init__c Cs|d}|d}z\||}|D]F}|d|7}zt||}Wq$tyh||t||}Yq$0q$|WStytdd\}}td||f}|||_ |_ |Yn0dS)NrrrazCannot resolve %r: %s) rrimporterrr ImportErrorsysexc_infors __cause__ __traceback__) rrtr r!r"fragetbvrrrresolveys"       zBaseConfigurator.resolvecCs ||Sr%)rrrrrrrszBaseConfigurator.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||fqH|S)NzUnable to convert %rrzUnable to convert %r at %r) WORD_PATTERNrrrsendrgroups DOT_PATTERN INDEX_PATTERN DIGIT_PATTERNint TypeError)rrrestrudrr#rrrrs4        zBaseConfigurator.cfg_convertcCst|ts$t|tr$t|}||_nt|tsHt|trHt|}||_nt|tsvt|trvt|dsvt|}||_nVt|t r|j |}|r| }|d}|j |d}|r|d}t||}||}|S)N_fieldsprefixsuffix)rr{rrxr|rbr}rrr'CONVERT_PATTERNrr groupdictvalue_convertersr4r)rrrurr converterrrrrrys0    zBaseConfigurator.convertcsnd}t|s||}dd}fddD}|fi|}|rj|D]\}}t|||qT|S)Nr?rcsi|]}t|r||qSrrv.0krrr z5BaseConfigurator.configure_custom..)rcallableritemssetattr)rrr9propsr@rr rrrrconfigure_customs   z!BaseConfigurator.configure_customcCst|trt|}|Sr%)rrbrrrrras_tuples zBaseConfigurator.as_tupleN)rrrrecompilerrrrrr staticmethodrrrrrrryrrrrrrras      "rc@sZeZdZddZddZddZddZd d Zd d ZdddZ dddZ dddZ dS)DictConfiguratorc Cs|j}d|vrtd|ddkr2td|d|dd}i}tz|r|d|}|D]}|tjvrtd|qdz6tj|}||}|d d}|r|t|Wqdt y} ztd || WYd} ~ qdd} ~ 00qd|d |} | D]P}z| || |d Wqt yJ} ztd || WYd} ~ qd} ~ 00q|dd} | rz| | 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| jvr||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} ~ 00qt||| |dd} | rz| | Wn0t y} ztd| WYd} ~ n d} ~ 00Wtn t0dS)Nversionz$dictionary doesn't specify a versionrazUnsupported version: %s incrementalFrzNo handler found with name %rrAzUnable to configure handler %rr_TzUnable to configure logger %rrRzUnable to configure root loggerrrz Unable to configure formatter %rfilterszUnable to configure filter %rtarget not configured yetr) rrsrr r r4rmrF _checkLevel Exceptionconfigure_loggerconfigure_rootr configure_formatterconfigure_filtersortedconfigure_handlerr r'rrJrRrbrSrTr*rfrhr3rcr^r)rrr EMPTY_DICTrr handlerZhandler_configrArr_rRr[rrZdeferredrYrZrirjrkrlrrr configures                        zDictConfigurator.configurec Csd|vrt|d}z||}Wqtyp}z:dt|vr<|d|d<||d<||}WYd}~qd}~00nl|dd}|dd}|dd}|dd}|stj} nt|} d |vr| ||||d }n | |||}|S) Nr?z'format'r,rOr/r0r1r2validate)rrr'rr4r r5r$) rrfactoryrterOZdfmtr0cnamer9rrrrs* "     z$DictConfigurator.configure_formattercCs.d|vr||}n|dd}t|}|S)Nr?r r=)rr4r Filter)rrrr rrrrs    z!DictConfigurator.configure_filterc CsZ|D]P}z||jd|WqtyR}ztd||WYd}~qd}~00qdS)NrzUnable to add filter %r) addFilterrrrs)rZfiltererrr;rrrr add_filterss zDictConfigurator.add_filtersc st}dd}|r^z|jd|}Wn2ty\}ztd||WYd}~n d}~00dd}dd}dvrd}t|s||}|}nd} || } t| tj j rJdvrJz>|jd d} t | tj s |td | d<Wn8tyF}ztd d|WYd}~n d}~00nZt| tj jrxd vrx|d d <n,t| tj jrd vr|d d <| }dd} fddD} 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 %rrArr?r2rBrrzUnable to set target handler %rZmailhostaddressrcsi|]}t|r||qSrrrrrrrrz6DictConfigurator.configure_handler..z'stream'streamZstrm)rrrrrsrrrHr rrIrHandlerupdaterZ SMTPHandlerrZ SysLogHandlerr'rGrFrrrr)rrZ config_copyr<rrArr9rrrNthrr@rrr rrrrrs~          $   z"DictConfigurator.configure_handlerc CsZ|D]P}z||jd|WqtyR}ztd||WYd}~qd}~00qdS)NrzUnable to add handler %r)rerrrs)rr]rrPrrrr add_handlerss zDictConfigurator.add_handlersFcCs|dd}|dur$|t||s~|jddD]}||q6|dd}|rb||||dd}|r~|||dS)NrArr)r4rFr rrrdrr)rr]rrrArPrrrrrcommon_logger_configs     z%DictConfigurator.common_logger_configcCs6t|}|||||dd}|dur2||_dS)NrW)r rgrr4rW)rr rrr]rWrrrrs   z!DictConfigurator.configure_loggercCst}||||dSr%)r rgr)rrrrRrrrr szDictConfigurator.configure_rootN)F)F)F) rrrrrrrrrrrrrrrrrs$ ?  rcCst|dSr%)dictConfigClassrrrrr dictConfig'srcsDGdddt}Gdddt}Gfdddtj||||S)Nc@seZdZddZdS)z#listen..ConfigStreamHandlerc SsBz|j}|d}t|dkrtd|d}|j|}t||krb|||t|}q>|jjdurz|j|}|dur|d}zddl}| |}t |WnDt yt |}z t|Wnt ytYn0Yn0|jjr|jjWn4ty<}z|jtkr(WYd}~n d}~00dS)Nz>Lrzutf-8) connectionrecvr3structunpackserververifydecodejsonloadsrrioStringIOr traceback print_excreadysetOSErrorerrno RESET_ERROR)rconnchunkZslenrrfilerrrrhandleGs6              z*listen..ConfigStreamHandler.handleN)rrrrrrrrConfigStreamHandler@src@s,eZdZdZdedddfddZddZdS)z$listen..ConfigSocketReceiverra localhostNcSs>t|||f|td|_td|_||_||_dS)Nrra) rrr r abortrtimeoutrr)rhostportrrrrrrrusz-listen..ConfigSocketReceiver.__init__cSs`ddl}d}|sT||jggg|j\}}}|r<|t|j}tq | dS)Nr) selectsocketfilenorZhandle_requestr r rrZ server_close)rrrZrdwrexrrrserve_until_stoppeds  z8listen..ConfigSocketReceiver.serve_until_stopped)rrrZallow_reuse_addressDEFAULT_LOGGING_CONFIG_PORTrrrrrrConfigSocketReceiverns  rcs&eZdZfddZddZZS)zlisten..Servercs4t|||_||_||_||_t|_dSr%) superrrcvrhdlrrr threadingEventr)rr r rr)Server __class__rrrs zlisten..Server.__init__cSsZ|j|j|j|j|jd}|jdkr0|jd|_|jt|a t | dS)N)rrrrrra) r rr rrZserver_addressrr r _listenerrr)rrrrrruns    zlisten..Server.run)rrrrr __classcell__rr)rrrsr)rrr Thread)rrrrrrrlisten,s.rcCs2tztrdt_daWtn t0dS)Nra)r r rrrrrrr stopListenings r)NT)*rrr Zlogging.handlersrrrr r socketserverrrrZ ECONNRESETrrrr$r)r rr^rr rIrqrvobjectrwrr{rbr|rr}rrrrrrrrrrsF "&W! Az