7ec@sYdZddlZddlZddlZddddddd d gZdd d Zddd ZeZddZ de ddddZ e dddZ dZ defdYZdZdZdZdZdd dZddddZdefdYZd efdYZeZy>ddlmZmZmZmZmZeZeZ e!ZWn#e"k rgZd ZiZ nXeej#esRe$e%gZ&ej' rej(j) re&j*e+nxe&D]Z,e d!d"e,qWej(j-Z-e-d kr$d#Z.ne-r3d Z.nd!Z.e e.d"e/d$d n[dS(%s&Python part of the warnings subsystem.iNtwarnt warn_explicitt showwarningt formatwarningtfilterwarningst simplefiltert resetwarningstcatch_warningsicCs9tjr5|dkrt}nt|||dndS(sIssue a deprecation warning for Python 3.x related changes. Warnings are omitted unless Python is started with the -3 option. iN(tsyst py3kwarningtNonetDeprecationWarningR(tmessagetcategoryt stacklevel((s /usr/lib64/python2.7/warnings.pytwarnpy3ks   cCsi|dkr(tj}|dkr(dSny#|jt|||||Wnttfk rdnXdS(s7Hook to write a warning to a file; replace if you like.N(R RtstderrtwriteRtIOErrort UnicodeError(R R tfilenametlinenotfiletline((s /usr/lib64/python2.7/warnings.pyt _show_warnings   #cCsFy t}Wntk r#d}nXyt|}Wntk rGnXd||j|f}|dkr|tj||n|}|r|j}t ||rt |trt|d}n|d|7}nt ||r2t |tr2t j }|r2yt||}Wq/t k r+q/Xq2nd||f}|S(s.Function to format a warning the standard way.s %s: %s: %s tlatin1s %s s%s:%s(N( tunicodet NameErrortstrtUnicodeEncodeErrort__name__R t linecachetgetlinetstript isinstanceRtgetfilesystemencodingtUnicodeDecodeError(R R RRRt unicodetypetstenc((s /usr/lib64/python2.7/warnings.pyR(s0    $    ticCs*ddl}|dks+td |ft|tsFtd t|ttjfsjtd t|tstd t|tstd t|t t fr|dkstd||j ||j ||j |t |f}|rt j|nt jd|dS(sInsert an entry into the list of warnings filters (at the front). 'action' -- one of "error", "ignore", "always", "default", "module", or "once" 'message' -- a regex that the warning message must match 'category' -- a class that the warning must be a subclass of 'module' -- a regex that the module name must match 'lineno' -- an integer line number, 0 matches all warnings 'append' -- if true, append to the list of filters iNterrortignoretalwaystdefaulttmoduletoncesinvalid action: %rsmessage must be a stringscategory must be a classs#category must be a Warning subclasssmodule must be a stringislineno must be an int >= 0(R)R*R+R,R-R.(tretAssertionErrorR"t basestringttypettypest ClassTypet issubclasstWarningtinttlongtcompiletItfilterstappendtinsert(tactionR R R-RR<R/titem((s /usr/lib64/python2.7/warnings.pyRCs  $ cCs|d kstd|ft|ttfr@|dksLtd |d |d t|f}|r}tj|ntjd|d S( sInsert a simple entry into the list of warnings filters (at the front). A simple filter matches all modules and messages. 'action' -- one of "error", "ignore", "always", "default", "module", or "once" 'category' -- a class that the warning must be a subclass of 'lineno' -- an integer line number, 0 matches all warnings 'append' -- if true, append to the list of filters R)R*R+R,R-R.sinvalid action: %rislineno must be an int >= 0N(R)R*R+R,R-R.(R0R"R7R8R R;R<R=(R>R RR<R?((s /usr/lib64/python2.7/warnings.pyR`s $ cCs gt(dS(sAClear the list of warning filters, so that no filters are active.N(R;(((s /usr/lib64/python2.7/warnings.pyRtst _OptionErrorcBseZdZRS(s,Exception used by option processing helpers.(Rt __module__t__doc__(((s /usr/lib64/python2.7/warnings.pyR@xscCsLxE|D]=}yt|Wqtk rC}tjdI|IJqXqWdS(NsInvalid -W option ignored:(t _setoptionR@RR(targstargtmsg((s /usr/lib64/python2.7/warnings.pyt_processoptions}s  c Cs[ddl}|jd}t|dkrCtd|fnx#t|dkrh|jdqFWg|D]}|j^qp\}}}}}t|}|j|}t|}|j|}|r|d}n|r;y%t |}|dkr t nWqAt t fk r7td|fqAXnd}t |||||dS( Nit:istoo many fields (max 5): %rR(t$isinvalid lineno %r( R/tsplittlenR@R<R!t _getactiontescapet _getcategoryR7t ValueErrort OverflowErrorR( RER/tpartsR&R>R R R-R((s /usr/lib64/python2.7/warnings.pyRCs. +      cCsU|s dS|dkrdSx!d D]}|j|r!|Sq!Wtd|fdS( NR,tallR+R*R-R.R)sinvalid action: %r(R,R+R*R-R.R)(t startswithR@(R>ta((s /usr/lib64/python2.7/warnings.pyRLs  cCs/ddl}|stS|jd|rbyt|}Wqtk r^td|fqXn|jd}|| }||d}yt|dd|g}Wn$t k rtd|fnXyt ||}Wn$t k rtd|fnXt |ts+td|fn|S(Nis^[a-zA-Z0-9_]+$sunknown warning category: %rt.isinvalid module name: %rsinvalid warning category: %r( R/R6tmatchtevalRR@trfindt __import__R t ImportErrortgetattrtAttributeErrorR5(R R/tcattiR-tklasstm((s /usr/lib64/python2.7/warnings.pyRNs,     c Csgt|tr|j}n|d kr0t}nt|tsEtytj|}Wn t k rztj }d}nX|j }|j }d|kr|d}nd}|j d}|r|j}|jd r5|d }q5nI|dkr&ytjd }Wq&tk r"d}q&Xn|s5|}n|jd i} t|||||| |d S( s:Issue a warning, or maybe ignore it or raise an exception.iRst__file__s.pycs.pyoit__main__it__warningregistry__N(s.pycs.pyo(R"R6t __class__R t UserWarningR5R0Rt _getframeROt__dict__t f_globalstf_linenotgettlowertendswithtargvR\t setdefaultR( R R RtcallertglobalsRR-Rtfnltregistry((s /usr/lib64/python2.7/warnings.pyRs<               cCsbt|}|dkrJ|p!d}|djdkrJ|d }qJn|dkr_i}nt|trt|}|j}n|}||}|||f}|j|rdSxtD]|} | \} } } } }| dks| j |rt || r| dks!| j |r|dks9||krPqqWt } | dkrad||is.pyiR*iR)R.R+R-R,s1Unrecognized action (%r) in warnings.filters: %s(R7R RkR"R6RRdRjR;RVR5t defaultactionRtgetlinest onceregistryt RuntimeErrorR(R R RRR-Rrtmodule_globalsttexttkeyR?R>RFR]tmodtlntoncekeytaltkey((s /usr/lib64/python2.7/warnings.pyRsb                       tWarningMessagecBs,eZdZd Zd d dZdZRS( s0Holds the result of a single showwarning() call.R R RRRRcCsR||_||_||_||_||_||_|rE|jnd|_dS(N( R R RRRRRR t_category_name(tselfR R RRRR((s /usr/lib64/python2.7/warnings.pyt__init__6s      cCs&d|j|j|j|j|jfS(NsD{message : %r, category : %r, filename : %r, lineno : %s, line : %r}(R RRRR(R((s /usr/lib64/python2.7/warnings.pyt__str__@s (R R RRRRN(RRARBt_WARNING_DETAILSR RR(((s /usr/lib64/python2.7/warnings.pyR~/s  cBs8eZdZeddZdZdZdZRS(sA context manager that copies and restores the warnings filter upon exiting the context. The 'record' argument specifies whether warnings should be captured by a custom implementation of warnings.showwarning() and be appended to a list returned by the context manager. Otherwise None is returned by the context manager. The objects appended to the list are arguments whose attributes mirror the arguments to showwarning(). The 'module' argument is to specify an alternative module to the module named 'warnings' and imported under that name. This argument is only useful when testing the warnings module itself. cCs8||_|dkr"tjdn||_t|_dS(sSpecify whether to record warnings and if an alternative module should be used other than sys.modules['warnings']. For compatibility with Python 3.0, please consider all arguments to be keyword-only. twarningsN(t_recordR Rtmodulest_moduletFalset_entered(RtrecordR-((s /usr/lib64/python2.7/warnings.pyRWs "cCsrg}|jr|jdn|jtjdk rL|jd|jnt|j}d|dj|fS(Ns record=TrueRs module=%rs%s(%s)s, (RR<RRRR2Rtjoin(RRDtname((s /usr/lib64/python2.7/warnings.pyt__repr__cs cs|jrtd|nt|_|jj|_|j|j_|jj|_|jrgfd}||j_SdSdS(NsCannot enter %r twicecsjt||dS(N(R<R~(RDtkwargs(tlog(s /usr/lib64/python2.7/warnings.pyRus( RRvtTrueRR;t_filtersRt _showwarningRR (RR((Rs /usr/lib64/python2.7/warnings.pyt __enter__ls    cGs>|jstd|n|j|j_|j|j_dS(Ns%Cannot exit %r without entering first(RRvRRR;RR(Rtexc_info((s /usr/lib64/python2.7/warnings.pyt__exit__|s N( RRARBRR RRRR(((s /usr/lib64/python2.7/warnings.pyRFs  (R;tdefault_actiont once_registryRRR,R*R R)R<(0RBRRR3t__all__R RRRRR6RRRt ExceptionR@RGRCRLRNRRtobjectR~RRt_warnings_defaultst _warningsR;RRRsRuRRZt warnoptionst ImportWarningtPendingDeprecationWarningtsilenceR tflagstdivision_warningR<R tclst bytes_warningt bytes_actiont BytesWarning(((s /usr/lib64/python2.7/warnings.pyts`               )AE(