o Ec -@sddlZddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZddlmZddlmZzddlZWn ey_ddlZYnwzddlmZWn eysdZYnweZ ed Z!Gd d d eZ"d ee#d e#de$fddZ%ej&d)de'de dfddZ(de'fddZ)Gdddej*Z+de,de e,ge,ffddZ-Gdddej.Z/Gdddej0j1Z2Gd d!d!eZ3Gd"d#d#eZ4d$e'd%e$d&e e,de'fd'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__rrN/opt/alt/python310/lib/python3.10/site-packages/pip/_internal/utils/logging.pyr!sr exc_classexcreturncCs0|turdSts dSt|to|jtjtjfvS)NTF)BrokenPipeErrorr isinstanceOSErrorerrnoEINVALZEPIPE)rrrrr_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 "r&cCs ttddS)Nr%r)getattrr$rrrrr#C r#c sfeZdZdZdddedededdffd d Zd ed edefd dZ de j deffdd Z Z S)IndentingFormatterz%Y-%m-%dT%H:%M:%SF) add_timestampargsr*kwargsrNcs||_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__ 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)r/r2r3rrrget_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. r4 csg|]}|qSrr).0lineprefixrr vsz-IndentingFormatter.format..T) r-formatr9r3r*Z formatTimer#join splitlines)r/r:r2Z message_startr0r>rrAis zIndentingFormatter.format)rrrZdefault_time_formatrboolr.strintr9r5 LogRecordrA __classcell__rrr0rr)Gs r)colorscsdtdtffdd }|S)Ninprcsdt|tjjgS)Nr4)rBlistrZStyleZ RESET_ALL)rJrIrrwrapped{sz_color_wrap..wrapped)rE)rIrMrrLr _color_wrapzsrNcseZdZerejeejjfej eejj fgZ ngZ dde e deddffdd ZdefddZdefd d Zd ejdeffd d Zd ejddffdd ZZS)ColorizedStreamHandlerNstreamno_colorrcs4t|||_trtrt|j|_dSdSdSN)r-r. _no_colorr r AnsiToWin32rP)r/rPrQr0rrr.s zColorizedStreamHandler.__init__cCs.trtrttj|j}|jtjuS|jtjuS)zA Return whether the handler is using sys.stdout. )r rr rTrPrMsysstdout)r/rPrrr _using_stdouts  z$ColorizedStreamHandler._using_stdoutcCsXtr|jrdSt|jtjs|jn|jj}t|dr |r dStj ddkr*dSdS)NFisattyTZTERMZANSI) rrSrrPrTrMhasattrrXosenvironget)r/Z real_streamrrr should_colors  z#ColorizedStreamHandler.should_colorr:cs@t|}|r|jD]\}}|j|kr||}|Sq |SrR)r-rAr]COLORSr3)r/r:msglevelZcolorr0rrrAs  zColorizedStreamHandler.formatcs@tdd\}}|r|r|rt||rtt|S)Nr!)rUexc_inforWr rr- handleError)r/r:rrr0rrrbs z"ColorizedStreamHandler.handleError)NN)rrrrr5r8rNZForeZREDr6ZYELLOWr^rrrDr.rWr]rGrErArbrHrrr0rrOs   rOcs&eZdZdeeffdd ZZS)BetterRotatingFileHandlerrcsttj|jtSrR)rrZpathdirnameZ baseFilenamer-_open)r/r0rrrfs zBetterRotatingFileHandler._open)rrrrrrfrHrrr0rrcsrcc@s2eZdZdeddfddZdejdefddZdS) MaxLevelFilterr`rNcCs ||_dSrR)r`)r/r`rrrr.s zMaxLevelFilter.__init__r:cCs |j|jkSrR)r3r`r/r:rrrfilterr(zMaxLevelFilter.filter) rrrrFr.r5rGrDrirrrrrgsrgcs,eZdZdZdejdeffdd ZZS)ExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). r:rcst| SrR)r-rirhr0rrriszExcludeLoggerFilter.filter) rrrrr5rGrDrirHrrr0rrjs rj verbosityrQ 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.|iid/|S)0znConfigures and sets up all of the logging Returns the requested logging level, as its integer value. r!NDEBUGz /dev/null)INFOr8r6zext://sys.stdoutzext://sys.stderr)rVstderrz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rPfile)consoleconsole_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()r`zlogging.Filter)rynamez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz %(message)s)ryrAT)ryrAr*)indentindent_with_timestamprPrVr}r{r~)r`classrQrPfilters formatterrsr|rtzutf-8r)r`rfilenameencodingZdelayr)rurvrwrx)r`handlersz pip._vendorr`)versionZdisable_existing_loggersrZ formattersrrootZloggers) r5rqr r6r8ZCRITICALrrZ getLevelNameZconfigZ dictConfigsubprocess_loggerrzr)) rkrQrlZ level_numberr`Zinclude_user_logZadditional_log_fileZ root_levelZvendored_log_levelZ log_streamsZhandler_classesrrrr setup_loggings      % Ir)r!)6 contextlibrr5Zlogging.handlersrZrUrtypingrrrrrrr r Zpip._internal.utils._logr r Zpip._internal.utils.compatr Zpip._internal.utils.deprecationrZpip._internal.utils.miscrZ threading ImportErrorZdummy_threadingZ pip._vendorr ExceptionZlocalr$rr BaseExceptionrDr contextmanagerrFr&r#Z Formatterr)rErNZ StreamHandlerrOrZRotatingFileHandlerrcrgrjrrrrrsH (        3Q"