ó
HÞ	Pc           @   sô   d  Z  d d l Z d d l Z d d g Z d e j f d „  ƒ  YZ d e e j f d „  ƒ  YZ e d k rð d d l	 Z	 e	 j
 j e j d ƒ \ Z Z e	 j
 j e ƒ \ Z Z d	 e j k rÙ d d
 l m Z d e _ n  e d e j ƒ  ƒ n  d S(   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   MutableStringc           B   so  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e Z d „  Z d „  Z d „  Z d e j d „ Z d; d; d „ Z d; d; d „ Z d e j d „ Z d d „ Z d e j d „ Z d e j d „ Z d „  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. d e j d, „ Z/ d e j d- „ Z0 d. „  Z1 d/ „  Z2 d; d0 „ Z3 d; d* d1 „ Z4 d; d* d2 „ Z5 d d3 „ Z6 d e j d4 „ Z7 d; d5 „ Z8 d6 „  Z9 d7 „  Z: d8 „  Z; d9 „  Z< d: „  Z= RS(<   c         C   sM   t  | t ƒ r | |  _ n. t  | t ƒ r: | j |  _ n t | ƒ |  _ d  S(   N(   t
   isinstancet
   basestringt   dataR    t   str(   t   selft   seq(    (    s    /usr/lib/python2.7/UserString.pyt   __init__   s
    c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __str__   s    c         C   s   t  |  j ƒ S(   N(   t   reprR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __repr__   s    c         C   s   t  |  j ƒ S(   N(   t   intR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __int__   s    c         C   s   t  |  j ƒ S(   N(   t   longR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __long__   s    c         C   s   t  |  j ƒ S(   N(   t   floatR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt	   __float__   s    c         C   s   t  |  j ƒ S(   N(   t   complexR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __complex__   s    c         C   s   t  |  j ƒ S(   N(   t   hashR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __hash__   s    c         C   s6   t  | t ƒ r" t |  j | j ƒ St |  j | ƒ Sd  S(   N(   R   R    t   cmpR   (   R   t   string(    (    s    /usr/lib/python2.7/UserString.pyt   __cmp__   s    c         C   s   | |  j  k S(   N(   R   (   R   t   char(    (    s    /usr/lib/python2.7/UserString.pyt   __contains__"   s    c         C   s   t  |  j ƒ S(   N(   t   lenR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __len__%   s    c         C   s   |  j  |  j | ƒ S(   N(   t	   __class__R   (   R   t   index(    (    s    /usr/lib/python2.7/UserString.pyt   __getitem__&   s    c         C   s5   t  | d ƒ } t  | d ƒ } |  j |  j | | !ƒ S(   Ni    (   t   maxR   R   (   R   t   startt   end(    (    s    /usr/lib/python2.7/UserString.pyt   __getslice__'   s     c         C   sg   t  | t ƒ r& |  j |  j | j ƒ St  | t ƒ rI |  j |  j | ƒ S|  j |  j t | ƒ ƒ Sd  S(   N(   R   R    R   R   R   R   (   R   t   other(    (    s    /usr/lib/python2.7/UserString.pyt   __add__+   s
    c         C   sA   t  | t ƒ r# |  j | |  j ƒ S|  j t | ƒ |  j ƒ Sd  S(   N(   R   R   R   R   R   (   R   R$   (    (    s    /usr/lib/python2.7/UserString.pyt   __radd__2   s    c         C   s   |  j  |  j | ƒ S(   N(   R   R   (   R   t   n(    (    s    /usr/lib/python2.7/UserString.pyt   __mul__7   s    c         C   s   |  j  |  j | ƒ S(   N(   R   R   (   R   t   args(    (    s    /usr/lib/python2.7/UserString.pyt   __mod__:   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t
   capitalize(   R   (    (    s    /usr/lib/python2.7/UserString.pyR+   >   s    c         G   s   |  j  |  j j | | Œ ƒ S(   N(   R   R   t   center(   R   t   widthR)   (    (    s    /usr/lib/python2.7/UserString.pyR,   ?   s    i    c         C   s   |  j  j | | | ƒ S(   N(   R   t   count(   R   t   subR!   R"   (    (    s    /usr/lib/python2.7/UserString.pyR.   A   s    c         C   s^   | rD | r( |  j  |  j j | | ƒ ƒ S|  j  |  j j | ƒ ƒ Sn |  j  |  j j ƒ  ƒ Sd  S(   N(   R   R   t   decode(   R   t   encodingt   errors(    (    s    /usr/lib/python2.7/UserString.pyR0   C   s
    c         C   s^   | rD | r( |  j  |  j j | | ƒ ƒ S|  j  |  j j | ƒ ƒ Sn |  j  |  j j ƒ  ƒ Sd  S(   N(   R   R   t   encode(   R   R1   R2   (    (    s    /usr/lib/python2.7/UserString.pyR3   K   s
    c         C   s   |  j  j | | | ƒ S(   N(   R   t   endswith(   R   t   suffixR!   R"   (    (    s    /usr/lib/python2.7/UserString.pyR4   S   s    i   c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t
   expandtabs(   R   t   tabsize(    (    s    /usr/lib/python2.7/UserString.pyR6   U   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   find(   R   R/   R!   R"   (    (    s    /usr/lib/python2.7/UserString.pyR8   W   s    c         C   s   |  j  j | | | ƒ S(   N(   R   R   (   R   R/   R!   R"   (    (    s    /usr/lib/python2.7/UserString.pyR   Y   s    c         C   s   |  j  j ƒ  S(   N(   R   t   isalpha(   R   (    (    s    /usr/lib/python2.7/UserString.pyR9   [   s    c         C   s   |  j  j ƒ  S(   N(   R   t   isalnum(   R   (    (    s    /usr/lib/python2.7/UserString.pyR:   \   s    c         C   s   |  j  j ƒ  S(   N(   R   t	   isdecimal(   R   (    (    s    /usr/lib/python2.7/UserString.pyR;   ]   s    c         C   s   |  j  j ƒ  S(   N(   R   t   isdigit(   R   (    (    s    /usr/lib/python2.7/UserString.pyR<   ^   s    c         C   s   |  j  j ƒ  S(   N(   R   t   islower(   R   (    (    s    /usr/lib/python2.7/UserString.pyR=   _   s    c         C   s   |  j  j ƒ  S(   N(   R   t	   isnumeric(   R   (    (    s    /usr/lib/python2.7/UserString.pyR>   `   s    c         C   s   |  j  j ƒ  S(   N(   R   t   isspace(   R   (    (    s    /usr/lib/python2.7/UserString.pyR?   a   s    c         C   s   |  j  j ƒ  S(   N(   R   t   istitle(   R   (    (    s    /usr/lib/python2.7/UserString.pyR@   b   s    c         C   s   |  j  j ƒ  S(   N(   R   t   isupper(   R   (    (    s    /usr/lib/python2.7/UserString.pyRA   c   s    c         C   s   |  j  j | ƒ S(   N(   R   t   join(   R   R   (    (    s    /usr/lib/python2.7/UserString.pyRB   d   s    c         G   s   |  j  |  j j | | Œ ƒ S(   N(   R   R   t   ljust(   R   R-   R)   (    (    s    /usr/lib/python2.7/UserString.pyRC   e   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   lower(   R   (    (    s    /usr/lib/python2.7/UserString.pyRD   g   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   lstrip(   R   t   chars(    (    s    /usr/lib/python2.7/UserString.pyRE   h   s    c         C   s   |  j  j | ƒ S(   N(   R   t	   partition(   R   t   sep(    (    s    /usr/lib/python2.7/UserString.pyRG   i   s    iÿÿÿÿc         C   s   |  j  |  j j | | | ƒ ƒ S(   N(   R   R   t   replace(   R   t   oldt   newt   maxsplit(    (    s    /usr/lib/python2.7/UserString.pyRI   k   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   rfind(   R   R/   R!   R"   (    (    s    /usr/lib/python2.7/UserString.pyRM   m   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   rindex(   R   R/   R!   R"   (    (    s    /usr/lib/python2.7/UserString.pyRN   o   s    c         G   s   |  j  |  j j | | Œ ƒ S(   N(   R   R   t   rjust(   R   R-   R)   (    (    s    /usr/lib/python2.7/UserString.pyRO   q   s    c         C   s   |  j  j | ƒ S(   N(   R   t
   rpartition(   R   RH   (    (    s    /usr/lib/python2.7/UserString.pyRP   s   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   rstrip(   R   RF   (    (    s    /usr/lib/python2.7/UserString.pyRQ   u   s    c         C   s   |  j  j | | ƒ S(   N(   R   t   split(   R   RH   RL   (    (    s    /usr/lib/python2.7/UserString.pyRR   v   s    c         C   s   |  j  j | | ƒ S(   N(   R   t   rsplit(   R   RH   RL   (    (    s    /usr/lib/python2.7/UserString.pyRS   x   s    c         C   s   |  j  j | ƒ S(   N(   R   t
   splitlines(   R   t   keepends(    (    s    /usr/lib/python2.7/UserString.pyRT   z   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t
   startswith(   R   t   prefixR!   R"   (    (    s    /usr/lib/python2.7/UserString.pyRV   {   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   strip(   R   RF   (    (    s    /usr/lib/python2.7/UserString.pyRX   }   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   swapcase(   R   (    (    s    /usr/lib/python2.7/UserString.pyRY   ~   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   title(   R   (    (    s    /usr/lib/python2.7/UserString.pyRZ      s    c         G   s   |  j  |  j j | Œ  ƒ S(   N(   R   R   t	   translate(   R   R)   (    (    s    /usr/lib/python2.7/UserString.pyR[   €   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   upper(   R   (    (    s    /usr/lib/python2.7/UserString.pyR\   ‚   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   zfill(   R   R-   (    (    s    /usr/lib/python2.7/UserString.pyR]   ƒ   s    N(>   t   __name__t
   __module__R   R	   R   R   R   R   R   R   R   R   R   R   R#   R%   R&   R(   t   __rmul__R*   R+   R,   t   syst   maxintR.   t   NoneR0   R3   R4   R6   R8   R   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RG   RI   RM   RN   RO   RP   RQ   RR   RS   RT   RV   RX   RY   RZ   R[   R\   R]   (    (    (    s    /usr/lib/python2.7/UserString.pyR       sr   																																						c           B   sh   e  Z d  Z d d „ Z d Z d „  Z d „  Z d „  Z d „  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.t    c         C   s-   d d l  m } | d d d ƒ| |  _ d  S(   Niÿÿÿÿ(   t   warnpy3ksA   the class UserString.MutableString has been removed in Python 3.0t
   stackleveli   (   t   warningsRe   R   (   R   R   Re   (    (    s    /usr/lib/python2.7/UserString.pyR   ”   s    	c         C   s\  t  | t ƒ ré t  | t ƒ r* | j } n t  | t ƒ sH t | ƒ } n  | j t |  j ƒ ƒ \ } } } | d k r  | d | d } } | d  d  d … } n | d k r¸ t d ‚ n  t	 | | ƒ } |  j |  | |  j | |  _ no | d k  r| t |  j ƒ 7} n  | d k  s,| t |  j ƒ k r5t
 ‚ n  |  j |  | |  j | d |  _ d  S(   Niÿÿÿÿi   s"   invalid step in slicing assignmenti    (   R   t   sliceR    R   R   R   t   indicesR   t	   TypeErrort   mint
   IndexError(   R   R   R/   R!   t   stopt   step(    (    s    /usr/lib/python2.7/UserString.pyt   __setitem__   s$    !"! 	c         C   s  t  | t ƒ r™ | j t |  j ƒ ƒ \ } } } | d k rT | d | d } } n | d k rl t d ‚ n  t | | ƒ } |  j |  |  j | |  _ nk | d k  r» | t |  j ƒ 7} n  | d k  sÜ | t |  j ƒ k rå t ‚ n  |  j |  |  j | d |  _ d  S(   Niÿÿÿÿi   s    invalid step in slicing deletioni    (   R   Rh   Ri   R   R   Rj   Rk   Rl   (   R   R   R!   Rm   Rn   (    (    s    /usr/lib/python2.7/UserString.pyt   __delitem__²   s    !! 	c         C   s¬   t  | d ƒ } t  | d ƒ } t | t ƒ rR |  j |  | j |  j | |  _ nV t | t ƒ rƒ |  j |  | |  j | |  _ n% |  j |  t | ƒ |  j | |  _ d  S(   Ni    (   R    R   R    R   R   R   (   R   R!   R"   R/   (    (    s    /usr/lib/python2.7/UserString.pyt   __setslice__Á   s     %"c         C   s=   t  | d ƒ } t  | d ƒ } |  j |  |  j | |  _ d  S(   Ni    (   R    R   (   R   R!   R"   (    (    s    /usr/lib/python2.7/UserString.pyt   __delslice__É   s     c         C   s   t  |  j ƒ S(   N(   R    R   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt	   immutableÌ   s    c         C   s^   t  | t ƒ r$ |  j | j 7_ n6 t  | t ƒ rE |  j | 7_ n |  j t | ƒ 7_ |  S(   N(   R   R    R   R   R   (   R   R$   (    (    s    /usr/lib/python2.7/UserString.pyt   __iadd__Î   s    c         C   s   |  j  | 9_  |  S(   N(   R   (   R   R'   (    (    s    /usr/lib/python2.7/UserString.pyt   __imul__Ö   s    c         C   s   | |  | | +d  S(   N(    (   R   R   t   value(    (    s    /usr/lib/python2.7/UserString.pyt   insertÙ   s    N(   R^   R_   t   __doc__R   Rc   R   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rw   (    (    (    s    /usr/lib/python2.7/UserString.pyR   …   s   							t   __main__i    s   -q(   t   test_supports
   test.test_(   Rx   Ra   t   collectionst   __all__t   SequenceR    t   MutableSequenceR   R^   t   ost   pathRR   t   argvt   called_in_dirt	   called_ast   splitextt   pyt   testRz   t   verboset
   __import__RD   (    (    (    s    /usr/lib/python2.7/UserString.pyt   <module>   s   xW