a Re -@sddlZddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZddlmZddlmZz ddlZWneyddlZYn0zddlmZWneydZYn0eZ ed Z!Gd d d eZ"ee#e#e$d d dZ%ej&d&e'e ddddZ(e'dddZ)Gdddej*Z+e,e e,ge,fdddZ-Gdddej.Z/Gdddej0j1Z2Gdd d eZ3Gd!d"d"eZ4e'e$e e,e'd#d$d%Z5dS)'N)Filter)IOAnyCallableIteratorOptionalTextIOTypecast)VERBOSE getLogger)WINDOWS)DEPRECATION_MSG_PREFIX) ensure_dir)coloramazpip.subprocessorc@seZdZdZdS)BrokenStdoutLoggingErrorzO Raised if BrokenPipeError occurs for the stdout stream while logging. N)__name__ __module__ __qualname____doc__rr/builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/site-packages/pip/_internal/utils/logging.pyr!sr) exc_classexcreturncCs0|tur dStsdSt|to.|jtjtjfvS)NTF)BrokenPipeErrorr isinstanceOSErrorerrnoEINVALEPIPE)rrrrr_is_broken_pipe_error's r!)numrc csDtt_tj|7_zdVWtj|8_ntj|8_0dS)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)r#rrr indent_log4s r'rcCs ttddS)Nr&r)getattrr%rrrrr$Csr$csZeZdZdZddeeeddfddZeeedd d Z e j ed fd d Z Z S)IndentingFormatterz%Y-%m-%dT%H:%M:%SF) add_timestampN)argsr+kwargsrcs||_tj|i|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. N)r+super__init__)selfr+r,r- __class__rrr/Js zIndentingFormatter.__init__) formattedlevelnorcCs.|tjkrdS|trdS|tjkr*dSdS)zv Return the start of the formatted log message (not counting the prefix to add to each line). z WARNING: zERROR: )loggingWARNING startswithrERROR)r0r3r4rrrget_message_startYs   z$IndentingFormatter.get_message_startrecordrcslt|}|||j}||}d|jr<||ddt7dfdd|dD}|S)z Calls the standard formatter, but will indent all of the log message lines by our current indentation level. r5 csg|] }|qSrr).0lineprefixrr vz-IndentingFormatter.format..T) r.formatr:r4r+ formatTimer$join splitlines)r0r<r3 message_startr1r@rrDis zIndentingFormatter.format)rrrdefault_time_formatrboolr/strintr:r6 LogRecordrD __classcell__rrr1rr*Gsr*)colorsrcsttdfdd }|S)N)inprcsdt|tjjgS)Nr5)rFlistrStyle RESET_ALL)rPrOrrwrapped{sz_color_wrap..wrapped)rK)rOrUrrTr _color_wrapzsrVcseZdZer2ejeejjfej eejj fgZ ngZ de e eddfdd ZedddZeddd Zejed fd d Zejdd fd d ZZS)ColorizedStreamHandlerN)streamno_colorrcs,t|||_tr(tr(t|j|_dSN)r.r/ _no_colorr r AnsiToWin32rX)r0rXrYr1rrr/s zColorizedStreamHandler.__init__r(cCs.tr"tr"ttj|j}|jtjuS|jtjuS)zA Return whether the handler is using sys.stdout. )r rr r\rXrUsysstdout)r0rXrrr _using_stdouts z$ColorizedStreamHandler._using_stdoutcCsXtr |jrdSt|jtjs"|jn|jj}t|dr@|r@dStj ddkrTdSdS)NFisattyTTERMANSI) rr[rrXr\rUhasattrr`osenvironget)r0 real_streamrrr should_colors  z#ColorizedStreamHandler.should_colorr;cs>t|}|r:|jD]\}}|j|kr||}q:q|SrZ)r.rDrhCOLORSr4)r0r<msglevelcolorr1rrrDs  zColorizedStreamHandler.formatcs@tdd\}}|r4|r4|r4t||r4tt|S)Nr")r]exc_infor_r!rr. handleError)r0r<rrr1rrrnsz"ColorizedStreamHandler.handleError)NN)rrrrr6r9rVForeREDr7YELLOWrirrrJr/r_rhrMrKrDrnrNrrr1rrWs  rWcs&eZdZeedfdd ZZS)BetterRotatingFileHandlerr(csttj|jtSrZ)rrdpathdirname baseFilenamer._open)r0r1rrrvszBetterRotatingFileHandler._open)rrrrrrvrNrrr1rrrsrrc@s.eZdZeddddZejedddZdS)MaxLevelFilterN)rkrcCs ||_dSrZ)rk)r0rkrrrr/szMaxLevelFilter.__init__r;cCs |j|jkSrZ)r4rkr0r<rrrfilterszMaxLevelFilter.filter) rrrrLr/r6rMrJryrrrrrwsrwcs*eZdZdZejedfdd ZZS)ExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). r;cst| SrZ)r.ryrxr1rrryszExcludeLoggerFilter.filter) rrrrr6rMrJryrNrrr1rrzsrz) verbosityrY user_log_filerc Cs~|dkrtj}nD|dkrt}n6|dkr.tj}n&|dkr>tj}n|dkrNtj}ntj}t|}|du}|rt|}d}nd}|}|d vrd nd}d d d } ddd} gd|rdgng} tj dddtjddt j ddt j ddt ddt dddd|| d|| d d!d"gd#d$d | d|| d%d!gd#d$|| d|| d%d&gd#d$d| d'|d(dd)d*d+|| d,d-d.|iid/|S)0znConfigures and sets up all of the logging Returns the requested logging level, as its integer value. r"NDEBUGz /dev/null)INFOr9r7zext://sys.stdoutzext://sys.stderr)r^stderrz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rXfile)consoleconsole_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()rkzlogging.Filter)rnamez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz %(message)s)rrDT)rrDr+)indentindent_with_timestamprXr^rrr)rkclassrYrXfilters formatterrrrzutf-8r)rkrfilenameencodingdelayr)rrrr)rkhandlersz pip._vendorrk)versiondisable_existing_loggersr formattersrrootloggers) r6rr r7r9CRITICALr getLevelNameconfig dictConfigsubprocess_loggerrr*) r{rYr| level_numberrkinclude_user_logadditional_log_file root_levelvendored_log_level log_streamshandler_classesrrrr setup_loggings      % Ir)r")6 contextlibrr6logging.handlersrdr]rtypingrrrrrrr r Zpip._internal.utils._logr r pip._internal.utils.compatr pip._internal.utils.deprecationrpip._internal.utils.miscr threading ImportErrorZdummy_threading pip._vendorr Exceptionlocalr%rr BaseExceptionrJr!contextmanagerrLr'r$ Formatterr*rKrV StreamHandlerrWrRotatingFileHandlerrrrwrzrrrrrsB (        3Q