3

T'ícSã@s(dZddlmZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlmZddlmZdd	lmZdd
lmZddlmZmZddlmZdd
lmZddlm Z m!Z!ddl"m#Z#m$Z$ej%e&ƒZ'Gdd„deƒZ(eeee)e)e)ee)e*fdœdd„Z+eee)efdœdd„Z,dS)zManual pages builder.é)Úpath)ÚAnyÚDictÚListÚSetÚTupleÚUnion)ÚOptionParser)Ú
FileOutput)Úaddnodes)ÚSphinx)ÚBuilder)ÚConfig)Ú__)ÚloggingÚprogress_message)Ú	darkgreen)Úinline_all_toctrees)Ú	ensuredirÚmake_filename_from_project)ÚManualPageTranslatorÚManualPageWriterc@s˜eZdZUdZdZdZedƒZeZ	gZ
ee
ddœdd„Z
eeeefdœdd	„Zdeeed
œdd„Zeed
ƒƒeddœdd„ƒZddœdd„ZdS)ÚManualPageBuilderz4
    Builds groff output in manual page format.
    Zmanz#The manual pages are in %(outdir)s.N)ÚreturncCs|jjstjtdƒƒdS)NzBno "man_pages" config value found; no manual pages will be written)ÚconfigÚ	man_pagesÚloggerÚwarningr)Úself©rú9/tmp/pip-build-gk9425m9/sphinx/sphinx/builders/manpage.pyÚinit"szManualPageBuilder.initcCsdS)Nzall manpagesr)rrrr Úget_outdated_docs'sz#ManualPageBuilder.get_outdated_docs)ÚdocnameÚtyprcCsdS)NÚr)rr#r$rrr Úget_target_uri*sz ManualPageBuilder.get_target_uriÚwriting)ÚignoredrcGs|t|ƒ}t|jj|fddjƒ}xT|jjD]F}|\}}}}}	||jjkr^tj	t
dƒ|ƒq,t|tƒrx|rt|g}ng}||_
||_||_|	|_|jjrÂd|	}
ttj|j|
ƒƒd|
||	f}nd||	f}tjt|ƒdddttj|j|ƒd	d
}|jj|ƒ}
tƒ}t||||
t|gƒ}||_tjddd|jj|||ƒx"|jtjƒD]}|j |j!ƒqRW|j"||ƒq,WdS)NT)ÚdefaultsÚ
componentsZread_config_filesz7"man_pages" config value references unknown document %szman%sz%s/%s.%sz%s.%sz { )Znonlzutf-8)Zdestination_pathÚencodingz} )#rr	ÚenvÚsettingsÚget_default_valuesrrZall_docsrrrÚ
isinstanceÚstrÚtitleZsubtitleÚauthorsÚsectionÚman_make_section_directoryrrÚjoinZoutdirÚinforr
Zget_doctreeÚsetrZresolve_referencesÚfindallrZpending_xrefZreplace_selfÚchildrenÚwrite)rr(Z	docwriterZdocsettingsr6r#ÚnameÚdescriptionr2r3ÚdirnameZ
targetnameZdestinationÚtreeZdocnamesZ	largetreeZpendingnoderrr r:-sL



zManualPageBuilder.writecCsdS)Nr)rrrr Úfinish_szManualPageBuilder.finish)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;ÚformatrÚepilogrZdefault_translator_classZsupported_image_typesrr0r!rr"r&rrr:r?rrrr rs

1r)rrcCs,t|jƒ}|j|d|j|jf|jgdfgS)z$ Better default man_pages settings. z%s %sé)rÚprojectZroot_docÚreleaseÚauthor)rÚfilenamerrr Údefault_man_pagescs
rK)ÚapprcCs@|jtƒ|jdtdƒ|jdddƒ|jdddƒddddœS)NrZ
man_show_urlsFr4ÚbuiltinT)ÚversionZparallel_read_safeZparallel_write_safe)Zadd_builderrZadd_config_valuerK)rLrrr Úsetupjs
rON)-rCÚosrÚtypingrrrrrrZdocutils.frontendr	Zdocutils.ior
ZsphinxrZsphinx.applicationrZsphinx.buildersr
Z
sphinx.configrZ
sphinx.localerZsphinx.utilrrZsphinx.util.consolerZsphinx.util.nodesrZsphinx.util.osutilrrZsphinx.writers.manpagerrÚ	getLoggerr@rrr0ÚintrKrOrrrr Ú<module>s$ 
L&