o $af @s8dZddlmZddlmZmZmZmZmZm Z ddl m Z ddl m Z ddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZmZdd lmZddlm Z ddl!m"Z"m#Z#ddl$m%Z%m&Z&e'e(Z)GdddeZ*dedeee+e+e+ee+e,ffddZ-dedee+effddZ.dS)z sphinx.builders.manpage ~~~~~~~~~~~~~~~~~~~~~~~ Manual pages builder. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. )path)AnyDictListSetTupleUnion) OptionParser) FileOutput)addnodes)Sphinx)Builder)ConfigNoUri)__)loggingprogress_message) darkgreen)inline_all_toctrees) ensuredirmake_filename_from_project)ManualPageTranslatorManualPageWriterc@seZdZUdZdZdZedZeZ gZ e e e d<dddZdee e e ffd d Zdd e d e de fd dZeeddeddfddZdddZdS)ManualPageBuilderz4 Builds groff output in manual page format. manz#The manual pages are in %(outdir)s.supported_image_typesreturnNcCs|jjs ttddSdS)NzBno "man_pages" config value found; no manual pages will be written)config man_pagesloggerwarningrselfr$9/usr/lib/python3/dist-packages/sphinx/builders/manpage.pyinit+szManualPageBuilder.initcCsdS)Nz all manpagesr$r"r$r$r%get_outdated_docs0z#ManualPageBuilder.get_outdated_docsdocnametypcCs|dkrdSt||)Ntokenr)r#r)r*r$r$r%get_target_uri3s z ManualPageBuilder.get_target_uriwritingignoredcGsnt|}t|jj|fdd}|jjD]}|\}}}}} ||jjvr,t t d|qt |t r9|r7|g}ng}||_ ||_||_| |_|jjr^d| } tt|j| d| || f} nd|| f} tjt| dddtt|j| d d } |j|} t}t|||| t|g}||_tjd dd|j||||tjD]}| |j!q|"|| qdS) NT)defaults componentsread_config_filesz7"man_pages" config value references unknown document %szman%sz%s/%s.%sz%s.%sz { )nonlzutf-8)destination_pathencodingz} )#rr envsettingsget_default_valuesrrall_docsr r!r isinstancestrtitlesubtitleauthorssectionman_make_section_directoryrrjoinoutdirinforr get_doctreesetrresolve_referencestraverser pending_xref replace_selfchildrenwrite)r#r/ docwriter docsettingsrCr)name descriptionr>r?dirname targetname destinationtreedocnames largetree pendingnoder$r$r%rK8sZ        zManualPageBuilder.writecCsdSNr$r"r$r$r%finishjr(zManualPageBuilder.finish)rNrW)__name__ __module__ __qualname____doc__rNformatrepilogrdefault_translator_classrrr;__annotations__r&rr'r-rrrKrXr$r$r$r%r s   1rrrcCs,t|j}|j|d|j|jf|jgdfgS)z$ Better default man_pages settings. z%s %s)rprojectroot_docreleaseauthor)rfilenamer$r$r%default_man_pagesns rgappcCs@|t|dtd|ddd|dddddddS)Nr man_show_urlsFr@builtinT)versionparallel_read_safeparallel_write_safe) add_builderradd_config_valuerg)rhr$r$r%setupus rpN)/r\osrtypingrrrrrrdocutils.frontendr docutils.ior sphinxr sphinx.applicationr sphinx.buildersr sphinx.configr sphinx.errorsr sphinx.localer sphinx.utilrrsphinx.util.consolersphinx.util.nodesrsphinx.util.osutilrrsphinx.writers.manpagerr getLoggerrYr rr;intrgrpr$r$r$r%s(            (N