o
    jqi&                     @  sd   d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 	 ddgZG d	d deZG d
d dZdS )    )annotationsN)	YAMLErrorFileMark
StringMarkYAMLStreamError)RegExpF)AnyDictOptionalListUnionTextTupler
   ReaderReaderErrorc                   @  s    e Zd Zdd	d
ZdddZdS )r   namer   position	characterencodingreasonreturnNonec                 C  s"   || _ || _|| _|| _|| _d S N)r   r   r   r   r   )selfr   r   r   r   r    r   Y/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/ruamel/yaml/reader.py__init__$   s
   
zReaderError.__init__c                 C  sh   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 )
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__N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r   r$   r   r   r   r   r   #   s    
	c                   @  s   e Zd Zd9d:ddZd;d	d
Zed<ddZejd=ddZd>d?ddZd@dAddZ	d@dBddZ
d@dBddZd<ddZd;dd Zed!Zd"d#eeed$d% d&ZedCd+d,ZedDd-d.ZedDd/d0ZdEd1d2ZdBd3d4Zd9dFd7d8ZdS )Gr   Nstreamr   loaderr   r   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   I   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-   P   s   
zReader.reset_readerc                 C  s    z| j W S  ty   tdw )Nz"input stream needs to be specified)_streamAttributeErrorr   r#   r   r   r   r)   ]   s
   zReader.streamvalc                 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)r8   r    strr   check_printabler1   r!   r3   determine_encodinghasattrr   r,   r)   r0   )r   r:   r   r   r   r)   d   s$   



r   r5   intr   c                 C  sD   z	| j | j|  W S  ty!   | |d  | j | j|   Y S w )N   )r1   r2   
IndexErrorupdate)r   r5   r   r   r   peekz   s   zReader.peekrB   lengthc                 C  s4   | j | t| jkr| | | j| j | j |  S r   )r2   lenr1   rD   )r   rF   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 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 )NrB   r   u	   
  
   ﻿r2   rG   r1   rD   r5   r6   r7   r   rF   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 )NrB   r   rJ   rI   rK   rL   rM   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   r5   r6   r7   r1   r2   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-8rB   )r0   r3   rG   
update_rawr    r!   
startswithcodecsBOM_UTF16_LEutf_16_le_decoder4   r   BOM_UTF16_BEutf_16_be_decodeutf_8_decoderD   r#   r   r   r   r?      s   zReader.determine_encodingu!   [^	
 -~ -퟿-�𐀀-􏿿]z	
r.          asciiclsdatar!   Optional[Tuple[int, Text]]c                 C  s@   | d}|d | j}|sd S |d d }|||dfS )Nr]   rB   )encode	translate_printable_asciir5   decode)r^   r_   Z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   )rf   UnicodeEncodeErrorrm   )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)ro   r5   rG   r1   r2   r   r   r"   )r   r_   Znon_printable_matchrj   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   strictr;   )r3   r1   r2   rG   r0   rS   r4   UnicodeDecodeErrorrj   r)   r/   r   r   r   r   r>   )r   rF   r_   Z	convertedexcr   r   r   r   r   rD      s<   





zReader.updatesizeOptional[int]c                 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)   r<   r3   r/   rG   r0   )r   rt   r_   r   r   r   rS     s   

zReader.update_rawr   )r)   r   r*   r   r   r   )r   r   r%   )r:   r   r   r   )r   )r5   rA   r   r   )rB   )rF   rA   r   r   )rF   rA   r   r   )r^   r   r_   r!   r   r`   )r_   r   r   r`   )r_   r   r   r   )rt   ru   r   r   )r&   r'   r(   r   r-   propertyr)   setterrE   rH   rO   rP   rQ   r?   r   rg   joinmapchrrangera   rc   classmethodrf   rm   ro   r>   rD   rS   r   r   r   r   r   ;   s4    


 

)
__future__r   rU   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   