
    Eh                        d dl Z d dlZd dlmZ g dZg dez   ZeD ]  Z ee e       e       e<    d Z	ddZ
d Z G d d	e      ZeZ G d
 de      ZeZ G d de j"                        Z G d de j$                        Zy)    N)izip)register_dialectunregister_dialectget_dialectlist_dialectsfield_size_limitDialectexcel	excel_tabSniffer	QUOTE_ALLQUOTE_MINIMALQUOTE_NONNUMERIC
QUOTE_NONEError)readerwriter
DictReader
DictWriterc                     | yt        | t              r| j                  ||      S t        | t        j                        r	 | S t        | t
              st        |       } | S )N )
isinstanceunicodeencodenumbersNumberstr)sencodingerrorss      O/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/unicodecsv/py2.py
_stringifyr"   "   sW    y!Wxx&))	Aw~~	& H 3FH    c                     	 t        |       D cg c]  }t        |||       c}S c c}w # t        $ r#}t        j                  t        |            d }~ww xY wN)iterr"   	TypeErrorcsvr   r   )lr   r    r   es        r!   _stringify_listr+   .   sK     9=aAA
1h/AAA  iiA s    + &+ + 	AAAc                     | y t        | t        t        t        f      r| S t        | t              r| j                  |      S | S r%   )r   r   intfloatr   decode)r   r   s     r!   
_unicodifyr0   5   s>    y!gsE*+	As	xx!!Hr#   c                   N    e Zd ZdZej
                  ddfdZd Zd Ze	d        Z
y)	UnicodeWriteruQ  
    >>> import unicodecsv
    >>> from cStringIO import StringIO
    >>> f = StringIO()
    >>> w = unicodecsv.writer(f, encoding='utf-8')
    >>> w.writerow((u'é', u'ñ'))
    >>> f.seek(0)
    >>> r = unicodecsv.reader(f, encoding='utf-8')
    >>> row = r.next()
    >>> row[0] == u'é'
    True
    >>> row[1] == u'ñ'
    True
    utf-8strictc                 ^    || _         t        j                  ||g|i || _        || _        y r%   )r   r(   r   encoding_errors)selffdialectr   r    argskwdss          r!   __init__zUnicodeWriter.__init__N   s-     jjG;d;d;%r#   c                 v    | j                   j                  t        || j                  | j                              S r%   )r   writerowr+   r   r6   )r7   rows     r!   r>   zUnicodeWriter.writerowT   s1    {{##T]]D4H4HIK 	Kr#   c                 4    |D ]  }| j                  |        y r%   )r>   )r7   rowsr?   s      r!   	writerowszUnicodeWriter.writerowsX   s     	CMM#	r#   c                 .    | j                   j                  S r%   )r   r9   r7   s    r!   r9   zUnicodeWriter.dialect\       {{"""r#   N)__name__
__module____qualname____doc__r(   r
   r<   r>   rB   propertyr9    r#   r!   r2   r2   ?   s8     #&))gh &K # #r#   r2   c                   @    e Zd ZddZd Zd Zed        Zed        Zy)UnicodeReaderNc                 J   g d}|9t        |j                         D cg c]  }||v  c}      st        j                  }t        j                  ||fi || _        || _        || _        t        | j                  j                  t        j                  z        | _        y c c}w )N)	delimiterdoublequote
escapecharlineterminator	quotecharquotingskipinitialspace)anykeysr(   r
   r   r   r6   boolr9   rT   r   _parse_numerics)r7   r8   r9   r   r    r;   format_paramskwd_names           r!   r<   zUnicodeReader.__init__c   s    - ?(,		5$ !M1 5 6))jjG4t4 %#LL  3#7#77 95s   B c                 &   | j                   j                         }| j                  }| j                  }t        }| j
                  r,t        }|D cg c]  }t        ||      r|n	 ||||       c}S |D cg c]  } ||||       c}S c c}w c c}w r%   )r   nextr   r6   r   rY   r.   r   )r7   r?   r   r6   unicode_float_values          r!   r]   zUnicodeReader.nextt   s    kk ==..F "%& )7UUHo>? & &
 "%& UHo> & &	&&s   B	5Bc                     | S r%   rK   rD   s    r!   __iter__zUnicodeReader.__iter__   s    r#   c                 .    | j                   j                  S r%   )r   r9   rD   s    r!   r9   zUnicodeReader.dialect   rE   r#   c                 .    | j                   j                  S r%   )r   line_numrD   s    r!   re   zUnicodeReader.line_num   s    {{###r#   )Nr3   r4   )	rF   rG   rH   r<   r]   rb   rJ   r9   re   rK   r#   r!   rM   rM   b   s9    9"& # # $ $r#   rM   c                   $    e Zd ZdZ	 	 	 ddZd Zy)r   u&  
    >>> from cStringIO import StringIO
    >>> f = StringIO()
    >>> w = DictWriter(f, ['a', u'ñ', 'b'], restval=u'î')
    >>> w.writerow({'a':'1', u'ñ':'2'})
    >>> w.writerow({'a':'1', u'ñ':'2', 'b':u'ø'})
    >>> w.writerow({'a':u'é', u'ñ':'2'})
    >>> f.seek(0)
    >>> r = DictReader(f, fieldnames=['a', u'ñ'], restkey='r')
    >>> r.next() == {'a': u'1', u'ñ':'2', 'r': [u'î']}
    True
    >>> r.next() == {'a': u'1', u'ñ':'2', 'r': [u'Ã¸']}
    True
    >>> r.next() == {'a': u'Ã©', u'ñ':'2', 'r': [u'Ã®']}
    True
    c                     || _         t        j                  j                  | |||||g|i |	 t	        ||g|||d|	| _        || _        y )Nr   r    )r   r(   r   r<   r2   r   r6   )
