
    (ph                    L   % S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSK	J
r
  SSKJr  SSKJr  \(       a  SS	KJr  \
R"                  r0 S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S!_S"S#_S$S%_S&S'_S(S)_S*S+_0 S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_SHSI_SJSK_SLSM_ESNSOSPSQSRSSST.Er0 rSU\SV'   \R+                  SW \R-                  5        5       5        \R+                  SX \R-                  5        5       5        \R-                  5        V Vs0 s H  u  pXR/                  5       _M     snn rS`SY jrSaSZ jr\SbS[ j5       r\ScS\ j5       rSdSeS] jjr\R<                  " S^\R>                   \R@                   \RB                   S_35      r"gs  snn f )fz3
Mappings between PostgreSQL and Python encodings.
    )annotationsN)AnyTYPE_CHECKING   )
ConnStatus)NotSupportedError)cache)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              #  J   #    U  H  u  pUR                  5       U4v   M     g 7f)N)encode.0kvs      E/var/www/html/venv/lib/python3.13/site-packages/psycopg/_encodings.py	<genexpr>rS   H   s     @-?TQ!((*a-?s   !#c              #  z   #    U  H1  u  pS U;   d  M  UR                  S S5      R                  5       U4v   M3     g7f)_ N)replacerM   rN   s      rR   rS   rS   K   s8      1Csax$QYYsB !$1Cs   ;);c                @    U (       a  U R                   R                  $ S$ )zs
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                    SSK Jn  U" U 5      nUR                  S5      nU(       a#   [        [	        U5      R                  5       5      $ g! [         a     gf = f)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JJ()E	CJ--/00  ! 		s   !A 
AAc                P    [         [        R                  " U 5      R                     $ )zrConvert 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   o   s     V]]4(--..r]   c                     [         U R                  SS5      R                  SS5      R                  5          $ ! [         a"    U R	                  SS5      n[        SU< 35      ef = f)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   x   sh    MdC088sCIIKLL MFI."A% KLLMs	   69 ,A%c                    U R                  5       (       d8  U S   S;   a  X-   n U R                  5       (       d  [        R                  SU 5      n U S   S:X  a  X-   n U $ )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}      sX     >>Q4<
A~~c1%Ats{J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   restringrj   typingr   r   	pq._enumsr   errorsr   _compatr	   _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:'9tqQ
]'9:	6( / / 
M 
M$ JJ		 !7!7 8rJ	S ;s   "F 