f> ddlZddlmZmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZddlmZddlmZgdZGddZGdd eZed eGd d eZed eGd deZedeGddZGddZ en #e$reZYnwxYwGddZdS)N)Error __version__writerreaderregister_dialectunregister_dialect get_dialect list_dialectsfield_size_limit QUOTE_MINIMAL QUOTE_ALLQUOTE_NONNUMERIC QUOTE_NONE__doc__)Dialect)StringIO)r r rrrrrexcel excel_tabr rrrr r Snifferrr DictReader DictWriter unix_dialectc@eZdZ dZdZdZdZdZdZdZ dZ dZ dZ dZ dS)rFNc\|jtkrd|_|dS)NT) __class__r_valid _validateselfs */opt/alt/python311/lib64/python3.11/csv.py__init__zDialect.__init__*s, >W $ $DK c t|dS#t$r!}tt|d}~wwxYwN)_Dialect TypeErrorrstr)r es r!rzDialect._validate/sG TNNNNN   A--  s >9>)__name__ __module__ __qualname___namer delimiter quotechar escapechar doublequoteskipinitialspacelineterminatorquotingr"rr#r!rrsg E FIIJKNG      r#rc(eZdZ dZdZdZdZdZeZ dS)r,"TF N) r*r+r,r.r/r1r2r3r r4r5r#r!rr6s0EIIKNGGGr#rceZdZ dZdS)r N)r*r+r,r.r5r#r!rr@sOIIIr#rz excel-tabc(eZdZ dZdZdZdZdZeZ dS)rr7r8TF N) r*r+r,r.r/r1r2r3r r4r5r#r!rrEs0DIIKNGGGr#runixc\eZdZ ddZdZedZejdZdZdS) rNrcx||_||_||_t||g|Ri||_||_d|_dSNr) _fieldnamesrestkeyrestvalrdialectline_num)r f fieldnamesrCrDrEargskwdss r!r"zDictReader.__init__QsK%  Q7$777$77   r#c|Sr%r5rs r!__iter__zDictReader.__iter__Zs r#c|j+ t|j|_n#t$rYnwxYw|jj|_|jSr%)rBnextr StopIterationrFrs r!rHzDictReader.fieldnames]sZ   # #' #4#4        , s # 00c||_dSr%)rB)r values r!rHzDictReader.fieldnamesgs r#c|jdkr|jt|j}|jj|_|gkrt|j}|gkt t |j|}t |j}t |}||kr||d||j<n"||kr|j|dD] }|j||< |SrA) rFrHrNrdictziplenrCrD)r rowdlflrkeys r!__next__zDictReader.__next__ks =A   OO4; , Riit{##CRii T_c** + +  ! ! XX 77!"##hAdlOO "WWrss+ & &#r#)NNNr) r*r+r,r"rLpropertyrHsetterr[r5r#r!rrPsAE   X !!!r#rc2eZdZ d dZdZdZdZdZd S) rrraiserc||_||_|dvrtd|z||_t ||g|Ri||_dS)N)r_ignorez-extrasaction (%s) must be 'raise' or 'ignore')rHrDlower ValueError extrasactionr)r rGrHrDrdrErIrJs r!r"zDictWriter.__init__sr$     ': : :L+,-- -(Q7$777$77 r#cztt|j|j}||Sr%)rSrTrHwriterow)r headers r! writeheaderzDictWriter.writeheaders/c$/4?;;<<}}V$$$r#cjdkrMjz }|r/tddd|DzfdjDS)Nr_z(dict contains fields not in fieldnames: z, c,g|]}t|Sr5)repr).0xs r! z,DictWriter._dict_to_list..s-L-L-L!d1gg-L-L-Lr#c3NK|]}|jV dSr%)getrD)rlrZrowdictr s r! z+DictWriter._dict_to_list..s3JJ3 C..JJJJJJr#)rdkeysrHrcjoin)r rq wrong_fieldss`` r! _dict_to_listzDictWriter._dict_to_lists   ' '"<<>>DO;L O !K#'99-L-L|-L-L-L#M#M"NOOOJJJJJ$/JJJJr#c\|j||Sr%)rrfrv)r rqs r!rfzDictWriter.writerows&{##D$6$6w$?$?@@@r#c\|jt|j|Sr%)r writerowsmaprv)r rowdictss r!ryzDictWriter.writerowss%{$$S);X%F%FGGGr#N)rr_r)r*r+r,r"rhrvrfryr5r#r!rrsu?F 8888%%%KKKAAAHHHHHr#rc0eZdZ dZddZdZdZdZdS)rcgd|_dS)N)r7r;; :) preferredrs r!r"zSniffer.__init__s333r#Nc |||\}}}}|s|||\}}|stdGddt}||_||_|pd|_||_|S)NzCould not determine delimiterceZdZdZdZeZdS)Sniffer.sniff..dialectsniffedr9N)r*r+r,r-r3r r4r5r#r!rErsE#N#GGGr#rEr8)_guess_quote_and_delimiter_guess_delimiterrrr1r.r/r2)r sample delimitersr/r1r.r2rEs r!sniffz Sniffer.sniffs 226:FF < ; +; L*.*?*?@J+L+L 'I' 9788 8 $ $ $ $ $g $ $ $ *%%,#3 r#cL g}dD]G}tj|tjtjz}||}|rnH|sdSi}i}d}|j} |D]} | ddz } | | } | r|| ddz|| < | ddz } | | } n#t$rYTwxYw| r"|| |vr|| ddz|| < | ddz } n#t$rYwxYw| | r|dz }t||j} |r+t||j}|||k}|d krd }nd }d}tjd tj || d ztj}| |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))rFNrrquotedelimspacerZr=rz]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rrTF) recompileDOTALL MULTILINEfindall groupindexrpKeyErrormaxescapesearch)r datarmatchesrestrregexpquotesdelimsspacesrmnrZr/rr2 dq_regexpr1s r!rz"Sniffer._guess_quote_and_delimitersV H  EZry2<'?@@FnnT**G   (''&   A7#a'AA$C 5$jja0014s  w'!+d     5 *cZ.?.?$jja0014s  w'!+    t ! FJ///  !FJ///E%e}6 }}E J(* %(8(8)LL MNPl\\   D ! ! KKK;/?@@s$B)) B65B6 C** C76C7c0 ttd|d}dtdD}t dt |}d}i}i}i}d|} } | t |kr|dz }|| | D]S} |D]N} || i} | | }| |ddz| |<| || <OT|D]} t||  }t |dkr|dddkrOt |dkrjt|d|| <| || || d|| dtd |Dz f|| <|d|| <| }tt ||zt |}d }d }t |dkr^||krX|D]7\}}|ddkr&|ddkr|d|z |kr |||vr|||<8|d z}t |dkr||kXt |dkrft|d}|d||dd |zk}||fS| } | |z } | t |k|sdSt |dkra|jD]Y}||vrA|d||dd |zk}||fcSZd| D}||dd}|d||dd |zk}||fS)Nr=c,g|]}t|Sr5)chr)rlcs r!rnz,Sniffer._guess_delimiter..-s,,,AQ,,,r# rrc|dS)Nrr5)rms r!z*Sniffer._guess_delimiter..Gs 1Q4r#rc3&K|] }|dV dS)rNr5)rlitems r!rrz+Sniffer._guess_delimiter..Ls&(C(CTa(C(C(C(C(C(Cr#g?g?g{Gz?z%c )rrcg|] \}}||f Sr5r5)rlkvs r!rnz,Sniffer._guess_delimiter..vs 3335Aa!A333r#)listfiltersplitrangeminrUrpcountrsitemsrremovesumfloatrsort)r rrascii chunkLength iteration charFrequencymodesrstartendlinechar metaFrequencyfreqrmodeListtotal consistency thresholdrrrr2rWs r!rzSniffer._guess_delimitersk $F4D!1!12233,,s,,,"c$ii((    sc$ii NIU3Y 8 8!88D$1$5$5dB$?$?M::d++D*7*;*;D!*D*Dq*HM$'*7M$'' 8&**,, + +]40668899u::??uQx{a'7'7u::>>"%e"@"@"@E$KLLt---#(;q>5;q>%((C(CU(C(C(C%C%C4D#EE$KK#((E$KK{{}}H#kI5s4yyAABBEKIf++""{i'?'?$**DAqtaxxAaD1HHqT%ZK77'/1 ??()F1It# f++""{i'?'?6{{aV[[]]++A.$(GMM%$8$8$(GMM%%-$@$@%A /00E ; Ccc$iif 7 v;;??^ 1 1 %%(,Q a(8(8(,Q eai(@(@)A$/0000&43FLLNN333 b !  GMM%00 GMM%%-889'((r#cbtt|||}t|}t |}i}t |D]}d||<d}|D]}|dkrn|dz }t ||kr#t |D]e} t} | || n,#ttf$rt || } YnwxYw| || kr|| | || <b|| =fd} | D]}\} } t| tdkr%t || | kr| dz } D| dz} J | || | dz} b#ttf$r| dz } YzwxYw| dkS)Nrr)rrrrNrUrrrscomplexrc OverflowErrorrtyper') r rrdrrgcolumns columnTypesicheckedrVcolthisType hasHeadercolTypes r! has_headerzSniffer.has_headersXf%%tzz&'9'9::cf++ w66A$Q - -C|| qLG3xx7""K,,..// - -"-HSX&&&&"M2---"3s8}}HHH-{3///"3'/+3 C(((, -$ '--// # #LCG}}Q''vc{##w..NIINII#GF3K(((NII#I.###NIII# 1}s$:C  &C54C58FF('F(r%)r*r+r,r"rrrrr5r#r!rrst444 :IAIAIAXd)d)d)N=====r#r)r_csvrrrrrrr r r r r rrrrr&ior__all__rrrrrr NameErrorrrr5r#r!rs  %$$$$$           >G% i(((7&&&////////dHHHHHHHH< GGGGGWWWWWWWWWWs,B//B98B9