[compat] Fix missing _asciire on python 2.6

This commit is contained in:
Sergey M․ 2015-07-18 00:24:39 +06:00
parent 6b19647d57
commit 3cc8b4c327

View file

@ -79,6 +79,8 @@
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 @@ def compat_urllib_parse_unquote(string, encoding='utf-8', errors='replace'):
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):