aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--youtube_dl/compat.py31
1 files changed, 13 insertions, 18 deletions
diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py
index 4b5e1f6ed..28942a8c1 100644
--- a/youtube_dl/compat.py
+++ b/youtube_dl/compat.py
@@ -21,6 +21,19 @@ import subprocess
import sys
import xml.etree.ElementTree
+# deal with critical unicode/str things first
+try:
+ # Python 2
+ compat_str, compat_basestring, compat_chr = (
+ unicode, basestring, unichr
+ )
+ from .casefold import casefold as compat_casefold
+except NameError:
+ compat_str, compat_basestring, compat_chr = (
+ str, str, chr
+ )
+ compat_casefold = lambda s: s.casefold()
+
try:
import collections.abc as compat_collections_abc
except ImportError:
@@ -2374,13 +2387,6 @@ except ImportError:
import BaseHTTPServer as compat_http_server
try:
- compat_str = unicode # Python 2
- from .casefold import casefold as compat_casefold
-except NameError:
- compat_str = str
- compat_casefold = lambda s: s.casefold()
-
-try:
from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes
from urllib.parse import unquote as compat_urllib_parse_unquote
from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus
@@ -2511,21 +2517,10 @@ except ImportError: # Python < 3.4
return compat_urllib_response.addinfourl(io.BytesIO(data), headers, url)
try:
- compat_basestring = basestring # Python 2
-except NameError:
- compat_basestring = str
-
-try:
- compat_chr = unichr # Python 2
-except NameError:
- compat_chr = chr
-
-try:
from xml.etree.ElementTree import ParseError as compat_xml_parse_error
except ImportError: # Python 2.6
from xml.parsers.expat import ExpatError as compat_xml_parse_error
-
etree = xml.etree.ElementTree