a DOg?@sddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZgdZGdddZGdd d eZed eGd d d eZed eGd ddeZedeGdddZGdddZzeWneyeZYn0GdddZdS)N)Error __version__writerreaderregister_dialectunregister_dialect get_dialect list_dialectsfield_size_limit QUOTE_MINIMAL QUOTE_ALLQUOTE_NONNUMERIC QUOTE_NONE__doc__)Dialect)StringIO)r 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 _validateselfr(/opt/alt/python39/lib64/python3.9/csv.py__init__*s zDialect.__init__c CsBz t|Wn0ty<}ztt|WYd}~n d}~00dSN)_Dialect TypeErrorrstr)rerrrr/s zDialect._validate)__name__ __module__ __qualname___namer delimiter quotecharZ escapechar doublequoteskipinitialspacelineterminatorquotingr 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 ddZddZeddZejd dZd d ZdS) rNrcOs<||_||_||_t||g|Ri||_||_d|_dSNr) _fieldnamesrestkeyrestvalrdialectline_num)rf fieldnamesr7r8r9argskwdsrrrr Qs zDictReader.__init__cCs|Sr!rrrrr__iter__ZszDictReader.__iter__cCs>|jdur.zt|j|_Wnty,Yn0|jj|_|jSr!)r6nextr StopIterationr:rrrrr<]s   zDictReader.fieldnamescCs ||_dSr!)r6)rvaluerrrr<gscCs|jdkr|jt|j}|jj|_|gkr8t|j}q$tt|j|}t|j}t|}||krv||d||j<n&||kr|j|dD]}|j||<q|Sr5) r:r<r@rdictziplenr7r8)rrowdZlfZlrkeyrrr__next__ks      zDictReader.__next__)NNNr) r&r'r(r r?propertyr<setterrIrrrrrPs   rc@s6eZdZdddZddZdd Zd d Zd d ZdS)rrraisercOsH||_||_|dvr$td|||_t||g|Ri||_dS)N)rLignorez-extrasaction (%s) must be 'raise' or 'ignore')r<r8lower ValueError extrasactionr)rr;r<r8rPr9r=r>rrrr s zDictWriter.__init__cCstt|j|j}||Sr!)rCrDr<writerow)rheaderrrr writeheaderszDictWriter.writeheadercsNjdkr8j}|r8tdddd|DfddjDS)NrLz(dict contains fields not in fieldnames: z, cSsg|] }t|qSr)repr).0xrrr z,DictWriter._dict_to_list..c3s|]}|jVqdSr!)getr8)rUrHrowdictrrr rXz+DictWriter._dict_to_list..)rPkeysr<rOjoin)rr[Z wrong_fieldsrrZr _dict_to_lists zDictWriter._dict_to_listcCs|j||Sr!)rrQr_)rr[rrrrQszDictWriter.writerowcCs|jt|j|Sr!)r writerowsmapr_)rZrowdictsrrrr`szDictWriter.writerowsN)rrLr)r&r'r(r rSr_rQr`rrrrrs rc@s6eZdZddZd ddZddZdd Zd d ZdS) rcCsgd|_dS)N)r0r3; :) preferredrrrrr szSniffer.__init__NcCsd|||\}}}}|s(|||\}}|s4tdGdddt}||_||_|pVd|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedr2N)r&r'r(r)r.r r/rrrrr9sr9r1)_guess_quote_and_delimiter_guess_delimiterrrr,r*r+r-)rsample delimitersr+r,r*r-r9rrrsniffs  z Sniffer.sniffc Csg}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))rFNrrquotedelimZspacerHr4rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rmrkTF) recompileDOTALL MULTILINEfindall groupindexrYKeyErrormaxescapesearch)rdatariZmatchesZrestrZregexpZquotesdelimsspacesrtmnrHr+rmr-Z dq_regexpr,rrrrfs`            z"Sniffer._guess_quote_and_delimitercCsttd|d}ddtdD}tdt|}d}i}i}i}d|} } | t|krR|d7}|| | D]@} |D]6} || i} | | }| |dd| |<| || <qxqp|D]} t||  }t|dkr|dddkrqt|dkrLt |dd d || <| || || d|| dt d d |Df|| <q|d|| <q| }t t||t|}d }d}t|dkr||kr|D]T\}}|ddkr|ddkr|d||kr|dus||vr|||<q|d8}qt|dkrDt|d}|d||dd|k}||fS| } | |7} qN|s\dSt|dkr|jD]@}||vrp|d||dd|k}||fSqpdd| D}||dd}|d||dd|k}||fS)Nr4cSsg|] }t|qSr)chr)rUcrrrrW-rXz,Sniffer._guess_delimiter.. rrlcSs|dS)Nrlr)rVrrrGrXz*Sniffer._guess_delimiter..rncss|]}|dVqdS)rlNr)rUitemrrrr\LrXz+Sniffer._guess_delimiter..g?g?g{Gz?z%c )rrcSsg|]\}}||fqSrr)rUkvrrrrWvrX)listfiltersplitrangeminrErYcountr]itemsrvremovesumfloatresort)rryriasciiZ chunkLengthZ iterationZ charFrequencyZmodesrzstartendlinecharZ metaFrequencyZfreqrZmodeListtotalZ consistencyZ thresholdrrrmr-rGrrrrgs               zSniffer._guess_delimiterc Cstt|||}t|}t|}i}t|D] }d||<q0d}|D]}|dkrVq|d7}t||krlqFt|D]v} tt t fD]2} z| || WqWqt t fyYq0qt|| } | || krx|| dur| || <qx|| =qxqFd} | D]z\} } t| tdkr>t|| | kr4| d7} n| d8} qz| || Wn t tfyn| d7} Yq0| d8} q| dkS)Nrrl)rrrjr@rErrr]intrcomplexrO OverflowErrorrtyper#) rrhZrdrrRcolumnsZ columnTypesicheckedrFcolZthisTypeZ hasHeaderZcolTyperrr has_headersH            zSniffer.has_header)N)r&r'r(r rjrfrgrrrrrrs  Lgr)roZ_csvrrrrrrrr r r r r rrrr"ior__all__rrrrrr NameErrorrrrrrrs$@     2