r7   csvfile
fieldnamesrestvalextrasactionr9   r   r    r:   r;   s
             r!   r<   zDictWriter.__init__   ss     !gz7 ,g	F8<	F@D	F#GW B48Bx+1B<@B%r#   c                 x    t        t        | j                  | j                              }| j                  |       y r%   )dictziprj   r>   )r7   headers     r!   writeheaderzDictWriter.writeheader   s'    c$//4??;<fr#   N)r   raiser
   r3   r4   )rF   rG   rH   rI   r<   rq   rK   r#   r!   r   r      s      57AH &r#   r   c                   "    e Zd ZdZ	 	 ddZd Zy)r   u  
    >>> from cStringIO import StringIO
    >>> f = StringIO()
    >>> w = DictWriter(f, fieldnames=['name', 'place'])
    >>> w.writerow({'name': 'Cary Grant', 'place': 'hollywood'})
    >>> w.writerow({'name': 'Nathan Brillstone', 'place': u'øLand'})
    >>> w.writerow({'name': u'Will ø. Unicoder', 'place': u'éSpandland'})
    >>> f.seek(0)
    >>> r = DictReader(f, fieldnames=['name', 'place'])
    >>> print r.next() == {'name': 'Cary Grant', 'place': 'hollywood'}
    True
    >>> print r.next() == {'name': 'Nathan Brillstone', 'place': u'øLand'}
    True
    >>> print r.next() == {'name': u'Will ø. Unicoder', 'place': u'éSpandland'}
    True
    Nc                    |t        ||      }t        j                  j                  | |||||g|i |	 t	        ||g|||d|	| _        |Ut        t        j                  d      s;t	        ||g|d|i|	}
t        |
j                         |
j                        | _	        | j                  *| j                  D cg c]  }t        ||       c}| _        ng | _        t        ||      | _        y c c}w )Nrh   rj   r   )r+   r(   r   r<   rM   r   hasattrr]   r   rj   r0   unicode_fieldnamesunicode_restkey)r7   ri   rj   restkeyrk   r9   r   r    r:   r;   r   r8   s               r!   r<   zDictReader.__init__   s    !(X>Jgz7G '	8*.	826	8#GW B48Bx+1B<@Bgcnnl&K #7G 2$(2h 2,02F-fkkmV__MDO??&'+'81z!X'> '8D# ')D#)'8<'8s    C5c                    t         j                  j                  |       t        fdt	        | j
                  | j                        D              }j                  | j                        }|r||| j                  <   |S )Nc              3   2   K   | ]  \  }}||   f  y wr%   rK   ).0str_keyuni_keyr?   s      r!   	<genexpr>z"DictReader.next.<locals>.<genexpr>   s%      F2D7GwG- Fs   )
r(   r   r]   rn   r   rj   rv   getrx   rw   )r7   resultrestr?   s      @r!   r]   zDictReader.next   sl    nn!!$' F4??D,C,CDF Fwwt||$+/F4''(r#   )NNNr
   r3   r4   )rF   rG   rH   rI   r<   r]   rK   r#   r!   r   r      s      HL;C=0r#   r   )r4   )r(   r   	itertoolsr   pass_throughs__all__propgetattrglobalsr"   r+   r0   objectr2   r   rM   r   r   r   rK   r#   r!   <module>r      s    
   
   )Dc4(GIdO)	 #F #@ 
)$F )$T 
 @0 0r#   