B š•Re%3ã@s¼ddlmZddlZddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddl m Z ddlmZddlmZy ddlZWnek r¤ddlZYnXyddlmZWnek rÎdZYnXdd lmZeZe ¡Ze d ƒZGd d „d eƒZe �r e �rd d„Zndd„Zne �r0dd„Zndd„Zej d%dd„ƒZ!dd„Z"Gdd„dej#ƒZ$dd„Z%Gdd„dej&ƒZ'Gdd„dej(j)ƒZ*Gdd „d eƒZ+Gd!d"„d"eƒZ,d#d$„Z-dS)&é)Úabsolute_importN)ÚFilterÚ getLogger)ÚPY2)ÚWINDOWS)ÚDEPRECATION_MSG_PREFIX)Ú ensure_dir)Úcolorama)ÚForezpip.subprocessorc@seZdZdZdS)ÚBrokenStdoutLoggingErrorzO Raised if BrokenPipeError occurs for the stdout stream while logging. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrúŠ/builddir/build/BUILDROOT/alt-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pip/_internal/utils/logging.pyr :sr cCs|tko|jtjtjfkS)z1See the docstring for non-Windows Python 3 below.)ÚIOErrorÚerrnoÚEINVALÚEPIPE)Ú exc_classÚexcrrrÚ_is_broken_pipe_errorHsrcCs"|tkp |tko |jtjtjfkS)z1See the docstring for non-Windows Python 3 below.)ÚBrokenPipeErrorÚOSErrorrrr)rrrrrrNscCs|tko|jtjkS)z1See the docstring for non-Windows Python 3 below.)rrr)rrrrrrTscCs|tkS)z£ Return whether an exception is a broken pipe error. Args: exc_class: an exception class. exc: an exception instance. )r)rrrrrrYséc cs6tƒt_tj|7_z dVWdtj|8_XdS)zv A context manager which will cause the log output to be indented for any log messages emitted inside it. N)Úget_indentationÚ _log_stateÚ indentation)ÚnumrrrÚ indent_logds  r cCs ttddƒS)Nrr)Úgetattrrrrrrrssrcs0eZdZ‡fdd„Zdd„Z‡fdd„Z‡ZS)ÚIndentingFormattercs$| dd¡|_tt|ƒj||ŽdS)zÎ A logging.Formatter that obeys the indent_log() context manager. :param add_timestamp: A bool indicating output lines should be prefixed with their record's timestamp. Ú add_timestampFN)Úpopr#Úsuperr"Ú__init__)ÚselfÚargsÚkwargs)Ú __class__rrr&yszIndentingFormatter.__init__cCs.|tjkrdS| t¡rdS|tjkr*dSdS)zv Return the start of the formatted log message (not counting the prefix to add to each line). Úz WARNING: zERROR: )ÚloggingÚWARNINGÚ startswithrÚERROR)r'Ú formattedÚlevelnorrrÚget_message_startƒs   z$IndentingFormatter.get_message_startcsztt|ƒ |¡}| ||j¡}||}d‰|jrJ| |d¡}djftƒŽ‰ˆdtƒ7‰d  ‡fdd„|  d¡Dƒ¡}|S)z† Calls the standard formatter, but will indent all of the log message lines by our current indentation level. r+z%Y-%m-%dT%H:%M:%Sz{t},{record.msecs:03.0f} ú csg|] }ˆ|‘qSrr)Ú.0Úline)Úprefixrrú £sz-IndentingFormatter.format..T) r%r"Úformatr2r1r#Ú formatTimeÚlocalsrÚjoinÚ splitlines)r'Úrecordr0Ú message_startÚt)r*)r6rr8“s  zIndentingFormatter.format)r r rr&r2r8Ú __classcell__rr)r*rr"ws r"cs‡fdd„}|S)Ncsd tˆƒ|tjjg¡S)Nr+)r;Úlistr ÚStyleÚ RESET_ALL)Úinp)ÚcolorsrrÚwrappedªsz_color_wrap..wrappedr)rErFr)rErÚ _color_wrap©s rGcsheZdZer.ejeejƒfej eej ƒfgZ ngZ d dd„Z dd„Z dd„Zdd „Z‡fd d „Z‡ZS) ÚColorizedStreamHandlerNcCs.tj ||¡||_tr*tr*t |j¡|_dS)N)r,Ú StreamHandlerr&Ú _no_colorrr Ú AnsiToWin32Ústream)r'rLÚno_colorrrrr&»szColorizedStreamHandler.__init__cCs"trtr|jjtjkS|jtjkS)zA Return whether the handler is using sys.stdout. )rr rLrFÚsysÚstdout)r'rrrÚ _using_stdoutÂsz$ColorizedStreamHandler._using_stdoutcCsXtr |jrdSt|jtjƒs"|jn|jj}t|dƒr@| ¡r@dStj   d¡dkrTdSdS)NFÚisattyTÚTERMÚANSI) r rJÚ isinstancerLrKrFÚhasattrrQÚosÚenvironÚget)r'Ú real_streamrrrÚ should_colorÌs z#ColorizedStreamHandler.should_colorcCsBtj ||¡}| ¡r>x&|jD]\}}|j|kr||ƒ}PqW|S)N)r,rIr8rZÚCOLORSr1)r'r=ÚmsgÚlevelÚcolorrrrr8ás zColorizedStreamHandler.formatcs@t ¡dd…\}}|r0| ¡r0t||ƒr0tƒ‚tt|ƒ |¡S)Nr)rNÚexc_inforPrr r%rHÚ handleError)r'r=rr)r*rrr`ís   z"ColorizedStreamHandler.handleError)NN)r r rr r,r/rGr ÚREDr-ÚYELLOWr[r&rPrZr8r`r@rr)r*rrH¯s   rHc@seZdZdd„ZdS)ÚBetterRotatingFileHandlercCs ttj |j¡ƒtjj |¡S)N) rrVÚpathÚdirnameÚ baseFilenamer,ÚhandlersÚRotatingFileHandlerÚ_open)r'rrrriüszBetterRotatingFileHandler._openN)r r rrirrrrrcúsrcc@seZdZdd„Zdd„ZdS)ÚMaxLevelFiltercCs ||_dS)N)r])r'r]rrrr&szMaxLevelFilter.__init__cCs |j|jkS)N)r1r])r'r=rrrÚfilterszMaxLevelFilter.filterN)r r rr&rkrrrrrjsrjcs eZdZdZ‡fdd„Z‡ZS)ÚExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). cstt|ƒ |¡ S)N)r%rlrk)r'r=)r*rrrkszExcludeLoggerFilter.filter)r r rrrkr@rr)r*rrl srlc Csf|dkrd}n.|dkrd}n |dkr*d}n|dkr8d}nd }tt|ƒ}|d k }|r\|}d}nd }|}|d krpdnd}d ddœ} dddœ} dddg|ršdgng} tj dddtjdœdtjdœdtjdœdœtddœtdd d!œd"œ|| d#|| d$d%d&gd'd(œd| d#|| d)d%gd'd(œ|| d#|| d)d*gd'd(œd| d+|d d,d-œd.œ|| d/œd0d1|iid2œ¡|S)3znConfigures and sets up all of the logging Returns the requested logging level, as its integer value. éÚDEBUGéÿÿÿÿr-éþÿÿÿr/éýÿÿÿÚCRITICALÚINFONz /dev/null)rsr/zext://sys.stdoutzext://sys.stderr)rOÚstderrz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rLÚfileÚconsoleÚconsole_errorsÚconsole_subprocessÚuser_logFz*pip._internal.utils.logging.MaxLevelFilter)z()r]zlogging.Filter)z()Únamez/pip._internal.utils.logging.ExcludeLoggerFilter)Úexclude_warningsÚrestrict_to_subprocessÚexclude_subprocessz %(message)s)z()r8T)z()r8r#)ÚindentÚindent_with_timestamprLrOr}r{r~)r]ÚclassrMrLÚfiltersÚ formatterrtr|rur)r]r€ÚfilenameÚdelayr‚)rvrwrxry)r]rgz pip._vendorr])ÚversionÚdisable_existing_loggersr�Ú formattersrgÚrootÚloggers)r!r,ÚconfigÚ dictConfigr-Úsubprocess_loggerrzr") Ú verbosityrMÚ user_log_filer]Ú level_numberÚinclude_user_logÚadditional_log_fileÚ root_levelÚvendored_log_levelÚ log_streamsÚhandler_classesrgrrrÚ setup_loggings‚    r–)r).Ú __future__rÚ contextlibrr,Úlogging.handlersrVrNrrZpip._vendor.sixrÚpip._internal.utils.compatrÚpip._internal.utils.deprecationrÚpip._internal.utils.miscrÚ threadingÚ ImportErrorZdummy_threadingÚ pip._vendorr Ú _coloramaÚ ExceptionZpip._vendor.coloramar ÚlocalrrŒr rÚcontextmanagerr rÚ Formatterr"rGrIrHrgrhrcrjrlr–rrrrÚsR              2K