o g-@sddlZddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z mZmZmZmZmZddlmZmZmZmZddlmZddlmZddlmZdd lmZdd l m!Z!dd l"m#Z#m$Z$dd l%m&Z&dd l'm(Z(ddl)m*Z*e+Z,e$dZ-Gddde.Z/dee0de0de1fddZ2ej3d.de4dedfddZ5de4fddZ6Gdddej7Z8eGdd d Z9Gd!d"d"eZ:Gd#d$d$ej;j<Z=Gd%d&d&e Z>Gd'd(d(e Z?d)e4d*e1d+ee@de4fd,d-ZAdS)/N) dataclass)Filter)IOAnyClassVarIteratorListOptionalTextIOType)ConsoleConsoleOptionsConsoleRenderable RenderResult)NullHighlighter) RichHandler)Segment)Style)DiagnosticPipError)VERBOSE getLogger)WINDOWS)DEPRECATION_MSG_PREFIX) ensure_dirzpip.subprocessorc@seZdZdZdS)BrokenStdoutLoggingErrorzO Raised if BrokenPipeError occurs for the stdout stream while logging. N)__name__ __module__ __qualname____doc__rr=/usr/lib/python3/dist-packages/pip/_internal/utils/logging.pyr!sr exc_classexcreturncCs0|turdSts dSt|to|jtjtjfvS)NTF)BrokenPipeErrorr isinstanceOSErrorerrnoEINVALEPIPE)r!r"rrr _is_broken_pipe_error's r*numc csDtt_tj|7_z dVWtj|8_dStj|8_w)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 "r0cCs ttddS)Nr/r)getattrr.rrrr r-C r-c sfeZdZdZdddedededdffd d Zd ed edefd dZ de j deffdd Z Z S)IndentingFormatterz%Y-%m-%dT%H:%M:%SF) add_timestampargsr4kwargsr#Ncs||_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)r4super__init__)selfr4r5r6 __class__rr r8Js zIndentingFormatter.__init__ formattedlevelnocCs.|tjkrdS|trdS|tjkrdSdS)zv Return the start of the formatted log message (not counting the prefix to add to each line). z WARNING: zERROR: )loggingWARNING startswithrERROR)r9r<r=rrr get_message_startYs   z$IndentingFormatter.get_message_startrecordcslt|}|||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. r> csg|]}|qSrr).0lineprefixrr vsz-IndentingFormatter.format..T) r7formatrCr=r4 formatTimer-join splitlines)r9rDr< message_startr:rHr rKis zIndentingFormatter.format)rrrdefault_time_formatrboolr8strintrCr? LogRecordrK __classcell__rrr:r r3Gs r3c@s4eZdZUeed<eed<dededefddZ dS) IndentedRenderable renderableindentconsoleoptionsr#ccsL||j|}t|}|D]}td|jV|EdHtdVqdS)NrE )renderrWr split_linesrX)r9rYrZsegmentslinesrGrrr __rich_console__s   z#IndentedRenderable.__rich_console__N) rrrr__annotations__rSr r rr`rrrr rVzs rVcsteZdZUgZeeeeed<dee de ddffdd Z de j ddfd d Zde j ddffd d ZZS) RichPipStreamHandlerKEYWORDSstreamno_colorr#Ncs&tjt||dddddtddS)NT)filere soft_wrapF)rY show_time show_level show_path highlighter)r7r8r r)r9rdrer:rr r8s  zRichPipStreamHandler.__init__rDcCsd}|jdkr"t|jdkr"|jd}t|tsJt|td}n'||}|||}|j durI|j t j kr>t dd}n |j t j krIt dd}z |jj|dd |d WdStye||YdSw) Nz[present-diagnostic] %sr)rXred)coloryellowignoreF)overflowcropstyle)msglenr5r%rrVr-rKrender_messager=r?rBrr@rYprint Exception handleError)r9rDrsdiagnostic_errorrWmessagerrr emits&         zRichPipStreamHandler.emitcsFtdd\}}|r|r|jjtjurt||rtt|S)z1Called when logging is unable to log some output.Nr+) sysexc_inforYrfstdoutr*rr7ry)r9rDr!r"r:rr rys z RichPipStreamHandler.handleError)rrrrcrr rrRrar rQr8r?rTr|ryrUrrr:r rbs  rbcs&eZdZdeeffdd ZZS)BetterRotatingFileHandlerr#csttj|jtSN)rospathdirname baseFilenamer7_open)r9r:rr rs zBetterRotatingFileHandler._open)rrrrrrrUrrr:r rsrc@s2eZdZdeddfddZdejdefddZdS) MaxLevelFilterlevelr#NcCs ||_dSr)r)r9rrrr r8s zMaxLevelFilter.__init__rDcCs |j|jkSr)r=rr9rDrrr filterr2zMaxLevelFilter.filter) rrrrSr8r?rTrQrrrrr rsrcs,eZdZdZdejdeffdd ZZS)ExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). rDr#cst| Sr)r7rrr:rr rszExcludeLoggerFilter.filter) rrrrr?rTrQrrUrrr:r rs r verbosityre user_log_filec Cs~|dkrtj}n"|dkrt}n|dkrtj}n|dkrtj}n |dkr'tj}ntj}t|}|du}|r:|}d}nd}|}|d vrDd nd}d d d } ddd} gd|rXdgng} 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/|iid0|S)1znConfigures and sets up all of the logging Returns the requested logging level, as its integer value. r+rlNDEBUGz /dev/null)INFOrBr@zext://sys.stdoutzext://sys.stderr)rstderrz0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rdrf)rYconsole_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()rzlogging.Filter)rnamez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz %(message)s)rrKT)rrKr4)rXindent_with_timestamprdrrrrX)rclassrerdfilters formatterrr)rrrdrerrrfzutf-8r)rrfilenameencodingdelayr)rYrrr)rhandlersz pip._vendorr)versiondisable_existing_loggersr formattersrrootloggers) r?rrr@rBCRITICALr getLevelNameconfig dictConfigsubprocess_loggerrr3) rrer level_numberrinclude_user_logadditional_log_file root_levelvendored_log_level log_streamshandler_classesrrrr setup_loggings      % Ir)r+)B contextlibr'r?logging.handlersrr} threading dataclassesrrtypingrrrrrr r r pip._vendor.rich.consoler r rrpip._vendor.rich.highlighterrpip._vendor.rich.loggingrpip._vendor.rich.segmentrpip._vendor.rich.stylerpip._internal.exceptionsrpip._internal.utils._logrrpip._internal.utils.compatrpip._internal.utils.deprecationrpip._internal.utils.miscrlocalr.rrxr BaseExceptionrQr*contextmanagerrSr0r- Formatterr3rVrbrRotatingFileHandlerrrrrRrrrrr sF  (         39"