
    Be)                     p    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e      Z G d d      Zy)	    N)	YAMLErrorFileMark
StringMarkYAMLStreamError)_F)RegExpReaderReaderErrorc                       e Zd Zd Zd Zy)r
   c                 J    || _         || _        || _        || _        || _        y N)name	characterpositionencodingreason)selfr   r   r   r   r   s         2lib/python3.12/site-packages/ruamel/yaml/reader.py__init__zReaderError.__init__$   s%    	"      c                 >   t        | j                  t              rLt        d| j                  t        | j                        | j                  | j                  | j                        S t        d| j                  | j                  | j                  | j                        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})self_encoding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})self_characterr   r   r   )	
isinstancer   bytesr   r   ordr   r   r   r   s    r   __str__zReaderError.__str__,   s~    dnne,C #mm#&t~~#6 KK))"mm	 	 C#~~ KK))"mm r   N)__name__
__module____qualname__r   r"    r   r   r
   r
   #   s    r   c            
       0   e Zd ZddZd Zed        Zej                  d        ZddZddZ	ddZ
dd	Zd
 Zd Z ed      Zddj!                   ee edd                  z   j)                  d      Zed        Zed        Zed        Zd Zd ZddZy)r	   Nc                     || _         | j                   (t        | j                   dd       | | j                   _        | j                          || _        y )N_reader)loadergetattrr)   reset_readerstream)r   r-   r*   s      r   r   zReader.__init__R   sD    ;;"wt{{It'L'T"&DKKr   c                     d | _         d| _        d| _        d| _        d| _        d | _        d | _        d | _        d| _        d| _	        d| _
        y )Nr   T )r   stream_pointereofbufferpointer
raw_buffer
raw_decoder   indexlinecolumnr!   s    r   r,   zReader.reset_readerZ   sP    	
	r   c                 L    	 | j                   S # t        $ r t        d      w xY w)Nzinput stream needs to specified)_streamAttributeErrorr   r!   s    r   r-   zReader.streamh   s/    	E<< 	E!"CDD	Es    #c                    |y d | _         t        |t              r#d| _        | j	                  |       |dz   | _        y t        |t              rd| _        || _        | j                          y t        |d      st        d      || _         t        | j                  dd      | _        d| _        d | _        | j                          y )	Nz<unicode string> z<byte string>readz-stream argument needs to have a read() methodr   z<file>F)r:   r   strr   check_printabler2   r   r4   determine_encodinghasattrr   r+   r-   r1   )r   vals     r   r-   zReader.streamp   s     ;c3*DI  %*DKU#'DI!DO##%3'%&UVVDLVX>DIDH"DO##%r   c                     	 | j                   | j                  |z      S # t        $ r3 | j                  |dz          | j                   | j                  |z      cY S w xY w)N   )r2   r3   
