o `@sLddgZddlmZmZddlZddlZGdddeZGdddeZdS)Reader ReaderError) YAMLErrorMarkNc@seZdZddZddZdS)rcCs"||_||_||_||_||_dSN)name characterpositionencodingreason)selfrr r r r r-/usr/lib/python3/dist-packages/yaml/reader.py__init__s  zReaderError.__init__cCsDt|jtrd|jt|j|j|j|jfSd|j|j|j|jfS)Nz>'%s' codec can't decode byte #x%02x: %s in "%s", position %dz8unacceptable character #x%04x: %s in "%s", position %d) isinstancer bytesr ordr rr r rrr__str__!s zReaderError.__str__N)__name__ __module__ __qualname__rrrrrrrs c@sfeZdZddZdddZdddZdd d Zd d Zd dZe dZ ddZ ddZ dddZdS)rcCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ t |t r8d|_|||d|_dSt |trId|_||_|dS||_t|dd|_d |_d|_|dS) NrTzz rzF)rstreamstream_pointereofbufferpointer raw_buffer raw_decoder indexlinecolumnrstrcheck_printablerdetermine_encodinggetattr)r rrrrr;s2     zReader.__init__rcCsDz |j|j|WSty!||d|j|j|YSw)Nr)rr IndexErrorupdate)r r"rrrpeekWs  z Reader.peekrcCs4|j|t|jkr|||j|j|j|Sr)rlenrr*)r lengthrrrprefix^s z Reader.prefixcCs|j|dt|jkr||d|rW|j|j}|jd7_|jd7_|dvs9|dkrD|j|jdkrD|jd7_d|_n |dkrO|jd7_|d8}|sdSdS)Nru …

  ru)rr,rr*r"r#r$)r r-chrrrforwardcs  zReader.forwardcCsB|jdurt|j|j|j|j|j|jSt|j|j|j|jddSr)rrrr"r#r$rrrrrrget_markrs zReader.get_markcCs|js"|jdust|jdkr"||js"|jdust|jdkst|jtrM|jtjr7tj |_ d|_ n|jtj rFtj |_ d|_ ntj|_ d|_ |ddS)Nz utf-16-lez utf-16-bezutf-8r)rr r, update_rawrr startswithcodecs BOM_UTF16_LEutf_16_le_decoder!r BOM_UTF16_BEutf_16_be_decode utf_8_decoder*rrrrr'zs zReader.determine_encodingu![^ -~… -퟿-�𐀀-􏿿]cCsP|j|}|r&|}|jt|j|j|}t|j |t |dddS)Nunicodez"special characters are not allowed) NON_PRINTABLEsearchgroupr"r,rrstartrrr)r datamatchr r rrrr&s zReader.check_printablec Cs4|jdurdS|j|jd|_d|_t|j|kr|js!||jdurez ||jd|j\}}Wn8tyd}z%|j|j}|j durR|j t|j|j}n|j}t |j |||j |jd}~ww|j}t|}|||j|7_|j|d|_|jr|jd7_d|_dSt|j|ksdSdS)Nrstrictr)r rrr,rr5r!UnicodeDecodeErrorrArrrrr r r&)r r-rB convertedexcr r rrrr*s@        z Reader.updatecCsP|j|}|jdur||_n|j|7_|jt|7_|s&d|_dSdS)NT)rreadr rr,r)r sizerBrrrr5s   zReader.update_rawN)r)r)rH)rrrrr+r.r2r3r'recompiler>r&r*r5rrrrr-s    ) __all__errorrrr7rKrobjectrrrrrs