o
    h)                     @   sd   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	 	 ddgZG d	d deZG d
d dZdS )    N)	YAMLErrorFileMark
StringMarkYAMLStreamError)_F)RegExpF)AnyDictOptionalListUnionTextTupler
   ReaderReaderErrorc                   @   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   Z/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/ruamel/yaml/reader.py__init__$   s
   
zReaderError.__init__c                 C   sH   t | jtrtd| jt| j| j| j| jdS td| j| j| j| jdS )Nz'{self_encoding!s}' codec can't decode byte #x{ord_self_character:02x}: {self_reason!s}
  in "{self_name!s}", position {self_position:d})Zself_encodingZord_self_characterself_reason	self_nameself_positionzounacceptable character #x{self_character:04x}: {self_reason!s}
  in "{self_name!s}", position {self_position:d})Zself_characterr   r   r   )	
isinstancer   bytesr   r   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dZdd Zedd Zejdd Zd*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eeedd dZedd Zedd  Zed!d" Zd#d$ Zd%d& Zd)d'd(ZdS ),r   Nc                 C   s<   || _ | j d urt| j dd d u r| | j _|   || _d S )N_reader)loadergetattrr&   reset_readerstream)r   r*   r'   r   r   r   r   R   s
   
zReader.__init__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)   Z   s   
zReader.reset_readerc                 C   s    z| j W S  ty   tdw )Nzinput stream needs to specified)_streamAttributeErrorr   r!   r   r   r   r*   h   s
   zReader.streamc                 C   s   |d u rd S d | _ t|trd| _| | |d | _d S t|tr.d| _|| _|   d S t	|ds7t
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)r5   r   strr   check_printabler.   r   r0   determine_encodinghasattrr   r(   r*   r-   )r   valr   r   r   r*   p   s$   



r   c                 C   sD   z	| j | j|  W S  ty!   | |d  | j | j|   Y S w )N   )r.   r/   
IndexErrorupdate)r   r2   r   r   r   peek   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  |dkr[| j| j  }|  j d7  _ |  jd7  _|dv s;|dkrF| j| j  dkrF|  jd7  _d| _n|dkrQ|  jd7  _|d8 }|dksd S d S )Nr>   r   u	   
  
   ﻿r/   rB   r.   r@   r2   r3   r4   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s;|dkrF| j| j  dkrF|  jd7  _d| _n|dkrQ|  jd7  _|d8 }|dksd S d S )Nr>   r   rF   rE   rG   rH   rI   r   r   r   forward   s    zReader.forwardc                 C   s>   | j d u rt| j| j| j| j| j| jS t| j| j| j| jS r   )	r*   r   r   r2   r3   r4   r.   r/   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"|   | j s"| jd u st| jdk st| jtrM| jtjr7tj	| _
d| _n| jtjrFtj| _
d| _ntj| _
d| _| d d S )N   z	utf-16-lez	utf-16-bezutf-8r>   )r-   r0   rB   
update_rawr   r   
startswithcodecsBOM_UTF16_LEutf_16_le_decoder1   r   BOM_UTF16_BEutf_16_be_decodeutf_8_decoder@   r!   r   r   r   r;      s   zReader.determine_encodingu!   [^	
 -~ -퟿-�𐀀-􏿿]z	
r+          asciic                 C   s@   | d}|d | j}|sd S |d d }|||dfS )NrY   r>   )encode	translate_printable_asciir2   decode)clsdataZascii_bytesnon_printablesZnon_printabler   r   r   _get_non_printable_ascii   s   
zReader._get_non_printable_asciic                 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 w r   )ra   UnicodeEncodeErrorrh   )r^   r_   r   r   r   _get_non_printable   s
   zReader._get_non_printablec                 C   sN   |  |}|d ur%|\}}| jt| j| j  | }t| j|t|ddd S )Nunicodez"special characters are not allowed)rj   r2   rB   r.   r/   r   r   r    )r   r_   Znon_printable_matchre   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 r| js!|   | jd urvz| | j d| j\}}W nI tyu } z6| j |j }| j	d urR| j
t| j  |j }n| j	d urc| j
t| j  |j }n|j}t| j|||j|jd }~ww | j }t|}| | |  j|7  _| j |d  | _ | jr|  jd7  _d | _ d S t| j|k sd S d S )Nr   strictr7   )r0   r.   r/   rB   r-   rO   r1   UnicodeDecodeErrorre   r*   r,   r   r   r   r   r:   )r   rC   r_   Z	convertedexcr   r   r   r   r   r@      s<   





zReader.updatec                 C   s\   |d u rd}| j |}| jd u r|| _n|  j|7  _|  jt|7  _|s,d| _d S d S )Ni   T)r*   r8   r0   r,   rB   r-   )r   sizer_   r   r   r   rO     s   

zReader.update_rawr   )r   )r>   )r#   r$   r%   r   r)   propertyr*   setterrA   rD   rK   rL   rM   r;   r   rb   joinmapchrrangerZ   r\   classmethodra   rh   rj   r:   r@   rO   r   r   r   r   r   D   s4    






	 
	

 )rQ   Zruamel.yaml.errorr   r   r   r   Zruamel.yaml.compatr   Zruamel.yaml.utilr   typingr   r	   r
   r   r   r   r   __all__r   r   r   r   r   r   <module>   s   !