From 8c8826176d4562dce9558d121a955ed71509315a Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Thu, 23 Apr 2015 13:49:06 +0800 Subject: [PATCH] [xattr] Add version detection for python-pyxattr For more information, see #5498 and changes to convertObj() in iustin/pyxattr@cc84e466f63906d32ec1bf4a4fcae6a7bce9a4c8 --- youtube_dl/postprocessor/xattrpp.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/youtube_dl/postprocessor/xattrpp.py b/youtube_dl/postprocessor/xattrpp.py index 0cba99fc3..b74adff43 100644 --- a/youtube_dl/postprocessor/xattrpp.py +++ b/youtube_dl/postprocessor/xattrpp.py @@ -11,6 +11,7 @@ from ..compat import ( from ..utils import ( check_executable, hyphenate_date, + version_tuple, ) @@ -36,6 +37,19 @@ class XAttrMetadataPP(PostProcessor): # try the pyxattr module... import xattr + # Unicode arguments are not supported in python-pyxattr until + # version 0.5.0 + # See https://github.com/rg3/youtube-dl/issues/5498 + pyxattr_required_version = '0.5.0' + if version_tuple(xattr.__version__) < version_tuple(pyxattr_required_version): + self._downloader.report_warning( + 'python-pyxattr is detected but is too old. ' + 'yourube-dl requires %s or above while your version is %s. ' + 'Falling back to other xattr implementations' % ( + pyxattr_required_version, xattr.__version__)) + + raise ImportError + def write_xattr(path, key, value): return xattr.setxattr(path, key, value)