U •V|#ã @s ddlmZddlZddlZddlZddlZddlZz ddlZWnek r\ddl ZYnXz4ddl m Z ddl m Z ddl m Z ddl mZWn.ek rÀZzeeeƒƒ‚W5dZ[XYnXddlmZddlmZd Zd d „ZGd d „d ejƒZGdd„deƒZdS)é)ÚlogN)Úapidoc)Ú application)Úconfig)Ú setup_command)Úgit)Úoptionszi%(heading)s %(underline)s .. automodule:: %(module)s :members: :undoc-members: :show-inheritance: cCs@|D]6}| d¡r|dkrd|d| dd¡|dd…f<qdS)Nz.pyz __init__.pyTz%s.%sú/Ú.éýÿÿÿ)ÚendswithÚreplace)ÚargÚdirnameÚfilesÚfilename©rú /builddoc.pyÚ _find_modules<s ÿ ÿrc@sReZdZdZddgZdd„Zddd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)Ú LocalBuildDocÚ build_sphinxZhtmlÚmancCsJ|j d¡}d|kr,tj |ddd¡}nd}tj |¡sFt |¡|S)NrÚ source_diréZapizdoc/source/api)Ú distributionÚget_option_dictÚosÚpathÚjoinÚexistsÚmakedirs)ÚselfÚ option_dictrrrrÚ_get_source_dirHs   zLocalBuildDoc._get_source_dirNc s2t dtj tj¡¡i}| ¡}|jjD].}d|kr,t  |¡D]\}}}t |||ƒqBq,‡fdd„‰t ‡fdd„|  ¡Dƒƒ}tj  |d¡} t| dƒŽ} |  d ¡|D]x} tj  |d | ¡} d | } d t| ƒ}t| | |d }t d| ¡t| dƒ}| t|¡W5QRX|  d| ¡qªW5QRXdS)Nz[pbr] Autodocumenting from %sr cst‡fdd„ˆDƒƒ S)Nc3s|]}t ˆ|¡VqdS©N)Úfnmatch)Ú.0Zpat©ÚmodulerrÚ ]sÿzDLocalBuildDoc.generate_autoindex..include..)Úanyr')Úexcluded_modulesr'rÚinclude\s ÿz1LocalBuildDoc.generate_autoindex..includec3s|]}ˆ|ƒr|VqdSr$r)r&Úmod)r,rrr)`sz3LocalBuildDoc.generate_autoindex..z autoindex.rstÚwz.. toctree:: :maxdepth: 1 z%s.rstzThe :mod:`%s` Moduleú=)r(ÚheadingÚ underlinez[pbr] Generating %sz %s.rst )rÚinforrÚabspathÚcurdirr#rZpackagesÚwalkrÚsortedÚkeysrÚopenÚwriteÚlenÚdictÚ _rst_template)r!r+ÚmodulesrZpkgÚdirpathZdirnamesrZ module_listZautoindex_filenameZ autoindexr(Zoutput_filenamer0r1ÚvaluesZ output_filer)r+r,rÚgenerate_autoindexRs: ÿ    ÿ ÿÿ z LocalBuildDoc.generate_autoindexcCs,| ¡}ddddd|g}t ||j¡dS)Nrr z-HZModulesz-o)r#rÚmainÚautodoc_tree_excludes)r!rÚcmdrrrÚ _sphinx_treeuszLocalBuildDoc._sphinx_treec Cs’|jst ¡}ntj}i}|jr*|j|d<|jr:|j|d<|jrJ|j|d<t  |j dig¡}t   d¡j}t   |¡t   d¡krŠ| tj¡n| ¡|jdkr®t|jƒdkr®dStj|j|j |j|j|j|||jd d }z|j|jd Wnttk r\}zTdd lm}t||j ƒrJtj! "d ¡tj# "|j$d %dd¡¡tj# "d¡n‚W5d}~XYnX|j&rŽ|jj'|jj(}|j )d¡} t* +|| ¡dS)NÚversionÚreleaseÚtodayzconf.pyÚsphinxz1.3.1rrF)ZfreshenvZwarningiserror)Z force_all)ÚutilszreST markup error: ÚasciiÚbackslashreplaceÚ Úindex),ÚverboseÚ cStringIOÚStringIOÚsysÚstdoutrErFrGrZConfigZ config_dirÚ pkg_resourcesZget_distributionZ parse_versionZ init_valuesÚwarningsÚwarnÚbuilderr:Z man_pagesrZSphinxrZbuilder_target_dirZ doctree_dirZ fresh_envZbuildZ all_filesÚ ExceptionZdocutilsrIÚ isinstanceZ SystemMessageZstderr9ÚstderrÚargsÚencodeZ link_indexZ master_docZ out_suffixZget_outfilenamerÚsymlink) r!Z status_streamZ confoverridesZ sphinx_configZ sphinx_verZappÚerrrIÚsrcZdstrrrÚ _sphinx_runzsZ     ÿü  ÿ zLocalBuildDoc._sphinx_runcCsê|j d¡}t ¡r,tj|dtj|dt |dd¡}t |dd¡}t  d¡s„|r^|  ¡|r„|  t |  ddd g¡d  ¡ƒ¡|jD]Z}||_| ¡|j ¡|_|j ¡|_|j ¡|_t |d d ¡rØ| ¡qŠtj |¡qŠdS) NÚpbr)r"Zautodoc_tree_index_modulesZAUTODOC_TREE_INDEX_MODULESZautodoc_index_modulesZAUTODOC_INDEX_MODULESZ SPHINX_DEBUGZautodoc_exclude_modulesÚrZ warnerrorsZ WARNERRORS)rrrZ_git_is_installedZwrite_git_changelogZgenerate_authorsrZget_boolean_optionrÚgetenvrDr@ÚsetÚgetÚsplitÚbuildersrVÚfinalize_optionsZget_nameZprojectZ get_versionrErFr_rÚBuildDocÚrun)r!r"Z tree_indexZ auto_indexrVrrrri¦sH   þþ þþÿ    ÿ zLocalBuildDoc.runcCstj |¡dg|_dS)Nzsetup.py)rrhÚinitialize_optionsrB)r!rrrrjÈs z LocalBuildDoc.initialize_optionscCstj |¡|j d¡}d| dgg¡dkr<|dd|_t|jtƒs\|jr\|j  d¡|_d}|j d¡}||krŒ||d|_ |  |¡dS) Nrz command linerVrrú,rBr`) rrhrgrrrdrfrXÚlistrerBZensure_string_list)r!r"ÚoptrrrrgÐs   zLocalBuildDoc.finalize_options)N) Ú__name__Ú __module__Ú __qualname__Ú command_namerfr#r@rDr_rirjrgrrrrrCs #,"rc@seZdZdgZdZdS)ÚLocalBuildLatexZlatexZbuild_sphinx_latexN)rnrorprfrqrrrrrräsrr)Z distutilsrr%rrSrQrTrOÚ ImportErrorÚiorHrrrrrWÚeÚstrr`rrr<rrhrrrrrrrÚs.         "