Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
3 \4?ã@sLdZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZddlmZddlmZddlmZddd d d d d ddddddddddddddgZGdd „d ƒZGdd„deƒZedeƒGdd„deƒZedeƒGd d„deƒZed!eƒGd"d„dƒZGd#d„dƒZyeWnek �r8eZYnXGd$d„dƒZdS)%z+ csv.py - read/write/investigate CSV files é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)Ú OrderedDict)ÚStringIOr r r rrrrÚexcelÚ excel_tabr rrrrr ÚSnifferrrÚ DictReaderÚ DictWriterÚ unix_dialectc@sDeZdZdZdZdZdZdZdZdZ dZ dZ dZ dd„Z dd„ZdS) rzÄDescribe a CSV dialect. This must be subclassed (see csv.excel). Valid attributes are: delimiter, quotechar, escapechar, doublequote, skipinitialspace, lineterminator, quoting. ÚFNcCs|jtkrd|_|jƒdS)NT)Ú __class__rÚ_validÚ _validate)Úself©rú/usr/lib64/python3.6/csv.pyÚ__init__+s zDialect.__init__cCs@y t|ƒWn.tk r:}ztt|ƒƒ‚WYdd}~XnXdS)N)Ú_DialectÚ TypeErrorrÚstr)rÚerrrr0s zDialect._validate)Ú__name__Ú __module__Ú __qualname__rÚ_namerÚ delimiterÚ quotecharZ escapecharÚ doublequoteÚskipinitialspaceÚlineterminatorÚquotingr rrrrrrsc@s(eZdZdZdZdZdZdZdZe Z dS)rz;Describe the usual properties of Excel-generated CSV files.ú,ú"TFz N) r%r&r'rr)r*r+r,r-r r.rrrrr7sc@seZdZdZdZdS)rzEDescribe the usual properties of Excel-generated TAB-delimited files.ú N)r%r&r'rr)rrrrrAsz excel-tabc@s(eZdZdZdZdZdZdZdZe Z dS)rz:Describe the usual properties of Unix-generated CSV files.r/r0TFÚ N) r%r&r'rr)r*r+r,r-r r.rrrrrFsZunixc@s@eZdZd dd„Zdd„Zedd„ƒZejd d„ƒZd d „ZdS) rNrcOs6||_||_||_t||f|ž|Ž|_||_d|_dS)Nr)Ú _fieldnamesÚrestkeyÚrestvalrÚdialectÚline_num)rÚfÚ fieldnamesr4r5r6ÚargsÚkwdsrrrr Rs zDictReader.__init__cCs|S)Nr)rrrrÚ__iter__[szDictReader.__iter__c Cs@|jdkr0yt|jƒ|_Wntk r.YnX|jj|_|jS)N)r3ÚnextrÚ StopIterationr7)rrrrr9^s  zDictReader.fieldnamescCs ||_dS)N)r3)rÚvaluerrrr9hscCs¨|jdkr|jt|jƒ}|jj|_x|gkr:t|jƒ}q&Wtt|j|ƒƒ}t|jƒ}t|ƒ}||krz||d…||j<n*||kr¤x |j|d…D]}|j||<q’W|S)Nr) r7r9r=rrÚzipÚlenr4r5)rÚrowÚdZlfZlrÚkeyrrrÚ__next__ls     zDictReader.__next__)NNNr) r%r&r'r r<Úpropertyr9ÚsetterrErrrrrQs   c@s6eZdZddd„Zdd„Zdd „Zd d „Zd d „ZdS)rrÚraisercOsB||_||_|jƒdkr$td|ƒ‚||_t||f|ž|Ž|_dS)NrHÚignorez-extrasaction (%s) must be 'raise' or 'ignore')rHrI)r9r5ÚlowerÚ ValueErrorÚ extrasactionr)rr8r9r5rLr6r:r;rrrr „s zDictWriter.__init__cCs tt|j|jƒƒ}|j|ƒdS)N)Údictr@r9Úwriterow)rÚheaderrrrÚ writeheaderŽszDictWriter.writeheadercsNˆjdkr8ˆjƒˆj}|r8tddjdd„|Dƒƒƒ‚‡‡fdd„ˆjDƒS)NrHz(dict contains fields not in fieldnames: z, cSsg|] }t|ƒ‘qSr)Úrepr)Ú.0Úxrrrú —sz,DictWriter._dict_to_list..c3s|]}ˆj|ˆjƒVqdS)N)Úgetr5)rRrD)Úrowdictrrrú ˜sz+DictWriter._dict_to_list..)rLÚkeysr9rKÚjoin)rrVZ wrong_fieldsr)rVrrÚ _dict_to_list’s  zDictWriter._dict_to_listcCs|jj|j|ƒƒS)N)rrNrZ)rrVrrrrNšszDictWriter.writerowcCs|jjt|j|ƒƒS)N)rÚ writerowsÚmaprZ)rZrowdictsrrrr[�szDictWriter.writerowsN)rrHr)r%r&r'r rPrZrNr[rrrrrƒs  c@s:eZdZdZdd„Zd dd„Zdd„Zd d „Zd d „ZdS)rze "Sniffs" the format of a CSV file (i.e. delimiter, quotechar) Returns a Dialect object. cCsdddddg|_dS)Nr/r1ú;ú ú:)Ú preferred)rrrrr «szSniffer.__init__NcCsd|j||ƒ\}}}}|s(|j||ƒ\}}|s4tdƒ‚Gdd„dtƒ}||_||_|pVd|_||_|S)zI Returns a dialect (or None) corresponding to the sample zCould not determine delimiterc@seZdZdZdZeZdS)zSniffer.sniff..dialectZsniffedz N)r%r&r'r(r-r r.rrrrr6¾sr6r0)Ú_guess_quote_and_delimiterÚ_guess_delimiterrrr+r)r*r,)rÚsampleÚ delimitersr*r+r)r,r6rrrÚsniff°s  z Sniffer.sniffcCs¢g}x0dD](}tj|tjtjBƒ}|j|ƒ}|r Pq W|s>dSi}i}d}|j} xÊ|D]Â} | d d } | | } | r†|j| dƒd || <y| d d } | | } Wntk r´wVYnX| rÞ|dksÊ| |krÞ|j| dƒd || <y| d d } Wntk �rwVYnX| | rV|d 7}qVWt||jd �} |�rZt||jd �}|||k}|dk�rbd}nd}d}tjdtj |ƒ| dœtjƒ}|j |ƒ�r’d}nd}| |||fS)a� Looks for text enclosed between two identical quotes (the probable quotechar) which are preceded and followed by the same character (the probable delimiter). For example: ,'some text', The quote with the most wins, same with the delimiter. If there is no quotechar the delimiter can't be determined this way. úI(?P[^\w\n"\'])(?P ?)(?P["\']).*?(?P=quote)(?P=delim)úG(?:^|\n)(?P["\']).*?(?P=quote)(?P[^\w\n"\'])(?P ?)úG(?P[^\w\n"\'])(?P ?)(?P["\']).*?(?P=quote)(?:$|\n)ú-(?:^|\n)(?P["\']).*?(?P=quote)(?:$|\n)rFNrÚquoteéÚdelimZspace)rDr2z]((%(delim)s)|^)\W*%(quote)s[^%(delim)s\n]*%(quote)s[^%(delim)s\n]*%(quote)s\W*((%(delim)s)|$))rlrjT)rfrgrhri)rFNr) ÚreÚcompileÚDOTALLÚ MULTILINEÚfindallÚ groupindexrUÚKeyErrorÚmaxÚescapeÚsearch)rÚdatardZmatchesZrestrZregexpZquotesÚdelimsZspacesrrÚmÚnrDr*rlr,Z dq_regexpr+rrrraÍs`          z"Sniffer._guess_quote_and_delimitercCsttd|jdƒƒƒ}dd„tdƒDƒ}tdt|ƒƒ}d}i}i}i}dt|t|ƒƒ} } �x| t|ƒk�rn|d7}xT|| | …D]D} x>|D]6} |j| iƒ} | j| ƒ}| j|dƒd| |<| || <qŠWq€Wx®|jƒD]¢} t|| j ƒƒ}t|ƒdk�r|dddk�rqÒt|ƒdk�rht |d d „d �|| <|j || ƒ|| d|| dt d d „|Dƒƒf|| <qÒ|d|| <qÒW|j ƒ}t ||ƒ}d}d}x„t|ƒdk�r||k�rx\|D]T\}}|ddk�r´|ddk�r´|d||k�r´|dk�sþ||k�r´|||<�q´W|d8}�q–Wt|ƒdk�r`t|jƒƒd}|dj|ƒ|djd|ƒk}||fS| } | |7} q\W|�szdSt|ƒdk�rÐxF|jD]<}||jƒk�r�|dj|ƒ|djd|ƒk}||fS�q�Wdd„|j ƒDƒ}|jƒ|dd}|dj|ƒ|djd|ƒk}||fS)a½ The delimiter /should/ occur the same number of times on each row. However, due to malformed data, it may not. We don't want an all or nothing approach, so we allow for small variations in this number. 1) build a table of the frequency of each character on every line. 2) build a table of frequencies of this frequency (meta-frequency?), e.g. 'x occurred 5 times in 10 rows, 6 times in 1000 rows, 7 times in 2 rows' 3) use the mode of the meta-frequency to determine the /expected/ frequency for that character 4) find out how often the character actually meets that goal 5) the character that best meets its goal is the delimiter For performance reasons, the data is evaluated in chunks, so it can try and evaluate the smallest portion of the data possible, evaluating additional chunks as necessary. Nr2cSsg|] }t|ƒ‘qSr)Úchr)rRÚcrrrrT.sz,Sniffer._guess_delimiter..éé rrkcSs|dS)Nrkr)rSrrrÚHsz*Sniffer._guess_delimiter..)rDcss|]}|dVqdS)rkNr)rRÚitemrrrrWMsz+Sniffer._guess_delimiter..gð?gÍÌÌÌÌÌì?g{®Gáz„?z%c rcSsg|]\}}||f‘qSrr)rRÚkÚvrrrrTws)rréÿÿÿÿ)ÚlistÚfilterÚsplitÚrangeÚminrArUÚcountrXÚitemsrtÚremoveÚsumÚfloatr`Úsort)rrwrdÚasciiZ chunkLengthZ iterationZ charFrequencyZmodesrxÚstartÚendÚlineÚcharZ metaFrequencyZfreqrŠZmodeListZtotalZ consistencyZ thresholdr�r‚rlr,rCrrrrbst           zSniffer._guess_delimiterc Cs–tt|ƒ|j|ƒƒ}t|ƒ}t|ƒ}i}xt|ƒD] }d||<q2Wd}x¶|D]®}|dkrZP|d7}t|ƒ|krpqLxˆt|jƒƒD]x} xJtt t gD]0} y| || ƒPWqŽt t fk r¼YqŽXqŽWt|| ƒ} | || kr~|| dkrð| || <q~|| =q~WqLWd} xŠ|j ƒD]~\} } t| ƒtdƒk�rLt|| ƒ| k�rB| d7} n| d8} ns2@       2