<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def is_iban(potential_iban):
 """ Check if a string is a valid IBAN number. IBAN is described in ISO 13616-1:2007 Part 1. Spaces are ignored. # CODE 0 = always zero b = BIC or National Bank code c = Account number i = holder's kennitala (national identification number) k = IBAN check digits n = Branch number t = Account type x = National check digit or character Examples -------- True False """

    path = 'data/iban.csv'  # always use slash in Python packages
    filepath = pkg_resources.resource_filename('mpu', path)
    data = mpu.io.read(filepath, delimiter=';', format='dicts')
    potential_iban = potential_iban.replace(' ', '')  # Remove spaces
    if len(potential_iban) < min([int(el['length']) for el in data]):
        return False
    country = None
    for element in data:
        if element['iban_fields'][:2] == potential_iban[:2]:
            country = element
            break
    if country is None:
        return False
    if len(potential_iban) != int(country['length']):
        return False
    if country['country_en'] == 'Germany':
        checksum_val = [value
                        for field_type, value in
                        zip(country['iban_fields'], potential_iban)
                        if field_type == 'k']
        checksum_val = ''.join(checksum_val)
        checksum_exp = _calculate_german_iban_checksum(potential_iban,
                                                       country['iban_fields'])
        return checksum_val == checksum_exp
    return True