o
    5ti                     @   s   U d Z ddlmZmZ ddlZddlmZ ddlmZ er#ddl	m
Z
 d	Zeed
< zddlmZ ee W n eyB   e ZY nw ddededdfddZG dd dZdS )zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    )TYPE_CHECKINGFinalN)MultiByteStrDecoder   )
NullLogger   )AbstractTableWriterpytablewriterMODULE_NAME)logger	is_enablepropagation_depthreturnc                 C   s   | rt t nt t |dkrd S t| |d  zdd l}|| |d  W n	 ty2   Y nw zdd l}|| |d  W d S  tyL   Y d S w )Nr   r   )	r   enabler
   disabledataproperty
set_loggersimplesqliteImportErrorpytablereader)r   r   r   r    r   Q/home/ubuntu/.local/lib/python3.10/site-packages/pytablewriter/_logger/_logger.pyr      s$   
r   c                   @   s   e Zd Zedd ZdddZdd	d
Zdd ZdddZdddZ	de
fddZde
fddZdee
 fddZde
fddZdS )WriterLoggerc                 C   s   | j S N)_WriterLogger__loggerselfr   r   r   r   5   s   zWriterLogger.loggerwriterr   r   Nc                 C   s$   || _ t| _| jd|j  d S )Nzcreated WriterLogger: format=)_WriterLogger__writerr   r   debugformat_name)r   r   r   r   r   __init__9   s   zWriterLogger.__init__c                 C   s   |    | S r   )logging_start_writer   r   r   r   	__enter__?      zWriterLogger.__enter__c                 G   s   |    dS )NF)logging_complete_write)r   excr   r   r   __exit__C   r$   zWriterLogger.__exit__c              	   C   s   |   |  d| jj g}z|dt| jj  W n ttfy,   |d Y nw || 	  |
|   | jdd| d S )Nzheaders=zrows=zrows=NaNzstart write table: {}, )&_WriterLogger__get_format_name_message%_WriterLogger__get_table_name_messager   headersappendlenvalue_matrix	TypeErrorAttributeError#_WriterLogger__get_typehint_messageextend'_WriterLogger__get_extra_log_entry_listr   r   formatjoinr   log_entry_listr   r   r   r"   G   s   z WriterLogger.logging_start_writec                 C   s:   |   |  g}||   | jdd| d S )Nzcomplete write table: {}r(   )r)   r*   r2   r3   r   r   r4   r5   r6   r   r   r   r%   X   s   z#WriterLogger.logging_complete_writec                 C   s   d| j jdS )Nzformat=s)r   r    r   r   r   r   __get_format_name_message^   s   z&WriterLogger.__get_format_name_messagec                 C   s(   | j jrt| j jj}nd}d| dS )N ztable-name='')r   
table_namer   unicode_str)r   r<   r   r   r   __get_table_name_messagea   s   z%WriterLogger.__get_table_name_messagec                 C   s*   | j jd u rg S d| j j d| j j gS )Nz
iteration=/)r   _iter_countiteration_lengthr   r   r   r   __get_extra_log_entry_listi   s   z'WriterLogger.__get_extra_log_entry_listc              	   C   s4   zd dd | jjD W S  ttfy   Y dS w )Nztype-hints={}c                 S   s   g | ]
}|r|d dj qS )Nr   )typename).0	type_hintr   r   r   
<listcomp>r   s    z7WriterLogger.__get_typehint_message.<locals>.<listcomp>ztype-hints=[])r4   r   
type_hintsr/   r0   r   r   r   r   __get_typehint_messageo   s   z#WriterLogger.__get_typehint_message)r   r   r   N)r   r   )r   N)__name__
__module____qualname__propertyr   r!   r#   r'   r"   r%   strr)   r*   listr3   r1   r   r   r   r   r   4   s    




r   )r   )__doc__typingr   r   r   mbstrdecoderr   _null_loggerr   r   r   r
   __annotations__logurur   r   r   boolintr   r   r   r   r   r   <module>   s     
