
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    V|#                  
   @   s  d dl mZ d dlZd dlZd dlZd dlZd dlZzd dlZW n ek
r\   d dl	ZY nX z4d dl
mZ d dl
mZ d dl
mZ d dl
mZ W n. ek
r Z zeeeW 5 dZ[X Y nX d dlmZ d dlmZ d	Zd
d ZG dd dejZG dd deZdS )    )logN)apidoc)application)config)setup_command)git)optionszi%(heading)s
%(underline)s

.. automodule:: %(module)s
  :members:
  :undoc-members:
  :show-inheritance:
c                 C   s@   |D ]6}| dr|dkrd| d|dd|d d f < qd S )Nz.pyz__init__.pyTz%s.%s/.)endswithreplace)argdirnamefilesfilename r   =/opt/alt/python38/lib/python3.8/site-packages/pbr/builddoc.py_find_modules<   s    
r   c                   @   sR   e Zd ZdZddgZdd ZdddZd	d
 Zdd Zdd Z	dd Z
dd ZdS )LocalBuildDocbuild_sphinxZhtmlmanc                 C   sJ   | j d}d|kr,tj|d d d}nd}tj|sFt| |S )Nr   
source_dir   Zapizdoc/source/api)distributionget_option_dictospathjoinexistsmakedirs)selfoption_dictr   r   r   r   _get_source_dirH   s    
zLocalBuildDoc._get_source_dirNc                    s2  t dtjtj  i }|  }| jjD ].}d|kr,t	|D ]\}}}t
||| qBq, fddtfdd| D }tj|d}	t|	d}
|
d	 |D ]x}tj|d
| }d| }dt| }t|||d}t d|  t|d}|t|  W 5 Q R X |
d|  qW 5 Q R X d S )Nz[pbr] Autodocumenting from %sr
   c                    s   t  fddD  S )Nc                 3   s   | ]}t   |V  qd S N)fnmatch).0Zpatmoduler   r   	<genexpr>]   s   zDLocalBuildDoc.generate_autoindex.<locals>.include.<locals>.<genexpr>)anyr'   )excluded_modulesr'   r   include\   s    z1LocalBuildDoc.generate_autoindex.<locals>.includec                 3   s   | ]} |r|V  qd S r$   r   )r&   mod)r,   r   r   r)   `   s      z3LocalBuildDoc.generate_autoindex.<locals>.<genexpr>zautoindex.rstwz.. toctree::
   :maxdepth: 1

z%s.rstzThe :mod:`%s` Module=)r(   heading	underlinez[pbr] Generating %sz
   %s.rst
)r   infor   r   abspathcurdirr#   r   Zpackageswalkr   sortedkeysr   openwritelendict_rst_template)r!   r+   modulesr   ZpkgdirpathZdirnamesr   Zmodule_listZautoindex_filenameZ	autoindexr(   Zoutput_filenamer0   r1   valuesZoutput_filer   )r+   r,   r   generate_autoindexR   s:    
z LocalBuildDoc.generate_autoindexc                 C   s,   |   }ddddd|g}t|| j  d S )Nr   r
   z-HZModulesz-o)r#   r   mainautodoc_tree_excludes)r!   r   cmdr   r   r   _sphinx_treeu   s    zLocalBuildDoc._sphinx_treec           
      C   s  | j st }ntj}i }| jr*| j|d< | jr:| j|d< | jrJ| j|d< t	| j
di g }tdj}t|tdkr|tj n|  | jdkrt|jdkrd S tj| j| j
| j| j| j||| jd	d
	}z|j| jd W nt tk
r\ } zTddlm} t||j rJtj!"d tj#"|j$d %dd tj#"d n W 5 d }~X Y nX | j&r|jj'|jj( }|j)d}	t*+||	 d S )Nversionreleasetodayzconf.pysphinxz1.3.1r   r   F)ZfreshenvZwarningiserror)Z	force_all)utilszreST markup error:
asciibackslashreplace
index),verbose	cStringIOStringIOsysstdoutrE   rF   rG   r   ZConfigZ
config_dirpkg_resourcesZget_distributionZparse_versionZinit_valueswarningswarnbuilderr:   Z	man_pagesr   ZSphinxr   Zbuilder_target_dirZdoctree_dirZ	fresh_envZbuildZ	all_files	ExceptionZdocutilsrI   
isinstanceZSystemMessageZstderr9   stderrargsencodeZ
link_indexZ
master_docZ
out_suffixZget_outfilenamer   symlink)
r!   Zstatus_streamZconfoverridesZsphinx_configZ
sphinx_verZapperrrI   srcZdstr   r   r   _sphinx_runz   sZ    



     zLocalBuildDoc._sphinx_runc                 C   s   | j d}t r,tj|d tj|d t|dd}t|dd}t	ds|r^| 
  |r| t|dd d	gd
   | jD ]Z}|| _|   | j  | _| j  | _| j  | _t|ddr|   qtj|  qd S )Npbr)r"   Zautodoc_tree_index_modulesZAUTODOC_TREE_INDEX_MODULESZautodoc_index_modulesZAUTODOC_INDEX_MODULESZSPHINX_DEBUGZautodoc_exclude_modules r   Z
warnerrorsZ
WARNERRORS)r   r   r   Z_git_is_installedZwrite_git_changelogZgenerate_authorsr   Zget_boolean_optionr   getenvrD   r@   setgetsplitbuildersrV   finalize_optionsZget_nameZprojectZget_versionrE   rF   r_   r   BuildDocrun)r!   r"   Z
tree_indexZ
auto_indexrV   r   r   r   ri      sH    

 
zLocalBuildDoc.runc                 C   s   t j|  dg| _d S )Nzsetup.py)r   rh   initialize_optionsrB   )r!   r   r   r   rj      s    z LocalBuildDoc.initialize_optionsc                 C   s   t j|  | jd}d|dg gd kr<|d d | _t| jts\| jr\| j	d| _d}| jd}||kr|| d | _
| | d S )	Nr   zcommand linerV   r   r   ,rB   r`   )r   rh   rg   r   r   rd   rf   rX   listre   rB   Zensure_string_list)r!   r"   optr   r   r   rg      s    zLocalBuildDoc.finalize_options)N)__name__
__module____qualname__command_namerf   r#   r@   rD   r_   ri   rj   rg   r   r   r   r   r   C   s   

#,"r   c                   @   s   e Zd ZdgZdZdS )LocalBuildLatexZlatexZbuild_sphinx_latexN)rn   ro   rp   rf   rq   r   r   r   r   rr      s   rr   )	distutilsr   r%   r   rS   rQ   rT   rO   ImportErroriorH   r   r   r   r   rW   estrr`   r   r   r<   r   rh   r   rr   r   r   r   r   <module>   s.   
 "