blob: 50d59bc7cf22e51cb107b1ce4597d89fbcb4036a [file] [log] [blame]
"""
Python3-specific versions of various functions used by stomp.py
"""
NULL = b'\x00'
def input_prompt(prompt):
"""
Get user input
:param str prompt: the prompt to display to the user
:rtype: str
"""
return input(prompt)
def decode(byte_data):
"""
Decode the byte data to a string if not None.
:param bytes byte_data: the data to decode
:rtype: str
"""
if byte_data is None:
return None
return byte_data.decode()
def encode(char_data):
"""
Encode the parameter as a byte string.
:param char_data: the data to encode
:rtype: bytes
"""
if type(char_data) is str:
return char_data.encode()
elif type(char_data) is bytes:
return char_data
else:
raise TypeError('message should be a string or bytes')
def pack(pieces=()):
"""
Join a sequence of strings together.
:param list pieces: list of strings
:rtype: bytes
"""
encoded_pieces = (encode(piece) for piece in pieces)
return b''.join(encoded_pieces)
def join(chars=()):
"""
Join a sequence of characters into a string.
:param bytes chars: list of chars
:rtype: str
"""
return b''.join(chars).decode()