HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //lib64/python2.7/site-packages/mercurial/templateutil.pyc
�
1�3\c@@s[ddlmZddlZddlZddlmZddlmZmZm	Z	ddl
mZmZdej
fd��YZd	ej
fd
��YZdefd��YZd
efd��YZdefd��YZdefd��YZdeefd��YZdefd��YZdeefd��YZdefd��YZdefd��YZdefd��YZdefd ��YZd!d"ddd#�Zddd$�Zd!d"ddd%d&�Zdddd%d'�Z d(�Z!d)�Z"dd%d*�Z#d+�Z$d,�Z%d-�Z&d.�Z'd/�Z(d0�Z)d1�Z*d2�Z+d3�Z,d4�Z-d5�Z.dd6�Z/dd7�Z0dd8�Z1dd9�Z2d:�Z3d;�Z4ie-d6e%e56e0e6e2e66Z7d<�Z8d=�Z9d>�Z:d?�Z;d@dA�Z<dB�Z=dC�Z>dD�Z?dE�Z@dF�ZAdG�ZBdH�ZCdI�ZDdJ�ZEdK�ZFdS(Li(tabsolute_importNi(t_(terrortpycompattutil(tdateutilt
stringutiltResourceUnavailablecB@seZRS((t__name__t
__module__(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRstTemplateNotFoundcB@seZRS((RR	(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR
stwrappedcB@s�eZdZejZejd��Zejd��Zejd��Z	ejd��Z
ejd��Zejd��Zejd��Z
ejd��Zejd	��Zejd
��ZRS(s�Object requiring extra conversion prior to displaying or processing
    as value

    Use unwrapvalue() or unwrapastype() to obtain the inner object.
    cC@sdS(sbTest if the specified item is in self

        The item argument may be a wrapped object.
        N((tselftcontexttmappingtitem((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcontains'tcC@sdS(s�Return a member item for the specified key

        The key argument may be a wrapped object.
        A returned object may be either a wrapped object or a pure value
        depending on the self type.
        N((RR
Rtkey((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt	getmember.RcC@sdS(sjReturn the smallest item, which may be either a wrapped or a pure
        value depending on the self typeN((RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytgetmin7RcC@sdS(siReturn the largest item, which may be either a wrapped or a pure
        value depending on the self typeN((RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytgetmax<RcC@sdS(s�Return new container of the same type which includes only the
        selected elements

        select() takes each item as a wrapped object and returns True/False.
        N((RR
Rtselect((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytfilterARcC@sdS(sYield each template mappingN((RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytitermapsIRcC@sdS(s�Join items with the separator; Returns a bytes or (possibly nested)
        generator of bytes

        A pre-configured template may be rendered per item if this container
        holds unprintable items.
        N((RR
Rtsep((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytjoinMRcC@sdS(s�Return a bytes or (possibly nested) generator of bytes representing
        the underlying object

        A pre-configured template may be rendered if the underlying object is
        not printable.
        N((RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytshowVRcC@sdS(s2Return a boolean representation of the inner valueN((RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyttobool_RcC@sdS(s�Move the inner value object out or create a value representation

        A returned value must be serializable by templaterfilters.json().
        N((RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyttovaluecR(RR	t__doc__tabctABCMetat
__metaclass__tabstractmethodRRRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs				tmappablecB@s)eZdZd�Zejd��ZRS(s:Object which can be converted to a single template mappingcc@s|j|�VdS(N(ttomap(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRmscC@sdS(s2Create a single template mapping representing thisN((RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR$pR(RR	RRRR"R$(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR#js	twrappedbytescB@szeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
sWrapper for byte stringcC@s
||_dS(N(t_value(Rtvalue((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt__init__wscC@st|||�}||jkS(N(t	stringifyR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRzscC@s)tjtd�tj|j���dS(Ns%r is not a dictionary(Rt
ParseErrorRRtbytestrR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~scC@s|j||t�S(N(t_getbytmin(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j||t�S(N(R,tmax(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s7|js!tjtd���n|tj|j��S(Nsempty string(R&RR*RRtiterbytestr(RR
Rtfunc((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR,�s	cC@s)tjtd�tj|j���dS(Ns%r is not filterable(RR*RRR+R&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s)tjtd�tj|j���dS(Ns%r is not iterable of mappings(RR*RRR+R&(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@sttj|j�|�S(N(t	joinitemsRR/R&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|jS(N(R&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s
t|j�S(N(tboolR&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|jS(N(R&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s(RR	RR(RRRRR,RRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR%ts											twrappedvaluecB@sqeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
RS(s2Generic wrapper for pure non-list/dict/bytes valuecC@s
||_dS(N(R&(RR'((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�scC@s tjtd�|j��dS(Ns%r is not iterable(RR*RR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not a dictionary(RR*RR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not iterable(RR*RR&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not iterable(RR*RR&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not iterable(RR*RR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not iterable of mappings(RR*RR&(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s tjtd�|j��dS(Ns%r is not iterable(RR*RR&(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s#|jdkrdStj|j�S(NR(R&tNoneRR+(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@sB|jdkrtSt|jt�r,|jSttj|j��S(N(R&R4tFalset
isinstanceR2RR+(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s
cC@s|jS(N(R&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s(RR	RR(RRRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR3�s										tdatecB@steZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
RS(
sWrapper for date tuples%d %dcC@s(tt|�\|_|_||_dS(N(tmaptintt	_unixtimet	_tzoffsett_showfmt(RR'tshowfmt((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�scC@stjtd���dS(Nsdate is not iterable(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsdate is not a dictionary(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsdate is not iterable(RR*R(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsdate is not iterable(RR*R(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsdate is not iterable(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsdate is not iterable(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j|j|jfS(N(R<R:R;(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@si|jd6|jd6S(Ntunixtimettzoffset(R:R;(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR$�scC@stS(N(tTrue(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j|jfS(N(R:R;(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s(RR	RR(RRRRRRRR$RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR7�s									thybridcB@s�eZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�ZRS(s�Wrapper for list or dict to support legacy template

    This class allows us to handle both:
    - "{files}" (legacy command-line-specific list hack) and
    - "{files % '{file}
'}" (hgweb-style with inlining and function support)
    and to access raw values:
    - "{ifcontains(file, files, ...)}", "{ifcontains(key, extras, ...)}"
    - "{get(extras, key)}"
    - "{files|json}"
    cC@s1||_||_||_||_||_dS(N(t_gent_valuest_makemapt_joinfmtt_keytype(Rtgentvaluestmakemaptjoinfmttkeytype((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(s
				cC@s%t||||j�}||jkS(N(tunwrapastypeRFRC(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@satj|jd�s-tjtd���nt||||j�}|j||jj	|��S(Ntgetsnot a dictionary(
RtsafehasattrRCRR*RRLRFt
_wrapvalueRM(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||t�S(N(R,R-(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||t�S(N(R,R.(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s@|js!tjtd���n||j�}|j||�S(Nsempty sequence(RCRR*RRO(RR
RR0tval((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR,s	cC@s<|dkrdStj|d�r&|Std|||j�S(NRD(R4RRNt
hybriditemRD(RRRP((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyROs
c@s�tj�jd�r:��fd��jj�D�}n4g�jD]$}��j||��rD|^qD}td|�j�j�j	�S(NRMc@s7i|]-\}}��j||��r||�qS((RO(t.0tktv(RR(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys
<dictcomp>(s		(
RRNRCt	iteritemsRORAR4RDRERF(RR
RRRHRT((RRs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR&s%4cc@s,|j}x|jD]}||�VqWdS(N(RDRC(RR
RItx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR.s	c@s t�fd��jD�|�S(Nc3@s|]}�j|�VqdS(N(RE(RRRV(R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys	<genexpr>5s(R1RC(RR
RR((Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR3scC@s?|j}|dkr(|j||d�St|�r;|�S|S(Nt (RBR4Rtcallable(RR
RRG((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR7s	cC@s
t|j�S(N(R2RC(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR@sc@s[|j}tj|d�r8��fd�|j�D�Sg|D]}t��|�^q?S(NRMc@s+i|]!\}}t��|�|�qS((tunwrapvalue(RRRSRT(R
R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys
<dictcomp>Gs	(RCRRNRURY(RR
RtxsRV((R
Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRCs
	N(RR	RR4R(RRRRR,RORRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRA�s
												RQcB@sqeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
RS(s�Wrapper for non-list/dict object to support map operation

    This class allows us to handle both:
    - "{manifest}"
    - "{manifest % '{rev}:{node}'}"
    - "{manifest.rev}"
    cC@s(||_||_||_||_dS(N(RBt_keyR&RD(RRGRR'RI((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(Ts			cC@s|j|j�S(N(RDR[(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR$ZscC@s(t|||j�}|j|||�S(N(tmakewrappedR&R(RR
RRtw((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR]scC@s(t|||j�}|j|||�S(N(R\R&R(RR
RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRascC@s%t|||j�}|j||�S(N(R\R&R(RR
RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRescC@s%t|||j�}|j||�S(N(R\R&R(RR
RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRiscC@s(t|||j�}|j|||�S(N(R\R&R(RR
RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRmscC@s(t|||j�}|j|||�S(N(R\R&R(RR
RRR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRqscC@s<|j}|dkr%tj|j�St|�r8|�S|S(N(RBR4RR+R&RX(RR
RRG((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRus	cC@s%t|||j�}|j||�S(N(R\R&R(RR
RR]((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~scC@st|||j�S(N(t_unthunkR&(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s(RR	RR(R$RRRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRQKs											t_mappingsequencecB@sheZdZdddd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZRS(s�Wrapper for sequence of template mappings

    This represents an inner template structure (i.e. a list of dicts),
    which can also be rendered by the specified named/literal template.

    Template mappings may be nested.
    RcC@sI|dk	r*|dk	r*tjd��n||_||_||_dS(Ns$name and tmpl are mutually exclusive(R4RtProgrammingErrort_namet_tmplt_defaultsep(RtnamettmplR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�s
		cC@stjtd���dS(Nsnot comparable(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsnot a dictionary(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsnot comparable(RR*R(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsnot comparable(RR*R(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@stjtd���dS(Nsnot filterable without template(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�sc@s�t�|�j���}�jr@��fd�|D�}n:�jre��fd�|D�}ntjtd���t||�S(Nc3@s$|]}�j�j|�VqdS(N(tprocessRa(RRtm(R
R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys	<genexpr>�sc3@s$|]}�j�j|�VqdS(N(texpandRb(RRRg(R
R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys	<genexpr>�ss not displayable without template(t_iteroverlaymapsRRaRbRR*RR1(RR
RRtmapsitertitemiter((R
Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s		cC@s|j|||j�S(N(RRc(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�sc@sk�j��g}xR|j��D]A}�j||��|j���fd�|j�D��q"W|S(Nc@s7i|]-\}}|�krt��|�|�qS((RY(RRRSRT(R
tknownrestlm(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys
<dictcomp>�s	(tknownresourcekeysRt
overlaymaptappendRU(RR
Rtitemstnm((R
RlRms</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�sN(
RR	RR4R(RRRRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR_�s						
	tmappinggeneratorcB@s5eZdZddddd�Zd�Zd�ZRS(s�Wrapper for generator of template mappings

    The function ``make(context, *args)`` should return a generator of
    mapping dicts.
    RcC@s2tt|�j|||�||_||_dS(N(tsuperRsR(t_maket_args(RtmaketargsRdReR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�s	cC@s|j||j�S(N(RuRv(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@st|j|��S(N(t	_nonemptyR(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s(N(RR	RR4R(RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs�s	tmappinglistcB@s2eZdZdddd�Zd�Zd�ZRS(s%Wrapper for list of template mappingsRcC@s)tt|�j|||�||_dS(N(RtRzR(t	_mappings(RtmappingsRdReR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�scC@s
t|j�S(N(titerR{(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s
t|j�S(N(R2R{(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�sN(RR	RR4R(RR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRz�s	tmappedgeneratorcB@s�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
d��Zd	�Zd
�Z
d�Zd�Zd
�Zd�ZRS(sWrapper for generator of strings which acts as a list

    The function ``make(context, *args)`` should return a generator of
    byte strings, or a generator of (possibly nested) generators of byte
    strings (i.e. a generator for a list of byte strings.)
    cC@s||_||_dS(N(RuRv(RRwRx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR(�s	cC@s(t|||�}||j||�kS(N(R)R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j||j�S(N(RuRv(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRB�scC@stjtd���dS(Nsnot a dictionary(RR*R(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j||t�S(N(R,R-(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s|j||t�S(N(R,R.(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�scC@s:|j||�}|s0tjtd���n||�S(Nsempty sequence(RRR*R(RR
RR0RZ((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR,�scc@sJxC|||�D]2}t|||�}|t|��r|VqqWdS(N(R)R%(R
RRwRxRRVts((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt_filteredgen�scC@s(||j|j|f}t|j|�S(N(RuRvR~R�(RR
RRRx((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@stjtd���dS(Nslist of strings is not mappable(RR*R(RR
((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@st|j|�|�S(N(R1RB(RR
RR((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s|j||d�S(NR(R(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@st|j|��S(N(RyRB(RR
R((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRscC@s,g|j|�D]}t|||�^qS(N(RBR)(RR
RRV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRs((RR	RR(RRBRRRR,tstaticmethodR�RRRRRR(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR~�s											RR'c@sXtj��dkr'd�tj�nt|����fd����fd��S(s>Wrap data to support both dict-like and string-like operationss%s=%sc@si|�6�|�6S(N((RS(tdataRR'(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt<lambda>Rc@s��|���|�fS(N((RS(R�tfmttprefmt(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�RN(RtidentityR4R+RA(R�RR'R�RG((R�R�RR�R's</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
hybriddicts	c@sOtj��dkr'd�tj�nt||�fd���fd��S(s>Wrap data to support both list-like and string-like operationss%sc@si|�6S(N((RV(Rd(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�&Rc@s��|�S(N((RV(R�R�(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�&RN(RR�R4R+RA(R�RdR�RG((R�RdR�s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
hybridlist s
	RWc	

C@spg|j�D] \}	}
i|	|6|
|6^q
}t||||||�}t|d|d|d|d|�S(s�Wrap data like hybriddict(), but also supports old-style list template

    This exists for backward compatibility with the old-style template. Use
    hybriddict() for new template keywords.
    RR'R�RG(RUt_showcompatlistR�(
R
RRdR�RR'R�tpluralt	separatorRSRTtctf((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
compatdict(s3c	C@s=t||||||�}t|d|p-|d|d|�S(s�Wrap data like hybridlist(), but also supports old-style list template

    This exists for backward compatibility with the old-style template. Use
    hybridlist() for new template keywords.
    RdR�RG(R�R�(	R
RRdR�telementR�R�R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
compatlist3sc@s|g�D] \}}i|d6|d6^q}t||||dd�}tj���t|��fd��fd��S(s�Wrap list of (dest, source) file names to support old-style list
    template and field names

    This exists for backward compatibility. Use hybriddict for new template
    keywords.
    RdtsourceR�tfile_copiesc@si|d6|d6�|d6S(NRdtpathR�((RS(tcopies(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�IRc@sd|�|fS(Ns%s (%s)((RS(R�(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�JR(R�RtsortdictRA(R
RRdR�RSRTR�R�((R�s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcompatfilecopiesdict=s-	cC@s.t||||�}t||d�tj�S(s�Wrap list of file names to support old-style list template and field
    names

    This exists for backward compatibility. Use hybridlist for new template
    keywords.
    cS@si|d6|d6S(NtfileR�((RV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�TR(R�RARR�(R
RRdtfilesR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytcompatfileslistLsc#@s�|s�d}n|sJd|}�j|�rF�j|��VndS�j��s�t|dt�r}|j|�Vn/x,|D]$}t|�}|j��|Vq�WdSd|}	�j|	�r��j|	��Vn����fd�}
d�}�j|�r|j�}nd}x|D]}|
|�Vq*W|dk	r_|
|d|�Vnd	|}
�j|
�r��j|
��VndS(
sNReturn a generator that renders old-style list template

    name is name of key in template map.
    values is list of strings or dicts.
    plural is plural of name, if not simply name + 's'.
    separator is used to join values as a string

    expansion works like this, given name 'foo'.

    if values is empty, expand 'no_foos'.

    if 'foo' not in template map, return values as a string,
    joined by 'separator'.

    expand 'start_foos'.

    for each value, expand 'foo'. if 'last_foo' in template
    map, expand it instead of 'foo' for last key.

    expand 'end_foos'.
    Rtno_Nitstart_c@s�i}y|j|�Wnctttfk
r|y%x|D]\}}|||<q:WWq}ttfk
rx||�<q}XnX�j�|�}�j||�S(N(tupdatetAttributeErrort	TypeErrort
ValueErrorRoRf(RTttagtvmappingtatb(R
RRd(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytone�stlast_R�tend_(	tpreloadRfR6tbytesRtdictR�tpopR4(R
RRdRHR�R�tnonameRTtrt	startnameR�tlastnametlasttendname((R
RRds</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�Ws<



	



cc@s6t|t�r$|j||�}nt|t�r;|Vn�t|t�r`tjd|��n�|dkron�tj	|d�s�t
j|�Vn�x�|D]�}t|t�r�|j||�}nt|t�r�|Vq�|dkr�q�tj	|d�st
j|�Vq�xt|||�D]}|VqWq�WdS(s=Yield a single stream from a possibly nested set of iteratorssHMercurial IO including templates is done with bytes, not strings, got %rt__iter__N(
R6RRR�tstrRR`R4RRNRR+tflatten(R
Rtthingtitj((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR��s,	

cC@s,t|t�r|Sdjt|||��S(sETurn values into bytes by converting into text and concatenating themR(R6R�RR�(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR)�scC@sJxCtrE|\}}|tkr%|S|tkr>|d}qdSqWdS(s`Find symbolic name for the given compiled expression; returns None
    if nothing found reliablyiN(R@t	runsymbolt	runfilterR4(targR0R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytfindsymbolicname�s	
cC@s+yt|�tSWntk
r&tSXdS(N(tnextR@t
StopIterationR5(txiter((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRy�s


cC@s&t|tj�s|St|||�S(s&Evaluate a lazy byte string into value(R6ttypest
GeneratorTypeR)(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR^�scC@s|\}}||||�S(s�Evaluate given argument as a bare template object which may require
    further processing (such as folding generator of strings)((R
RR�R0R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
evalrawexp�scC@s"t|||�}t|||�S(s)Evaluate given argument to wrapped object(R�R\(R
RR�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalwrapped�scC@sHt|t�r|St|||�}t|t�r>t|�St|�S(sLift object to a wrapped type(R6RR^R�R%R3(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR\�s
cC@st||t|||��S(s%Evaluate given argument as value type(RYR�(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalfuncarg�scC@s/t|t�r|j||�St|||�S(s.Move the inner value object out of the wrapper(R6RRR^(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRY�scC@s|\}}|tkrQ||||dd�}|dkrctj|�}qcn||||�}t|||�j||�S(sCEvaluate given argument as boolean, but also takes boolean literalstdefaultN(R�R4Rt	parseboolR\R(R
RR�R0R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalboolean�scC@s%t|||�}t||||�S(s`Evaluate given argument as a date tuple or a date string; returns
    a (unixtime, offset) tuple(R�t
unwrapdate(R
RR�terrR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevaldatescC@s�t|t�r|j||�St|||�}ytj|�SWnZtk
rptj|pgt	d���n/tjk
r�|s��ntj|��nXdS(Nsnot a date tuple nor a string(
R6R7RRYRt	parsedateR�RR*R(R
RR�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s
cC@s%t|||�}t||||�S(N(R�t
unwrapinteger(R
RR�R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalintegerscC@sYt|||�}yt|�SWn2ttfk
rTtj|pKtd���nXdS(Nsnot an integer(RYR9R�R�RR*R(R
RR�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�s
cC@st||t|||��S(N(R)R�(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
evalstring$scC@sU|\}}|tkr3||||d|�}n||||�}t|||�S(sXEvaluate given argument as string template, but returns symbol name
    if it is unknownR�(R�R)(R
RR�R0R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytevalstringliteral's
cC@sEyt|}Wn$tk
r4tjd|��nX||||�S(sBMove the inner value object out of the wrapper and coerce its typesinvalid type specified: %r(t_unwrapfuncbytypetKeyErrorRR`(R
RR�ttypR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRL8s

cC@s
t|�S(N(R9(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
runinteger@scC@s|S(N((R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt	runstringCsc@s�fd�}d|_|S(Nc@stjtd����dS(Ns$recursive reference '%s' in template(RtAbortR(R
R(R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
showrecursionGs((t	_requires(RR�((Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt_recursivesymbolblockerFs	Rc@sB�j�|�}|dkrm�j�}t|�||<y�j||�}Wqmtk
ri|}qmXnt|�r	t|dd�dkr	��fd��jj	�D�}�|d<|j
��|jd�}|r�|jd|d�n|t
j|��St|�r>y|���SWq>tk
r:dSXn|S(NR�c@s(i|]}�jj�|�|�qS((t
_resourcestlookup(RRRS(R
R(s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pys
<dictcomp>[s	ttempltuisold-style template keyword '%s's4.8(tsymbolR4tcopyR�RfR
RXtgetattrR�t	knownkeysR�RMt
deprecwarnRt	strkwargsR(R
RRR�RTtsafemappingtpropsR�((R
Rs</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�Ls.

$


cc@s&x|D]}t|||�VqWdS(N(R�(R
RttemplateR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytruntemplatems
cC@s�|\}}t|||�}t|dd�}y#t||||�}||�SWn:tjk
r�}tjt|�dt||���nXdS(Nt_intypethint(R�R�R4RLRR*R�t_formatfiltererror(R
RR�R�tfiltR�tintypete((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�qscC@sFtj|j�}t|�}|s2td�|Std�||fS(Ns(incompatible use of template filter '%s's8template filter '%s' is not compatible with keyword '%s'(RtsysbytesRR�R(R�R�tfntsym((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR�{s	cc@sBx;t|�D]-\}}|j||�}||d<|Vq
WdS(suGenerate combined mappings from the original mapping and an iterable
    of partial mappings to override the originaltindexN(t	enumerateRo(R
torigmappingtnewmappingsR�RrRm((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyRi�s
c
c@s�y|j|�}WnYtjk
rn}t|�}|s@�ntd�|}tjt|�d|��nXx+t|||�D]}	t||	|�Vq�WdS(Ns+keyword '%s' does not support map operationR�(RRR*R�RR�RiR�(
R
RtdtdargttargtditerR�R�R�Rm((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt	_applymap�scC@s:|\}}t|||�}ttd||||f�S(NRx(R�R~R�(R
RR�R�R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pytrunmap�sc
C@s�|\}}t|||�}t|t�rX|j||j|��}t|||�Sy|j|||�SWnYtjk
r�}t	|�}|s��nt
d�|}	tjt|�d|	��nXdS(Ns.keyword '%s' does not support member operationR�(R�R6R#RoR$R�RRR*R�RR�(
R
RR�R�tmembR�RmR�R�R�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt	runmember�scC@s t|||td��}|S(Ns"negation needs an integer argument(R�R(R
RR�((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt	runnegate�scC@s�|\}}}t|||td��}t|||td��}y|||�SWn&tk
r~tjtd���nXdS(Ns#arithmetic only defined on integerssdivision by zero is not defined(R�RtZeroDivisionErrorRR�(R
RR�R0tlefttright((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt
runarithmetic�s
cc@s=t}x0|D](}|r"t}n|r0|Vn|Vq
WdS(s9Join items with the separator; Returns generator of bytesN(R@R5(RkRtfirstRV((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyR1�s
	(Gt
__future__RRR�ti18nRRRRRtutilsRRR�RR
tobjectRR#R%R3R7RARQR_RsRzR~R4R�R�R�R�R�R�R�R�R)R�RyR^R�R�R\R�RYR�R�R�R�R�R�R�R�R9R�RLR�R�R�R�R�R�R�RiR�R�R�R�R�R1(((s</usr/lib64/python2.7/site-packages/mercurial/templateutil.pyt<module>s�L
-,'W:7
<	
			F														

				!