소스 검색

[compat] Fix missing _asciire on python 2.6

Sergey M․ 10 년 전
부모
커밋
3cc8b4c327
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      youtube_dl/compat.py

+ 3 - 1
youtube_dl/compat.py

@@ -79,6 +79,8 @@ try:
     from urllib.parse import unquote as compat_urllib_parse_unquote
     from urllib.parse import unquote as compat_urllib_parse_unquote
     from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus
     from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus
 except ImportError:  # Python 2
 except ImportError:  # Python 2
+    _asciire = re.compile('([\x00-\x7f]+)') if sys.version_info < (2, 7) else compat_urllib_parse._asciire
+
     # HACK: The following are the correct unquote_to_bytes, unquote and unquote_plus
     # HACK: The following are the correct unquote_to_bytes, unquote and unquote_plus
     # implementations from cpython 3.4.3's stdlib. Python 2's version
     # implementations from cpython 3.4.3's stdlib. Python 2's version
     # is apparently broken (see https://github.com/rg3/youtube-dl/pull/6244)
     # is apparently broken (see https://github.com/rg3/youtube-dl/pull/6244)
@@ -124,7 +126,7 @@ except ImportError:  # Python 2
             encoding = 'utf-8'
             encoding = 'utf-8'
         if errors is None:
         if errors is None:
             errors = 'replace'
             errors = 'replace'
-        bits = compat_urllib_parse._asciire.split(string)
+        bits = _asciire.split(string)
         res = [bits[0]]
         res = [bits[0]]
         append = res.append
         append = res.append
         for i in range(1, len(bits), 2):
         for i in range(1, len(bits), 2):