Ë
    Ìi×  ã                   óÈ   — d Z ddlZddlZddlmZ g d¢Z G d„ d«      Z G d„ d«      Z G d	„ d
ej                  «      Z G d„ dej                  «      Z	 G d„ d«      Z
d„ Zd„ Zy)z?
This module contains the Python 3 replacement for :mod:`csv`.
é    N)ÚFieldSizeLimitError)ú,ú	ú;ú ú:ú|c                   óD   — e Zd ZdZdd„Zd„ Zd„ Zed„ «       Zed„ «       Z	y)	ÚReaderzA
    A wrapper around Python 3's builtin :func:`csv.reader`.
    Nc                 ó„   — || _         || _        |rt        j                  |«       t        j                  |fi |¤Ž| _        y ©N)Úline_numbersÚheaderÚcsvÚfield_size_limitÚreader)ÚselfÚfr   r   r   Úkwargss         úN/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/agate/csv_py3.pyÚ__init__zReader.__init__   s8   € Ø(ˆÔØˆŒáÜ× Ñ Ð!1Ô2ä—j‘j Ñ- fÑ-ˆ�ó    c                 ó   — | S r   © ©r   s    r   Ú__iter__zReader.__iter__   s   € Øˆr   c                 óè  — 	 t        | j                  «      }| j                  s|S | j                  ro| j                  r#| j                  dk(  r|j                  dd«       |S |j                  dt	        | j                  r| j                  dz
  n| j                  «      «       |S # t        j                  $ r<}dt	        |«      v r(t        t        j                  «       | j                  «      ‚|‚d }~ww xY w)Nzfield larger than field limité   r   r   )Únextr   r   ÚErrorÚstrr   r   Úline_numr   r   Úinsert)r   ÚrowÚes      r   Ú__next__zReader.__next__   sÅ   € ð	Ü�t—{‘{Ó#ˆCð × Ò ØˆJà×ÒØ�{Š{˜tŸ}™}°Ò1Ø—
‘
˜1˜nÔ-ð ˆ
ð —
‘
˜1œc°t·{²{ $§-¡-°!Ò"3ÈÏÉÓVÔWàˆ
øô! �y‰yò 	à.´#°a³&Ñ8Ü)¬#×*>Ñ*>Ó*@À$Ç-Á-ÓPÐPà�ûð	ús   ‚B" Â"C1Â57C,Ã,C1c                 ó.   — | j                   j                  S r   )r   Údialectr   s    r   r(   zReader.dialect2   s   € à�{‰{×"Ñ"Ð"r   c                 ó.   — | j                   j                  S r   )r   r"   r   s    r   r"   zReader.line_num6   s   € à�{‰{×#Ñ#Ð#r   )NFT)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r&   Úpropertyr(   r"   r   r   r   r   r      s>   „ ñó.òòð* ñ#ó ð#ð ñ$ó ñ$r   r   c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)ÚWriterzA
    A wrapper around Python 3's builtin :func:`csv.writer`.
    c                 óh   — d| _         || _        d|vrd|d<   t        j                  |fi |¤Ž| _        y )Nr   Úlineterminatorú
)Ú	row_countr   r   Úwriter)r   r   r   r   s       r   r   zWriter.__init__?   s9   € ØˆŒØ(ˆÔà 6Ñ)Ø'+ˆFÐ#Ñ$ä—j‘j Ñ- fÑ-ˆ�r   c                 óª   — | j                   dk(  r|j                  dd«       n|j                  d| j                   «       | xj                   dz  c_         y ©Nr   Úline_numberr   )r4   r#   ©r   r$   s     r   Ú_append_line_numberzWriter._append_line_numberH   s<   € Ø�>‰>˜QÒØ�J‰J�q˜-Õ(à�J‰J�q˜$Ÿ.™.Ô)à�Š˜!ÑŽr   c                 óö   — | j                   rt        |«      }| j                  |«       |D �cg c]&  }t        |t        «      r|j                  dd«      n|‘Œ( }}| j                  j                  |«       y c c}w ©Núr3   )r   Úlistr:   Ú
isinstancer!   Úreplacer5   Úwriterow)r   r$   Úis      r   rA   zWriter.writerowP   sj   € Ø×ÒÜ�s“)ˆCØ×$Ñ$ SÔ)ð LOÖOÀa¬
°1´cÔ(:ˆq�y‰y˜˜tÔ$ÀÑAÐOˆÐOà�‰×Ñ˜SÕ!ùò Ps   ­+A6c                 ó4   — |D ]  }| j                  |«       Œ y r   ©rA   ©r   Úrowsr$   s      r   Ú	writerowszWriter.writerowsZ   ó   € Øò 	ˆCØ�M‰M˜#Õñ	r   N©F©r*   r+   r,   r-   r   r:   rA   rG   r   r   r   r0   r0   ;   s   „ ñó.òò"ór   r0   c                   ó   — e Zd ZdZy)Ú
DictReaderzF
    A wrapper around Python 3's builtin :class:`csv.DictReader`.
    N)r*   r+   r,   r-   r   r   r   rL   rL   _   s   „ ñð 	r   rL   c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)Ú
