ó zfc@sôdZddlZddlZddgZdejfd„ƒYZdeejfd„ƒYZedkrðddl Z e j j ej dƒ\Z Ze j jeƒ\ZZd ej krÙdd lmZde_ned ejƒƒndS( sŽA user-defined wrapper around string objects Note: string objects have grown methods in Python 1.6 This module requires Python 1.6 or later. iÿÿÿÿNt UserStringt MutableStringcBsoeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„ZeZd„Zd„Zd„Zdejd„Zd;d;d„Zd;d;d„Zdejd„Zdd„Zdejd„Zdejd„Zd„Z d„Z!d„Z"d„Z#d „Z$d!„Z%d"„Z&d#„Z'd$„Z(d%„Z)d&„Z*d'„Z+d;d(„Z,d)„Z-d*d+„Z.dejd,„Z/dejd-„Z0d.„Z1d/„Z2d;d0„Z3d;d*d1„Z4d;d*d2„Z5dd3„Z6dejd4„Z7d;d5„Z8d6„Z9d7„Z:d8„Z;d9„Z<d:„Z=RS(<cCsMt|tƒr||_n.t|tƒr:|j|_nt|ƒ|_dS(N(t isinstancet basestringtdataRtstr(tselftseq((s"/usr/lib64/python2.7/UserString.pyt__init__s  cCs t|jƒS(N(RR(R((s"/usr/lib64/python2.7/UserString.pyt__str__tcCs t|jƒS(N(treprR(R((s"/usr/lib64/python2.7/UserString.pyt__repr__R cCs t|jƒS(N(tintR(R((s"/usr/lib64/python2.7/UserString.pyt__int__R cCs t|jƒS(N(tlongR(R((s"/usr/lib64/python2.7/UserString.pyt__long__R cCs t|jƒS(N(tfloatR(R((s"/usr/lib64/python2.7/UserString.pyt __float__R cCs t|jƒS(N(tcomplexR(R((s"/usr/lib64/python2.7/UserString.pyt __complex__R cCs t|jƒS(N(thashR(R((s"/usr/lib64/python2.7/UserString.pyt__hash__R cCs6t|tƒr"t|j|jƒSt|j|ƒSdS(N(RRtcmpR(Rtstring((s"/usr/lib64/python2.7/UserString.pyt__cmp__scCs ||jkS(N(R(Rtchar((s"/usr/lib64/python2.7/UserString.pyt __contains__"scCs t|jƒS(N(tlenR(R((s"/usr/lib64/python2.7/UserString.pyt__len__%R cCs|j|j|ƒS(N(t __class__R(Rtindex((s"/usr/lib64/python2.7/UserString.pyt __getitem__&R cCs5t|dƒ}t|dƒ}|j|j||!ƒS(Ni(tmaxRR(Rtstarttend((s"/usr/lib64/python2.7/UserString.pyt __getslice__'scCsgt|tƒr&|j|j|jƒSt|tƒrI|j|j|ƒS|j|jt|ƒƒSdS(N(RRRRRR(Rtother((s"/usr/lib64/python2.7/UserString.pyt__add__+s cCsAt|tƒr#|j||jƒS|jt|ƒ|jƒSdS(N(RRRRR(RR%((s"/usr/lib64/python2.7/UserString.pyt__radd__2scCs|j|j|ƒS(N(RR(Rtn((s"/usr/lib64/python2.7/UserString.pyt__mul__7scCs|j|j|ƒS(N(RR(Rtargs((s"/usr/lib64/python2.7/UserString.pyt__mod__:scCs|j|jjƒƒS(N(RRt capitalize(R((s"/usr/lib64/python2.7/UserString.pyR,>R cGs|j|jj||ŒƒS(N(RRtcenter(RtwidthR*((s"/usr/lib64/python2.7/UserString.pyR-?sicCs|jj|||ƒS(N(Rtcount(RtsubR"R#((s"/usr/lib64/python2.7/UserString.pyR/AscCs^|rD|r(|j|jj||ƒƒS|j|jj|ƒƒSn|j|jjƒƒSdS(N(RRtdecode(Rtencodingterrors((s"/usr/lib64/python2.7/UserString.pyR1Cs cCs^|rD|r(|j|jj||ƒƒS|j|jj|ƒƒSn|j|jjƒƒSdS(N(RRtencode(RR2R3((s"/usr/lib64/python2.7/UserString.pyR4Ks cCs|jj|||ƒS(N(Rtendswith(RtsuffixR"R#((s"/usr/lib64/python2.7/UserString.pyR5SsicCs|j|jj|ƒƒS(N(RRt expandtabs(Rttabsize((s"/usr/lib64/python2.7/UserString.pyR7UscCs|jj|||ƒS(N(Rtfind(RR0R"R#((s"/usr/lib64/python2.7/UserString.pyR9WscCs|jj|||ƒS(N(RR(RR0R"R#((s"/usr/lib64/python2.7/UserString.pyRYscCs |jjƒS(N(Rtisalpha(R((s"/usr/lib64/python2.7/UserString.pyR:[R cCs |jjƒS(N(Rtisalnum(R((s"/usr/lib64/python2.7/UserString.pyR;\R cCs |jjƒS(N(Rt isdecimal(R((s"/usr/lib64/python2.7/UserString.pyR<]R cCs |jjƒS(N(Rtisdigit(R((s"/usr/lib64/python2.7/UserString.pyR=^R cCs |jjƒS(N(Rtislower(R((s"/usr/lib64/python2.7/UserString.pyR>_R cCs |jjƒS(N(Rt isnumeric(R((s"/usr/lib64/python2.7/UserString.pyR?`R cCs |jjƒS(N(Rtisspace(R((s"/usr/lib64/python2.7/UserString.pyR@aR cCs |jjƒS(N(Rtistitle(R((s"/usr/lib64/python2.7/UserString.pyRAbR cCs |jjƒS(N(Rtisupper(R((s"/usr/lib64/python2.7/UserString.pyRBcR cCs|jj|ƒS(N(Rtjoin(RR((s"/usr/lib64/python2.7/UserString.pyRCdR cGs|j|jj||ŒƒS(N(RRtljust(RR.R*((s"/usr/lib64/python2.7/UserString.pyRDescCs|j|jjƒƒS(N(RRtlower(R((s"/usr/lib64/python2.7/UserString.pyREgR cCs|j|jj|ƒƒS(N(RRtlstrip(Rtchars((s"/usr/lib64/python2.7/UserString.pyRFhR cCs|jj|ƒS(N(Rt partition(Rtsep((s"/usr/lib64/python2.7/UserString.pyRHisiÿÿÿÿcCs|j|jj|||ƒƒS(N(RRtreplace(Rtoldtnewtmaxsplit((s"/usr/lib64/python2.7/UserString.pyRJkscCs|jj|||ƒS(N(Rtrfind(RR0R"R#((s"/usr/lib64/python2.7/UserString.pyRNmscCs|jj|||ƒS(N(Rtrindex(RR0R"R#((s"/usr/lib64/python2.7/UserString.pyROoscGs|j|jj||ŒƒS(N(RRtrjust(RR.R*((s"/usr/lib64/python2.7/UserString.pyRPqscCs|jj|ƒS(N(Rt rpartition(RRI((s"/usr/lib64/python2.7/UserString.pyRQsscCs|j|jj|ƒƒS(N(RRtrstrip(RRG((s"/usr/lib64/python2.7/UserString.pyRRuR cCs|jj||ƒS(N(Rtsplit(RRIRM((s"/usr/lib64/python2.7/UserString.pyRSvscCs|jj||ƒS(N(Rtrsplit(RRIRM((s"/usr/lib64/python2.7/UserString.pyRTxscCs|jj|ƒS(N(Rt splitlines(Rtkeepends((s"/usr/lib64/python2.7/UserString.pyRUzR cCs|jj|||ƒS(N(Rt startswith(RtprefixR"R#((s"/usr/lib64/python2.7/UserString.pyRW{scCs|j|jj|ƒƒS(N(RRtstrip(RRG((s"/usr/lib64/python2.7/UserString.pyRY}R cCs|j|jjƒƒS(N(RRtswapcase(R((s"/usr/lib64/python2.7/UserString.pyRZ~R cCs|j|jjƒƒS(N(RRttitle(R((s"/usr/lib64/python2.7/UserString.pyR[R cGs|j|jj|ŒƒS(N(RRt translate(RR*((s"/usr/lib64/python2.7/UserString.pyR\€scCs|j|jjƒƒS(N(RRtupper(R((s"/usr/lib64/python2.7/UserString.pyR]‚R cCs|j|jj|ƒƒS(N(RRtzfill(RR.((s"/usr/lib64/python2.7/UserString.pyR^ƒR N(>t__name__t __module__RR R RRRRRRRRR R$R&R'R)t__rmul__R+R,R-tsystmaxintR/tNoneR1R4R5R7R9RR:R;R<R=R>R?R@RARBRCRDRERFRHRJRNRORPRQRRRSRTRURWRYRZR[R\R]R^(((s"/usr/lib64/python2.7/UserString.pyR sr                                            cBsheZdZdd„Zd Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z d „Z RS( sœmutable string objects Python strings are immutable objects. This has the advantage, that strings may be used as dictionary keys. If this property isn't needed and you insist on changing string values in place instead, you may cheat and use MutableString. But the purpose of this class is an educational one: to prevent people from inventing their own mutable string class derived from UserString and than forget thereby to remove (override) the __hash__ method inherited from UserString. This would lead to errors that would be very hard to track down. A faster and better solution is to rewrite your program using lists.R cCs-ddlm}|dddƒ||_dS(Niÿÿÿÿ(twarnpy3ksAthe class UserString.MutableString has been removed in Python 3.0t stackleveli(twarningsReR(RRRe((s"/usr/lib64/python2.7/UserString.pyR”s cCs\t|tƒrét|tƒr*|j}nt|tƒsHt|ƒ}n|jt|jƒƒ\}}}|dkr |d|d}}|ddd…}n|dkr¸td‚nt ||ƒ}|j| ||j||_no|dkr |t|jƒ7}n|dks,|t|jƒkr5t ‚n|j| ||j|d|_dS(Niÿÿÿÿis"invalid step in slicing assignmenti( RtsliceRRRRtindicesRt TypeErrortmint IndexError(RRR0R"tstoptstep((s"/usr/lib64/python2.7/UserString.pyt __setitem__s$ !   " ! cCst|tƒr™|jt|jƒƒ\}}}|dkrT|d|d}}n|dkrltd‚nt||ƒ}|j| |j||_nk|dkr»|t|jƒ7}n|dksÜ|t|jƒkråt‚n|j| |j|d|_dS(Niÿÿÿÿis invalid step in slicing deletioni(RRhRiRRRjRkRl(RRR"RmRn((s"/usr/lib64/python2.7/UserString.pyt __delitem__²s!    ! cCs¬t|dƒ}t|dƒ}t|tƒrR|j| |j|j||_nVt|tƒrƒ|j| ||j||_n%|j| t|ƒ|j||_dS(Ni(R!RRRRR(RR"R#R0((s"/usr/lib64/python2.7/UserString.pyt __setslice__Ás%"cCs=t|dƒ}t|dƒ}|j| |j||_dS(Ni(R!R(RR"R#((s"/usr/lib64/python2.7/UserString.pyt __delslice__ÉscCs t|jƒS(N(RR(R((s"/usr/lib64/python2.7/UserString.pyt immutableÌscCs^t|tƒr$|j|j7_n6t|tƒrE|j|7_n|jt|ƒ7_|S(N(RRRRR(RR%((s"/usr/lib64/python2.7/UserString.pyt__iadd__Îs cCs|j|9_|S(N(R(RR(((s"/usr/lib64/python2.7/UserString.pyt__imul__ÖscCs||||+dS(N((RRtvalue((s"/usr/lib64/python2.7/UserString.pytinsertÙsN(R_R`t__doc__RRdRRoRpRqRrRsRtRuRw(((s"/usr/lib64/python2.7/UserString.pyR…s        t__main__is-q(t test_supports test.test_(RxRbt collectionst__all__tSequenceRtMutableSequenceRR_tostpathRStargvt called_in_dirt called_astsplitexttpyttestRztverboset __import__RE(((s"/usr/lib64/python2.7/UserString.pyts   xW