
    %j                     x    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dS )    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                 H    t                                                       d S )N)super__init__)self	__class__s    l/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/markitdown/converters/_csv_converter.pyr   zCsvConverter.__init__   s        file_streamstream_infokwargsreturnc                     |j         pd                                }|j        pd                                }|t          v rdS t          D ]}|                    |          r dS dS )N TF)mimetypelower	extensionACCEPTED_FILE_EXTENSIONSACCEPTED_MIME_TYPE_PREFIXES
startswith)r   r   r   r   r   r   prefixs          r   acceptszCsvConverter.accepts   s}      (.B5577 *0b7799	00041 	 	F""6** ttur   c           
      *   |j         r-|                                                    |j                   }n@t          t	          |                                                                                    }t          j        t          j	        |                    }t          |          }|st          d          S g }|                    dd                    |d                   z   dz              |                    dd                    dgt          |d                   z            z   dz              |dd          D ]}t          |          t          |d                   k     r;|                    d           t          |          t          |d                   k     ;|d t          |d                            }|                    dd                    |          z   dz              d	                    |          }	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     	A!&&((//0CDDGG*[%5%5%7%788==??@@G BK0011F|| 	8*B7777  	dUZZQ%8%884?@@@ 	dUZZ#d1g,,0F%G%GG$NOOO 8 	A 	ACc((Sa\\))

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