U V|# @s ddlmZddlZddlZddlZddlZddlZz ddlZWnek r\ddl ZYnXz4ddl m Z ddl m Z ddl m Z ddl mZWn.ek rZzeeeW5dZ[XYnXddlmZddlmZd Zd d ZGd d d ejZGdddeZdS))logN)apidoc) application)config) setup_command)git)optionszi%(heading)s %(underline)s .. automodule:: %(module)s :members: :undoc-members: :show-inheritance: cCs@|D]6}|dr|dkrd|d|dd|ddf<qdS)Nz.pyz __init__.pyTz%s.%s/.)endswithreplace)argdirnamefilesfilenamer /builddoc.py _find_modules<s  rc@sReZdZdZddgZddZdddZd d Zd d Zd dZ ddZ ddZ dS) LocalBuildDoc build_sphinxZhtmlmancCsJ|jd}d|kr,tj|ddd}nd}tj|sFt||S)Nr source_dirZapizdoc/source/api) distributionget_option_dictospathjoinexistsmakedirs)self option_dictrrrr_get_source_dirHs   zLocalBuildDoc._get_source_dirNc s2tdtjtji}|}|jjD].}d|kr,t |D]\}}}t |||qBq,fddt fdd| D}tj |d} t| d} | d |D]x} tj |d | } d | } d t| }t| | |d }td| t| d}|t|W5QRX| d| qW5QRXdS)Nz[pbr] Autodocumenting from %sr cstfddD S)Nc3s|]}t|VqdSN)fnmatch).0Zpatmodulerr ]szDLocalBuildDoc.generate_autoindex..include..)anyr')excluded_modulesr'rinclude\s z1LocalBuildDoc.generate_autoindex..includec3s|]}|r|VqdSr$r)r&mod)r,rrr)`sz3LocalBuildDoc.generate_autoindex..z autoindex.rstwz.. toctree:: :maxdepth: 1 z%s.rstzThe :mod:`%s` Module=)r(heading underlinez[pbr] Generating %sz %s.rst )rinforrabspathcurdirr#rZpackageswalkrsortedkeysropenwritelendict _rst_template)r!r+modulesrZpkgdirpathZdirnamesrZ module_listZautoindex_filenameZ autoindexr(Zoutput_filenamer0r1valuesZ output_filer)r+r,rgenerate_autoindexRs:       z LocalBuildDoc.generate_autoindexcCs,|}ddddd|g}t||jdS)Nrr z-HZModulesz-o)r#rmainautodoc_tree_excludes)r!rcmdrrr _sphinx_treeuszLocalBuildDoc._sphinx_treec Cs|jst}ntj}i}|jr*|j|d<|jr:|j|d<|jrJ|j|d<t |j dig}t dj}t |t dkr|tjn||jdkrt|jdkrdStj|j|j |j|j|j|||jd d }z|j|jd Wnttk r\}zTdd lm}t||j rJtj!"d tj#"|j$d%ddtj#"dnW5d}~XYnX|j&r|jj'|jj(}|j)d} t*+|| dS)Nversionreleasetodayzconf.pysphinxz1.3.1rrF)ZfreshenvZwarningiserror)Z force_all)utilszreST markup error: asciibackslashreplace index),verbose cStringIOStringIOsysstdoutrErFrGrZConfigZ config_dir pkg_resourcesZget_distributionZ parse_versionZ init_valueswarningswarnbuilderr:Z man_pagesrZSphinxrZbuilder_target_dirZ doctree_dirZ fresh_envZbuildZ all_files ExceptionZdocutilsrI isinstanceZ SystemMessageZstderr9stderrargsencodeZ link_indexZ master_docZ out_suffixZget_outfilenamersymlink) r!Z status_streamZ confoverridesZ sphinx_configZ sphinx_verZapperrrIsrcZdstrrr _sphinx_runzsZ        zLocalBuildDoc._sphinx_runcCs|jd}tr,tj|dtj|dt|dd}t|dd}t ds|r^| |r| t | ddd gd |jD]Z}||_||j|_|j|_|j|_t|d d r|qtj|qdS) Npbr)r"Zautodoc_tree_index_modulesZAUTODOC_TREE_INDEX_MODULESZautodoc_index_modulesZAUTODOC_INDEX_MODULESZ SPHINX_DEBUGZautodoc_exclude_modulesrZ warnerrorsZ WARNERRORS)rrrZ_git_is_installedZwrite_git_changelogZgenerate_authorsrZget_boolean_optionrgetenvrDr@setgetsplitbuildersrVfinalize_optionsZget_nameZprojectZ get_versionrErFr_rBuildDocrun)r!r"Z tree_indexZ auto_indexrVrrrrisH         zLocalBuildDoc.runcCstj|dg|_dS)Nzsetup.py)rrhinitialize_optionsrB)r!rrrrjs z LocalBuildDoc.initialize_optionscCstj||jd}d|dggdkr<|dd|_t|jts\|jr\|j d|_d}|jd}||kr||d|_ | |dS) Nrz command linerVrr,rBr`) rrhrgrrrdrfrXlistrerBZensure_string_list)r!r"optrrrrgs   zLocalBuildDoc.finalize_options)N) __name__ __module__ __qualname__ command_namerfr#r@rDr_rirjrgrrrrrCs #,"rc@seZdZdgZdZdS)LocalBuildLatexZlatexZbuild_sphinx_latexN)rnrorprfrqrrrrrrsrr)Z distutilsrr%rrSrQrTrO ImportErroriorHrrrrrWestrr`rrr<rrhrrrrrrrs.         "