
    Fe                    r    d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ erd dlmZ d
dZddd	Zy)    )annotationsN)NamedTemporaryFile)TYPE_CHECKING)SphinxParallelError)strip_colors)Sphinxc                   ddl }ddl}ddl}ddl}ddl}t        |t              rd|j                  z   }nt        j                         }| dx}}	nT| j                  j                         }
dj                  d | j                  D              }dj                  d |
D              }	t        dd	d
d      5 }|j                  dt        j                    d|j                          d|j                    d|j#                          d|j%                          d|j&                   d|j&                   d|j&                   d| d|	 d| d       ddd       |j(                  S # 1 sw Y   j(                  S xY w)z9Save the given exception's traceback in a temporary file.r   Nz(Error in parallel process)
 
c              3  T   K   | ]   }d t        |      j                           " yw)#   N)r   strip).0ss     8/usr/lib/python3/dist-packages/sphinx/util/exceptions.py	<genexpr>z!save_traceback.<locals>.<genexpr>"   s%     W1\!_%:%:%<$=>Ws   &(c              3  t   K   | ]0  }|j                   d k7  rd|j                   d|j                    d 2 yw)builtinr    ()N)versionname)r   exts     r   r   z!save_traceback.<locals>.<genexpr>#   s:      ;C!$	!9 !%SXXJbQ? ;s   68wz.logzsphinx-err-F)suffixprefixdeletez# Platform:         z; (z)
# Sphinx version:   z
# Python version:   r   z)
# Docutils version: z
# Jinja2 version:   z
# Pygments version: z

# Last messages:
z

# Loaded extensions:
z

# Traceback:
)platformdocutilsjinja2pygmentssphinx
isinstancer   	traceback
format_exc
extensionsvaluesjoin
messagelogr   writesys__display_version__python_versionpython_implementation__version__r   )appexcr   r   r    r!   r"   
exc_format	last_msgs	exts_listr&   fs               r   save_tracebackr6      s   #*+4s}}D
))+

{ ""	I^^**,
IIWWW	II ;: ; ;	 
C}U	S WX	 \\N#h&7&7&9%: ;//0 1,,./r(2P2P2R1S T))* +''( )))* +       	$ 66M%$ 66Ms   3BEE/c                    t        j                         \  }}}g }t        j                  |      }|||  d z  }|t        j                  ||      z  }dj                  |      S )z?Format an exception with traceback, but only the last x frames.Nr
   )r+   exc_infor$   	format_tbformat_exception_onlyr(   )xtypvaltbrestbress         r   format_exception_cut_framesrA   ;   s_    <<>LCbC#E5!:C9**344C773<    )r0   zSphinx | Noner1   BaseExceptionreturnstr)   )r;   intrD   rE   )
__future__r   r+   r$   tempfiler   typingr   sphinx.errorsr   sphinx.util.consoler   sphinx.applicationr   r6   rA    rB   r   <module>rO      s+    " 
  '   - ,))XrB   