ó
Nä²Wc           @@  sÀ  d  d l  m Z d  d l Z d  d l Z e j d  d k rb e e e e f \ Z Z	 Z
 Z e Z n$ e e e e f \ Z Z	 Z
 Z e Z e
 ƒ  Z e ƒ  Z e j Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d „  Z d e
 f d „  ƒ  YZ d „  Z i d d 6d d 6d d 6d d 6d d 6d d 6d d 6j Z d) e e  e e! d! ƒ ƒ ƒ Z" d" „  Z# d# „  Z$ e$ ƒ  Z% d$ „  Z& d% „  Z' d& d' „ Z( d( „  Z) d S(*   i    (   t   absolute_importNi   t   UnicodeLiteralBuilderc           B@  s_   e  Z d  Z d „  Z d „  Z e j d k r9 d „  Z n	 d „  Z d „  Z d „  Z	 d „  Z
 RS(	   s   Assemble a unicode string.
    c         C@  s   g  |  _  d  S(   N(   t   chars(   t   self(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   __init__   s    c         C@  s\   t  | t ƒ r! | j d ƒ } n  t  | t ƒ sH t t t | ƒ ƒ ƒ ‚ |  j j | ƒ d  S(   Nt   ASCII(	   t
   isinstancet   _bytest   decodet   _unicodet   AssertionErrort   strt   typeR   t   append(   R   t
   characters(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR      s    'iÿÿ  c         C@  so   | d k rU | d 8} |  j  j t | d d ƒ ƒ |  j  j t | d d ƒ ƒ n |  j  j t | ƒ ƒ d  S(   Niÿÿ  i   i   i Ø  i Ü  (   R   R   t   _unichr(   R   t   char_number(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   append_charval%   s
    
!c         C@  s   |  j  j t | ƒ ƒ d  S(   N(   R   R   R   (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   /   s    c         C@  s   |  j  | ƒ d  S(   N(   R   (   R   R   t   escape_string(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   append_uescape2   s    c         C@  s   t  d j |  j ƒ ƒ S(   Nu    (   t   EncodedStringt   joinR   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt	   getstring5   s    c         C@  s   d  |  j ƒ  f S(   N(   t   NoneR   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt
   getstrings8   s    (   t   __name__t
   __module__t   __doc__R   R   t   syst
   maxunicodeR   R   R   R   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR      s   		
			t   BytesLiteralBuilderc           B@  sM   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   s*   Assemble a byte string or char value.
    c         C@  s   g  |  _  | |  _ d  S(   N(   R   t   target_encoding(   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   ?   s    	c         C@  s_   t  | t ƒ r$ | j |  j ƒ } n  t  | t ƒ sK t t t | ƒ ƒ ƒ ‚ |  j j	 | ƒ d  S(   N(
   R   R	   t   encodeR   R   R
   R   R   R   R   (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   C   s    'c         C@  s#   |  j  j t | ƒ j d ƒ ƒ d  S(   Ns
   ISO-8859-1(   R   R   R   R    (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   I   s    c         C@  s   |  j  | ƒ d  S(   N(   R   (   R   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   L   s    c         C@  s   t  t |  j ƒ |  j ƒ S(   N(   t   bytes_literalt
   join_bytesR   R   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   O   s    c         C@  s
   |  j  ƒ  S(   N(   R   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   getcharS   s    c         C@  s   |  j  ƒ  d  f S(   N(   R   R   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   W   s    (
   R   R   R   R   R   R   R   R   R#   R   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   <   s   						t   StrLiteralBuilderc           B@  s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sD   Assemble both a bytes and a unicode representation of a string.
    c         C@  s   t  | ƒ |  _ t ƒ  |  _ d  S(   N(   R   R   R   R	   (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   ]   s    c         C@  s$   |  j  j | ƒ |  j j | ƒ d  S(   N(   R   R   R	   (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   a   s    c         C@  s$   |  j  j | ƒ |  j j | ƒ d  S(   N(   R   R   R	   (   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   e   s    c         C@  s$   |  j  j | ƒ |  j j | ƒ d  S(   N(   R   R   R	   R   (   R   R   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   i   s    c         C@  s   |  j  j ƒ  |  j j ƒ  f S(   N(   R   R   R	   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   m   s    (   R   R   R   R   R   R   R   R   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR$   Z   s   				R   c           B@  sJ   e  Z d Z d  „  Z d „  Z d „  Z e d „  ƒ Z d „  Z	 d „  Z
 RS(   c         C@  s   |  S(   N(    (   R   t   memo(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   __deepcopy__w   s    c         C@  s%   |  j  d  k	 s t ‚ |  j |  j  ƒ S(   N(   t   encodingR   R
   R    (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt
   byteencodez   s    c         C@  s"   |  j  d  k s t ‚ |  j d ƒ S(   Ns   UTF-8(   R'   R   R
   R    (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt
   utf8encode~   s    c         C@  s   |  j  d  k S(   N(   R'   R   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt
   is_unicode‚   s    c         C@  s
   t  |  ƒ S(   N(   t   string_contains_surrogates(   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   contains_surrogates†   s    c         C@  s   t  |  j ƒ  d ƒ S(   Nt   utf8(   R!   R)   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   as_utf8_string‰   s    N(   R   R   R   R'   R&   R(   R)   t   propertyR*   R,   R.   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR   q   s   				c         C@  sN   xG t  t |  ƒ D]6 } | d k r& t Sd | k o= d k n r t Sq Wt S(   së   
    Check if the unicode string contains surrogate code points
    on a CPython platform with wide (UCS-4) or narrow (UTF-16)
    Unicode, i.e. characters that would be spelled as two
    separate code units on a narrow platform.
    iÿÿ  i Ø  iÿß  (   t   mapt   ordt   Truet   False(   t   ustringt   c(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR+      s    t   BytesLiteralc           B@  sA   e  Z d Z d  „  Z d „  Z d „  Z d „  Z e Z	 d „  Z
 RS(   c         C@  s   |  S(   N(    (   R   R%   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR&       s    c         C@  s*   t  r t |  ƒ S|  j d ƒ j d ƒ Sd  S(   Ns
   ISO-8859-1(   t
   IS_PYTHON3R   R   R    (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR(   £   s    
c         C@  s   t  s t d |  ƒ ‚ d  S(   Ns    this is not a unicode string: %r(   R3   R
   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR)   ª   s    c         C@  s   |  j  d ƒ S(   sc   Fake-decode the byte string to unicode to support %
        formatting of unicode strings.
        s
   ISO-8859-1(   R   (   R   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   __str__­   s    c         C@  s   t  t |  ƒ ƒ } d | S(   Ns   "%s"(   t   split_string_literalt   escape_byte_string(   R   t   value(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   as_c_string_literalµ   s    N(   R   R   R   R'   R&   R(   R)   R8   R3   R*   R<   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR6   œ   s   				c         C@  s.   t  |  t ƒ s t ‚ t |  ƒ }  | |  _ |  S(   N(   R   t   bytesR
   R6   R'   (   t   sR'   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR!   º   s    	u   s   \au   s   \bu   s   \fu   
s   \nu   s   \ru   	s   \tu   s   \vs   \s   ??t   "i    c         C@  sk   |  d k r t  |  ƒ d d !S|  d k r- d S|  d k r= d Sd j g  |  D] } d	 t | ƒ ^ qJ ƒ Sd  S(
   Ns   
	i   iÿÿÿÿR?   s   \"s   \s   \\t    s   \%03o(   t   reprR   R1   (   R>   R5   (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   _to_escape_sequenceÎ   s    c          @  sË   g  }  i  ‰ xo t  D]g } d j g  | D] } d | j d d ƒ ^ q& ƒ } |  j | ƒ t | ƒ j d ƒ ˆ | j d ƒ <q Wt j d d j |  ƒ j d ƒ ƒ j ‰ ‡ f d †  ‰  ‡  ‡ f d	 †  } | S(
   NR@   s   [%s]s   \s   \\R   s   (%s)t   |c         @  s   ˆ  |  j  d ƒ S(   Ni   (   t   group(   t   m(   t   replacements(    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   replace_specialsâ   s    c         @  s   ˆ ˆ  |  ƒ S(   N(    (   R>   (   RG   t   sub(    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   replaceä   s    (	   t
   _c_specialR   RI   R   RB   R    t   ret   compileRH   (   t   subexpst   specialR5   t   regexpRI   (    (   RG   RF   RH   sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   _build_specials_replacerÚ   s    2&(c         C@  sy   t  r |  j d ƒ }  n  |  d k r5 t |  ƒ d d !S|  d k rE d St |  ƒ } | d k  si | d k rq d	 | S|  Sd  S(
   Ns
   ISO-8859-1s   
	\i   iÿÿÿÿt   's   \'i    i   s   \x%02X(   R7   R   RA   R1   (   R5   t   n(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   escape_charë   s    c         C@  s  t  |  ƒ }  y |  j d ƒ SWn t k
 r0 n Xt r¡ t ƒ  } | j | j } } x> |  D]6 } | d k r† | d | j d ƒ ƒ qZ | | ƒ qZ W| j d ƒ Sg  } | j } xA |  D]9 } t | ƒ } | d k ræ | d | ƒ q· | | ƒ q· Wt	 | ƒ j d ƒ Sd S(   s×   Escape a byte string so that it can be written into C code.
    Note that this returns a Unicode string instead which, when
    encoded as ISO-8859-1, will result in the correct byte sequence
    being written.
    R   i€   s   \%3os
   ISO-8859-1N(
   t   _replace_specialsR   t   UnicodeDecodeErrorR7   t	   bytearrayR   t   extendR    R1   R"   (   R>   t   s_newR   RW   t   bt   lR5   t   o(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR:   ù   s*    		iÐ  c         C@  s  t  |  ƒ | k  r |  Sd } g  } x× | t  |  ƒ k  rû | | } t  |  ƒ | d k rÞ d |  | d | !k rÞ | d |  | d | !j d ƒ 8} xK |  | d d k rÚ | d 8} | | k r“ | | | d d } Pq“ q“ Wn  | j |  | | !ƒ | } q% Wd j | ƒ Sd  S(   Ni    i   s   \i   i   s   ""(   t   lent   findR   R   (   R>   t   limitt   startt   chunkst   end(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyR9     s     
-"

c         C@  s…  t  t t |  ƒ ƒ d g }  t j d k r£ g  |  } } x|  D]] } | d k r t | d d ƒ \ } } | j | d ƒ | j | d ƒ q? | j | ƒ q? WnŸ |  g  } } x |  D]‡ } d | k oÔ d k n r1| r1d | d k oú d k n r1| d | } } | d	 @d
 >| d	 @d | d <q· | j | ƒ q· W| | k rWg  } n  d j t t | ƒ ƒ d j t t | ƒ ƒ f S(   sB   Create Py_UNICODE[] representation of a given unicode string.
    i    i   i   i Ø  i Ü  iÿß  iÿÿÿÿiÿÛ  iÿ  i
   t   ,(	   t   listR0   R1   R   R   t   divmodR   R   R	   (   R>   t   utf16t   utf32t
   code_pointt   hight   lowt	   code_unit(    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   encode_pyunicode_string-  s$    B!	(   s   \s   ??R?   (*   t
   __future__R    RK   R   t   version_infoR   R=   t   chrR	   t   _strR   R   R2   R7   t   unicodet   unichrR3   t   empty_bytest   empty_unicodeR   R"   t   objectR   R   R$   R   R+   R6   R!   t   gett   char_from_escape_sequencet   tupleR0   t   rangeRJ   RB   RP   RT   RS   R:   R9   Rk   (    (    (    sA   /bar/jli/Chip-seq/script/cython/Cython/Compiler/StringEncoding.pyt   <module>   sB   				%							