ó
è¾bc           @   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__   t    c         C   s   t  |  j ƒ S(   N(   t   reprR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __repr__   R
   c         C   s   t  |  j ƒ S(   N(   t   intR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __int__   R
   c         C   s   t  |  j ƒ S(   N(   t   longR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __long__   R
   c         C   s   t  |  j ƒ S(   N(   t   floatR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt	   __float__   R
   c         C   s   t  |  j ƒ S(   N(   t   complexR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __complex__   R
   c         C   s   t  |  j ƒ S(   N(   t   hashR   (   R   (    (    s    /usr/lib/python2.7/UserString.pyt   __hash__   R
   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__%   R
   c         C   s   |  j  |  j | ƒ S(   N(   t	   __class__R   (   R   t   index(    (    s    /usr/lib/python2.7/UserString.pyt   __getitem__&   R
   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,   >   R
   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.pyR1   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   R2   R3   (    (    s    /usr/lib/python2.7/UserString.pyR4   K   s
    c         C   s   |  j  j | | | ƒ S(   N(   R   t   endswith(   R   t   suffixR"   R#   (    (    s    /usr/lib/python2.7/UserString.pyR5   S   s    i   c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t
   expandtabs(   R   t   tabsize(    (    s    /usr/lib/python2.7/UserString.pyR7   U   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   find(   R   R0   R"   R#   (    (    s    /usr/lib/python2.7/UserString.pyR9   W   s    c         C   s   |  j  j | | | ƒ S(   N(   R   R   (   R   R0   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.pyR:   [   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   isalnum(   R   (    (    s    /usr/lib/python2.7/UserString.pyR;   \   R
   c         C   s   |  j  j ƒ  S(   N(   R   t	   isdecimal(   R   (    (    s    /usr/lib/python2.7/UserString.pyR<   ]   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   isdigit(   R   (    (    s    /usr/lib/python2.7/UserString.pyR=   ^   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   islower(   R   (    (    s    /usr/lib/python2.7/UserString.pyR>   _   R
   c         C   s   |  j  j ƒ  S(   N(   R   t	   isnumeric(   R   (    (    s    /usr/lib/python2.7/UserString.pyR?   `   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   isspace(   R   (    (    s    /usr/lib/python2.7/UserString.pyR@   a   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   istitle(   R   (    (    s    /usr/lib/python2.7/UserString.pyRA   b   R
   c         C   s   |  j  j ƒ  S(   N(   R   t   isupper(   R   (    (    s    /usr/lib/python2.7/UserString.pyRB   c   R
   c         C   s   |  j  j | ƒ S(   N(   R   t   join(   R   R   (    (    s    /usr/lib/python2.7/UserString.pyRC   d   R
   c         G   s   |  j  |  j j | | Œ ƒ S(   N(   R   R   t   ljust(   R   R.   R*   (    (    s    /usr/lib/python2.7/UserString.pyRD   e   s    c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   lower(   R   (    (    s    /usr/lib/python2.7/UserString.pyRE   g   R
   c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   lstrip(   R   t   chars(    (    s    /usr/lib/python2.7/UserString.pyRF   h   R
   c         C   s   |  j  j | ƒ S(   N(   R   t	   partition(   R   t   sep(    (    s    /usr/lib/python2.7/UserString.pyRH   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.pyRJ   k   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   rfind(   R   R0   R"   R#   (    (    s    /usr/lib/python2.7/UserString.pyRN   m   s    c         C   s   |  j  j | | | ƒ S(   N(   R   t   rindex(   R   R0   R"   R#   (    (    s    /usr/lib/python2.7/UserString.pyRO   o   s    c         G   s   |  j  |  j j | | Œ ƒ S(   N(   R   R   t   rjust(   R   R.   R*   (    (    s    /usr/lib/python2.7/UserString.pyRP   q   s    c         C   s   |  j  j | ƒ S(   N(   R   t
   rpartition(   R   RI   (    (    s    /usr/lib/python2.7/UserString.pyRQ   s   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   rstrip(   R   RG   (    (    s    /usr/lib/python2.7/UserString.pyRR   u   R
   c         C   s   |  j  j | | ƒ S(   N(   R   t   split(   R   RI   RM   (    (    s    /usr/lib/python2.7/UserString.pyRS   v   s    c         C   s   |  j  j | | ƒ S(   N(   R   t   rsplit(   R   RI   RM   (    (    s    /usr/lib/python2.7/UserString.pyRT   x   s    c         C   s   |  j  j | ƒ S(   N(   R   t
   splitlines(   R   t   keepends(    (    s    /usr/lib/python2.7/UserString.pyRU   z   R
   c         C   s   |  j  j | | | ƒ S(   N(   R   t
   startswith(   R   t   prefixR"   R#   (    (    s    /usr/lib/python2.7/UserString.pyRW   {   s    c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   strip(   R   RG   (    (    s    /usr/lib/python2.7/UserString.pyRY   }   R
   c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   swapcase(   R   (    (    s    /usr/lib/python2.7/UserString.pyRZ   ~   R
   c         C   s   |  j  |  j j ƒ  ƒ S(   N(   R   R   t   title(   R   (    (    s    /usr/lib/python2.7/UserString.pyR[      R
   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]   ‚   R
   c         C   s   |  j  |  j j | ƒ ƒ S(   N(   R   R   t   zfill(   R   R.   (    (    s    /usr/lib/python2.7/UserString.pyR^   ƒ   R
   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   NoneR1   R4   R5   R7   R9   R   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RH   RJ   RN   RO   RP   RQ   RR   RS   RT   RU   RW   RY   RZ   R[   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.R
   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   R0   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#   R0   (    (    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   Rd   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   Rb   t   collectionst   __all__t   SequenceR    t   MutableSequenceR   R_   t   ost   pathRS   t   argvt   called_in_dirt	   called_ast   splitextt   pyt   testRz   t   verboset
   __import__RE   (    (    (    s    /usr/lib/python2.7/UserString.pyt   <module>   s   xW