
­­­­­­­­­­­­­­­­­­
<!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_sphinx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).0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   packageswalkr   sortedkeysr   openwritelendict_rst_template)r"   r-   modulesr   pkgdirpathdirnamesr   Zmodule_listZautoindex_filenameZ	autoindexr*   output_filenamer2   r3   values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-H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stdoutrM   rN   rO   r   ZConfigZ
config_dirpkg_resourcesget_distributionparse_versionZinit_valueswarningswarnbuilderr=   Z	man_pagesr   ZSphinxr   builder_target_dirZdoctree_dirZ	fresh_envbuildZ	all_files	ExceptionZdocutilsrQ   
isinstanceZSystemMessageZstderr<   stderrargsencodeZ
link_indexZ
master_docZ
out_suffixZget_outfilenamer   symlink)
r"   Zstatus_streamZconfoverridesZsphinx_configZ
sphinx_verZapperrrQ   src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   _git_is_installedwrite_git_changeloggenerate_authorsr   get_boolean_optionr   getenvrL   rG   setgetsplitbuildersr`   finalize_optionsget_nameprojectget_versionrM   rN   rl   r   BuildDocrun)r"   r#   Z
tree_indexZ
auto_indexr`   r   r   r   r}      sH    

 
zLocalBuildDoc.runc                 C   s   t j|  dg| _d S )Nzsetup.py)r   r|   initialize_optionsrJ   )r"   r   r   r   r~      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 liner`   r   r   ,rJ   rm   )r   r|   rx   r   r   ru   rw   rd   listrv   rJ   ensure_string_list)r"   r#   optr   r   r   rx      s    zLocalBuildDoc.finalize_options)N)__name__
__module____qualname__command_namerw   r$   rG   rL   rl   r}   r~   rx   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)r   r   r   rw   r   r   r   r   r   r      s   r   )	distutilsr   r&   r   r[   rY   r^   rW   ImportErroriorP   r   r   r   r   rc   estrrm   r   r   r?   r   r|   r   r   r   r   r   r   <module>   s.   
 "