a  ze80@sddlZddlZddlZddlZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z mZmZddlmZmZddlmZddlmZddlmZz ddlZWneyddlZYn0zddlmZWneydZYn0eZ ed Z!Gd d d eZ"erd d Z#ndd Z#ej$d"ddZ%ddZ&Gdddej'Z(ddZ)Gdddej*Z+Gdddej,j-Z.GdddeZ/GdddeZ0d d!Z1dS)#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]/opt/bitninja-python-dojo/embedded/lib/python3.9/site-packages/pip/_internal/utils/logging.pyr!srcCs$|tup"t|to"|jtjtjfvS)z(See the docstring for non-Windows below.)BrokenPipeError isinstanceOSErrorerrnoEINVALEPIPE exc_classexcrrr_is_broken_pipe_error.sr!cCs|tuS)z Return whether an exception is a broken pipe error. Args: exc_class: an exception class. exc: an exception instance. )rrrrrr!8s c 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)numrrr indent_logDs r'cCs ttddS)Nr%r)getattrr$rrrrr#Tsr#cs:eZdZdZddfdd ZddZfdd ZZS) IndentingFormatterz%Y-%m-%dT%H:%M:%SF) add_timestampcs||_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*argskwargs __class__rrr,\s zIndentingFormatter.__init__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- formattedlevelnorrrget_message_startls   z$IndentingFormatter.get_message_startcslt|}|||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. r2 csg|] }|qSrr).0lineprefixrr z-IndentingFormatter.format..T) r+formatr9r8r* formatTimer#join splitlines)r-recordr7 message_startr0r=rrA}s zIndentingFormatter.format)rrrdefault_time_formatr,r9rA __classcell__rrr0rr)Ys r)csfdd}|S)Ncsdt|tjjgS)Nr2)rClistrStyle RESET_ALL)inpcolorsrrwrappedsz_color_wrap..wrappedr)rNrOrrMr _color_wraps rPcsteZdZer2ejeejjfej eejj fgZ ngZ d fdd Z ddZ ddZfdd Zfd d ZZS) ColorizedStreamHandlerNcs,t|||_tr(tr(t|j|_dSN)r+r, _no_colorr r AnsiToWin32stream)r-rUno_colorr0rrr,s zColorizedStreamHandler.__init__cCs.tr"tr"ttj|j}|jtjuS|jtjuS)zA Return whether the handler is using sys.stdout. )r rr rTrUrOsysstdout)r-rUrrr _using_stdouts z$ColorizedStreamHandler._using_stdoutcCsXtr |jrdSt|jtjs"|jn|jj}t|dr@|r@dStj ddkrTdSdS)NFisattyTTERMANSI) rrSrrUrTrOhasattrrZosenvironget)r- real_streamrrr should_colors  z#ColorizedStreamHandler.should_colorcs>t|}|r:|jD]\}}|j|kr||}q:q|SrR)r+rArbCOLORSr8)r-rEmsglevelcolorr0rrrAs  zColorizedStreamHandler.formatcs@tdd\}}|r4|r4|r4t||r4tt|S)Nr")rWexc_inforYr!rr+ handleError)r-rErr r0rrrhsz"ColorizedStreamHandler.handleError)NN)rrrrr3r6rPForeREDr4YELLOWrcr,rYrbrArhrHrrr0rrQs  rQcseZdZfddZZS)BetterRotatingFileHandlercsttj|jtSrR)rr^pathdirname baseFilenamer+_open)r-r0rrrpszBetterRotatingFileHandler._open)rrrrprHrrr0rrlsrlc@seZdZddZddZdS)MaxLevelFiltercCs ||_dSrR)re)r-rerrrr,szMaxLevelFilter.__init__cCs |j|jkSrR)r8rer-rErrrfilterszMaxLevelFilter.filterN)rrrr,rsrrrrrqsrqcs eZdZdZfddZZS)ExcludeLoggerFilterzQ A logging Filter that excludes records from a logger (or its children). cst| SrR)r+rsrrr0rrrsszExcludeLoggerFilter.filter)rrrrrsrHrrr0rrtsrtc 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)INFOr6r4zext://sys.stdoutzext://sys.stderr)rXstderrz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rUfile)consoleconsole_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()rezlogging.Filter)rnamez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz %(message)s)rrAT)rrAr*)indentindent_with_timestamprUrXrrr)reclassrVrUfilters formatterr{rr|zutf-8r)rerfilenameencodingdelayr)r}r~rr)rehandlersz pip._vendorre)versiondisable_existing_loggersr formattersrrootloggers) r3ryr r4r6CRITICALrz getLevelNameconfig dictConfigsubprocess_loggerrr)) verbosityrV user_log_file level_numberreinclude_user_logadditional_log_file root_levelvendored_log_level log_streamshandler_classesrrrr setup_logging s      % Ir)r")2 contextlibrr3logging.handlersr^rWrtypingrrrrrrr r Zpip._internal.utils._logr r pip._internal.utils.compatr pip._internal.utils.deprecationrpip._internal.utils.miscr threading ImportErrorZdummy_threading pip._vendorr Exceptionlocalr$rrr!contextmanagerr'r# Formatterr)rP StreamHandlerrQrRotatingFileHandlerrlrqrtrrrrrsF (           6 V