U
    jPŒ^‡  ã                   @   sZ   d dl Zd dlmZ d dlmZ d dlZdae 	e
¡Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )é    N)Úconfigparser)Úloggingc                 C   sF   t j | t jd¡t j | t jt jd¡fD ]}t j |¡r(|  S q(dS )zFind the 'setup.cfg' file, if it exists.

    This assumes we're using 'doc/source' for documentation, but also allows
    for single level 'doc' paths.
    z	setup.cfgN)ÚosÚpathÚjoinÚpardirÚexists)Úsrcdirr   © r
   ú//usr/lib/python3/dist-packages/pbr/sphinxext.pyÚ_find_setup_cfg   s    
þ
r   c                 C   s˜   t dkr”t ¡ }t| ƒ}|r&| |¡s4t d¡ dS z8| dd¡}t| 	¡ ƒdkrjt|ƒdkrj| dd¡}W n" tj
k
rŽ   t d¡ Y dS X |a t S )	zÔReturn string name of project name, or None.

    This extracts metadata from 'setup.cfg'. We don't rely on
    distutils/setuptools as we don't want to actually install the package
    simply to build docs.
    Nz7Could not find a setup.cfg to extract project name fromZmetadataÚnameé   é    Zsummaryz1Could not extract project metadata from setup.cfg)Ú_projectr   ÚConfigParserr   ÚreadÚloggerÚinfoÚgetÚlenÚsplitÚError)r	   Úparserr   Zprojectr
   r
   r   Ú_get_project_name-   s    	

r   c                 C   sd   t | jƒ}ztj |¡}W n tk
r2   d }Y nX |r`| jjs`| jjs`| ¡ | j_| 	¡ | j_d S )N)
r   r	   ÚpbrÚversionZVersionInfoÚ	ExceptionZconfigÚreleaseZcanonical_version_stringZversion_string_with_vcs)ÚappZproject_nameÚversion_infor
   r
   r   Ú_builder_initedO   s    

r!   c                 C   s   |   dt¡ dddœS )Nzbuilder-initedT)Zparallel_read_safeZparallel_write_safe)Zconnectr!   )r   r
   r
   r   Úsetup^   s    þr"   )Úos.pathr   Z	six.movesr   Zsphinx.utilr   Zpbr.versionr   r   Z	getLoggerÚ__name__r   r   r   r!   r"   r
   r
   r
   r   Ú<module>   s   
"