mirror of
https://github.com/ceph/ceph
synced 2025-03-25 11:48:05 +00:00
pybind/cephfs: avoid unicode check
py3 does not have the unicode built-in. Instead, simply try to do the encoding and catch failures appropriately. If it quacks like a duck... (Note that cython apparently cheats and allows the unicode check but this is simpler.) Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
This commit is contained in:
parent
753da4ec7b
commit
9bc49fefcd
@ -293,11 +293,13 @@ def cstr(val, name, encoding="utf-8", opt=False):
|
||||
return None
|
||||
if isinstance(val, bytes):
|
||||
return val
|
||||
elif isinstance(val, unicode):
|
||||
return val.encode(encoding)
|
||||
else:
|
||||
raise TypeError('%s must be a string' % name)
|
||||
|
||||
try:
|
||||
v = val.encode(encoding)
|
||||
except:
|
||||
raise TypeError('%s must be encodeable as a bytearray' % name)
|
||||
assert isinstance(v, bytes)
|
||||
return v
|
||||
|
||||
def cstr_list(list_str, name, encoding="utf-8"):
|
||||
return [cstr(s, name) for s in list_str]
|
||||
|
Loading…
Reference in New Issue
Block a user