aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx')
-rw-r--r--.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx63
1 files changed, 63 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx b/.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx
new file mode 100644
index 00000000..dcd692b7
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/asyncpg/protocol/encodings.pyx
@@ -0,0 +1,63 @@
+# Copyright (C) 2016-present the asyncpg authors and contributors
+# <see AUTHORS file>
+#
+# This module is part of asyncpg and is released under
+# the Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
+
+
+'''Map PostgreSQL encoding names to Python encoding names
+
+https://www.postgresql.org/docs/current/static/multibyte.html#CHARSET-TABLE
+'''
+
+cdef dict ENCODINGS_MAP = {
+ 'abc': 'cp1258',
+ 'alt': 'cp866',
+ 'euc_cn': 'euccn',
+ 'euc_jp': 'eucjp',
+ 'euc_kr': 'euckr',
+ 'koi8r': 'koi8_r',
+ 'koi8u': 'koi8_u',
+ 'shift_jis_2004': 'euc_jis_2004',
+ 'sjis': 'shift_jis',
+ 'sql_ascii': 'ascii',
+ 'vscii': 'cp1258',
+ 'tcvn': 'cp1258',
+ 'tcvn5712': 'cp1258',
+ 'unicode': 'utf_8',
+ 'win': 'cp1521',
+ 'win1250': 'cp1250',
+ 'win1251': 'cp1251',
+ 'win1252': 'cp1252',
+ 'win1253': 'cp1253',
+ 'win1254': 'cp1254',
+ 'win1255': 'cp1255',
+ 'win1256': 'cp1256',
+ 'win1257': 'cp1257',
+ 'win1258': 'cp1258',
+ 'win866': 'cp866',
+ 'win874': 'cp874',
+ 'win932': 'cp932',
+ 'win936': 'cp936',
+ 'win949': 'cp949',
+ 'win950': 'cp950',
+ 'windows1250': 'cp1250',
+ 'windows1251': 'cp1251',
+ 'windows1252': 'cp1252',
+ 'windows1253': 'cp1253',
+ 'windows1254': 'cp1254',
+ 'windows1255': 'cp1255',
+ 'windows1256': 'cp1256',
+ 'windows1257': 'cp1257',
+ 'windows1258': 'cp1258',
+ 'windows866': 'cp866',
+ 'windows874': 'cp874',
+ 'windows932': 'cp932',
+ 'windows936': 'cp936',
+ 'windows949': 'cp949',
+ 'windows950': 'cp950',
+}
+
+
+cdef get_python_encoding(pg_encoding):
+ return ENCODINGS_MAP.get(pg_encoding.lower(), pg_encoding.lower())