eaiovnaovbqoebvqoeavibavo B YI~d4?@sHddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZddlmZdddd d d d d dddddddddddddgZGdd d ZGdd d eZed eGdddeZedeGdddeZed eGd!ddZGd"ddZyeWnek r4eZYnXGd#ddZdS)$N)Error __version__writerreaderregister_dialectunregister_dialect get_dialect list_dialectsfield_size_limit QUOTE_MINIMAL QUOTE_ALLQUOTE_NONNUMERIC QUOTE_NONE__doc__)Dialect) OrderedDict)StringIOr r r rrrrexcel excel_tabr rrrrr Snifferrr DictReader DictWriter unix_dialectc@s@eZdZdZdZdZdZdZdZdZ dZ dZ ddZ ddZ dS)rFNcCs|jtkrd|_|dS)NT) __class__r_valid _validate)selfr(/opt/alt/python37/lib64/python3.7/csv.py__init__+s zDialect.__init__c Cs@y t|Wn.tk r:}ztt|Wdd}~XYnXdS)N)_Dialect TypeErrorrstr)rerrrr0s zDialect._validate)__name__ __module__ __qualname___namer delimiter quotecharZ escapechar doublequoteskipinitialspacelineterminatorquotingr rrrrrrsc@s$eZdZdZdZdZdZdZeZ dS)r,"TFz N) r%r&r'r)r*r+r,r-r r.rrrrr7s c@seZdZdZdS)r N)r%r&r'r)rrrrrAsz excel-tabc@s$eZdZdZdZdZdZdZeZ dS)rr/r0TF N) r%r&r'r)r*r+r,r-r r.rrrrrFs Zunixc@s@eZdZd ddZddZeddZejd dZd d ZdS) rNrcOs6||_||_||_t||f|||_||_d|_dS)Nr) _fieldnamesrestkeyrestvalrdialectline_num)rf fieldnamesr4r5r6argskwdsrrrr Rs zDictReader.__init__cCs|S)Nr)rrrr__iter__[szDictReader.__iter__cCs@|jdkr0yt|j|_Wntk r.YnX|jj|_|jS)N)r3nextr StopIterationr7)rrrrr9^s  zDictReader.fieldnamescCs ||_dS)N)r3)rvaluerrrr9hscCs|jdkr|jt|j}|jj|_x|gkr:t|j}q&Wtt|j|}t|j}t|}||krz||d||j<n*||krx |j|dD]}|j||<qW|S)Nr) r7r9r=rrziplenr4r5)rrowdZlfZlrkeyrrr__next__ls     zDictReader.__next__)NNNr) r%r&r'r r<propertyr9setterrErrrrrQs   c@s6eZdZdddZddZdd Zd d Zd d ZdS)rrraisercOsB||_||_|dkr$td|||_t||f|||_dS)N)rHignorez-extrasaction (%s) must be 'raise' or 'ignore')r9r5lower ValueError extrasactionr)rr8r9r5rLr6r:r;rrrr s zDictWriter.__init__cCs tt|j|j}||dS)N)dictr@r9writerow)rheaderrrr writeheaderszDictWriter.writeheadercsNjdkr8j}|r8tdddd|DfddjDS)NrHz(dict contains fields not in fieldnames: z, cSsg|] }t|qSr)repr).0xrrr sz,DictWriter._dict_to_list..c3s|]}|jVqdS)N)getr5)rRrD)rowdictrrr sz+DictWriter._dict_to_list..)rLkeysr9rKjoin)rrVZ wrong_fieldsr)rVrr _dict_to_lists  zDictWriter._dict_to_listcCs|j||S)N)rrNrZ)rrVrrrrNszDictWriter.writerowcCs|jt|j|S)N)r writerowsmaprZ)rZrowdictsrrrr[szDictWriter.writerowsN)rrHr)r%r&r'r rPrZrNr[rrrrrs  c@s6eZdZddZd ddZddZdd Zd d ZdS) rcCsdddddg|_dS)Nr/r1; :) preferred)rrrrr szSniffer.__init__NcCsd|||\}}}}|s(|||\}}|s4tdGdddt}||_||_|pVd|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedz N)r%r&r'r(r-r r.rrrrr6sr6r0)_guess_quote_and_delimiter_guess_delimiterrrr+r)r*r,)rsample delimitersr*r+r)r,r6rrrsniffs  z Sniffer.sniffc Csg}x0dD](}t|tjtjB}||}|r Pq W|s>dSi}i}d}|j} x|D]} | dd} | | } | r|| dd|| <y| dd} | | } Wntk rwVYnX| r|dks| |kr|| dd|| <y| dd} Wntk rwVYnX| | rV|d7}qVWt||jd} |rZt||jd}|||k}|d krbd }nd }d}td t || d tj}| |rd }nd}| |||fS)N)zI(?P[^\w\n"\'])(?P ?)(?P["\']).*?(?P=quote)(?P=delim)zG(?:^|\n)(?P["\']).*?(?P=quote)(?P[^\w\n"\'])(?P ?)zG(?P[^\w\n"\'])(?P ?)(?P["\']).*?(?P=quote)(?:$|\n)z-(?:^|\n)(?P["\']).*?(?P=quote)(?:$|\n))rFNrrquotedelimZspace)rDr2rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rhrfTF) recompileDOTALL MULTILINEfindall groupindexrUKeyErrormaxescapesearch)rdatardmatchesZrestrZregexpZquotesdelimsZspacesrnmnrDr*rhr,Z dq_regexpr+rrrrasZ           z"Sniffer._guess_quote_and_delimitercCsttd|d}ddtdD}tdt|}d}i}i}i}d|} } x| t|krj|d7}xT|| | D]D} x>|D]6} || i} | | }| |dd| |<| || <qWqvWx|D]} t||  }t|dkr|dddkrqt|dkrZt |dd d || <| || || d|| dt d d |Df|| <q|d|| <qW| }t t||t|}d }d}xt|dkr||krx\|D]T\}}|ddkr|ddkr|d||kr|dks||kr|||<qW|d8}qWt|dkr\t|d}|d||dd|k}||fS| } | |7} qRW|svdSt|dkrxF|jD]<}||kr|d||dd|k}||fSqWdd| D}||dd}|d||dd|k}||fS)Nr2cSsg|] }t|qSr)chr)rRcrrrrT.sz,Sniffer._guess_delimiter.. rrgcSs|dS)Nrgr)rSrrrHz*Sniffer._guess_delimiter..)rDcss|]}|dVqdS)rgNr)rRitemrrrrWMsz+Sniffer._guess_delimiter..g?g?g{Gz?z%c )rrcSsg|]\}}||fqSrr)rRkvrrrrTws)listfiltersplitrangeminrArUcountrXitemsrpremovesumfloatr`sort)rrsrdasciiZ chunkLengthZ iterationZ charFrequencyZmodesrustartendlinecharZ metaFrequencyZfreqrZmodeListZtotalZ consistencyZ thresholdrrrhr,rCrrrrbst          zSniffer._guess_delimiterc Cstt|||}t|}t|}i}xt|D] }d||<q2Wd}x|D]}|dkrZP|d7}t||krpqLxt|D]x} xJtt t gD]0} y| || PWqt t fk rYqXqWt|| } | || kr~|| dkr| || <q~|| =q~WqLWd} x| D]~\} } t| tdkrLt|| | krB| d7} n| d8} ns0@       2