grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a ´i?ã@sddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZgd¢ZGdd„dƒZGdd „d eƒZed eƒGd d „d eƒZed eƒGd d„deƒZedeƒGdd„dƒZGdd„dƒZzeWneyþeZYn0Gdd„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)ÚStringIO)r r r rrrrÚexcelÚ excel_tabr rrrrr ÚSnifferrrÚ DictReaderÚ DictWriterÚ unix_dialectc@s@eZdZdZdZdZdZdZdZdZ dZ dZ dd„Z dd„Z dS)rÚFNcCs|jtkrd|_| ¡dS)NT)Ú __class__rÚ_validÚ _validate©Úself©rú/usr/lib64/python3.9/csv.pyÚ__init__*s zDialect.__init__c CsBz t|ƒWn0ty<}ztt|ƒƒ‚WYd}~n d}~00dS©N)Ú_DialectÚ TypeErrorrÚstr)rÚerrrr/s zDialect._validate)Ú__name__Ú __module__Ú __qualname__Ú_namerÚ delimiterÚ quotecharZ escapecharÚ doublequoteÚskipinitialspaceÚlineterminatorÚquotingr rrrrrrsrc@s$eZdZdZdZdZdZdZeZ dS)rú,ú"TFú N) r&r'r(r*r+r,r-r.r r/rrrrr6s rc@seZdZdZdS)rú N)r&r'r(r*rrrrr@srz excel-tabc@s$eZdZdZdZdZdZdZeZ dS)rr0r1TFÚ N) r&r'r(r*r+r,r-r.r r/rrrrrEs rZunixc@s@eZdZd dd„Zdd„Zedd„ƒZejd d„ƒZd d „ZdS) rNrcOs<||_||_||_t||g|¢Ri|¤Ž|_||_d|_dS©Nr)Ú _fieldnamesÚrestkeyÚrestvalrÚdialectÚline_num)rÚfÚ fieldnamesr7r8r9ÚargsÚkwdsrrrr Qs zDictReader.__init__cCs|Sr!rrrrrÚ__iter__ZszDictReader.__iter__cCs>|jdur.zt|jƒ|_Wnty,Yn0|jj|_|jSr!)r6ÚnextrÚ StopIterationr:rrrrr<]s   zDictReader.fieldnamescCs ||_dSr!)r6)rÚvaluerrrr<gscCs |jdkr|jt|jƒ}|jj|_|gkr8t|jƒ}q$tt|j|ƒƒ}t|jƒ}t|ƒ}||krv||d…||j<n&||krœ|j|d…D]}|j||<qŒ|Sr5) r:r<r@rÚdictÚzipÚlenr7r8)rÚrowÚdZlfZlrÚkeyrrrÚ__next__ks      zDictReader.__next__)NNNr) r&r'r(r r?Úpropertyr<ÚsetterrIrrrrrPsÿ   rc@s6eZdZddd„Zdd„Zdd „Zd d „Zd d „ZdS)rrÚraisercOsH||_||_| ¡dvr$td|ƒ‚||_t||g|¢Ri|¤Ž|_dS)N)rLÚignorez-extrasaction (%s) must be 'raise' or 'ignore')r<r8ÚlowerÚ ValueErrorÚ extrasactionr)rr;r<r8rPr9r=r>rrrr ƒs ÿzDictWriter.__init__cCstt|j|jƒƒ}| |¡Sr!)rCrDr<Úwriterow)rÚheaderrrrÚ writeheader�szDictWriter.writeheadercsNˆjdkr8ˆ ¡ˆj}|r8tdd dd„|Dƒ¡ƒ‚‡‡fdd„ˆjDƒS)NrLz(dict contains fields not in fieldnames: z, cSsg|] }t|ƒ‘qSr)Úrepr)Ú.0ÚxrrrÚ –óz,DictWriter._dict_to_list..c3s|]}ˆ |ˆj¡VqdSr!)Úgetr8)rUrH©ÚrowdictrrrÚ —rXz+DictWriter._dict_to_list..)rPÚkeysr<rOÚjoin)rr[Z wrong_fieldsrrZrÚ _dict_to_list‘s ÿzDictWriter._dict_to_listcCs|j | |¡¡Sr!)rrQr_)rr[rrrrQ™szDictWriter.writerowcCs|j t|j|ƒ¡Sr!)rÚ writerowsÚmapr_)rZrowdictsrrrr`œszDictWriter.writerowsN)rrLr)r&r'r(r rSr_rQr`rrrrr‚sÿ rc@s6eZdZdd„Zd dd„Zdd„Zdd „Zd d „ZdS) rcCsgd¢|_dS)N)r0r3ú;ú ú:)Ú preferredrrrrr ªszSniffer.__init__NcCsd| ||¡\}}}}|s(| ||¡\}}|s4tdƒ‚Gdd„dtƒ}||_||_|pVd|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedr2N)r&r'r(r)r.r r/rrrrr9½sr9r1)Ú_guess_quote_and_delimiterÚ_guess_delimiterrrr,r*r+r-)rÚsampleÚ delimitersr+r,r*r-r9rrrÚsniff¯s ÿ ÿ z Sniffer.sniffc Csœg}dD]*}t |tjtjB¡}| |¡}|rq4q|s[^\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))rFNrrÚquoteéÚdelimÚspace©rHr4rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rmrkTF) ÚreÚcompileÚDOTALLÚ MULTILINEÚfindallÚ groupindexrYÚKeyErrorÚmaxÚescapeÚsearch)rÚdatariÚmatchesZrestrZregexpZquotesÚdelimsÚspacesruÚmÚnrHr+rmr-Z dq_regexpr,rrrrfÌs`           ÿþ z"Sniffer._guess_quote_and_delimitercCsttd| d¡ƒƒ}dd„tdƒDƒ}tdt|ƒƒ}d}i}i}i}d|} } | t|ƒk�rR|d7}|| | …D]@} |D]6} | | i¡} |  | ¡}|  |d¡d| |<| || <qxqp| ¡D]ž} t||   ¡ƒ}t|ƒdkrì|dddkrìqºt|ƒdk�rLt |dd „d �|| <|  || ¡|| d|| dt d d „|Dƒƒf|| <qº|d|| <qº|  ¡}t t||t|ƒƒƒ}d }d}t|ƒdk�rþ||k�rþ|D]T\}}|ddk�rœ|ddk�rœ|d||k�rœ|du�sæ||v�rœ|||<�qœ|d8}�q€t|ƒdk�rDt| ¡ƒd}|d |¡|d d|¡k}||fS| } | |7} qN|�s\dSt|ƒdk�r²|jD]@}|| ¡v�rp|d |¡|d d|¡k}||fS�qpdd„|  ¡Dƒ}| ¡|dd}|d |¡|d d|¡k}||fS)Nr4cSsg|] }t|ƒ‘qSr)Úchr)rUÚcrrrrW-rXz,Sniffer._guess_delimiter..éé rrlcSs|dS)Nrlr)rVrrrÚGrXz*Sniffer._guess_delimiter..rocss|]}|dVqdS)rlNr)rUÚitemrrrr\LrXz+Sniffer._guess_delimiter..gð?gÍÌÌÌÌÌì?g{®Gáz„?z%c )rrcSsg|]\}}||f‘qSrr)rUÚkÚvrrrrWvrXéÿÿÿÿ)ÚlistÚfilterÚsplitÚrangeÚminrErYÚcountr]ÚitemsrwÚremoveÚsumÚfloatreÚsort)rrzriÚasciiZ chunkLengthZ iterationZ charFrequencyZmodesr|ÚstartÚendÚlineÚcharZ metaFrequencyZfreqr�ZmodeListÚtotalZ consistencyZ thresholdr†r‡rmr-rGrrrrgs‚     ÿ  ÿÿ   ÿ   ÿ  ÿzSniffer._guess_delimiterc Cs‚tt|ƒ| |¡ƒ}t|ƒ}t|ƒ}i}t|ƒD] }d||<q0d}|D]ª}|dkrVqò|d7}t|ƒ|krlqFt| ¡ƒD]v} tt t fD]2} z| || ƒWqÆWq†t t fy¶Yq†0q†t|| ƒ} | || krx|| durè| || <qx|| =qxqFd} |  ¡D]z\} } t| ƒtdƒk�r>t|| ƒ| k�r4| d7} n| d8} qþz| || ƒWn t tf�yn| d7} Yqþ0| d8} qþ| dkS)Nrérl)rrrjr@rErŒr‰r]Úintr’ÚcomplexrOÚ OverflowErrorr�Útyper#) rrhZrdrrRÚcolumnsZ columnTypesÚiÚcheckedrFÚcolZthisTypeZ hasHeaderZcolTyperrrÚ has_headersH            zSniffer.has_header)N)r&r'r(r rjrfrgr£rrrrr¥s  Lgr)rpZ_csvrrrrrrrr r r r r rrrr"ÚiorÚ__all__rrrrrrœÚ NameErrorr’rrrrrÚs$@     2