%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/logging/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/logging/config.pyc


Oac@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZyddl
Z
ddlZWnek
reZ
nXddlmZmZdZejZeaeedZdZdZdZd	Zd
ZdZej dej!Z"d
Z#de$fdYZ%de&e%fdYZ'de(e%fdYZ)de*e%fdYZ+de$fdYZ,de,fdYZ-e-Z.dZ/edZ0dZ1dS(s
Configuration functions for the logging package for Python. The core package
is based on PEP 282 and comments thereto in comp.lang.python, and influenced
by Apache's log4j system.

Copyright (C) 2001-2014 Vinay Sajip. All Rights Reserved.

To use, simply 'import logging' and log away!
iN(tThreadingTCPServertStreamRequestHandleriF#cCsddl}|j|}t|dr:|j|n
|j|t|}tjz7tjjtj	2t
||}t|||WdtjXdS(sD
    Read the logging configuration from a ConfigParser-format file.

    This can be called several times from an application, allowing an end user
    the ability to select from various pre-canned configurations (if the
    developer provides a mechanism to present the choices and load the chosen
    configuration).
    iNtreadline(
tConfigParserthasattrtreadfptreadt_create_formatterstloggingt_acquireLockt	_handlerstcleart_handlerListt_install_handlerst_install_loggerst_releaseLock(tfnametdefaultstdisable_existing_loggersRtcpt
formattersthandlers((s*/usr/local/lib/python2.7/logging/config.pyt
fileConfig<s	


cCs|jd}|jd}t|}x\|D]T}|d|}yt||}Wq1tk
rt|t||}q1Xq1W|S(s)Resolve a dotted name to a global object.t.i(tsplittpopt
__import__tgetattrtAttributeError(tnametusedtfoundtn((s*/usr/local/lib/python2.7/logging/config.pyt_resolve[s


cCstd|S(NcSs
|jS(N(tstrip(tx((s*/usr/local/lib/python2.7/logging/config.pyt<lambda>jt(tmap(talist((s*/usr/local/lib/python2.7/logging/config.pyt
_strip_spacesiscCs t|tr|S|jdS(Nsutf-8(t
isinstancetstrtencode(ts((s*/usr/local/lib/python2.7/logging/config.pyt_encodedlscCs|jdd}t|s"iS|jd}t|}i}x|D]}d|}|j|}d|kr|j|dd}nd	}d|kr|j|dd}nd	}tj}d|kr|j|d}	|	rt|	}qn|||}
|
||<qJW|S(
sCreate and return formattersRtkeyst,sformatter_%stformatitdatefmttclassN(	tgettlenRR(toptionstNoneRt	FormatterR!(RtflistRtformtsectnametoptstfstdfstct
class_nametf((s*/usr/local/lib/python2.7/logging/config.pyRos.

	cCs
|jdd}t|s"iS|jd}t|}i}g}x|D]}d|}|j|d}|j|}d|kr|j|d}	nd}	yt|tt}Wn#tt	fk
rt
|}nX|j|d}
t|
tt}
||
}d	|krO|j|d	}|jtj|nt|	ro|j
||	nt|tjjrd
|kr|j|d
}
nd}
t|
r|j||
fqn|||<qPWx%|D]\}}|j||qW|S(sInstall and return handlersRR.R/s
handler_%sR2t	formatterR%targstlevelttarget(R3R4RR(R5tevaltvarsRRt	NameErrorR!tsetLevelt_levelNamestsetFormattert
issubclassRt
MemoryHandlertappendt	setTarget(RRthlistRtfixupsthandR:tklassR;tfmtRBthRCRDtt((s*/usr/local/lib/python2.7/logging/config.pyR
sH

cCsq|jdd}|jd}ttd|}|jdd}tj}|}|j|}d|kr|j|d}|jtj	|nx|j
D]}	|j|	qW|j|d}
t|
r|
jd}
t
|
}
x"|
D]}|j||qWnt|jjj}|jg}
x|D]}d	|}|j|d
}|j|}d|kr|j|d}nd}tj|}||krK|j|d}|d
}t|}t|}xB||kr:||| |kr-|
j||n|d7}qW|j|nd|kr|j|d}|jtj	|nx|j
D]}	|j|	qW||_d|_|j|d}
t|
rN|
jd}
t
|
}
x"|
D]}|j||qWqNqNWxT|D]L}|jj|}||
kr`tj|_g|_
d|_q||_qWdS(sCreate and install loggerstloggersR.R/cSs
|jS(N(R"(R#((s*/usr/local/lib/python2.7/logging/config.pyR$R%troottlogger_rootRCRs	logger_%stqualnamet	propagateiRiN(R3RtlistR&tremoveRRWR5RHRIRt
removeHandlerR4R(t
addHandlertmanagert
loggerDictR.tsorttgetintt	getLoggertindexRMRZtdisabledtNOTSETRC(RRRtllistR:RWtlogR;RCRTRORQtexistingt
child_loggerstqnRZtloggertitprefixedtpflentnum_existing((s*/usr/local/lib/python2.7/logging/config.pyRsx
	




		

	s^[a-z_][a-z0-9_]*$cCs,tj|}|s(td|ntS(Ns!Not a valid Python identifier: %r(t
IDENTIFIERtmatcht
ValueErrortTrue(R,tm((s*/usr/local/lib/python2.7/logging/config.pytvalid_identstConvertingMixincBs#eZdZedZdZRS(s?For ConvertingXXX's, this mixin class provides common functionscCsh|jj|}||k	rd|r1|||<nt|tttfkrd||_||_qdn|S(N(tconfiguratortconvertttypetConvertingDicttConvertingListtConvertingTupletparenttkey(tselfRtvaluetreplacetresult((s*/usr/local/lib/python2.7/logging/config.pytconvert_with_key s
	cCsL|jj|}||k	rHt|tttfkrH||_qHn|S(N(RxRyRzR{R|R}R~(RRR((s*/usr/local/lib/python2.7/logging/config.pyRy,s(t__name__t
__module__t__doc__RtRRy(((s*/usr/local/lib/python2.7/logging/config.pyRwsR{cBs/eZdZdZddZddZRS(s A converting dictionary wrapper.cCs"tj||}|j||S(N(tdictt__getitem__R(RRR((s*/usr/local/lib/python2.7/logging/config.pyRAscCs%tj|||}|j||S(N(RR3R(RRtdefaultR((s*/usr/local/lib/python2.7/logging/config.pyR3EscCs+tj|||}|j||dtS(NR(RRRtFalse(RRRR((s*/usr/local/lib/python2.7/logging/config.pyRIsN(RRRRR6R3R(((s*/usr/local/lib/python2.7/logging/config.pyR{>s	R|cBs#eZdZdZddZRS(sA converting list wrapper.cCs"tj||}|j||S(N(R[RR(RRR((s*/usr/local/lib/python2.7/logging/config.pyROsicCstj||}|j|S(N(R[RRy(RtidxR((s*/usr/local/lib/python2.7/logging/config.pyRSs(RRRRR(((s*/usr/local/lib/python2.7/logging/config.pyR|Ms	R}cBseZdZdZRS(sA converting tuple wrapper.cCs(tj||}|j||dtS(NR(ttupleRRR(RRR((s*/usr/local/lib/python2.7/logging/config.pyRYs(RRRR(((s*/usr/local/lib/python2.7/logging/config.pyR}WstBaseConfiguratorcBseZdZejdZejdZejdZejdZejdZ	idd6dd	6Z
eZd
Z
dZdZd
ZdZdZdZRS(sI
    The configurator base class which defines some useful defaults.
    s%^(?P<prefix>[a-z]+)://(?P<suffix>.*)$s^\s*(\w+)\s*s^\.\s*(\w+)\s*s^\[\s*(\w+)\s*\]\s*s^\d+$text_converttexttcfg_converttcfgcCs@t||_||j_tttjkr<t|_ndS(N(R{tconfigRxRzRttypestFunctionTypetimporter(RR((s*/usr/local/lib/python2.7/logging/config.pyt__init__rsc	Cs|jd}|jd}yy|j|}x_|D]W}|d|7}yt||}Wq7tk
r|j|t||}q7Xq7W|SWnVtk
rtjd\}}td||f}|||_	|_
|nXdS(s`
        Resolve strings to objects using standard import and attribute
        syntax.
        RiisCannot resolve %r: %sN(RRRRRtImportErrortsystexc_infoRst	__cause__t
__traceback__(	RR,RRRtfragtettbtv((s*/usr/local/lib/python2.7/logging/config.pytresolve|s"



cCs
|j|S(s*Default converter for the ext:// protocol.(R(RR((s*/usr/local/lib/python2.7/logging/config.pyRscCsO|}|jj|}|dkr7td|n||j}|j|jd}x|rJ|jj|}|r||jd}n|jj|}|r|jd}|j	j|s||}qyt
|}||}Wqtk
r||}qXn|r1||j}qatd||fqaW|S(s*Default converter for the cfg:// protocol.sUnable to convert %risUnable to convert %r at %rN(tWORD_PATTERNRrR6RstendRtgroupstDOT_PATTERNt
INDEX_PATTERNt
DIGIT_PATTERNtintt	TypeError(RRtrestRutdRR ((s*/usr/local/lib/python2.7/logging/config.pyRs2	

cCs/t|tr7t|tr7t|}||_nt|trnt|trnt|}||_nt|trt|trt|}||_nt|tr+|j	j
|}|r+|j}|d}|jj
|d}|r(|d}t||}||}q(q+n|S(s
        Convert values to an appropriate type. dicts, lists and tuples are
        replaced by their converting alternatives. Strings are checked to
        see if they have a conversion format and are converted if they do.
        tprefixtsuffixN(R)R{RRxR|R[R}Rt
basestringtCONVERT_PATTERNRrt	groupdicttvalue_convertersR3R6R(RRRuRRt	converterR((s*/usr/local/lib/python2.7/logging/config.pyRys*

c	Cs|jd}t|drUttdrUt|tjkrU|j|}n|jdd}tg|D]"}t|rq|||f^qq}||}|rx-|j	D]\}}t
|||qWn|S(s1Configure an object with a user-supplied factory.s()t__call__t	ClassTypeRN(RRRRzRRR6RRvtitemstsetattr(	RRR>tpropstktkwargsRRR((s*/usr/local/lib/python2.7/logging/config.pytconfigure_customs45cCs"t|trt|}n|S(s0Utility function which converts lists to tuples.(R)R[R(RR((s*/usr/local/lib/python2.7/logging/config.pytas_tuples(RRRtretcompileRRRRRRRRRRRRRyRR(((s*/usr/local/lib/python2.7/logging/config.pyR^s"
	
			"		tDictConfiguratorcBsheZdZdZdZdZdZdZdZe	dZ
e	dZe	d	ZRS(
s]
    Configure logging using a dictionary-like object to describe the
    configuration.
    cCs|j}d|kr$tdn|ddkrKtd|dn|jdt}i}tjzz|r|jd|}x|D]}|tjkrtd|qyLtj|}||}|jdd}|r|j	tj
