about summary refs log tree commit diff
diff options
context:
space:
mode:
authordirkf <fieldhouse@gmx.net>2022-11-02 11:56:26 +0000
committerGitHub <noreply@github.com>2022-11-02 11:56:26 +0000
commitc4b19a88169fa76c5eb665d274e7270a0fe452c4 (patch)
tree93f698461507f10c8fddf6f8a1094c639bebf6a2
parent087ddc237132103859cc00183d8d70bd75c0e44e (diff)
downloadyoutube-dl-c4b19a88169fa76c5eb665d274e7270a0fe452c4.tar.gz
youtube-dl-c4b19a88169fa76c5eb665d274e7270a0fe452c4.tar.xz
youtube-dl-c4b19a88169fa76c5eb665d274e7270a0fe452c4.zip
[compat] Work around in case folding for narrow Python build
Resolves #31324.
-rw-r--r--youtube_dl/casefold.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/youtube_dl/casefold.py b/youtube_dl/casefold.py
index 7e91c3811..748c2d491 100644
--- a/youtube_dl/casefold.py
+++ b/youtube_dl/casefold.py
@@ -1639,7 +1639,15 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z
 1E921; C; 1E943; # ADLAM CAPITAL LETTER SHA
 '''
 
-_parse_unichr = lambda s: compat_chr(int(s, 16))
+
+def _parse_unichr(s):
+    s = int(s, 16)
+    try:
+        return compat_chr(s)
+    except ValueError:
+        # work around "unichr() arg not in range(0x10000) (narrow Python build)"
+        return ('\\U%08x' % s).decode('unicode-escape')
+
 
 _map = dict(
     (_parse_unichr(from_), ''.join(map(_parse_unichr, to_.split(' '))))