
    Fe                        d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZmZ dd
lmZmZ erddlmZ ddlmZ ddlmZ  ej8                  e      Z G d de      ZddZ y)zPlain-text Sphinx builder.    )annotations)path)TYPE_CHECKINGAny)StringOutput)Builder)__)logging)	ensurediros_path)TextTranslator
TextWriter)Iterator)Node)Sphinxc                  r    e Zd ZU dZdZ ed      ZdZdZe	Z
dZded<   ddZdd	Zddd
ZddZddZddZy)TextBuildertextz!The text files are in %(outdir)s.z.txtTN
str | Nonecurrent_docnamec                    i | _         y N)
secnumbersselfs    6/usr/lib/python3/dist-packages/sphinx/builders/text.pyinitzTextBuilder.init%   s	    68    c              #    K   | j                   j                  D ]  }|| j                   j                  vr|  t        j                  | j
                  || j                  z         }	 t        j                  |      }	 t        j                  | j                   j                  |            }||kD  r|  y # t        $ r d}Y Hw xY w# t        $ r Y w xY ww)Nr   )env
found_docsall_docsr   joinoutdir
out_suffixgetmtime	Exceptiondoc2pathOSError)r   docname
targetnametargetmtimesrcmtimes        r   get_outdated_docszTextBuilder.get_outdated_docs)   s     xx** 	Gdhh///4;;$//0IJJ "mmJ7==):):7)CDk)!M	      sH   A$C'B7=7C4C7CCCC	CCCCc                     y)N  )r   r*   typs      r   get_target_urizTextBuilder.get_target_uri;   s    r   c                $    t        |       | _        y r   )r   writer)r   docnamess     r   prepare_writingzTextBuilder.prepare_writing>   s     &r   c                ^   || _         | j                  j                  j                  |i       | _        t        d      }| j                  j                  ||       t        j                  | j                  t        |      | j                  z         }t        t        j                  |             	 t        |dd      5 }|j                  | j                  j                          d d d        y # 1 sw Y   y xY w# t"        $ r*}t$        j'                  t)        d      ||       Y d }~y d }~ww xY w)Nzutf-8)encodingwzerror writing file %s: %s)r   r    toc_secnumbersgetr   r   r5   writer   r#   r$   r   r%   r   dirnameopenoutputr)   loggerwarningr	   )r   r*   doctreedestinationoutfilenameferrs          r   	write_doczTextBuilder.write_docA   s    &((1155grB"G4';/iiWW-=-OP$,,{+,	Nk39 ,Q**+, , , 	NNN29:KMM	Ns6   0C9 >&C-$C9 -C62C9 6C9 9	D, D''D,c                     y r   r1   r   s    r   finishzTextBuilder.finishN   s    r   )returnNone)rK   zIterator[str]r   )r*   strr2   r   rK   rM   )r6   zset[str]rK   rL   )r*   rM   rC   r   rK   rL   )__name__
__module____qualname__nameformatr	   epilogr%   allow_parallelr   default_translator_classr   __annotations__r   r.   r3   r7   rH   rJ   r1   r   r   r   r      sP    DF34FJN-"&OZ&9$'Nr   r   c                    | j                  t               | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       d
dddS )Ntext_sectioncharsz*=-~"+`r    text_newlinesunixtext_add_secnumbersTtext_secnumber_suffixz. builtin)versionparallel_read_safeparallel_write_safe)add_builderr   add_config_value)apps    r   setuprd   R   sn    OOK ,i?&%8.e<0$> "# r   N)rc   r   rK   zdict[str, Any])!__doc__
__future__r   osr   typingr   r   docutils.ior   sphinx.buildersr   sphinx.localer	   sphinx.utilr
   sphinx.util.osutilr   r   sphinx.writers.textr   r   collections.abcr   docutils.nodesr   sphinx.applicationr   	getLoggerrN   rA   r   rd   r1   r   r   <module>rs      sS      "  % $ #   1 :(#)			8	$5' 5pr   