U ,a?@s<ddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZddddd d d d d ddddddddddddgZGdd d ZGdd d eZed eGdd d eZedeGdddeZedeGd ddZGd!ddZzeWnek r(eZYnXGd"ddZdS)#N)Error __version__writerreaderregister_dialectunregister_dialect get_dialect list_dialectsfield_size_limit QUOTE_MINIMAL QUOTE_ALLQUOTE_NONNUMERIC QUOTE_NONE__doc__)Dialect)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 _validateselfr(/opt/alt/python38/lib64/python3.8/csv.py__init__*s zDialect.__init__c Cs@z t|Wn.tk r:}ztt|W5d}~XYnXdSN)_Dialect TypeErrorrstr)rerrrr/s zDialect._validate)__name__ __module__ __qualname___namer delimiter quotecharZ escapechar doublequoteskipinitialspacelineterminatorquotingr rrrrrrsc@s$eZdZdZdZdZdZdZeZ dS)r,"TF N) r&r'r(r*r+r,r-r.r r/rrrrr6s c@seZdZdZdS)r N)r&r'r(r*rrrrr@sz excel-tabc@s$eZdZdZdZdZdZdZeZ dS)rr0r1TF N) r&r'r(r*r+r,r-r.r r/rrrrrEs Zunixc@s@eZdZd ddZddZeddZejd dZd d ZdS) rNrcOs6||_||_||_t||f|||_||_d|_dSNr) _fieldnamesrestkeyrestvalrdialectline_num)rf fieldnamesr7r8r9argskwdsrrrr Qs zDictReader.__init__cCs|Sr!rrrrr__iter__ZszDictReader.__iter__cCs@|jdkr0zt|j|_Wntk r.YnX|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   c@s6eZdZdddZddZdd Zd d Zd d ZdS)rrraisercOsB||_||_|dkr$td|||_t||f|||_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 sz,DictWriter._dict_to_list..c3s|]}|jVqdSr!)getr8)rUrHrowdictrrr sz+DictWriter._dict_to_list..)rPkeysr<rOjoin)rrZZ wrong_fieldsrrYr _dict_to_lists zDictWriter._dict_to_listcCs|j||Sr!)rrQr^)rrZrrrrQszDictWriter.writerowcCs|jt|j|Sr!)r writerowsmapr^)rZrowdictsrrrr_szDictWriter.writerowsN)rrLr)r&r'r(r rSr^rQr_rrrrrs c@s6eZdZddZd ddZddZdd Zd d ZdS) rcCsdddddg|_dS)Nr0r3; :) 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)|$))rlrjTF) recompileDOTALL MULTILINEfindall groupindexrXKeyErrormaxescapesearch)rdatarhZmatchesZrestrZregexpZquotesdelimsZspacesrsmnrHr+rlr-Z dq_regexpr,rrrres`           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|dks||kr|||<q|d8}qt|dkrDt|d}|d||dd|k}||fS| } | |7} qN|s\dSt|dkr|jD]@}||krp|d||dd|k}||fSqpdd| D}||dd}|d||dd|k}||fS)Nr4cSsg|] }t|qSr)chr)rUcrrrrW-sz,Sniffer._guess_delimiter.. rrkcSs|dS)Nrkr)rVrrrGz*Sniffer._guess_delimiter..rmcss|]}|dVqdS)rkNr)rUitemrrrr[Lsz+Sniffer._guess_delimiter..g?g?g{Gz?z%c )rrcSsg|]\}}||fqSrr)rUkvrrrrWvs)listfiltersplitrangeminrErXcountr\itemsruremovesumfloatrdsort)rrxrhasciiZ chunkLengthZ iterationZ charFrequencyZmodesrystartendlinecharZ metaFrequencyZfreqrZmodeListZtotalZ consistencyZ thresholdrrrlr-rGrrrrfs               zSniffer._guess_delimiterc Cstt|||}t|}t|}i}t|D] }d||<q0d}|D]}|dkrVq|d7}t||krlqFt|D]x} tt t fD]4} z| || WqWqt t fk rYqXqt|| } | || krx|| dkr| || <qx|| =qxqFd} | D]~\} } t| tdkr@t|| | kr6| d7} n| d8} nsH@     2