ó
    Ð]j¼  ã                  ór   • S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  \(       a  SSK
Jr   " S S	\	\   5      rg
)z)
The Column object in Cursor.description
é    )Úannotations)ÚTYPE_CHECKINGÚAny©Ú
attrgetter)ÚSequenceé   )Ú
BaseCursorc                  ó  • \ rS rSrSrSS jr\" S SR                  5        5       5      rSS jrSS jr	\
SS j5       rSS	 jr\
SS
 j5       r\
SS j5       r\
SS j5       r\
SS j5       r\
SS j5       r\
SS j5       r\
SS j5       rSrg)ÚColumné   Úpsycopgc                ó¦  • UR                   nU(       d   eUR                  U5      =n(       a!  UR                  UR                  5      U l        OSUS-    3U l        UR                  U5      U l        UR                  R                  R                  U R                  5      U l
        UR                  U5      U l        UR                  U5      U l        g )NÚcolumn_r	   )ÚpgresultÚfnameÚdecodeÚ	_encodingÚ_nameÚftypeÚ_ftypeÚadaptersÚtypesÚgetÚ_typeÚfmodÚ_fmodÚfsizeÚ_fsize)ÚselfÚcursorÚindexÚresr   s        ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/psycopg/_column.pyÚ__init__ÚColumn.__init__   sŸ   € Ø�o‰oˆÞˆ
ˆsà—I‘I˜eÓ$Ð$ˆ5Õ$ØŸ™ f×&6Ñ&6Ó7ˆD�Jð # 5¨1¡9 +Ð.ˆDŒJà—i‘i Ó&ˆŒØ—_‘_×*Ñ*×.Ñ.¨t¯{©{Ó;ˆŒ
Ø—X‘X˜e“_ˆŒ
Ø—i‘i Ó&ˆ�ó    c              #  ó8   #   • U  H  n[        U5      v •  M     g 7f©Nr   )Ú.0Úattrs     r$   Ú	<genexpr>ÚColumn.<genexpr>#   s    é € ð ò 1¨”:˜d×#Ð#ò 1ùs   ‚z[
            name type_code display_size internal_size precision scale null_ok
            c                óX   • SU R                   < SU R                   SU R                   S3$ )Nz<Column z, type: z (oid: z)>)ÚnameÚtype_displayÚ	type_code©r    s    r$   Ú__repr__ÚColumn.__repr__'   s6   € à�t—y‘y‘mð $Ø×'Ñ'Ð(¨°·±Ð/?¸rðCð	
r'   c                ó   • g)Né   © r2   s    r$   Ú__len__ÚColumn.__len__-   s   € Ør'   c                óª   • U R                   (       d  [        U R                  5      $ U R                   R                  U R                  U R                  S9$ )zÂA pretty representation of the column type.

It is composed by the type name, followed by eventual modifiers and
brackets to signify arrays, e.g. :sql:`text`, :sql:`varchar(42)`,
:sql:`date[]`.
)Úoidr   )r   Ústrr1   Úget_type_displayr   r2   s    r$   r0   ÚColumn.type_display0   s<   € ð �z�zÜ�t—~‘~Ó&Ð&à�z‰z×*Ñ*¨t¯~©~ÀDÇJÁJÐ*ÐOÐOr'   c                óœ   ^ • [        U[        5      (       a"  [        U 4S jT R                  U    5       5      $ T R                  U   " T 5      $ )Nc              3  ó2   >#   • U  H  o" T5      v •  M     g 7fr)   r7   )r*   Úgetterr    s     €r$   r,   Ú%Column.__getitem__.<locals>.<genexpr>?   s   øé € ÐGÒ4F¨&˜ Ÿ˜Ò4Fùs   ƒ)Ú
isinstanceÚsliceÚtupleÚ_attrs)r    r"   s   ` r$   Ú__getitem__ÚColumn.__getitem__=   s>   ø€ Ü�eœU×#Ñ#ÜÔG°D·K±KÀÒ4FÓGÓGÐGà—;‘;˜uÒ% dÓ+Ð+r'   c                ó   • U R                   $ )zThe name of the column.)r   r2   s    r$   r/   ÚColumn.nameC   s   € ð �z‰zÐr'   c                ó   • U R                   $ )zThe numeric OID of the column.)r   r2   s    r$   r1   ÚColumn.type_codeH   s   € ð �{‰{Ðr'   c                ór   • U R                   (       a%  U R                   R                  U R                  5      $ S$ )z;The field size, for string types such as :sql:`varchar(n)`.N)r   Úget_display_sizer   r2   s    r$   Údisplay_sizeÚColumn.display_sizeM   s(   € ð ;?¿*¿*ˆt�z‰z×*Ñ*¨4¯:©:Ó6ÐNÈ$ÐNr'   c                ó.   • U R                   nUS:¼  a  U$ S$ )z=The internal field size for fixed-size types, None otherwise.r   N)r   )r    r   s     r$   Úinternal_sizeÚColumn.internal_sizeR   s   € ð —‘ˆØ ›
ˆuÐ,¨Ð,r'   c                ór   • U R                   (       a%  U R                   R                  U R                  5      $ S$ )z/The number of digits for fixed precision types.N)r   Úget_precisionr   r2   s    r$   Ú	precisionÚColumn.precisionX   s(   € ð 8<·z·zˆt�z‰z×'Ñ'¨¯
©
Ó3ÐKÀtÐKr'   c                ór   • U R                   (       a%  U R                   R                  U R                  5      $ S$ )z:The number of digits after the decimal point if available.N)r   Ú	get_scaler   r2   s    r$   ÚscaleÚColumn.scale]   s(   € ð 48·:·:ˆt�z‰z×#Ñ# D§J¡JÓ/ÐGÀ4ÐGr'   c                ó   • g)zAlways `!None`Nr7   r2   s    r$   Únull_okÚColumn.null_okb   s   € ð r'   )r   r   r   r   r   N)r!   zBaseCursor[Any, Any]r"   Úint)Úreturnr<   )r`   r_   )r"   r   r`   r   )r`   z
int | None)r`   zbool | None)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r%   rE   ÚsplitrF   r3   r8   Úpropertyr0   rG   r/   r1   rO   rR   rV   rZ   r]   Ú__static_attributes__r7   r'   r$   r   r      sê   † Ø€Jô'ñ ñ ð 1ç‘“ð1ó ó €Fô
ôð ó
Pó ð
Pô,ð óó ðð óó ðð óOó ðOð ó-ó ð-ð
 óLó ðLð óHó ðHð óó ór'   r   N)Ú__doc__Ú
__future__r   Útypingr   r   Úoperatorr   Úcollections.abcr   Ú_cursor_baser
   r   r7   r'   r$   Ú<module>rn      s0   ðñõ #ç %Ý Ý $æÝ(ôTˆX�c‰]õ Tr'   