Skip to content

Commit 399f768

Browse files
committed
[compat] Introduce compat_etree_Element
1 parent e5ada4f commit 399f768

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

test/test_compat.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from youtube_dl.compat import (
1414
compat_getenv,
1515
compat_setenv,
16+
compat_etree_Element,
1617
compat_etree_fromstring,
1718
compat_expanduser,
1819
compat_shlex_split,
@@ -90,6 +91,12 @@ def test_compat_shlex_split(self):
9091
self.assertEqual(compat_shlex_split('-option "one\ntwo" \n -flag'), ['-option', 'one\ntwo', '-flag'])
9192
self.assertEqual(compat_shlex_split('-val 中文'), ['-val', '中文'])
9293

94+
def test_compat_etree_Element(self):
95+
try:
96+
compat_etree_Element.text
97+
except AttributeError:
98+
self.fail('compat_etree_Element is not a type')
99+
93100
def test_compat_etree_fromstring(self):
94101
xml = '''
95102
<root foo="bar" spam="中文">

youtube_dl/compat.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,6 +2508,15 @@ def doctype(self, name, pubid, system):
25082508
pass
25092509

25102510

2511+
try:
2512+
# xml.etree.ElementTree.Element is a method in Python <=2.6 and
2513+
# the following will crash with:
2514+
# TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
2515+
isinstance(None, xml.etree.ElementTree.Element)
2516+
from xml.etree.ElementTree import Element as compat_etree_Element
2517+
except TypeError: # Python <=2.6
2518+
from xml.etree.ElementTree import _ElementInterface as compat_etree_Element
2519+
25112520
if sys.version_info[0] >= 3:
25122521
def compat_etree_fromstring(text):
25132522
return etree.XML(text, parser=etree.XMLParser(target=_TreeBuilder()))
@@ -2969,6 +2978,7 @@ def compat_ctypes_WINFUNCTYPE(*args, **kwargs):
29692978
'compat_cookiejar',
29702979
'compat_cookies',
29712980
'compat_ctypes_WINFUNCTYPE',
2981+
'compat_etree_Element',
29722982
'compat_etree_fromstring',
29732983
'compat_etree_register_namespace',
29742984
'compat_expanduser',

0 commit comments

Comments
 (0)