DictWriterzF
    A wrapper around Python 3's builtin :class:`csv.DictWriter`.
    c                 ó²   — d| _         || _        d|vrd|d<   | j                  r|j                  dd«       t        j                  j
                  | ||fi |¤Ž y )Nr   r2   r3   r8   )r4   r   r#   r   rN   r   )r   r   Ú
fieldnamesr   r   s        r   r   zDictWriter.__init__j   sX   € ØˆŒØ(ˆÔà 6Ñ)Ø'+ˆFÐ#Ñ$à×ÒØ×Ñ˜a Ô/ä�‰×Ñ  a¨Ñ>°vÓ>r   c                 óv   — | j                   dk(  rd|d<   n| j                   |d<   | xj                   dz  c_         y r7   )r4   r9   s     r   r:   zDictWriter._append_line_numberv   s4   € Ø�>‰>˜QÒØ!.ˆC�Òà!%§¡ˆC�Ñà�Š˜!ÑŽr   c                 ó.  — t        |j                  «       D ��cg c]-  \  }}t        |t        «      r||j	                  dd«      fn||f‘Œ/ c}}«      }| j
                  r| j                  |«       t        j                  j                  | |«       y c c}}w r<   )
ÚdictÚitemsr?   r!   r@   r   r:   r   rN   rA   )r   r$   ÚkÚvs       r   rA   zDictWriter.writerow~   s{   € äÐ]`×]fÑ]fÓ]h×iÑUYÐUVÐXY´*¸QÄÔ2D�Q˜Ÿ	™	 $¨Ó-Ñ.È1ÈaÈ&ÑPÓiÓjˆà×ÒØ×$Ñ$ SÔ)ä�‰×Ñ  cÕ*ùó js   ™2B
c                 ó4   — |D ]  }| j                  |«       Œ y r   rD   rE   s      r   rG   zDictWriter.writerows‡   rH   r   NrI   rJ   r   r   r   rN   rN   f   s   „ ñó
?òò+ór   rN   c                   ó   — e Zd ZdZd„ Zy)ÚSnifferz4
    A functional wrapper of ``csv.Sniffer()``.
    c                 óÜ   — 	 t        j                  «       j                  |t        «      }|S # t         j                  $ r,}t        j                  d|z  t        d¬«       d}Y d}~|S d}~ww xY w)z™
        A functional version of ``csv.Sniffer().sniff``, that extends the
        list of possible delimiters to include some seen in the wild.
        zError sniffing CSV dialect: %sé   )Ú
stacklevelN)r   rY   ÚsniffÚPOSSIBLE_DELIMITERSr    ÚwarningsÚwarnÚRuntimeWarning)r   Úsampler(   r%   s       r   r]   zSniffer.sniff�   s^   € ð
	Ü—k‘k“m×)Ñ)¨&Ô2EÓFˆGð
 ˆøô	 �y‰yò 	Ü�M‰MÐ:¸QÑ>ÄÐ[\Õ]ØŒGàˆûð		ús   ‚(, ¬A+¿!A&Á&A+N)r*   r+   r,   r-   r]   r   r   r   rY   rY   Œ   s   „ ñór   rY   c                  ó   — t        | i |¤ŽS )z_
    A replacement for Python's :func:`csv.reader` that uses
    :class:`.csv_py3.Reader`.
    )r   ©Úargsr   s     r   r   r   ž   ó   € ô
 �4Ð"˜6Ñ"Ð"r   c                  ó   — t        | i |¤ŽS )z_
    A replacement for Python's :func:`csv.writer` that uses
    :class:`.csv_py3.Writer`.
    )r0   rd   s     r   r5   r5   ¦   rf   r   )r-   r   r_   Úagate.exceptionsr   r^   r   r0   rL   rN   rY   r   r5   r   r   r   ú<module>ri      sf   ðñó Û å 0â5Ð ÷+$ñ +$÷\!ñ !ôH	�—‘ô 	ô#�—‘ô #÷Lñ ò$#ó#r   