�
�GXc@`s�dZddlmZmZmZddlmZddlZddlZddl Z ddl
Z
ddddgZd �Zd
�Z
d�Zd�Zed
�Zed�Zd�Zd�Zd�Zd�ZdS(s"update version string during buildi(tabsolute_importtdivisiontprint_function(tDistributionNtstamp_sourcetstamp_distutils_outputtappend_hg_revisiontas_boolcC`s#|dj|�p"t�j|�S(Ntcmdclass(tgetRtget_command_class(toptstname((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR
scC`s|jdi�j|i�S(Ntoptions(t
setdefault(Rtcommand((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pytget_command_optionsscK`st||�j|�dS(N(Rtupdate(RRtkwds((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pytset_command_optionsscC`s&t|d��}|j�SWdQXdS(Ntr(topentread(tpathtfh((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyt _get_file scC`sU|r
dStjj|�r,tj|�nt|d��}|j|�WdQXdS(Ntw(tosRtexiststunlinkRtwrite(Rtcontenttdry_runR((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyt
_replace_file%scC`s�tjj|dd�}t|�}tjddt|�|�\}}|dksatd��t||d|�tjj|d�}tjj |�r�t|�}tjd d
|�\}}|dks�td��t||d|�ndS(
s/
update version info in passlib source
tpasslibs__init__.pys(?m)^__version__\s*=.*$s__version__ = is failed to replace version stringR ssetup.pys(?m)^stamp_build\s*=.*$sstamp_build = Falses#failed to update 'stamp_build' flagN(
RRtjoinRtretsubntreprtAssertionErrorR!R(tbase_dirtversionR RRtcount((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR0s
c`s|t|d��d�f��fd��Y}||dd<t|d��d�f��fd��Y}||dd<dS(Ntbuild_pyc`seZ��fd�ZRS(c`s'�j|�t|j�|j�dS(N(tbuild_packagesRt build_libR (tself(t _build_pyR)(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR,Qs
(t__name__t
__module__R,((R/R)(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR+PsRtsdistc`seZ��fd�ZRS(c`s*�j|||�t|�|j�dS(N(tmake_release_treeRR (R.R(tfiles(t_sdistR)(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR3Ys(R0R1R3((R5R)(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR2Xs(R
(RR)R+R2((R/R5R)s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyRLscC`s|p dj�dj�kS(Ntsyes y true t 1(tlowertsplit(tvalue((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR_scC`s�ygtjddddgdtj�}|j�\}}|jrWtjdg��n|jd�}Wn)ttjfk
r�tj d�}nX|j
d
�r�|d |}n|d|7}|S(Nthgttips
--templates,{date(date, '%Y%m%d%H%M%S')}+hg.{node|short}tstdoutitasciis%Y%m%d%H%M%Ss.dev0s.post0i����s.post(s.dev0s.post0(t
subprocesstPopentPIPEtcommunicatet
returncodetCalledProcessErrortdecodetOSErrorttimetstrftimetendswith(R)tproctstampt_((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyRcs c`s=t|d��d�f�fd��Y}||dd<dS(NR+c`s-eZ�jdgZdZ�fd�ZRS(sexclude-packages=sexclude packages from buildsc`sP�j|�|j}x3|jp%gD]"}||kr&|j|�q&q&WdS(N(tfinalize_optionstpackagestexclude_packagestremove(R.ttargettpackage(R/(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyRL�s
N(sexclude-packages=Nsexclude packages from builds(R0R1tuser_optionstNoneRNRL((R/(s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyR+~s
R(R
(RR+((R/s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pytinstall_build_py_excludezs(t__doc__t
__future__RRRtdistutils.distRRR$R>RFt__all__R
RRRtFalseR!RRRRRT(((s8/usr/lib/python2.7/site-packages/passlib/_setup/stamp.pyt<module>s( |