grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]?ã@s¨ddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZddddd d d d d dddddddddddgZGdd „d ƒZGdd „d eƒZed eƒGdd „d eƒZedeƒGdd„deƒZedeƒGd d„dƒZGd!d„dƒZyeWnek r�eZYnXGd"d„dƒZdS)#éN)ÚErrorÚ __version__ÚwriterÚreaderÚregister_dialectÚunregister_dialectÚ get_dialectÚ list_dialectsÚfield_size_limitÚ QUOTE_MINIMALÚ QUOTE_ALLÚQUOTE_NONNUMERICÚ QUOTE_NONEÚ__doc__)ÚDialect)ÚStringIOr r r rrrrÚexcelÚ excel_tabr rrrrr ÚSnifferrrÚ DictReaderÚ DictWriterc@s^eZdZdZdZdZdZdZdZdZ dZ dZ dd„Z dd„Z dS)rÚFNcCs&|jtkrd|_|jƒdS)NT)Ú __class__rÚ_validÚ _validate)Úself©rú(/opt/alt/python35/lib64/python3.5/csv.pyÚ__init__)s zDialect.__init__cCsLyt|ƒWn7tk rG}ztt|ƒƒ‚WYdd}~XnXdS)N)Ú_DialectÚ TypeErrorrÚstr)rÚerrrr.szDialect._validate)Ú__name__Ú __module__Ú __qualname__Ú_namerÚ delimiterÚ quotecharZ escapecharÚ doublequoteÚskipinitialspaceÚlineterminatorÚquotingrrrrrrrs  c@s4eZdZdZdZdZdZdZeZ dS)rú,ú"TFz N) r#r$r%r'r(r)r*r+r r,rrrrr5s c@seZdZdZdS)rú N)r#r$r%r'rrrrr?s z excel-tabc@s4eZdZdZdZdZdZdZeZ dS)Ú unix_dialectr-r.TFÚ N) r#r$r%r'r(r)r*r+r r,rrrrr0Ds r0Zunixc@sgeZdZdddddd„Zdd„Zedd„ƒZejd d„ƒZd d „ZdS) rNrcOsI||_||_||_t||||Ž|_||_d|_dS)Nr)Ú _fieldnamesÚrestkeyÚrestvalrÚdialectÚline_num)rÚfÚ fieldnamesr3r4r5ÚargsÚkwdsrrrrPs     zDictReader.__init__cCs|S)Nr)rrrrÚ__iter__YszDictReader.__iter__c CsP|jdkr:yt|jƒ|_Wntk r9YnX|jj|_|jS)N)r2ÚnextrÚ StopIterationr6)rrrrr8\s zDictReader.fieldnamescCs ||_dS)N)r2)rÚvaluerrrr8fscCsê|jdkr|jt|jƒ}|jj|_x|gkrUt|jƒ}q7Wtt|j|ƒƒ}t|jƒ}t|ƒ}||kr¯||d…||j’s z,DictWriter._dict_to_list..z(dict contains fields not in fieldnames: z, cSsg|]}t|ƒ‘qSr)Úrepr)rPÚxrrrrR•s c3s$|]}ˆj|ˆjƒVqdS)N)Úgetr4)rPrD)Úrowdictrrrú –sz+DictWriter._dict_to_list..)rLrKÚjoinr8)rrVZ wrong_fieldsr)rVrrÚ _dict_to_list�s  zDictWriter._dict_to_listcCs|jj|j|ƒƒS)N)rrMrY)rrVrrrrM˜szDictWriter.writerowcCs|jjt|j|ƒƒS)N)rÚ writerowsÚmaprY)rZrowdictsrrrrZ›szDictWriter.writerowsN)r#r$r%rrOrYrMrZrrrrr�s    c@sOeZdZdd„Zddd„Zdd„Zdd „Zd d „ZdS) rcCsdddddg|_dS)Nr-r/ú;ú ú:)Ú preferred)rrrrr©szSniffer.__init__NcCs’|j||ƒ\}}}}|s<|j||ƒ\}}|sNtdƒ‚Gdd„dtƒ}||_||_|pd|_||_|S)NzCould not determine delimiterc@s"eZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedz N)r#r$r%r&r+r r,rrrrr5¼s r5r.)Ú_guess_quote_and_delimiterÚ_guess_delimiterrrr)r'r(r*)rÚsampleÚ delimitersr(r)r'r*r5rrrÚsniff®s     z Sniffer.sniffcCsg}x@dD]8}tj|tjtjBƒ}|j|ƒ}|r Pq W|sSdSi}i}d}|j} xð|D]è} | dd } | | } | r³|j| dƒd || [^\w "'])(?P ?)(?P["']).*?(?P=quote)(?P=delim)úC(?:^| )(?P["']).*?(?P=quote)(?P[^\w "'])(?P ?)úD(?P>[^\w "'])(?P ?)(?P["']).*?(?P=quote)(?:$| )ú*(?:^| )(?P["']).*?(?P=quote)(?:$| )rFrÚquoteéÚdelimZspacerDr1z]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$)T)rerfrgrh)rFNr) ÚreÚcompileÚDOTALLÚ MULTILINEÚfindallÚ groupindexrUÚKeyErrorÚmaxÚescapeÚsearch)rÚdatarcÚmatchesZrestrZregexpZquotesÚdelimsZspacesrqÚmÚnrDr(rkr*Z dq_regexpr)rrrr`Ës`          % z"Sniffer._guess_quote_and_delimitercCsüttd|jdƒƒƒ}dd„tdƒDƒ}tdt|ƒƒ}d}i}i}i}dt|t|ƒƒ} } xž| t|ƒkr |d7}xn|| | …D]\} xS|D]K} |j| iƒ} | j| ƒ}| j|dƒd| |<| || .éé rrjrDcSs|dS)Nrjr)rTrrrÚFsz*Sniffer._guess_delimiter..css|]}|dVqdS)rjNr)rPÚitemrrrrWKsz+Sniffer._guess_delimiter..gð?gÍÌÌÌÌÌì?g{®Gáz„?z%c rcSs"g|]\}}||f‘qSrr)rPrQÚvrrrrRus )rréÿÿÿÿ)ÚlistÚfilterÚsplitÚrangeÚminrArUÚcountÚkeysÚitemsrsÚremoveÚsumÚfloatr_Úsort)rrvrcÚasciiZ chunkLengthZ iterationZ charFrequencyZmodesrxÚstartÚendÚlineÚcharZ metaFrequencyZfreqrŠZmodeListÚtotalZ consistencyZ thresholdrQr�rkr*rCrrrrast  &$ !   zSniffer._guess_delimiterc Csÿtt|ƒ|j|ƒƒ}t|ƒ}t|ƒ}i}xt|ƒD]}d||s, ^      2