projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[xuite] Skip the invalid test
[youtube-dl]
/
youtube_dl
/
compat.py
diff --git
a/youtube_dl/compat.py
b/youtube_dl/compat.py
index 1392361a1636b4943b4083237c1704372f7065b7..e3cab4dd0ff40c3813dd46faa16b6de64f5b7bbd 100644
(file)
--- a/
youtube_dl/compat.py
+++ b/
youtube_dl/compat.py
@@
-245,13
+245,20
@@
try:
except ImportError: # Python 2.6
from xml.parsers.expat import ExpatError 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
+
+
+class _TreeBuilder(etree.TreeBuilder):
+ def doctype(self, name, pubid, system):
+ pass
+
if sys.version_info[0] >= 3:
if sys.version_info[0] >= 3:
- compat_etree_fromstring = xml.etree.ElementTree.fromstring
+ def compat_etree_fromstring(text):
+ return etree.XML(text, parser=etree.XMLParser(target=_TreeBuilder()))
else:
# python 2.x tries to encode unicode strings with ascii (see the
# XMLParser._fixtext method)
else:
# python 2.x tries to encode unicode strings with ascii (see the
# XMLParser._fixtext method)
- etree = xml.etree.ElementTree
-
try:
_etree_iter = etree.Element.iter
except AttributeError: # Python <=2.6
try:
_etree_iter = etree.Element.iter
except AttributeError: # Python <=2.6
@@
-265,7
+272,7
@@
else:
# 2.7 source
def _XML(text, parser=None):
if not parser:
# 2.7 source
def _XML(text, parser=None):
if not parser:
- parser = etree.XMLParser(target=
etree.
TreeBuilder())
+ parser = etree.XMLParser(target=
_
TreeBuilder())
parser.feed(text)
return parser.close()
parser.feed(text)
return parser.close()
@@
-277,7
+284,7
@@
else:
return el
def compat_etree_fromstring(text):
return el
def compat_etree_fromstring(text):
- doc = _XML(text, parser=etree.XMLParser(target=
etree.
TreeBuilder(element_factory=_element_factory)))
+ doc = _XML(text, parser=etree.XMLParser(target=
_
TreeBuilder(element_factory=_element_factory)))
for el in _etree_iter(doc):
if el.text is not None and isinstance(el.text, bytes):
el.text = el.text.decode('utf-8')
for el in _etree_iter(doc):
if el.text is not None and isinstance(el.text, bytes):
el.text = el.text.decode('utf-8')
@@
-475,6
+482,11
@@
if sys.version_info < (3, 0) and sys.platform == 'win32':
else:
compat_getpass = getpass.getpass
else:
compat_getpass = getpass.getpass
+try:
+ compat_input = raw_input
+except NameError: # Python 3
+ compat_input = input
+
# Python < 2.6.5 require kwargs to be bytes
try:
def _testfunc(x):
# Python < 2.6.5 require kwargs to be bytes
try:
def _testfunc(x):
@@
-616,6
+628,7
@@
__all__ = [
'compat_html_entities',
'compat_http_client',
'compat_http_server',
'compat_html_entities',
'compat_http_client',
'compat_http_server',
+ 'compat_input',
'compat_itertools_count',
'compat_kwargs',
'compat_ord',
'compat_itertools_count',
'compat_kwargs',
'compat_ord',