IndexErrorupdate)r   r6   s     r   peekzReader.peek   sV    	5;;t||e344 	5KK	";;t||e344	5s    9AAc                     | j                   |z   t        | j                        k\  r| j                  |       | j                  | j                   | j                   |z    S r   )r3   lenr2   rG   )r   lengths     r   prefixzReader.prefix   sF    <<& C$44KK{{4<<$,,*?@@r   c                    | j                   |z   dz   t        | j                        k\  r| j                  |dz          |dk7  r| j                  | j                      }| xj                   dz  c_         | xj                  dz  c_        |dv s!|dk(  r9| j                  | j                      dk7  r| xj
                  dz  c_        d| _        n|dk7  r| xj                  dz  c_        |dz  }|dk7  ry y )NrE   r   u	   
  
   ﻿r3   rJ   r2   rG   r6   r7   r8   r   rK   chs      r   forward_1_1zReader.forward_1_1   s    <<& 1$DKK(88KK
#kT\\*BLLALJJ!OJ))d
t{{4<<8D@		Q	xq aKF kr   c                    | j                   |z   dz   t        | j                        k\  r| j                  |dz          |dk7  r| j                  | j                      }| xj                   dz  c_         | xj                  dz  c_        |dk(  s!|dk(  r9| j                  | j                      dk7  r| xj
                  dz  c_        d| _        n|dk7  r| xj                  dz  c_        |dz  }|dk7  ry y )NrE   r   rO   rN   rP   rQ   rR   s      r   forwardzReader.forward   s    <<& 1$DKK(88KK
#kT\\*BLLALJJ!OJTzbDjT[[-F$-N		Q	xq aKF kr   c                    | j                   Lt        | j                  | j                  | j                  | j
                  | j                  | j                        S t        | j                  | j                  | j                  | j
                        S r   )	r-   r   r   r6   r7   r8   r2   r3   r   r!   s    r   get_markzReader.get_mark   sa    ;;		4::tyy$++t{{DLL  DIItzz499dkkJJr   c                    | j                   sf| j                  t        | j                        dk  rB| j                          | j                   s&| j                  )t        | j                        dk  rBt	        | j                  t
              r| j                  j                  t        j                        rt        j                  | _
        d| _        nb| j                  j                  t        j                        rt        j                  | _
        d| _        nt        j                  | _
        d| _        | j                  d       y )N   z	utf-16-lez	utf-16-bezutf-8rE   )r1   r4   rJ   
update_rawr   r   
startswithcodecsBOM_UTF16_LEutf_16_le_decoder5   r   BOM_UTF16_BEutf_16_be_decodeutf_8_decoderG   r!   s    r   rA   zReader.determine_encoding   s    (( 73t;ORS;SOO (( 73t;ORS;Sdoou-))&*=*=>"("9"9 +++F,?,?@"("9"9 +"("5"5 'Ar   u!   [^	
 -~ -퟿-�𐀀-􏿿]z	
r/          asciic                     |j                  d      }|j                  d | j                        }|sy |d d }|j                  |      |j	                  d      fS )Nre   rE   )encode	translate_printable_asciir6   decode)clsdataascii_bytesnon_printablesnon_printables        r   _get_non_printable_asciizReader._get_non_printable_ascii   s]     kk'*$..tS5I5IJ&r*  /1E1Eg1NNNr   c                     | j                   j                  |      }t        |      sy |j                         |j	                         fS r   )NON_PRINTABLEsearchboolstartgroup)rk   rl   matchs      r   _get_non_printable_regexzReader._get_non_printable_regex   s;     !!((.E{{{}ekkm++r   c                 f    	 | j                  |      S # t        $ r | j                  |      cY S w xY wr   )rp   UnicodeEncodeErrorrx   )rk   rl   s     r   _get_non_printablezReader._get_non_printable   s8    	6//55! 	6//55	6s    00c                     | j                  |      }|Y|\  }}| j                  t        | j                        | j                  z
  z   |z   }t        | j                  |t        |      dd      y )Nunicodez"special characters are not allowed)r{   r6   rJ   r2   r3   r
   r   r    )r   rl   non_printable_matchru   r   r   s         r   r@   zReader.check_printable   sq    "55d;*2E9zzS%5%DEMH		I4  +r   c                    | j                   y | j                  | j                  d  | _        d| _        t        | j                        |k  r| j                  s| j                          | j                  ,	 | j                  | j                   d| j                        \  }}n| j                   }t        |      }| j                  |       | xj                  |z  c_        | j                   |d  | _         | j                  r| xj                  dz  c_        d | _         y t        | j                        |k  ry y # t        $ r}| j                   |j                     }| j                  0| j                  t        | j                         z
  |j                  z   }nH| j                  0| j                  t        | j                         z
  |j                  z   }n|j                  }t        | j                  |||j                  |j                        d }~ww xY w)Nr   strictr=   )r4   r2   r3   rJ   r1   r[   r5   UnicodeDecodeErrorru   r-   r0   r
   r   r   r   r@   )r   rK   rl   	convertedexcr   r   s          r   rG   zReader.update   s   ??"kk$,,.1$++'88!*
`&*oodooxQUQYQY&ZOD) I	  &KK4K"ooij9DOxxt#"&1 $++' * ` $		 :I{{.#'#6#6T__9M#MPSPYPY#Y0#'#6#6T__9M#MPSPYPY#Y#&99%dii9cllTWT^T^__`s   4*D4 4	H=C
HHc                     |d}| j                   j                  |      }| j                  || _        n| xj                  |z  c_        | xj                  t	        |      z  c_        |sd| _        y y )Ni   T)r-   r>   r4   r0   rJ   r1   )r   sizerl   s      r   r[   zReader.update_raw  sc    <D{{%??""DOOOt#Os4y(DH r   r   )r   )rE   )r#   r$   r%   r   r,   propertyr-   setterrH   rL   rT   rV   rX   rA   r   rr   joinmapchrrangerg   ri   classmethodrp   rx   r{   r@   rG   r[   r&   r   r   r	   r	   D   s     E E ]]& &,5A"K  _M 'S%d:K1L)MMUUV]^O O , , 6 6@r   )r]   ruamel.yaml.errorr   r   r   r   ruamel.yaml.compatr   ruamel.yaml.utilr   typingAnyDictOptionalListUnionTextTuple__all__r
   r	   r&   r   r   <module>r      s>   ,  N N ! # ]
#) Bc cr   