
0V                 @   sj   d  d g Z  d d l m Z m Z d d l Z d d l Z Gd d   d e  Z Gd d    d  e  Z d S)ReaderReaderError   )	YAMLErrorMark    Nc               @   s(   e  Z d  Z d d   Z d d   Z d S)r   c             C   s1   | |  _  | |  _ | |  _ | |  _ | |  _ d  S)N)name	characterpositionencodingreason)selfr   r	   r   r
   r    r   -/usr/lib/python3/dist-packages/yaml/reader.py__init__   s
    				zReaderError.__init__c             C   sb   t  |  j t  r> d |  j t |  j  |  j |  j |  j f Sd |  j |  j |  j |  j f Sd  S)Nz>'%s' codec can't decode byte #x%02x: %s
  in "%s", position %dz8unacceptable character #x%04x: %s
  in "%s", position %d)
isinstancer   bytesr
   ordr   r   r	   )r   r   r   r   __str__!   s    zReaderError.__str__N)__name__
__module____qualname__r   r   r   r   r   r   r      s   c               @   s   e  Z d  Z d d   Z d d d  Z d d d  Z d d	 d
  Z d d   Z d d   Z e	 j
 d  Z d d   Z d d   Z d d d  Z d S)r   c             C   s  d  |  _  d  |  _ d |  _ d |  _ d |  _ d |  _ d  |  _ d  |  _ d  |  _ d |  _	 d |  _
 d |  _ t | t  r d |  _  |  j |  | d |  _ nh t | t  r d |  _  | |  _ |  j   n: | |  _ t | d d  |  _  d	 |  _ d  |  _ |  j   d  S)
Nr   T z<unicode string> z<byte string>r   z<file>F)r   streamstream_pointereofbufferpointer
raw_buffer
raw_decoder
   indexlinecolumnr   strcheck_printabler   determine_encodinggetattr)r   r   r   r   r   r   ;   s2    																		zReader.__init__r   c             C   sR   y |  j  |  j | SWn5 t k
 rM |  j | d  |  j  |  j | SYn Xd  S)Nr   )r   r   
IndexErrorupdate)r   r    r   r   r   peekW   s
    zReader.peekr   c             C   sD   |  j  | t |  j  k r) |  j |  |  j |  j  |  j  |  S)N)r   lenr   r(   )r   lengthr   r   r   prefix^   s    zReader.prefixc             C   s   |  j  | d t |  j  k r1 |  j | d  x | r |  j |  j  } |  j  d 7_  |  j d 7_ | d k s | d k r |  j |  j  d k r |  j d 7_ d |  _ n | d k r |  j d 7_ | d 8} q4 Wd  S)Nr   u	   
  
r   u   ﻿)r   r*   r   r(   r    r!   r"   )r   r+   Zchr   r   r   forwardc   s     	"zReader.forwardc             C   sc   |  j  d  k r: t |  j |  j |  j |  j |  j |  j  St |  j |  j |  j |  j d  d   Sd  S)N)r   r   r   r    r!   r"   r   r   )r   r   r   r   get_markr   s
    zReader.get_markc             C   s   x< |  j  r> |  j d  k s1 t |  j  d k  r> |  j   q Wt |  j t  r |  j j t j  r~ t j	 |  _
 d |  _ nB |  j j t j  r t j |  _
 d |  _ n t j |  _
 d |  _ |  j d  d  S)N   z	utf-16-lez	utf-16-bezutf-8r   )r   r   r*   
update_rawr   r   
startswithcodecsBOM_UTF16_LEutf_16_le_decoder   r
   BOM_UTF16_BEutf_16_be_decodeutf_8_decoder(   )r   r   r   r   r%   z   s    1	zReader.determine_encodingu!   [^	
 -~ -퟿-�𐀀-􏿿]c             C   sp   |  j  j |  } | rl | j   } |  j t |  j  |  j | j   } t |  j	 | t
 |  d d   d  S)NZunicodez"special characters are not allowed)NON_PRINTABLEsearchgroupr    r*   r   r   startr   r   r   )r   datamatchr   r	   r   r   r   r$      s    'zReader.check_printablec             C   s  |  j  d  k r d  S|  j |  j d   |  _ d |  _ x]t |  j  | k  r|  j s` |  j   |  j d  k	 r(y% |  j |  j  d |  j  \ } } Wq=t k
 r$} zn |  j  | j } |  j	 d  k	 r |  j
 t |  j   | j } n	 | j } t |  j | | | j | j   WYd  d  } ~ Xq=Xn |  j  } t |  } |  j |  |  j | 7_ |  j  | d   |  _  |  j r8 |  j d 7_ d  |  _  Pq8 Wd  S)Nr   strictr   )r   r   r   r*   r   r2   r   UnicodeDecodeErrorr=   r   r   r   r   r
   r   r$   )r   r+   r>   Z	convertedexcr   r	   r   r   r   r(      s6    		
 	(			zReader.updatei   c             C   sd   |  j  j |  } |  j d  k r- | |  _ n |  j | 7_ |  j t |  7_ | s` d |  _ d  S)NT)r   readr   r   r*   r   )r   sizer>   r   r   r   r2      s    zReader.update_rawN)r   r   r   r   r)   r,   r/   r0   r%   recompiler:   r$   r(   r2   r   r   r   r   r   -   s   )	__all__errorr   r   r4   rE   r   objectr   r   r   r   r   <module>   s   