|
|
@ -3161,20 +3161,25 @@ def write_xattr(path, key, value): |
|
|
|
# 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): |
|
|
|
# TODO: fallback to CLI tools |
|
|
|
raise XAttrUnavailableError( |
|
|
|
'python-pyxattr is detected but is too old. ' |
|
|
|
'youtube-dl requires %s or above while your version is %s. ' |
|
|
|
'Falling back to other xattr implementations' % ( |
|
|
|
pyxattr_required_version, xattr.__version__)) |
|
|
|
if hasattr(xattr, 'set'): # pyxattr |
|
|
|
# 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): |
|
|
|
# TODO: fallback to CLI tools |
|
|
|
raise XAttrUnavailableError( |
|
|
|
'python-pyxattr is detected but is too old. ' |
|
|
|
'youtube-dl requires %s or above while your version is %s. ' |
|
|
|
'Falling back to other xattr implementations' % ( |
|
|
|
pyxattr_required_version, xattr.__version__)) |
|
|
|
|
|
|
|
setxattr = xattr.set |
|
|
|
else: # xattr |
|
|
|
setxattr = xattr.setxattr |
|
|
|
|
|
|
|
try: |
|
|
|
xattr.set(path, key, value) |
|
|
|
setxattr(path, key, value) |
|
|
|
except EnvironmentError as e: |
|
|
|
raise XAttrMetadataError(e.errno, e.strerror) |
|
|
|
|
|
|
|