B
b�`� � @ sL d dgZ ddlmZmZ ddlZddlZG dd� de�ZG dd � d e�ZdS )�Reader�ReaderError� )� YAMLError�Mark� Nc @ s e Zd Zdd� Zdd� ZdS )r c C s" || _ || _|| _|| _|| _d S )N)�name� character�position�encoding�reason)�selfr r r r
r � r
�>/opt/alt/python37/lib64/python3.7/site-packages/yaml/reader.py�__init__ s
zReaderError.__init__c C sH t | jt�r,d| jt| j�| j| j| jf S d| j| j| j| jf S d 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 zReaderError.__str__N)�__name__�
__module__�__qualname__r r r
r
r
r r s c @ sf e Zd Zdd� Zddd�Zddd�Zdd d
�Zdd� Zd
d� Ze �
d�Zdd� Zdd� Z
ddd�ZdS )r c C s� d | _ d | _d| _d| _d| _d| _d | _d | _d | _d| _ d| _
d| _t|t
�rnd| _ | �|� |d | _nHt|t�r�d| _ || _| �� n(|| _t|dd�| _ d | _d | _| �� d S )
Nr T� z� z
r zF)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
zReader.__init__r c C sD y| j | j| S tk
r> | �|d � | j | j| S X d S )Nr )r r �
IndexError�update)r r r
r
r �peekW s
zReader.peekr c C s4 | j | t| j�kr| �|� | j| j | j | � S )N)r �lenr r( )r �lengthr
r
r �prefix^ s
z
Reader.prefixc C s� | j | d t| j�kr&| �|d � x�|r�| j| j }| j d7 _ | jd7 _|dkst|dkr�| j| j dkr�| jd7 _d| _n|dkr�| jd7 _|d8 }q(W d S )Nr u
�
�
r u )r r* r r( r r! r" )r r+ Zchr
r
r �forwardc s zReader.forwardc C sF | j d kr(t| j| j| j| j| j| j�S t| j| j| j| jd d �S d S )N)r r r r r! r" r r )r r
r
r �get_markr s
zReader.get_markc C s� x*| j s*| jd ks t| j�dk r*| �� qW t| jt�r�| j�tj�rVtj | _
d| _n,| j�tj�rttj
| _
d| _ntj| _
d| _| �d� d S )N� z utf-16-lez utf-16-bezutf-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 zReader.determine_encodingu! [^
-~
--�𐀀-]c C sP | j �|�}|rL|�� }| jt| j�| j |�� }t| j |t
|�dd��d S )NZunicodez"special characters are not allowed)�
NON_PRINTABLE�search�groupr r* r r �startr r r )r �data�matchr r r
r
r r$ � s zReader.check_printablec
C s6 | j d krd S | j| jd � | _d| _�xt| j�|k �r0| jsH| �� | jd k r�y| �| j d| j�\}}W q� tk
r� } zN| j |j }| j d k r�| j
t| j � |j }n|j}t| j|||j
|j��W d d }~X Y q�X n| j }t|�}| �|� | j|7 _| j |d � | _ | jr*| jd7 _d | _ P q*W d 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.update� c C sL | j �|�}| jd kr|| _n| j|7 _| jt|�7 _|sHd| _d S )NT)r �readr r r* r )r �sizer> r
r
r r2 � s
zReader.update_rawN)r )r )r )rC )r r r r r) r, r/ r0 r% �re�compiler: r$ r( r2 r
r
r
r r - s
) �__all__�errorr r r4 rF r �objectr r
r
r
r � s