o
    EDiC                     @   s  U d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZ defddZd	edefd
dZeG dd dZi Zeeef ed< dedefddZdedefddZdededdfddZdedee deddfddZeddd edd d! ed"d#d$ ed%d&d' ed(d&d) ed*d+d  ed,dd ed-dd ed.dd ed/d&d0 ed1d&d2 ed3dd4 dS )5    N)	dataclass)AnySequenceOptionalDict)__version__)ProgrammingErrorreturnc                   C   s   t jS N)r   version r   r   R/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_connect/common.pyr   
   s   r   msgc                 C   s   t d j}|r| d | S | S )Nmax_error_size)_common_settingsvalue)r   max_sizer   r   r   format_error   s   
r   c                   @   s:   e Zd ZU eed< ee ed< eed< dZee ed< dS )CommonSettingnameoptionsdefaultNr   )	__name__
__module____qualname__str__annotations__r   r   r   r   r   r   r   r   r      s
   
 r   r   client_namec                 C   s   t d}|r| d nd}| r|  d nd} tjjdddd }d}t dr;z	dt  }W n	 ty:   Y nw |  | d	t  d
| dtj | d }|	dd
 S )Nproduct_name     )maxsplitr   send_os_userz
; os_user:zclickhouse-connect/z (lv:py/z; mode:sync; os:)asciiignore)get_settingstripsysr   splitgetpassgetuser	Exceptionplatformencodedecode)r   r   
py_versionos_user	full_namer   r   r   build_client_name    s   r4   r   c                 C   s6   t | }|d u rtd|  |jd ur|jS |jS )NUnrecognized common setting )r   getr   r   r   )r   settingr   r   r   r'   0   s   
r'   r   c                 C   sd   t | }|d u rtd|  |jr#||jvr#td| d|  d||jkr-d |_d S ||_d S )Nr5   zUnrecognized option z for setting r$   )r   r6   r   r   r   r   )r   r   r7   r   r   r   set_setting7   s   



r8   r   r   c                 C   s   t | ||t| < d S r
   )r   r   )r   r   r   r   r   r   _init_commonC   s   r9   autogenerate_session_id)TFTdict_parameter_format)jsonmapr<   invalid_setting_action)senddroperrorrA   max_connection_ager   iX  r   r    readonly)r   r!   r#   send_integration_tagsuse_protocol_versionr   i   http_buffer_sizei   #preserve_pandas_datetime_resolutionF)r+   r)   dataclassesr   typingr   r   r   r   clickhouse_connectr   $clickhouse_connect.driver.exceptionsr   r   r   r   r   r   r   r4   r'   r8   r9   r   r   r   r   <module>   s6   
 