ó ŸçƒQc@sÉddlZddlZddlZddlZddlZddlmZidd`dafd6d dbdcfd 6dddfd6ddefd6d ddffd6d ddgfd6dddhfd6dddifd6dddjfd6dddkfd6dld6ddmdfd6ddndfd6dod6Ze dddgƒZ dZ d„Z eje eƒj Z d „Zd!„Zd"„Zd#„Zd$„Zd%„Zd&„Zd'„Zd(„Zd)„Zd*„Zd+„Zd,„Zd-„Zd.„Zd/„Zd0„Zd1„Zd2„Z d3„Z!d4„Z"d5„Z#d6„Z$d7„Z%d8„Z&e'd9dpd:dqd;drd<dsd=dtd>dud?dvdAdwƒZ(dB„Z)dC„Z*dD„Z+dE„Z,dF„Z-dG„Z.dH„Z/iedI6e dJ6edK6e.dL6edM6e,dN6e-dO6e!dP6e&dQ6edR6e%dS6edT6edU6e#dV6e+dW6e"dX6edY6e$dZ6e/d[6Z0i ed6ed6ed6ed6ed 6ed6ed6ed6ed6Z1d\e2fd]„ƒYZ3d^„Z4dJdPdQdWdXgZ5d_„Z6e0j7ƒZ8dS(xiÿÿÿÿN(t_itgroupit)tfunct(itnegateitminust-i tnott!tandt&itort|t+itlistt,itsymboltstringtends .*{}[]?/\ccsadt|ƒ}}x9||krN||}|jƒr;n|dkrX|d|fVné|dks‡|dkrU|||d!dkrU|dkr³|d7}||}d „}n d „}|d7}|}xr||kr9||}|d kr|d7}qÏn||kr,d ||||!ƒ|fVPn|d7}qÏWtjtd ƒ|ƒ‚nì|jƒs|tkst|ƒdkr)|}|d7}xR||krã||}|jƒpÏ|tkpÏt|ƒdksÖPn|d7}q’W|||!}|t kr|d|fVnd||fV|d8}ntjtdƒ|ƒ‚|d7}qWdd|fVdS(Nis(),-|&+!s"'trisr'sr"icSs|S(N((tx((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt-scSs |jdƒS(Ns string-escape(tdecode(R((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR/ss\Rsunterminated stringiRs syntax errorR(sr'sr"( tlentisspacetNoneterrort ParseErrorRtisalnumt globcharstordtkeywords(tprogramtpostltcRtstdtsym((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyttokenize sT             *  *   cCsA|r.|ddks&|ddkr.|dStj|ƒ‚dS(NiRRi(RR(Rterr((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt getstringSs&cCs7|stjtdƒƒ‚nt|d||dŒS(Nsmissing argumentii(RRRtmethods(tmctxR((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytgetsetXscCs8|j|gƒ}g|jD]}||ƒr|^qS(N(tmatchertsubset(R,Rtmtf((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt stringset]scCst|jt||ƒƒ|ƒS(N(R-tnarrow(R,Rty((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytandsetascCsEt||ƒ}t||ƒ}|g|D]}||kr(|^q(S(N(R-(R,RR4txltylR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytorsetdscCs;tt||ƒƒ}g|jD]}||kr|^qS(N(tsetR-R/(R,RR%R((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytnotsetjscCsGt||ƒ}tt||ƒƒ}g|D]}||kr+|^q+S(N(R-R9(R,RR4R6R7R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytminussetnscCstjtdƒƒ‚dS(Ns can't use a list in this context(RRR(R,tatb((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytlistsetsscCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(sB``modified()`` File that is modified according to status. ismodified takes no arguments(tgetargsRtstatusR/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytmodifiedvscCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(s<``added()`` File that is added according to status. isadded takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytaddedscCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(s@``removed()`` File that is removed according to status. isremoved takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytremovedˆscCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(s@``deleted()`` File that is deleted according to status. isdeleted takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytdeleted‘scCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(sƒ``unknown()`` File that is unknown according to status. These files will only be considered if this predicate is used. isunknown takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytunknownšscCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(sƒ``ignored()`` File that is ignored according to status. These files will only be considered if this predicate is used. isignored takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytignored¤scCsOt|ddtdƒƒ|jƒd}g|jD]}||kr3|^q3S(s<``clean()`` File that is clean according to status. isclean takes no argumentsi(R?RR@R/(R,RR%R1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytclean®scCsV|ddkr5|dtkr5t|d||ƒStjtdƒ|dƒ‚dS(NiRisnot a function: %s(tsymbolsRRR(R,R<R=((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR·s cCs:|s gS|ddkr3t|dƒ|dgS|gS(NiRii(tgetlist(R((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRI¼s cCsFt|ƒ}t|ƒ|ks0t|ƒ|krBtj|ƒ‚n|S(N(RIRRR(RtmintmaxR)R#((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR?Ãs $cCsRt|ddtdƒƒg|jƒD](}tj|j|jƒƒr&|^q&S(sJ``binary()`` File that appears to be binary (contains NUL bytes). isbinary takes no arguments(R?Rtexistingtutiltbinarytctxtdata(R,RR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRNÉscCsNt|ddtdƒƒg|jƒD]$}|jj|ƒdkr&|^q&S(s6``exec()`` File that is marked as executable. isexec takes no argumentsR(R?RRLROtflags(R,RR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytexec_ÑscCsNt|ddtdƒƒg|jƒD]$}|jj|ƒdkr&|^q&S(s8``symlink()`` File that is marked as a symlink. issymlink takes no argumentsR#(R?RRLRORQ(R,RR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytsymlinkÙscCs}t|ddtdƒƒ|jjƒdk r2gStj|jjƒ}g|jD](}||krQ||dkrQ|^qQS(sT``resolved()`` File that is marked resolved according to the resolve state. isresolved takes no argumentsRN( R?RROtrevRtmerget mergestatet_repoR/(R,RtmsR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytresolvedás cCs}t|ddtdƒƒ|jjƒdk r2gStj|jjƒ}g|jD](}||krQ||dkrQ|^qQS(sX``unresolved()`` File that is marked unresolved according to the resolve state. isunresolved takes no argumentstuN( R?RRORTRRURVRWR/(R,RRXR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt unresolvedìs cCsQt|ddtdƒƒ|jjjj}g|jD]}||ƒr5|^q5S(sG``hgignore()`` File that matches the active .hgignore pattern. ishgignore takes no arguments(R?RRORWtdirstatet_ignoreR/(R,RtignoreR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pythgignore÷scCsy"tjt|tdƒƒƒ}Wn/tjk rS}tjtdƒ|ƒ‚nXg|jƒD](}|j|j|j ƒƒra|^qaS(sD``grep(regex)`` File contains the given regular expression. sgrep requires a patternsinvalid match pattern: %s( tretcompileR*RRRRLtsearchRORP(R,RRteR1((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytgrepÿs "tktKtkBtKBtMtMBtGitGBcCs–ye|jƒ}xHtjƒD]:\}}|j|ƒrtt|t|ƒ ƒ|ƒSqWt|ƒSWn*tk r‘tj t dƒ|ƒ‚nXdS(Nscouldn't parse size: %s( tstript_unitstitemstendswithtinttfloatRt ValueErrorRRR(R%Retv((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt _sizetoint s # cCsÚy©|jƒ}xŒtjƒD]~\}}|j|ƒr|t|ƒ }d}d|kr~|dt|jdƒdƒ:}ntt|ƒ||ƒdSqWt|ƒSWn*tk rÕt j t dƒ|ƒ‚nXdS(Ngð?t.i iscouldn't parse size: %s( RmRnRoRpRtsplitRqRrRsRRR(R%ReRttntinc((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt _sizetomaxs  $  csÉt|tdƒƒjƒ}d|krl|jddƒ\‰‰tˆƒ‰tˆƒ‰‡‡fd†}n'|jdƒrt|dƒ‰‡fd†}nö|jdƒrÎt|dƒ‰‡fd †}nÅ|jd ƒrÿt|dƒ‰‡fd †}n”|jd ƒr0t|dƒ‰‡fd †}nc|djsM|ddkrzt|ƒ‰t|ƒ‰‡‡fd†}ntj tdƒ|ƒ‚g|j ƒD]%}||j |j ƒƒr |^q S(s``size(expression)`` File size matches the given expression. Examples: - 1k (files from 1024 to 2047 bytes) - < 20k (files less than 20480 bytes) - >= .5MB (files at least 524288 bytes) - 4k - 1MB (files from 4096 bytes to 1048576 bytes) ssize requires an expressionRics|ˆko|ˆkS(N((R(R<R=(s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR7ss<=ics |ˆkS(N((R(R<(s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR:st=cs |ˆkS(N((R(R<(s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR@st>cs |ˆkS(N((R(R<(s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRCsiRvcs|ˆko|ˆkS(N((R(R<R=(s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRGsscouldn't parse size: %s( R*RRmRwRut startswithtisdigitRzRRRLROtsize(R,RtexprR0R1((R<R=s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR's0      cCs§t|tdƒƒ}g}x…|jƒD]w}|j|jƒ}y|j|ƒWn=tk r~tjtdƒ|ƒ‚nt k r‘q(nX|j |ƒq(W|S(s£``encoding(name)`` File can be successfully decoded with the given character encoding. May not be useful for encodings other than ASCII and UTF-8. s"encoding requires an encoding namesunknown encoding '%s'( R*RRLRORPRt LookupErrorRMtAborttUnicodeDecodeErrortappend(R,RtencR%R1R&((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytencodingMs  cCsît|tdƒƒ}g}xÌ|jƒD]¾}|j|jƒ}tj|ƒrVq(n|dksn|dkrŠd|krŠ|j|ƒq(|dkr¸tj d|ƒr¸|j|ƒq(|dkr(tj d|ƒr(|j|ƒq(q(W|S( s«``eol(style)`` File contains newlines of the given style (dos, unix, mac). Binary files are excluded, files with mixed line endings match multiple styles. s"encoding requires an encoding nametdostwins tunixs(?Òs(RžRR9R/(RŸ((RCRŸREs5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRLËs !  cCst|j|j|ƒ|jƒS(N(RROR£Rž(RŸR¢((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyR3ÔsN( t__name__t __module__RR R@R.R£RLR3(((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRÀs     cCs}t|tƒry|ddkrN|dddkrN|dd|krNtSnx(|dD]}t||ƒrYtSqYWntS(NiRiR(t isinstancettupletTruet_intreetFalse(tfuncsttreeR%((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyRª×s$ c Cs?t|ƒ\}}|t|ƒkr?tjtdƒ|ƒ‚ntdddddddg|ƒs„|jƒdkrtt|ƒrtdg|ƒ}tdg|ƒ}|j }|j |j ƒ|d|d|dt ƒ}g}xB|D]} |j | ƒqèWn$d}t|j|jgƒƒƒ}tt|||ƒ|ƒS( Ns invalid tokenRARBRCRDRERFRG(tparseRRRRRªRTRt_existingcallersRWR@tp1R©textendRtwalkR”R-R( ROR€R­R"RERFRR@R/R$((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pyt getfilesetês"!  (sgroupiR(sfunciR(snegatei(Ri(snoti (snoti (sandi(sandi(sori(sori(sori(slisti(iNN(ssymbol(sstring(iNNiiiiiii@i@(9tparserRRMRUR`ti18nRRtelementsR9R RR(R®R*R-R2R5R8R:R;R>RARBRCRDRERFRGRRIR?RNRRRSRYR[R_RdtdictRnRuRzRR†R‹RR›RHR+tobjectRRªR¯R³tvaluest i18nfunctions(((s5/sys/lib/python2.7/site-packages/mercurial/fileset.pytsº<    1                  &