1 $[ˆÖà „^iÿßa–ß=¿JJj"Tâ�ÆEq·TÅ£Þ.I[a ´i?ã@sdZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z mZmZmZddlmZddlmZgd¢ZGdd„dƒZGd d „d eƒZed eƒGd d „d eƒZed eƒGdd„deƒZedeƒGdd„dƒZGdd„dƒZzeWne�yeZYn0Gdd„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)ÚStringIO)r 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|_| ¡dS)NT)Ú __class__rÚ_validÚ _validate©Úself©rú/usr/lib64/python3.9/csv.pyÚ__init__*s zDialect.__init__c CsBz t|ƒWn0ty<}ztt|ƒƒ‚WYd}~n d}~00dS©N)Ú_DialectÚ TypeErrorrÚstr)rÚerrrr/s zDialect._validate)Ú__name__Ú __module__Ú __qualname__rÚ_namerÚ delimiterÚ quotecharZ escapecharÚ doublequoteÚskipinitialspaceÚlineterminatorÚquotingr rrrrrrsrc@s(eZdZdZdZdZdZdZdZe Z dS)rz;Describe the usual properties of Excel-generated CSV files.ú,ú"TFú N) r&r'r(rr*r+r,r-r.r r/rrrrr6src@seZdZdZdZdS)rzEDescribe the usual properties of Excel-generated TAB-delimited files.ú N)r&r'r(rr*rrrrr@srz excel-tabc@s(eZdZdZdZdZdZdZdZe Z dS)rz:Describe the usual properties of Unix-generated CSV files.r0r1TFÚ N) r&r'r(rr*r+r,r-r.r r/rrrrrEsrZunixc@s@eZdZd dd„Zdd„Zedd„ƒZejd d„ƒZd d „ZdS) rNrcOs<||_||_||_t||g|¢Ri|¤Ž|_||_d|_dS©Nr)Ú _fieldnamesÚrestkeyÚrestvalrÚdialectÚline_num)rÚfÚ fieldnamesr7r8r9ÚargsÚkwdsrrrr Qs zDictReader.__init__cCs|Sr!rrrrrÚ__iter__ZszDictReader.__iter__cCs>|jdur.zt|jƒ|_Wnty,Yn0|jj|_|jSr!)r6ÚnextrÚ StopIterationr:rrrrr<]s   zDictReader.fieldnamescCs ||_dSr!)r6)rÚvaluerrrr<gscCs |jdkr|jt|jƒ}|jj|_|gkr8t|jƒ}q$tt|j|ƒƒ}t|jƒ}t|ƒ}||krv||d…||j<n&||krœ|j|d…D]}|j||<qŒ|Sr5) r:r<r@rÚdictÚzipÚlenr7r8)rÚrowÚdZlfZlrÚkeyrrrÚ__next__ks      zDictReader.__next__)NNNr) r&r'r(r r?Úpropertyr<ÚsetterrIrrrrrPsÿ   rc@s6eZdZddd„Zdd„Zdd „Zd d „Zd d „ZdS)rrÚraisercOsH||_||_| ¡dvr$td|ƒ‚||_t||g|¢Ri|¤Ž|_dS)N)rLÚignorez-extrasaction (%s) must be 'raise' or 'ignore')r<r8ÚlowerÚ ValueErrorÚ extrasactionr)rr;r<r8rPr9r=r>rrrr ƒs