o
    ei&                     @  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   P/home/ubuntu/transcripts/venv/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 #x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)r9   r!   strr   check_printabler2   r"   r4   determine_encodinghasattrr   r-   r*   r1   )r   r;   r   r   r   r*   d   s$   



r   r6   intr   c                 C  sD   z	| j | j|  W S  ty!   | |d  | j | j|   Y S w )N   )r2   r3   
IndexErrorupdate)r   r6   r   r   r   peekz   s   zReader.peekrC   lengthc                 C  s4   | j | t| jkr| | | j| j | j |  S r   )r3   lenr2   rE   )r   rG   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 )NrC   r   u	   
  
   ﻿r3   rH   r2   rE   r6   r7   r8   r   rG   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 )NrC   r   rK   rJ   rL   rM   rN   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   r6   r7   r8   r2   r3   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-8rC   )r1   r4   rH   
update_rawr!   r"   
startswithcodecsBOM_UTF16_LEutf_16_le_decoder5   r   BOM_UTF16_BEutf_16_be_decodeutf_8_decoderE   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^   rC   )encode	translate_printable_asciir6   decode)r_   r`   ascii_bytesnon_printables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   )ri   UnicodeEncodeErrorrp   )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)rr   r6   rH   r2   r3   r   r   r#   )r   r`   non_printable_matchrm   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<   )r4   r2   r3   rH   r1   rT   r5   UnicodeDecodeErrorrm   r*   r0   r   r   r   r   r?   )r   rG   r`   	convertedexcr   r   r   r   r   rE      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=   r4   r0   rH   r1   )r   ry   r`   r   r   r   rT     s   

zReader.update_rawr   )r*   r   r+   r   r   r   )r   r   r&   )r;   r   r   r   )r   )r6   rB   r   r   )rC   )rG   rB   r   r   )rG   rB   r   r   )r_   r   r`   r"   r   ra   )r`   r   r   ra   )r`   r   r   r   )ry   rz   r   r   )r'   r(   r)   r   r.   propertyr*   setterrF   rI   rP   rQ   rR   r@   r   rj   joinmapchrrangerb   rd   classmethodri   rp   rr   r?   rE   rT   r   r   r   r   r   ;   s4    


 

)
__future__r   rV   ruamel.yaml.errorr   r   r   r   ruamel.yaml.utilr   typingr   r	   r
   r   r   r   r   __all__r   r   r   r   r   r   <module>   s   