in pystemd/utils.py [0:0]
def x2char_star(what_to_convert, convert_all=False):
"""
Converts `what_to_convert` to whatever the platform understand as char*.
For python2, if this is unicode we turn it into a string. If this is
python3 and what you pass is a `str` we convert it into `bytes`.
If `convert_all` is passed we will also convert non string types, so `1`
will be `b'1'` and `True` will be true
"""
if isinstance(what_to_convert, Path):
return str(what_to_convert).encode()
elif isinstance(what_to_convert, bytes):
return what_to_convert
elif isinstance(what_to_convert, str):
return what_to_convert.encode()
elif convert_all:
if isinstance(what_to_convert, bool):
return str(what_to_convert).lower().encode()
return repr(what_to_convert).encode()
else:
return what_to_convert