o ?Og>@s ddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZgdZGdddZGdd d eZed eGd d d eZed eGd ddeZedeGdddZGdddZzeWn eyeZYnwGdddZdS)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@sBeZdZ dZdZdZdZdZdZdZ dZ dZ ddZ ddZ dS)rFNcCs|jtkrd|_|dS)NT) __class__r_valid _validateselfr*/opt/alt/python310/lib64/python3.10/csv.py__init__*s  zDialect.__init__c Cs4zt|WdSty}ztt|d}~wwN)_Dialect TypeErrorrstr)rerrrr/s  zDialect._validate)__name__ __module__ __qualname___namer delimiter quotecharZ escapechar doublequoteskipinitialspacelineterminatorquotingr rrrrrrs rc@&eZdZ dZdZdZdZdZeZ dS)r,"TF N) r&r'r(r*r+r,r-r.r r/rrrrr6rc@seZdZ dZdS)r N)r&r'r(r*rrrrr@srz excel-tabc@r0)rr1r2TF N) r&r'r(r*r+r,r-r.r r/rrrrrEr4rZunixc@sDeZdZ  d ddZddZeddZejd dZd d ZdS) rNrcOs<||_||_||_t||g|Ri||_||_d|_dSNr) _fieldnamesrestkeyrestvalrdialectline_num)rf fieldnamesr9r:r;argskwdsrrrr Qs  zDictReader.__init__cCs|Sr!rrrrr__iter__ZszDictReader.__iter__cCs>|jdurzt|j|_Wn tyYnw|jj|_|jSr!)r8nextr StopIterationr<rrrrr>]s   zDictReader.fieldnamescCs ||_dSr!)r8)rvaluerrrr>gs cCs|jdkr|jt|j}|jj|_|gkrt|j}|gkstt|j|}t|j}t|}||kr?||d||j<|S||krR|j|dD]}|j||<qJ|Sr7) r<r>rBrdictziplenr9r:)rrowdZlfZlrkeyrrr__next__ks"      zDictReader.__next__)NNNr) r&r'r(r rApropertyr>setterrKrrrrrPs     rc@s:eZdZ  dddZddZdd Zd d Zd d ZdS)rrraisercOsH||_||_|dvrtd|||_t||g|Ri||_dS)N)rNignorez-extrasaction (%s) must be 'raise' or 'ignore')r>r:lower ValueError extrasactionr)rr=r>r:rRr;r?r@rrrr s zDictWriter.__init__cCstt|j|j}||Sr!)rErFr>writerow)rheaderrrr writeheaders zDictWriter.writeheadercsNjdkrj}|rtdddd|DfddjDS)NrNz(dict contains fields not in fieldnames: z, cSg|]}t|qSr)repr).0xrrr z,DictWriter._dict_to_list..c3s|] }|jVqdSr!)getr:)rXrJrowdictrrr sz+DictWriter._dict_to_list..)rRkeysr>rQjoin)rr^Z wrong_fieldsrr]r _dict_to_lists zDictWriter._dict_to_listcCs|j||Sr!)rrSrb)rr^rrrrSszDictWriter.writerowcCs|jt|j|Sr!)r writerowsmaprb)rZrowdictsrrrrcszDictWriter.writerowsN)rrNr)r&r'r(r rUrbrSrcrrrrrs   rc@s8eZdZ ddZd ddZddZdd Zd d ZdS) rcCsgd|_dS)N)r1r5; :) preferredrrrrr szSniffer.__init__NcCsf |||\}}}}|s|||\}}|stdGdddt}||_||_|p,d|_||_|S)NzCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedr3N)r&r'r(r)r.r r/rrrrr;sr;r2)_guess_quote_and_delimiter_guess_delimiterrrr,r*r+r-)rsample delimitersr+r,r*r-r;rrrsniffs   z Sniffer.sniffc Cs g}dD]}t|tjtjB}||}|rnq|sdSi}i}d}|j} |D]\} | dd} | | } | rB|| dd|| <z | dd} | | } Wn tyWYq*w| rl|dusb| |vrl|| dd|| <z| dd} Wn ty}Yq*w| | r|d7}q*t||jd} |rt||jd}|||k}|d krd }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))rFNrrquotedelimZspacerJr6rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rprnTF) recompileDOTALL MULTILINEfindall groupindexr\KeyErrormaxescapesearch)rdatarlZmatchesZrestrZregexpZquotesdelimsspacesrwmnrJr+rpr-Z dq_regexpr,rrrrisl          z"Sniffer._guess_quote_and_delimitercCs  ttd|d}ddtdD}tdt|}d}i}i}i}d|} } | t|kr.|d7}|| | D] } |D]} || i} | | }| |dd| |<| || <q=q9|D]N} t||  }t|dkrw|dddkrwq^t|dkrt |dd d || <| || || d|| dt d d |Df|| <q^|d|| <q^| }t t||t|}d }d}t|dkr||kr|D]$\}}|ddkr|ddkr|d||kr|dus||vr|||<q|d8}t|dkr||kst|dkr"t|d}|d||dd|k}||fS| } | |7} | t|ks/|s3dSt|dkr^|jD] }||vr\|d||dd|k}||fSq=dd| D}||dd}|d||dd|k}||fS)Nr6cSrVr)chr)rXcrrrrZ-r[z,Sniffer._guess_delimiter.. rrocSs|dS)Nror)rYrrrGsz*Sniffer._guess_delimiter..rqcss|]}|dVqdS)roNr)rXitemrrrr_Lsz+Sniffer._guess_delimiter..g?g?g{Gz?z%c )rrcSsg|]\}}||fqSrr)rXkvrrrrZvs)listfiltersplitrangeminrGr\countr`itemsryremovesumfloatrhsort)rr|rlasciiZ chunkLengthZ iterationZ charFrequencyZmodesr}startendlinecharZ metaFrequencyZfreqrZmodeListtotalZ consistencyZ thresholdrrrpr-rIrrrrjs          3     zSniffer._guess_delimiterc Csjtt|||}t|}t|}i}t|D]}d||<qd}|D]L}|dkr+nE|d7}t||kr6q#t|D]2} t} z| || Wnt t fyYt|| } Ynw| || krn|| durk| || <q<|| =qs*@     2