U
    9%e                     @   sL   d dgZ ddlmZmZ ddlZddlZG dd deZG d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   s"   || _ || _|| _|| _|| _d S N)name	characterpositionencodingreason)selfr   r
   r	   r   r    r   J/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/yaml/reader.py__init__   s
    zReaderError.__init__c                 C   sH   t | jtr,d| jt| j| j| j| jf S d| j| j| j| jf 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      zReaderError.__str__N)__name__
__module____qualname__r   r   r   r   r   r   r      s   c                   @   sf   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	
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rnd| _ | | |d | _nHt|trd| _ || _|   n(|| _t|dd| _ d	| _d | _|   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   sJ   z| j | j|  W S  tk
rD   | |d  | j | j|   Y S X d S )Nr   )r   r   
IndexErrorupdate)r   r"   r   r   r   peekW   s
    zReader.peekr   c                 C   s4   | j | t| jkr| | | j| j | j |  S r   )r   lenr   r*   )r   lengthr   r   r   prefix^   s    
zReader.prefixc                 C   s   | j | d t| jkr&| |d  |r| j| j  }|  j d7  _ |  jd7  _|dksr|dkr| j| j  dkr|  jd7  _d| _n|dkr|  jd7  _|d8 }q&d S )Nr   u	   
  
r   u   ﻿)r   r,   r   r*   r"   r#   r$   )r   r-   chr   r   r   forwardc   s     zReader.forwardc                 C   sF   | j d kr(t| j| j| j| j| j| jS t| j| j| j| jd d S d S r   )r   r   r   r"   r#   r$   r   r   r   r   r   r   get_markr   s    
  zReader.get_markc                 C   s   | j s(| jd kst| jdk r(|   q t| jtr~| jtjrRtj	| _
d| _n,| jtjrptj| _
d| _ntj| _
d| _| 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    
zReader.determine_encodingu!   [^	
 -~ -퟿-�𐀀-􏿿]c                 C   sP   | j |}|rL| }| jt| j| j  |  }t| j	|t
|ddd S )N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   s2  | j d krd S | j| jd  | _d| _t| j|k r.| jsD|   | jd k	rz| | j d| j\}}W q tk
r } zN| j |j }| j	d k	r| j
t| j  |j }n|j}t| j|||j|jW 5 d }~X Y qX n| j }t|}| | |  j|7  _| j |d  | _ | jr&|  jd7  _d | _ q.q&d S )Nr   strictr   )r    r   r   r,   r   r5   r!   UnicodeDecodeErrorrA   r   r   r   r   r   r   r&   )r   r-   rB   Z	convertedexcr	   r
   r   r   r   r*      s>    

 

 
zReader.update   c                 C   sL   | j |}| jd kr|| _n|  j|7  _|  jt|7  _|sHd| _d S )NT)r   readr    r   r,   r   )r   sizerB   r   r   r   r5      s    
zReader.update_rawN)r   )r   )r   )rG   )r   r   r   r   r+   r.   r2   r3   r'   recompiler>   r&   r*   r5   r   r   r   r   r   -   s   



)	__all__errorr   r   r7   rJ   r   objectr   r   r   r   r   <module>   s   