<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def boolean(cls, true_code, false_code=None):
 """Callback to validate a response code. The returned callback checks whether a given response has a ``status_code`` that is considered good (``true_code``) and raise an appropriate error if not. The optional ``false_code`` allows for a non-successful status code to return False instead of throwing an error. This is used, for example in relationship mutation to indicate that the relationship was not modified. Args: true_code(int):
 The http status code to consider as a success Keyword Args: false_code(int):
 The http status code to consider a failure Returns: A function that given a response returns ``True`` if the response's status code matches the given code. Raises a :class:`HeliumError` if the response code does not match. """

        def func(response):
            if response is not None:
                status_code = response.status
                if status_code == true_code:
                    return True
                if false_code is not None and status_code == false_code:
                    return False
                raise error_for(response)
        return func