@classmethod
def decode_list(cls, obj, element_type):
    """Decodes json into a list, handling conversion of the elements.

        Args:
            obj: the json object to decode
            element_type: a class object which is the conjure type of
                the elements in this list.
        Returns:
            A python list where the elements are instances of type
                element_type.
        """
    if not isinstance(obj, list):
        raise Exception('expected a python list')
    return list(map(lambda x: cls.do_decode(x, element_type), obj))