|nWqtk
r.}	td	||	fqXqW|jd
|}
xU|
D]M}y|j||
|t
WqLtk
r}	td||	fqLXqLW|jdd}|ry|j|t
Wqtk
r}	td
|	qXqn|jdt
}tjjtj2|jd|}
xU|
D]M}y|j|
||
|<Wq4tk
r}	td||	fq4Xq4W|jd|}xU|D]M}y|j||||<Wqtk
r}	td||	fqXqW|jd|}g}xt|D]~}y*|j||}||_|||<Wqtk
r}	dt|	krx|j|qtd	||	fqXqWxd|D]\}y*|j||}||_|||<Wqtk
r}	td	||	fqXqWtj}|jjj}|jg}|jd
|}
x|
D]}t|}||kr|j|}|d}t|}t|}|d}x?||kr||| |kr|j|||d}qW|j |ny|j||
|WqAtk
r/}	td||	fqAXqAWx]|D]U}|jj|}||kr~tj!|_"g|_#t
|_$q;|r;t
|_%q;q;W|jdd}|ry|j|Wqtk
r}	td
|	qXnWdtj&XdS(sDo the configuration.tversions$dictionary doesn't specify a versionisUnsupported version: %stincrementalRsNo handler found with name %rRCs"Unable to configure handler %r: %sRVs!Unable to configure logger %r: %sRWs#Unable to configure root logger: %sRRs$Unable to configure formatter %r: %stfilterss!Unable to configure filter %r: %sstarget not configured yetRN('RRsRRRR	R3R
R6RHt_checkLevelt
StandardErrortconfigure_loggerRttconfigure_rootRRtconfigure_formattertconfigure_filtertsortedtconfigure_handlerRR*RMRWR_R`R.RaR-RdR4R\RfRCRRZReR(RRRt
EMPTY_DICTRRthandlerthandler_configRCRRVRWtdisable_existingRRtdeferredRiRjRmRnRoRpRhRl((s*/usr/local/lib/python2.7/logging/config.pyt	configures	








	
		




	cCsd|kr|d}y|j|}Wqtk
r}dt|krSn|jd|d<||d<|j|}qXn6|jdd}|jdd}tj||}|S(s(Configure a formatter from a dictionary.s()s'format'R0RSR1N(RRR*RR3R6RR7(RRtfactoryRtteRStdfmt((s*/usr/local/lib/python2.7/logging/config.pyRs

cCsCd|kr|j|}n!|jdd}tj|}|S(s%Configure a filter from a dictionary.s()RR%(RR3RtFilter(RRRR((s*/usr/local/lib/python2.7/logging/config.pyRs
cCs]xV|D]N}y|j|jd|Wqtk
rT}td||fqXqWdS(s/Add filters to a filterer from a list of names.RsUnable to add filter %r: %sN(t	addFilterRRRs(RtfiltererRR@R((s*/usr/local/lib/python2.7/logging/config.pytadd_filterss

cCs|jdd}|r\y|jd|}Wq\tk
rX}td||fq\Xn|jdd}|jdd}d|kr|jd}t|drttdrt|tjkr|j	|}n|}n<|jd	}|j	|}	t
|	tjj
rd
|kryN|jd|d
}
t|
tjsl||d	<tdn|
|d
<Wq tk
r}td
|d
|fq Xnvt
|	tjjrd|kr|j|d|d<n;t
|	tjjr d|kr |j|d|d<n|	}tg|D]"}t|r0|||f^q0}y||}
WnJtk
r}dt|krn|jd|d<||}
nX|r|
j|n|dk	r|
jtj|n|r|j|
|n|
S(s&Configure a handler from a dictionary.RARsUnable to set formatter %r: %sRCRs()RRR2RDRstarget not configured yets#Unable to set target handler %r: %stmailhosttaddresss'stream'tstreamtstrmN(RR6RRRsRRRzRRRKRRRLR)tHandlertSMTPHandlerRt
SysLogHandlerRRvRR*RJRHRR(RRRARRCRR>RtcnameRRtthRRRR((s*/usr/local/lib/python2.7/logging/config.pyRsb4	
5cCs]xV|D]N}y|j|jd|Wqtk
rT}td||fqXqWdS(s.Add handlers to a logger from a list of names.RsUnable to add handler %r: %sN(R^RRRs(RRlRRTR((s*/usr/local/lib/python2.7/logging/config.pytadd_handlerss

cCs|jdd}|dk	r7|jtj|n|sx|jD]}|j|qHW|jdd}|r|j||n|jdd}|r|j||qndS(sU
        Perform configuration which is common to root and non-root loggers.
        RCRRN(	R3R6RHRRRR]RR(RRlRRRCRTRR((s*/usr/local/lib/python2.7/logging/config.pytcommon_logger_configscCsPtj|}|j||||jdd}|dk	rL||_ndS(s.Configure a non-root logger from a dictionary.RZN(RRcRR3R6RZ(RRRRRlRZ((s*/usr/local/lib/python2.7/logging/config.pyR	s
cCs#tj}|j|||dS(s*Configure a root logger from a dictionary.N(RRcR(RRRRW((s*/usr/local/lib/python2.7/logging/config.pyRs(
RRRRRRRRRRRRR(((s*/usr/local/lib/python2.7/logging/config.pyRs						:	cCst|jdS(s%Configure logging using a dictionary.N(tdictConfigClassR(R((s*/usr/local/lib/python2.7/logging/config.pyt
dictConfigscsptstdndtfdY}dtfdY}dtjffdY|||S(sW
    Start up a socket server on the specified port, and listen for new
    configurations.

    These will be sent as a file suitable for processing by fileConfig().
    Returns a Thread object on which you can call start() to start the server,
    and which you can join() when appropriate. To stop the server, call
    stopListening().
    s listen() needs threading to worktConfigStreamHandlercBseZdZdZRS(s
        Handler for a logging configuration request.

        It expects a completely new logging configuration and uses fileConfig
        to install it.
        c	Ss~ddl}y@|j}|jd}t|dkrKtjd|d}|jj|}x3t||kr||j|t|}qdWy>ddl}|j|}t|t	st
t|WnQtj
|}yt|Wq)ttfk
rq)tjq)XnX|jjrK|jjjqKnWn+tjk
ry}|jtkrzqznXdS(s
            Handle a request.

            Each request is expected to be a 4-byte length, packed using
            struct.pack(">L", n), followed by the config file.
            Uses fileConfig() to do the grunt work.
            iNis>Li(ttempfilet
connectiontrecvR4tstructtunpacktjsontloadsR)RtAssertionErrorRt	cStringIOtStringIORtKeyboardInterruptt
SystemExitt	tracebackt	print_exctservertreadytsettsocketterrorterrnotRESET_ERROR(	RRtconntchunktslenRRtfileR((s*/usr/local/lib/python2.7/logging/config.pythandle1s6	!(RRRR(((s*/usr/local/lib/python2.7/logging/config.pyR*stConfigSocketReceivercBs2eZdZdZdedddZdZRS(sD
        A simple TCP socket-based logging config receiver.
        it	localhostcSsLtj|||f|tjd|_tjd|_||_dS(Nii(RRRR	tabortRttimeoutR(RthosttportRR((s*/usr/local/lib/python2.7/logging/config.pyR^s
	
	cSsddl}d}xj|s~|j|jjggg|j\}}}|r^|jntj|j}tjqW|jj	dS(Nii(
tselectRtfilenoRthandle_requestRR	RRtclose(RRRtrdtwrtex((s*/usr/local/lib/python2.7/logging/config.pytserve_until_stoppedgs	

	N(RRRtallow_reuse_addresstDEFAULT_LOGGING_CONFIG_PORTR6RR(((s*/usr/local/lib/python2.7/logging/config.pyRWs
tServercs eZfdZdZRS(csAt|j||_||_||_tj|_dS(N(tsuperRtrcvrthdlrRt	threadingtEventR(RRRR(R(s*/usr/local/lib/python2.7/logging/config.pyRws
			cSs~|jd|jd|jd|j}|jdkrI|jd|_n|jjtj|atj	|j
dS(NRRRii(RRRRtserver_addressRRR	t	_listenerRR(RR((s*/usr/local/lib/python2.7/logging/config.pytrun~s


(RRRR((R(s*/usr/local/lib/python2.7/logging/config.pyRus(tthreadtNotImplementedErrorRRRtThread(RRR((Rs*/usr/local/lib/python2.7/logging/config.pytlistens
-cCs8tjztr%dt_danWdtjXdS(sN
    Stop the listening server which was created with a call to listen().
    iN(RR	RRR6R(((s*/usr/local/lib/python2.7/logging/config.pyt
stopListenings
	
(2RRRtioRtlogging.handlerstosRRRRRRRRRR6tSocketServerRRRt
ECONNRESETRRRtRR!R(R-RR
RRtIRqRvtobjectRwRR{R[R|RR}RRRRRR(((s*/usr/local/lib/python2.7/logging/config.pyt<module>sR

						+	\	!
.	o

Zerion Mini Shell 1.0