<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def str_block_cast(block, include_text=True, include_link_tokens=True, include_css=True, include_features=True, **kwargs):
 """ Converts any bytes-like items in input Block object to string-like values, with respect to python version Parameters block : blocks.Block any bytes-like objects contained in the block object will be converted to a string include_text : bool, default=True if True, cast text to a string, else ignore include_link_tokens : bool, default=True if True, cast link_tokens to a string, else ignore include_css : bool, default=True if True, cast css to a string, else ignore include_features : bool, default=True if True, cast features to a string, else ignore kwargs: encoding: str, default: 'utf-8' encoding to be used when decoding bytes """

    if include_text:
        block.text = str_cast(block.text, **kwargs)
    if include_link_tokens:
        block.link_tokens = str_list_cast(block.link_tokens, **kwargs)
    if include_css:
        block.css = str_dict_cast(block.css, **kwargs)
    if include_features:
        block.features = str_dict_cast(block.features, **kwargs)
    return block