
    i                    4   U d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	m
Z
 ddlmZ ddlmZ erdd	lmZ ej"                  Zi d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+i d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTZi ZdUedV<   ej+                  dW ej-                         D               ej+                  dX ej-                         D               ej-                         D  ci c]  \  } }|| j/                          c}} Zd`dYZdadZZedbd[       Zedcd\       Zddded]Z ej<                  d^ej>                   ej@                   ejB                   d_      Z"yc c}} w )fz3
Mappings between PostgreSQL and Python encodings.
    )annotationsN)TYPE_CHECKINGAny   )NotSupportedError)cache)
ConnStatus)BaseConnectionBIG5big5EUC_CNgb2312EUC_JIS_2004euc_jis_2004EUC_JPeuc_jpEUC_KReuc_krGB18030gb18030GBKgbk
ISO_8859_5z	iso8859-5
ISO_8859_6z	iso8859-6
ISO_8859_7z	iso8859-7
ISO_8859_8z	iso8859-8JOHABjohabKOI8Rzkoi8-rKOI8Uzkoi8-uLATIN1z	iso8859-1LATIN10z
iso8859-16LATIN2z	iso8859-2LATIN3z	iso8859-3LATIN4z	iso8859-4LATIN5z	iso8859-9LATIN6z
iso8859-10LATIN7z
iso8859-13LATIN8z
iso8859-14LATIN9z
iso8859-15SHIFT_JIS_2004shift_jis_2004SJIS	shift_jis	SQL_ASCIIasciiUHCcp949UTF8utf-8WIN1250cp1250WIN1251cp1251WIN1252cp1252WIN1253cp1253WIN1254cp1254cp1255cp1256cp1257cp1258cp866cp874)WIN1255WIN1256WIN1257WIN1258WIN866WIN874zdict[bytes, str]	py_codecsc              #  F   K   | ]  \  }}|j                         |f  y w)N)encode.0kvs      r/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/venv/lib/python3.12/site-packages/psycopg/_encodings.py	<genexpr>rS   H   s     @TQ!((*a@s   !c              #  p   K   | ].  \  }}d |v s|j                  d d      j                         |f 0 yw)_ N)replacerM   rN   s      rR   rS   rS   K   s8      )-AsaxQYYsB !$s   6'6c                6    | r| j                   j                  S dS )z
    Return the Python encoding name of a psycopg connection.

    Default to utf8 if the connection has no encoding info.
    r4   )pgconn	_encoding)conns    rR   conn_encodingr\   R   s     %)4;;  5g5    c                    ddl m}  ||       }|j                  d      x}r#	 t        t	        |      j                               S y# t        $ r Y yw xY w)z
    Return the Python encoding name passed in a conninfo string. Default to utf8.

    Because the input is likely to come from the user and not normalised by the
    server, be somewhat lenient (non-case-sensitive lookup, ignore noise chars).
    r   )conninfo_to_dictclient_encodingr4   )conninfor_   getpg2pyencstrrM   r   )ra   r_   paramspgencs       rR   conninfo_encodingrg   [   s_     +h'F

,--u-	CJ--/00  ! 		s   !A 	AAc                N    t         t        j                  |       j                     S )zzConvert a Python encoding name to PostgreSQL encoding name.

    Raise LookupError if the Python encoding is unknown.
    )	pg_codecscodecslookupname)rl   s    rR   py2pgencrm   n   s     V]]4(--..r]   c                    	 t         | j                  dd      j                  dd      j                            S # t        $ r! | j	                  dd      }t        d|      w xY w)zConvert a PostgreSQL encoding name to Python encoding name.

    Raise NotSupportedError if the PostgreSQL encoding is not supported by
    Python.
       -r]      _utf8rW   zcodec not available in Python: )rK   rW   upperKeyErrordecoder   )rl   snames     rR   rc   rc   w   sh    MdC088sCIIKLL MFI."A% KLLMs	   69 *A#c                    | j                         s2| d   dv r|| z   } | j                         st        j                  d|       } | d   dk(  r|| z   } | S )z
    Reduce a string to a valid Python identifier.

    Replace all non-valid chars with '_' and prefix the value with `!prefix` if
    the first letter is an '_'.
    r   
1234567890rU   )isidentifier	_re_cleansub)sprefixs     rR   _as_python_identifierr}      sV     >>Q4<
A~~c1%Ats{QJHr]   z[^z_])r[   zBaseConnection[Any] | Nonereturnrd   )ra   rd   r~   rd   )rl   rd   r~   bytes)rl   r   r~   rd   )f)r{   rd   r|   rd   r~   rd   )#__doc__
__future__r   rerj   stringtypingr   r   errorsr   _compatr   	pq._enumsr	   _connection_baser
   OK
_py_codecsrK   __annotations__updateitemsrM   ri   r\   rg   rm   rc   r}   compileascii_lowercaseascii_uppercasedigitsry   )rP   rQ   s   00rR   <module>r      s   # 	   % %  !0]]-
F-h- N- h	-
 h- y- 
5- +- +- +- +- W- X- X-  k!-" |#-$ k%-& k'-( k)-* k+-, l--. l/-0 l1-2 l3-6 &7-8 K9-> ?-@ 
7A-B GC-D xE-F xG-H xI-J xK-L xM-N Y-
^ !	   	  @Z-=-=-?@ @ 
   1;1A1A1C  (2'7'7'9:tq!Q
]:	6& / / 
M 
M$ BJJ		 !7!7 8rJ	Q ;s   F