[xattr] Add version detection for python-pyxattr

For more information, see #5498 and changes to convertObj() in
iustin/pyxattr@cc84e466f6
This commit is contained in:
Yen Chi Hsuan 2015-04-23 13:49:06 +08:00
parent 14a2d6789f
commit 8c8826176d

View File

@ -11,6 +11,7 @@ from ..compat import (
from ..utils import ( from ..utils import (
check_executable, check_executable,
hyphenate_date, hyphenate_date,
version_tuple,
) )
@ -36,6 +37,19 @@ class XAttrMetadataPP(PostProcessor):
# try the pyxattr module... # try the pyxattr module...
import xattr 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): def write_xattr(path, key, value):
return xattr.setxattr(path, key, value) return xattr.setxattr(path, key, value)