B d@sLddgZddlmZmZddlZddlZGdddeZGdddeZdS)Reader ReaderError) YAMLErrorMarkNc@seZdZddZddZdS)rcCs"||_||_||_||_||_dS)N)name characterpositionencodingreason)selfrr rr r r 2/tmp/pip-target-jj3kjtpb/lib/python/yaml/reader.py__init__s zReaderError.__init__cCsHt|jtr,d|jt|j|j|j|jfSd|j|j|j|jfSdS)Nz>'%s' codec can't decode byte #x%02x: %s in "%s", position %dz8unacceptable character #x%04x: %s in "%s", position %d) isinstancerbytesr ordr rr )r r r r__str__!s zReaderError.__str__N)__name__ __module__ __qualname__rrr r r rrsc@sfeZdZddZdddZdddZdd d Zd d Zd dZe dZ ddZ ddZ dddZdS)rcCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ t |t rnd|_|||d|_nHt |trd|_||_|n(||_t|dd|_d |_d|_|dS) NrTzz rzF)rstreamstream_pointereofbufferpointer raw_buffer raw_decoder indexlinecolumnrstrcheck_printablerdetermine_encodinggetattr)r rr r rr;s2     zReader.__init__rcCsDy|j|j|Stk r>||d|j|j|SXdS)Nr)rr IndexErrorupdate)r r r r rpeekWs z Reader.peekrcCs4|j|t|jkr|||j|j|j|S)N)rlenrr()r lengthr r rprefix^s z Reader.prefixcCs|j|dt|jkr&||dx|r|j|j}|jd7_|jd7_|dkst|dkr|j|jdkr|jd7_d|_n|dkr|jd7_|d8}q(WdS)Nru …

  ru)rr*rr(r r!r")r r+chr r rforwardcs zReader.forwardcCsF|jdkr(t|j|j|j|j|j|jSt|j|j|j|jddSdS)N)rrrr r!r"rr)r r r rget_markrs   zReader.get_markcCsx*|js*|jdks t|jdkr*|qWt|jtr|jtjrVtj |_ d|_ n,|jtj rttj |_ d|_ ntj|_ d|_ |ddS)Nz utf-16-lez utf-16-bezutf-8r)rrr* update_rawrr startswithcodecs BOM_UTF16_LEutf_16_le_decoderr BOM_UTF16_BEutf_16_be_decode utf_8_decoder()r r r rr%zs   zReader.determine_encodingu![^ -~… -퟿-�𐀀-􏿿]cCsP|j|}|rL|}|jt|j|j|}t|j |t |dddS)Nunicodez"special characters are not allowed) NON_PRINTABLEsearchgroupr r*rrstartrrr)r datamatchrr r r rr$s  zReader.check_printablec Cs6|jdkrdS|j|jd|_d|_xt|j|kr0|jsH||jdk ry||jd|j\}}Wqtk r}zN|j|j}|j dk r|j t|j|j}n|j}t |j |||j |jWdd}~XYqXn|j}t|}|||j|7_|j|d|_|jr*|jd7_d|_Pq*WdS)Nrstrictr)rrrr*rr3rUnicodeDecodeErrorr?rrrrr r r$)r r+r@Z convertedexcrr r r rr(s6       z Reader.updatecCsL|j|}|jdkr||_n|j|7_|jt|7_|sHd|_dS)NT)rreadrrr*r)r sizer@r r rr3s  zReader.update_rawN)r)r)r)rE)rrrrr)r,r0r1r%recompiler<r$r(r3r r r rr-s    ) __all__errorrrr5rHrobjectrr r r rs