a
    ܌xd&                     @   s~   d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZmZ ddgZG dd deZG dd dZdS )	    N)	YAMLErrorFileMark
StringMarkYAMLStreamError)RegExp)AnyDictOptionalListUnionTextTupler	   ReaderReaderErrorc                   @   s2   e Zd ZeeeeeddddZedddZdS )r   N)nameposition	characterencodingreasonreturnc                 C   s"   || _ || _|| _|| _|| _d S N)r   r   r   r   r   )selfr   r   r   r   r    r   J/var/www/html/Ranjet/env/lib/python3.9/site-packages/ruamel/yaml/reader.py__init__"   s
    zReaderError.__init__r   c                 C   sl   t | jtr@d| jdt| jdd| jd| jd| jd
S d| jd	d| jd| jd| jdS d S )
N'z' codec can't decode byte #x02xz: z
  in "z", position dzunacceptable character #xZ04x)
isinstancer   bytesr   ordr   r   r   r   r   r   r   __str__+   s    zReaderError.__str__)__name__
__module____qualname__r   r   r#   r   r   r   r   r   !   s   
	c                   @   sz  e Zd Zd1eeddddZddddZeeddd	Zejedd
dd	Zd2e	e
dddZd3e	edddZd4e	ddddZd5e	ddddZedddZddddZedZddeeedd  d!Zee
eeee	e
f  d"d#d$Zee
eee	e
f  d%d&d'Zee
eee	e
f  d%d(d)Zedd%d*d+Z e	ddd,d-Z!d6ee	 dd.d/d0Z"dS )7r   N)streamloaderr   c                 C   s<   || _ | j d ur*t| j dd d u r*| | j _|   || _d S )N_reader)r(   getattrr)   reset_readerr'   )r   r'   r(   r   r   r   r   G   s
    zReader.__init__r   c                 C   sF   d | _ d| _d| _d| _d| _d | _d | _d | _d| _d| _	d| _
d S )Nr   T )r   stream_pointereofbufferpointer
raw_buffer
raw_decoder   indexlinecolumnr"   r   r   r   r+   N   s    zReader.reset_readerc                 C   s(   z| j W S  ty"   tdY n0 d S )Nz"input stream needs to be specified)_streamAttributeErrorr   r"   r   r   r   r'   [   s    zReader.stream)valr   c                 C   s   |d u rd S d | _ t|tr8d| _| | |d | _n\t|trXd| _|| _|   n<t	|dsjt
d|| _ t| jdd| _d| _d | _|   d S )	Nz<unicode string> z<byte string>readz-stream argument needs to have a read() methodr   z<file>F)r6   r   strr   check_printabler/   r    r1   determine_encodinghasattrr   r*   r'   r.   )r   r8   r   r   r   r'   b   s$    




r   )r3   r   c                 C   sH   z| j | j|  W S  tyB   | |d  | j | j|   Y S 0 d S )N   )r/   r0   
IndexErrorupdate)r   r3   r   r   r   peekx   s
    zReader.peekr?   )lengthr   c                 C   s4   | j | t| jkr| | | j| j | j |  S r   )r0   lenr/   rA   )r   rC   r   r   r   prefix   s    
zReader.prefixc                 C   s   | j | d t| jkr&| |d  |dkr| j| j  }|  j d7  _ |  jd7  _|dv sv|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?   r   u	   
  
   ﻿r0   rD   r/   rA   r3   r4   r5   r   rC   chr   r   r   forward_1_1   s     zReader.forward_1_1c                 C   s   | j | d t| jkr&| |d  |dkr| j| j  }|  j d7  _ |  jd7  _|dksv|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?   r   rG   rF   rH   rI   rJ   r   r   r   forward   s     zReader.forwardc                 C   sB   | j d u r(t| j| j| j| j| j| jS t| j| j| j| jS d S r   )	r'   r   r   r3   r4   r5   r/   r0   r   r"   r   r   r   get_mark   s
    
zReader.get_markc                 C   s   | j s(| jd u 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.   r1   rD   
update_rawr   r    
startswithcodecsBOM_UTF16_LEutf_16_le_decoder2   r   BOM_UTF16_BEutf_16_be_decodeutf_8_decoderA   r"   r   r   r   r=      s    
zReader.determine_encodingu!   [^	
 -~ -퟿-�𐀀-􏿿]z	
r,          ascii)clsdatar   c                 C   s@   | d}|d | j}|s d S |d d }|||dfS )NrZ   r?   )encode	translate_printable_asciir3   decode)r[   r\   Zascii_bytesnon_printablesZnon_printabler   r   r   _get_non_printable_ascii   s    
zReader._get_non_printable_ascii)r\   r   c                 C   s(   | j |}t|sd S | | fS r   )NON_PRINTABLEsearchboolstartgroup)r[   r\   matchr   r   r   _get_non_printable_regex   s    zReader._get_non_printable_regexc                 C   s.   z|  |W S  ty(   | | Y S 0 d S r   )rb   UnicodeEncodeErrorri   )r[   r\   r   r   r   _get_non_printable   s    zReader._get_non_printablec                 C   sN   |  |}|d urJ|\}}| jt| j| j  | }t| j|t|ddd S )Nunicodez"special characters are not allowed)rk   r3   rD   r/   r0   r   r   r!   )r   r\   Znon_printable_matchrf   r   r   r   r   r   r<      s    
zReader.check_printablec              
   C   sV  | j d u rd S | j| jd  | _d| _t| j|k rR| jsD|   | jd urz| | j d| j\}}W n ty } zx| j |j }| j	d ur| j
t| j  |j }n(| j	d ur| j
t| j  |j }n|j}t| j|||j|jW Y d }~n
d }~0 0 n| j }t|}| | |  j|7  _| j |d  | _ | jr&|  jd7  _d | _ qRq&d S )Nr   strictr9   )r1   r/   r0   rD   r.   rP   r2   UnicodeDecodeErrorrf   r'   r-   r   r   r   r   r<   )r   rC   r\   Z	convertedexcr   r   r   r   r   rA      s6    



.
zReader.update)sizer   c                 C   sX   |d u rd}| j |}| jd u r*|| _n|  j|7  _|  jt|7  _|sTd| _d S )Ni   T)r'   r:   r1   r-   rD   r.   )r   rp   r\   r   r   r   rP     s    
zReader.update_raw)N)r   )r?   )r?   )r?   )N)#r$   r%   r&   r   r   r+   propertyr'   setterintr   rB   rE   rL   rM   rN   r=   r   rc   joinmapchrranger]   r_   classmethodr    r	   r   rb   ri   rk   r<   rA   rP   r   r   r   r   r   9   s2     )rR   Zruamel.yaml.errorr   r   r   r   Zruamel.yaml.utilr   typingr   r   r	   r
   r   r   r   __all__r   r   r   r   r   r   <module>   s   (