
    j                    j   U d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ e	egef         Zd	ed
<   e	egee         f         Zd	ed<   e	egef         Zd	ed<   e	egee         f         Zd	ed<    G d de          Z ee ej        d          j                  Z ee ej        d          j                  Z ee ej        d          j                  Z ee ej        d          j                  Z ee ej        d          j                  Z ee ej        d          j                  Z  ee ej        d          j                  Z! ee ej        d          j"                  Z# ee ej        d          j"                  Z$ ee ej        d          j"                  Z% ee ej        d          j"                  Z& ee ej        d          j"                  Z' ee ej        d          j"                  Z( ee ej        d          j"                  Z) ej        d          Z* ee	egef         e*j                  Z+ eee*j,                  Z-ddZ. ej        d                              d          e/                    d          k    re.Z dS dS )z0
Utility functions to deal with binary structs.
    )annotationsN)Protocol	TypeAliascast)Callable   )errors)Bufferr   PackInt	UnpackInt	PackFloatUnpackFloatc                      e Zd Zd	dZdS )
	UnpackLendatar
   start
int | Nonereturn
tuple[int]c                    d S )N )selfr   r   s      Z/DATA/AppData/hermes/projects/honcho/.venv/lib/python3.11/site-packages/psycopg/_struct.py__call__zUnpackLen.__call__   s          N)r   r
   r   r   r   r   )__name__
__module____qualname__r   r   r   r   r   r      s        JJJJJJr   r   z!hz!Hz!iz!Iz!qz!fz!dxfloatr   bytesc                *    t          j        d          )Nzcannot dump Float4: Python affected by bug #304. Note that the psycopg-c and psycopg-binary packages are not affected by this issue. See https://github.com/psycopg/psycopg/issues/304)eInterfaceError)r   s    r   pack_float4_bug_304r%   /   s    

	=  r   g      ?3f800000)r   r    r   r!   )0__doc__
__future__r   structtypingr   r   r   collections.abcr    r	   r#   abcr
   intr!   r   __annotations__tupler   r    r   r   r   Structpack	pack_int2
pack_uint2	pack_int4
pack_uint4	pack_int8pack_float4pack_float8unpackunpack_int2unpack_uint2unpack_int4unpack_uint4unpack_int8unpack_float4unpack_float8_struct_lenpack_lenunpack_from
unpack_lenr%   fromhexr   r   r   <module>rG      s     # " " " " "  , , , , , , , , , , $ $ $ $ $ $            seUl+ + + + +%* 45	 5 5 5 5/	 / / / /!6(E%L"89 9 9 9 9K K K K K K K K D-&---233	T'=6=..344
D-&---233	T'=6=..344
D-&---233	d9mfmD11677d9mfmD11677d9mfmD11899tI}v}T229::d9mfmD11899tI}v}T229::d9mfmD11899[-&-"5"5"<==[-&-"5"5"<==fmD!!4#&(899T)[455
    6=C  EMM*$=$===%KKK >=r   