|
@@ -256,6 +256,16 @@ else:
|
|
|
el.text = el.text.decode('utf-8')
|
|
|
return doc
|
|
|
|
|
|
+if sys.version_info < (2, 7):
|
|
|
+ # Here comes the crazy part: In 2.6, if the xpath is a unicode,
|
|
|
+ # .//node does not match if a node is a direct child of . !
|
|
|
+ def compat_xpath(xpath):
|
|
|
+ if isinstance(xpath, compat_str):
|
|
|
+ xpath = xpath.encode('ascii')
|
|
|
+ return xpath
|
|
|
+else:
|
|
|
+ compat_xpath = lambda xpath: xpath
|
|
|
+
|
|
|
try:
|
|
|
from urllib.parse import parse_qs as compat_parse_qs
|
|
|
except ImportError: # Python 2
|
|
@@ -585,6 +595,7 @@ __all__ = [
|
|
|
'compat_urlparse',
|
|
|
'compat_urlretrieve',
|
|
|
'compat_xml_parse_error',
|
|
|
+ 'compat_xpath',
|
|
|
'shlex_quote',
|
|
|
'subprocess_check_output',
|
|
|
'workaround_optparse_bug9161',
|