o
    ED©i¯  ã                   @   sx   d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZ G d	d
„ d
eƒZdS )é    N)Útimeé   )Údefines)Úerrors)ÚOpenTelemetryTraceContext)Úwrite_varint)Úwrite_binary_strÚwrite_binary_uint8Úwrite_binary_uint64Úwrite_binary_uint128c                       st   e Zd ZG dd„ deƒZG dd„ deƒZejZej	Z
ejZejZdZdZdZ‡ fdd„Zed	d
„ ƒZdd„ Z‡  ZS )Ú
ClientInfoc                   @   s   e Zd ZdZdZdS )zClientInfo.Interfacer   é   N)Ú__name__Ú
__module__Ú__qualname__ÚTCPÚHTTP© r   r   úU/var/www/Datamplify/venv/lib/python3.10/site-packages/clickhouse_driver/clientinfo.pyÚ	Interface   s    r   c                   @   s   e Zd ZdZdZdZdS )zClientInfo.QueryKindr   r   r   N)r   r   r   ÚNO_QUERYÚINITIAL_QUERYÚSECONDARY_QUERYr   r   r   r   Ú	QueryKind   s    r   Ú z	0.0.0.0:0c              	      s˜   t jj| _zt ¡ | _W n ttfy   d| _Y nw t	 
¡ | _|| _|| _t|jd |jd ƒ| _|jd | _d| _ttƒ d ƒ| _tt | ƒ ¡  d S )Nr   Úopentelemetry_traceparentÚopentelemetry_tracestateÚ	quota_keyr   i@B )r   r   r   Ú
query_kindÚgetpassÚgetuserÚos_userÚKeyErrorÚOSErrorÚsocketÚgethostnameÚclient_hostnameÚclient_nameÚclient_revisionr   Úclient_settingsÚclient_trace_contextr   Údistributed_depthÚintr   Ú%initial_query_start_time_microsecondsÚsuperÚ__init__)Úselfr'   Úcontextr(   ©Ú	__class__r   r   r/   %   s"   

ÿ
þzClientInfo.__init__c                 C   s   | j tjjkS )N)r   r   r   r   )r0   r   r   r   Úempty;   s   zClientInfo.emptyc                 C   s’  |}|t jk rt d¡‚t| j|ƒ | jrd S t| j|ƒ t| j	|ƒ t| j
|ƒ |t jkr4t| j|ƒ t| j|ƒ t| j|ƒ t| j|ƒ t| j|ƒ t| j|ƒ t| j|ƒ t| j|ƒ |t jkrit| j|ƒ |t jkrtt| j|ƒ |t jkrt| j|ƒ |t jkr±| jjd ur¬td|ƒ t| jj|ƒ t| jj |ƒ t| jj!|ƒ t| jj"|ƒ ntd|ƒ |t j#krÇtd|ƒ td|ƒ td|ƒ d S d S )NzAMethod ClientInfo.write is called for unsupported server revisionr   r   )$r   Ú"DBMS_MIN_REVISION_WITH_CLIENT_INFOr   ÚLogicalErrorr	   r   r4   r   Úinitial_userÚinitial_query_idÚinitial_addressÚ7DBMS_MIN_PROTOCOL_VERSION_WITH_INITIAL_QUERY_START_TIMEr
   r-   Ú	interfacer!   r&   r'   r   Úclient_version_majorÚclient_version_minorr(   Ú/DBMS_MIN_REVISION_WITH_QUOTA_KEY_IN_CLIENT_INFOr   Ú0DBMS_MIN_PROTOCOL_VERSION_WITH_DISTRIBUTED_DEPTHr+   Ú$DBMS_MIN_REVISION_WITH_VERSION_PATCHÚclient_version_patchÚ$DBMS_MIN_REVISION_WITH_OPENTELEMETRYr*   Útrace_idr   Úspan_idÚ
tracestateÚtrace_flagsÚ(DBMS_MIN_REVISION_WITH_PARALLEL_REPLICAS)r0   Úserver_revisionÚfoutÚrevisionr   r   r   Úwrite?   sV   

ÿÿ
ÿ






ýzClientInfo.write)r   r   r   Úobjectr   r   r   ÚCLIENT_VERSION_MAJORr<   ÚCLIENT_VERSION_MINORr=   ÚCLIENT_VERSION_PATCHrA   r   r;   r7   r8   r9   r/   Úpropertyr4   rK   Ú__classcell__r   r   r2   r   r      s    

r   )r$   r   r   r   r   r   Úopentelemetryr   Úvarintr   Úwriterr   r	   r
   r   rL   r   r   r   r   r   Ú<module>   s    