3

T'ícÙã@sêdZddlZddlmZddlmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlmZdd	lmZmZdd
lmZddlmZddlmZdd
lmZddlmZmZej e!ƒZ"Gdd„deƒZ#e
ee$efdœdd„Z%dS)zChangelog builder.éN)Úpath)ÚAnyÚDictÚListÚTupleÚcast)Úpackage_dir)ÚSphinx)ÚBuilder)ÚChangeSetDomain)Ú_Ú__)ÚHTMLThemeFactory)Úlogging)Úbold)Úcopy_asset_file)Ú	ensuredirÚos_pathc@steZdZdZdZedƒZddœdd„Zedœdd	„Z	d
ddd
œZ
eddœdd„Zeeedœdd„Z
ddœdd„ZdS)ÚChangesBuilderzC
    Write a summary with all versionadded/changed directives.
    Zchangesz#The overview file is in %(outdir)s.N)ÚreturncCs2|jƒt|jƒ}|jdƒ|_|jj||jƒdS)NÚdefault)Zcreate_template_bridgerÚappÚcreateÚthemeÚ	templatesÚinit)ÚselfZ
theme_factory©rú9/tmp/pip-build-gk9425m9/sphinx/sphinx/builders/changes.pyrs
zChangesBuilder.initcCs|jS)N)Úoutdir)rrrrÚget_outdated_docs"sz ChangesBuilder.get_outdated_docsÚaddedÚchangedÚ
deprecated)ÚversionaddedÚversionchangedr#)Úignoredrc)sä|jj}tt|jjdƒƒ}i}g}i}|j|ƒ}|sNtjt	t
dƒ|ƒƒdStjt	t
dƒƒƒxB|D]8}t|jt
ƒr†|jd}	n|j}	|j|j}
|jjddƒ}|	rì|jjdƒrì|rÊd|	|
|f}nd	|	|
f}|j||j|jfƒqh|	sø|jrV|jptd
ƒ}
|	stdƒ}	|r,d|	|
|f}nd	|	|
f}|j|
gƒj||j|jfƒqh|s^qhd|
jƒ|f}|jj|jjƒ}|j|j|fgƒj||j|jfƒqhW|jj||jj|jjt|j ƒƒt|ƒt|j ƒƒ|jj!|jj"d
œ	}t#t$j%|j&dƒddd}|j'|j(j)d|ƒƒWdQRXt#t$j%|j&dƒddd}|j'|j(j)d|ƒƒWdQRXd|d|d|g‰t*t+t+dœ‡fdd„‰tjt	t
dƒƒƒxô|jj,D]è}t#|jj-|ƒ|jjj.d>}y|j/ƒ}Wn*t0k
rôtj1t
dƒ|ƒwžYnXWdQRXt$j%|j&dt2|ƒƒd}t3t$j4|ƒƒt#|dddJ}d j%‡fd!d"„t5|ƒDƒƒ}|jj-|dƒ|d#œ}|j'|j(j)d$|ƒƒWdQRXqžWd%d&„|j6j7iƒj ƒDƒ}t8t$j%t9d'd(d)d*ƒ|j&||j(d+t8t$j%t9d'd,d)d-ƒ|j&ƒdS).NÚ	changesetzno changes in version %s.zwriting summary file...rÚ
ú zc-apiz<b>%s</b>: <i>%s:</i> %sz<b>%s</b>: <i>%s</i>.ZBuiltinszModule levelz
<i>%s:</i> %s)	ÚprojectÚversionZ	docstitleZ
shorttitleÚ
libchangesÚ
apichangesÚotherchangesZshow_copyrightZshow_sphinxz
index.htmlÚwÚutf8)Úencodingzchanges/frameset.htmlzchanges.htmlzchanges/versionchanges.htmlz.. versionadded:: %sz.. versionchanged:: %sz.. deprecated:: %s)ÚnoÚlinercs6d|tj|ƒ}xˆD]}||krd|}PqW|S)Nz<a name="L%s"> </a>z<span class="hl">%s</span>)ÚhtmlÚescape)r2r3Úx)ÚhltextrrÚhlls
z ChangesBuilder.write.<locals>.hlzcopying source files...z(could not read %r for changelog creationZrstz.htmlzutf-8Úc3s |]\}}ˆ|d|ƒVqdS)éNr)Ú.0Úir3)r8rrú	<genexpr>€sz'ChangesBuilder.write.<locals>.<genexpr>)ÚfilenameÚtextzchanges/rstsource.htmlcSsi|]\}}|d|“qS)Ztheme_r)r;ÚkeyÚvalrrrú
<dictcomp>†sz(ChangesBuilder.write.<locals>.<dictcomp>ZthemesrZstaticz
default.css_t)ÚcontextZrendererÚbasicz	basic.css):Úconfigr+rrÚenvZ
get_domainZget_changesets_forÚloggerÚinforr
Ú
isinstanceÚdescnameÚtupleÚtypemapÚtypeÚcontentÚreplaceÚdocnameÚ
startswithÚappendÚlinenoÚmodulerÚ
setdefaultÚ
capitalizeÚtitlesZastextr*Z
html_titleZhtml_short_titleÚsortedÚitemsZhtml_show_copyrightZhtml_show_sphinxÚopenrÚjoinrÚwriterÚrenderÚintÚstrZall_docsZdoc2pathZsource_encodingÚ	readlinesÚUnicodeDecodeErrorÚwarningrrÚdirnameÚ	enumeraterZget_optionsrr)rr&r+Údomainr,r-r.Z
changesetsr'rJZttextrCÚentryrTÚtitleÚctxÚfrPÚlinesZtargetfnr?Zthemectxr)r8r7rr\+sš





$zChangesBuilder.write)r?r+rcCs8tj|ƒ}x(dD] }|jd||fd||fƒ}qW|S)Nr%r$r#z
.. %s:: %sz<b>.. %s:: %s</b>)r%r$r#)r4r5rO)rr?r+Z	directiverrrr8s


zChangesBuilder.hlcCsdS)Nr)rrrrÚfinish”szChangesBuilder.finish)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer
Úepilogrr_r rLrr\r8rkrrrrrsbr)rrcCs|jtƒddddœS)NÚbuiltinT)r+Zparallel_read_safeZparallel_write_safe)Zadd_builderr)rrrrÚsetup˜s
rs)&ror4ÚosrÚtypingrrrrrZsphinxrZsphinx.applicationr	Zsphinx.buildersr
Zsphinx.domains.changesetrZ
sphinx.localerr
Zsphinx.themingrZsphinx.utilrZsphinx.util.consolerZsphinx.util.fileutilrZsphinx.util.osutilrrÚ	getLoggerrlrGrr_rsrrrrÚ<module>s"