U 巀gV-@sddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddlm Z ddl m Z mZmZmZmZmZmZddlmZmZmZmZmZmZddlmZddlmZdd lm Z dd 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/Z0ee1e1e2dddZ3ej4d,e5eddddZ6e5dddZ7Gdddej8Z9eGdd d Z:Gd!d"d"eZ;Gd#d$d$ejGd%d&d&e Z?Gd'd(d(e Z@e5e2eeAe5d)d*d+ZBdS)-N) dataclass) TextIOWrapper)Filter)AnyClassVar GeneratorListOptionalTextIOType)ConsoleConsoleOptionsConsoleRenderableRenderableType RenderResultRichCast)NullHighlighter) RichHandler)Segment)Style)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__r r I/opt/hc_python/lib/python3.8/site-packages/pip/_internal/utils/logging.pyr#sr) exc_classexcreturncCs0|tkr dStsdSt|to.|jtjtjfkS)NTF)BrokenPipeErrorr isinstanceOSErrorerrnoEINVALEPIPE)r"r#r r r!_is_broken_pipe_error)s r+)NNN)numr$c cs6tt_tj|7_z dVW5tj|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)r-r r r! indent_log6s  r1r$cCs ttddS)Nr0r)getattrr/r r r r!r.Esr.csZeZdZdZddeeeddfddZeeedd d Z e j ed fd d Z Z S)IndentingFormatterz%Y-%m-%dT%H:%M:%SF) add_timestampN)argsr5kwargsr$cs||_tj||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)r5super__init__)selfr5r6r7 __class__r r!r9Ls zIndentingFormatter.__init__) formattedlevelnor$cCs.|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)r:r=r>r r r!get_message_start[s   z$IndentingFormatter.get_message_startrecordr$cslt|}|||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|] }|qSr r ).0lineprefixr r! xsz-IndentingFormatter.format..T) r8formatrDr>r5 formatTimer.join splitlines)r:rFr= message_startr;rJr!rMks zIndentingFormatter.format)rrrdefault_time_formatrboolr9strintrDr@ LogRecordrM __classcell__r r r;r!r4Isr4c@s0eZdZUeed<eed<eeedddZ dS)IndentedRenderable renderableindent)consoleoptionsr$ccsJ||j|}t|}|D](}td|jV|EdHtdVqdS)NrG )renderrYr split_linesrZ)r:r[r\segmentslinesrIr r r!__rich_console__s   z#IndentedRenderable.__rich_console__N) rrrr__annotations__rUr r rrbr r r r!rX|s rXcsleZdZUgZeeeeed<ee e ddfdd Z e j ddddZe j ddfd d ZZS) RichPipStreamHandlerKEYWORDSN)streamno_colorr$cs&tjt||dddddtddS)NT)filerg soft_wrapF)r[ show_time show_level show_path highlighter)r8r9r r)r:rfrgr;r r!r9s zRichPipStreamHandler.__init__rEcCsd}t|ddrVt|jts t|j\}t|tttfsFt|dt|t d}nN| |}| ||}|j dk r|j t jkrtdd}n|j t jkrtdd}z|jj|dd|d Wntk r||YnXdS) NrichFz is not rich-console-renderable)rZred)coloryellowignore)overflowcropstyle)r3r&r6tupleAssertionErrorrrrTrXr.rMrender_messager>r@rCrrAr[print Exception handleError)r:rFrurich_renderablerYmessager r r!emits2        zRichPipStreamHandler.emitcsFtdd\}}|r:|r:|jjtjkr:t||r:tt|S)z1Called when logging is unable to log some output.Nr,) sysexc_infor[rhstdoutr+rr8r{)r:rFr"r#r;r r!r{s z RichPipStreamHandler.handleError)rrrrerr rrTrcr rSr9r@rVr~r{rWr r r;r!rds  rdcs"eZdZedfdd ZZS)BetterRotatingFileHandlerr2csttj|jtSN)rospathdirname baseFilenamer8_open)r:r;r r!rszBetterRotatingFileHandler._open)rrrrrrWr r r;r!rsrc@s.eZdZeddddZejedddZdS)MaxLevelFilterN)levelr$cCs ||_dSr)r)r:rr r r!r9szMaxLevelFilter.__init__rEcCs |j|jkSr)r>rr:rFr r r!filterszMaxLevelFilter.filter) rrrrUr9r@rVrSrr r r r!rsrcs*eZdZdZejedfdd ZZS)ExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). rEcst| Sr)r8rrr;r r!rszExcludeLoggerFilter.filter) rrrrr@rVrSrrWr r r;r!rsr) verbosityrg user_log_filer$c Cs|dkrtj}nD|dkrt}n6|dkr.tj}n&|dkr>tj}n|dkrNtj}ntj}t|}|dk }|rt|}d}nd}|}|d krd nd}d d d } ddd} dddg|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/d0d1|iid2|S)3znConfigures and sets up all of the logging Returns the requested logging level, as its integer value. r,NDEBUGz /dev/null)INFOrCrAzext://sys.stdoutzext://sys.stderr)rstderrz0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rfrhr[console_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()rzlogging.Filter)rnamez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz %(message)s)rrMT)rrMr5)rZindent_with_timestamprfrrrrZ)rclassrgrffilters formatterrr)rrrfrgrrrhzutf-8r)rrfilenameencodingdelayr)r[rrr)rhandlersz pip._vendorr)versiondisable_existing_loggersr formattersrrootloggers) r@rrrArCCRITICALr getLevelNameconfig dictConfigsubprocess_loggerrr4) rrgr level_numberrinclude_user_logadditional_log_file root_levelvendored_log_level log_streamshandler_classesrr r r! setup_loggings      % Ir)r,)C contextlibr(r@logging.handlersrr threading dataclassesriorrtypingrrrrr r r pip._vendor.rich.consoler r rrrrZpip._vendor.rich.highlighterrpip._vendor.rich.loggingrZpip._vendor.rich.segmentrpip._vendor.rich.stylerpip._internal.utils._logrrpip._internal.utils.compatrpip._internal.utils.deprecationrpip._internal.utils.miscrlocalr/rrzr BaseExceptionrSr+contextmanagerrUr1r. Formatterr4rXrdrRotatingFileHandlerrrrrTrr r r r!sD   $         3<