<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_address(address, filter=None, limit=None, offset=None, api_code=None):
 """Get data for a single address including an address balance and list of relevant transactions. :param str address: address(base58 or hash160) to look up :param FilterType filter: the filter for transactions selection (optional) :param int limit: limit number of transactions to display (optional) :param int offset: number of transactions to skip when display (optional) :param str api_code: Blockchain.info API code (optional) :return: an instance of :class:`Address` class """


    resource = 'address/{0}?format=json'.format(address)
    if filter is not None:
        if isinstance(filter, FilterType):
            resource += '&filter=' + str(filter.value)
        else:
            raise ValueError('Filter must be of FilterType enum')
    if limit is not None:
        resource += '&limit=' + str(limit)
    if offset is not None:
        resource += '&offset=' + str(offset)
    if api_code is not None:
        resource += '&api_code=' + api_code
    response = util.call_api(resource)
    json_response = json.loads(response)
    return Address(json_response)