aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2015-04-23 13:49:06 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2015-04-23 13:50:44 +0800
commit8c8826176d4562dce9558d121a955ed71509315a (patch)
tree0fbc58ec6e8eb7c25acdadf9744eca33cb569c7d
parent14a2d6789f24ce6f6565747a48ffe7728d5a2251 (diff)
[xattr] Add version detection for python-pyxattr
For more information, see #5498 and changes to convertObj() in iustin/pyxattr@cc84e466f63906d32ec1bf4a4fcae6a7bce9a4c8
-rw-r--r--youtube_dl/postprocessor/xattrpp.py14
1 files changed, 14 insertions, 0 deletions
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)