from ..utils import (
check_executable,
hyphenate_date,
- preferredencoding,
+ subprocess_check_output
)
# Write xattrs to NTFS Alternate Data Streams:
# http://en.wikipedia.org/wiki/NTFS#Alternate_data_streams_.28ADS.29
def write_xattr(path, key, value):
- assert(key.find(":") < 0)
- assert(path.find(":") < 0)
- assert(os.path.exists(path))
+ assert ':' not in key
+ assert os.path.exists(path)
ads_fn = path + ":" + key
- with open(ads_fn, "w") as f:
+ with open(ads_fn, "wb") as f:
f.write(value)
else:
user_has_setfattr = check_executable("setfattr", ['--version'])
elif user_has_xattr:
cmd = ['xattr', '-w', key, value, path]
- subprocess.check_output(cmd)
+ subprocess_check_output(cmd)
else:
# On Unix, and can't find pyxattr, setfattr, or xattr.
if infoname == "upload_date":
value = hyphenate_date(value)
- byte_value = value.encode(preferredencoding())
+ byte_value = value.encode('utf-8')
write_xattr(filename, xattrname, byte_value)
return True, info