HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyc

Xc@@sWddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZddlmZmZmZmZmZmZmZmZd	Zdd
ZdefdYZd
efdYZdefdYZ dZ!ddZ"ddZ#dZ$dZ%dZ&dZ'dZ(dZ)e
dZ*e
dZ+ddZ,dZ-dZ.dZ/d Z0d!Z1d"Z2d#Z3d$Z4d%Z5d&Z6d'Z7d(Z8d)Z9d*Z:d+Z;d,efd-YZ<d.ejfd/YZ=d0Z>dS(1i(tabsolute_importNi(t_(thextnullidtshorti(t
ErrorResponsetHTTP_NOT_FOUNDt	paritygen(tcontextterrortmatchtpatchtpathutilttemplatefilterstuitutilcC@sd|ddkrd|}n|ddkr:|d }ntjj|}|dkr\dS|dS(Nit/i(tostpathtdirname(tptup((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR$s

cc@s|ru|V|dkr1|dkr1d}|Vn|dksCt|dksUtx||krq|d9}qXWnx&trd|Vd|V|d9}qxWdS(Nii(i2ii
ii(tAssertionErrortTrue(tstept	firststep((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt_navseq.s			trevnavcB@s5eZdZdZdZdZdZRS(cC@s|j|_dS(sUNavigation generation object

        :repo: repo object we generate nav for
        N(t	changelogt_revlog(tselftrepo((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__init__?scC@s|jdk	S(s,return True if any revision to navigate overN(t_firsttNone(R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__nonzero__GscC@s0ytt|jSWntk
r+dSXdS(s1return the minimum non-filtered changeset or NoneN(tnexttiterRt
StopIterationR"(R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR!Ks
cC@st|jj|S(N(RRtnode(Rtrev((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRRsc@s|sidd6d
d6fSg}xItd|D]8}||krGPn|j|||j||q1W|j|j}d||j|fggx|D]}||jkrqn||ko|knrjdt|||j|fnd|ko'|knrjdt|||j|fqqWjdd	ifd
d6fdd6fS(scomputes label and revision id for navigation link

        :pos: is the revision relative to which we generate navigation.
        :pagelen: the size of each navigation page
        :limit: how far shall we link

        The return is:
            - a single element tuple
            - containing a dictionary with a `before` and `after` key
            - values are generator functions taking arbitrary number of kwargs
            - yield items are dictionaries with `label` and `node` keys
        tbeforetafteris(%i)s+%dis-%dttipcS@si|dd6|dd6S(NitlabeliR'((ti((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt<lambda>|sc@sfdDS(Nc3@s|]}|VqdS(N((t.0R-(tdata(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pys	<genexpr>}s((tmap(R0t	navbefore(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.}sc@sfdDS(Nc3@s|]}|VqdS(N((R/R-(R0(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pys	<genexpr>~s((R1(R0tnavafter(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.~s(((R+R+(RtappendtsortR!RRtabs(RtpostpagelentlimitttargetstftfirstR(((R0R3R2s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytgenUs.


-1
	(t__name__t
__module__R R#R!RR=(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR=s
				t
filerevnavcB@seZdZdZRS(cC@s(|jj|_|j||_dS(sNavigation generation object

        :repo: repo object we generate nav for
        :path: path of the file we generate nav for
        N(t
unfilteredRt
_changelogtfileR(RRR((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR scC@s"t|jj|jj|S(N(RRBR'Rtlinkrev(RR(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs(R>R?R R(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR@s	t	_siblingscB@s)eZgddZdZdZRS(cC@slg|D]}|jtkr|^q|_t|jdkrh|jdj|krhg|_ndS(Nii(R'RtsiblingstlenR((RRFthiderevts((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR s..cc@sx|jD]}i|jd6|jd6|jd6|jd6|jd6|jd6}tj|dr|j	|d<n|Vq
WdS(	NR'R(tusertdatetdescriptiontbranchRRC(
RFRR(RJRKRLRMRtsafehasattrR(RRItd((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__iter__s




cC@s
t|jS(N(RGRF(R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__len__sN(R>R?R"R RPRQ(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyREs	cC@s=tj|dtdddt}|jdtdtd|S(Nt	untrustedtsectiontannotatet
whitespacetfollowt
linenumbertdiffopts(RtdifffeatureoptsRRT(tfctxRRX((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRTscC@sft|tjrS|j}|jj|krSt|j|g|Snt|j|S(N(	t
isinstanceRtbasefilectxtintrorevt	changectxR(RERtparents(tctxthideR]((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR_s
cC@st|j|S(N(REtchildren(R`Ra((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRbscC@s9|j}|r5i|dd6t|dd6gSgS(NiRCiR'(trenamedR(RZtr((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt
renamelinks#cC@s'g|j|D]}i|d6^qS(Ntname(tnodetags(RR'R-((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytnodetagsdictscC@s'g|j|D]}i|d6^qS(NRf(t
nodebookmarks(RR'R-((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytnodebookmarksdictscC@sog}|j}y|j|}Wntjk
rAd}nX||jkrk|ji|d6n|S(NRf(RMt	branchtipR	tRepoLookupErrorR"R'R4(RR`tbranchesRMt
branchnode((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytnodebranchdicts
cC@s{g}|j}y|j|}Wntjk
rAd}nX|dkrw||jkrw|ji|d6n|S(NtdefaultRf(RMRkR	RlR"R'R4(RR`RmRMRn((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytnodeinbranchs
cC@s9g}|j}|dkr5|ji|d6n|S(NRpRf(RMR4(R`RmRM((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytnodebranchnodefaults
ck@s2x+|j|D]}||d||VqWdS(Nttag(Rg(Rttmpltt1R'targstt((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytshowtagsck@s2x+|j|D]}||d||VqWdS(Ntbookmark(Ri(RRtRuR'RvRw((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytshowbookmarksc@sIgjt|dfd}|S(NcS@s|d|djfS(Nii(R((titem((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.sc;@sd}sOx@jjD])\}}}}j||fqWnxtddtD]\}}dkr|krdS|d7}|rd}n!|jkrd}nd}itd6|jd	6|d
6|jd6|j	d6VqhWdS(
NitkeytreverseitclosedtinactivetopentparityRMtstatusR'RK(
t	branchmaptiterbranchesR4tsortedRR'R$RMRRK(R1tcountRsthsR+R~R`R(theadsR9RRtsortkeyttips(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytentriess&%%
		


(RR(RtstripecountR9R((RR9RRRRs;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt
branchentriess	cC@s%|jd}tj|jd|S(NRt(tlstripRt	canonpathtroot(RR((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt	cleanpathscC@sWy||}WnBtjk
rR|j}||j|j|j|}nX|S(N(R	t	RepoErrortmanifestRDR(tlookup(RtchangeidR`tman((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytchangeidctxs	)cC@sd}d|jkrU|jdd}|jd}|dkrx||d}qxn#d|jkrx|jdd}nt||S(NR+R'it:iiR(tformtfindR(RtreqRtipos((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR^scC@sYd|jkrU|jdd}|jd}|dkrU|| }t||SndS(NR'iRi(RRRR"(RRRR((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt
basechangectx!s
cC@sd|jkr!ttdnt||jdd}d|jkr^|jdd}n2d|jkr|jdd}nttdy|||}Wn)tjk
r|j|d|}nX|S(NRCsfile not giveniR'tfilenodesnode or filenode not giventfileid(RRRRR	Rtfilectx(RRRRRZ((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR+sc@sj}ijd6t|d6jd6jd6jd6jd6jd6td6t	|d	6t
|d
6t||d6t||d6fd
d6fdd6S(NR(R'tauthortdescRKtextratphaseRMtinbranchRmttagst	bookmarksc@s
tS(N(R_(tx(R`(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.Kstparentc@s
tS(N(Rb(R(R`(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.Lstchild(
R'R(RRJRLRKRtphasestrRrRqRoRhRj(RR`R'((R`s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytcommonentry<s 







c@s|j}jj}t||d|}t|j||j}t|}|jdfddfddfdd|d||S(	sObtain a dictionary to be used for entries in a changelist.

    This function is called when producing items for the "entries" list passed
    to the "shortlog" and "changelog" templates.
    tchangelogtagt
allparentsc@s
tS(N(R_(R(R`(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.]sRc@stdS(Ni(R_(R(R`R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.^sRc@stdS(Ni(Rb(R(R`R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR._stfiles(	RR(R'Rxt
listfilediffsRtmaxfilesRtupdate(twebR`RtRtntshowtagsRtentry((R`R(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytchangelistentryOs		cC@s;d|jkr'tj|jddSt|jSdS(NR'i(RR
t	revescapeRR'(RR`((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytsymrevorshortnodeesc@st|j|d|j}t|j|d|j}t|}g}t|j}xst|jD]_\}	}
|
|krdpd}|j	||d|j
d|
d|	dd	t|qpWt|j|}|dkr|j}n|jd
dd}
d|jkr8|jdd
}
nt|j}t|j|||d||
}t|j}t||t|||}td|dt||d|j
d|d|d|d|dfdd|d|j|j
t|j|
S(sBObtain a dictionary to be used to render the "changeset" template.tchangesettagtchangesetbookmarktfilenodelinkt
filenolinkR'RCtblocknoiRRtstyletpaperitdifftsymrevtbasenodetchangesetbranchRtdiffsummaryc@s
tS(N(R(R(tdiffstatsgen(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR.stdiffstattarchivesN(RxRR'RzRrRRt	enumerateRR4RR$RR"tp1tconfigRtdiffstdiffstatgenRtdictRtarchivelistR(RRRtR`Rt
showbookmarkst
showbranchRRRR;ttemplatetbasectxRRt	diffstats((Rs;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytchangesetentryksD!cc@sVx/|| D]#}|ddt|d|VqWt||krR|dVndS(NtfiledifflinkR'RCtfileellipses(RRG(RtRR'tmaxR;((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs!c#@sd}|}fd}	|rHtj|j|j|}
ntj|j|j}
tj|jdt}|dkr|j
}|r|dj}
qt}
n|j}
|j}g}xtj
||
||
d|D]}|jdrW|rWt|}ddt|d	|d
|	dj||Vg}n|jdr|dkrdj|jtd
}n|j|qWt|}ddt|d	|d
|	dj||VdS(Ncs@s&d}xtr!|V|d7}q	WdS(Ni(R(tstart((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytcountgens	c3@sxt|jtD]\}}d||df}|jdrNd}n6|jdrfd}n|jdr~d}nd	}|d
|d|ddd
|dd|VqWdS(Ns%d.%dit+tdifflineplust-t
difflineminust@t
difflineattdifflinetlinetlinenotlineidsl%sRWs% 8s(Rt
splitlinesRt
startswith(RRRtlt
difflinenotltype(Rt(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytprettyprintliness"				

RRitoptsRt	diffblockRRtlinesRtrawi(R
texactRtgetcwdtalwaysRRXRRR"R_R'RRRR$tjoinRR4(RRtR`RRRRRt
blockcountRtmRXR_tnode1tnode2tblocktchunkR((Rts;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs6		!	%	c#@sfdfd}tjd}|dkredd||jVn4x1|jd|D]}dd||VqxWdS(s>Generator function that provides side-by-side comparison data.c@s|rd|pd}||r)d|p,d7}dd|d|d|dd	|pWdd
|pddd|dd	|pydd
|pdS(Nsl%sRsr%stcomparisonlinettypeRt
leftlinenotleftlinenumbers% 6stleftlinetrightlinenotrightlinenumbert	rightline((RRRRRR(Rt(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytcomplines	c
3@sZxS|D]K\}}}}}||}||}t||}xZt|D]L}	d|d||	dd||	d||	dd||	VqLW||krxt|||D]4}	d|d|	dd|	ddddVqWq||krxLt|||D]4}	d|ddddd|	dd|	VqWqqWdS(NRRiRRR(tmintxrangeR"(
topcodesRtllotlhitrlotrhitlen1tlen2RR-(Rt	leftlinest
rightlines(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytgetblocks0




itcomparisonblockRRN(tdifflibtSequenceMatcherR"tget_opcodestget_grouped_opcodes(RtRRR
RRItoc((RRR
Rts;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytcompares
 cc@sgtjtj|j|}tj|\}}}}}x!trb||||||fVqBWdS(s3Generator function that provides the diffstat data.N(RtdiffstatdataRt	iterlinesRtdiffstatsumR(R`Rtstatstmaxnametmaxtotaltaddtotaltremovetotaltbinary((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs!	cC@s;t|\}}}}}}tdt|||fS(s#Return a short summary of the diff.s5 %d files changed, %d insertions(+), %d deletions(-)
(R$RRG(tstatgenRRRRRR((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs	c#@st|\}}}}}|j}	fd}
d}x|D]\}}
}}||	krjdpmd}|
|}|d7}||d|jd|d|d	|d
|
|
d|
|dt|VqFWd
S(s5Return a diffstat template for each file in the diff.c@s"dkrdSt|dS(Niid(tfloat(R-(R(s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pytpctsitdiffstatlinktdiffstatnolinkiR'RCtfilenottotaltaddpctt	removepctRN(R$RR(RtR`RRRRRRRRR!R$tfilenametaddstremovestisbinaryRR%((Rs;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRs

!tsessionvarscB@s8eZddZdZdZdZdZRS(t?cC@s||_||_dS(N(Rtvars(RR.R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR *s	cC@s|j|S(N(R.(RR|((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__getitem__-scC@s||j|<dS(N(R.(RR|tvalue((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__setitem__/scC@sttj|j|jS(N(R,tcopyR.R(R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt__copy__1scc@sY|j}xIt|jjD]2\}}i|d6t|d6|d6Vd}qWdS(NRfR0t	separatort&(RRR.t	iteritemststr(RR4R|R0((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyRP3s	" (R>R?R R/R1R3RP(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR,)s
			twsgiuicB@seZdZRS(cC@sdS(NiP((R((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt	termwidth;s(R>R?R9(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyR89scC@sg}|jjd}||jjd7}xg|D]_\}}|d}tj|}tjd|||f|}|s|jjtd||fq5ntjd|}|j||j	d}	|j||j	d}
|j	d}d	}|r4x(|j
D]}
|tj|
O}qWny)tj|	|}	|j|	|
fWq5tj
k
r|jjtd
||	fq5Xq5W|S(Ntwebsubtinterhgis1^s%s(.+)(?:(?<=\\\\)|(?<!\\))%s(.*)%s([ilmsux])*$s#websub: invalid pattern for %s: %s
s(?<!\\)\\%siiis"websub: invalid regexp for %s: %s
(RtconfigitemstretescapeR
twarnRtcompiletsubtgrouptuppert__dict__R4R	(Rtwebsubtablet
websubdefsR|tpatterntunesctdelimR
tdelim_retregexptformattflagintflagstflag((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt
getwebsubs>s8
(?t
__future__RR2RRR=ti18nRR'RRRtcommonRRRRRR	R
RRR
RtuimodRRR"RtobjectRR@RERTR_RbReRhRjRoRqRrRxRzRRRR^RRRRRRRRRRRRR,R8RP(((s;/usr/lib/python2.7/dist-packages/mercurial/hgweb/webutil.pyt<module>	sV:	
C					
							
					,		8	1