
    j                     p    d dl Z d dlZd dlmZmZ d dlmZ ddlmZm	Z	 ddl
mZ ddgZd	gZ G d
 de      Zy)    N)BinaryIOAny)
from_bytes   )DocumentConverterDocumentConverterResult)
StreamInfoztext/csvzapplication/csvz.csvc                   R     e Zd ZdZ fdZdedededefdZ	dededede
fdZ xZS )	CsvConverterz0
    Converts CSV files to Markdown tables.
    c                 "    t         |           y )N)super__init__)self	__class__s    e/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/markitdown/converters/_csv_converter.pyr   zCsvConverter.__init__   s        file_streamstream_infokwargsreturnc                     |j                   xs dj                         }|j                  xs dj                         }|t        v ryt        D ]  }|j                  |      s y y)N TF)mimetypelower	extensionACCEPTED_FILE_EXTENSIONSACCEPTED_MIME_TYPE_PREFIXES
startswith)r   r   r   r   r   r   prefixs          r   acceptszCsvConverter.accepts   sg      ((.B557 **0b779	001 	F""6*	 r   c           
      Z   |j                   r*|j                         j                  |j                         }n0t        t	        |j                               j                               }t        j                  t        j                  |            }t        |      }|st        d      S g }|j                  ddj                  |d         z   dz          |j                  ddj                  dgt        |d         z        z   dz          |dd  D ]  }t        |      t        |d         k  r,|j                  d       t        |      t        |d         k  r,|d t        |d          }|j                  ddj                  |      z   dz           d	j                  |      }	t        |	      S )
Nr   )markdownz| z | r   z |z---   
)charsetreaddecodestrr   bestcsvreaderioStringIOlistr   appendjoinlen)
r   r   r   r   contentr+   rowsmarkdown_tablerowresults
             r   convertzCsvConverter.convert&   s|    !&&(//0C0CDG*[%5%5%78==?@G BKK01F|*B77  	dUZZQ%884?@ 	dUZZ#d1g,0F%GG$NO 8 	ACc(Sa\)

2 c(Sa\) nDG%C!!$C"84"?@	A >*&77r   )__name__
__module____qualname____doc__r   r   r	   r   boolr    r   r7   __classcell__)r   s   @r   r   r      sc       	
 
'8'8  '8 	'8
 
!'8r   r   )r*   r,   typingr   r   charset_normalizerr   _base_converterr   r   _stream_infor	   r   r   r    r   r   <module>rC      s>    
 	   ) H %   #8 >8$ >8r   